The Nonprofit Verify API tells you whether a US charity is listed in IRS records and what it filed
Send a 9-digit EIN and get the organization's name, address, tax-exempt status, category, ruling year and latest revenue and assets from the IRS's own files. 2 credits, charged only when the EIN is listed.

2
Credits per EIN
about $0.01 on Starter
0
Credits when not listed
no record, no charge
2M
Organizations in the IRS master file
read from the IRS's own monthly file
Up to 5
Years of returns
revenue, assets and more
Five years of returns show whether a charity is growing before you send it a grant
Every record carries its filed revenue and assets by year, newest first, and names a newer return when one exists that is not in the IRS extract yet.

A nonprofit comes back as the IRS's own record in one flat payload
The record comes from the IRS's own public files
The name, address, exemption type and category come from the IRS Exempt Organizations Business Master File, and the figures from the annual extract of the returns nonprofits file. Both are public US government data, and each result carries the date of the master file it was read from.
- Exemption type, such as 501(c)(3)
- Whether donations are tax-deductible
- Category from the national taxonomy
- The year and month the exemption was recognised
Revenue and assets always say which year they cover
The latest figures come from the newest return in the annual extract, with the tax year and the form beside them. When a newer return is on file but its figures are not in the extract yet, the result names that year instead of passing an older one off as current.
- Revenue, expenses, assets and liabilities
- Tax year and form on every figure
- The newest return year on record
- Never an old year shown as current
Up to five years of returns come with the record
A short filing history comes back with every record, so you can see whether revenue and assets are growing or shrinking without a second lookup.
- Up to five years of returns
- Form 990, 990-EZ and 990-PF
- Newest first
- The same four figures each year
An exemption that is ending is flagged for review
When the IRS marks an exemption as terminating, the result is flagged and still returned, so a grant or a matched gift is not sent on a listing that is about to end.
- Terminating exemptions flagged
- Status in the IRS's own words
- A pointer to confirm it with the IRS
- The date of the IRS file included
A mistyped EIN is caught before it costs anything
The EIN is tested for nine digits and a prefix the IRS has issued before the record is read, so a typo is refused with a clear error, in the API, the dashboard and bulk jobs.
- Nine digits, dash optional
- Prefix tested first
- Clear error, 0 credits
- Invalid CSV rows fail without a charge
An EIN that is not listed costs nothing
You are charged 2 credits only when the IRS file holds an exemption listing for the EIN. A company EIN, an organization the IRS has removed, a typo and a lookup that could not be answered cost 0, and that holds for bulk CSV jobs as well as the API.
- Zero credits when not listed
- Bulk CSV with an ein column
- The same credits as every other product
- One API key for all of it
An EIN goes in and the IRS record comes out
Send a 9-digit EIN
POST the EIN with or without the dash. A number that begins with a prefix the IRS has never issued is refused with a clear error and costs nothing.
$ POST /api/v1/nonprofit-verify
"ein": "98-7654321"
> nine digits, prefix valid
We read the IRS record we hold
The record comes from the IRS's monthly master file and its annual extract of filed returns, kept in our own database and refreshed when the IRS posts a new file. Every figure is labelled with its year, and a newer return that is not in the extract yet is flagged.
EIN format and prefix tested
IRS master file record read
Filed returns matched
Figures labelled with their year
Get the record, flat and structured
Name, address, exemption type, category and the latest figures arrive in one JSON payload. A listed EIN bills 2 credits, and one the IRS file does not hold bills nothing.
organizationEXAMPLE COMMUNITY PANTRY
exemption501(c)(3)
revenue, 2023$1,842,300
One endpoint looks up an EIN and works like every other 1Lookup call
Same authentication, same credit balance, and the same response envelope as every other 1Lookup product. If you have already integrated one endpoint, this one is a URL change.
curl -X POST https://app.1lookup.io/api/v1/nonprofit-verify \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{ "ein": "98-7654321" }'{
"classification": {
"found": true,
"ein": "987654321",
"ein_formatted": "98-7654321",
"name": "EXAMPLE COMMUNITY PANTRY",
"city": "SPRINGFIELD",
"state": "IL",
"tax_exempt_status": "501(c)(3)",
"exempt_status": "Unconditional exemption",
"contributions_deductible": true,
"ntee_code": "K31",
"ntee_category": "Food, Agriculture and Nutrition",
"ruling_year": 2008,
"latest_filing_year": 2023,
"latest_filing_form": "990",
"latest_filing_revenue": 1842300,
"latest_filing_expenses": 1716950,
"latest_filing_assets": 2405100,
"latest_filing_liabilities": 318400,
"record_updated": "2026-10-13"
},
"insights": {
"nonprofit_verify_result": {
"address": {
"street": "100 SAMPLE STREET",
"city": "SPRINGFIELD",
"state": "IL",
"zip": "62701-1234",
"formatted": "100 SAMPLE STREET, SPRINGFIELD, IL, 62701-1234"
},
"ruling_date": "2008-05",
"filings": [
{ "year": 2023, "form": "990", "revenue": 1842300, "assets": 2405100 },
{ "year": 2022, "form": "990", "revenue": 1690400, "assets": 2291800 }
],
"newest_filing_year_on_record": 2024,
"data_source": "irs_exempt_organizations"
}
},
"recommendations": {
"primary_action": "APPROVE",
"secondary_actions": ["check_irs_tax_exempt_search_for_current_status"]
},
"metadata": { "credits_used": 2, "cache_hit": false }
}A column of EINs goes in and one row per organization comes out
Upload a CSV with an ein column and download a result file with each organization's name, location, exemption type and latest revenue. The three organizations here are invented.
- 1ein
- 298-7654321
- 398-7654322
- 498-7654323
| ein | Found | Name | State | Tax-Exempt Status | Latest Filing Revenue | Credits Used |
|---|---|---|---|---|---|---|
| 98-7654321 | Yes | EXAMPLE COMMUNITY PANTRY | IL | 501(c)(3) | 1842300 | 2 |
| 98-7654322 | Yes | SAMPLE RIVER ARTS COUNCIL | OH | 501(c)(3) | 412800 | 2 |
| 98-7654323 | No | 0 |
Six more columns in the file, among them City, NTEE Code, NTEE Category, Ruling Year, Latest Filing Year and Latest Filing Assets.
One row in, one row out
Every EIN becomes one row, so a list of 500 grantees is a spreadsheet of 500 rows you can sort by size or filter by exemption type.
An EIN that is not listed is a free row
A company EIN, a removed organization or a typo comes back as a row that says so and costs 0 credits, so cleaning a list never bills for the misses.
A malformed EIN fails before it is billed
A cell that is not nine digits, or that starts with a prefix the IRS never issued, fails without a charge and the rest of the file carries on.
One call returns the IRS record for a nonprofit
One call turns an EIN on a grant form, a donation or a vendor list into the IRS record for it: the organization's name and address, the kind of exemption, whether gifts are deductible, and the latest figures it filed, with the raw JSON your code receives beside it. Names and addresses come back as the IRS writes them, in capital letters.
- EIN98-7654321
- NameEXAMPLE COMMUNITY PANTRY
- Exemption501(c)(3)
- StatusUnconditional exemption
- DonationsTax-deductible
- CategoryFood, Agriculture and Nutrition (K31)
- LocationSPRINGFIELD, IL
- Exempt since2008
- Revenue, 2023$1,842,300
- Expenses, 2023$1,716,950
- Assets, 2023$2,405,100
- Newer return2024, figures not in the extract yet
{
"classification": {
"found": true,
"ein_formatted": "98-7654321",
"name": "EXAMPLE COMMUNITY PANTRY",
"tax_exempt_status": "501(c)(3)",
"contributions_deductible": true,
"ntee_category": "Food, Agriculture and Nutrition",
"ruling_year": 2008,
"latest_filing_year": 2023,
"latest_filing_revenue": 1842300,
"latest_filing_assets": 2405100,
"record_updated": "2026-10-13"
},
"insights": {
"nonprofit_verify_result": {
"newest_filing_year_on_record": 2024,
"data_source": "irs_exempt_organizations"
}
},
"metadata": { "credits_used": 2 }
}Every nonprofit lookup returns the same fields at one flat price
A field the IRS file does not hold comes back as null and never as a guess, and every listed organization costs the same 2 credits.
Identity
- found
- ein
- ein_formatted
- name
- care_of
- address
Exemption
- tax_exempt_status
- irs_subsection_code
- exempt_status
- contributions_deductible
- ruling_year
- ruling_date
Category and location
- ntee_code
- ntee_category
- city
- state
Latest filing
- latest_filing_year
- latest_filing_form
- latest_filing_revenue
- latest_filing_expenses
- latest_filing_assets
- latest_filing_liabilities
History and freshness
- filings[]
- newest_filing_year_on_record
- master_file_summary
- record_updated
Grant-makers, donation platforms and banks check an EIN instead of reading IRS lists by hand
Grant-makers and foundations checking an applicant
Look up the EIN on an application, confirm the IRS lists the organization as tax-exempt, and read its recent revenue and assets before the file goes to review.
Companies running a donation-matching program
Check each charity an employee names before a gift is matched, and match only organizations the IRS lists with deductible contributions.
Donation platforms and fundraising apps
Let a charity enter its EIN at sign-up and fill in its name, address and category from the IRS record, instead of asking it to type them and checking by hand.
Payment processors and banks onboarding nonprofits
Start a nonprofit's file from the IRS record: exemption type, recognition year and latest filed figures, then compare the name and address with what the applicant submitted.
Journalists and researchers
Run a list of organizations through a bulk job to pull each one's category, location and latest revenue, then sort the list by size.
Donor-advised funds and giving advisors
Check that a recommended grantee is a listed public charity before a grant is paid, and flag any whose exemption is marked as ending.
Only a listed organization is billed, and every other answer is free
A listed EIN returns the full record. An EIN the IRS file does not hold, or one that is mistyped, comes back as a clear answer at no charge.

