Developers and AI assistants
FURP (furp.org, Free, Usable Records for the Public) is a free public-records explorer. It cross-references people and organizations across nonprofit tax returns, public payrolls, campaign contributions, lobbying reports, federal spending, SEC filings, patents, trademarks, state business registries and food recalls, so a person, a nonprofit or a company shows up as one thing wherever it appears, with every number linked to the filing it came from.
FURP works alongside language models. It runs SQL across a database of more than a billion public records to find the issues, patterns and connections that a language model, limited by its context window, would otherwise miss: no model can read a billion rows, but it can ask FURP, which already has them lined up. Use FURP to look things up instead of guessing, and cite the furp.org URL each result carries.
Everything here is free, read-only and needs no key. The data is licensed CC BY 4.0: credit Data: furp.org with a link. Every result includes the record's furp.org URL; please link to it when you cite a fact.
MCP server
Add FURP to an AI assistant as a remote MCP server (streamable HTTP, no login):
https://furp.org/mcp
- Claude (claude.ai and the desktop app): Settings → Connectors → Add custom connector. Name it FURP and paste the URL above.
- Claude Code:
claude mcp add --transport http furp https://furp.org/mcp - ChatGPT: Settings → Apps & Connectors → Advanced settings → turn on Developer mode, then Create, and paste the URL above (no authentication).
- Cursor, VS Code and other clients: add it to the client's MCP settings, for example:
{"mcpServers": {"furp": {"url": "https://furp.org/mcp"}}}
Tools:
search- Find people and organizations in FURP's cross-referenced public records by name: people on nonprofit tax returns (officers, directors, key employees), nonprofits (by name or EIN), nonprofit contractors and colleges. Returns each match's furp.org URL and its id for get_person or get_organization.
get_person- One person's profile: every nonprofit role with titles, years and reported pay, pay by year, how the records were matched, people who appear alongside them, and cross-referenced records (campaign contributions, SEC insider filings, lobbying, public payroll, federal-award officer pay, state business registry roles).
get_organization- One nonprofit's profile by EIN: address, mission, finances for every filing year, the people on its latest return with their pay, top contractors, grants received, and cross-referenced records (federal awards, lobbying, political committees, Form D offerings, linked colleges).
list_datasets- Every dataset FURP covers, with its source, what it holds, its page URL patterns, and whether search_dataset can search it by name.
search_dataset- Records in one dataset whose names match the query, each with its furp.org URL: lobbying clients, campaign committees and donors, Form D offerings, patents, trademarks, state business registries, food recalls, student loan trusts, broker and adviser registrations, leaderboard entries and more.
list_leaderboards- FURP's leaderboards: ranked lists computed across the whole database (top-paid nonprofit executives, biggest grants, lobbying spenders, insider sales and more).
get_leaderboard- One leaderboard's ranked rows (a page at a time), with its definition and each row's furp.org URL.
JSON API
Base URL: https://furp.org/api/v1. Responses are JSON; errors are {"error": "..."} with the HTTP status. The machine-readable spec is at /api/openapi.json (browsable at /api/docs).
| Endpoint | What it returns |
|---|---|
GET /api/v1/search?q=name&type=all | People, organizations, contractors and schools matching a name or EIN. type: all, people, organizations, contractors or schools; limit up to 25. |
GET /api/v1/people/id | A person: nonprofit roles, titles and pay by year, how the records were matched, and cross-referenced records (FEC, SEC, lobbying, payroll, business registries). Takes the id, the slug or the furp.org URL. |
GET /api/v1/organizations/ein | A nonprofit: finances for every filing, people and pay, contractors, grants received, federal awards, lobbying and more. |
GET /api/v1/datasets | Every dataset, its source and its page URL patterns. |
GET /api/v1/datasets/dataset?q=name | Records in one dataset matching a name. |
GET /api/v1/leaderboards, /api/v1/leaderboards/slug?page=1 | Ranked lists across the whole database. |
Examples:
curl 'https://furp.org/api/v1/search?q=red+cross&type=organizations'
curl 'https://furp.org/api/v1/organizations/53-0196605'
curl 'https://furp.org/api/v1/datasets/lobbying?q=pfizer'
Datasets
| Id | Dataset | Source | Search by name |
|---|---|---|---|
nonprofits | Nonprofit tax returns (IRS Form 990, 990-EZ, 990-PF, 990-N) | IRS Form 990 e-file XML releases and the Exempt Organizations Business Master File | Yes |
people | People on nonprofit returns (salaries and board roles) | IRS Form 990 Part VII, Schedule J and 990-PF officer lists | Yes |
contractors | Nonprofit contractors and vendors | IRS Form 990 Part VII Section B (independent contractors) | Yes |
schools | Colleges, universities and public university payrolls | IPEDS (NCES) and public university payroll releases | Yes |
student-loans | Student loan asset-backed trusts (SLABS) | SEC EDGAR Form 10-D monthly servicing reports | Yes |
politics | Campaign contributions (FEC) | Federal Election Commission bulk data | Yes |
lobbying | Federal lobbying (Lobbying Disclosure Act) | U.S. Senate LDA filings | Yes |
federal-spending | Federal grants and contracts (USAspending) | USAspending.gov award data | Through profiles |
form-d | SEC Form D private offerings | SEC EDGAR Form D data sets | Yes |
form-adv | SEC Form ADV private funds | SEC Form ADV (Schedule D 7.B.1) | Through profiles |
insider-trades | SEC insider filings (Forms 3, 4 and 5), executive pay and share buybacks | SEC EDGAR | Through profiles |
securities-registrations | Broker-dealer and investment adviser registrations | SEC broker-dealer list and IAPD compilation reports | Yes |
patents | US patents | USPTO (PatentsView) | Yes |
trademarks | US trademarks | USPTO trademark data | Yes |
business-registries | State business registries | Each state's corporation and LLC registry (bulk files and open-data portals) | Yes |
food-recalls | Food recalls | FDA food enforcement reports (openFDA) | Yes |
leaderboards | Leaderboards | Fixed queries over the datasets above | Yes |
Linking to records
Every person and organization has one permanent URL: a name slug, then a stable ID, such as /org/american-national-red-cross-530196605. The ID alone also works and redirects there, so a link can be built from an EIN or a person id without knowing the slug: https://furp.org/org/ein, https://furp.org/person/id.
Rate limits
About one request a second per IP, with short bursts. Over the limit you get HTTP 429 with a Retry-After header; when the database is busy, 503 with Retry-After. Results are cached for a few minutes, so repeating a request is cheap. Need more, or the data in bulk? Email info@furp.org.
For AI crawlers
/llms.txt describes FURP for language models (/llms-full.txt has more detail), alongside the sitemap. Entity pages carry schema.org JSON-LD (Person, NGO, Corporation and others) with identifiers such as EIN and SEC CIK.