Medicaid Exclusion Screener — OIG LEIE + State Name/NPI Check avatar

Medicaid Exclusion Screener — OIG LEIE + State Name/NPI Check

Pricing

from $5.50 / 1,000 results

Go to Apify Store
Medicaid Exclusion Screener — OIG LEIE + State Name/NPI Check

Medicaid Exclusion Screener — OIG LEIE + State Name/NPI Check

Screen names & NPIs against merged Medicaid/Medicare exclusion lists. Deduped OIG LEIE + state (NY OMIG) exclusions, name+NPI searchable, with a screen-verdict mode returning excluded yes/no, which list, and match confidence. Keyless. Screening/research tool, not compliance advice.

Pricing

from $5.50 / 1,000 results

Rating

0.0

(0)

Developer

Kyle Maloney

Kyle Maloney

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

0

Monthly active users

3 days ago

Last modified

Share

Medicaid Exclusion Screener - OIG LEIE + State (NY OMIG) NPI/Name/DOB Check

Screen provider names, NPIs and dates of birth against a merged Medicaid/Medicare exclusion list - the federal OIG LEIE (HHS-OIG List of Excluded Individuals/Entities, 83,665 records) plus state Medicaid exclusion lists (New York OMIG live, 8,975 records; more states scaffolded) - in one keyless actor.

Two modes:

  • Screen (verdict) - hand it a batch of {name?, npi?, dob?} targets and get a gated verdict per target. This is the compliance workflow and the primary MCP tool surface.
  • Search - browse/filter the merged exclusion list by name, NPI, or state.

This is a screening tool over public government lists, for research and due diligence. It is not a certified OIG/SAM screening service, not a compliance determination, and not legal advice. Confirm every hit - and every clear - against the primary source list before making an employment, enrollment, credentialing or payment decision.

The four verdicts, and why a clear is not always available

screening_verdict is the field to read. It is gated: it can never say "clear" while a list this run asked for was unavailable.

screening_verdictWhat it means
excluded_identifier_confirmedMatched on an exact 10-digit NPI, or on a name corroborated by an exact date-of-birth match.
possible_match_review_requiredName-only match. Not an identity determination. The LEIE contains many same-name individuals - screening the name Mary Smith returns 10 distinct records, 7 of them exact-name, all different people. Adjudicate against the primary source.
no_match_on_screened_listsEvery requested list loaded, passed its live drift assertions, and nothing matched. excluded is false.
incomplete_not_screenedA requested list could not be loaded. excluded is null, not false. Nothing is asserted about this target.

excluded is tri-state and must be read that way: true = matched, false = screened and clear, null = not screened. If every requested list fails, the run fails loudly and emits and bills nothing.

Why this matters (v1.0 defect, fixed 2026-08-01): v1.0 logged a warning and carried on when a list failed to load, then reported every unmatched target as excluded: false, match_type: "no-match". Reproduced live: the NY-OMIG excluded entity 1 MEDICAL SUPPLIES CORP (NPI 1407487887) screened against a LEIE-only merge returned a billable, confident "not excluded". With both lists down, every target came back clean and the run reported SUCCESS.

Two things to know about the underlying data

  1. Only ~10.5% of federal LEIE records carry an NPI (8,767 of 83,665, measured 2026-08-01). NPI-only screening cannot cover the list; most exclusions are reachable only by name.
  2. 94.9% of LEIE records carry a date of birth (79,372 of 83,665). Supplying dob on a person target is the single most effective way to turn an ambiguous name match into a decision: an exact DOB match promotes the row to excluded_identifier_confirmed, and a contradicting DOB rejects the match outright (same name, provably different person).

Who it's for

  • Healthcare credentialing and provider enrollment teams verifying practitioners are not excluded.
  • Payer, pharmacy, MSO and hospital compliance teams - CMS requires monthly exclusion screening of employees, contractors and vendors.
  • Revenue-cycle and billing vendors avoiding claims tied to excluded providers.
  • AI agents doing due diligence: call this as a tool and read back a structured, gated verdict.

Example input (screen mode - the prefilled default)

{
"mode": "screen",
"targets": [
{ "npi": "1972902351" },
{ "name": "John Smith" },
{ "name": "Nonexistent Testperson Xyz" }
],
"fuzzyThreshold": 0.85
}

