The article explains checking if a healthcare professional is barred from federal or state programs by searching government exclusion and sanction lists. It details three API methods—Search Exclusions and AdverseCheck Essentials —with varying source coverage. Results include matched identities, exclusion records, sanctions, and specialty certificates, each with detailed fields for verification.
Three ways to check
All three return the same kind of result — they differ in how you search and which sources they cover.
| Check | Endpoint | Sources searched |
|---|---|---|
| Search Exclusions | /v1/identity/search |
OIG, SAM, State Medicaid |
| AdverseCheck Essentials | /v1/adversecheck/essentials |
OIG, SAM, State Medicaid |
|
OIG, SAM, State Medicaid, OFAC, Medicare Opt Out |
Search Exclusions
An identity-based search — match on as many details as you have. Only name is required.
| Field | Required | What it is |
|---|---|---|
| name | Yes | The professional’s name. |
| license | No | The professional’s license number. |
| npi | No | 10-digit National Provider Identifier. |
| address | No | Address lines 1 and 2 (e.g. 123 S Central St, Apt 18). |
| city | No | City of residence. |
| state | No | State of residence. |
| zipCode | No | ZIP code (e.g. 01125). |
| dob | No | Date of birth, YYYYMMDD. Partial dates allowed (e.g. 1962 or 196205). |
{
"name": "Jordan Rivera",
"license": "RN1234567",
"npi": "1234567890",
"address": "123 S Central St, Apt 18",
"city": "Denver",
"state": "CO",
"zipCode": "01125",
"dob": "19820522"
}
AdverseCheck (Essentials & Pro)
Both share the same request shape — Pro simply searches more sources. Provide aliases and licenses to widen the match.
| Field | Required | What it is |
|---|---|---|
| name | Yes | The professional’s name. |
| names[] | No | Name plus aliases. If provided, the single name is ignored. Each entry has a name. |
| license[] | No | One or more licenses. Each: number (required), professionCode, stateCode (two-letter). |
| dob | No | Date of birth, YYYYMMDD (partial allowed). Coming soon. |
{
"name": "Jordan Rivera",
"names": [
{ "name": "Jordan Rivera" },
{ "name": "J. Rivera" }
],
"license": [
{ "number": "RN1234567", "professionCode": "RN", "stateCode": "CO" }
],
"dob": "19990121"
}
What comes back
Every check returns a code and a list of matched identities. found means at least one match; not_found means none.
| Field | What it tells you |
|---|---|
| code |
found or not_found. |
| items[] | The matched identities. |
| npi | NPI of the matched professional. |
| score | Match confidence score. |
| names[] | Name parts: first, middle, last, prefix, suffix, fullName. |
| phones[] | Phone numbers on the record. |
| exclusions[] | The exclusion / sanction records found — one entry per match. Detailed below. |
Inside each exclusion record
Every entry in exclusions[] describes a single match against one of the source lists. At minimum each carries a name object — the same name parts used elsewhere in the response — identifying who the sanctioning body listed.
| Field | What it tells you |
|---|---|
| first | First name as it appears on the source list. |
| middle | Middle name or initial, if the list carries one. |
| last | Last name as listed. |
| prefix | Name prefix (e.g. Dr.), if present. |
| suffix | Name suffix (e.g. Jr., III), if present. |
| fullName | The full name as a single string. |
Alongside the name, each record carries the exclusion itself — who issued it, why, and when — plus an address object for the listed person.
| Field | What it tells you |
|---|---|
| excludingAgency | The body that issued the exclusion (e.g. the OIG or a state Medicaid agency). |
| exclusionsType | The kind of exclusion or the reason for it. |
| excludedDate | When the exclusion took effect. |
| reinstatementDate | When the person was reinstated, if they have been. |
| licenseNumber | A license tied to the exclusion, where the list provides one. |
| profession | The profession recorded on the exclusion. |
| affiliation | An affiliated entity or organization. |
| dateOfBirth | Date of birth on the record. |
| additionalComments | Free-text notes from the source list. |
| listCode | Which source list the record came from. |
| address | Object: address, city, state, zipCode. |
reportType, reference, cageCode, or amendment, and structured sanction records (e.g. board orders and actions) and specialty-certificate details. Confirm against the originating list before acting.
{
"code": "found",
"items": [
{
"professional": {
"npi": "1234567890",
"score": 87,
"names": [
{ "first": "Jordan", "last": "Rivera", "fullName": "Jordan M Rivera" }
],
"phones": [ {} ],
"attributes": {
"exclusions": [
{
"name": { "first": "Jordan", "last": "Rivera", "fullName": "Jordan M Rivera" },
"address": { "city": "Denver", "state": "CO", "zipCode": "80202" },
"excludingAgency": "OIG",
"exclusionsType": "1128(a)(1)",
"excludedDate": "2021-03-18",
"reinstatementDate": null,
"profession": "RN",
"listCode": "LEIE"
}
]
}
}
}
]
}score
Sanctions & Specialty Certificates
Besides exclusions[], a match’s attributes can carry two other kinds of structured record. Each is tagged with a type so you know how to read it.
Sanctions
Disciplinary sanctions gathered from multiple sources. The type identifies the source format — for example sanction::fsmb for Federation of State Medical Boards data. A sanction groups one or more orders, and each order groups one or more actions.
| Field | What it tells you |
|---|---|
| type | The source format, e.g. sanction::fsmb. |
| entity | The body that issued the sanction (e.g. Department of Health and Human Services). |
| orders[] | The disciplinary orders. Each has a date, effectiveDate, code, and description. |
| actions[] | The actions under an order. Each has a code, description, effectiveDate, expirationDate, and a basis object (code + description). |
{
"type": "sanction::fsmb",
"entity": "Department of Health and Human Services",
"orders": [
{
"date": "2025-07-18",
"effectiveDate": "2025-08-01",
"code": "OP",
"description": "Other prejudicial action",
"actions": [
{
"code": "A0244",
"description": "License suspension",
"effectiveDate": "2025-08-01",
"expirationDate": "2026-08-01",
"basis": { "code": "B0049", "description": "Unprofessional conduct" }
}
]
}
]
}Specialty Certificates
Board specialty certifications, tagged type: "specialtyCertificate". The detail object describes the certificate and its current standing; recertifications[] lists the renewal history.
| Field | What it tells you |
|---|---|
| type |
specialtyCertificate. |
| certificateName & certificateType | The certificate and its type. |
| memberBoardName | The certifying member board (with memberBoardId). |
| mocPathwayName | Maintenance-of-certification pathway, if any (with mocPathwayId). |
| currentDurationType | How the certificate’s current term is measured (e.g. time-limited). |
| initialCertification | The first certification: startDate, endDate, durationType, reverificationDate. |
| recertifications[] | Each renewal: startDate, endDate, durationType, reverificationDate. |
{
"type": "specialtyCertificate",
"detail": {
"certificateId": 100234,
"certificateName": "Internal Medicine",
"certificateType": "General",
"memberBoardId": 12,
"memberBoardName": "American Board of Internal Medicine",
"mocPathwayId": null,
"mocPathwayName": null,
"currentDurationType": "Time-limited",
"initialCertification": {
"startDate": "2007-07-01",
"endDate": "2017-02-28",
"durationType": "TL",
"reverificationDate": "2016-12-01"
}
},
"recertifications": [
{
"durationType": "TL",
"startDate": "2025-03-01",
"endDate": "2035-03-01",
"reverificationDate": "2034-12-01"
}
]
}type field rather than assuming a fixed shape.