Plans that list a provider
Every plan whose network directory lists the provider, marketplace plans first, each with its plan year, source type and date. Filter by market, state and year; page with offset.
WHEN TO USE IT
Use it to show every plan that keeps a provider, for example to quote plans that keep a client's doctors. To answer for one known plan, call GET /v1/check.
PATH PARAMETERS
| NAME | DESCRIPTION |
|---|---|
npistring · Required | The provider's 10-digit National Provider Identifier. We validate the check digit. Example: 1184617268 |
QUERY PARAMETERS
| NAME | DESCRIPTION |
|---|---|
marketstring · aca or ma · Optional | aca for marketplace plans, ma for Medicare Advantage plans. Omit for both.Example: ma |
statestring · Optional | 2-letter state. Marketplace plans: the plan's state. Medicare Advantage plans: a state in the plan's service area. Example: OH |
yearinteger · Optional | Only plans for this plan year (2025 to 2030). Example: 2026 |
limitinteger · default 500 · max 2,000 · Optional | Plans per page. |
offsetinteger · default 0 · Optional | Plans to skip. Use next_offset from the previous page. |
RESPONSE FIELDS
Every response has the envelope request_id, data_as_of, data, sources and notes (details). Fields of data:
| FIELD | DESCRIPTION |
|---|---|
npistring | The NPI you asked for. |
provider_statesstring[] | States of the provider's practice locations. |
filtersobject | The filters you sent (null when not sent). |
filters.marketstring | null | aca, ma or null. |
filters.statestring | null | The state filter. |
filters.yearinteger | null | The plan year filter. |
totalinteger | Plans that match the filters, across all pages. |
countsobject | The total, split by market. |
counts.acainteger | Marketplace plans that match. |
counts.mainteger | Medicare Advantage plans that match. |
offsetinteger | The offset of this page. |
limitinteger | The page size. |
next_offsetinteger | null | The offset for the next page, or null on the last page. |
plansobject[] | The plans on this page: marketplace plans first, then Medicare Advantage plans. |
plans[].marketstring | aca or ma. |
plans[].plan_idstring | The plan id. |
plans[].plan_yearinteger | The plan year of this listing. |
plans[].plan_namestring | null | The plan name, when we hold plan details. |
plans[].issuerobject | Marketplace plans: the insurer. |
plans[].issuer.idstring | The 5-digit insurer id. |
plans[].issuer.namestring | null | The insurer name, when we hold it. |
plans[].statestring | Marketplace plans: the plan state. |
plans[].metal_levelstring | null | Marketplace plans: the metal level. |
plans[].plan_typestring | null | HMO, PPO, EPO, POS and similar. |
plans[].network_tiersstring[] | Marketplace plans: the tiers the directory names for this provider. |
plans[].plan_details_availableboolean | true when plan name, metal level and plan type are included. |
plans[].sourceobject | Where this listing comes from. |
plans[].source.typestring | insurer_directory or plan_directory. |
plans[].source.as_ofdate | null | The date we read that directory. |
plans[].organizationstring | Medicare Advantage plans: the organization that offers the plan. |
plans[].snpobject | Medicare Advantage plans: special needs plan details. |
plans[].snp.is_snpboolean | true for a special needs plan. |
plans[].snp.typestring | The special needs plan type, as published. |
plans[].service_area_statesstring[] | Medicare Advantage plans: states in the plan's service area. |
plans[].accepting_new_patientsboolean | null | Medicare Advantage plans: whether the directory says the provider accepts new patients. |
plans[].provider_kindstring | Medicare Advantage plans: the kind of provider listed. |
plans[].taxonomystring | Medicare Advantage plans: the provider taxonomy code listed with the network entry. |
plans[].provider_state_in_service_areaboolean | null | Medicare Advantage plans: true when one of the provider's states is in the service area, null when either side is unknown. |
RESPONSES
A page of plans. total counts every match; next_offset is null on the last page.
{ "request_id": "req_EEsgYcNXpuC_ijmU", "data_as_of": "2026-10-29", "data": { "npi": "1184617268", "provider_states": [ "OH" ], "filters": { "market": null, "state": null, "year": 2026 }, "total": 46, "counts": { "aca": 46, "ma": 0 }, "offset": 0, "limit": 2, "next_offset": 2, "plans": [ { "market": "aca", "plan_id": "29276OH0970001", "plan_year": 2026, "plan_name": "Anthem Bronze Pathway 10600 ($0 Virtual PCP + $0 Select Drugs)", "issuer": { "id": "29276", "name": "Anthem Blue Cross and Blue Shield" }, "state": "OH", "metal_level": "Bronze", "plan_type": "HMO", "network_tiers": [ "PARTICIPATING" ], "plan_details_available": true, "source": { "type": "insurer_directory", "as_of": "2026-07-27" } }, { "market": "aca", "plan_id": "29276OH0970002", "plan_year": 2026, "plan_name": "Anthem Heart Healthy Bronze Pathway 6000 ($0 Virtual PCP + $0 Select Drugs)", "issuer": { "id": "29276", "name": "Anthem Blue Cross and Blue Shield" }, "state": "OH", "metal_level": "Expanded Bronze", "plan_type": "HMO", "network_tiers": [ "PARTICIPATING" ], "plan_details_available": true, "source": { "type": "insurer_directory", "as_of": "2026-07-27" } } ] }, "sources": [ { "type": "insurer_directory", "description": "Provider network directories published by health insurers", "as_of": "2026-10-29" }, { "type": "plan_catalog", "description": "Published health plan catalogs", "as_of": "2026-10-28" }, { "type": "plan_directory", "description": "Provider network directories published by Medicare Advantage plans", "as_of": "2026-10-29" } ], "notes": [ "Network directories change. Confirm with the plan or the provider before care." ]}
With market=ma: Medicare Advantage plans add service area, new-patient and provider-kind fields.
{ "request_id": "req_lUbO6VDvdYSs2XWz", "data_as_of": "2026-10-29", "data": { "npi": "1184617268", "provider_states": [ "OH" ], "filters": { "market": "ma", "state": null, "year": null }, "total": 36, "counts": { "aca": 0, "ma": 36 }, "offset": 0, "limit": 1, "next_offset": 1, "plans": [ { "market": "ma", "plan_id": "H2526-001-000", "plan_year": 2027, "plan_name": "DEVOTED CHOICE 001 OH (PPO)", "organization": "Devoted Health", "plan_type": "PPO", "snp": { "is_snp": false, "type": "Not Applicable" }, "service_area_states": [ "OH" ], "accepting_new_patients": true, "provider_kind": "practitioner", "taxonomy": "207X00000X", "plan_details_available": true, "source": { "type": "plan_directory", "as_of": "2026-10-29" }, "provider_state_in_service_area": true } ] }, "sources": [ { "type": "plan_directory", "description": "Provider network directories published by Medicare Advantage plans", "as_of": "2026-10-29" }, { "type": "plan_catalog", "description": "Published health plan catalogs", "as_of": "2026-10-28" } ], "notes": [ "Network directories change. Confirm with the plan or the provider before care.", "A plan's network can include providers outside the plan's service area. Compare service_area_states with the provider's location." ]}
An invalid NPI or filter.
{ "type": "invalid_npi", "title": "Invalid NPI", "status": 400, "detail": "\"1234567890\" fails the NPI check digit (Luhn with prefix 80840).", "instance": "/v1/providers/1234567890/plans", "request_id": "req_tJFUtTPOxNSXJtXb", "docs": "https://inplan.io/docs/errors#invalid_npi"}
The Authorization header is missing or malformed, or the key is unknown or revoked.
{ "type": "unauthorized", "title": "Missing API key", "status": 401, "detail": "Send `Authorization: Bearer ip_live_...`.", "instance": "/v1/providers/1184617268/plans", "request_id": "req_ItpJcJKIUQZ1dBDx", "docs": "https://inplan.io/docs/errors#unauthorized"}
We hold no provider record and no plan listing for this NPI.
{ "type": "not_found", "title": "Provider not found", "status": 404, "detail": "No provider found for NPI 1999999984.", "instance": "/v1/providers/1999999984/plans", "request_id": "req_HVipN6sy7kXyvBYe", "docs": "https://inplan.io/docs/errors#not_found"}
ERROR FORMAT
Errors use application/problem+json (RFC 7807) with type, title, status, detail, instance, request_id and docs. Other statuses this endpoint can return: 403 (plan, account or demo-key limit), 429 (rate limit or quota) and 503 (busy or timed out). See Errors.
RATE-LIMIT HEADERS
Every response that passes the key and plan checks carries RateLimit-Limit, RateLimit-Remaining, RateLimit-Reset, RateLimit-Policy, X-Quota-Limit, X-Quota-Remaining, X-Quota-Reset and X-Request-Id. Limits apply to each key. See Rate limits and quotas.
| PLAN | REQUESTS A SECOND | CALLS A MONTH |
|---|---|---|
| Free | 2 | 500 |
| Builder | 10 | 25,000 |
| Growth | 25 | 150,000 |
| Scale | Set with you | Set with you |