Public API reference

GrantAtlas API

GrantAtlas is a read-only public API for nonprofit organization profiles, IRS filing metadata, normalized financials, and grant relationships. Search990 hosts the public beta at https://www.search990.com/api.

Overview

All endpoints return JSON and can be opened directly in a browser address bar. The public API follows a resource layout inspired by ProPublica's Nonprofit Explorer API: organizations are keyed by EIN, filings are searchable, and grants can be queried from either side of the funder-recipient relationship.

/api
Public host
https://www.search990.com/api
Cursor
Pagination
next_cursor on collections
25
Default page
maximum limit 100

Copy-Paste Examples

These examples cover the currently available public GrantAtlas resources. Each URL is clickable and can also be copied directly into a browser.

Organization profile

Inspect one nonprofit by EIN.

https://www.search990.com/api/orgs/770165029
Organization filings

List source filings for one nonprofit.

https://www.search990.com/api/orgs/770165029/filings?limit=2
Organization grants made

List outbound grants for one nonprofit.

https://www.search990.com/api/orgs/770165029/grants-made?limit=5
Organization grants received

List inbound matched grants for one nonprofit.

https://www.search990.com/api/orgs/770165029/grants-received?limit=5
Filing search

Search filing metadata by EIN.

https://www.search990.com/api/filings?ein=770165029&limit=5
Recent filings

Browse recent indexed filings.

https://www.search990.com/api/filings?limit=5
Health check

Check GrantAtlas availability.

https://www.search990.com/api/health
OpenAPI schema

Fetch the machine-readable API schema.

https://www.search990.com/openapi.json
Grant summary

Return grant corpus summary metrics.

https://www.search990.com/api/grants/summary
Grant detail

Inspect one grant by GrantAtlas id.

https://www.search990.com/api/grants/3145754
Broad grant text

Search funder, recipient, and purpose text.

https://www.search990.com/api/grants?q=Central%20Fund%20of%20Israel&limit=25
Recipient EIN

Stable lookup for a matched recipient.

https://www.search990.com/api/grants?recipient_ein=132992985&limit=25
Year and amount

Filter by filing year and minimum amount.

https://www.search990.com/api/grants?year=2023&min_amount=25000&limit=25
Schedule B contributors

List reported contributors to one private foundation by foundation EIN.

https://www.search990.com/api/contributors/880561746?limit=3&include_total=1
Contributor filters

Filter contributor rows by year and minimum amount.

https://www.search990.com/api/contributors/880561746?year=2024&min_amount=500&limit=10
Next page pattern
https://www.search990.com/api/grants?recipient_state=NY&limit=25&cursor=<next_cursor-from-previous-response>

Pagination

Collection responses return results, next_cursor, and meta. Treat the cursor as opaque: pass it back as cursor to request the next page.

ParameterTypeNotes
resultsarrayCurrent page of records.
next_cursorstring | nullPass this value back as cursor for the next page.
meta.resourcestringCollection name, such as organizations, filings, or grants.
meta.limitnumberResolved page size.
meta.countnumberNumber of rows in this page.
Available endpoints

Search Organizations

GET/api/orgs
Available

Search indexed organization profiles by text, geography, NTEE, type, grant role, and financial size.

ParameterTypeNotes
qstringOrganization name, EIN, or city search text.
stateUS stateTwo-letter state filter.
nteestringNTEE code prefix, such as B or T20.
typestringOrganization type: PC, PF, or N-filer.
categorystringIndexed organization category.
rolestringGrant role filter: given or received.
revenue_minnumberMinimum latest revenue.
revenue_maxnumberMaximum latest revenue.
assets_minnumberMinimum latest assets.
assets_maxnumberMaximum latest assets.
grants_paid_minnumberMinimum total grants given.
sortstringname, revenue, assets, grants_given, or grants_received.
cursorstringOpaque cursor from next_cursor.
limitnumberRows per page. Default 25, maximum 100.
Browser URL
https://www.search990.com/api/orgs?state=CA&type=PC&sort=grants_given&limit=10

Organization Profile

GET/api/orgs/{ein}
Available

Return a single organization profile, latest filing summary, grant totals, and related resource links.

Browser URL
https://www.search990.com/api/orgs/770165029

Financials

GET/api/orgs/{ein}/financials
Available

Return normalized authoritative financial rows for an organization when normalized filing data is available.

