# Every.org > Every.org is a US 501(c)(3) nonprofit operating a fundraising and giving platform. Its Partner > (Charity) API gives developers free, non-commercial access to search and read over one million > IRS-verified 501(c)(3) nonprofits, create and read fundraisers, and receive webhook > notifications when donations complete. Donations themselves are not initiated through the API — > they happen in Every.org's hosted donate flow, reached from a Donate Link or the open-source > Donate Button, and are reported back over webhook. Generated by API Evangelist from the Every.org public documentation on 2026-08-28. Every.org does not publish an llms.txt of its own (/llms.txt returns 404 on docs.every.org). Every.org publishes no OpenAPI, GraphQL, AsyncAPI, or MCP contract; the endpoints below are transcribed from its prose documentation. ## API basics - Base URL: https://partners.every.org/v0.2 - Current version: v0.2 (in the URI path; unchanged since the changelog began in 2023) - Auth: API keys from the developer dashboard. Public key as the `apiKey` query parameter for reads (GET only); private key over HTTP Basic (username = a public key, password = the private key) for writes. A missing key returns HTTP 400 with the plain-text body "API key missing". - Errors: plain text, not JSON. No error catalog is published. - Rate limits: per key, per endpoint — 100/min nonprofit details, 500/min search, 500/min browse. No rate-limit response headers are returned. Higher limits: partners@every.org. ## Endpoints - [Get a nonprofit](https://docs.every.org/docs/endpoints/nonprofits): GET /v0.2/nonprofit/{identifier} — identifier is a slug, a 9-digit EIN (no dashes, no "ein:" prefix), or an Every.org UUID. - [Search nonprofits](https://docs.every.org/docs/endpoints/nonprofits): GET /v0.2/search/{searchTerm} — params `take` (max 50) and `causes` (comma-joined, OR filter; legacy alias `tags`). Built for type-ahead; Every.org recommends calling it client-side on every keystroke. - [Browse nonprofits by cause](https://docs.every.org/docs/endpoints/nonprofits): GET /v0.2/browse/{cause} — params `take` (max 100) and `page`; returns a `pagination` object. - [Get a fundraiser](https://docs.every.org/docs/endpoints/fundraisers): GET /v0.2/nonprofit/{nonprofitIdentifier}/fundraiser/{fundraiserIdentifier} - [Get fundraiser progress](https://docs.every.org/docs/endpoints/fundraisers): GET /v0.2/nonprofit/{nonprofitIdentifier}/fundraiser/{fundraiserIdentifier}/raised — returns currency, raised (cents), supporters, goalAmount (cents), goalType (CUSTOM | AUTOMATIC). - [Create a fundraiser](https://docs.every.org/docs/endpoints/fundraisers): POST /v0.2/fundraiser — private key. Body: nonprofitId (UUID), title, description, startDate, endDate, goal (cents), raisedOffline, currency ("USD"), imageBase64. Multi-nonprofit fundraisers use nonprofitId ddacc399-20c5-462e-80e1-97fa958071ea with type MULTIPLE_NONPROFITS and a forNonprofits array. WRITE WARNING: POST /v0.2/fundraiser is the only write operation, it has no idempotency key, and Every.org documents no way to delete, cancel, or end a fundraiser through the API. Treat it as irreversible and confirm with a human before calling it. ## Documentation - [Introduction](https://docs.every.org/docs/intro): the four surfaces — Nonprofits API, Fundraisers API, Donate Button, Donate Link — plus webhooks. - [Authentication](https://docs.every.org/docs/endpoints/authentication): public vs private keys. - [Types](https://docs.every.org/docs/types): the controlled vocabulary of 69 cause slugs used by search and browse (last updated 2023-06-06). - [Changelog](https://docs.every.org/docs/changelog): dated, 2023-02-21 to 2026-06-16. - [Docs source](https://github.com/everydotorg/charity-api-docs): the documentation site is open source. ## Webhooks - [Webhooks overview](https://docs.every.org/docs/webhooks/): both webhooks POST the same JSON body — chargeId, partnerDonationId, firstName, lastName, email, toNonprofit{slug, ein, name}, amount, netAmount, currency (ISO 4217), frequency (Yearly|Monthly|One-time), donationDate, publicTestimony, privateNote, fromFundraiser{id,title,slug}, paymentMethod. - [Nonprofit Donation Webhook](https://docs.every.org/docs/webhooks/nonprofit-webhook): for nonprofit admins; set at every.org/{slug}/admin/settings under Advanced settings. Adds `designation`. - [Partner Webhook](https://docs.every.org/docs/webhooks/partner-webhook): for developers using a Donate Link; set in the developer dashboard. Adds `partnerMetadata`. - No signature or shared-secret verification is documented for either webhook. ## Embeds - [Donate Button](https://docs.every.org/docs/donate-button): open source, loaded from https://embeds.every.org/0.4/button.js. Repo: https://github.com/everydotorg/donate-button - [Donate Link](https://docs.every.org/docs/donate-link): https://www.every.org/{slug}#/donate with parameters for amount, frequency, method, designation, partnerDonationId and partnerMetadata. ## Commercial - [Charity API](https://www.every.org/charity-api): free for non-commercial use; contact Every.org for for-profit/enterprise plans. - [Pricing](https://www.every.org/pricing): Every.org charges nonprofits no platform fee and takes no cut of donations; third-party payment processing fees apply. - [Disbursements and third-party fees](https://www.every.org/disbursements) - [Terms of Service](https://www.every.org/terms) · [Privacy Policy](https://www.every.org/privacy) ## Operations - [Status](https://status.every.org/) - [Support](https://support.every.org/hc/en-us) - [Blog](https://blog.every.org/) - [GitHub](https://github.com/everydotorg) - Contact: partners@every.org (API/partner), team@every.org (nonprofit webhook) ## Not published Every.org publishes none of the following, as of 2026-08-28: an OpenAPI or Swagger document, a GraphQL endpoint, an AsyncAPI document, an MCP server, an A2A agent card, any /.well-known/ document (security.txt, openid-configuration, oauth-authorization-server, api-catalog all 404), a Postman collection, a CLI, a client SDK in any language, a deprecation policy, or an SLA.