RosterProofrosterproof

Exclusion screening API

api.rosterproof.com · one key, three endpoints · weekly snapshot of every list

Screen an NPI, a person or an organization against the OIG LEIE, SAM.gov, the FDA debarment and investigator-disqualification lists and 40 state Medicaid exclusion lists in one call. Same published data as the Snowflake listing and the download files, loaded weekly. Free plan: 500 lookups per calendar month, 100 queries per request. Machine-readable spec: openapi.json.

1. Get a key

curl -s https://api.rosterproof.com/v1/keys \
  -H 'Content-Type: application/json' \
  -d '{"email":"you@organization.com","org":"Example Health"}'
# -> {"api_key":"rp_live_…","plan":"free","monthly_lookups":500,"max_queries_per_request":100}   (shown once)

Or get one here.

By creating or using a key you agree to the Terms of Use. The data is for compliance screening; North Carolina and Texas records are non-commercial by their agencies' terms (Attribution & Notices).

2. Look up one NPI

curl -s https://api.rosterproof.com/v1/npi/1891616215 -H 'Authorization: Bearer rp_live_…'
{
 "as_of": "2026-10-09",
 "npi": "1891616215",
 "hit": true,
 "matches": [{
   "source_id": "CA", "jurisdiction": "CA", "entity_type": "INDIVIDUAL",
   "last_name": "…", "first_name": "…", "state": "CA",
   "exclusion_reason": "…", "exclusion_authority": "W&I Code 14043.6 / Medi-Cal S&I",
   "exclusion_start": "2025-01-01", "exclusion_end": null, "is_active": true,
   "npi": "1891616215", "npi_origin": "VERIFIED_WITH_NPPES", "npi_status": "ACTIVE_IN_NPPES",
   "tier": {"confidence": "LOW", "basis": "AI-adjudicated match among ambiguous candidates - human review required", "score": 0.9},
   "needs_human_review": true,
   "source_attribution": "https://rosterproof.com/attribution#CA"
 }],
 "notice": "VERIFY BEFORE ADVERSE ACTION: …",
 "attribution": "https://rosterproof.com/attribution"
}

3. Screen a batch

curl -s https://api.rosterproof.com/v1/screen -H 'Authorization: Bearer rp_live_…' \
  -H 'Content-Type: application/json' \
  -d '{"npis":["1891616215","1234567893"],
       "names":[{"last":"Smith","first":"John","state":"CA"}],
       "organizations":[{"name":"Quality Poultry and Seafood Inc."}]}'
# -> {"as_of":"…","lookups":4,"hits":2,"results":[{"query":{"npi":"1891616215"},"match_method":"NPI (NPPES-verified)","matches":[…]}, …]}

NPI queries are exact against NPPES-verified matches (and source-printed NPIs). Name queries are exact on the normalized name (accents and suffix tokens like Jr., MD ignored) with optional state; they can return namesakes — read tier, npi_origin and needs_human_review before acting. Organization queries match the normalized business name.

4. Poll for changes

curl -s 'https://api.rosterproof.com/v1/changes?since=2026-10-01&limit=1000' -H 'Authorization: Bearer rp_live_…'
# -> {"count":1000,"next_cursor":123456,"changes":[{"change_type":"ADDED","observed_at":"…","record":{…}}, …]}
# page with &cursor=<next_cursor> until next_cursor is null

Limits, status, terms

GET /v1/status (no key) returns the snapshot date and counts. Rate-limit headers (X-RateLimit-Limit / -Remaining / -Reset, per calendar month, UTC) come back on every authenticated call; the free plan is 500 lookups per calendar month and 100 queries per request — over the month's limit returns 429 with resets_at, and a larger request returns 400. Email support@rosterproof.com for a higher limit. Every response carries the notice: verify any hit against the source agency (and OIG's SSN-based search for LEIE) before adverse action, and the attribution pointer; NC and TX records are included under non-commercial permissions (see the use label). RosterProof is the exclusion and owner-screening layer that feeds compliance, payment-integrity, and fraud programs — not a fraud detector.

Prefer a spreadsheet? Screen my providers runs this API from your browser. How the data behind every response is collected and matched: RosterProof Methodology (PDF, 2 pages).