ParameterTypeNotes
fromnumberEarliest tax year to include.
tonumberLatest tax year to include.
/api/orgs/{ein}/financialsList normalized financial years.
/api/orgs/{ein}/financials/{year}Retrieve one normalized financial year.
Browser URLs
https://www.search990.com/api/orgs/770165029/financials
https://www.search990.com/api/orgs/770165029/financials?from=2020&to=2024
https://www.search990.com/api/orgs/770165029/financials/2023

Filings

GET/api/filings
Available

Search IRS filing metadata globally, or list filings for a specific organization.

ParameterTypeNotes
qstringFiling organization name, EIN, or IRS object id.
object_idstringExact IRS filing object id.
einEINFilter filings to one organization.
form_typestringFilter by normalized form type, such as 990 or 990-PF.
tax_yearnumberFilter to one tax year.
posting_yearnumberIRS posting year.
cursorstringOpaque cursor from next_cursor.
limitnumberRows per page. Default 25, maximum 100.
/api/orgs/{ein}/filingsList filings for one organization.
Browser URLs
https://www.search990.com/api/filings?ein=770165029&limit=5
https://www.search990.com/api/filings?form_type=990&tax_year=2024&limit=5
https://www.search990.com/api/orgs/770165029/filings?limit=5

Grants

GET/api/grants
Available

Search grant relationships by funder, recipient, purpose, category, amount, state, and year. Organization-scoped grant routes expose made and received views.

ParameterTypeNotes
qstringBroad discovery text over grantor, recipient, and purpose fields.
purpose_containsstringPurpose substring match.
grantor_einEINNine-digit funder EIN. Best option for large funders.
recipient_einEINNine-digit recipient EIN when the recipient has been matched.
recipient_stateUS stateTwo-letter recipient state code.
recipient_typestringRecipient classification when available.
categorystringGrant category when available.
min_amountnumberMinimum grant amount in dollars.
max_amountnumberMaximum grant amount in dollars.
yearnumberFiling tax year.
cursorstringOpaque cursor from next_cursor.
limitnumberRows per page. Default 25, maximum 100.
include_totalbooleanReturn rows plus hosted count metadata.
total_onlybooleanReturn count metadata without grant rows.

Hosted count metadata

ParameterTypeNotes
meta.current_pagenumberDecoded from cursor offset when available.
meta.page_sizenumberResolved page size for the hosted route.
meta.total_resultsnumberHosted grant count scan, capped at 250.
meta.total_pagesnumberComputed from total_results and page_size.
meta.total_is_exactbooleanFalse when the count reaches the current scan cap.
/api/grants/{grant_id}Retrieve one grant by GrantAtlas id.
/api/grants/summaryRetrieve summary metrics. Facets are beta.
/api/orgs/{ein}/grants-madeList outbound grants for one organization.
/api/orgs/{ein}/grants-receivedList inbound matched grants for one organization.
Browser URLs
https://www.search990.com/api/grants?purpose_contains=scholarship&recipient_state=MA&limit=25
https://www.search990.com/api/grants?grantor_ein=770165029&limit=25
https://www.search990.com/api/grants?recipient_ein=132992985&limit=25
https://www.search990.com/api/grants/3145754
https://www.search990.com/api/grants/summary
https://www.search990.com/api/orgs/770165029/grants-made?year=2023&min_amount=10000&limit=25
https://www.search990.com/api/orgs/770165029/grants-received?limit=25
https://www.search990.com/api/grants?recipient_state=NY&min_amount=10000&total_only=1

Contributors

GET/api/contributors/{ein}
Available

Return Schedule B contributors reported by a private foundation, keyed by the foundation EIN. Contributor data appears where Schedule B e-file data exists in the indexed corpus.

ParameterTypeNotes
yearnumberFiling year.
min_amountnumberMinimum contribution amount in dollars.
asset_classstringParsed asset class when available.
include_totalbooleanReturn exact total_results and total_pages metadata.
cursorstringOpaque cursor from next_cursor.
limitnumberRows per page. Default 25, maximum 100.
Browser URLs
https://www.search990.com/api/contributors/880561746?limit=3&include_total=1
https://www.search990.com/api/contributors/880561746?year=2024&min_amount=500&limit=10
https://www.search990.com/api/contributors/880561746?asset_class=stock&limit=10

Objects

The public API uses normalized linked objects where possible. Organization links in API responses point back to public /api/orgs/... routes.

