The OIG Exclusion Check API tells you whether a provider or business is on the federal exclusion list
Send an NPI, a person's name or a business name and get a dated answer from the HHS Office of Inspector General's list of excluded individuals and entities: excluded, needs review, reinstated or clear, with the exclusion type in plain words. 3 credits per completed check.

3
Credits per completed check
about $0.01 on Starter, a clear one included
0
Credits for a refused entry
a bad NPI or a lone surname costs nothing
24h
Free repeat of the same check
by the same user
2M
Rows in one CSV file
an NPI or name per row
The OIG's section codes become plain words, and a mandatory exclusion is told apart from a permissive one
A code such as 1128b4 comes back as License revoked, suspended or surrendered, with the date it took effect and whether the basis is mandatory or permissive.

A provider comes back as a dated answer with the reason in plain words
The answer comes from the OIG's own public exclusion list
Every outcome is read from the HHS Office of Inspector General's List of Excluded Individuals and Entities. It is public US government data, and every answer carries the date of the publication that was checked.
- Excluded, needs review, reinstated or clear
- The date of the list in every answer
- A copy up to 10 days old if the OIG is down, marked as stale
- A failed read is never returned as no match
A name match is flagged for review and never called excluded
A name that matches a listing comes back as needs review, because a name alone does not prove who it is. An NPI that is on the list comes back as excluded, because an NPI is an exact identifier.
- Needs review for a name, excluded for an NPI
- primary_action REVIEW on both
- Weaker look-alikes listed apart, not counted
- Up to 10 matches, strongest first
Each listing carries what you need to confirm who it is
A listing returns the NPI, the specialty, the city and state, and the birth year the OIG recorded, so you can tell two people with the same name apart without calling anyone.
- NPI, specialty and location
- Birth year, never the full date of birth
- How the match was made and how strong it is
- state_match when you sent a state
The exclusion type comes back in plain words
A section code such as 1128b4 comes back as License revoked, suspended or surrendered, with the code, the date it took effect and whether the basis is mandatory or permissive, so nobody on your team has to look up the Social Security Act.
- Plain-English exclusion type
- The section code kept alongside
- Mandatory or permissive basis
- Waiver date and state when the OIG granted one
A clear check says what it checked
A clear answer names the list date and whether it was checked by name or by NPI. Because about 1 in 10 listings carries an NPI, a clear check by NPI alone asks you to also check by name instead of passing it.
- list_updated on every answer
- Checked by name, NPI or both
- VERIFY for a clear NPI-only check
- State Medicaid lists named as separate
An entry that cannot be checked costs nothing
You are charged 3 credits for every completed check. A bad NPI check digit, a lone surname, a malformed entry and a list that could not be read cost 0, and that holds for bulk CSV jobs as well as the API.
- Zero credits for a refused entry
- Zero credits if the list cannot be read
- Bulk CSV with a provider column
- The same credits as every other product
An NPI or a name goes in and a dated answer comes out
Send an NPI or a name
POST a 10-digit NPI, a first and last name or a business name, with a two-letter state if you have one. The NPI's check digit is verified first, and a malformed entry is refused with a clear error and costs nothing.
$ POST /api/v1/oig-exclusion-check
"provider": "Sample Q Example"
"state": "IL"
We read the OIG list
The entry is checked against the OIG's list of excluded individuals and entities. An NPI is looked up exactly, and a name is matched on its first and last name in any order, with titles dropped and accents and case ignored.
NPI check digit verified
OIG list read
Name or NPI matched
Exclusion type spelled out
Get the answer, flat and structured
The outcome, match count, closest listing, exclusion type and the date of the list arrive in one JSON payload. Every completed check bills 3 credits, and an entry that is refused or a list that cannot be read bills nothing.
resultNeeds review
exclusionLicense revoked
list published2026-10-09
One endpoint checks a provider 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/oig-exclusion-check \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{ "provider": "Sample Q Example", "state": "IL" }'{
"classification": {
"found": true,
"outcome": "needs_review",
"result_label": "Needs review",
"excluded": false,
"query_type": "name",
"match_count": 1,
"similar_count": 0,
"name": "Sample Q Example",
"business_name": null,
"npi": "1999000015",
"exclusion_type_code": "1128b4",
"exclusion_type_text": "License revoked, suspended or surrendered",
"excluded_on": "2024-01-15",
"reinstated_on": null,
"city": "Springfield",
"state": "IL",
"specialty": "Registered nurse",
"list_updated": "2026-10-09",
"list_stale": false
},
"insights": {
"oig_exclusion_result": {
"query_type": "name",
"total_matches": 1,
"matches": [
{
"name": "Sample Q Example",
"npi": "1999000015",
"general_category": "Nursing profession",
"specialty": "Registered nurse",
"city": "Springfield",
"state": "IL",
"exclusion_type_code": "1128b4",
"exclusion_basis": "permissive",
"excluded_on": "2024-01-15",
"birth_year": 1975,
"match_basis": "name",
"state_match": true
}
],
"other_candidates": [],
"data_source": "hhs_oig_leie"
}
},
"recommendations": {
"primary_action": "REVIEW",
"secondary_actions": ["confirm_with_npi_or_date_of_birth", "check_state_medicaid_lists"],
"user_message": "The name matches 1 entry on the OIG exclusion list published Oct 9, 2026: Sample Q Example (Springfield, IL), excluded Jan 15, 2024. A name alone is not proof it is the same person or business. Confirm with the NPI or date of birth before acting."
},
"metadata": { "credits_used": 3, "cache_hit": false }
}A column of providers goes in and one row per provider comes out
Upload a CSV with a provider column that holds an NPI, a name or a business name and download a result file with each provider's Result, the closest listing and the date of the list. The three rows here are invented.
- 1provider
- 2sample q example
- 31234567893
- 4sample supply nowhere
| provider | Result | Matches | Name | NPI | Exclusion Type | Excluded On | List Published | Credits Used |
|---|---|---|---|---|---|---|---|---|
| sample q example | Needs review | 1 | Sample Q Example | 1999000015 | License revoked, suspended or surrendered | 2024-01-15 | 2026-10-09 | 3 |
| 1234567893 | Clear | 0 | 2026-10-09 | 3 | ||||
| sample supply nowhere | Clear | 0 | 2026-10-09 | 3 |
Eight more result columns in the file: Business Name, Exclusion Type Code, Reinstated On, State, City, Specialty, Similar Entries and Checked By.
A word on every row
The Result column always holds Clear, Needs review, Excluded or Reinstated, so a provider who is on no list never reads as a blank row.
Every completed row is dated
Each row carries the date of the OIG list that was read, so the file is a record of what was checked and when.
A refused row is free
A row that is not a valid NPI or name, such as a lone surname or a bad check digit, fails without a charge, so cleaning a roster never bills for the typos.
One call returns a dated exclusion answer for a provider
One call turns an NPI, a name or a business name from an application, an invoice or a roster into an answer from the OIG list: whether it is excluded, needs review, was reinstated or is clear, with the exclusion type in plain words, the date it took effect and the date of the list that was read, and the raw JSON your code receives beside it.
- ResultNeeds review
- Matches1
- ListingSample Q Example
- Exclusion typeLicense revoked, suspended or surrendered
- Excluded on2024-01-15
- NPI on the listing1999000015
- SpecialtyRegistered nurse
- LocationSpringfield, IL
- Birth year1975
- Checked byName
- List published2026-10-09
- Next stepREVIEW
{
"classification": {
"found": true,
"outcome": "needs_review",
"match_count": 1,
"name": "Sample Q Example",
"npi": "1999000015",
"exclusion_type_text": "License revoked, suspended or surrendered",
"excluded_on": "2024-01-15",
"list_updated": "2026-10-09"
},
"insights": {
"oig_exclusion_result": {
"matches": [{ "birth_year": 1975, "match_basis": "name" }],
"data_source": "hhs_oig_leie"
}
},
"recommendations": { "primary_action": "REVIEW" },
"metadata": { "credits_used": 3 }
}Every exclusion check returns the same fields at one flat price
A field the OIG list does not hold comes back as null and never as a guess, and every completed check costs the same 3 credits.
Outcome
- found
- outcome
- result_label
- excluded
- query_type
- match_count
- similar_count
Closest listing
- name
- business_name
- npi
- specialty
- city
- state
- general_category
- birth_year
Exclusion
- exclusion_type_code
- exclusion_type_text
- exclusion_basis
- excluded_on
- reinstated_on
- waiver_on
- waiver_state
How it matched
- match_basis
- score
- state_match
- name_agrees
- matches[]
- other_candidates[]
The list that was read
- list_updated
- list_stale
- list_checked_at
- list_entries
- total_matches
- total_candidates
- npi_listed
Healthcare employers, staffing agencies and payers check the list before they hire or pay
Healthcare employers screening candidates and staff
Check each candidate before an offer and each employee on a monthly schedule, and keep the dated answer with the file as the record of what was checked.
Staffing agencies placing clinicians
Check a nurse, therapist or physician by name or NPI before a placement, and hold a placement that comes back as needs review until someone confirms with the NPI.
Payers and billing companies checking vendors
Run the vendor, contractor and billing-company names on a payee file through a bulk job before payments go out, and review only the rows that come back as needs review or excluded.
Credentialing teams verifying a provider file
Start from the NPI on the file, check it against the list, then check the name too, since most listings carry no NPI, and attach the answer to the credentialing record.
Practices and clinics onboarding contractors
Check a locum, a contractor or a new practice partner the day they are added to payroll, instead of waiting for the next audit.
Compliance teams running a monthly roster check
Upload the roster as a CSV each month after the OIG publishes, and review the rows whose Result is not Clear, with the list date written on every row.
Every completed check is billed, and an entry that cannot be checked is free
An NPI on the list is excluded, a name that matches is needs review, and a check that finds nothing is clear and still billed because the dated answer is what you pay for. A refused entry and an unreadable list cost nothing.

