Skip to main content
Validate

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 lookupOnly charged on a matchSame credits as every other product
1Lookup Nonprofit Verify API showing a fictional charity, EXAMPLE COMMUNITY PANTRY, listed under a 9-digit EIN as a 501(c)(3) with deductible donations, its category and its latest revenue and assets

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.

Five years of filed revenue for a fictional charity drawn as bars, from $1.12 million in 2019 to $1.84 million in 2023, with the 2024 return drawn dashed because its figures are 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

01

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.

request

$ POST /api/v1/nonprofit-verify

"ein": "98-7654321"

> nine digits, prefix valid

02

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.

processing

EIN format and prefix tested

IRS master file record read

Filed returns matched

Figures labelled with their year

03

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.

200 OK

organizationEXAMPLE COMMUNITY PANTRY

exemption501(c)(3)

revenue, 2023$1,842,300

donations deductible2 credits, 0 if not listed

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.

POST /v1/nonprofit-verify
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" }'
200 OK
{
  "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.

grantees.csvYou upload
  1. 1ein
  2. 298-7654321
  3. 398-7654322
  4. 498-7654323
nonprofit-verify-results.csvYou download
einFoundNameStateTax-Exempt StatusLatest Filing RevenueCredits Used
98-7654321YesEXAMPLE COMMUNITY PANTRYIL501(c)(3)18423002
98-7654322YesSAMPLE RIVER ARTS COUNCILOH501(c)(3)4128002
98-7654323No0

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.

app.1lookup.io/api/v1Listed: 501(c)(3)
  • 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
200 OK, 2 credits
{
  "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.

Three results of a nonprofit check: a listed EIN returns the record for 2 credits, an EIN the IRS file does not hold returns not listed for 0 credits, and a mistyped EIN is refused before any lookup for 0 credits

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.

Check a few of your own grantees or donors and see what comes back

Start a free trial, and your credits work across every product in the catalog.