Collection envelope
{
  "results": [],
  "next_cursor": null,
  "meta": {
    "resource": "grants",
    "limit": 25,
    "count": 0
  }
}
Grant object
{
  "grant_id": "3145754",
  "amount": "3850",
  "purpose": "Scholarship",
  "category": null,
  "recipient_type": null,
  "recipient_state": "MA",
  "payment_status": "paid_during_year",
  "match_confidence": null,
  "grantor": { "ein": "387196567", "name": "Kohlberg Foundation", "href": "/api/orgs/387196567" },
  "recipient": { "ein": "...", "name": "...", "href": "/api/orgs/..." },
  "filing": { "object_id": "...", "tax_year": 2023 }
}

Grant result fields

ParameterTypeNotes
grant_idstring | number | nullGrantAtlas grant identifier.
amountnumber-string | numberGrant amount in dollars.
purposestring | nullPurpose text from the source filing.
categorystring | nullNormalized category when available.
recipient_typestring | nullRecipient classification.
recipient_statestring | nullRecipient state code.
payment_statusstring | nullPayment status reported or inferred from the source.
match_confidencenumber | nullRecipient match confidence when available.
grantorlinked organizationein, name, and href.
recipientlinked organizationein, name, and href.
filingobjectSource object_id and tax_year.
Contributor object
{
  "contribution_id": "...",
  "object_id": "...",
  "org_ein": "880561746",
  "org_name": "Mid Florida Youth Conference",
  "filing_year": 2024,
  "contributor_name": "Polk Sports Alliance",
  "contributor_city": null,
  "contributor_state": null,
  "amount": "500",
  "cash_bool": true,
  "asset_class": null
}

Contributor result fields

ParameterTypeNotes
contribution_idstring | number | nullGrantAtlas contribution identifier.
object_idstring | nullSource IRS filing object id.
org_einEINPrivate foundation EIN.
org_namestring | nullPrivate foundation name.
filing_yearnumber | nullFiling year.
contributor_numberstring | number | nullReported Schedule B contributor number.
contributor_namestring | nullReported contributor name.
contributor_citystring | nullReported contributor city.
contributor_statestring | nullReported contributor state.
amountnumber-string | number | nullContribution amount in dollars.
cash_boolboolean | nullWhether the contribution was reported as cash.
description_rawstring | nullRaw noncash description when present.
noncash_fmvnumber-string | number | nullReported fair-market value.
date_receivedstring | nullReported date received.
asset_classstring | nullParsed asset class when available.
quantitystring | number | nullParsed quantity when available.
unitstring | nullParsed unit when available.
security_namestring | nullParsed security name when available.
ticker_or_classstring | nullParsed ticker or security class when available.
donor_match_confidencenumber | nullContributor matching confidence when available.

Planned Enhancements

The public beta already exposes the richer GrantAtlas resource surface. These are the next features that would make it easier to build external tools on top of it.

RouteStatusNotes
Native exact countsPlannedExpose uncapped total_results and total_pages for collection endpoints.
Grant detailAvailableGET /api/grants/{grant_id} supports permalinks and reconciliation workflows.
Recipient-name filtersPlannedAdd recipient_name and grantor_name filters for unmatched recipient rows.
Facets and summariesBetaGET /api/grants/summary supports summary metrics; include_facets=1 is still settling.
ExportsPlannedSupport CSV or async export jobs for large result sets.

Status

This page reflects the hosted public GrantAtlas API under https://www.search990.com/api. The app may not yet have frontend screens for every endpoint listed here.

RouteStatusNotes
GET /api/orgsAvailableOrganization search endpoint.
GET /api/orgs/{ein}AvailableOrganization profile by EIN.
GET /api/orgs/{ein}/financialsAvailableNormalized financial rows when available.
GET /api/orgs/{ein}/financials/{year}AvailableSingle normalized financial year.
GET /api/orgs/{ein}/filingsAvailableOrganization filing pages.
GET /api/orgs/{ein}/grants-madeAvailableOutbound grants.
GET /api/orgs/{ein}/grants-receivedAvailableInbound matched grants.
GET /api/filingsAvailableFiling metadata search.
GET /api/grantsAvailableGrant relationship search.
GET /api/grants/{grant_id}AvailableGrant detail permalink.
GET /api/grants/summaryAvailableGrant summary and facets.
GET /api/contributors/{ein}AvailableSchedule B contributors by foundation EIN.
GET /api/healthAvailableAvailability check.
GET /openapi.jsonAvailablePublic OpenAPI schema for the hosted API.
Organization search is exposed as a public endpoint, but some broad name queries may return sparse results while the organization search index continues to mature. EIN profile routes and filing/grant subresources are the most dependable organization lookups today.