NPI Data Services logo NPI Registry API
Compliance Guide

OIG Exclusion Screening API — Automate LEIE Monthly Checks

Updated June 9, 2026 · VBC Risk Analytics

Billing Medicare or Medicaid for services provided by an excluded provider can trigger Civil Monetary Penalties — up to $20,000 per item or service billed, plus up to three times the amount claimed, plus exclusion from federal programs (penalty amounts subject to annual inflation adjustment). The OIG updates its List of Excluded Individuals/Entities (LEIE) monthly, which means a provider who was clean at hiring can become excluded at any point afterward. The NPI Registry API returns an in_leie flag in every provider lookup, making it possible to screen your entire roster in a single automated batch job rather than manually checking each provider on the OIG website.

What OIG exclusion screening is

The OIG LEIE is a federal database of individuals and entities excluded from participating in Medicare, Medicaid, and other federal healthcare programs. Exclusions result from fraud convictions, patient abuse, license revocations, and other integrity violations. OIG updates the LEIE monthly with new exclusions and reinstatements.

OIG compliance guidance recommends that healthcare organizations:

The penalty for non-compliance is not theoretical — CMS enforces CMPs against organizations that bill for excluded providers, regardless of whether the organization knew of the exclusion at the time of billing.

The in_leie flag in the API response

Every findbyNPIId response includes an in_leie field:

curl -X GET   'https://restapi.npidataservices.com/api/v1/findbyNPIId?NPIId=1053500652'   -H 'ApiKey: YOUR_API_KEY'

# Relevant exclusion field in the response:
{
  "entity_type": [{
    "in_leie": "N",    // "Y" = on OIG exclusion list — stop billing immediately
    "in_pecos": "Y"
  }]
}

When in_leie returns "Y", the provider has an active OIG exclusion record linked to their NPI. Billing federal programs with an excluded provider should stop immediately and the compliance team should be notified.

Monthly batch screening pipeline (Python)

Run this script on a monthly schedule against your full provider roster. It screens every provider in a single pass and generates an alert report of any new exclusions:

import time, requests, csv
from datetime import date

API_KEY  = "YOUR_API_KEY"
BASE_URL = "https://restapi.npidataservices.com/api/v1/findbyNPIId"

def screen_provider(npi):
    r = requests.get(BASE_URL,
                     params={"NPIId": npi},
                     headers={"ApiKey": API_KEY},
                     timeout=5)
    if r.status_code == 404:
        return {"npi": npi, "in_leie": "UNKNOWN", "note": "NPI not found"}
    r.raise_for_status()
    d   = r.json()
    ent = (d.get("entity_type") or [{}])[0]
    org = (d.get("organization") or [{}])[0]
    ind = (d.get("individual")   or [{}])[0]
    name = org.get("org_name") or f"{ind.get('first_name','')} {ind.get('last_name','')}".strip()
    return {
        "npi":      npi,
        "name":     name,
        "in_leie":  ent.get("in_leie", ""),
        "in_pecos": ent.get("in_pecos", ""),
        "screened": str(date.today()),
    }

# Load your provider roster
roster = ["1053500652", "1184713042", "1023374782"]

results  = []
excluded = []
for npi in roster:
    result = screen_provider(npi)
    results.append(result)
    if result.get("in_leie") == "Y":
        excluded.append(result)
    time.sleep(0.1)

# Write full screening log
with open("leie_screening_log.csv", "w", newline="") as f:
    writer = csv.DictWriter(f, fieldnames=results[0].keys())
    writer.writeheader()
    writer.writerows(results)

# Alert on any exclusions found
if excluded:
    print(f"ALERT: {len(excluded)} excluded provider(s) found:")
    for r in excluded:
        print(f"  NPI {r['npi']} — {r['name']} — STOP BILLING IMMEDIATELY")
else:
    print(f"Screening complete: {len(results)} providers checked, 0 exclusions found.")

Real-time exclusion screening at point of service

For organizations that need to verify exclusion status before each patient encounter or claim submission, the same findbyNPIId call can be integrated into your workflow system:

def is_excluded(npi):
    """Returns True if the provider is on the OIG LEIE exclusion list."""
    r = requests.get(BASE_URL,
                     params={"NPIId": npi},
                     headers={"ApiKey": API_KEY},
                     timeout=5)
    if not r.ok:
        return None   # unknown — fail safe, block the encounter
    d   = r.json()
    ent = (d.get("entity_type") or [{}])[0]
    return ent.get("in_leie") == "Y"

# Example: pre-authorization check
billing_npi = "1053500652"
if is_excluded(billing_npi):
    raise ValueError(f"Provider {billing_npi} is OIG excluded — cannot bill")

OIG exclusion screening workflow

Provider roster findbyNPIId in_leie flag N = clear or Y = alert compliance

Run monthly for OIG compliance. Retain screening logs with timestamps for audit documentation.

Important: The NPI-based match works only when OIG has recorded an NPI for the excluded individual. Older exclusions and some individual practitioners may appear in the LEIE without an NPI — those records will not be caught by in_leie alone. For complete compliance coverage, supplement API screening with a name-based search against the OIG exclusion database for any provider whose identity cannot be confirmed by NPI.

Scope limitations — federal LEIE only

The in_leie flag covers the federal OIG LEIE. It does not cover:

For most Medicare and Medicaid billing compliance programs, federal LEIE screening is the primary requirement. State-level supplementation is recommended for organizations with significant Medicaid billing volume.

Related guides

Need to automate monthly OIG exclusion screening?

The NPI Registry API returns the in_leie flag in every provider lookup — screen your entire roster in a single batch job with no manual OIG website checks. The Pro plan covers monthly screening for rosters up to 25,000 providers.

Explore the API & start a free trial →
Need this without writing code?

Provider Signals gives compliance and credentialing teams a dashboard for monthly OIG exclusion screening and NPPES deactivation alerts — upload a roster CSV, get flagged providers back. No API integration required.

Explore Provider Signals →

Frequently asked questions

What is OIG exclusion screening?
Checking whether a provider, employee, or contractor appears on the OIG LEIE exclusion list. Billing federal programs with an excluded person triggers Civil Monetary Penalties of up to $20,000 per item or service billed, plus up to three times the amount claimed (amounts subject to annual inflation adjustment). OIG recommends monthly screening for all employees and contractors.

How does the in_leie flag work?
Every findbyNPIId response includes in_leie: "Y" if the NPI is linked to an active OIG LEIE exclusion, or "N" if no exclusion is found. The flag is checked against monthly-updated OIG data.

Does the in_leie flag cover state Medicaid exclusion lists?
No — it covers the federal OIG LEIE only. Organizations billing state Medicaid programs should supplement with state-level exclusion list screening. See LEIE API for the full scope.

How often should I screen providers against the LEIE?
OIG recommends monthly. Screen at hire, then monthly thereafter. The Pro plan (125,000 req/month) covers monthly screening for rosters up to 25,000 providers.

Written by Chin Ramamoorthi

CEO, NPI Data Services — a VBC Risk Analytics company — 20+ years in healthcare data, provider data management, and risk analytics.