specification: API Commons Rate Limits specificationVersion: '0.1' schema: https://raw.githubusercontent.com/api-evangelist/interface-research/main/schema/api-commons.yml#/$defs/RateLimits provider: Every.org providerId: every-org created: '2026-05-04' generated: '2026-08-28' method: searched source: https://docs.every.org/docs/endpoints/nonprofits#rate-limits modified: '2026-08-28' tags: - Charities - Donations - Fundraising - Rate Limiting - Quotas description: >- Rate limits Every.org publishes for its Partner (Charity) API. Replaces the 2026-05-04 generated scaffold: the tiered per-minute/per-month figures in that scaffold were invented defaults and did not correspond to anything Every.org publishes. Every.org's real model is per-endpoint, per-API-key, with no tiers and no monthly quota. Verbatim framing from the docs: "We strive to keep this API open and available for use without restrictions. However in order to prevent abuse we apply the following limits to each endpoint by default." limit_count: 3 headers: limit: null remaining: null reset: null retryAfter: null policy: null observed: none note: >- No rate-limit response headers are documented, and none were present on live unauthenticated responses probed 2026-08-28 (HTTP 400 on /v0.2/search/pets, HTTP 404 on /). Only Cloudflare edge headers (cf-ray, alt-svc) are returned. The published numbers are readable by a human from the docs but are not machine-readable at runtime. responseCodes: throttled: unknown note: >- Every.org does not document the status code returned when a limit is exceeded, and it could not be observed without a valid key. Not asserted. limits: - name: Nonprofit details scope: api-key per_endpoint: GET /v0.2/nonprofit/{identifier} metric: requests_per_minute limit: 100 timeFrame: minute burst: null applies: - Every.org API source: https://docs.every.org/docs/endpoints/nonprofits#rate-limits - name: Nonprofit search scope: api-key per_endpoint: GET /v0.2/search/{searchTerm} metric: requests_per_minute limit: 500 timeFrame: minute burst: null applies: - Every.org API source: https://docs.every.org/docs/endpoints/nonprofits#rate-limits note: >- Every.org explicitly designs this endpoint for high throughput and recommends calling it client-side on every keystroke for type-ahead nonprofit search. - name: Nonprofit browse scope: api-key per_endpoint: GET /v0.2/browse/{cause} metric: requests_per_minute limit: 500 timeFrame: minute burst: null applies: - Every.org API source: https://docs.every.org/docs/endpoints/nonprofits#rate-limits undocumented_endpoints: endpoints: - GET /v0.2/nonprofit/{nonprofitIdentifier}/fundraiser/{fundraiserIdentifier} - GET /v0.2/nonprofit/{nonprofitIdentifier}/fundraiser/{fundraiserIdentifier}/raised - POST /v0.2/fundraiser note: >- The published rate-limit table covers only the three Nonprofits endpoints. No limit is stated for the Fundraisers endpoints. Absence of a published figure is recorded, not guessed. policies: - name: Higher limits description: >- "If you need higher rate limits, please contact us at partners@every.org." There is no self-serve tier and no published paid ceiling. contact: partners@every.org source: https://docs.every.org/docs/endpoints/nonprofits#rate-limits - name: Result-size caps description: >- Independent of request rate, response size is capped: search take max 50, browse take max 100 per page. source: https://docs.every.org/docs/endpoints/nonprofits maintainers: - FN: Kin Lane email: kin@apievangelist.com