Every.org API Documentation

website·Indexed 41 days ago

https://docs.every.org

Free fundraising APIs and tools to create nonprofit experiences. Includes documentation for the Nonprofits API, fundraiser endpoints, authentication via API keys, donate buttons, donate links, and webhooks for nonprofit and partner donations.

Tokens
6.4K
Snippets
29
Records
47
Agent score
56%

What's inside Every.org

  1. Overview of Every.org Webhooks

    Every.org provides webhooks to notify external systems when a donor completes a donation. When a donation occurs, Every.org sends a POST request to the configured webhook endpoint. There are two types of webhooks:

    1. Nonprofit Donation Webhook: Notifies nonprofit administrators whenever a donation is made to their specific nonprofit.
    2. Partner Webhook: Notifies developers using a Donate Link or Donate Button whenever a donation is completed via their specific link.
  2. Programmatically create and track fundraisers with the Fundraisers API

    The Fundraisers API enables the programmatic creation of fundraisers for nonprofits listed on Every.org. Developers can share these fundraiser links and track the total amount raised within their own applications.
  3. Integrate Every.org donation webhook data

    Both Nonprofit and Partner webhooks send a JSON-formatted POST request. The payload contains details about the donation, the donor, and the receiving nonprofit. Note that some donor fields may be undefined if the donor opted not to share that information.
    {
      "chargeId": "string", // Unique ID to the donation
      "partnerDonationId": "string | undefined", // ID specified via Donate link/button
      "designation": "string | undefined", // Program or project supported
      "firstName": "string | undefined",
      "lastName": "string | undefined | null",
      "email": "string | null",
      "toNonprofit": {
        "slug": "string", // Used in URL: every.org/<slug>
        "ein": "string | undefined", // Nonprofit's EIN
        "name": "string"
      },
      "amount": "string", // Numerical amount (ISO currency code)
      "netAmount": "string", // Amount after third party fees
      "currency": "string", // ISO 4217 currency code
      "frequency": "Yearly" | "Monthly" | "One-time",
      "donationDate": "string Date", // Date donation was initiated
      "publicTestimony": "string | undefined", // Public comment
      "privateNote": "string | undefined", // Private note for nonprofit
      "fromFundraiser": {
        "id": "string",
        "title": "string",
        "slug": "string" // Used in URL: every.org/<toNonprofit.slug>/f/<fromFundraiser.slug>
      } | undefined,
      "paymentMethod": "string"
    }
  4. Receive donation notifications via Webhooks

    Every.org provides webhooks to notify systems when a donor completes a donation:

    • Nonprofit Donation Webhook: Notifies nonprofit admins about donations to their organization.
    • Partner Webhook: Notifies developers about donations made via their specific Donate Links.
  5. Configure pre-filled donation flows with Donate Links

    Every.org provides a way to link directly to a nonprofit's donation flow. These links support parameters to pre-fill donation amounts and frequency, toggle background displays, and configure post-donation redirects back to the originating site.
  6. Embed a donation experience using the Every.org Donate Button

    The Every.org Donate button is an open-source tool that allows you to accept donations for a nonprofit on your website by embedding a code snippet into your webpage.
  7. Understand the Every.org Webhook data format

    Both Nonprofit Donation and Partner webhooks send a JSON-formatted string. The payload includes details about the transaction, the donor, and the receiving nonprofit.
    {
      "chargeId": "string", // Unique ID to the donation. Matches Admin Dashboard Charge ID
      "partnerDonationId": "string | undefined", // ID specified via Donate link/button
      "designation": "string | undefined", // Program or project supported
      "firstName": "string | undefined",
      "lastName": "string | undefined | null",
      "email": "string | null",
      "toNonprofit": {
        "slug": "string", // Used in URL: every.org/<slug>
        "ein": "string | undefined", // Nonprofit's EIN
        "name": "string" // Displayable name
      },
      "amount": "string", // Numerical amount in ISO currency code
      "netAmount": "string", // Amount after third party fees
      "currency": "string", // ISO 4217 currency code
      "frequency": "Yearly" | "Monthly" | "One-time",
      "donationDate": "string Date", // Date donation was initiated
      "publicTestimony": "string | undefined", // Public comment from donor
      "privateNote": "string | undefined", // Private note for the nonprofit
      "fromFundraiser": {
        "id": "string",
        "title": "string",
        "slug": "string" // Used in URL: every.org/<toNonprofit.slug>/f/<fromFundraiser.slug>
      } | undefined,
      "paymentMethod": "string"
    }
  8. Retrieve a specific fundraiser's details

    Use the GET /v0.2/nonprofit/:nonprofitIdentifier/fundraiser/:fundraiserIdentifier endpoint to query detailed information about a specific fundraiser associated with a nonprofit.
    curl "https://api.every.org/v0.2/nonprofit/{nonprofitIdentifier}/fundraiser/{fundraiserIdentifier}"
  9. Understand the Every.org Partner Webhook data format

    Every.org sends webhook requests as JSON-formatted strings. The payload contains details about the donation, the donor, and the receiving nonprofit.

    Key fields include:

    • chargeId: Unique ID for the donation (matches the nonprofit Admin Dashboard).
    • partnerDonationId: The ID specified via Donate link or Button (may be undefined).
    • partnerMetadata: Base64 unencoded and JSON parsed metadata (may be undefined).
    • firstName/lastName/email: Donor identity info; may be undefined if the donor opted not to share, or null if the value does not exist.
    • toNonprofit: Object containing the nonprofit's slug (used for URLs), ein (may be undefined for fiscally sponsored orgs), and name.
    • amount: Numerical amount as a string in the ISO currency unit.
    • netAmount: Amount after third-party fees.
    • currency: ISO 4217 currency code.
    • frequency: One of "Yearly", "Monthly", or "One-time".
    • donationDate: ISO date string of when the donation was initiated.
    • publicTestimony: Public comment from the donor (may be undefined).
    • privateNote: Private note for the nonprofit (may be undefined).
    • fromFundraiser: Object containing id, title, and slug if the donation came via a fundraiser.
    • paymentMethod: The method used for payment.
    {
      "chargeId": "somerandomuuid",
      "partnerDonationId": "somerandomuuid",
      "firstName": "Jane",
      "lastName": "Doe",
      "email": "jane@emailprovider.org",
      "toNonprofit": {
        "slug": "givedirectly",
        "ein": "271661997",
        "name": "Give Directly"
      },
      "amount": "1000.00",
      "netAmount": "970.07",
      "currency": "USD",
      "frequency": "Monthly",
      "donationDate": "2022-02-03T05:00:16.175Z",
      "publicTestimony": "I love animals",
      "privateNote": "Thank you for the fantastic work!"
    }
  10. Retrieve details for a nonprofit fundraiser

    Use the GET /v0.2/nonprofit/:nonprofitIdentifier/fundraiser/:fundraiserIdentifier endpoint to retrieve details about an existing nonprofit fundraiser. For multi-nonprofit fundraisers, use special-fundraiser as the :nonprofitIdentifier. This endpoint requires a public key for authentication.
    curl "https://partners.every.org/v0.2/nonprofit/wphfund/fundraiser/wphf-giving-tuesday?apiKey=myPublicApiKey"
  11. Retrieve nonprofit details by identifier

    Use the GET /v0.2/nonprofit/:identifier endpoint to get detailed data about a specific nonprofit. The :identifier parameter accepts three formats:

    • Slug: The nonprofit's URL slug (e.g., maps).
    • EIN: A 9-digit Employer Identification Number without dashes or prefixes (e.g., 526001065).
    • Nonprofit ID: Every.org's internal UUID (e.g., 75924760-cd27-4ecc-a9d4-c0660c08961a).

    All requests require authentication via a public API key passed as a query parameter.

    # Example using EIN
    curl "https://partners.every.org/v0.2/nonprofit/526001065?apiKey=myPublicApiKey"
    
    # Example using Slug
    curl "https://partners.every.org/v0.2/nonprofit/maps?apiKey=myPublicApiKey"
    
    # Example using UUID
    curl "https://partners.every.org/v0.2/nonprofit/75924760-cd27-4ecc-a9d4-c0660c08961a?apiKey=myPublicApiKey"
  12. Search and retrieve nonprofit metadata with the Nonprofits API

    The Nonprofits API allows developers to search over 1 million 501(c)(3) organizations, retrieve metadata for specific nonprofits, and generate donate links.