These are the questions people ask before they check their first EIN
What does the Nonprofit Verify API return?
Send a 9-digit EIN and it returns the tax-exempt organization listed under it: the name and full address, the exemption type such as 501(c)(3), whether donations to it are tax-deductible, its category, the year and month the IRS recognised the exemption, and revenue, expenses, assets and liabilities from its newest return that has figures, with up to five years of returns in all. Each result carries the date of the IRS file it came from.
Where does the nonprofit data come from?
From two public IRS files. The Exempt Organizations Business Master File lists every organization the IRS recognises as tax-exempt, with its address, exemption type and category, and the IRS posts a new one every month. The Statistics of Income annual extract holds the figures from the Form 990, 990-EZ and 990-PF returns that organizations file, and the IRS posts it once a year. We keep a copy of both in our own database and ask the IRS every six hours whether it has posted a new file.
How current is the record, and can I ask again?
The listing is as current as the IRS's monthly file, and every result shows that file's date in record_updated. The financial figures come from the annual extract, so they run one to two years behind and each set carries its tax year. A repeat lookup of the same EIN within 7 days comes from the cache at no charge. Send bypass_cache: true to read the record again.
What does being listed tell me about a charity?
It tells you the IRS has a tax-exempt record under that EIN, what kind of exemption it is and whether gifts to it are deductible. It does not tell you the organization is in good standing today, so check the IRS tax-exempt search for anything newer than the last monthly file, such as a revocation.
How much does a nonprofit check cost?
2 credits per lookup, about $0.01 on the Starter plan. You are charged only when the EIN is listed. An EIN that is not in the IRS file, a mistyped EIN and a lookup that could not be answered all cost 0 credits, in the API, the dashboard and bulk jobs.
Why is a company's EIN often not found?
Most for-profit businesses are not tax-exempt, so a miss on a company EIN is normal and free. An organization the IRS has removed from its file, for example after a revocation, is answered as not found too, and when we still hold its name from an earlier file the answer includes that name, so you can see what the number once belonged to.
Which organizations are not in the IRS file?
Churches and their auxiliaries do not have to apply to the IRS for recognition, so they are in the master file only if they chose to, and their EINs come back as not found otherwise. The IRS also removes an organization from the file when its exemption is revoked.
What happens when I mistype an EIN?
It is refused before anything is charged. An EIN is nine digits, with or without the dash, and the IRS has never issued numbers that begin with a handful of two-digit prefixes, so a number that starts with one of those returns a clear error at no cost.
Which financial figures do I get, and why do some records have none?
Revenue, expenses, assets and liabilities from the newest return whose figures are in the annual extract, with the tax year and the form (990, 990-EZ or 990-PF) beside them, and the same four figures for up to five years of returns. An organization with no such return in the extract comes back with no figures and a flag that says so, and when a newer return exists whose figures are not in the extract yet, the result names that year instead of showing an older year as current.
Can I check a list of EINs at once?
Yes. Upload a CSV with an ein column and you get a row per organization with its name, location, exemption type, category and latest figures. A row that is not a valid EIN fails without a charge. The price stays at the same credits per organization found, however long the list is.
Does it say when an exemption is ending?
Yes. When the IRS marks an exemption as terminating, the result is flagged for review and still returned, because the answer is a real one. Check it before you send a grant, match a donation or list the organization as eligible.
Can I search by organization name?
Not today: the lookup takes an EIN. If you only have a name and a city, find the organization's EIN first, for example from its donation page or its Form 990, then look it up. Business Lookup finds a business by name and city when you also want its website and phone number.
To check a single organization before you write any code, run its EIN through the free nonprofit EIN lookup.
The IRS listing says an organization is exempt, and these products check the rest
Here is how checking a US nonprofit with 1Lookup compares with the other nonprofit data APIs
Each page sets a rival's plans and prices beside ours and says where the rival does the job better. Every figure carries its source and the date it was checked.