Charity Verify API
Support

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
BASE URL   https://api.givalgo.ai/v1

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

GET   /v1/verify?ein={ein}

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

ParameterTypeRequiredDescription
einstringYesEmployer Identification Number. Accepts 13-1837418, 131837418, or 13 1837418.

Response Fields

FieldTypeDescription
statusstringOverall verification result (see Statuses)
deductiblebooleanWhether donations are tax-deductible. null if not found.
messagestringHuman-readable explanation
organizationobjectIRS EO BMF data (name, city, state, subsection, foundation type, assets, income, NTEE code)
pub78objectPublication 78 listing and deductibility type (PC, PF, POF, SO, etc.)
revocationobjectAuto-revocation history and reinstatement status
group_exemptionobjectPresent when status is ELIGIBLE_VIA_GROUP. Shows parent org details.
sanctions_screeningobjectOFAC screening of org name and leadership with fuzzy matching
checked_atstringISO 8601 timestamp of this verification

Verification Statuses

StatusDeductibleMeaning
ELIGIBLEtrueListed in IRS Pub 78. Eligible for tax-deductible donations.
ELIGIBLE_VIA_GROUPtrueCovered under a parent org's group exemption that is in Pub 78.
NOT_DEDUCTIBLEfalseIn IRS records but not tax-deductible (e.g., 501(c)(4)).
REVOKEDfalseTax-exempt status auto-revoked for 3 consecutive years of non-filing.
NOT_FOUNDnullNot 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).

StatusMeaning
CLEARNo OFAC matches found for the organization or its leadership.
POTENTIAL_MATCHFuzzy match with 70-89% similarity. Manual review recommended.
STRONG_MATCHFuzzy match with 90%+ similarity. Very likely the same entity.

Rate Limits

Rate limits are applied per API key based on your plan tier.

PlanRequests / dayBurstRate
Free52/sec1/sec
Basic1,00010/sec5/sec
Pro10,00050/sec25/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.

Try it now