Returns an identifier-confirmed hit, name-only review items, and a verified clear - the three outcomes you need to see before trusting the tool.

Person screening with a date of birth:

{
"mode": "screen",
"targets": [
{ "name": "Jane Q Provider", "npi": "1234567890" },
{ "name": "Gregory Testington", "dob": "1970-01-01" }
]
}

Example input (search mode)

{ "mode": "search", "npi": "1972902351" }

Other search filters: name (contains + fuzzy), state (e.g. NY). Rows are merged, not deduplicated - a party listed both federally and by a state returns one row per list, so you can see each authority separately.

Output fields (41)

Verdict and match

FieldMeaning
screened_inputThe name or NPI that was queried (screen target, or the search filter value).
screening_verdictGated verdict - see the table above.
verdict_reasonPlain-language explanation, including the caveat when the match rests on a name alone.
excludedTri-state: true matched, false screened and clear, null not screened.
identifier_matchtrue when the match rests on an exact NPI, or a name corroborated by an exact DOB.
name_only_matchtrue when a name string is the only basis for the match. A review item, never a determination.
dob_matchtrue/false when both target and record carried a DOB; null when no comparison was possible.
match_typeexact-npi, exact-name, fuzzy-name, no-match, or not-screened.
match_confidence0-1. 1.0 for exact NPI or exact name; normalized similarity for fuzzy-name; 0 for a verified miss; null when not screened.

Per-source outcome contract (on every row)

FieldMeaning
screening_completetrue only when every requested list loaded and passed its live drift assertions.
lists_requestedComma-separated keys of every list this run attempted.
lists_screenedThe lists that actually loaded. The verdict is valid only against these.
lists_unavailableRequested lists that failed to load or failed a drift assertion. null on a complete run.
list_errorsPer-list failure detail for anything in lists_unavailable.
records_screenedTotal merged exclusion records the target was screened against.
oig_leie_statusok / unavailable / not_requested.
ny_omig_statusok / unavailable / not_requested.
ca_medi_cal_statusnot_requested until that source URL is confirmed and enabled.
tx_oig_hhsc_statusnot_requested until that source URL is confirmed and enabled.

The exclusion record

FieldMeaning
list_sourceOIG-LEIE, NY-OMIG, ... null on a verdict-only row.
last_name, first_name, middle_nameExcluded individual name (null for entities).
business_nameExcluded entity name (null for individuals).
npi10-digit NPI. Populated on ~10.5% of LEIE records.
upinLegacy Unique Physician Identification Number (5,957 LEIE records). A secondary corroborating identifier.
dobDate of birth, YYYY-MM-DD (79,372 LEIE records). The field that separates same-name individuals.
license_numberProvider licence number where the source publishes one (NY OMIG).
exclusion_typeStatutory authority code, e.g. 1128a1, 1128b4. Closed 22-value vocabulary, asserted live.
exclusion_dateEffective date, YYYY-MM-DD.
reinstatement_dateReinstatement date where published.
waiver_dateWaiver date where a waiver applies.
waiver_stateTwo-letter state a waiver was granted for (LEIE WVRSTATE).
specialtyProvider specialty or type.
general_categoryCoarse provider category, e.g. NURSING PROFESSION, DME COMPANY.
address, city, state, zipAddress of the excluded party where listed.
source_urlLink to the authoritative source list for verifying the row.
retrieved_atISO 8601 timestamp of the fetch.

Sparse and structurally-null columns, with verified populating inputs

A dead-column audit over 259 live rows (2026-08-01) found four columns null. Each is accounted for, and each has an input recorded here so it can be re-verified:

ColumnStatusInput that populates it (verified live 2026-08-01)
waiver_date, waiver_stateSparse by nature - only 4 of 83,665 LEIE records carry a waiver{"mode":"screen","targets":[{"npi":"1285673012"}]} returns waiver_date 2015-06-18, waiver_state TX
upinSparse - 5,957 of 83,665 records{"mode":"screen","targets":[{"npi":"1871571406"}]} returns upin H95172
dob_matchPopulated only when the target supplies a dob AND the list record publishes one{"mode":"screen","targets":[{"name":"Mohamed Aswad","dob":"1968-06-18"}]} returns dob_match true, verdict excluded_identifier_confirmed; the same name with dob 1990-01-01 is correctly rejected as a different person
license_numberNY-OMIG rows only{"mode":"search","state":"NY","name":"pharmacy"} (163 of 252 rows populated)
reinstatement_dateStructurally always null against the current sources. OIG UPDATED.csv is the currently excluded list: REINDATE is non-zero on 0 of 83,665 records because reinstated parties are removed from the file entirely. The column is retained (it is part of the v1.0 contract, and the mapper is pinned by an offline fixture) and will populate if a source that publishes reinstatements is added.none today

Live drift assertions

Every run asserts the following before any billable row is produced, and fails the run when an assertion breaks:

  • the exact 18-column LEIE header and 5-column NY-OMIG header (a renamed or reordered column silently remaps every field)
  • record counts inside measured bands (LEIE 50,000-250,000; NY-OMIG 4,000-40,000)
  • freshness: the newest exclusion date must be within 200 days (LEIE) or 400 days (NY-OMIG)
  • population floors on NPI and DOB, so a parser that stops populating them cannot pass on row count alone
  • the closed 22-value exclusion_type vocabulary - an unknown statutory code fails the run rather than passing through
  • an HTML or markup body served with HTTP 200 (an error, login or maintenance page) is rejected as a list
  • a positive canary: a record from each list must be found by its own NPI and by its own name, round-tripping fetch to match
  • negative controls: an absent-but-valid NPI (9999999999) and a nonsense name must match nothing, which is what catches a matcher that has started matching everything

Every measured value is logged on every run ([drift] and [canary] lines) so the bands can be tightened on evidence.

Sources

KeyListFormatSource
OIG-LEIEFederal HHS-OIG List of Excluded Individuals/EntitiesCSVoig.hhs.gov/exclusions
NY-OMIGNew York State OMIG Medicaid Exclusionstab-delimitedomig.ny.gov
CA-MEDI-CALCalifornia DHCS Medi-Cal Suspended and Ineligible (scaffolded, disabled)-files.medi-cal.ca.gov
TX-OIG-HHSCTexas HHSC-OIG Exclusions (scaffolded, disabled)-oig.hhs.texas.gov

Use the lists input to restrict which lists load. A scaffolded list cannot be loaded until its source URL and columns are confirmed; asking for one on its own fails the run rather than returning an empty, clean-looking result.

Use as an MCP tool

Callable by AI agents (Claude, Cursor, etc.) via mcp.apify.com. Field-level descriptions let an agent screen a name, NPI or DOB and read back screening_verdict, identifier_match, name_only_match and screening_complete, so an agent can tell "clear" from "not checked" without guessing.

Pricing

Pay-Per-Event: one dataset record (one exclusion match or one screen verdict) is the billable unit, with graduated discounts on paid Apify plans. A run that fails its drift assertions emits nothing and bills nothing beyond the fractional actor start.

FAQ

How do I check if a provider is excluded from Medicare/Medicaid? Run mode: "screen" with the provider name, NPI and (for people) date of birth in targets. Read screening_verdict.

Why does a name match not say "excluded"? Because a name is not an identity. Screening Mary Smith returns 10 records for different people. A name match is reported as possible_match_review_required and must be adjudicated against the primary source using an identifier and a date of birth.

What happens if a list is down? Nothing is reported clear. Affected targets come back excluded: null with screening_verdict: "incomplete_not_screened" and lists_unavailable naming the list. If every requested list is down the run fails and bills nothing.

Does it cover the federal OIG LEIE and state Medicaid exclusion lists? The federal OIG LEIE plus New York OMIG today; California and Texas are scaffolded and disabled until their sources are confirmed.

Is this an official OIG screening or a compliance determination? No. It screens public government lists for research and due diligence. Confirm any hit, and any clear, against the official source before making an employment, enrollment or payment decision.

  • License Verifier - state professional licence status across 19 boards, with the same identifier-first matching discipline.
  • KYB Company Verifier - cross-registry business verification for the entity side of a vendor check.
  • Sanctions Screening List Change Monitor - OFAC / BIS / State denied-party deltas from the Trade.gov Consolidated Screening List.