These are the questions people ask before they run their first exclusion check
What does the OIG Exclusion Check API return?
Send a provider's NPI, a person's name or a business name and it returns one of four outcomes: excluded, needs review, reinstated or clear. With it come the match count, the closest listing's name, NPI, exclusion type in plain words, exclusion date, specialty and location, and the date of the list that was read. Every listing found is under insights, with the birth year the OIG recorded and how the match was made.
Where does the exclusion data come from?
From the List of Excluded Individuals and Entities that the HHS Office of Inspector General publishes. Medicare, Medicaid and the other federal health care programs do not pay for anything an excluded person or business furnishes, orders or prescribes, so employers, staffing agencies and payers check it. Every answer carries list_updated, the date of the list that was read.
How current is the list, and can I ask again?
The OIG replaces its list once a month, by the 10th, and list_updated names the publication that was checked. A repeat check of the same provider by the same user within 24 hours comes from the cache at no charge, because a new exclusion should reach a screen within a day. Send bypass_cache: true to run the check again instead of reusing the saved answer.
How much does an exclusion check cost?
3 credits per check, about $0.01 on the Starter plan. Every completed check is charged, including one that finds nothing, because a dated "no match" is the answer you are paying for. A malformed entry, a list that could not be read and a repeat of the same check by the same user within 24 hours cost 0 credits, in the API, the dashboard and bulk jobs.
What does needs review mean?
That the name you sent matches a listing on the OIG list. A name alone is not proof it is the same person or business, so the API never calls a name match excluded. Each listing carries the NPI, birth year, specialty and location the OIG recorded, so you can confirm who it is before you act. primary_action is REVIEW.
When does the API say a provider is excluded?
When the NPI you sent is on the list. An NPI is an exact identifier, so a hit is treated as the provider itself and primary_action is REVIEW. If you send an NPI and a name together and the name does not match the name on the list for that NPI, the answer says so.
Does a clear result mean the provider is fine?
It means nothing on the OIG list matched, and list_updated says which publication was checked. About 1 in 10 listings carries an NPI, so a clear check by NPI alone returns primary_action VERIFY and tells you to also check by name. A clear name check with no look-alike entries returns APPROVE for that list. State Medicaid exclusion lists are separate.
Does the state I send change the result?
No. A state never removes a match, because an exclusion applies in every state and people move. A listing in another state stays in the answer and is marked state_match: false, and the listings in the state you sent rank first.
What can I send, and what is refused?
Send npi (10 digits, with its check digit verified), or provider (a first and last name, or a business name, 2 to 120 characters), and an optional two-letter state. The business field takes a business name of even one word, and matches business listings only. Titles such as Dr and Jr are dropped, and word order, case and accents do not matter. A lone surname, a bad check digit and odd characters are refused with a clear error before anything is charged.
Can it tell two people with the same name apart?
It gives you what the OIG recorded to do that: the NPI, the birth year, the specialty, the city and state, and the exclusion date. It returns the birth year and never the full date of birth, and it takes no date of birth or Social Security number as input. The OIG's own online search can confirm an identity with an SSN or EIN, which this API does not take.
How is the exclusion type described?
In plain words, such as License revoked, suspended or surrendered, together with the section code (1128b4) and whether the basis is mandatory or permissive. The text is written from the OIG's own page on exclusion authorities, and a code the API does not know comes back as the raw code.
Does it cover state Medicaid lists or monitor a provider every month?
No. It checks the OIG list only: state Medicaid exclusion lists and the federal System for Award Management exclusions are separate, and it does not watch a provider over time. To keep a roster current, run the list again each month and compare, or schedule a bulk job.
What happens if the OIG list cannot be read?
The API answers 503 with a Retry-After header, charges nothing and does not save the answer, so a retry is never a second charge. A copy of the list up to 10 days old is used first, and the result then says list_stale: true. A failed read is never returned as no match.
Does it return providers who were reinstated?
Rarely. The OIG removes a provider from its file when it reinstates them, so a reinstated provider normally reads clear. An NPI whose listing still carries a reinstatement date comes back as reinstated, with the date, and primary_action is VERIFY.
Can I check a list of providers at once?
Yes. Upload a CSV with a provider column holding an NPI, a name or a business name and you get a row per provider with a Result word, the match count and the closest listing. A row that is not a valid NPI or name fails without a charge. The price stays at the same credits per completed check, however long the list is.
To check a single provider before you write any code, run it through the free OIG exclusion check.
The exclusion list is one check, and these products cover the rest
Here is how checking a provider with 1Lookup compares with the other ways to check the exclusion list
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.