Introduction

Grants Data API

Plinth publishes two completely separate APIs. This site documents the platform API — your own organisation's data inside Plinth. The Grants Data API is a different product on a different domain: a public, read-only API over US philanthropy data built from IRS Form 990 filings.

If you arrived here looking for US foundation or grants data

You want the Grants Data API at data.useplinth.com/developers, not the endpoints documented on this site. Nothing on this site returns data about other organisations' grantmaking — the platform API only ever returns records belonging to your own Plinth organisation.


Which API do you want?

Plinth platform API (this site)Grants Data API
What it returnsYour organisation's own records — members, volunteers, events, bookings, forms, case notes, funds, grant applications, disbursementsPublic US philanthropy data — ~205,000 grantmaking foundations and 17.9 million grants, from IRS Form 990, 990-EZ and 990-PF filings
Who it's forOrganisations using Plinth to run their programmes or grant programmesAnyone doing prospect research, funder analysis or grants data engineering — no Plinth account needed
Base URLhttps://app.plinth.org.uk/api/v1https://data.useplinth.com/api
Authx-api-key: sk_… from your Plinth dashboardX-API-Key: plinth_sk_… (or Authorization: Bearer) from a free self-serve account
DocsThese pagesdata.useplinth.com/developers
ScopeOne organisationThe whole US grantmaking universe

The word "grants" appears on both sides, which is where most of the confusion comes from:

  • Funds, Grant Applications and Disbursements on this site are your grant programme — the funds you administer, the applications you received, the payments you made.
  • The Grants Data API is other people's grantmaking — what US foundations gave, to whom, and when, as reported on their tax filings.

What the Grants Data API is

A JSON API over the entire US grantmaking universe, assembled from public IRS e-filed returns:

  • ~205,000 grantmaking funders and 17.9 million grant records
  • Traversal in both directions — funder → grantees, and grantee → funders
  • Aggregates, individual grant rows, organisation profiles, and a compliance snapshot
  • Plus surfaces the paid Candid equivalents don't have: read-only SQL over the corpus and a plain-English query interface

It is a direct alternative to Candid's Grants, Essentials and Premier APIs, and request parameters and response field names deliberately follow the same vocabulary so an existing client is a small change rather than a rewrite. Candid's grant data APIs are paid; a Plinth key is free to generate.

Base URL

https://data.useplinth.com/api

Authentication

Generate a key at data.useplinth.com/account — free, self-serve, no card. Keys start with the prefix plinth_sk_ and are sent in an X-API-Key header (a Authorization: Bearer token also works):

curl -H "X-API-Key: plinth_sk_your_key" \
  "https://data.useplinth.com/api/grants/summary"

Two different key formats

Platform API keys start sk_ and only work against app.plinth.org.uk. Grants Data API keys start plinth_sk_ and only work against data.useplinth.com. They are issued by different systems and are not interchangeable — using one against the other returns 401.

Endpoints

EndpointDescription
GET /api/searchResolve an organisation name to an EIN and its canonical page. No key required — start here if you have a name rather than an EIN
GET /api/grants/summaryAggregate totals for a filter, plus a year-by-year breakdown
GET /api/grants/fundersFunders ranked by giving — total amount, grant count, recipients reached
GET /api/grants/recipientsRecipients ranked by what they received, with location and funder count
GET /api/grants/transactionsIndividual grant rows — funder, recipient, amount, year, subject, description
GET /api/essentials/{ein}Core organisation profile — name, location, NTEE classification, financials
GET /api/premier/{ein}Deeper profile — full financials plus resolved geographic footprint
GET /api/compliance/{ein}Exemption status, deductibility, IRS auto-revocation, and an OFAC name screen

The four /grants/* endpoints share one filter set: funder_id, recip_id, year, subject (NTEE major group), location (2-letter US state), min_amt / max_amt, sort_by / sort_order, page / limit.

There is a machine-readable OpenAPI 3.1 description at data.useplinth.com/openapi.json — point a client generator or an agent at that rather than at prose.

Limits

A free key includes 50 calls a month; a paid plan raises it to 10,000 a month. Every response carries X-Calls-Limit and X-Calls-Remaining so you can back off before hitting the wall. Denials are 401 (no key or unknown key) and 402 (allowance spent).


Coming from Candid

Endpoint-for-endpoint, the mapping is close:

CandidGrants Data API
Grants API /transactions/api/grants/transactions
Grants API /funders/api/grants/funders
Grants API /recipients/api/grants/recipients
Grants API /summary/api/grants/summary
Essentials API/api/essentials/{ein}
Premier API/api/premier/{ein}
Charity Check API/api/compliance/{ein}

It is close, but not drop-in. At minimum the authentication header changes (Candid uses Subscription-Key), and the compliance path is /compliance rather than charitycheck. Some things have no equivalent in either direction — Candid's Charity Check produces time-stamped documentation for regulated workflows and its Premier profiles carry enrichment fields that do not exist in filings, while the Grants Data API adds SQL and plain-English querying that Candid has no counterpart for.

The full endpoint-by-endpoint comparison, including what is not equivalent, is at data.useplinth.com/candid-api-alternative.


Data currency

Grants Data API figures come from public IRS filings, which lag 12–24 months behind the activity they describe. The underlying dataset refreshes monthly. The platform API documented elsewhere on this site is live data with no such lag.

Previous
Getting started