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 returns | Your organisation's own records — members, volunteers, events, bookings, forms, case notes, funds, grant applications, disbursements | Public 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 for | Organisations using Plinth to run their programmes or grant programmes | Anyone doing prospect research, funder analysis or grants data engineering — no Plinth account needed |
| Base URL | https://app.plinth.org.uk/api/v1 | https://data.useplinth.com/api |
| Auth | x-api-key: sk_… from your Plinth dashboard | X-API-Key: plinth_sk_… (or Authorization: Bearer) from a free self-serve account |
| Docs | These pages | data.useplinth.com/developers |
| Scope | One organisation | The 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
| Endpoint | Description |
|---|---|
GET /api/search | Resolve 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/summary | Aggregate totals for a filter, plus a year-by-year breakdown |
GET /api/grants/funders | Funders ranked by giving — total amount, grant count, recipients reached |
GET /api/grants/recipients | Recipients ranked by what they received, with location and funder count |
GET /api/grants/transactions | Individual 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:
| Candid | Grants 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.
