GnistAI GnistAI
Log in

US Nonprofits (IRS 990)

Search 1.6M+ US nonprofits and access IRS 990 financial filings — revenue, expenses, assets, compensation, and tax-exempt status.

Overview   |   MCP   |   REST API   |   OpenAPI   |   CLI   |   Tutorial   |   Toolkits   |   Home
status: healthy status status healthy healthy tools: 3 tools tools 3 3 type: api wrapper type type api wrapper api wrapper Government

Data source: ProPublica Nonprofit Explorer API

MCP Endpoint (Streamable HTTP) https://context.gnist.ai/mcp/nonprofits/
Authentication

All requests require a Gnist-API-Key header (or api_key query parameter).

Free tier: 100 calls/day. Get your API key.

Tools (3)

search_nonprofits

Search 1.6M+ IRS-registered US nonprofit organizations.

Find nonprofits by name, location, category (NTEE code), or tax-exempt type.
Returns basic info: EIN, name, city, state, NTEE code, and tax-exempt subsection.

Examples:
search_nonprofits("hospital", state="NY") → New York hospitals
search_nonprofits("climate", ntee=3) → Environmental nonprofits about climate
search_nonprofits("ProPublica") → Find a specific organization

Returns:
total_results, page, num_pages, organizations (list of matches).

ParameterTypeRequiredDescription
querystringrequiredSearch query — name, city, or keyword. Example: 'red cross'.
stateanyoptionalTwo-letter US state code. Example: 'CA'.
nteeanyoptionalNTEE major group: 1=Arts, 2=Education, 3=Environment, 4=Health, 5=Human Services, 6=International, 7=Public Benefit, 8=Religion, 9=Mutual Benefit, 10=Unknown.
c_codeanyoptional501(c) subsection code. Use 3 for 501(c)(3) charitable orgs.
pageintegeroptionalPage number (0-indexed, 25 results per page). (default: 0)
JSON-RPC Request
{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "id": 1,
  "params": {
    "name": "search_nonprofits",
    "arguments": {
      "query": "example"
    }
  }
}
get_nonprofit

Get detailed information and IRS 990 financial filings for a US nonprofit.

Returns organization details (address, NTEE code, ruling date, income, assets)
plus parsed financial data from all available Form 990/990-EZ/990-PF filings:
revenue, expenses, assets, liabilities, compensation, and more.

Examples:
get_nonprofit("14-2007220") → ProPublica Inc financials
get_nonprofit("530196605") → American Red Cross

Returns:
Organization details and list of filings with key financial fields.

ParameterTypeRequiredDescription
einstringrequiredEmployer Identification Number. Example: '14-2007220' or '142007220'.
JSON-RPC Request
{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "id": 1,
  "params": {
    "name": "get_nonprofit",
    "arguments": {
      "ein": "123456789"
    }
  }
}
report_feedback

Report a bug, feature request, or general feedback for this data source.

Use this when something doesn't work as expected, when you'd like
a new feature, or when you have suggestions for improvement.

Args:
feedback: Describe the issue or suggestion.
feedback_type: One of 'bug', 'feature_request', or 'general'.

ParameterTypeRequiredDescription
feedbackstringrequired
feedback_typestringoptional (default: "general")
JSON-RPC Request
{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "id": 1,
  "params": {
    "name": "report_feedback",
    "arguments": {
      "feedback": "example"
    }
  }
}

Quick Start

Shell
curl -X POST "https://context.gnist.ai/mcp/nonprofits/" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -H "Gnist-API-Key: YOUR_API_KEY" \
  -d '{"jsonrpc": "2.0", "method": "tools/call", "id": 1, "params": {"name": "search_nonprofits", "arguments": {"query": "example"}}}'
Python
import httpx

resp = httpx.post(
    "https://context.gnist.ai/mcp/nonprofits/",
    headers={"Gnist-API-Key": "YOUR_API_KEY", "Content-Type": "application/json"},
    json={
  "jsonrpc": "2.0",
  "method": "tools/call",
  "id": 1,
  "params": {
    "name": "search_nonprofits",
    "arguments": {
      "query": "example"
    }
  }
},
)
print(resp.json())

Related Toolkits (Government)

Resources