Plans and plan years
The API takes marketplace plan ids and Medicare Advantage contract-plan-segment ids. Each answer names the plan year it is about.
Plan id formats
| MARKET | FORMAT | EXAMPLE |
|---|---|---|
| Marketplace | 5-digit insurer id, 2-letter state, 7 digits (14 characters) | 29276OH0970001 |
| Marketplace variant | The 14 characters plus a 2-digit variant, with or without a dash | 29276OH0970001-01 |
| Medicare Advantage | Contract (H or R and 4 digits), plan number, segment | H2526-001-000 |
Ids are not case sensitive. A Medicare Advantage id without a segment (H2526-001) means segment 000. Any other format answers 400 invalid_plan_id.
Marketplace variants
Insurer directories list providers under the 14-character plan id, so a variant id is checked against its plan. plan_id in the answer is the 14-character id, input_plan_id echoes what you sent, and plan.variant holds the variant.
{ "data": { "npi": "1184617268", "plan_id": "29276OH0970001", "input_plan_id": "29276OH0970001-01", "market": "aca", "plan_years_listed": [ 2026 ], "in_network": true, "answer": "listed", "explanation": "The insurer's network directory lists this provider for this plan.", "evidence": [ { "plan_id": "29276OH0970001", "plan_year": 2026, "network_tier": "PARTICIPATING", "source": { "type": "insurer_directory", "as_of": "2026-07-27" } } ], "plan_year": 2026, "plan": { "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", "variant": "01" }, "source": { "type": "insurer_directory", "as_of": "2026-07-27" }, "as_of": "2026-07-27" }}
Plan years
A plan can have listings for more than one plan year. Without year, a check looks at every year we hold and plan_year is the newest year listed. With year, the answer covers that year only.
curl https://api.inplan.io/v1/check \ -H "Authorization: Bearer $INPLAN_KEY" \ -G -d npi=1184617268 -d plan_id=29276OH0970001 -d year=2026
year must be a 4-digit year from 2025 to 2030. plan_years_listed lists every year in which the directory lists the provider. GET /v1/plans/{plan_id} returns available_years for a plan.
Plan details
GET /v1/plans/{plan_id} returns the name, insurer or organization, plan type and, for marketplace plans, metal level and state. Medicare Advantage plans add the service area, star rating and premium range. listings.has_listings tells you whether we hold provider listings for the plan.
{ "data": { "market": "ma", "plan_id": "H2526-001-000", "plan_year": 2027, "plan_name": "DEVOTED CHOICE 001 OH (PPO)", "contract_id": "H2526", "contract_name": "DEVOTED HEALTH PLAN OF OHIO INC", "organization": "Devoted Health", "parent_organization": "Devoted Health, Inc.", "plan_type": "PPO", "category": "MA-PD", "snp": { "is_snp": false, "type": "Not Applicable" }, "service_area": { "states": [ "OH" ], "counties": 78 }, "star_rating": 4.5, "monthly_premium": { "min": 0, "max": 0 }, "plan_details_available": true, "listings": { "has_listings": true, "as_of": "2026-10-29" }, "input_plan_id": "H2526-001-000", "available_years": [ 2027, 2026 ], "links": { "providers": "/v1/plans/H2526-001-000/providers", "check": "/v1/check?plan_id=H2526-001-000&npi={npi}" } }}
When we hold listings for a plan but not its details, plan_details_available is false and the name fields are null.
Prescription drug plans
Ids that start with S are prescription drug plans. They have no provider network, so a check answers no_provider_network with in_network: null.