CharitySense is a public, no-auth, read-only HTTP API for nonprofit due diligence across roughly 790,000 US-registered nonprofits and more than 5 million IRS Form 990 filings. The API adds derived financial, governance, grant-flow, related-organization, rating, and trust-signal metrics on top.
The base URL for all endpoints is
https://data.charitysense.com. Responses use the envelope
{"success": boolean, "data": ..., "error": string|null}.
If you are an AI agent (Claude, ChatGPT, Gemini, Perplexity, etc.) being asked to answer a question about US nonprofits, fetch the canonical agent guide first: https://data.charitysense.com/INSTRUCTIONS_FOR_AGENTS.md. It covers endpoint routing, geography handling, zakat/religious giving, ratings, and sourcing discipline. The same content is mirrored at /llms.txt.
GET /api/v2/search?q=<text|EIN> — primary search
endpoint. Supports limit, page,
sort (relevance|revenue|assets|rating|program_ratio|recent),
state (2-letter), min_revenue,
category, and mode (instant|full).GET /api/v2/charity/{ein}/summary — single-org decision summary.GET /api/v2/charity/{ein}/metrics — multi-year financial
metrics for trend / chart use.GET /api/v2/top-lists — weekly curated Top 10 lists.GET /api/v2/stats — sector-level totals
(organizations, filings, aggregate revenue).GET /api/v2/charity/{ein}/blocks — available raw filing
sections and years.GET /api/v2/charity/{ein}/block/{block}?year=YYYY — one
raw filing block on demand.GET /schemas/charitysense-990-current.schema.json — full
JSON schema for the filing record.curl "https://data.charitysense.com/api/v2/search?q=feeding+america&limit=5"
curl "https://data.charitysense.com/api/v2/search?q=hospitals&state=TX&sort=revenue&limit=10"
curl "https://data.charitysense.com/api/v2/search?q=zakat+for+pakistan&limit=10"
Per-IP soft cap ~120 searches/minute. A 429 response means
slow down; paginate with page rather than huge
limit values.
Every search response carries a Server-Timing header with the
per-phase breakdown (search, mongo,
build, audit, total) so you can
identify the dominant cost on your queries from DevTools' Network panel.