# OIG Exclusion Check: Screen NPIs Against the LEIE (`overlookdata/npimcp-oig-exclusion-check`) Actor

Screen a roster of NPIs against the HHS OIG exclusion list (LEIE). One row per NPI: excluded yes/no, exclusion type, date, and plain-English reason. Schedule it monthly for recurring re-screening. $3 per 1,000 NPIs checked.

- **URL**: https://apify.com/overlookdata/npimcp-oig-exclusion-check.md
- **Developed by:** [Aaron Melton](https://apify.com/overlookdata) (community)
- **Categories:** Other, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$3.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## OIG Exclusion Check by NPI

Paste or upload a list of NPIs. Get one row back per NPI: whether that provider appears on the HHS OIG List of Excluded Individuals/Entities (LEIE), and if so, the exclusion type, effective date, a plain-English reason (mapped from the statutory codes), and reinstatement date if any. Every response includes the LEIE publication date it was checked against.

### Three results, never a silent miss

Every NPI you submit returns exactly one row with one of three results in the `exclusion_check` field:

- **excluded**: the NPI matches an LEIE exclusion record (reinstatement date included when one exists)
- **clear**: the provider exists in the registry and has no NPI-matched LEIE exclusion
- **indeterminate**: the NPI could not be found at all

An NPI we cannot find is reported as indeterminate, never as clear. Your compliance filter can key on that one field without ever mistaking an unknown for a pass.

### Every row tells you who was checked

Each NPI resolves against our normalized copy of the full NPPES registry (9.4M providers), so every result row carries the provider's name (or business name) and practice state alongside the exclusion result. When a check flags a hit, your reviewer can confirm it is the right person on your roster, not just a matching number. Screeners that check the LEIE file alone cannot do this at roster scale.

### Why screen monthly

Exclusion screening is not a one-time task. Federal guidance requires checking exclusion lists monthly for Medicaid-participating organizations (42 CFR 455.436), and NCQA credentialing standards now expect monthly screening as well. The OIG updates the LEIE monthly. This actor is built for that cadence: **use Apify's built-in scheduling to run your roster automatically every month** and land the results in the same dataset.

### Typical uses

- Scrub a marketing or outreach list of sanctioned providers before a campaign
- Monthly re-screen of an active provider roster for compliance workflows
- Pre-engagement checks on referral or partner lists

### What this checks, and what it does not

This actor checks the **LEIE by NPI match**. Two honest limitations you should know:

1. **LEIE coverage by NPI is partial.** Many LEIE records, mostly older exclusions, were recorded without an NPI. An NPI-based check cannot match those records. A clean result here means "no NPI-matched LEIE exclusion," not "this person has never been excluded."
2. **The LEIE is one list.** Full regulatory screening programs also check SAM.gov and state Medicaid exclusion lists, and match on name and date of birth as well as identifiers.

**This actor complements a full multi-source screening program. It does not replace one.** It is built for fast, cheap, recurring NPI-level checks at bulk scale, not as certified compliance tooling.

### Use from AI agents (MCP)

This actor works as an MCP tool out of the box. Point your agent at `mcp.apify.com` with this actor enabled and it can screen NPIs directly ("check these 200 NPIs against the OIG exclusion list"). Results land in a dataset your agent can read back.

### Pricing

**$3 per 1,000 NPIs checked** ($0.003 per row). Every NPI you submit returns exactly one row (excluded, clear, or indeterminate), and each row is one billable event. A 5,000-provider monthly roster re-screen costs $15/month.

### Data source

HHS OIG LEIE (public, updated monthly by OIG) joined against the CMS NPPES registry. Provider enrollment data only; no patient data, no HIPAA scope.

# Actor input Schema

## `npis` (type: `array`):

List of 10-digit NPI numbers. Each NPI produces one billable result row. Duplicates in the list are deduplicated before lookup. Capped at 10,000 NPIs per run; a longer list is truncated and the dropped count is reported in the run's status message and log.

## Actor input object example

```json
{
  "npis": [
    "1013135656",
    "1003005323",
    "9999999999"
  ]
}
```

# Actor output Schema

## `exclusion_results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "npis": [
        "1013135656",
        "1003005323",
        "9999999999"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("overlookdata/npimcp-oig-exclusion-check").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "npis": [
        "1013135656",
        "1003005323",
        "9999999999",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("overlookdata/npimcp-oig-exclusion-check").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "npis": [
    "1013135656",
    "1003005323",
    "9999999999"
  ]
}' |
apify call overlookdata/npimcp-oig-exclusion-check --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=overlookdata/npimcp-oig-exclusion-check",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/1brXiOZDW6n2l4x8K/builds/KVd1pYaHcKqSNaV6E/openapi.json
