Charity Verify API
One API call to check tax-deductible eligibility, revocation status, group exemptions, and OFAC sanctions screening for any U.S. nonprofit.
Overview
The Charity Verify API cross-references multiple IRS data sources and OFAC sanctions lists to give you a single, definitive answer on whether a nonprofit can receive tax-deductible donations.
Data sources checked on every request:
- IRS Exempt Organizations Business Master File (EO BMF)
- IRS Publication 78 (eligible donees)
- IRS Auto-Revocation List (with reinstatement detection)
- Group Exemption resolution (subordinate → parent lookup)
- OFAC SDN & Consolidated sanctions lists (fuzzy matching)
- Form 990 leadership screening against OFAC
Authentication
All API requests require an API key passed in the x-api-key header.
# Include your key in every request curl -H "x-api-key: YOUR_API_KEY" \ "https://api.givalgo.ai/v1/verify?ein=53-0196605"
To get an API key, contact support@givalgo.ai. Keys are scoped to a usage plan (Free, Basic, or Pro) which determines your rate limits.
Keep your API key secure. Do not expose it in client-side code or public repositories. If compromised, contact support for a key rotation.
Quickstart
Get up and running in 60 seconds.
cURL
# Verify American Red Cross curl -H "x-api-key: YOUR_API_KEY" \ "https://api.givalgo.ai/v1/verify?ein=53-0196605"
Python
import requests response = requests.get( "https://api.givalgo.ai/v1/verify", params={"ein": "53-0196605"}, headers={"x-api-key": "YOUR_API_KEY"} ) data = response.json() if data["deductible"]: print(f"{data['organization']['name']} is eligible!") else: print(f"Status: {data['status']} - {data['message']}")
JavaScript
const response = await fetch( "https://api.givalgo.ai/v1/verify?ein=53-0196605", { headers: { "x-api-key": "YOUR_API_KEY" } } ); const data = await response.json(); console.log(data.status, data.organization?.name);
Verify Endpoint
Returns a complete verification of the nonprofit identified by the given EIN, including tax-deductible eligibility, revocation history, group exemption status, and OFAC sanctions screening.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
ein | string | Yes | Employer Identification Number. Accepts 13-1837418, 131837418, or 13 1837418. |
Response Fields
| Field | Type | Description |
|---|---|---|
status | string | Overall verification result (see Statuses) |
deductible | boolean | Whether donations are tax-deductible. null if not found. |
message | string | Human-readable explanation |
organization | object | IRS EO BMF data (name, city, state, subsection, foundation type, assets, income, NTEE code) |
pub78 | object | Publication 78 listing and deductibility type (PC, PF, POF, SO, etc.) |
revocation | object | Auto-revocation history and reinstatement status |
group_exemption | object | Present when status is ELIGIBLE_VIA_GROUP. Shows parent org details. |
sanctions_screening | object | OFAC screening of org name and leadership with fuzzy matching |
checked_at | string | ISO 8601 timestamp of this verification |
Verification Statuses
| Status | Deductible | Meaning |
|---|---|---|
ELIGIBLE | true | Listed in IRS Pub 78. Eligible for tax-deductible donations. |
ELIGIBLE_VIA_GROUP | true | Covered under a parent org's group exemption that is in Pub 78. |
NOT_DEDUCTIBLE | false | In IRS records but not tax-deductible (e.g., 501(c)(4)). |
REVOKED | false | Tax-exempt status auto-revoked for 3 consecutive years of non-filing. |
NOT_FOUND | null | Not in IRS records. Churches and self-declared orgs may not appear. |
Sanctions Screening Statuses
Every verification includes an automated OFAC screening of the organization name and its leadership (officers, directors, key employees from Form 990).
| Status | Meaning |
|---|---|
CLEAR | No OFAC matches found for the organization or its leadership. |
POTENTIAL_MATCH | Fuzzy match with 70-89% similarity. Manual review recommended. |
STRONG_MATCH | Fuzzy match with 90%+ similarity. Very likely the same entity. |
Rate Limits
Rate limits are applied per API key based on your plan tier.
| Plan | Requests / day | Burst | Rate |
|---|---|---|---|
| Free | 5 | 2/sec | 1/sec |
| Basic | 1,000 | 10/sec | 5/sec |
| Pro | 10,000 | 50/sec | 25/sec |
When you exceed your rate limit, the API returns 429 Too Many Requests. The response includes a Retry-After header indicating when you can retry.
Playground
Test the API directly from your browser. Enter your API key and an EIN to see a live response.