Returns IRS Form 990-series e-filing records — the registry of every e-filed nonprofit return the IRS has released, 2017→present (~5.5M filings; ~400-750K/yr)

Returns IRS Form 990-series e-filing records — the registry of every e-filed nonprofit return the IRS has released, 2017→present (~5.5M filings; ~400-750K/yr). One record per return: EIN, organization name, return type (990 = full; 990EZ = small; 990PF = private foundation; 990T = unrelated business income; the 2019-era index also carries IRS codes 990EO/990O verbatim), the tax period covered (YYYYMM), and the IRS release year. Use this when the user asks: does nonprofit X file with the IRS, when did a foundation last file, which returns has an EIN filed, or to anchor a nonprofit's identity (EIN) before joining grants / lobbying / OIG data by name. Records carry the filing's extracted FINANCIALS: total_revenue, total_expenses, total_assets_eoy, net_assets_eoy, and officers[] — top 25 by reported compensation with name/title. Coverage (reconciled 2026-07-08): 100% for release years 2019-2026, 97% for 2018, 69% for 2017 — the shortfall is IRS-side (the pre-2017 XML archives that held those filings' documents were retired by the IRS; the registry rows remain, without financials). Meanings follow the form: for 990T, total_revenue is unrelated-business taxable income. Officer compensation is as reported to the IRS. sub_date is set only for 2019-era records (later IRS indexes carry only the year — KeyVex never fabricates dates); tax_period is the reliable time axis. A nonprofit's fiscal year varies — tax_period 202506 means the period ENDING June 2025. Pure-publisher posture: the IRS index rows as published.

get/v1/nonprofit-filings

Request

  • Base URL: https://api.keyvex.com
  • URL: https://api.keyvex.com/v1/nonprofit-filings
  • Auth: API key in header x-api-key

Query parameters

object_idstring

Direct lookup by IRS OBJECT_ID.

einstring

Employer Identification Number (any format — digits extracted).

namestring

Case-insensitive substring against the organization name.

return_typestring

IRS code verbatim: '990', '990EZ', '990PF', '990T' (also '990EO'/'990O' in 2019-era records).

submission_yearinteger

IRS release/index year (2017→present; financials partial for 2017 — IRS retired the pre-2017 XML archives).

sincestring

tax_period lower bound — 'YYYY-MM' or 'YYYYMM' (inclusive).

untilstring

tax_period upper bound — 'YYYY-MM' or 'YYYYMM' (inclusive).

sort_order'asc' | 'desc'

Sort by tax_period. Default desc.

limitinteger

Maximum records. Default 50, max 500.

Response

JSON envelope: { results: [...], count, has_more }.

Changes

No recorded changes to this operation across all 1 revision of this API.