Look up plan year-over-year crosswalk
GET /v1/health/plans/crosswalk
Maps a plan from one year to the next. Shows if the plan ID changed, was discontinued with a replacement, or was discontinued with no replacement. Requires Pro or Enterprise subscription.
Authorizations
Section titled “Authorizations ”Parameters
Section titled “ Parameters ”Query Parameters
Section titled “Query Parameters ”14-character HIOS standard_component_id. No variant suffix (e.g., 47163FL0810001 not 47163FL0810001-01).
Example
47163FL0810001Source plan year. Crosswalk maps plans from this year to year+1. Currently only 2025 is available.
Example
20252-letter state code. Only FFM and SBE-FP states (30 states) have crosswalk data.
Example
FLResponses
Section titled “ Responses ”Crosswalk result mapping a plan from one year to the next
Year-over-year plan crosswalk result showing how a plan maps from one year to the next
object
object
A HAL link object (draft-kelly-json-hal-11 §5)
object
Target URI or URI Template
True when href is an RFC 6570 URI Template
Media type hint for the target resource
Human-readable link title
The plan being looked up (previous year)
object
14-character HIOS standard_component_id
Example
47163FL0810001Plan year
Example
20252-letter state code
Example
FLPlan marketing name
Example
Ambetter Essential Care 1 (2025)5-digit HIOS issuer ID
Example
47163Insurance company name
Example
Ambetter of Sunshine HealthThe mapped plan in the next year. null when crosswalk_reason is ‘plan_discontinued_no_replacement’.
object
14-character HIOS standard_component_id
Example
47163FL0810003Plan year
Example
20262-letter state code
Example
FLPlan marketing name
Example
Ambetter Essential Care 25-digit HIOS issuer ID
Example
47163Insurance company name
Example
Ambetter of Sunshine HealthHuman-readable crosswalk reason
CMS crosswalk reason code: 0 = default crosswalk, 1 = plan ID changed, 2 = discontinued with replacement, 3 = discontinued with no replacement, 6 = county-level crosswalk, 7 = issuer change, 8 = service area change, 10 = multi-factor crosswalk
Data origin
Example
puf_dataData freshness label
Example
{ "_links": { "self": { "href": "https://api.opelyx.com/v1/health/plans/crosswalk?plan_id=47163FL0810001&year=2025&state=FL", "type": "application/json" } }, "source_plan": { "plan_id": "47163FL0810001", "year": 2025, "state": "FL", "name": "Ambetter Essential Care 1 (2025)", "issuer_id": "47163", "issuer_name": "Ambetter of Sunshine Health" }, "target_plan": { "plan_id": "47163FL0810003", "year": 2026, "state": "FL", "name": "Ambetter Essential Care 2", "issuer_id": "47163", "issuer_name": "Ambetter of Sunshine Health" }, "crosswalk_reason": "plan_id_changed", "reason_code": 1, "data_source": "puf_data", "data_freshness": "PY2026 CMS PUF (30 FFM) + state exchange data (21 SBM). All 50 states + DC covered"}Headers
Section titled “Headers ”Unique request identifier for tracing
RFC 8288 Web Linking (pagination and resource discovery)
Weak ETag for conditional request support (If-None-Match)
Invalid parameters (invalid plan_id format, unsupported year, SBM-only state)
RFC 9457 Problem Details for HTTP APIs (application/problem+json)
object
URI identifying the problem type. about:blank for standard HTTP status semantics.
Short human-readable summary of the problem type
HTTP status code
Human-readable explanation specific to this occurrence
URI reference identifying the specific occurrence (request path)
Validation errors (extension member, present on 400 responses)
object
Dot-delimited path to the invalid field
Validation error message
Minimum subscription tier required (extension member, present on 402 responses)
URL to upgrade subscription (extension member, present on 402/429 responses)
Example
{ "type": "https://api.opelyx.com/problems/not-found", "title": "Not Found", "status": 404, "detail": "Plan 99999XX0000000-00 not found.", "instance": "/v1/health/plans/99999XX0000000-00"}Missing or invalid API key
RFC 9457 Problem Details for HTTP APIs (application/problem+json)
object
URI identifying the problem type. about:blank for standard HTTP status semantics.
Short human-readable summary of the problem type
HTTP status code
Human-readable explanation specific to this occurrence
URI reference identifying the specific occurrence (request path)
Validation errors (extension member, present on 400 responses)
object
Dot-delimited path to the invalid field
Validation error message
Minimum subscription tier required (extension member, present on 402 responses)
URL to upgrade subscription (extension member, present on 402/429 responses)
Example
{ "type": "https://api.opelyx.com/problems/not-found", "title": "Not Found", "status": 404, "detail": "Plan 99999XX0000000-00 not found.", "instance": "/v1/health/plans/99999XX0000000-00"}Headers
Section titled “Headers ”Bearer authentication challenge
Feature requires a higher-tier subscription
RFC 9457 Problem Details for HTTP APIs (application/problem+json)
object
URI identifying the problem type. about:blank for standard HTTP status semantics.
Short human-readable summary of the problem type
HTTP status code
Human-readable explanation specific to this occurrence
URI reference identifying the specific occurrence (request path)
Validation errors (extension member, present on 400 responses)
object
Dot-delimited path to the invalid field
Validation error message
Minimum subscription tier required (extension member, present on 402 responses)
URL to upgrade subscription (extension member, present on 402/429 responses)
Example
{ "type": "https://api.opelyx.com/problems/not-found", "title": "Not Found", "status": 404, "detail": "Plan 99999XX0000000-00 not found.", "instance": "/v1/health/plans/99999XX0000000-00"}Plan not found in crosswalk data
RFC 9457 Problem Details for HTTP APIs (application/problem+json)
object
URI identifying the problem type. about:blank for standard HTTP status semantics.
Short human-readable summary of the problem type
HTTP status code
Human-readable explanation specific to this occurrence
URI reference identifying the specific occurrence (request path)
Validation errors (extension member, present on 400 responses)
object
Dot-delimited path to the invalid field
Validation error message
Minimum subscription tier required (extension member, present on 402 responses)
URL to upgrade subscription (extension member, present on 402/429 responses)
Example
{ "type": "https://api.opelyx.com/problems/not-found", "title": "Not Found", "status": 404, "detail": "Plan 99999XX0000000-00 not found.", "instance": "/v1/health/plans/99999XX0000000-00"}Rate limit exceeded
RFC 9457 Problem Details for HTTP APIs (application/problem+json)
object
URI identifying the problem type. about:blank for standard HTTP status semantics.
Short human-readable summary of the problem type
HTTP status code
Human-readable explanation specific to this occurrence
URI reference identifying the specific occurrence (request path)
Validation errors (extension member, present on 400 responses)
object
Dot-delimited path to the invalid field
Validation error message
Minimum subscription tier required (extension member, present on 402 responses)
URL to upgrade subscription (extension member, present on 402/429 responses)
Example
{ "type": "https://api.opelyx.com/problems/not-found", "title": "Not Found", "status": 404, "detail": "Plan 99999XX0000000-00 not found.", "instance": "/v1/health/plans/99999XX0000000-00"}Headers
Section titled “Headers ”Seconds until the rate limit resets
Maximum requests per day for this tier
Remaining requests today
Unix timestamp when the limit resets (midnight UTC)