NPI Data Services logo NPI Registry API
Workflow Guide

Provider Onboarding Automation — NPI, PECOS & LEIE at Day One

Updated June 9, 2026 · VBC Risk Analytics

Every new provider joining a network, health plan, or platform requires the same set of data: active NPI, primary taxonomy, practice address, Medicare enrollment status, and OIG exclusion status. Collecting these manually means opening NPPES, the PECOS web portal, and the OIG LEIE website for each new provider — typically 10–15 minutes per provider. The NPI Registry API retrieves all five data points in a single REST call, making it possible to complete the data-collection step of provider onboarding in under one second per provider.

Provider onboarding checklist — what the API covers

Onboarding stepAPI automated?Endpoint
Confirm NPI is active in the registry Yes findbyNPIId — 200 response = active NPI
Collect primary taxonomy and specialty Yes taxonomy_code, taxonomy_desc in response
Collect practice and mailing address Yes location array in response
Verify Medicare PECOS enrollment Yes in_pecos, enrlmt_id, pac_id
Screen OIG LEIE exclusion list Yes in_leie flag in every response
Collect authorized official (organizations) Yes organization.auth_official_first_name etc.
State licensure verification No State medical board — separate primary source
DEA registration No DEA database — separate verification

Onboarding API call and response

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

# All fields collected at onboarding — one call:
{
  "npi":           1053500652,
  "status":        "success",
  "organization":  [{ "org_name": "LEVEL HOME HEALTH INC.",
                      "auth_official_first_name": "KELLY",
                      "auth_official_last_name":  "DECKELMAN",
                      "auth_official_title":      "ADMINISTRATOR" }],
  "taxonomy":      [{ "taxonomy_code": "251E00000X",
                      "taxonomy_desc": "Agencies: Home Health",
                      "prim_taxonomy_switch": "Y" }],
  "location":      [{ "addr_fl": "260 S LOS ROBLES AVE STE 101",
                      "addr_city": "PASADENA", "addr_state": "CA",
                      "addr_post_cd": "911012869", "telephone": "9492060691" }],
  "entity_type":   [{ "in_pecos": "Y", "in_leie": "N",
                      "enum_date": "2007-10-18" }],
  "medicare_enrlmt": [{ "enrlmt_id": "O20080407000727",
                        "pac_id": "4284711805",
                        "provider_type_dec": "PART A PROVIDER - HOME HEALTH AGENCY",
                        "state_cd": "CA" }]
}

Automated onboarding pipeline (Python)

This pipeline processes a batch of new providers, validates each against the API, and writes a structured onboarding record ready to load into your provider master data system:

import time, requests, csv

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

def onboard_provider(npi):
    r = requests.get(BASE_URL,
                     params={"NPIId": npi},
                     headers={"ApiKey": API_KEY},
                     timeout=5)
    if r.status_code == 404:
        return {"npi": npi, "status": "INVALID_NPI", "block_reason": "NPI not in registry"}

    r.raise_for_status()
    d = r.json()

    entity = (d.get("entity_type")     or [{}])[0]
    tax    = (d.get("taxonomy")         or [{}])[0]
    loc    = (d.get("location")         or [{}])[0]
    enrlmt = (d.get("medicare_enrlmt")  or [{}])[0]
    org    = (d.get("organization")     or [{}])[0]
    ind    = (d.get("individual")       or [{}])[0]

    # Block onboarding if excluded from federal programs
    if entity.get("in_leie") == "Y":
        return {"npi": npi, "status": "BLOCKED", "block_reason": "OIG LEIE exclusion"}

    name = org.get("org_name") or (
        f"{ind.get('first_name','')} {ind.get('last_name','')}".strip()
    )

    return {
        "npi":           npi,
        "status":        "APPROVED",
        "name":          name,
        "taxonomy_code": tax.get("taxonomy_code", ""),
        "taxonomy_desc": tax.get("taxonomy_desc", ""),
        "city":          loc.get("addr_city", ""),
        "state":         loc.get("addr_state", ""),
        "zip":           loc.get("addr_post_cd", ""),
        "phone":         loc.get("telephone", ""),
        "in_pecos":      entity.get("in_pecos", ""),
        "enrlmt_id":     enrlmt.get("enrlmt_id", ""),
        "pac_id":        enrlmt.get("pac_id", ""),
        "provider_type": enrlmt.get("provider_type_dec", ""),
        "enum_date":     entity.get("enum_date", ""),
    }

# New provider applications received today
new_providers = ["1053500652", "1184713042", "1023374782"]
results = []

for npi in new_providers:
    result = onboard_provider(npi)
    results.append(result)
    print(f"NPI {npi}: {result['status']}")
    time.sleep(0.1)

# Write onboarding records for approved providers
approved = [r for r in results if r["status"] == "APPROVED"]
blocked  = [r for r in results if r["status"] != "APPROVED"]

with open("onboarding_records.csv", "w", newline="") as f:
    writer = csv.DictWriter(f, fieldnames=results[0].keys())
    writer.writeheader()
    writer.writerows(approved)

print(f"\n{len(approved)} approved, {len(blocked)} blocked for review.")

Onboarding flow

Provider NPI findbyNPIId Validate fields Load to provider master or Block & flag for review

Entire flow completes in < 1 second per provider. State licensure and DEA verification run as separate parallel steps.

Ongoing verification after onboarding

Onboarding verification is a point-in-time check. Provider data changes after the initial onboarding — enrollments lapse, exclusions are added, addresses change. A complete provider lifecycle management workflow includes:

See Provider Credentialing Automation for the full re-credentialing pipeline.

Related guides

Automating provider onboarding?

The NPI Registry API returns NPI status, taxonomy, address, PECOS enrollment, and OIG LEIE exclusion in a single call — the complete data-collection step of onboarding in under one second. Start a free trial to test the response format.

Explore the API & start a free trial →

Frequently asked questions

What is provider onboarding automation?
Replacing manual portal lookups at the start of a provider relationship. A single findbyNPIId call returns NPI status, taxonomy, address, PECOS enrollment, and LEIE exclusion — the data-collection step of onboarding in under one second.

What data should I collect at provider onboarding?
NPI status, primary taxonomy, practice address, Medicare PECOS enrollment status, and OIG LEIE exclusion status. State licensure, DEA, and malpractice history require separate primary source verification.

How long does API-based provider onboarding take?
Under one second per provider for the NPI, PECOS, and LEIE steps. Manual lookups across three portals take 10–15 minutes per provider for the same data.

Can I automate provider onboarding for a large network?
Yes. Starter (12,500 req/month) covers most networks. Pro (125,000 req/month) fits large health systems and staffing platforms. Enterprise provides custom quotas and a dedicated SLA.

Written by Chin Ramamoorthi

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