Download OpenAPI specification:
Visit our Developer Portal to create an account.
Once you have created an account, you can create one Application for your Production environment and another for a Sandbox (select the appropriate Plan when you create the Application).
To authenticate, pass the API Key you created in the Developer Portal as a Vericred-Api-Key header.
curl -H 'Vericred-Api-Key: YOUR_KEY' "https://api.ideonapi.com/networks?search_term=Anthem"
Ideon's API is versioned by endpoint. The current default version for all endpoints is v6.
Some endpoints feature additional functionality with versions v7, v8, or v9, which can be accessed using the Accept-Version header.
For each endpoint, we will indicate in the documentation which version(s) are available.
v9 is the current version for Small Group Medical group quoting — Create a Quote, Show a Quote, and Display Rates. It introduces structured plan_filters and outputs on the quote request, per-carrier progress in carrier_results, and group- and member-level eligibility exceptions returned inline with rates (quote_exceptions and member_exceptions) in place of the standalone Limiting Factors endpoint.
The API specifications for the latest available version will always be shown. Specifications for prior versions are available via request through Ideon support.
curl -H 'Vericred-Api-Key: YOUR_KEY' -H 'Accept-Version: v7' "https://api.ideonapi.com/networks?search_term=Anthem"
Endpoints that accept page and per_page parameters are paginated. They expose
four additional fields that contain data about your position in the response,
namely Total, Per-Page, Link, and Page as described in RFC-5988.
For example, to display 5 results per page and view the second page of a
GET to /networks, your final request would be GET /networks?....page=2&per_page=5.
Ideon uses HTTP codes to indicate the success or failure of an API request. Codes in the 2xx range indicate success. Codes in the 4xx range indicate an error given the request and/or credentials provided. Codes in the 5xx range indicate an error with Ideon's servers.
| HTTP Code | Description |
|---|---|
| 200 | The request was successful. |
| 201 | The request was successful and a resource was created. |
| 204 | The request was successful and no content is returned. |
| 400 | The request body is malformed (invalid JSON) or a secondary validation check failed. |
| 401 | The API request requires user authentication. Refer to our Authentication section above. |
| 403 | The API key doesn't have permissions to perform the request. |
| 404 | The resource was not found. |
| 405 | The HTTP Method is not allowed. Are you doing a GET when it's a POST? |
| 422 | There is something invalid or missing in the request body. |
| 429 | Too many requests hit the API too quickly. |
| 500 | The Ideon server encountered an unexpected condition which prevented it from fulfilling the request. |
| 503 | The Ideon server timed out when processing the request. |
All endpoints allow you to specify which fields you would like to return. This allows you to limit the response to contain only the data you need.
For example, let's take a request that returns the following JSON by default
{
provider: {
id: 1,
name: 'John',
phone: '1234567890',
field_we_dont_care_about: 'value_we_dont_care_about'
},
states: [{
id: 1,
name: 'New York',
code: 'NY',
field_we_dont_care_about: 'value_we_dont_care_about'
}]
}
To limit our results to only return the fields we care about, we specify the
select in the query string for a GET or the body for a POST.
In this case, we want to select name and phone from the provider key,
so we would add the parameters select=provider.name,provider.phone.
We also want the name and code from the states key, so we would
add the parameters select=states.name,states.code. The id field of
each document is always returned whether or not it is requested.
Our final request would be GET /providers/1234567898?select=provider.name,provider.phone,states.name,states.code
The response would be
{
provider: {
id: 1234567898,
name: 'John',
phone: '1234567890'
},
states: [{
id: 1,
name: 'New York',
code: 'NY'
}]
}
All endpoints are rate-limited per API key. The default limit is 150 requests per minute for most endpoints. Bulk and search endpoints may have lower per-minute limits.
When the limit is exceeded the API returns 429 Too Many Requests with a Retry-After header
indicating seconds to wait before retrying. Every successful response includes X-RateLimit-Limit
(your ceiling) and X-RateLimit-Remaining (requests left in the current window).
All API responses support gzip compression. Send Accept-Encoding: gzip to receive compressed
responses — strongly recommended for large datasets such as Bulk Plans exports.
This API supports Cross-Origin Resource Sharing (CORS). The Access-Control-Allow-Origin: * header
is returned on all responses, enabling browser-based clients to call the API directly.
Ideon's Plan and Rate Data let you search and quote Major Medical and Ancillary Insurance Plans in a given area for a particular family in the Individual Market or a group of families in the Small Group Market. Ideon provides the relevant data via this API and via our Bulk Format (documented below)
A Plan defines the set of Benefits available to its purchaser. Plans are exposed across nine product lines — Major Medical (ACA), Medicare Advantage, Dental, Vision, Life, Disability, Accident, Critical Illness, and Hospital Indemnity — each accessible through dedicated search and show endpoints under the Plan Lookup tag group.
Major Medical plans are the ACA-compliant individual and small-group plans regulated by CMS. Benefits cover the full range of essential health benefits — primary care visits, specialist visits, hospitalization, pharmacy, mental health, preventive care, and so on. Each benefit can carry in-network and out-of-network cost shares (copays, coinsurance), and deductibles and out-of-pocket maximums are tracked at both the individual and family level. Plans are categorized by metal level (Bronze, Silver, Gold, Platinum, Catastrophic) and plan type (HMO, PPO, EPO, POS), and they're rated by CMS-defined Rating Areas.
Medicare Advantage plans are private alternatives to Original Medicare, regulated by CMS. They typically include the same core hospital and medical coverage as Original Medicare, often bundle prescription drug coverage (MAPD plans), and frequently add supplemental benefits like dental, vision, hearing, fitness, and over-the-counter allowances. Plan types include HMO, PPO, PFFS, SNP (Special Needs Plans), and MSA. PDP (Prescription Drug Plans), which provide drug coverage standalone alongside Original Medicare, are also returned through the Medicare Advantage endpoints.
Benefit field definitions, including how cost-share values are structured for each product line, are documented in the Benefit Grammar Guides on the Ideon integration guides site. The grammar guides are the authoritative reference for parsing benefit values returned from the API across all nine product lines.
Rates are returned from the API as a part of Quoting. We calculate Rates in one of two ways.
When a Carrier supplies us with Sheet Rates, we display exactly the value provided to us. For example, in the Major Medical market, most Carriers provide a single rate for each combination of Applicant age and tobacco status in a given Rating Area. For example, in Austin, TX, a 21-year-old non-tobacco-user may be $312.41 per month while a 22-year-old tobacco-user may be $401.75 per month. Certain Vision and Dental Carriers supply Sheet Rates as well, though it is less common.
Certain Major Medical Carriers and most Vision and Dental Carriers supply Rate Factors. The attributes on which the factors are based are the same as Sheet Rates for the Major Medical market (due to restrictions on what factors may be used in ACA Plans, which limit the possible factors to age and tobacco status).
In Dental and Vision, the types of Rate Factors are more varied. For example, SIC Code and Group size in the Group market and Gender in the Individual Market are commonly used Rate Factors
Other common Rate Factors for Dental and Vision products are Geographic and "Trend" (enrollment date) Factors. In Major Medical, these types of variance are handled by CMS-defined Rating Areas.
In order to calculate a Rate using Rate Factors, the following methodology is applied:
B = Base Rate
f = Rate Factor Function 1
f' = Rate Factor Function 2
B * f(x) * f'(y) [* f''(z)] ... = n
For Major Medical products, CMS defines Rating Areas. Under the ACA, all Rate Factors in a Rating Area must be identical for a given time period. E.g. in Arizona, the rate for a 21-year-old non-tobacco user must be identical in all counties contained in Rating Area 1 (Mohave, Coconino, Apache, and Navajo), but may be different than the rate for a 21-year-old non-tobacco user in all counties Rating Area 2 (Yavapai county only) for a given year in the Individual Market and a given quartern in the Small Group market.
Rating Areas are defined either by County, Zip Code or both, depending on the State. Because of this variance, all API endpoints that require a Location require both zip_code and fips_code (a county code). Bulk Data for Rating Areas and Service Areas also specifies locations using both zip_code and fips_code.
Rating Areas do not apply to products other than Major Medical
CMS mandates that Major Medical Rates be defined by Rating Areas, which themselves define a geography in which Plans are offered. Carriers often choose not to offer a Plan in and entire Rating Area due to network coverage or other factors. Instead, the Carrier would define a Service Area that specifies where a given Plan is offered.
Each Plan is available in a single Service Area and each Service Area is defined by either County, Zip Code, or both, depending on the Carrier. Because of this variance, all API endpoints that require a Location require both zip_code and fips_code (a county code). Bulk Data for Rating Areas and Service Areas also specifies locations using both zip_code and fips_code.
In Dental and Vision plans, we use a Service Area to define availability as well, although it typically mirrors a Geographic Rate Factor.
One of the primary use-cases for the Ideon API is to run Quotes to determine the Rate for a given family (in the Individual Market) or group (in the Small Group Market). We support quoting across Major Medical, Vision, and Dental. In both cases, the process of generating a Quote is broken out into several steps:
Individual Quotes return available plans for a household or single applicant in either the Individual ACA market or the Medicare Advantage market. Quotes are generated synchronously in a single API call — no group setup, no asynchronous job, no polling. Submit the request, receive plans, premiums, benefits, and (when applicable) subsidy calculations in the response.
ACA Major Medical. Search Major Medical Plans is the entry point. The required inputs are minimal — a zip_code, fips_code, market (individual or small_group), and an applicants array — and the response returns all available plans with their premiums and benefits for the household. When household_income and household_size are supplied, federal Premium Tax Credits and state-funded subsidies (currently Vermont Premium Assistance and New Jersey Health Plan Savings) are calculated automatically and reflected in each plan's premium_subsidized. CSR plan variants are included when applicants are eligible.
Medicare Advantage. Search Medicare Advantage Plans is the entry point for Medicare. Inputs are simpler than ACA — Medicare Advantage premiums aren't rated by household demographics, so only zip_code, fips_code, and enrollment_date are required. The response returns Medicare Advantage (MA), Medicare Advantage with Prescription Drug coverage (MAPD), and standalone Prescription Drug Plans (PDPs) available in the location.
Shop by Doc. Both ACA and Medicare Advantage quote endpoints support inline evaluation of provider participation. Pass a providers array — each entry an NPI optionally paired with an address_id from Provider Search — and each returned plan carries a providers array indicating in-network status and qualifying addresses for every provider. The two-step workflow (Provider Search → quote with providers) is documented in detail on each endpoint's Shop by Doc sub-section.
Shop by Drug (ACA only). The ACA Major Medical endpoint supports inline formulary coverage checks. Pass a drug_packages array — entries reference drugs by NDC Package Code (id) or Med ID (med_id) from Drug Search — and the response includes a coverages array with formulary tier, prior authorization, quantity limit, and step therapy details for each drug on each plan. Shop by Drug is not currently supported on Medicare Advantage.
For complete request and response references, see the individual endpoint documentation under Quote – Individuals. For the full integration narrative — recommended UX patterns, identifier selection, error-handling, and renewal flows — see the Quote and Select integration guide.
Group Quotes return available plans and rates for an employer group's full census in a single asynchronous workflow. Unlike Individual Quotes, group quoting is multi-step: the group and its members are persisted as first-class resources, the quote runs as a background job, and results are retrieved through dedicated rate endpoints once processing is complete. This pattern scales to groups of thousands of members where running synchronous per-applicant quotes wouldn't be practical.
The current version of group quoting is v9 for Small Group Medical and ICHRA. Earlier versions (v6, v7, v8) remain accessible for backward compatibility.
The v9 Small Group Medical workflow.
Create the group. Create a Group registers the group with its situs (zip_code, fips_code), effective_date, sic_code, broker identifiers, and other census metadata. Returns a group id used downstream. For v9, company_tax_id and at least one of broker_npn or agency_npn are required.
Add the members. Create Members submits the census — each member with their age, gender, tobacco status, location, dependents, and any fields required by optional calculations (e.g. household_income for PTC subsidies, safe_harbor_income for ICHRA affordability).
(Optional) Attach supplemental data. Create Supplemental Data lets clients attach structured group-level context that influences carrier-specific quoting logic — for example, prior plan history, group size segmentation, or industry-specific attributes.
Create the quote. Create a Quote initiates the asynchronous quoting job. The request body controls the scope of the quote — calculations enables optional outputs like PTC subsidies and CSR eligibility, plan_filters narrows the carriers/networks/metal levels considered, and outputs enables ancillary deliverables like applicant-level premium breakdowns and bulk export files. The response returns a quote id and an initial pending status.
Poll for completion. Show a Quote reports current job status. Poll until status reaches a terminal state — complete, complete_with_errors, or failed.
Retrieve results. Three retrieval shapes:
id (best for selective retrieval).outputs.bulk_export_file.enabled was set at quote creation) delivers a JSONL file of all member results (best for groups above ~1,000 members).Show Limiting Factors returns plan-level and member-level exception codes explaining why specific carriers, plans, or members didn't appear in results — used to diagnose unexpectedly thin quote results. Exception code reference is documented in the Quote and Member Exception Codes section of the integration guide.
ICHRA quoting has its own dedicated workflow under Quote – ICHRA. The structure mirrors Small Group Medical (group → members → asynchronous quote → poll → retrieve), but the quote runs against the individual market on a member-by-member basis and supports ICHRA-specific calculations (minimum employer contribution, affordability against safe harbor and FPL). See the Quote – ICHRA section for the full ICHRA workflow.
Quote proposals. Create Quote Proposal generates a branded, customer-facing PDF proposal from a completed quote. Useful for broker-driven workflows where the deliverable to the end client is a document rather than a UI.
For complete request and response references, see the individual endpoints under Quote – Groups. For the integration narrative — recommended workflows for Small Group Medical, Level Funded, and ICHRA — see the Quote and Select integration guide.
A Provider is an individual or organization in the medical profession. For example, an individual doctor is a Provider as are certain clinics and hospitals.
Providers are related to Networks. A Network is a collection of Providers that are under a particular contract with a given Carrier. A given Carrier will often have multiple Networks. For example, there may be a large national Network as well as several smaller regional Networks.
Each Plan has a Network. A consumer who visits a Provider typically incurs fewer costs when visiting a Provider in the Network covered by his or her Plan. The premium for a Plan is often proportional to the size of its Network
Ideon's provider-network dataset powers two primary workflows: Shop by Doc (provider-driven quote shopping) and Care Navigation (in-network provider lookup against a known plan or network). Both are served by a single endpoint, Provider Search — the distinction is whether the request includes network_ids or plan_ids to scope results to in-network providers.
Shop by Doc is the workflow where an end user names the doctors they want to keep, and the system surfaces plans those doctors participate in. The two-step pattern: use Provider Search (without network filters, with a provider_name_search and geography) to identify the user's providers and capture their NPIs and address IDs, then pass those identifiers in the providers array on a quote endpoint (Search Major Medical Plans for individuals, Create a Quote for groups). Each returned plan carries a per-provider in-network indicator and the qualifying addresses where they're in-network.
Care Navigation is the inverse — the plan or network is already known, and the user is searching for in-network providers they could see. Submit Provider Search with network_ids (from Network Search) or plan_ids (HIOS IDs, Medicare contract codes, or Ideon plan IDs), plus geography (zip_code, center_point, or polygon) and any clinical filters (specialty_ids, type, accepts_insurance). The response carries a networks array on each provider detailing in-network status per network and a nested addresses array for each network containing only the addresses where the provider is in-network.
Optional analytical layers. Provider Search supports two entitlement-gated premium fields that add signal to results:
high, medium, low) indicating how likely a provider is actually practicing at a given address. Available for individual providers only (not organizations or hospitals). Recommended for filtering low-confidence addresses out of user-facing lists.See the Provider Search endpoint documentation for the full request/response reference, including the Shop by Doc, Address Confidence Scores, HealthCorum Quality Scores, and Ranking and Sorting sub-sections.
A network is the carrier-side construct that defines which providers a plan covers in-network. Networks are referenced indirectly through plans most of the time — a quoted plan's network ID is what feeds Provider Search for Care Navigation — but for Large Group Medical, Medicaid, and other markets where plans aren't pre-mapped to networks in the Ideon dataset, networks are resolved directly through Network Search.
A network's metadata describes both its applicability and its coverage: lines_of_coverage (medical, medicare_advantage, medicaid) and markets (individual, small_group, large_group) define the product lines and segments the network serves, and state_codes lists the states where the network has either a plan mapping or sufficient provider data. A single network can serve multiple product lines and markets.
For directed network discovery, combine line_of_coverage, market, carrier_id, and search_term. Carrier IDs are obtained from Carrier Search. If a known network isn't surfacing with all four filters in play, drop search_term first — it's the most restrictive filter and often over-narrows when carrier and product context are already specified.
Display a Network returns the full record for a single network by id, useful when a network identifier is already known and full metadata is needed.
Three additional Networks endpoints support analytical workflows on top of network identification:
For the complete field-level reference on provider records and network data, see the Provider Data Dictionary on the integration guides site.
Create and manage employer groups, their locations, and member census data. Groups are the starting point for all quoting workflows.
v9: At least one of broker_npn or agency_npn is now required. The documentation for this endpoint references this latest available version.
v8: Adds parameters for broker and group identification, including agency_name, agency_npn, broker_email, broker_name, broker_npn, and company_tax_id. The following fields are deprecated in this version: chamber_association, contact_email, contact_name, and contact_phone.
v6: Previous supported version.
Creates a group resource that serves as the basis for census data and quote creation. A successful response returns an id for the group and id values for each location; both are referenced in downstream endpoints (Create Members, Create a Quote, ICHRA quoting). The same group can be quoted multiple times across product lines and markets; re-creating the group is only necessary when the underlying data changes.
Field requirements vary by downstream use case. For v9 small group medical quoting and ICHRA quoting, the group must include company_tax_id and at least one of broker_npn or agency_npn. If both broker NPN and agency NPN are provided, broker_npn takes precedence and is the NPN associated with any quote created for the group — notably, UnitedHealthcare validates this NPN against its appointed-broker list. The sic_code is used for medical and ancillary quoting but not for ICHRA. For ICHRA quoting, the primary location's zip_code and fips_code drive the rating area determination.
TEST groups. When using template or dummy data for testing, append "TEST" to company_name to ensure the group is identifiable as non-production.
required | object (V8GroupCreate) Example: {"agency_name":"XYZ Agency","agency_npn":"1234567890","broker_email":"[email protected]","broker_name":"XYZ Brokerage","broker_npn":"1234567890","company_name":"Foo Bar, Inc.","company_tax_id":"123456789","external_id":"abc123","sic_code":"0700"} | ||||||||||||||||||
| |||||||||||||||||||
Array of objects (V8LocationCreate) Example: [{"external_id":"def123","fips_code":"36081","name":"Headquarters","number_of_employees":32,"primary":true,"zip_code":"11423"}] List of Locations | |||||||||||||||||||
Array
| |||||||||||||||||||
| X-RateLimit-Limit | integer Maximum requests allowed in the current rate-limit window (per minute) |
| X-RateLimit-Remaining | integer Requests remaining in the current rate-limit window |
object (V8GroupShow) Example: {"agency_name":"XYZ Agency","agency_npn":"1234567890","broker_email":"[email protected]","broker_name":"XYZ Brokerage","broker_npn":"1234567890","company_name":"Foo Bar, Inc.","company_tax_id":"123456789","external_id":"abc123","id":"b215b6bcdb","sic_code":"0700"} | |||||||||||||||||||||
| |||||||||||||||||||||
Array of objects (V8LocationShow) Example: [{"external_id":"def123","fips_code":"36081","id":"8be378c035","name":"Headquarters","number_of_employees":32,"primary":true,"zip_code":"11423"}] List of Locations | |||||||||||||||||||||
Array
| |||||||||||||||||||||
{- "group": {
- "agency_name": "XYZ Agency",
- "agency_npn": "1234567890",
- "broker_name": "XYZ Brokerage",
- "broker_npn": "1234567890",
- "company_name": "Foo Bar, Inc.",
- "company_tax_id": "123456789",
- "external_id": "abc123",
- "sic_code": "0700"
}, - "locations": [
- {
- "external_id": "def123",
- "fips_code": "36081",
- "name": "Headquarters",
- "number_of_employees": 32,
- "primary": true,
- "zip_code": "11423"
}
]
}{- "group": {
- "agency_name": "XYZ Agency",
- "agency_npn": "1234567890",
- "broker_name": "XYZ Brokerage",
- "broker_npn": "1234567890",
- "company_name": "Foo Bar, Inc.",
- "company_tax_id": "123456789",
- "external_id": "abc123",
- "id": "b215b6bcdb",
- "sic_code": "0700"
}, - "locations": [
- {
- "external_id": "def123",
- "fips_code": "36081",
- "id": "8be378c035",
- "name": "Headquarters",
- "number_of_employees": 32,
- "primary": true,
- "zip_code": "11423"
}
]
}v8: Adds parameters for broker and group identification, including agency_name, agency_npn, broker_email, broker_name, broker_npn, and company_tax_id. The following fields are deprecated in this version: chamber_association, contact_email, contact_name, and contact_phone.
v6: Previous supported version.
Retrieves a previously created group, including all associated locations. Returns the group's identity, broker/agency context, and the full location list with id values for use in member creation and quoting.
| id required | string Example: b215b6bcdb Internal Ideon identifier for the group, returned by Create a Group. |
| Accept-Version | string Enum: "v6" "v7" "v8" Example: v8 API version requested (v6, v7, or v8). v8 is the latest available version for this endpoint and should be used for v9 group quoting workflows. |
| X-RateLimit-Limit | integer Maximum requests allowed in the current rate-limit window (per minute) |
| X-RateLimit-Remaining | integer Requests remaining in the current rate-limit window |
object (V8GroupShow) Example: {"agency_name":"XYZ Agency","agency_npn":"1234567890","broker_email":"[email protected]","broker_name":"XYZ Brokerage","broker_npn":"1234567890","company_name":"Foo Bar, Inc.","company_tax_id":"123456789","external_id":"abc123","id":"b215b6bcdb","sic_code":"0700"} | |||||||||||||||||||||
| |||||||||||||||||||||
Array of objects (V8LocationShow) Example: [{"external_id":"def123","fips_code":"36081","id":"8be378c035","name":"Headquarters","number_of_employees":32,"primary":true,"zip_code":"11423"}] List of Locations | |||||||||||||||||||||
Array
| |||||||||||||||||||||
{- "group": {
- "agency_name": "XYZ Agency",
- "agency_npn": "1234567890",
- "broker_name": "XYZ Brokerage",
- "broker_npn": "1234567890",
- "company_name": "Foo Bar, Inc.",
- "company_tax_id": "123456789",
- "external_id": "abc123",
- "id": "b215b6bcdb",
- "sic_code": "0700"
}, - "locations": [
- {
- "external_id": "def123",
- "fips_code": "36081",
- "id": "8be378c035",
- "name": "Headquarters",
- "number_of_employees": 32,
- "primary": true,
- "zip_code": "11423"
}
]
}v6: The documentation for this endpoint references this latest available version.
Adds members and their dependents to a group. This endpoint is additive — each call appends new members to the group's existing census. For replacement semantics, use Create or Replace Members. For best performance, cap each request at a maximum of 500 members.
| id required | string Example: b215b6bcdb ID of the Group |
required | Array of objects (MemberCreate) Example: [{"annual_salary":55000,"cobra":false,"date_of_birth":"1980-10-31","dependents":[{"date_of_birth":"2005-10-21","first_name":"John","gender":"F","last_name":"Doe","last_used_tobacco":"2017-12-10","relationship":"child","same_household":true}],"external_id":"def123","fips_code":"36081","first_name":"John","gender":"F","hours_per_week":40,"household_income":55000,"household_size":1,"last_name":"Doe","last_used_tobacco":"2017-10-30","location_id":"8be378c035","retiree":false,"safe_harbor_income":55000,"zip_code":"11423"}] List of Members | ||||||||||||||||||||||||||||||||||
Array
| |||||||||||||||||||||||||||||||||||
| X-RateLimit-Limit | integer Maximum requests allowed in the current rate-limit window (per minute) |
| X-RateLimit-Remaining | integer Requests remaining in the current rate-limit window |
Array of objects (MemberShow) Example: [{"annual_salary":55000,"cobra":true,"date_of_birth":"1980-10-31","dependents":[{"date_of_birth":"2005-10-21","first_name":"John","gender":"F","id":"eec232e7d9-523dc2c2e","last_name":"Doe","last_used_tobacco":"2017-12-10","relationship":"child","same_household":true}],"external_id":"def123","fips_code":"36081","first_name":"John","gender":"F","hours_per_week":40,"household_income":55000,"household_size":1,"id":"eec232e7d9","last_name":"Doe","last_used_tobacco":"2017-10-30","location_id":"8be378c035","retiree":false,"safe_harbor_income":55000,"zip_code":"11423"}] List of Members | |||||||||||||||||||||||||||||||||||||
Array
| |||||||||||||||||||||||||||||||||||||
{- "members": [
- {
- "annual_salary": 55000,
- "cobra": false,
- "date_of_birth": "1980-10-31",
- "external_id": "def123",
- "fips_code": "36081",
- "first_name": "John",
- "gender": "F",
- "hours_per_week": 40,
- "household_income": 55000,
- "household_size": 1,
- "last_name": "Doe",
- "last_used_tobacco": "2017-10-30",
- "location_id": "8be378c035",
- "retiree": false,
- "safe_harbor_income": 55000,
- "zip_code": "11423"
}
]
}{- "members": [
- {
- "annual_salary": 55000,
- "cobra": true,
- "date_of_birth": "1980-10-31",
- "external_id": "def123",
- "fips_code": "36081",
- "first_name": "John",
- "gender": "F",
- "hours_per_week": 40,
- "household_income": 55000,
- "household_size": 1,
- "id": "eec232e7d9",
- "last_name": "Doe",
- "last_used_tobacco": "2017-10-30",
- "location_id": "8be378c035",
- "retiree": false,
- "safe_harbor_income": 55000,
- "zip_code": "11423"
}
]
}v6: The documentation for this endpoint references this latest available version.
Adds members and their dependents to a group, fully replacing any members previously associated with the group. Each call to this endpoint overwrites the existing census; to append members instead, use Create Members. For best performance, cap each request at a maximum of 500 members.
| id required | string Example: b215b6bcdb ID of the Group |
required | Array of objects (MemberCreate) Example: [{"annual_salary":55000,"cobra":false,"date_of_birth":"1980-10-31","dependents":[{"date_of_birth":"2005-10-21","first_name":"John","gender":"F","last_name":"Doe","last_used_tobacco":"2017-12-10","relationship":"child","same_household":true}],"external_id":"def123","fips_code":"36081","first_name":"John","gender":"F","hours_per_week":40,"household_income":55000,"household_size":1,"last_name":"Doe","last_used_tobacco":"2017-10-30","location_id":"8be378c035","retiree":false,"safe_harbor_income":55000,"zip_code":"11423"}] List of Members | ||||||||||||||||||||||||||||||||||
Array
| |||||||||||||||||||||||||||||||||||
| X-RateLimit-Limit | integer Maximum requests allowed in the current rate-limit window (per minute) |
| X-RateLimit-Remaining | integer Requests remaining in the current rate-limit window |
Array of objects (MemberShow) Example: [{"annual_salary":55000,"cobra":true,"date_of_birth":"1980-10-31","dependents":[{"date_of_birth":"2005-10-21","first_name":"John","gender":"F","id":"eec232e7d9-523dc2c2e","last_name":"Doe","last_used_tobacco":"2017-12-10","relationship":"child","same_household":true}],"external_id":"def123","fips_code":"36081","first_name":"John","gender":"F","hours_per_week":40,"household_income":55000,"household_size":1,"id":"eec232e7d9","last_name":"Doe","last_used_tobacco":"2017-10-30","location_id":"8be378c035","retiree":false,"safe_harbor_income":55000,"zip_code":"11423"}] List of Members | |||||||||||||||||||||||||||||||||||||
Array
| |||||||||||||||||||||||||||||||||||||
{- "members": [
- {
- "annual_salary": 55000,
- "cobra": false,
- "date_of_birth": "1980-10-31",
- "external_id": "def123",
- "fips_code": "36081",
- "first_name": "John",
- "gender": "F",
- "hours_per_week": 40,
- "household_income": 55000,
- "household_size": 1,
- "last_name": "Doe",
- "last_used_tobacco": "2017-10-30",
- "location_id": "8be378c035",
- "retiree": false,
- "safe_harbor_income": 55000,
- "zip_code": "11423"
}
]
}{- "members": [
- {
- "annual_salary": 55000,
- "cobra": true,
- "date_of_birth": "1980-10-31",
- "external_id": "def123",
- "fips_code": "36081",
- "first_name": "John",
- "gender": "F",
- "hours_per_week": 40,
- "household_income": 55000,
- "household_size": 1,
- "id": "eec232e7d9",
- "last_name": "Doe",
- "last_used_tobacco": "2017-10-30",
- "location_id": "8be378c035",
- "retiree": false,
- "safe_harbor_income": 55000,
- "zip_code": "11423"
}
]
}v6: The documentation for this endpoint references this latest available version.
Retrieves all members and their dependents currently associated with a group. Useful for confirming the census before creating a quote, or for retrieving internal id values for members and dependents.
| id required | string Example: b215b6bcdb ID of the Group |
| X-RateLimit-Limit | integer Maximum requests allowed in the current rate-limit window (per minute) |
| X-RateLimit-Remaining | integer Requests remaining in the current rate-limit window |
Array of objects (MemberShow) Example: [{"annual_salary":55000,"cobra":true,"date_of_birth":"1980-10-31","dependents":[{"date_of_birth":"2005-10-21","first_name":"John","gender":"F","id":"eec232e7d9-523dc2c2e","last_name":"Doe","last_used_tobacco":"2017-12-10","relationship":"child","same_household":true}],"external_id":"def123","fips_code":"36081","first_name":"John","gender":"F","hours_per_week":40,"household_income":55000,"household_size":1,"id":"eec232e7d9","last_name":"Doe","last_used_tobacco":"2017-10-30","location_id":"8be378c035","retiree":false,"safe_harbor_income":55000,"zip_code":"11423"}] List of Members | |||||||||||||||||||||||||||||||||||||
Array
| |||||||||||||||||||||||||||||||||||||
{- "members": [
- {
- "annual_salary": 55000,
- "cobra": true,
- "date_of_birth": "1980-10-31",
- "external_id": "def123",
- "fips_code": "36081",
- "first_name": "John",
- "gender": "F",
- "hours_per_week": 40,
- "household_income": 55000,
- "household_size": 1,
- "id": "eec232e7d9",
- "last_name": "Doe",
- "last_used_tobacco": "2017-10-30",
- "location_id": "8be378c035",
- "retiree": false,
- "safe_harbor_income": 55000,
- "zip_code": "11423"
}
]
}v6: The documentation for this endpoint references this latest available version.
Removes all members and their dependents from a group. The group itself is preserved and can be repopulated via Create Members or Create or Replace Members.
| id required | string Example: b215b6bcdb ID of the Group |
{- "errors": {
- "authentication": [
- "Unauthorized"
]
}
}Create asynchronous group quotes and retrieve rates and plan availability for small group and level-funded markets.
v9: Introduces structured plan_filters and outputs objects on the request. The response adds a carrier_results array summarizing per-carrier progress, status, quoting method, and plan counts. Group-level and member-level eligibility exceptions are now returned inline with rates on the Display Rates endpoint (quote_exceptions and member_exceptions) rather than via a separate limiting factors endpoint. The documentation for this endpoint references this latest available version.
v8: Quotes for all product lines and markets are generated asynchronously. This version also supports the include_complete_age_bands parameter, which toggles the inclusion of full 0-65 age bands in the quote's rates response.
v6: Previous supported version. Only quotes for Level Funded products are generated asychronously using carrier apis. Group quote requests for all other product lines are serviced by Ideon's rating engine and will not use carrier APIs. These quotes will fully process prior to returning a status of complete in the response of this endpoint.
Creates a quote for a group across a product line and market. Quotes are processed asynchronously: a successful response indicates the quote has been created and processing has begun. Poll the Show a Quote endpoint for job- and carrier-level progress, and retrieve premiums and eligibility exceptions through Display Rates. A successful response returns an id for the quote, which is referenced in the Show a Quote and Display Rates endpoints.
Group prerequisites. The group being quoted must have a company_tax_id and at least one of broker_npn or agency_npn set. Groups created without these fields cannot be quoted via this endpoint. See Create a Group for setup details.
Rating methodology. Quotes are processed through one of two methodologies, surfaced per carrier in carrier_results[].quoting_method (ideon_rating_engine or carrier_api). Most small group medical carriers are quoted through Ideon's internal rating engine. The notable exception is UnitedHealthcare "B2B" plans, which are quoted through a direct, real-time integration with UHC's quoting API. Nearly all Level Funded and ancillary product lines are also quoted via direct carrier API integrations. UHC's API validates the broker NPN against their list of appointed brokers — when both broker_npn and agency_npn are present on the group, broker_npn is used for UHC quotes; unrecognized NPNs return a quote_exception for UHC plans.
Re-using groups. The same group can be quoted multiple times across product lines and markets. Re-creating the group is only necessary when the underlying group data changes.
job.status)The Quoting API is asynchronous. The job.status field — also returned on Show a Quote and Display Rates — should be polled to assess overall quote readiness. We recommend polling Show a Quote every 1–2 seconds; it is a lightweight endpoint that returns progress without the payload size of the rates response. A job.status of complete or complete_with_errors indicates quote processing has finished and results are available through Display Rates.
| Status | Notes |
|---|---|
pending |
Initial status returned in response to the Create a Quote request. The quote has been created but no carriers or plans have been quoted yet; the carrier_results array is empty. |
in_progress |
The quote job has been picked up and is processing. The carrier_results array is populated. This status is maintained until all carriers have completed. |
complete |
All carriers and plans have been quoted and no plans returned errors that restricted premiums from being returned. |
complete_with_errors |
All carriers and plans have been quoted; one or more plans had an error that restricted premiums from being returned. This status is also returned if all plans have quote-impacting errors. See quote_exceptions and member_exceptions on each plan in Display Rates. |
failed |
A larger-scale quote failure occurred and the quote was not able to be processed. This status is expected to be very rare; multiple successive failures should be escalated to Ideon's support portal. |
carrier_results[].status)Each entry in carrier_results represents a single carrier and exposes a per-carrier status. A carrier is included once it has one or more plans available for the group, evaluated using the group's primary location and each plan's service area. Per-carrier statuses can be used for progressive loading — pulling rates from Display Rates filtered by carrier_id as each carrier completes.
| Status | Notes |
|---|---|
in_progress |
Initial status for all carriers. Rates for this carrier are being processed. |
complete |
All plans for this carrier have been quoted with no plans returning quote-impacting errors. |
complete_with_errors |
All plans for this carrier have been quoted; one or more plans returned a quote-impacting error. |
failed |
A larger failure occurred for this carrier and rates could not be evaluated. |
| id required | string Example: b215b6bcdb ID of the Group |
| Accept-Version | string Enum: "v6" "v7" "v8" "v9" Example: v9 API version requested (v6, v7, v8, or v9) |
object (V9_QuoteCreate) Example: {"contribution_percentage":90,"coordination_of_benefits":"plan","effective_date":"2026-01-01","market":"small_group","outputs":{"complete_age_bands":{"enabled":false}},"participation_percentage":75,"plan_filters":{"carrier_ids":["bae1d0e1-80dc-48f4-918d-6c492340cc1c"]},"product_line":"medical","retry_until":15,"voluntary":true} | |||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||
| X-RateLimit-Limit | integer Maximum requests allowed in the current rate-limit window (per minute) |
| X-RateLimit-Remaining | integer Requests remaining in the current rate-limit window |
object (V9_QuoteShow) Example: {"carrier_results":[{"carrier_brand_name":"Anthem Blue Cross","carrier_id":"bae1d0e1-80dc-48f4-918d-6c492340cc1c","completed_at":"2026-01-15T10:32:00.000Z","issuer_ids":["12345"],"plans_in_service_area":42,"plans_with_member_exceptions":2,"plans_with_premiums":38,"plans_with_quote_exceptions":3,"private_exchange":"CalChoice","quoting_method":"ideon_rating_engine","status":"complete"}],"contribution_percentage":90,"coordination_of_benefits":"plan","created_at":"2026-01-01T12:00:00.000Z","effective_date":"2026-01-01","id":"5db8ce543d","job":{"group_id":"b215b6bcdb","status":"pending","status_updated_at":"2026-01-15T10:30:00.000Z","total_dependents":3,"total_members":5},"market":"small_group","outputs":{"complete_age_bands":{"enabled":false}},"participation_percentage":75,"plan_filters":{"carrier_ids":["bae1d0e1-80dc-48f4-918d-6c492340cc1c"]},"product_line":"medical","retry_until":15,"voluntary":true} | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{- "quote": {
- "contribution_percentage": 90,
- "coordination_of_benefits": "plan",
- "effective_date": "2026-01-01",
- "market": "small_group",
- "participation_percentage": 75,
- "plan_filters": {
- "carrier_ids": [
- "bae1d0e1-80dc-48f4-918d-6c492340cc1c"
]
}, - "product_line": "medical",
- "retry_until": 15,
- "voluntary": true
}
}{- "quote": {
- "carrier_results": [ ],
- "contribution_percentage": 90,
- "coordination_of_benefits": "plan",
- "created_at": "2026-01-01T12:00:00.000Z",
- "effective_date": "2026-01-01",
- "id": "5db8ce543d",
- "job": {
- "group_id": "b215b6bcdb",
- "status": "pending",
- "status_updated_at": "2026-01-15T10:30:00.000Z",
- "total_dependents": 3,
- "total_members": 5
}, - "market": "small_group",
- "outputs": {
- "complete_age_bands": {
- "enabled": false
}
}, - "participation_percentage": 75,
- "plan_filters": {
- "carrier_ids": [
- "bae1d0e1-80dc-48f4-918d-6c492340cc1c"
]
}, - "product_line": "medical",
- "retry_until": 15,
- "voluntary": true
}
}v9: Response adds a carrier_results array summarizing per-carrier progress, status, quoting method, and plan counts. Quote request parameters returned in the response reflect v9 shape (plan_filters and outputs objects). Group-level and member-level eligibility exceptions are returned inline with rates via the Display Rates endpoint (quote_exceptions and member_exceptions) rather than a separate limiting factors endpoint. The documentation for this endpoint references this latest available version.
v6: Previous supported version.
Retrieves a previously created quote, including the request parameters, job-level processing status, and per-carrier quoting progress. This endpoint should be polled to track quote readiness — premiums and eligibility exceptions for quoted plans are not returned here; retrieve those through Display Rates once job.status reaches complete or complete_with_errors.
Polling Show a Quote is the recommended approach for tracking completion: it is a lightweight endpoint that returns progress without the payload size of the rates response. We recommend polling every 1–2 seconds. The carrier_results array supports progressive loading — as each carrier's status transitions to complete or complete_with_errors, that carrier's rates can be pulled from Display Rates filtered by carrier_id.
job.status)| Status | Notes |
|---|---|
pending |
Initial status returned in response to the Create a Quote request. The quote has been created but no carriers or plans have been quoted yet; the carrier_results array is empty. |
in_progress |
The quote job has been picked up and is processing. The carrier_results array is populated. This status is maintained until all carriers have completed. |
complete |
All carriers and plans have been quoted and no plans returned errors that restricted premiums from being returned. |
complete_with_errors |
All carriers and plans have been quoted; one or more plans had an error that restricted premiums from being returned. This status is also returned if all plans have quote-impacting errors. See quote_exceptions and member_exceptions on each plan in Display Rates. |
failed |
A larger-scale quote failure occurred and the quote was not able to be processed. This status is expected to be very rare; multiple successive failures should be escalated to Ideon's support portal. |
carrier_results[].status)Each entry in carrier_results represents a single carrier and exposes a per-carrier status. A carrier is included once it has one or more plans available for the group, evaluated using the group's primary location and each plan's service area.
| Status | Notes |
|---|---|
in_progress |
Initial status for all carriers. Rates for this carrier are being processed. |
complete |
All plans for this carrier have been quoted with no plans returning quote-impacting errors. |
complete_with_errors |
All plans for this carrier have been quoted; one or more plans returned a quote-impacting error. |
failed |
A larger failure occurred for this carrier and rates could not be evaluated. |
| id required | string Example: 5db8ce543d ID of the Quote |
| Accept-Version | string Enum: "v6" "v7" "v8" "v9" Example: v8 API version requested (v6, v7, v8, or v9) |
| X-RateLimit-Limit | integer Maximum requests allowed in the current rate-limit window (per minute) |
| X-RateLimit-Remaining | integer Requests remaining in the current rate-limit window |
object (V9_QuoteShow) Example: {"carrier_results":[{"carrier_brand_name":"Anthem Blue Cross","carrier_id":"bae1d0e1-80dc-48f4-918d-6c492340cc1c","completed_at":"2026-01-15T10:32:00.000Z","issuer_ids":["12345"],"plans_in_service_area":42,"plans_with_member_exceptions":2,"plans_with_premiums":38,"plans_with_quote_exceptions":3,"private_exchange":"CalChoice","quoting_method":"ideon_rating_engine","status":"complete"}],"contribution_percentage":90,"coordination_of_benefits":"plan","created_at":"2026-01-01T12:00:00.000Z","effective_date":"2026-01-01","id":"5db8ce543d","job":{"group_id":"b215b6bcdb","status":"pending","status_updated_at":"2026-01-15T10:30:00.000Z","total_dependents":3,"total_members":5},"market":"small_group","outputs":{"complete_age_bands":{"enabled":false}},"participation_percentage":75,"plan_filters":{"carrier_ids":["bae1d0e1-80dc-48f4-918d-6c492340cc1c"]},"product_line":"medical","retry_until":15,"voluntary":true} | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{- "quote": {
- "carrier_results": [
- {
- "carrier_brand_name": "Anthem Blue Cross",
- "carrier_id": "bae1d0e1-80dc-48f4-918d-6c492340cc1c",
- "completed_at": "2026-01-15T10:32:00.000Z",
- "issuer_ids": [
- "12345"
], - "plans_in_service_area": 42,
- "plans_with_member_exceptions": 2,
- "plans_with_premiums": 38,
- "plans_with_quote_exceptions": 3,
- "private_exchange": "Aon Exchange",
- "quoting_method": "ideon_rating_engine",
- "status": "complete"
}
], - "contribution_percentage": 90,
- "coordination_of_benefits": "plan",
- "created_at": "2026-01-01T12:00:00.000Z",
- "effective_date": "2026-01-01",
- "id": "5db8ce543d",
- "job": {
- "group_id": "b215b6bcdb",
- "status": "complete_with_errors",
- "status_updated_at": "2026-01-15T10:30:00.000Z",
- "total_dependents": 3,
- "total_members": 5
}, - "market": "small_group",
- "outputs": {
- "complete_age_bands": {
- "enabled": false
}
}, - "participation_percentage": 75,
- "plan_filters": {
- "carrier_ids": [
- "bae1d0e1-80dc-48f4-918d-6c492340cc1c"
]
}, - "product_line": "medical",
- "retry_until": 15,
- "voluntary": true
}
}v8: Limiting factors related to Carrier API errors are added, including carrier_api_error, carrier_api_timeout, and invalid_npn. The documentation for this endpoint references this latest available version.
v6: Previous supported version.
Retrieves the limiting factors for a quote, detailing the reasons specific plans were not returned with premiums. Limiting factors are organized into two arrays: group (factors affecting the group as a whole, such as SIC code ineligibility or group size restrictions) and member (factors triggered by specific members, identified via member_ids). The two sections share the same object shape; the member_ids field is present only in the member array.
v9 note. This endpoint is retained for v6 and v8 quote integrations. In v9, eligibility issues are returned inline with each plan on the Display Rates endpoint as quote_exceptions (group-level) and member_exceptions (member-level), and this standalone endpoint is no longer needed. The full catalog of v9 exception codes and examples is available in the Quote and Member Exception Codes reference.
| Field | Type | Notes |
|---|---|---|
| code | string |
An enumeration that indicates the Limiting Factor type. Please see the full list of codes below. |
| code_description | string |
A description of the Limiting Factor code. |
| member_ids | list |
A list of Member identifiers that fit this limiting factor code. This key will only return for member Limiting Factors. |
| carrier_names | list |
A list of carrier names that had plans removed from the quote due to the Limiting Factor. |
| plan_ids | list |
A list of Plan identifiers that were removed from the quote due to the Limiting Factor. |
| Code | Limiting Factor Section | Notes |
|---|---|---|
| carrier_api_error | group |
The quote request to the Carrier's API returned a {HTTP Code} error. When this code is returned, the carrier_api_error_messages list will be included, containing carrier error strings. |
| carrier_api_timeout | group |
The quote request to the Carrier's API timed out. |
| contribution_percentage_minimum | group |
The contribution percentage is too low for at least one plan. |
| effective_date_maximum | group |
The effective date is beyond to the latest allowed effective date. |
| effective_date_minimum | group |
The effective date is prior to the earliest allowed effective date. |
| enrollee_size_minimum | group |
The number of enrolling members is below the minimum allowed for at least one plan. This number is calculated by multiplying the number of members in the group and the participation percentage. |
| group_size_maximum | group |
The number of members is above the maximum allowed members for at least one plan. |
| group_size_minimum | group |
The number of members is below the minimum allowed members for at least one plan. |
| in_state_percentage_minimum | group |
The percentage of members residing in the rated state is below the minimum allowed for at least one plan. |
| multi_state_percentage_minimum | group |
The percentage of members residing in {list of states} is below the minimum allowed by the carrier for at least one plan. |
| invalid_npn | group |
The NPN provided is considered ineligible for quoting by the carrier. |
| participation_percentage_minimum | group |
The participation percentage is too low for at least one plan. |
| sic_code | group |
The SIC Code is not quotable for at least one plan. |
| voluntary_status | group |
The voluntary status in the Quote request was inconsistent with at least one plan. |
| dependent_age_maximum | member |
Members have dependents that are above the maximum allowed age for at least one plan. |
| dependent_age_minimum | member |
Members have dependents that are below the minimum allowed age for at least one plan. |
| dependent_location | member |
Members have dependents with a same_household value that is not allowed for at least one plan. |
| dependent_relationship | member |
Members have dependents with a relationship that is outside of the allowed relationships for at least one plan. |
| member_age_maximum | member |
Members are above the maximum allowed age for at least one plan. |
| member_age_minimum | member |
Members are below the minimum allowed age for at least one plan. |
| member_location | member |
Members live outside of the allowed area for at least one plan and the include_member_limited_plans parameter in the Create a Quote request was set to false. |
| member_name | member |
Members are missing first_name and/or last_name, which is required for quoting at least one plan. |
| member_salary | member |
Members are missing annual_salary and/or hours_per_week, which is required for quoting at least one plan. |
| id required | string Example: 5db8ce543d Internal Ideon identifier for the quote, returned by Create a Quote. |
| Accept-Version | string Enum: "v6" "v7" "v8" Example: v8 API version requested (v6, v7, or v8). This endpoint is retained for v6 and v8 quote integrations; v9 quotes return eligibility issues inline on Display Rates as |
| X-RateLimit-Limit | integer Maximum requests allowed in the current rate-limit window (per minute) |
| X-RateLimit-Remaining | integer Requests remaining in the current rate-limit window |
object (LimitingFactors) Example: {"group":[{"carrier_names":["UnitedHealthcare"],"code":"sic_code","code_description":"The SIC Code is not in the list of allowable SIC Codes.","plan_ids":["67138CA0610018"]}],"member":[{"carrier_names":["UnitedHealthcare"],"code":"dependent_location","code_description":"Members have dependents with a same_household value that is not allowed for at least one plan.","member_ids":["eec232e7d9"],"plan_ids":["67138CA0610018"]}]} | |||||||||||||||||||||||||||
| |||||||||||||||||||||||||||
object (Meta) Example: {"total":1} | |||||||||||||||||||||||||||
| |||||||||||||||||||||||||||
{- "meta": {
- "total": 1
}
}v9: Group- and member-level eligibility exceptions are now returned inline with each plan as quote_exceptions and member_exceptions, replacing the standalone Show Limiting Factors endpoint. Plans are included in the response when the group falls within their service area, even if no premiums were generated — exception-only entries have an empty premiums object, an empty premium_types_quoted, and a null id. Level Funded premiums are returned under premiums.level_funded as a premium_type and a variants array, with each variant representing a single quoted rating scenario (e.g., a specific stop loss amount). A rate_type enum of illustrative or underwritten is returned for Level Funded plans. The documentation for this endpoint references this latest available version.
v8: The carrier_quote_id field is added to the response for each rates object. Additionally, the complete_age_bands object to return full 0-65 age banded rates is supported and can be toggled in the Create a Quote endpoint.
v6: Previous supported version.
Retrieves the rates for a quote. The response contains a paginated rates array, with each entry representing a single plan. Each plan entry includes the available premiums, the rating methodologies for which premiums were generated, and any group- or member-level eligibility exceptions flagged during quoting. The meta.status field mirrors job.status from Show a Quote and indicates the overall quote status at the time of the request.
Display Rates supports progressive loading via pagination: as carriers complete and plans are added to the response, paginated requests return newly quoted plans alongside those already returned. Combined with the carrier_id, issuer_id, plan_id, quote_exception, and member_exception query parameters, this enables both whole-quote and per-carrier consumption patterns. Group rates are retrievable for 18 months following quote creation.
premium_types_quoted and premiums are tightly coupled: premium_types_quoted lists every rating methodology for which premiums were generated for the plan (e.g., age_banded, 4_tier_composite), and premiums contains the corresponding rate breakdown under a key matching each entry. If a plan has no premiums generated (an exception-only entry), both will be empty. See the Premiums table below for the structure of each premium key.
In v9, eligibility issues that prevented or impacted rating are returned inline with each plan, replacing the standalone Limiting Factors endpoint.
quote_exceptions — group-level issues that affected rating for the plan as a whole (e.g., SIC code ineligibility, group size restrictions, carrier API errors). Each entry includes a code, a source (carrier_api, ideon_business_rules, or ideon_rating_engine), a quote_impacted boolean indicating whether the exception prevented premiums from being returned, and a human-readable message. When code is carrier_api_error, a carrier_api_error_messages array carries the raw carrier API error strings.member_exceptions — eligibility issues that flag specific members rather than the group. Premiums for affected members are still returned at the plan level and nested under each member_exceptions[].premiums object to make it easy to recompute group premiums with those members omitted. Each entry carries the member_id, member_external_id, the member's premium breakdown, and an exceptions array. Member-level exceptions affecting specific dependents include a dependent_exceptions array of dependent IDs.Filtering with quote_exception=true and/or member_exception=true narrows the response to plans flagged with the corresponding exception type; setting both to true returns plans with either.
A complete catalog of supported quote_exceptions and member_exceptions codes, with accompanying examples, is available in the Quote and Member Exception Codes reference.
Level Funded plans are quoted in real time through direct carrier API integrations. UnitedHealthcare and Optimyl Benefits return illustrative (shelf) rates; Angle Health returns underwritten rates via automated underwriting and may flag a quote for manual review (surfaced as manual_review on carrier_results[].status). The methodology used per plan is exposed in the rate_type field (illustrative or underwritten). All Level Funded carriers require approval to quote — contact your Ideon Customer Success Manager for details.
In v9, Level Funded premiums are returned under premiums.level_funded as a premium_type (the composite tier key, e.g., 4_tier_composite) and a variants array. Each variant represents a single rating scenario for the plan and contains the tier-level rates for that scenario, along with any carrier-specific attributes such as stop_loss_amount and claims_surplus_fraction. Notably, UHC Level Funded plans previously returned one rates entry per plan-and-stop-loss combination; in v9 they collapse to a single entry per plan with all stop loss amounts in variants.
| Key | Structure |
|---|---|
age_banded |
total_member, total_dependent, total. When outputs.complete_age_bands.enabled was true on Create a Quote and age-banded rates are available, an additional complete_age_bands object returns the full 0–65 tobacco and non-tobacco rates; otherwise null. |
4_tier_composite |
employee_only, employee_plus_spouse, employee_plus_children, employee_plus_family, total. |
3_tier_composite |
employee_only, employee_plus_one, employee_plus_family, total. |
2_tier_composite |
employee_only, employee_plus_family, total. |
adult_child_tier_composite |
adult, child, total. |
level_funded |
premium_type (the composite tier key used by the carrier) and a variants array, with one entry per rating scenario. Each variant carries the tier-level rates for that scenario plus carrier-specific fields such as stop_loss_amount and claims_surplus_fraction. |
life |
Member rates per $1,000 of benefit, returned as age bands in premium_bands; child rates in child_rate when applicable. rate_basis indicates the unit. When AD&D is attached, total member cost is the sum of life and accidental_death_dismemberment rates. |
accidental_death_dismemberment |
Rates per $1,000 of benefit, shown separately for employee, spouse, and child. |
disability |
Short Term: monthly rate per $10 of benefit. Long Term: monthly rate per $100 of benefit. rate_basis indicates the unit of benefit; deduction_basis indicates pre-tax or post-tax. |
critical_illness |
Age-banded tobacco and non-tobacco composite rates, expressed as monthly rate per a given benefit_amount. rated_for_specific_benefit_amount indicates whether the rate can be interpolated across electable benefit amounts. |
hospital_indemnity |
Age-banded composite rates in premium_bands. |
| id required | string Example: 5db8ce543d ID of the quote |
| page | integer Example: page=1 Page of paginated response |
| per_page | integer <= 50 Example: per_page=1 Responses per page |
| carrier_id | string Filter rates to those from this carrier (Ideon carrier UUID) |
| issuer_id | string Filter rates to those from this issuer (HIOS issuer ID) |
| plan_id | string Filter rates to those for this plan (HIOS plan ID or Ideon plan ID) |
| quote_exception | boolean Filter to plans with (true) or without (false) plan-level exceptions |
| member_exception | boolean Filter to plans with (true) or without (false) member-level exceptions |
| Accept-Version | string Enum: "v6" "v7" "v8" "v9" Example: v8 API version requested (v6, v7, v8, or v9) |
| X-RateLimit-Limit | integer Maximum requests allowed in the current rate-limit window (per minute) |
| X-RateLimit-Remaining | integer Requests remaining in the current rate-limit window |
| Total | integer Example: "150" Total number of records matching the query across all pages |
| Per-Page | integer Example: "25" Number of records returned per page |
| Page | integer Example: "1" Current page number |
| Link | string Example: "<https://api.ideonapi.com/networks?page=2&per_page=25>; rel=\"next\", <https://api.ideonapi.com/networks?page=1&per_page=25>; rel=\"first\"" RFC-5988 pagination links containing |
object (V6_Response_Rates_Meta) Example: {"status":"complete","total":1,"total_members":5} | |||||||||||||||||||||||
| |||||||||||||||||||||||
Array of objects (V9RateShow) Example: [{"carrier_id":"bae1d0e1-80dc-48f4-918d-6c492340cc1c","carrier_quote_id":"carrier-quote-abc123","id":"bb1f3523f0","identifiers":[{"type":"contract_id","value":"abc123"}],"issuer_id":"12345","member_exceptions":[],"plan_id":"12345CA1234567","premium_types_quoted":["age_banded"],"premiums":{"4_tier_composite":{"claims_fund":"8000.00","employee_only":"200.00","employee_plus_children":"220.00","employee_plus_family":"300.00","employee_plus_spouse":"230.00","fixed_costs":"2000.00","total":"10000.00"}},"quote_exceptions":[],"rate_type":"published"},{"carrier_id":"bae1d0e1-80dc-48f4-918d-6c492340cc1c","carrier_quote_id":null,"id":null,"issuer_id":"12345","member_exceptions":[],"plan_id":"67890CA1234567","premium_types_quoted":["age_banded"],"premiums":null,"quote_exceptions":[{"code":"no_premiums_generated","message":"No premiums were generated for this plan","quote_impacted":true,"source":"ideon_rating_engine"}],"rate_type":"published"}] List of Rates | |||||||||||||||||||||||
Array
| |||||||||||||||||||||||
{- "meta": {
- "status": "complete",
- "total": 2,
- "total_members": 5
}, - "rates": [
- {
- "carrier_id": "bae1d0e1-80dc-48f4-918d-6c492340cc1c",
- "carrier_quote_id": "carrier-quote-abc123",
- "id": "bb1f3523f0",
- "identifiers": [
- {
- "type": "contract_id",
- "value": "abc123"
}
], - "issuer_id": "12345",
- "member_exceptions": [ ],
- "plan_id": "12345CA1234567",
- "premium_types_quoted": [
- "age_banded"
], - "premiums": {
- "4_tier_composite": {
- "claims_fund": "8000.00",
- "employee_only": "200.00",
- "employee_plus_children": "220.00",
- "employee_plus_family": "300.00",
- "employee_plus_spouse": "230.00",
- "fixed_costs": "2000.00",
- "total": "10000.00"
}
}, - "quote_exceptions": [ ],
- "rate_type": "published"
}, - {
- "carrier_id": "bae1d0e1-80dc-48f4-918d-6c492340cc1c",
- "carrier_quote_id": null,
- "id": null,
- "issuer_id": "12345",
- "member_exceptions": [ ],
- "plan_id": "67890CA1234567",
- "premium_types_quoted": [
- "age_banded"
], - "premiums": null,
- "quote_exceptions": [
- {
- "code": "no_premiums_generated",
- "message": "No premiums were generated for this plan",
- "quote_impacted": true,
- "source": "ideon_rating_engine"
}
], - "rate_type": "published"
}
]
}v6: The documentation for this endpoint references this latest available version.
Retrieves the per-member rates for a single rate returned by Display Rates. The id path parameter is the rate-level id (the rates[].id value from Display Rates), which uniquely identifies the premiums quoted for a specific plan within a specific quote. Each entry in the member_rates array represents one member and includes that member's premium and the premium for each of their dependents, broken down by rating methodology.
The premiums object mirrors the rating methodologies returned at the plan level on Display Rates, but scoped to a single member: composite methodologies return the tier category the member falls into and the total for that category; age_banded returns the member's member rate, the summed dependent rate across their dependents, and the total. Member and dependent rates are retrievable for 6 months following quote creation.
| id required | string Example: bb1f3523f0 ID of the Rate |
| page | integer Example: page=1 Page of paginated response |
| per_page | integer <= 50 Example: per_page=1 Responses per page |
| X-RateLimit-Limit | integer Maximum requests allowed in the current rate-limit window (per minute) |
| X-RateLimit-Remaining | integer Requests remaining in the current rate-limit window |
| Total | integer Example: "150" Total number of records matching the query across all pages |
| Per-Page | integer Example: "25" Number of records returned per page |
| Page | integer Example: "1" Current page number |
| Link | string Example: "<https://api.ideonapi.com/networks?page=2&per_page=25>; rel=\"next\", <https://api.ideonapi.com/networks?page=1&per_page=25>; rel=\"first\"" RFC-5988 pagination links containing |
Array of objects (MemberRateShow) Example: [{"dependent_premium":"125.00","id":"eec232e7d9","member_external_id":"abc234","member_id":"eec232e7d9","member_premium":"100.00","premiums":{"2_tier_composite":{"category":"employee_only","total":"230.00"},"3_tier_composite":{"category":"employee_only","total":"230.00"},"4_tier_composite":{"category":"employee_only","total":"230.00"},"adult_child_tier_composite":{"adult":"200.00","child":"400.00","total":"10000.00"},"age_banded":{"dependent":"125.00","member":"100.00","total":"225.00"}},"total_premium":"225.00"}] List of MemberRates | |||||||||||||||
Array
| |||||||||||||||
object (Meta) Example: {"total":1} | |||||||||||||||
| |||||||||||||||
{- "member_rates": [
- {
- "dependent_premium": "125.00",
- "id": "eec232e7d9",
- "member_external_id": "abc234",
- "member_id": "eec232e7d9",
- "member_premium": "100.00",
- "total_premium": "225.00"
}
], - "meta": {
- "total": 1
}
}Attach supplemental census data (e.g. tobacco usage, disability status) to a group for more accurate quoting.
v6: The documentation for this endpoint references this latest available version.
Attaches supplemental data about a group's current medical coverage to the group. Supplemental data is consumed by select carrier rating algorithms to deliver more competitive quotes; currently only Angle Health Level Funded quoting uses it. Providing this data is optional, and a quote will still complete normally for groups without it.
Supplemental data is replaced in full on each call — submit the complete payload, not a partial update. Carrier-side validations may apply: if a carrier's API rejects any portion of the supplemental data during rating, that data is ignored for the quote but quoting continues normally and premiums are returned where possible.
| id required | string Example: b215b6bcdb ID of the Group |
object (GroupSupplementalData_Coverage) Example: {"current_coverage_type":"aca","current_coverages":[{"plan_hios_id":"12345CA0000001","plan_name":"IntegratedHealth Silver PPO"}]} | |||||||||||||||||
| |||||||||||||||||
| X-RateLimit-Limit | integer Maximum requests allowed in the current rate-limit window (per minute) |
| X-RateLimit-Remaining | integer Requests remaining in the current rate-limit window |
object (GroupSupplementalData_Coverage) Example: {"current_coverage_type":"aca","current_coverages":[{"plan_hios_id":"12345CA0000001","plan_name":"IntegratedHealth Silver PPO"}]} | |||||||||||||||||
| |||||||||||||||||
{- "medical": {
- "current_coverage_type": "aca"
}
}{- "medical": {
- "current_coverage_type": "aca"
}
}v6: The documentation for this endpoint references this latest available version.
Retrieves the supplemental data currently attached to a group. Returns the same shape as Create Supplemental Data. If no supplemental data has been attached, the response will reflect that (empty or absent medical object, depending on group state).
| id required | string Example: b215b6bcdb ID of the Group |
| X-RateLimit-Limit | integer Maximum requests allowed in the current rate-limit window (per minute) |
| X-RateLimit-Remaining | integer Requests remaining in the current rate-limit window |
object (GroupSupplementalData_Coverage) Example: {"current_coverage_type":"aca","current_coverages":[{"plan_hios_id":"12345CA0000001","plan_name":"IntegratedHealth Silver PPO"}]} | |||||||||||||||||
| |||||||||||||||||
{- "medical": {
- "current_coverage_type": "aca"
}
}v6: The documentation for this endpoint references this latest available version.
Removes all supplemental data attached to a group. The group itself is preserved; supplemental data can be re-attached at any time via Create Supplemental Data. Returns 204 No Content.
| id required | string Example: b215b6bcdb ID of the Group |
{- "errors": {
- "authentication": [
- "Unauthorized"
]
}
}v8: The documentation for this endpoint references this latest available version. v6 is not available for this endpoint.
Generates a carrier-specific quote proposal from one or more plans selected across one or more quotes. The shape and contents of the response depend on the carrier — currently UnitedHealthcare is the only supported carrier, and the proposal returns a SAMx import link that can be used to progress sold cases through UHC's group application process.
Plans from multiple quotes can typically be included in a single proposal, even across product lines, though carrier-specific restrictions apply. Plan IDs supplied in the request must match the id field returned by Display Rates, Plans in Bulk, or the Plan Lookup show endpoints for the referenced quote. For carrier-specific requirements and product-line eligibility, contact your account executive or [email protected].
| carrier required | string Example: "UnitedHealthcare" The carrier for which the quote proposal will be generated | ||||
required | Array of objects (V8_Model_QuoteProposals_Proposal) Example: [{"plan_ids":["67138CA0610018","67138CA0610017"],"quote_id":"5db8ce543d"}] The plans requested for the quote proposal and their corresponding quote identifiers | ||||
Array
| |||||
| X-RateLimit-Limit | integer Maximum requests allowed in the current rate-limit window (per minute) |
| X-RateLimit-Remaining | integer Requests remaining in the current rate-limit window |
| carrier required | string Example: "UnitedHealthcare" The carrier for which the quote proposal will be generated | ||||
| carrier_api_error_messages required | Array of strings Example: ["Internal Server Error"] Carrier API error messages | ||||
| carrier_api_response_code required | integer Example: "200" Carrier API response code | ||||
| carrier_proposal_id required | string Example: "B2B-NB-98527957696616" Carrier provided proposal identifier | ||||
| carrier_proposal_url required | string Example: "https://www.example.com/proposals/123" Carrier provided url to view proposal | ||||
required | Array of objects (V8_Model_QuoteProposals_Proposal) Example: [{"plan_ids":["67138CA0610018","67138CA0610017"],"quote_id":"5db8ce543d"}] The plans requested for the quote proposal and their corresponding quote identifiers | ||||
Array
| |||||
{- "carrier": "UnitedHealthcare",
- "plans": [
- {
- "plan_ids": [
- "67138CA0610018",
- "67138CA0610017"
], - "quote_id": "5db8ce543d"
}
]
}{- "carrier": "UnitedHealthcare",
- "carrier_api_error_messages": [
- "Internal Server Error"
], - "carrier_api_response_code": 200,
- "carrier_proposal_id": "B2B-NB-98527957696616",
- "plans": [
- {
- "plan_ids": [
- "67138CA0610018",
- "67138CA0610017"
], - "quote_id": "5db8ce543d"
}
]
}v8: In the response schema, benefits are represented as objects with tier and limit keys. Updates from v7 are included. The documentation for this endpoint references this latest available version.
v7: Support added for the optional provider address_id in the providers list of the request schema for further filtering of in-network logic.
Additionally, the in_network_ids and out_of_network_ids fields were deprecated from the response and replaced with the providers list. The response schema returns benefits as strings.
v6: Previous supported version.
Searches ACA-compliant Major Medical plans available in a given location for either the individual or small group market. Returns plan details, premiums, and benefits. The same endpoint supports both markets — set market to individual for family-level quoting (outside of an employer context) or small_group for off-cycle plan availability checks in a specific zip and county.
The response includes plan-level premiums and, for individual-market quotes, per-applicant premium breakdowns when applicants are supplied. Federal premium tax credits and state-funded subsidies (currently Vermont Premium Assistance and New Jersey Health Plan Savings) are applied automatically when household_income and household_size are provided; the resulting subsidy amounts are reflected in each plan's premium_subsidized.
Provider participation and drug formulary coverage can be evaluated inline with the quote — see the Shop by Doc and Shop by Drug sections below.
Both the IFP Medical and Small Group Medical quoting workflows support evaluation of provider network participation within a single API call. This pattern — quoting plans alongside doctor participation — is commonly referred to as "Shop by Doc". Because quoting and participation evaluation happen in one request, the workflow is two steps end-to-end:
providers array on this endpoint. The response will return participation data for each provider against each quoted plan's network.Request shape. Each entry in the providers array is an object with an npi and an optional address_id. Multiple addresses for the same provider should be passed as separate objects:
"providers": [
{ "npi": 1538670880, "address_id": "2bd18d55-4bc6-3a66-aeef-fae893d5d8c0" },
{ "npi": 1234567890 }
]
Address ID behavior.
address_id): the provider is evaluated for participation at any of their practice locations. The response will return all in-network addresses for that provider on each plan.address_id: participation is evaluated only against the specific address. The response addresses array will be filtered to just that address when in-network, or empty when not.Validation. NPIs and address IDs are not validated against the IdeonSelect dataset on submission. If an npi or address_id is unknown or invalid, the quote still succeeds and the provider is reported as out-of-network. We recommend a maximum of 50 unique npi / address_id combinations per quote request.
Response shape. When providers is included in the request, each plan in the response carries a providers array. Each entry contains:
npi — the provider NPI from the request.in_network — boolean. With no address_id, true if the provider participates at any address. With an address_id, true only if the provider participates at that address.addresses — array of in-network address objects (city, state, street, zip, lat/lng, phone, fax, pcp, accepting_new_patients, etc.). Filtered to the requested address_id when one was provided; empty when the provider is out-of-network or no qualifying addresses exist.Out-of-network example:
{
"id": "12345NY0000001",
"name": "Blue Shield Inspire (HMO)",
"premium": 500.0,
"providers": [
{ "npi": 1538670880, "in_network": false, "addresses": [] }
]
}
In-network responses use the same shape, with the addresses array populated with the provider's qualifying practice locations.
The IFP Medical quoting workflow supports evaluation of prescription drug formulary coverage within the quote. This pattern is commonly referred to as "Shop by Drug" — surfacing available plans alongside how each plan covers the specific drugs the end user takes. Like Shop by Doc, this is a two-step workflow:
drug_packages array on this endpoint. The response will return formulary coverage details for each drug against each quoted plan.Request shape. Each entry in drug_packages references a drug by NDC Package Code (id) or Med ID (med_id):
"drug_packages": [
{ "id": "01002-1200-11" },
{ "med_id": "12345" }
]
Response shape. When drug_packages is included in the request, the top-level response carries a coverages array. Each entry pairs one requested drug with one quoted plan and includes:
drug_package_id — the NDC Package Code or Med ID from the request.plan_id — the plan HIOS ID this coverage applies to.tier — the formulary tier (see enum list on the tier property).prior_authorization — whether the plan requires prior authorization for this drug.quantity_limit — whether the plan applies a quantity limit.step_therapy — whether step therapy is required.Coverage rows are produced for the cross-product of every requested drug and every quoted plan, so the array length grows with both. We recommend constraining per_page and filtering plans where possible when querying many drugs at once.
Some carriers require end users to answer qualification questions before their plans can be presented in a quote. To unlock those plans, pass the issuer's HIOS Issuer ID in issuer_qualifications_met after the end user has completed the carrier's questionnaire — this confirms to Ideon that the user is eligible to see plans gated behind that issuer.
Plans returned under an issuer qualification carry a -94 suffix in their id. For the current list of issuers with qualification requirements and details on the questions involved, contact [email protected].
| page | integer Example: page=1 Page of paginated response |
| per_page | integer <= 50 Example: per_page=1 Responses per page |
| Accept-Version | string Example: v6 API version requested |
| fips_code required | string Example: "36081" 5-digit county FIPS code for the search location. Required alongside zip_code because a single ZIP may span multiple counties with different plan availability. | ||||||
| market required | string Enum: "shop" "individual" "small_group" Example: "individual" Market to search. | ||||||
| zip_code required | string Example: "11423" 5-digit ZIP code for the search location. Determines rating area and service area eligibility. | ||||||
Array of objects (RequestPlanFindApplicant) Example: [{"age":21,"child":false,"smoker":false}] Applicants for desired plans. | |||||||
Array
| |||||||
Array of objects (RequestPlanFindDrugPackage) Example: [{"id":"01002-1200-11"}] National Drug Code Package Id | |||||||
Array
| |||||||
| enrollment_date | string <date> Example: "2026-01-01" Date of enrollment | ||||||
| external_id | string Example: "some-unique-id" Unique identifier for the member | ||||||
| group_id | string Example: "uaLcmyru" Foreign key for the group to which this member belongs | ||||||
| household_income | integer Example: "55000" Total household income. | ||||||
| household_size | integer Example: "1" Number of people living in household. | ||||||
| ids | Array of integers List of plan IDs to filter by | ||||||
| issuer_qualifications_met | Array of strings Example: ["12345"] A list of HIOS Issuer IDs with specific plan eligibility qualifications | ||||||
| page | integer Example: "1" Selected page of paginated response. | ||||||
| per_page | integer Example: "20" Results per page of response. | ||||||
Array of objects (RequestPlanFindProvider) Example: [{"address_id":"589c907f-28c2-3d14-8916-1144a5191ba2","npi":1234567890}] List of providers to search for. | |||||||
Array
| |||||||
| sort | string Example: "premium:asc" Sort responses by plan field. | ||||||
| X-RateLimit-Limit | integer Maximum requests allowed in the current rate-limit window (per minute) |
| X-RateLimit-Remaining | integer Requests remaining in the current rate-limit window |
| Total | integer Example: "150" Total number of records matching the query across all pages |
| Per-Page | integer Example: "25" Number of records returned per page |
| Page | integer Example: "1" Current page number |
| Link | string Example: "<https://api.ideonapi.com/networks?page=2&per_page=25>; rel=\"next\", <https://api.ideonapi.com/networks?page=1&per_page=25>; rel=\"first\"" RFC-5988 pagination links containing |
Array of objects (DrugCoverage) Example: [{"drug_package_id":"01002-1200-11","plan_id":"88582NY0230001","prior_authorization":true,"quantity_limit":true,"step_therapy":true,"tier":"generic"}] Coverages associated with the plan. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Array
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
object (Meta) Example: {"total":1} | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Array of objects (V8_MedicalPlan2018SearchEntity) Example: [{"abortion_rider":false,"actuarial_value":80,"adult_dental":true,"age29_rider":false,"ambulance":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"audience":"small_group","benefits_summary_url":"https://d2ed110nmrd591.cloudfront.net/blobs/i6XqimNu7KpSbJjKU5HeTSp1.pdf","carrier":{"id":"bae1d0e1-80dc-48f4-918d-6c492340cc1c","issuer_id":"A0027","logo_url":"https://d1hm12jr612u3r.cloudfront.net/images/carriers/174/1438891372/thumb.png?1438891372","name":"Guardian"},"carrier_disclaimers":"See Summary of Benefits and Coverage (SBC) for more details.","carrier_name":"Aetna","child_dental":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"child_eye_exam":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"child_eyewear":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"chiropractic_services":false,"diagnostic_test":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"display_name":"Aetna PPO 20/5000","dp_rider":true,"drug_formulary_url":"https://www.emblemhealth.com/content/dam/emblemhealth/pdfs/resources/formularies/2020_Small-Group_Formulary.pdf","durable_medical_equipment":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"effective_date":"2026-01-01","embedded_deductible":"non_embedded","emergency_room":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"estimated_actuarial_value":80,"expiration_date":"2026-12-31","family_drug_deductible":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"family_drug_moop":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"family_medical_deductible":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"family_medical_moop":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"formulary":{"id":123,"name":"Aetna 3 Tier"},"fp_rider":true,"gated":false,"generic_drugs":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"habilitation_services":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"hios_issuer_id":"88582","home_health_care":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"hospice_service":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"hsa_eligible":false,"id":"88582NY0230001","identifiers":[{"type":"contract_id","value":"abc123"}],"imaging":{"in_network":"30% after deductible","limit":"1 time(s) per year","out_of_network":"50% after deductible"},"imaging_center":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"imaging_physician":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"individual_drug_deductible":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"individual_drug_moop":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"individual_medical_deductible":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"individual_medical_moop":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"infertility_treatment_rider":false,"inpatient_birth":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"inpatient_birth_physician":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"inpatient_facility":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"inpatient_mental_health":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"inpatient_physician":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"inpatient_substance":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"lab_test":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"level":"silver","logo_url":"https://d1hm12jr612u3r.cloudfront.net/images/carriers/174/1438891372/thumb.png?1438891372","mail_order_rx":1.5,"name":"Select Care Silver, Age 29 Rider","network_ids":[1,3],"network_size":5000,"networks":[{"id":1,"name":"Open Choice","provider_directory_url":"https://www.example.com/find-a-doctor"}],"non_preferred_brand_drugs":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"nonpreferred_generic_drug_share":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"nonpreferred_specialty_drug_share":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"off_market":false,"on_market":true,"out_of_network_coverage":false,"outpatient_ambulatory_care_center":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"outpatient_facility":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"outpatient_mental_health":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"outpatient_physician":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"outpatient_substance":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"plan_ancestors":[{"id":"88582NY0230001","year":2019}],"plan_calendar":"calendar_year","plan_coinsurance":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"plan_documents":[{"type":"summary_of_benefits_and_coverage","url":"https://www.example.com/summary_of_benefits_and_coverage.pdf"}],"plan_market":"on_market","plan_type":"HMO","postnatal_care":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"preferred_brand_drugs":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"premium":533.24,"premium_source":"carrier","premium_subsidized":321.5,"premiums_by_applicant":[{"age":21,"child":false}],"prenatal_care":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"prenatal_postnatal_care":{"in_network":"30% after deductible","limit":"1 time(s) per year","out_of_network":"50% after deductible"},"preventative_care":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"primary_care_physician":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"product_line":"medical","providers":[{"in_network":true,"npi":1234567890}],"quoted_via_carrier_api":false,"ratings":[{"type":"cms_quality_ratings_overall","value":"3"}],"rehabilitation_services":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"sbc_name":"Aetna PPO 20/5000","service_area_id":"11234-2016-WI01-individual","skilled_nursing":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"skilled_nursing_facility_365":"unlimited","source":"carrier","specialist":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"specialty_drugs":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"standardized_plan":false,"telemedicine":false,"type":"ACAPlan2018","updated_at":"2026-01-01T00:00:00.000Z","urgent_care":{"in_network":"30% after deductible","out_of_network":"50% after deductible"}}] Medical plan search results | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Array
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{- "applicants": [
- {
- "age": 21,
- "child": false,
- "smoker": false
}
], - "drug_packages": [
- {
- "id": "01002-1200-11"
}
], - "enrollment_date": "2026-01-01",
- "external_id": "some-unique-id",
- "fips_code": "36081",
- "group_id": "uaLcmyru",
- "household_income": 55000,
- "household_size": 1,
- "issuer_qualifications_met": [
- "12345"
], - "market": "individual",
- "page": 1,
- "per_page": 20,
- "providers": [
- {
- "address_id": "589c907f-28c2-3d14-8916-1144a5191ba2",
- "npi": 1234567890
}
], - "sort": "premium:asc",
- "zip_code": "11423"
}{- "coverages": [
- {
- "drug_package_id": "01002-1200-11",
- "plan_id": "88582NY0230001",
- "prior_authorization": true,
- "quantity_limit": true,
- "step_therapy": true,
- "tier": "generic"
}
], - "meta": {
- "total": 1
}, - "plans": [
- {
- "abortion_rider": false,
- "actuarial_value": 80,
- "adult_dental": true,
- "age29_rider": false,
- "ambulance": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "audience": "small_group",
- "carrier_disclaimers": "See Summary of Benefits and Coverage (SBC) for more details.",
- "carrier_name": "Aetna",
- "child_dental": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "child_eye_exam": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "child_eyewear": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "chiropractic_services": false,
- "diagnostic_test": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "display_name": "Aetna PPO 20/5000",
- "dp_rider": true,
- "durable_medical_equipment": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "effective_date": "2026-01-01",
- "embedded_deductible": "non_embedded",
- "emergency_room": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "estimated_actuarial_value": 80,
- "expiration_date": "2026-12-31",
- "family_drug_deductible": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "family_drug_moop": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "family_medical_deductible": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "family_medical_moop": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "fp_rider": true,
- "gated": false,
- "generic_drugs": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "habilitation_services": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "hios_issuer_id": "88582",
- "home_health_care": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "hospice_service": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "hsa_eligible": false,
- "id": "88582NY0230001",
- "imaging_center": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "imaging_physician": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "individual_drug_deductible": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "individual_drug_moop": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "individual_medical_deductible": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "individual_medical_moop": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "infertility_treatment_rider": false,
- "inpatient_birth": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "inpatient_birth_physician": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "inpatient_facility": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "inpatient_mental_health": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "inpatient_physician": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "inpatient_substance": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "lab_test": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "level": "silver",
- "mail_order_rx": 1.5,
- "name": "Select Care Silver, Age 29 Rider",
- "network_ids": [
- 1,
- 3
], - "network_size": 5000,
- "non_preferred_brand_drugs": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "nonpreferred_generic_drug_share": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "nonpreferred_specialty_drug_share": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "off_market": false,
- "on_market": true,
- "out_of_network_coverage": false,
- "outpatient_ambulatory_care_center": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "outpatient_facility": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "outpatient_mental_health": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "outpatient_physician": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "outpatient_substance": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "plan_calendar": "calendar_year",
- "plan_coinsurance": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "plan_market": "on_market",
- "plan_type": "HMO",
- "postnatal_care": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "preferred_brand_drugs": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "premium": 533.24,
- "premium_source": "carrier",
- "premium_subsidized": 321.5,
- "prenatal_care": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "preventative_care": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "primary_care_physician": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "product_line": "medical",
- "quoted_via_carrier_api": false,
- "rehabilitation_services": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "sbc_name": "Aetna PPO 20/5000",
- "service_area_id": "11234-2016-WI01-individual",
- "skilled_nursing": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "skilled_nursing_facility_365": "unlimited",
- "source": "carrier",
- "specialist": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "specialty_drugs": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "standardized_plan": false,
- "telemedicine": false,
- "type": "ACAPlan2018",
- "updated_at": "2026-01-01T00:00:00.000Z",
- "urgent_care": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}
}
]
}v7: Support added for the optional provider address_id in the providers list of the request schema for further filtering of in-network logic.
Additionally, the in_network_ids and out_of_network_ids fields were deprecated from the response and replaced with the providers list. The response schema returns benefits as strings.
v6: Previous supported version.
Searches Medicare Advantage, MAPD (Medicare Advantage with Prescription Drug coverage), and PDP (Prescription Drug Plan) plans available in a given location for individual Medicare quoting. Only location (zip_code, fips_code) and enrollment_date are required — Medicare Advantage plans are not rated by applicant demographics in the same way as ACA Major Medical, so no applicants block is needed.
A note on identifiers. Medicare Advantage plans carry two distinct identifiers. The id field is an Ideon identifier unique to the plan across product lines. The medicare_plan_id entry in the identifiers array — for example, H0523-022-0 — is the CMS Medicare Contract Code ID, composed of the carrier contract/bid ID, plan ID, and segment ID, and is unique to the plan year.
Provider participation can be evaluated inline with the quote — see the Shop by Doc section below. Shop by Drug is not currently supported on Medicare Advantage.
The Medicare Advantage quoting workflow supports evaluation of provider network participation within a single API call. This pattern — quoting plans alongside doctor participation — is commonly referred to as "Shop by Doc". Because quoting and participation evaluation happen in one request, the workflow is two steps end-to-end:
providers array on this endpoint. The response will return participation data for each provider against each quoted plan's network.Request shape. Each entry in the providers array is an object with an npi and an optional address_id. Multiple addresses for the same provider should be passed as separate objects:
"providers": [
{ "npi": 1538670880, "address_id": "2bd18d55-4bc6-3a66-aeef-fae893d5d8c0" },
{ "npi": 1234567890 }
]
Address ID behavior.
address_id): the provider is evaluated for participation at any of their practice locations. The response will return all in-network addresses for that provider on each plan.address_id: participation is evaluated only against the specific address. The response addresses array will be filtered to just that address when in-network, or empty when not.Validation. NPIs and address IDs are not validated against the IdeonSelect dataset on submission. If an npi or address_id is unknown or invalid, the quote still succeeds and the provider is reported as out-of-network. We recommend a maximum of 50 unique npi / address_id combinations per quote request.
Response shape. When providers is included in the request, each plan in the response carries a providers array. Each entry contains:
npi — the provider NPI from the request.in_network — boolean. With no address_id, true if the provider participates at any address. With an address_id, true only if the provider participates at that address.addresses — array of in-network address objects (city, state, street, zip, lat/lng, phone, fax, pcp, accepting_new_patients, etc.). Filtered to the requested address_id when one was provided; empty when the provider is out-of-network or no qualifying addresses exist.| enrollment_date required | string <date> Example: "2026-04-02" Effective date of coverage, in YYYY-MM-DD format. Plans whose effective/expiration window does not include this date are excluded. | ||||
| fips_code required | string Example: "36081" 5-digit county FIPS code for the search location. Required alongside zip_code because a single ZIP may span multiple counties with different Medicare Advantage plan availability. | ||||
| zip_code required | string Example: "11423" 5-digit ZIP code for the search location. | ||||
| ids | Array of strings Example: ["S2893-003-0","H9585-001-0"] List of Medicare Advantage plan contract identifiers | ||||
| page | integer Example: "1" Selected page of paginated response. | ||||
| per_page | integer Example: "20" Results per page of response. | ||||
Array of objects (RequestPlanFindProvider) Example: [{"address_id":"589c907f-28c2-3d14-8916-1144a5191ba2","npi":1234567890}] List of providers to search for. | |||||
Array
| |||||
| X-RateLimit-Limit | integer Maximum requests allowed in the current rate-limit window (per minute) |
| X-RateLimit-Remaining | integer Requests remaining in the current rate-limit window |
object (Meta) Example: {"total":1} | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Array of objects (V7MedicareAdvantagePlanSearch) Example: [{"audience":"individual","benefits":{"acupuncture":"In-Network: $300 / Out-of-Network: $300 after deductible","ambulance":"In-Network: $300 / Out-of-Network: $300 after deductible","catastrophic_brand_name":"In-Network: 20% / Out-of-Network: 40% after deductible","catastrophic_excluded":"In-Network: 20% / Out-of-Network: 40% after deductible","catastrophic_generic":"In-Network: 20% / Out-of-Network: 40% after deductible","chemotherapy_drug":"In-Network: 20% / Out-of-Network: 40% after deductible","deductible_annual_drug":"In-Network: $0 / Out-of-Network: unknown","deductible_annual_medical":"In-Network: $0 / Out-of-Network: unknown","dental_cleaning":"In-Network: $0 / Out-of-Network: Not Applicable","dental_diagnostic_services":"In-Network: 50% / Out-of-Network: 40% after deductible","dental_endodontics":"In-Network: 50% / Out-of-Network: 40% after deductible","dental_exam":"In-Network: $0 / Out-of-Network: Not Applicable","dental_extraction":"In-Network: $0 / Out-of-Network: Not Applicable","dental_fluoride_treatment":"In-Network: 100% / Out-of-Network: 100%","dental_medicare_covered_benefits":"In-Network: $40 / Out-of-Network: 40% after deductible","dental_non_routine_services":"In-Network: 100% / Out-of-Network: 100%","dental_periodontics":"In-Network: 100% / Out-of-Network: 100%","dental_prosthodontics_and_other":"In-Network: 100% / Out-of-Network: 100%","dental_restorative_services":"In-Network: 100% / Out-of-Network: 100%","dental_x_rays":"In-Network: $0 / Out-of-Network: Not Applicable","diabetes_management_monitoring_supplies":"In-Network: 0%-20% / Out-of-Network: 0%-20% after deductible","diagnostic_lab_service":"In-Network: $40 / Out-of-Network: 40% after deductible","diagnostic_outpatient_x_rays":"In-Network: $40 / Out-of-Network: 40% after deductible","diagnostic_radiology":"In-Network: 20% / Out-of-Network: 40% after deductible","diagnostic_test_and_procedures":"In-Network: 20% / Out-of-Network: 40% after deductible","diagnostic_therapeutic_radiology":"In-Network: 20% / Out-of-Network: 40% after deductible","doctor_visit_primary":"In-Network: 20% / Out-of-Network: 40% after deductible","doctor_visit_specialist":"In-Network: 20% / Out-of-Network: 40% after deductible","durable_medical_equipment":"In-Network: 20% / Out-of-Network: 40% after deductible","emergency_care":"In-Network: 20% / Out-of-Network: 40% after deductible","gap_brand_name":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_generic":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_generic_preferred_mail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_generic_preferred_mail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_generic_preferred_retail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_generic_preferred_retail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_generic_standard_mail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_generic_standard_mail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_generic_standard_retail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_generic_standard_retail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_non_preferred_preferred_mail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_non_preferred_preferred_mail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_non_preferred_preferred_retail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_non_preferred_preferred_retail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_non_preferred_standard_mail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_non_preferred_standard_mail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_non_preferred_standard_retail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_non_preferred_standard_retail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_preferred_brand_preferred_mail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_preferred_brand_preferred_mail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_preferred_brand_preferred_retail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_preferred_brand_preferred_retail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_preferred_brand_standard_mail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_preferred_brand_standard_mail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_preferred_brand_standard_retail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_preferred_brand_standard_retail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_preferred_generic_preferred_mail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_preferred_generic_preferred_mail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_preferred_generic_preferred_retail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_preferred_generic_preferred_retail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_preferred_generic_standard_mail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_preferred_generic_standard_mail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_preferred_generic_standard_retail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_preferred_generic_standard_retail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_specialty_preferred_mail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_specialty_preferred_mail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_specialty_preferred_retail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_specialty_preferred_retail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_specialty_standard_mail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_specialty_standard_mail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_specialty_standard_retail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_specialty_standard_retail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","hearing_aids":"In-Network: 20% / Out-of-Network: 40% after deductible","hearing_aids_fitting_and_evaluation":"In-Network: 20% / Out-of-Network: 40% after deductible","hearing_exam":"In-Network: 20% / Out-of-Network: 40% after deductible","hearing_medicare_covered_benefits":"In-Network: 20% / Out-of-Network: 40% after deductible","home_health_care":"In-Network: 20% / Out-of-Network: 40% after deductible","home_safety_devices_and_modifications":"In-Network: 20% / Out-of-Network: 40% after deductible","hospice":"In-Network: 20% / Out-of-Network: 40% after deductible","in_home_support_services":"In-Network: 20% / Out-of-Network: 40% after deductible","initial_generic_preferred_mail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_generic_preferred_mail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_generic_preferred_retail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_generic_preferred_retail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_generic_standard_mail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_generic_standard_mail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_generic_standard_retail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_generic_standard_retail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_non_preferred_preferred_mail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_non_preferred_preferred_mail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_non_preferred_preferred_retail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_non_preferred_preferred_retail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_non_preferred_standard_mail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_non_preferred_standard_mail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_non_preferred_standard_retail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_non_preferred_standard_retail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_preferred_brand_preferred_mail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_preferred_brand_preferred_mail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_preferred_brand_preferred_retail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_preferred_brand_preferred_retail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_preferred_brand_standard_mail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_preferred_brand_standard_mail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_preferred_brand_standard_retail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_preferred_brand_standard_retail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_preferred_generic_preferred_mail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_preferred_generic_preferred_mail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_preferred_generic_preferred_retail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_preferred_generic_preferred_retail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_preferred_generic_standard_mail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_preferred_generic_standard_mail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_preferred_generic_standard_retail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_preferred_generic_standard_retail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_specialty_preferred_mail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_specialty_preferred_mail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_specialty_preferred_retail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_specialty_preferred_retail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_specialty_standard_mail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_specialty_standard_mail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_specialty_standard_retail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_specialty_standard_retail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","inpatient_hospital":"In-Network: 20% / Out-of-Network: 40% after deductible","meals":"In-Network: 20% / Out-of-Network: 40% after deductible","medical_chiropractic_services":"In-Network: 20% / Out-of-Network: 40% after deductible","medical_moop":"In-Network: $6,700 / Out-of-Network: $9,500","mental_health_inpatient_visit":"In-Network: 20% / Out-of-Network: 40% after deductible","mental_health_outpatient_group_therapy":"In-Network: 20% / Out-of-Network: 40% after deductible","mental_health_outpatient_individual_therapy":"In-Network: 20% / Out-of-Network: 40% after deductible","other_part_b_drug":"In-Network: 20% / Out-of-Network: 40% after deductible","outpatient_hospital":"In-Network: 20% / Out-of-Network: 40% after deductible","over_the_counter":"In-Network: 20% / Out-of-Network: 40% after deductible","personal_emergency_response_system":"In-Network: 20% / Out-of-Network: 40% after deductible","physical_therapy":"In-Network: 20% / Out-of-Network: 40% after deductible","podiatry_medicare_covered_benefits":"In-Network: 20% / Out-of-Network: 40% after deductible","podiatry_routine_footcare":"In-Network: 20% / Out-of-Network: 40% after deductible","preventive_care":"In-Network: 20% / Out-of-Network: 40% after deductible","prosthetics":"In-Network: 20% / Out-of-Network: 40% after deductible","rehabilitation_occupational_therapy":"In-Network: 20% / Out-of-Network: 40% after deductible","remote_access_technology":"In-Network: 20% / Out-of-Network: 40% after deductible","renal_dialysis":"In-Network: 20% / Out-of-Network: 40% after deductible","routine_transportation":"In-Network: 20% / Out-of-Network: 40% after deductible","skilled_nursing_facility":"In-Network: 20% / Out-of-Network: 40% after deductible","telehealth":"In-Network: 20% / Out-of-Network: 40% after deductible","urgent_care":"In-Network: 20% / Out-of-Network: 40% after deductible","vision_contact_lenses":"In-Network: 20% / Out-of-Network: 40% after deductible","vision_exam":"In-Network: 20% / Out-of-Network: 40% after deductible","vision_eyeglass_frames_and_lenses":"In-Network: 20% / Out-of-Network: 40% after deductible","vision_medicare_covered_benefits":"In-Network: 20% / Out-of-Network: 40% after deductible","vision_upgrades":"In-Network: 20% / Out-of-Network: 40% after deductible","wellness_program":"In-Network: 20% / Out-of-Network: 40% after deductible","worldwide_emergency":"In-Network: 20% / Out-of-Network: 40% after deductible"},"benefits_summary_url":"http://www.emblemhealth.com/~/media/Files/PDF/HIXHub/BenefitSummary_SelectCareSilver.pdf","carrier":{"id":"bae1d0e1-80dc-48f4-918d-6c492340cc1c","issuer_id":"A0027","logo_url":"https://d1hm12jr612u3r.cloudfront.net/images/carriers/174/1438891372/thumb.png?1438891372","name":"Guardian"},"carrier_name":"EmblemHealth","customer_service_phone_member":"(800)282-5366","customer_service_phone_non_member":"(855)338-7027","id":"uaLcmyru","identifiers":[{"type":"contract_id","value":"abc123"}],"logo_url":"https://d1hm12jr612u3r.cloudfront.net/images/carriers/174/1438891372/thumb.png?1438891372","name":"Aetna Medicare Choice Plan (PPO)","network_size":5000,"networks":[{"id":1,"name":"Open Choice","provider_directory_url":"https://www.example.com/find-a-doctor"}],"part_b_premium_reduction":30.33,"plan_documents":[{"type":"summary_of_benefits_and_coverage","url":"https://www.example.com/summary_of_benefits_and_coverage.pdf"}],"plan_type":"HMO","premium_drug":533.24,"premium_health":533.24,"product_line":"medical","providers":[{"in_network":true,"npi":1234567890}],"service_area_id":"11234-2016-WI01-individual","source":"carrier","stand_alone_part_d":false,"star_rating_drug_plan":4,"star_rating_health_plan":4,"star_rating_overall":4,"supplemental_options":[{"benefits":["Preventive Dental","Comprehensive Dental"],"deductible":50,"id":1,"moop":1000,"name":"Aetna Medicare Advantage PPO Dental Plan","premium":23}],"year":"2019"}] Medicare Advantage plan search results | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Array
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{- "enrollment_date": "2026-04-02",
- "fips_code": "36081",
- "ids": [
- "S2893-003-0",
- "H9585-001-0"
], - "page": 1,
- "per_page": 20,
- "providers": [
- {
- "address_id": "589c907f-28c2-3d14-8916-1144a5191ba2",
- "npi": 1234567890
}
], - "zip_code": "11423"
}{- "meta": {
- "total": 1
}, - "plans": [
- {
- "audience": "individual",
- "benefits_summary_url": "http://www.emblemhealth.com/~/media/Files/PDF/HIXHub/BenefitSummary_SelectCareSilver.pdf",
- "carrier_name": "EmblemHealth",
- "customer_service_phone_member": "(800)282-5366",
- "customer_service_phone_non_member": "(855)338-7027",
- "id": "uaLcmyru",
- "name": "Aetna Medicare Choice Plan (PPO)",
- "network_size": 5000,
- "part_b_premium_reduction": 30.33,
- "plan_type": "HMO",
- "premium_drug": 533.24,
- "premium_health": 533.24,
- "product_line": "medical",
- "service_area_id": "11234-2016-WI01-individual",
- "source": "carrier",
- "stand_alone_part_d": false,
- "star_rating_drug_plan": 4,
- "star_rating_health_plan": 4,
- "star_rating_overall": 4,
- "year": "2019"
}
]
}Create and poll asynchronous ICHRA quotes that return member-specific plan availability and premiums.
v8: The documentation for this endpoint references this latest available version.
Creates an ICHRA Quote for a group, evaluating individual market plan availability and premiums for every member in the group's census. The quoting job runs asynchronously in the background — rather than submitting a separate quote request per applicant, the entire group is processed in a single workflow that returns one quote id to poll against.
Prerequisites. Before creating an ICHRA quote, the group must be set up with members via the Group Member Management endpoints:
company_tax_id and at least one of broker_npn or agency_npn — both are required for ICHRA quoting.household_income, household_size, safe_harbor_income).Workflow. Submitting this endpoint returns a quote id and an initial pending status. Poll the Show an ICHRA Quote endpoint using that id until status reaches a terminal state (complete, complete_with_errors, or failed). Once complete, retrieve results in whichever shape fits the use case:
member_id. Best when results are pulled selectively.outputs.bulk_export_file.enabled was set to true at quote creation, a JSONL file containing all member results is generated upon completion and accessible via a pre-signed URL. Best for group sizes above ~1,000 members.Plan metadata. ICHRA group quotes return member-specific plan availability and premiums but do not include full plan benefits or carrier metadata in the response. To display complete plan details alongside quoted results, cache Ideon's plan inventory via the Bulk Exports endpoints and join on plan_id.
Retention. Quote data is retained and accessible by id for 6 months after creation. If results are needed beyond that window, they should be saved client-side before expiration.
Quote IDs. Successful requests return an id on the quote object. This identifier is required for all downstream endpoints (Show, Display Rates, Display Member Rates) and for support requests related to the quote — along with the group.id, it should be easily accessible from triage workflows.
The ICHRA quoting API is asynchronous. Poll the Show an ICHRA Quote endpoint using the id returned from this response and check the status field until the quote has reached a terminal state (complete, complete_with_errors, or failed). Processing times vary based on group size, geographic distribution of members, and which optional calculations were requested — ichra_affordability is the most expensive and adds noticeable latency on large groups.
| Status Value | Notes |
|---|---|
pending |
The ICHRA Quote has been received and is queued for processing. |
in_progress |
The ICHRA Quote is actively being processed. |
generating_export |
The quoting job is complete and the bulk export file is being generated. Only used when outputs.bulk_export_file.enabled is true. |
complete |
The ICHRA Quote has completed successfully. Results are available for all members. |
complete_with_errors |
The ICHRA Quote has completed, but one or more members encountered errors and may not have results. Other members' results are available. |
failed |
The ICHRA Quote failed to process. No results are available. Failures are rare; multiple successive failures should be escalated to Ideon support. |
| id required | string Example: b215b6bcdb ID of the Group |
| X-RateLimit-Limit | integer Maximum requests allowed in the current rate-limit window (per minute) |
| X-RateLimit-Remaining | integer Requests remaining in the current rate-limit window |
object (V8_IchraQuoteShow) Example: {"bulk_export_url":{"download_url":"https://ideon-bulk-exports.s3.amazonaws.com/exports/24c47bf1-d06e-4711-862a-bdf9ae0acd81.jsonl?X-Amz-Expires=3600&X-Amz-Signature=abc123","export_id":"24c47bf1-d06e-4711-862a-bdf9ae0acd81","status":"pending"},"calculations":{"csr_eligibility":{"enabled":false},"ichra_affordability":{"enabled":false,"plan_year":2026,"rating_area_basis":"home"},"ptc_subsidy":{"enabled":false}},"created_at":"2026-01-01T12:00:00.000Z","effective_date":"2026-01-01","id":"quote-abc123","job":{"error_count":0,"status":"pending","status_updated_at":"2026-01-01T12:00:00.000Z","total_dependents":15,"total_members":10},"outputs":{"bulk_export_file":{"enabled":false},"premiums_by_applicant":{"enabled":false}},"plan_filters":{"exchange_availability":["on_only","both"],"hios_issuer_ids":["12345","67890"],"reference_plans":["lcsp","slcsp"]}} | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{- "quote": {
- "bulk_export_url": {
- "export_id": "24c47bf1-d06e-4711-862a-bdf9ae0acd81",
- "status": "pending"
}, - "created_at": "2026-01-01T12:00:00.000Z",
- "effective_date": "2026-01-01",
- "id": "quote-abc123",
- "job": {
- "error_count": 0,
- "status": "pending",
- "status_updated_at": "2026-01-01T12:00:00.000Z",
- "total_dependents": 15,
- "total_members": 10
}, - "plan_filters": {
- "exchange_availability": [
- "on_only",
- "both"
], - "hios_issuer_ids": [
- "12345",
- "67890"
], - "reference_plans": [
- "lcsp",
- "slcsp"
]
}
}
}v8: The documentation for this endpoint references this latest available version.
Retrieves the metadata and current processing status for an ICHRA Quote. Use this endpoint to poll for completion after submitting a quote via Create an ICHRA Quote.
Poll using the id returned from the Create response until status reaches a terminal state (complete, complete_with_errors, or failed). Poll cadence should be dynamic based on group size and expected processing times. Once complete, retrieve results via Display ICHRA Quote Rates, Display ICHRA Quote Member Rates, or the bulk export file if it was requested as an output.
Quote data is retained for 6 months after creation. The response echoes the original quote request parameters alongside job metadata and (when requested) bulk export file metadata.
| Status Value | Notes |
|---|---|
pending |
The ICHRA Quote has been received and is queued for processing. |
in_progress |
The ICHRA Quote is actively being processed. |
generating_export |
The quoting job is complete and the bulk export file is being generated. Only used when outputs.bulk_export_file.enabled is true. |
complete |
The ICHRA Quote has completed successfully. Results are available for all members. |
complete_with_errors |
The ICHRA Quote has completed, but one or more members encountered errors and may not have results. Other members' results are available. |
failed |
The ICHRA Quote failed to process. No results are available. Failures are rare; multiple successive failures should be escalated to Ideon support. |
| id required | string Example: abc123def4 ID of the ICHRA Quote |
| X-RateLimit-Limit | integer Maximum requests allowed in the current rate-limit window (per minute) |
| X-RateLimit-Remaining | integer Requests remaining in the current rate-limit window |
object (V8_IchraQuoteShow) Example: {"bulk_export_url":{"download_url":"https://ideon-bulk-exports.s3.amazonaws.com/exports/24c47bf1-d06e-4711-862a-bdf9ae0acd81.jsonl?X-Amz-Expires=3600&X-Amz-Signature=abc123","export_id":"24c47bf1-d06e-4711-862a-bdf9ae0acd81","status":"pending"},"calculations":{"csr_eligibility":{"enabled":false},"ichra_affordability":{"enabled":false,"plan_year":2026,"rating_area_basis":"home"},"ptc_subsidy":{"enabled":false}},"created_at":"2026-01-01T12:00:00.000Z","effective_date":"2026-01-01","id":"quote-abc123","job":{"error_count":0,"status":"pending","status_updated_at":"2026-01-01T12:00:00.000Z","total_dependents":15,"total_members":10},"outputs":{"bulk_export_file":{"enabled":false},"premiums_by_applicant":{"enabled":false}},"plan_filters":{"exchange_availability":["on_only","both"],"hios_issuer_ids":["12345","67890"],"reference_plans":["lcsp","slcsp"]}} | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{- "quote": {
- "bulk_export_url": {
- "export_id": "24c47bf1-d06e-4711-862a-bdf9ae0acd81",
- "status": "pending"
}, - "created_at": "2026-01-01T12:00:00.000Z",
- "effective_date": "2026-01-01",
- "id": "quote-abc123",
- "job": {
- "error_count": 0,
- "status": "pending",
- "status_updated_at": "2026-01-01T12:00:00.000Z",
- "total_dependents": 15,
- "total_members": 10
}, - "plan_filters": {
- "exchange_availability": [
- "on_only",
- "both"
], - "hios_issuer_ids": [
- "12345",
- "67890"
], - "reference_plans": [
- "lcsp",
- "slcsp"
]
}
}
}v8: The documentation for this endpoint references this latest available version.
Returns paginated rates for all members in a completed ICHRA Quote. Each entry represents one member and the individual market plans available to them, along with premiums and any optional calculation outputs requested at quote creation.
This is one of three ways to pull results from a completed quote. Use this endpoint to paginate through the full group's results — best for groups up to ~1,000 members. For larger groups, prefer the bulk export file (set outputs.bulk_export_file.enabled at quote creation). For a single member by id, use Display ICHRA Quote Member Rates.
The quote must have a status of complete or complete_with_errors before results are available. Poll Show an ICHRA Quote to check.
| id required | string Example: abc123def4 ID of the ICHRA Quote |
| member_error | boolean Filter by error presence. Set to true to return only members with errors, false for members without errors. |
| page | integer Example: page=1 Page of paginated response |
| per_page | integer <= 200 Example: per_page=75 Responses per page. Default is 75, maximum is 200. |
| X-RateLimit-Limit | integer Maximum requests allowed in the current rate-limit window (per minute) |
| X-RateLimit-Remaining | integer Requests remaining in the current rate-limit window |
| Total | integer Example: "150" Total number of records matching the query across all pages |
| Per-Page | integer Example: "25" Number of records returned per page |
| Page | integer Example: "1" Current page number |
| Link | string Example: "<https://api.ideonapi.com/networks?page=2&per_page=25>; rel=\"next\", <https://api.ideonapi.com/networks?page=1&per_page=25>; rel=\"first\"" RFC-5988 pagination links containing |
Array of objects (V8_IchraQuoteRateMember) Example: [{"calculations":{"csr_eligibility":{"eligible":true},"ichra_affordability":{"fpl_minimum_employer_contribution":"350.00","minimum_employer_contribution":"400.00"},"ptc_subsidy":{"eligible_for_chip_medicaid":true,"premium_tax_credit":"150.00"}},"member_id":"member_001","rates":[{"plan_id":"79888MN0250344","premium":"500.00"}]}] List of members with their ICHRA quote rates | |||||||||
Array
| |||||||||
object (Meta) Example: {"total":1} | |||||||||
| |||||||||
{- "members": [
- {
- "member_id": "member_001"
}
], - "meta": {
- "total": 1
}
}v8: The documentation for this endpoint references this latest available version.
Returns rates for a single member in a completed ICHRA Quote. The response includes all individual market plans available to the member, their premiums, and any optional calculation outputs requested at quote creation.
This is one of three ways to pull results from a completed quote — use it when results are needed selectively per member. For the full group in one paginated response, use Display ICHRA Quote Rates. For groups above ~1,000 members, prefer the bulk export file.
The quote must have a status of complete or complete_with_errors before results are available. If the member encountered an error during quoting, the response will indicate this in error_messages and rates may be empty.
| id required | string Example: abc123def4 ID of the ICHRA Quote |
| member_id required | string Example: abc123def4 External key of the Member |
| X-RateLimit-Limit | integer Maximum requests allowed in the current rate-limit window (per minute) |
| X-RateLimit-Remaining | integer Requests remaining in the current rate-limit window |
object (V8_IchraQuoteRateQuoteOutputs) Example: {"csr_eligibility":{"eligible":true},"ichra_affordability":{"fpl_minimum_employer_contribution":"350.00","minimum_employer_contribution":"400.00"},"ptc_subsidy":{"eligible_for_chip_medicaid":true,"premium_tax_credit":"150.00"}} | |||||||||||||||||||||||
| |||||||||||||||||||||||
| error_messages | Array of strings List of error messages for this member | ||||||||||||||||||||||
| member_id | string Example: "member_001" External key of the member | ||||||||||||||||||||||
Array of objects (V8_IchraQuoteRatePlan) Example: [{"plan_id":"79888MN0250344","premium":"500.00","premiums_by_applicant":[{"age":21,"child":false,"premium":"100.00"}]}] Rated plans for this member | |||||||||||||||||||||||
Array
| |||||||||||||||||||||||
{- "calculations": {
- "csr_eligibility": {
- "eligible": true
}, - "ichra_affordability": {
- "fpl_minimum_employer_contribution": "350.00",
- "minimum_employer_contribution": "400.00"
}, - "ptc_subsidy": {
- "eligible_for_chip_medicaid": true,
- "premium_tax_credit": "150.00"
}
}, - "member_id": "member_001",
- "rates": [
- {
- "plan_id": "79888MN0250344",
- "premium": "500.00"
}
]
}Calculate ICHRA affordability thresholds for group members across individual market plan availability.
v6: The documentation for this endpoint references this latest available version.
Calculates the minimum monthly contribution a Group would have to make per employee to satisfy federal ICHRA affordability guidelines. Two contribution amounts are returned: one based on each member's safe_harbor_income and one based on the federal poverty level. The group-level result is the maximum of those minimums across all members, ensuring the chosen contribution meets affordability for every member.
Prerequisites. Before creating the calculation, the group must be set up via the Group Member Management endpoints:
household_income, safe_harbor_income, and household_size populated on every member. These three fields are required for the affordability calculation — members missing any of them cannot be evaluated.Workflow. The calculation is asynchronous. Submitting this endpoint returns an id and an initial pending status. Poll Show ICHRA Affordability using that id until status is complete. For member-level results, use Show ICHRA Affordability Members.
When to use this vs. ICHRA Quote with the ichra_affordability calculation. The standalone ICHRA Affordability endpoint produces the same minimum_employer_contribution and fpl_minimum_employer_contribution values as the ichra_affordability calculation on a Group ICHRA Quote, but without quoting every available plan for every member. If only the affordability number is needed, this endpoint is lighter. If affordability is needed alongside full plan availability and premiums, prefer the ICHRA Quote endpoint with calculations.ichra_affordability.enabled set.
The ICHRA Affordability calculation is asynchronous. Poll the Show ICHRA Affordability endpoint using the id returned from this response and check the status field until the calculation is complete.
| Status Value | Notes |
|---|---|
pending |
The ICHRA Affordability calculation is in process. |
complete |
The ICHRA Affordability calculation is complete. |
| id required | string Example: b215b6bcdb ID of the Group |
object (IchraAffordabilityCalculationCreate) Example: {"effective_date":"2026-01-01","plan_year":2020,"rating_area_location":"work"} | |||||||
| |||||||
| X-RateLimit-Limit | integer Maximum requests allowed in the current rate-limit window (per minute) |
| X-RateLimit-Remaining | integer Requests remaining in the current rate-limit window |
object (IchraAffordabilityCalculationShow) Example: {"effective_date":"2026-01-01","error_message":"Unable to calculate","fpl_minimum_employer_contribution":"200.00","id":"24ddb277-31d4-4437-853f-5e163c0766d9","minimum_employer_contribution":"200.00","plan_year":2020,"rating_area_location":"work","status":"complete"} | |||||||||||||||||
| |||||||||||||||||
{- "ichra_affordability_calculation": {
- "effective_date": "2026-01-01",
- "plan_year": 2020,
- "rating_area_location": "work"
}
}{- "ichra_affordability_calculation": {
- "effective_date": "2026-01-01",
- "error_message": "Unable to calculate",
- "fpl_minimum_employer_contribution": "200.00",
- "id": "24ddb277-31d4-4437-853f-5e163c0766d9",
- "minimum_employer_contribution": "200.00",
- "plan_year": 2020,
- "rating_area_location": "work",
- "status": "complete"
}
}v6: The documentation for this endpoint references this latest available version.
Retrieves the metadata and current status for an ICHRA Affordability calculation, including the group-level minimum employer contribution values once the calculation is complete. Poll this endpoint after creating an affordability calculation until status is complete.
| id required | string Example: 4ce77785-24ef-413e-bf1e-08ad5e69ca83 ID of the ICHRA Affordability Calculation |
| X-RateLimit-Limit | integer Maximum requests allowed in the current rate-limit window (per minute) |
| X-RateLimit-Remaining | integer Requests remaining in the current rate-limit window |
| effective_date | string <date> Example: "2026-01-01" |
| error_message | string Example: "Unable to calculate" |
| fpl_minimum_employer_contribution | string Example: "200.00" The minimum employer contribution based on the Federal Poverty Level |
| id | string Example: "24ddb277-31d4-4437-853f-5e163c0766d9" |
| minimum_employer_contribution | string Example: "200.00" The minimum employer contribution |
| plan_year | integer Example: "2020" |
| rating_area_location | string Enum: "work" "home" Example: "work" |
| status | string Enum: "pending" "complete" "error" Example: "complete" |
{- "effective_date": "2026-01-01",
- "error_message": "Unable to calculate",
- "fpl_minimum_employer_contribution": "200.00",
- "id": "24ddb277-31d4-4437-853f-5e163c0766d9",
- "minimum_employer_contribution": "200.00",
- "plan_year": 2020,
- "rating_area_location": "work",
- "status": "complete"
}v6: The documentation for this endpoint references this latest available version.
Retrieves the member-level details for an ICHRA Affordability calculation. Each member's result includes both contribution values (income-based and FPL-based), the available premium tax credit, and the two reference plans used in the calculation (the lowest and second-lowest cost silver plans available to that member).
| id required | string Example: 4ce77785-24ef-413e-bf1e-08ad5e69ca83 ID of the ICHRA Affordability Calculation |
| X-RateLimit-Limit | integer Maximum requests allowed in the current rate-limit window (per minute) |
| X-RateLimit-Remaining | integer Requests remaining in the current rate-limit window |
Array of objects (IchraAffordabilityCalculationMemberShow) Example: [{"fpl_minimum_employer_contribution":"200.00","id":"24ddb277-31d4-4437-853f-5e163c0766d9","member_external_id":"24ddb277-31d4-4437-853f-5e163c0766d9","minimum_employer_contribution":"200.00","plans":[{"id":"96667ME0240018","name":"Select Care Silver, Age 29 Rider","premium":200,"year":2020}],"premium_tax_credit":"200.00"}] List of ICHRA member employer contributions | |||||||||||||
Array
| |||||||||||||
object (Meta) Example: {"total":1} | |||||||||||||
| |||||||||||||
{- "members": [
- {
- "fpl_minimum_employer_contribution": "200.00",
- "id": "24ddb277-31d4-4437-853f-5e163c0766d9",
- "member_external_id": "24ddb277-31d4-4437-853f-5e163c0766d9",
- "minimum_employer_contribution": "200.00",
- "premium_tax_credit": "200.00"
}
], - "meta": {
- "total": 1
}
}v8: The parameter search_term has been replaced with provider_name_search. In the response schema, the npi_specialty object has been replaced by an npi_specialties array. Additionally, the npi_address object is now included in the response. The documentation for this endpoint references this latest available version.
v7: In this version, provider-level addresses are returned in an array. The documentation for this endpoint references this latest available version.
v6: Previous supported version.
Searches Ideon's provider-network dataset for healthcare providers matching geography, name, specialty, network/plan participation, and other criteria. Powers both "find a specific provider" workflows (provider identification ahead of Shop by Doc) and "find in-network providers" workflows (care navigation against a known plan or network).
The same endpoint serves both workflows; the distinction is whether network_ids or plan_ids is included in the request. Without those filters, the endpoint returns providers matching the search criteria with their general practice addresses. With them, results are restricted to providers in the specified networks, and each provider's response carries a networks array detailing in-network status and addresses per network.
For the complete response schema and field-level reference, see the Provider Data Dictionary in the integration guides.
Well-structured search requests reduce response size, minimize unnecessary API calls, and improve both accuracy and performance. For most integrations, the following five inputs are the basis of a good request:
network_ids or plan_ids) — including either triggers results to be filtered to in-network providers and addresses. See the Plan or Network Identifiers section below.zip_code + radius, center_point + radius, or polygon) — filters to a defined area. Required when provider_name_search is included. See the Filtering by Geography section below.specialty_ids) — filters to providers practicing the specified specialties. See the Filtering by Specialty section below.type) — individual, organization, or hospital. Strongly recommended on every request — improves both result quality and endpoint latency. See the Provider Type section below.page, per_page) — default per_page is 25; maximum is 200. Larger pages noticeably impact latency. Recommend keeping per_page in the 25–50 range. See the Pagination section below.Example: show me all individual providers (and their in-network addresses) that participate in network ID 205757, are within 5 miles of the center of ZIP code 10010, and practice the specialty 4c12f8d69a; sort results by proximity to the ZIP center.
POST /providers/search?per_page=25&page=1
{
"network_ids": [205757],
"zip_code": "10010",
"radius": 5,
"specialty_ids": ["4c12f8d69a"],
"type": "individual"
}
network_ids and plan_ids are the entry point to in-network search. Including either filters results to providers that participate in at least one of the specified networks; the response then carries a networks array for each provider detailing in-network status per network and the specific addresses at which the provider is in-network.
network_ids accepts Ideon's internal network identifiers (returned by Network Search or Display a Network).plan_ids accepts HIOS IDs, Medicare contract codes in XXXX-XXX-X format, and Ideon plan identifiers (returned by quoting endpoints, Plan Lookup endpoints, and Bulk Plans).Provider participation in the response is always categorized by unique network ID, even when the request used plan_ids. To map participation back to specific plans when filtering by plan_ids, use the plan-to-network associations from the relevant plan endpoint.
When using plan_ids, include plan_year to ensure participation is evaluated for the correct plan year. If omitted, plan_year defaults to the current calendar year.
Up to 100 network or plan IDs can be passed in a single request, though in practice most workflows pass far fewer. The networks array on each provider in the response only appears when network_ids or plan_ids was included in the request.
Three modes of defining a search area are supported. Searches that include provider_name_search must include one of these geography filters.
zip_code (5-digit) and optional radius (miles) draw a circle around the ZIP centroid. Default radius is 25 miles when radius is omitted.center_point ({ "lat": ..., "lon": ... }) and optional radius (miles) draw a circle around an exact coordinate. Default radius is 25 miles. Recommended for precise location targeting, such as map-pin UIs with adjustable radius sliders. Mutually exclusive with zip_code.polygon is an array of { "lat": ..., "lon": ... } points defining a custom boundary. Useful for search-to-map-area UIs and for non-circular service areas.Providers are included if they're associated with one or more addresses within the defined geography. The top-level addresses array on each provider is filtered to only addresses within the geography (with one exception: each provider's npi_address, sourced from NPPES, is returned regardless of whether it meets the geography criteria).
specialty_ids accepts Ideon's internal specialty identifiers and filters results to providers who practice at least one of the specified specialties. IDs come from the Specialty Search endpoint.
Ideon's specialties are normalized to the NUCC Specialty Code Set, which structures specialties across three levels of granularity: Provider Grouping, Classification, and Area of Specialization. The full list of ~880 specialties is updated infrequently, making it well-suited to caching client-side rather than re-fetching per search.
Recommended cap: 20 specialty IDs per request. This supports common specialty-grouping use cases (see below) while keeping latency tight. For broader searches, paginate across multiple requests rather than packing many IDs into one.
Group specialties for end-user UX. Surfacing raw NUCC taxonomies in a UI ("Interventional Cardiology") is rarely what users want — they're looking for "Cardiology" or "Primary Care." Predefined groupings let users pick a familiar category that maps to many granular specialty IDs at request time. Common patterns:
See the Specialty Search endpoint for the full taxonomy and recommendations for caching.
The type parameter filters results to one of:
individual — individual doctors and practitioners.organization — medical groups, urgent care centers, and similar entities.hospital — hospital facilities.We strongly recommend including type on every request for two reasons. First, it consistently shapes results — users see all doctors or all facilities rather than a mixed list. Second, it significantly improves endpoint latency. Omitting type is only appropriate when the use case explicitly needs all three categories surfaced together.
page and per_page control pagination. Default per_page is 25; maximum is 200.
Results are sorted by best match (see Ranking and Sorting below), so pages further into the result set carry diminishing value for most user-facing workflows. Combined with the noticeable latency impact of larger pages, we recommend keeping per_page in the 25–50 range. The endpoint enforces the 200 hard cap automatically.
Address Confidence Scores quantify how likely a provider is to actually be practicing at a given address. They're an analytical layer on top of carrier directory data — the carrier directory remains the source of truth, but Ideon's machine-learning model evaluates each address against verified data to produce a confidence classification.
Scale. Each address receives one of four classifications:
high — provider very likely practices here. Validated in over 85% of test cases.medium — toss-up. Validated in roughly 50% of test cases.low — provider very likely does not practice here. Validated as invalid in over 93% of test cases.null — not scored. Typically occurs when Ideon receives data for the provider from one and only one source. Treat similarly to medium for filtering purposes.Coverage. Approximately 3 million individual providers and 19 million unique addresses are scored. Organization and hospital providers are not scored — only providers with type: individual have confidence classifications.
How to request. Include address_confidence_score in the request's premium_fields array. When requested, an address_confidence_classification field appears on each address object in the response.
Entitlement-gated. Access requires API key provisioning. Contact your Customer Success Manager if you receive permission errors when requesting this premium field.
Recommended filtering pattern. Avoid blanket-filtering out low addresses — this can over-bias the result set toward carriers with more accurate directories and hurts coverage in rural regions. Instead, filter dynamically at two levels:
high AND medium/low addresses, drop the low ones. If all addresses are low, keep them as-is. Sort addresses within the provider by confidence (high first).high-scored addresses to satisfy the user's needs, filter out providers whose addresses are only medium/low. Otherwise, surface the remaining providers but consider a warning indicator in the UI for medium/low addresses ("provider may not be seeing patients at this address").Provider Quality Scores surface third-party claims-based assessments of provider performance. Ideon currently integrates HealthCorum as the supported quality-scoring vendor.
Scale. HealthCorum evaluates providers across four categories, each on a 1.0–5.0 scale:
How to request. Include health_corum_quality_score in the request's premium_fields array. When requested, a quality_scores array appears on each provider, with one entry per source. Each entry contains a source (currently always HealthCorum) and the four numeric scores.
Entitlement-gated. Access requires both API key provisioning and a HealthCorum data agreement. Contact your Customer Success Manager for availability and methodology details.
Coverage. Not all providers are scored. When a provider has no HealthCorum data, the quality_scores array is empty or omitted.
Responses are an array of provider objects under the top-level providers key. Pagination metadata is in meta.
Each provider object carries identity fields (NPI, name, NPPES address, primary specialty, gender, languages, etc.), a top-level addresses array, and — only when network_ids or plan_ids was in the request — a networks array.
Top-level addresses array. Contains every address for the provider that matches the geography filter. Each entry includes city, state, street, ZIP, lat/lng, phone numbers, fax numbers, and the provider's identifier at that address. When network filtering is in use, network-specific fields (pcp, pcp_id, external_id, accepting_new_patients) on these top-level entries return null — those fields are populated only in the nested per-network addresses.
networks array (in-network searches only). Contains one entry per requested network the provider participates in. Each entry includes the network id, name, tier, source, pcp flag, the provider's network-specific identifiers, and a nested addresses array containing only the addresses where the provider is in-network for that specific network. Network-specific address fields (pcp, pcp_id, external_id, accepting_new_patients) populate here.
last_imported_at. Each network in the networks array carries this ISO 8601 timestamp marking when the network's data was last refreshed. It's a proxy for data freshness. For most user-facing workflows, we recommend surfacing a warning when last_imported_at is more than 3 months prior to the current date — suggest users call the provider's office to verify participation before making care decisions.
quality_scores array (when requested via premium_fields). See the HealthCorum Quality Scores section above.
For the complete field-level reference, see the Provider Data Dictionary.
The sort parameter controls result ordering. Two methodologies are supported:
best_match (default) — a multi-faceted ranking that balances the available signals.distance — weights provider proximity to the geography center significantly higher than other signals.Both methodologies evaluate the same set of signals when present in the request:
provider_name_search term is matched against provider names with fuzzy weighting — for example, a near-match 2 miles away will typically outrank an exact match 100 miles away.specialty_ids is included, providers practicing matching specialties rank higher. The weighting differs based on whether the search is in-network: in non-network searches, NPPES-sourced specialty matches weigh more heavily than carrier-sourced; in network searches, carrier-sourced specialty matches weigh more heavily, since participation is being evaluated through the carrier's lens.The best_match ranking can favor a higher-quality but more distant result over a closer-but-weaker one; distance is the right choice when geographic proximity is the dominant constraint.
| provider_name_search required | string Example: "John Smith" String to search provider name by | ||
| accepts_insurance | boolean Example: "true" Limit results to Providers who accept at least one insurance plan. Note that the inverse of this filter is not supported and any value will evaluate to true | ||
| ids | Array of integers Example: [1013955475,1558302844] List of NPIs | ||
| last_imported | string Example: "2026-01-01" Only show networks last updated since this date | ||
| network_ids | Array of integers Example: [200251] List of Vericred network ids | ||
| page | integer Page number | ||
| per_page | integer Example: "2" Number of records to return per page | ||
| plan_ids | Array of strings Example: ["99eA4hhn","88582NY0230001","H3328-003-0"] List of Vericred IDs, HIOS ids and Medicare contract codes | ||
| plan_year | integer Example: "2026" The year when the plans are offered. Defaults to current year | ||
| polygon | integer Define a custom search polygon, mutually exclusive with zip_code search | ||
Array of objects (PremiumField) Example: [{":name":"address_confidence_score"},{":name":"health_corum_quality_score"}] List of premium fields to include in the response | |||
Array
| |||
| radius | integer Radius (in miles) to use to limit results | ||
| sort | string Example: "best_match" specify sort mode (best_match or distance) | ||
| specialty_ids | Array of strings Example: ["0b1a7a567e","4c12f8d69a","41c2491831"] List of Specialty ids | ||
| type | string Enum: "organization" "individual" "hospital" Example: "individual" Either individual, organization, or hospital | ||
| zip_code | string Example: "11423" Zip Code to search near | ||
| X-RateLimit-Limit | integer Maximum requests allowed in the current rate-limit window (per minute) |
| X-RateLimit-Remaining | integer Requests remaining in the current rate-limit window |
| Total | integer Example: "150" Total number of records matching the query across all pages |
| Per-Page | integer Example: "25" Number of records returned per page |
| Page | integer Example: "1" Current page number |
| Link | string Example: "<https://api.ideonapi.com/networks?page=2&per_page=25>; rel=\"next\", <https://api.ideonapi.com/networks?page=1&per_page=25>; rel=\"first\"" RFC-5988 pagination links containing |
object (Meta) Example: {"total":1} | |||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||
Array of objects (Provider) Example: [{"addresses":[{"accepting_new_patients":true,"city":"New York","external_id":"50c2d41e021f0eb5baaa6f134f15bd29","fax_numbers":["2122224444","9172225657"],"id":"589c907f-28c2-3d14-8916-1144a5191ba2","latitude":"45.55","longitude":"14.55","pcp":true,"pcp_id":"123456","phone_numbers":["2122223333","9172223334"],"state":"NY","street_line_1":"123 Fake Street","street_line_2":"Apt 10","zip_code":"11215"}],"credentials":["MD","PhD"],"doing_business_as_name":"Ideon","first_name":"John","gender":"F","id":1234567890,"last_name":"Smith","middle_name":"Danger","network_ids":[200251],"networks":[{"carrier_name":"UnitedHealthcare","id":1,"last_imported_at":"2026-05-01","name":"Open Choice","pcp":true,"pcp_id":"123456","source":"carrier_direct","tier":"Tier 2"}],"npi_address":{"city":"New York","fax_numbers":["1234567890"],"id":"1a2b34c5d6","latitude":"45.55","longitude":"14.55","phone_numbers":["1234567890"],"state":"NY","street_line_1":"123 Fake Street","street_line_2":"Suite 200","zip_code":"12345"},"npi_specialties":[{"id":"1a2b34c5d6","name":"Clinic/Center","primary":false,"sub_specialty":"Infusion Therapy","taxonomy_code":"261QI0500X"}],"npis":[1234567890],"organization_name":"Vericred Inc","phone":"2125558700","presentation_name":"Dr. John D. Smith Jr.","quality_scores":[{"appropriateness_score":4.5,"cost_score":4.5,"effectiveness_score":4.5,"overall_score":4.5,"source":"HealthCorum"}],"specialty":"Internal Medicine","suffix":"Jr.","title":"Dr.","type":"organization"}] Providers that fit the requested criterion. | |||||||||||||||||||||||||||||||||||||||||||
Array
| |||||||||||||||||||||||||||||||||||||||||||
{- "accepts_insurance": true,
- "ids": [
- 1013955475,
- 1558302844
], - "last_imported": "2026-01-01",
- "network_ids": [
- 200251
], - "per_page": 2,
- "plan_ids": [
- "99eA4hhn",
- "88582NY0230001",
- "H3328-003-0"
], - "plan_year": 2026,
- "premium_fields": [
- {
- ":name": "address_confidence_score"
}, - {
- ":name": "health_corum_quality_score"
}
], - "provider_name_search": "John Smith",
- "sort": "best_match",
- "specialty_ids": [
- "0b1a7a567e",
- "4c12f8d69a",
- "41c2491831"
], - "type": "individual",
- "zip_code": "11423"
}{- "meta": {
- "total": 1
}, - "providers": [
- {
- "credentials": [
- "MD",
- "PhD"
], - "doing_business_as_name": "Ideon",
- "first_name": "John",
- "gender": "F",
- "id": 1234567890,
- "last_name": "Smith",
- "middle_name": "Danger",
- "network_ids": [
- 200251
], - "npis": [
- 1234567890
], - "organization_name": "Vericred Inc",
- "phone": "2125558700",
- "presentation_name": "Dr. John D. Smith Jr.",
- "specialty": "Internal Medicine",
- "suffix": "Jr.",
- "title": "Dr.",
- "type": "organization"
}
]
}v8: The npi_specialty objects have been replaced with npi_specialties arrays. The npi_address object is included in the response. The documentation for this endpoint references this latest available version.
v7: The hios_ids and network_ids response keys have been deprecated in this version.
v6: Previous supported version.
Retrieves the full record for a single provider by NPI. The response includes identity fields, all known practice addresses, specialties (NPPES and carrier-sourced), languages, network and hospital affiliations, and quality scores when entitlement permits.
This endpoint is best used when the provider's NPI is already known — for example, from a previous Provider Search result or from an existing system of record. For discovery flows, start with Provider Search.
For the complete field-level reference on provider records, see the Provider Data Dictionary.
| npi required | string Example: 1234567890 NPI number |
| year | string Example: year=2026 Only show plan ids for the given year |
| state | string Example: state=NY Only show plan ids for the given state |
| premium_fields | string Example: premium_fields=address-confidence-score List of premium fields to include in the response (comma separated) |
| select | string Example: select=id,name,carrier_name Comma-separated list of response fields to include, enabling partial responses. Use dot notation for nested fields. Example: id,name,carrier_name |
| Accept-Version | string Enum: "v6" "v7" "v8" Example: v7 API version requested (v6, v7, or v8) |
| X-RateLimit-Limit | integer Maximum requests allowed in the current rate-limit window (per minute) |
| X-RateLimit-Remaining | integer Requests remaining in the current rate-limit window |
object (ProviderDetails) Example: {"city":"New York","credentials":["MD","PhD"],"doing_business_as_name":"Ideon","first_name":"John","gender":"F","id":1234567890,"last_name":"Smith","latitude":"45.55","longitude":"14.55","middle_name":"Danger","networks":[{"carrier_name":"UnitedHealthcare","id":1,"last_imported_at":"2026-05-01","name":"Open Choice","pcp":true,"pcp_id":"123456","source":"carrier_direct","tier":"Tier 2"}],"npi_address":{"city":"New York","fax_numbers":["1234567890"],"id":"1a2b34c5d6","latitude":"45.55","longitude":"14.55","phone_numbers":["1234567890"],"state":"NY","street_line_1":"123 Fake Street","street_line_2":"Suite 200","zip_code":"12345"},"npi_specialties":[{"id":"1a2b34c5d6","name":"Clinic/Center","primary":false,"sub_specialty":"Infusion Therapy","taxonomy_code":"261QI0500X"}],"npis":[1234567890],"organization_name":"Vericred Inc","phone":"2125558700","presentation_name":"Dr. John D. Smith Jr.","quality_scores":[{"appropriateness_score":4.5,"cost_score":4.5,"effectiveness_score":4.5,"overall_score":4.5,"source":"HealthCorum"}],"specialty":"Internal Medicine","state":"NY","state_id":1,"street_line_1":"123 Fake Street","street_line_2":"Suite 200","suffix":"Jr.","title":"Dr.","type":"organization","zip_code":"11215"} | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{- "provider": {
- "city": "New York",
- "credentials": [
- "MD",
- "PhD"
], - "doing_business_as_name": "Ideon",
- "first_name": "John",
- "gender": "F",
- "id": 1234567890,
- "last_name": "Smith",
- "latitude": "45.55",
- "longitude": "14.55",
- "middle_name": "Danger",
- "npi_address": {
- "city": "New York",
- "fax_numbers": [
- "1234567890"
], - "id": "1a2b34c5d6",
- "latitude": "45.55",
- "longitude": "14.55",
- "phone_numbers": [
- "1234567890"
], - "state": "NY",
- "street_line_1": "123 Fake Street",
- "street_line_2": "Suite 200",
- "zip_code": "12345"
}, - "npis": [
- 1234567890
], - "organization_name": "Vericred Inc",
- "phone": "2125558700",
- "presentation_name": "Dr. John D. Smith Jr.",
- "specialty": "Internal Medicine",
- "state": "NY",
- "state_id": 1,
- "street_line_1": "123 Fake Street",
- "street_line_2": "Suite 200",
- "suffix": "Jr.",
- "title": "Dr.",
- "type": "organization",
- "zip_code": "11215"
}
}v7: The documentation for this endpoint references this latest available version.
Returns plans the provider participates in. This is the inverse of Provider Search with plan_ids — instead of "which providers are in this plan," it answers "which plans is this provider in."
Results are scoped by the provider's network participation: each plan returned is associated with at least one network that includes the provider. Useful for workflows where the provider is the starting point (a known doctor) and the user is exploring plan options that keep that provider in-network.
| npi required | string Example: 1234567890 NPI number |
| line_of_coverage required | string Enum: "medical" "medicare_advantage" "dental" "vision" Example: line_of_coverage=medical The line of coverage the plans are in. Options are |
| year required | string Example: year=2026 The year the plans are effective in. |
| market | string Enum: "individual" "small_group" "large_group" Example: market=small_group The market the plans are for. Options are |
| Accept-Version | string Enum: "v6" "v7" "v8" Example: v7 API version requested (v6, v7, or v8) |
| X-RateLimit-Limit | integer Maximum requests allowed in the current rate-limit window (per minute) |
| X-RateLimit-Remaining | integer Requests remaining in the current rate-limit window |
object (Meta) Example: {"total":1} | |||||||||||||||||
| |||||||||||||||||
Array of objects (ProviderPlanResponse) Example: [{"carrier":{"id":"bae1d0e1-80dc-48f4-918d-6c492340cc1c","issuer_id":"A0027","logo_url":"https://d1hm12jr612u3r.cloudfront.net/images/carriers/174/1438891372/thumb.png?1438891372","name":"Guardian"},"carrier_name":"Aetna","external_ids":[{"type":"contract_id","value":"abc123"}],"id":"88582NY0230001","line_of_coverage":"medical","market":"small_group","name":"Aetna PPO 20/5000","networks":[{"name":"Open Choice","tier":"Tier 1"}]}] Provider plan search results | |||||||||||||||||
Array
| |||||||||||||||||
{- "meta": {
- "total": 1
}, - "plans": [
- {
- "carrier_name": "Aetna",
- "id": "88582NY0230001",
- "line_of_coverage": "medical",
- "market": "small_group",
- "name": "Aetna PPO 20/5000"
}
]
}v6: The documentation for this endpoint references this latest available version.
Returns Ideon's catalog of provider specialties. Use without query parameters to pull the full list (~880 specialties); supply a search string to narrow to specific specialties by name.
Specialties are normalized to the NUCC Specialty Code Set, which structures specialties across three levels of granularity: Provider Grouping, Classification, and Area of Specialization. Each specialty in the response carries an Ideon id (used as the specialty_ids filter input to Provider Search), the NUCC code, name, and classification metadata.
The specialty taxonomy is updated infrequently. We recommend caching the full list client-side rather than re-fetching per Provider Search request. For most production integrations, a weekly or monthly refresh of the cached specialty list is sufficient.
Surfacing raw NUCC taxonomies in an end-user UI is rarely the right choice — users look for "Cardiology," not "Interventional Cardiology." Predefined specialty groupings let users pick familiar categories that expand to many granular Ideon specialty IDs at request time.
Common grouping patterns:
Implement grouping client-side as a mapping from a user-facing category name to a list of Ideon specialty IDs. At request time, expand the user's selected category to its underlying IDs and pass them as specialty_ids to Provider Search.
| search_term | string Example: search_term=Anesthesiology Full or partial name of a specialty or subspecialty |
| code | string Example: code=207LC0200X CMS Healthcare Provider Taxonomy Code |
| page | integer Example: page=1 Page of paginated response |
| per_page | integer <= 25 Example: per_page=1 Responses per page |
| X-RateLimit-Limit | integer Maximum requests allowed in the current rate-limit window (per minute) |
| X-RateLimit-Remaining | integer Requests remaining in the current rate-limit window |
| Total | integer Example: "150" Total number of records matching the query across all pages |
| Per-Page | integer Example: "25" Number of records returned per page |
| Page | integer Example: "1" Current page number |
| Link | string Example: "<https://api.ideonapi.com/networks?page=2&per_page=25>; rel=\"next\", <https://api.ideonapi.com/networks?page=1&per_page=25>; rel=\"first\"" RFC-5988 pagination links containing |
object (Meta) Example: {"total":1} | |||||||||||
| |||||||||||
Array of objects (SpecialtyShow) Example: [{"category":"Allopathic & Osteopathic Physicians","code":"207LC0200X","id":"76a2744d4a","name":"Anesthesiology","sub_specialty":"Hospice and Palliative Medicine"}] Specialties | |||||||||||
Array
| |||||||||||
{- "meta": {
- "total": 1
}, - "specialties": [
- {
- "category": "Allopathic & Osteopathic Physicians",
- "code": "207LC0200X",
- "id": "76a2744d4a",
- "name": "Anesthesiology",
- "sub_specialty": "Hospice and Palliative Medicine"
}
]
}Search provider networks, compare networks, and retrieve network size metrics for individual states.
v7: Added various parameters for searching and additional fields to the response. The documentation for this endpoint references this latest available version.
v6: Previous supported version. Limited to carrier_id, market, state, and effective_date search parameters.
Searches Ideon's network catalog by line of coverage, market, carrier, state, and free-text search. Returns a paginated list of networks with their metadata — id, name, carrier_id, lines_of_coverage, markets, state_codes, and refresh metadata.
Network identification is the prerequisite for in-network Provider Search and for the network comparison and disruption-analysis endpoints. The id returned here is what feeds the network_ids filter in Provider Search.
A few key behaviors are worth understanding when searching networks:
lines_of_coverage field (values: medical, medicare_advantage, medicaid) and markets field (values: individual, small_group, large_group) describe the full scope of where each network is applicable. Filter by these when narrowing to a specific product line and market segment.state_codes array reflects two things at once: states the network is mapped to plans in, and states where the network meets Ideon's basic provider availability criteria. A state appearing in this array doesn't necessarily mean the network is sold there — it means the network has either a plan mapping or sufficient provider data in that state.carrier_id — Ideon's unique identifier for the carrier brand across the Quote and Select datasets. Carrier IDs are obtained from the Carrier Search endpoint by name, line of coverage, or market.For ACA Medical and Medicare Advantage networks, network IDs are typically resolved via plan-network associations from the quoting and plan-lookup endpoints — there's a direct mapping from a quoted plan to its network. Large Group Medical and Medicaid don't have the same plan-network association pattern, so Network Search is the recommended path for resolving network identifiers in those markets.
When using Network Search for Large Group Medical or Medicaid, combining line_of_coverage, market, carrier_id, and search_term typically gives a manageable result set without over-filtering. The right balance depends on how specific the search string is — for narrow terms, all four filters together can over-restrict. If the desired network isn't surfacing, drop search_term first and rely on the structured filters to narrow the catalog.
| search_term | string Example: search_term=Enhanced PPO Full or partial name of the network |
| line_of_coverage | string Enum: "medical" "medicare_advantage" "dental" Example: line_of_coverage=medical The line of coverage of the network. Possible values are |
| carrier_id | string Example: carrier_id=bae1d0e1-80dc-48f4-918d-6c492340cc1c Carrier ID (e.g. bae1d0e1-80dc-48f4-918d-6c492340cc1c) or HIOS Issuer ID (e.g. 10544) or Medicare Contract Issuer ID (e.g. H2649) |
| market | string Enum: "individual" "small_group" "large_group" Example: market=individual Type of Plan to which this network is attached. Possible values are |
| state_code | string Example: state_code=CA A state code (e.g. CA) in which the network is available |
| effective_date | string Example: effective_date=2026-01-01 Use this to specify a date on which the network must be or have been active |
| last_imported | string Example: last_imported=2026-01-01 Use this to specify a filter to only show networks imported since the given date. |
| alert | string Example: alert=provider_count_drop Type of Alert that exists for the Network. Possible values are |
| alert_date_from | string Example: alert_date_from=2026-01-01 Use this to specify a filter to only show networks with an existing Alert since the given date. |
| alert_date_to | string Example: alert_date_to=2026-06-01 Use this to specify a filter to only show networks with an existing Alert until the given date. |
| page | integer Example: page=1 Page of paginated response |
| per_page | integer <= 20 Example: per_page=10 Responses per page |
| Accept-Version | string Enum: "v6" "v7" "v8" Example: v7 API version requested (v6, v7, or v8) |
| X-RateLimit-Limit | integer Maximum requests allowed in the current rate-limit window (per minute) |
| X-RateLimit-Remaining | integer Requests remaining in the current rate-limit window |
| Total | integer Example: "150" Total number of records matching the query across all pages |
| Per-Page | integer Example: "25" Number of records returned per page |
| Page | integer Example: "1" Current page number |
| Link | string Example: "<https://api.ideonapi.com/networks?page=2&per_page=25>; rel=\"next\", <https://api.ideonapi.com/networks?page=1&per_page=25>; rel=\"first\"" RFC-5988 pagination links containing |
object (Meta) Example: {"total":1} | |||||||||||||||||||||||
| |||||||||||||||||||||||
Array of objects (NetworkSearch) Example: [{"alternate_names":["Open Choice EPO"],"carrier_ids":["33333","H2649"],"carrier_name":"UnitedHealthcare","carriers":[{"id":"bae1d0e1-80dc-48f4-918d-6c492340cc1c","name":"UnitedHealthcare"}],"id":1,"last_imported_at":"2026-05-01","lines_of_coverage":["medical"],"markets":["individual","small_group"],"name":"Open Choice","source":"carrier_direct","state_codes":["CA","NY"]}] Networks that fit the requested criterion. | |||||||||||||||||||||||
Array
| |||||||||||||||||||||||
{- "meta": {
- "total": 1
}, - "networks": [
- {
- "alternate_names": [
- "Open Choice EPO"
], - "carrier_ids": [
- "33333",
- "H2649"
], - "carrier_name": "UnitedHealthcare",
- "id": 1,
- "last_imported_at": "2026-05-01",
- "lines_of_coverage": [
- "medical"
], - "markets": [
- "individual",
- "small_group"
], - "name": "Open Choice",
- "source": "carrier_direct",
- "state_codes": [
- "CA",
- "NY"
]
}
]
}v7: Added additional fields to the response. The documentation for this endpoint references this latest available version.
v6: Previous supported version.
Retrieves the full record for a single network by Ideon network id. Returns network metadata (name, carrier_id, lines_of_coverage, markets, state_codes, tier, source), refresh metadata (last_imported_at), and any associated network counts or attributes that aren't included in the paginated Network Search response.
Use this endpoint when the network id is known (from Network Search, a quoted plan's network association, or a stored system identifier) and full metadata is needed.
| id required | integer Example: 100001 Primary key of the network |
| Accept-Version | string Enum: "v6" "v7" "v8" Example: v7 API version requested (v6, v7, or v8) |
| X-RateLimit-Limit | integer Maximum requests allowed in the current rate-limit window (per minute) |
| X-RateLimit-Remaining | integer Requests remaining in the current rate-limit window |
object (NetworkDetails) Example: {"alerts":[{"date":"2026-05-01","message":"Provider count dropped by >40% to 35505","type":"provider_count_drop"}],"alternate_names":["Open Choice EPO"],"carrier_ids":["33333","H2649"],"carrier_name":"UnitedHealthcare","carriers":[{"id":"bae1d0e1-80dc-48f4-918d-6c492340cc1c","name":"UnitedHealthcare"}],"id":1,"last_imported_at":"2026-05-01","lines_of_coverage":["medical"],"markets":["individual","small_group"],"name":"Open Choice","source":"carrier_direct","state_codes":["CA","NY"]} | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||
{- "network": {
- "alternate_names": [
- "Open Choice EPO"
], - "carrier_ids": [
- "33333",
- "H2649"
], - "carrier_name": "UnitedHealthcare",
- "id": 1,
- "last_imported_at": "2026-05-01",
- "lines_of_coverage": [
- "medical"
], - "markets": [
- "individual",
- "small_group"
], - "name": "Open Choice",
- "source": "carrier_direct",
- "state_codes": [
- "CA",
- "NY"
]
}
}v7: Added carrier brand name to the response. The documentation for this endpoint references this latest available version.
v6: Previous supported version.
Compares overlap between two or more networks by measuring shared provider participation. Given a list of network IDs, returns the count of providers each network has in common with the others, broken down by specialty, geography, or facility type depending on configuration.
Useful for network selection workflows — for example, evaluating whether switching from a broad network to a narrow network would meaningfully disrupt the providers a group's members already see. For the inverse use case (given a list of providers, which networks best cover them), use Disruption Analysis.
| id required | integer Example: 100001 Primary key of the base network |
| network_ids required | Array of integers Example: [900001] List of Networks with which to compare the base Network |
| radius required | integer Example: "100" Radius from the provided Zip Code within which to search |
| zip_code required | string Example: "11423" Zip Code to use as a search origin |
| X-RateLimit-Limit | integer Maximum requests allowed in the current rate-limit window (per minute) |
| X-RateLimit-Remaining | integer Requests remaining in the current rate-limit window |
Array of objects (NetworkComparison) Example: [{"accepting_insurance_count":50,"base_network_id":1,"base_network_unique_count":100,"comparison_network_id":2,"comparison_network_unique_count":200,"network_overlap_count":300}] NetworkComparisons | |||||||||||||
Array
| |||||||||||||
Array of objects (Network) Example: [{"carrier_name":"UnitedHealthcare","carriers":[{"id":"bae1d0e1-80dc-48f4-918d-6c492340cc1c","name":"UnitedHealthcare"}],"id":1,"last_imported_at":"2026-05-01","name":"Open Choice","source":"carrier_direct"}] Networks | |||||||||||||
Array
| |||||||||||||
{- "network_ids": [
- 900001
], - "radius": 100,
- "zip_code": "11423"
}{- "network_comparisons": [
- {
- "accepting_insurance_count": 50,
- "base_network_id": 1,
- "base_network_unique_count": 100,
- "comparison_network_id": 2,
- "comparison_network_unique_count": 200,
- "network_overlap_count": 300
}
], - "networks": [
- {
- "carrier_name": "UnitedHealthcare",
- "id": 1,
- "last_imported_at": "2026-05-01",
- "name": "Open Choice",
- "source": "carrier_direct"
}
]
}v6: The documentation for this endpoint references this latest available version.
Given a list of providers (NPIs and optionally addresses), returns network-level statistics on how many of those providers participate in each network under evaluation. Used to assess "if a group moves from carrier X to carrier Y, how disruptive is that change to their existing members' providers?"
Disruption Analysis is the inverse of Compare Multiple Networks: comparison measures provider overlap between networks; disruption measures network coverage of a given provider list.
| network_ids | Array of integers Example: [100356] List of Vericred Network identifiers |
| npis | Array of integers Example: [123456789,234565673,981237923] List of Provider NPIs |
| X-RateLimit-Limit | integer Maximum requests allowed in the current rate-limit window (per minute) |
| X-RateLimit-Remaining | integer Requests remaining in the current rate-limit window |
Array of objects (NetworkDisruptionAnalysis) Example: [{"disruption_percentage":33.33,"in_network_npis":[123456789,234565673],"network_id":100356,"out_of_network_npis":[981237923]}] Disruption Analysis for each requested Network | |||||||||
Array
| |||||||||
object (Meta) Example: {"total":1} | |||||||||
| |||||||||
{- "network_ids": [
- 100356
], - "npis": [
- 123456789,
- 234565673,
- 981237923
]
}{- "disruption_analysis": [
- {
- "disruption_percentage": 33.33,
- "in_network_npis": [
- 123456789,
- 234565673
], - "network_id": 100356,
- "out_of_network_npis": [
- 981237923
]
}
], - "meta": {
- "total": 1
}
}v6: The documentation for this endpoint references this latest available version.
Returns provider counts for one or more networks, optionally filtered by geography or specialty. Used for adequacy analysis and network-shopping comparisons — "how many primary care providers does this network have in the Atlanta metro?"
Counts reflect Ideon's dataset as of the latest data import for each network (see last_imported_at on the network metadata). For state-rolled-up counts without per-network detail, see State Network Sizes.
| network_ids | Array of integers List of Network Ids |
| state_ids | Array of strings Example: "['CA']" List of State Ids |
| X-RateLimit-Limit | integer Maximum requests allowed in the current rate-limit window (per minute) |
| X-RateLimit-Remaining | integer Requests remaining in the current rate-limit window |
| Total | integer Example: "150" Total number of records matching the query across all pages |
| Per-Page | integer Example: "25" Number of records returned per page |
| Page | integer Example: "1" Current page number |
| Link | string Example: "<https://api.ideonapi.com/networks?page=2&per_page=25>; rel=\"next\", <https://api.ideonapi.com/networks?page=1&per_page=25>; rel=\"first\"" RFC-5988 pagination links containing |
object (Meta) Example: {"total":1} | |||||||
| |||||||
Array of objects (NetworkSize) Example: [{"count":100,"network_id":123,"state_id":"CA"}] Network Sizes | |||||||
Array
| |||||||
{- "state_ids": "['CA']"
}{- "meta": {
- "total": 1
}, - "network_sizes": [
- {
- "count": 100,
- "network_id": 123,
- "state_id": "CA"
}
]
}v6: The documentation for this endpoint references this latest available version.
Returns provider counts rolled up by state for the networks specified. Less granular than Network Sizes — no specialty or sub-state geography breakdown — but useful for high-level multi-state adequacy summaries.
| state_id required | string Example: CA State code |
| page | integer Example: page=1 Page of paginated response |
| per_page | integer <= 50 Example: per_page=1 Responses per page |
| X-RateLimit-Limit | integer Maximum requests allowed in the current rate-limit window (per minute) |
| X-RateLimit-Remaining | integer Requests remaining in the current rate-limit window |
| Total | integer Example: "150" Total number of records matching the query across all pages |
| Per-Page | integer Example: "25" Number of records returned per page |
| Page | integer Example: "1" Current page number |
| Link | string Example: "<https://api.ideonapi.com/networks?page=2&per_page=25>; rel=\"next\", <https://api.ideonapi.com/networks?page=1&per_page=25>; rel=\"first\"" RFC-5988 pagination links containing |
object (Meta) Example: {"total":1} | |||||||
| |||||||
Array of objects (NetworkSize) Example: [{"count":100,"network_id":123,"state_id":"CA"}] Network Sizes | |||||||
Array
| |||||||
{- "meta": {
- "total": 1
}, - "network_sizes": [
- {
- "count": 100,
- "network_id": 123,
- "state_id": "CA"
}
]
}v7: Drug packages are returned within each drug object. The documentation for this endpoint references this latest available version.
v6: Previous supported version.
Searches Ideon's drug dataset for prescription drugs. Returns drug records with their identifiers, names sourced from RxNorm, and associated drug packages from the FDA's National Drug Code (NDC) Directory.
Drug Search is the first step of the Shop by Drug workflow — the drug identifiers returned here are passed to Search Major Medical Plans in the drug_packages array to evaluate formulary coverage on each quoted plan. See the Shop by Drug sub-section on that endpoint for the full workflow.
Look-up methods.
search_term — primary path for user-facing search. Matches partial or full strings against drug names.rx_cui — exact lookup by RxNorm Clinical Unique Identifier from the National Library of Medicine's RxNorm database.Always pass require_formulary=true. This is strongly recommended on every call — it limits results to drugs present in at least one carrier's formulary. Without it, users can select drugs from the broader dataset that aren't covered by any plan, leading to confusing empty coverages responses downstream.
Ideon's drug data uses two identifiers, and the right one to use depends on context:
med_id — Ideon's foreign key for a clinical drug. A single med_id typically maps to multiple drug_package_id values representing distinct packages, forms, or strengths of the same drug.drug_package_id — the NDC Package Code identifying a specific packaging unit, sourced from the FDA's NDC Directory. Multiple drug_package_id values can correspond to the same med_id.For user-facing search and Shop by Drug, lead with med_id. End users think about drugs at the clinical level — "Atorvastatin" — not at the package level. Surface results grouped by med_id in your UI, and pass med_id as the identifier in the drug_packages array on Search Major Medical Plans. The corresponding drug_package_id in the response's coverages array will be the med_id formatted as an integer, making it easy to match back.
drug_package_id is appropriate when integrating with systems that already track drugs by NDC Package Code (pharmacy benefit systems, claims data) — pass it directly and the response will echo the same value as a string in coverages.
rx_cui is for lookup only. RxCUI is the highest-level drug identifier and doesn't include package, form, or strength distinctions — a single rx_cui can correspond to multiple distinct med_id values. It's a valid input for Drug Search but not a valid identifier to pass to Search Major Medical Plans.
Drug name fields can exceed 2,000 characters in some cases. For a user-friendly display:
proprietary_name values on each drug.active_ingredient_strength as a secondary selection for each returned drug.name field when proprietary_name is missing or empty.| search_term | string Example: search_term=Zyrtec Full or partial proprietary name of drug |
| rx_cui | string Example: rx_cui=1010234 Foreign key to Rx-Norm |
| require_formulary | boolean Example: require_formulary=true Only display drugs that are in formularies |
| X-RateLimit-Limit | integer Maximum requests allowed in the current rate-limit window (per minute) |
| X-RateLimit-Remaining | integer Requests remaining in the current rate-limit window |
Array of objects (DrugSearchDrugPackage) Example: [{"active_ingredient_strength":"10mg","description":"Zyrtec 10 mg tablet","id":"52959-0482-01","non_proprietary_name":"Zyrtec","proprietary_name":"Zyrtec"}] Drug packages | |||||||||||
Array
| |||||||||||
| id | string Example: "a9f4a8f8ccbd42be" Internal Identifier for the Drug | ||||||||||
| med_id | integer Example: "199378" Foreign key to Meds (can be null) | ||||||||||
| name | string Example: "Zyrtec 10 mg tablet" The name of the Drug | ||||||||||
| rx_cui_id | string Example: "1014678" Foreign key to Rx-Norm | ||||||||||
{- "drug_packages": [
- {
- "active_ingredient_strength": "10mg",
- "description": "Zyrtec 10 mg tablet",
- "id": "52959-0482-01",
- "non_proprietary_name": "Zyrtec",
- "proprietary_name": "Zyrtec"
}
], - "id": "a9f4a8f8ccbd42be",
- "med_id": 199378,
- "name": "Zyrtec 10 mg tablet",
- "rx_cui_id": "1014678"
}v7: The tier generic is deprecated. All covered generic drugs will either have the preferred_generic or non_preferred_generic tier. The documentation for this endpoint references this latest available version.
v6: Previous supported version.
Returns formulary coverage details for one or more drugs across one or more plans, without running a full quote. Useful for ad-hoc coverage lookups when an end user wants to check whether a specific drug is covered by a specific plan they already know about — for example, post-enrollment verification or workflows where pricing and benefits aren't needed.
The Shop by Drug workflow on Search Major Medical Plans returns the same coverage detail inline with quoted plans and is preferred for shopping flows. Use this endpoint when coverage is the only thing needed and the plan IDs are already known.
| id required | string Example: bb1f3523f0 ID of the Drug |
| year required | string Example: year=2026 Plan Year |
| line_of_coverage required | string Enum: "medical" "medicare_advantage" Example: line_of_coverage=medical Line of coverage (medical or medicare_advantage) |
| state_code required | string Example: state_code=CA Two-character state code |
| market | string Enum: "individual" "small_group" Example: market=individual Plan Market (individual or small_group) |
| X-RateLimit-Limit | integer Maximum requests allowed in the current rate-limit window (per minute) |
| X-RateLimit-Remaining | integer Requests remaining in the current rate-limit window |
Array of objects (DrugCoverage) Example: [{"drug_package_id":"01002-1200-11","plan_id":"88582NY0230001","prior_authorization":true,"quantity_limit":true,"step_therapy":true,"tier":"generic"}] Drug coverage search results | |||||||||||||
Array
| |||||||||||||
object (Meta) Example: {"total":1} | |||||||||||||
| |||||||||||||
{- "coverages": [
- {
- "drug_package_id": "01002-1200-11",
- "plan_id": "88582NY0230001",
- "prior_authorization": true,
- "quantity_limit": true,
- "step_therapy": true,
- "tier": "generic"
}
], - "meta": {
- "total": 1
}
}v6: The documentation for this endpoint references this latest available version.
Searches Ideon's catalog of carrier formularies. Returns formulary records with their identifiers, names, associated carrier, and metadata for cross-referencing formularies with the plans that use them.
| search_term | string Example: search_term=HIX PPO Full or partial name of the formulary |
| rx_bin | string Example: rx_bin=123456 RX BIN Number (found on an insurance card) |
| rx_group | string Example: rx_group=HEALTH RX Group String (found on an insurance card) |
| rx_pcn | string Example: rx_pcn=9999 RX PCN Number (found on an insurance card) |
| X-RateLimit-Limit | integer Maximum requests allowed in the current rate-limit window (per minute) |
| X-RateLimit-Remaining | integer Requests remaining in the current rate-limit window |
Array of objects (Formulary) Example: [{"id":123,"name":"Aetna 3 Tier"}] List of formularies. | |||||
Array
| |||||
object (Meta) Example: {"total":1} | |||||
| |||||
{- "formularies": [
- {
- "id": 123,
- "name": "Aetna 3 Tier"
}
], - "meta": {
- "total": 1
}
}v7: The tier generic is deprecated. All covered generic drugs will either have the preferred_generic or non_preferred_generic tier. The documentation for this endpoint references this latest available version.
v6: Previous supported version.
Returns drug package coverage details for a specific formulary. Useful for batch formulary review workflows — given a formulary id, retrieve every drug package's coverage tier and restrictions (prior authorization, step therapy, quantity limit) under that formulary.
This is the "look at the formulary itself" inverse of Drug Coverage Search, which looks at coverage from the drug + plan angle.
| formulary_id required | string Example: 123 ID of the Formulary in question |
| ndc_package_code required | string Example: 01002-1200-11 ID of the DrugPackage in question |
| X-RateLimit-Limit | integer Maximum requests allowed in the current rate-limit window (per minute) |
| X-RateLimit-Remaining | integer Requests remaining in the current rate-limit window |
object (DrugCoverage) Example: {"drug_package_id":"01002-1200-11","plan_id":"88582NY0230001","prior_authorization":true,"quantity_limit":true,"step_therapy":true,"tier":"generic"} | |||||||||||||
| |||||||||||||
object (DrugPackage) Example: {"description":"Claritin 24 hour 100 ct.","id":"07777-3105-01","med_id":1,"rx_cui_id":"83629828"} | |||||||||||||
| |||||||||||||
object (Formulary) Example: {"id":123,"name":"Aetna 3 Tier"} | |||||||||||||
| |||||||||||||
{- "coverage": {
- "drug_package_id": "01002-1200-11",
- "plan_id": "88582NY0230001",
- "prior_authorization": true,
- "quantity_limit": true,
- "step_therapy": true,
- "tier": "generic"
}, - "drug_package": {
- "description": "Claritin 24 hour 100 ct.",
- "id": "07777-3105-01",
- "med_id": 1,
- "rx_cui_id": "83629828"
}, - "formulary": {
- "id": 123,
- "name": "Aetna 3 Tier"
}
}Asynchronously generate and download bulk plan benefit, service area, and zip-county datasets.
v8: The documentation for this endpoint references this latest available version.
The version requested in this endpoint will mirror the version used for the plan benefit schema in the files generated. Prior versions are not supported for this endpoint.
Asynchronously generates downloadable JSONL dataset files. Used to cache reference data locally and optimize real-time integrations — plan benefits, plan-network mappings, service areas, and zip-county metadata can all be exported and refreshed on a schedule, removing the need for repeated ad-hoc lookups against the plan and search endpoints.
Supported datasets.
Workflow. Submitting this endpoint returns an export_id and an initial pending status. Poll Show Bulk Export using the export_id until status is complete, then download the file from the pre-signed download_url in the response.
Operational notes.
download_url returned is a pre-signed S3 URL with a finite TTL. If the URL expires before the file is downloaded, re-fetch Show Bulk Export with the same export_id to mint a new URL — no need to re-create the export.| type required | string Enum: "plans" "service_areas" "plan_network_mappings" "zip_counties" Example: "zip_counties" | ||||||||
object (V8_BulkExportFilters) Example: {"market":"small_group","product_line":"medical","states":["NY","NJ","CT"],"year":2026} | |||||||||
| |||||||||
| X-RateLimit-Limit | integer Maximum requests allowed in the current rate-limit window (per minute) |
| X-RateLimit-Remaining | integer Requests remaining in the current rate-limit window |
| created_at | string <date-time> Example: "2026-12-31T18:00:00Z" | ||||||||
| download_url | string or null <uri> Example: "https://ideon-bulk-exports.s3.amazonaws.com/exports/66f63e66-bed6-4c99-8f58-ecb44c56bc41.jsonl?X-Amz-Expires=3600&X-Amz-Signature=abc123" Signed S3 URL for downloading the completed export. Null until status is complete. | ||||||||
| export_id | string <uuid> Example: "66f63e66-bed6-4c99-8f58-ecb44c56bc41" UUID identifying this bulk export job | ||||||||
object (V8_BulkExportFilters) Example: {"market":"small_group","product_line":"medical","states":["NY","NJ","CT"],"year":2026} | |||||||||
| |||||||||
| status | string Enum: "pending" "complete" "errors" Example: "pending" | ||||||||
| type | string Enum: "plans" "service_areas" "plan_network_mappings" "zip_counties" Example: "zip_counties" | ||||||||
| version | string Example: "v8" | ||||||||
{- "filters": {
- "market": "small_group",
- "product_line": "medical",
- "states": [
- "NY",
- "NJ",
- "CT"
], - "year": 2026
}, - "type": "zip_counties"
}{- "created_at": "2026-12-31T18:00:00Z",
- "export_id": "66f63e66-bed6-4c99-8f58-ecb44c56bc41",
- "filters": {
- "market": "small_group",
- "product_line": "medical",
- "states": [
- "NY",
- "NJ",
- "CT"
], - "year": 2026
}, - "status": "pending",
- "type": "zip_counties",
- "version": "v8"
}v8: The documentation for this endpoint references this latest available version.
Polls the status of a bulk export job and returns a fresh pre-signed download_url once the file is available. Use this endpoint to poll for completion after creating an export, and to refresh the download URL if the previous one has expired.
| id required | string Example: 66f63e66-bed6-4c99-8f58-ecb44c56bc41 Unique ID for BulkExport |
| X-RateLimit-Limit | integer Maximum requests allowed in the current rate-limit window (per minute) |
| X-RateLimit-Remaining | integer Requests remaining in the current rate-limit window |
| created_at | string <date-time> Example: "2026-12-31T18:00:00Z" | ||||||||
| download_url | string or null <uri> Example: "https://ideon-bulk-exports.s3.amazonaws.com/exports/66f63e66-bed6-4c99-8f58-ecb44c56bc41.jsonl?X-Amz-Expires=3600&X-Amz-Signature=abc123" Signed S3 URL for downloading the completed export. Null until status is complete. | ||||||||
| export_id | string <uuid> Example: "66f63e66-bed6-4c99-8f58-ecb44c56bc41" UUID identifying this bulk export job | ||||||||
object (V8_BulkExportFilters) Example: {"market":"small_group","product_line":"medical","states":["NY","NJ","CT"],"year":2026} | |||||||||
| |||||||||
| status | string Enum: "pending" "complete" "errors" Example: "pending" | ||||||||
| type | string Enum: "plans" "service_areas" "plan_network_mappings" "zip_counties" Example: "zip_counties" | ||||||||
| version | string Example: "v8" | ||||||||
{- "created_at": "2026-12-31T18:00:00Z",
- "export_id": "66f63e66-bed6-4c99-8f58-ecb44c56bc41",
- "filters": {
- "market": "small_group",
- "product_line": "medical",
- "states": [
- "NY",
- "NJ",
- "CT"
], - "year": 2026
}, - "status": "pending",
- "type": "zip_counties",
- "version": "v8"
}v8: In the response schema, benefits for Medical, Dental, and Vision Plans are represented as objects with tier and limit keys. Dental and Vision also include additional plan benefit and metadata information in this version.
For details on the schema and v8 updates for each line of coverage, reference the list below. The documentation for this endpoint references this latest available version.
v6: Previous supported version. The response schemas for Medical, Dental, and Vision plans return benefits as strings.
Returns full plan records for a list of plan IDs in a single response. Originally intended as a batch alternative to the per-plan Show endpoints.
Strongly recommend Create Bulk Export instead for new integrations. Bulk Exports replaces this endpoint as the recommended pattern for caching plan benefits — it produces JSONL output, supports richer filtering, and runs asynchronously without the request-size constraints of a synchronous batch call. This endpoint is retained for backward compatibility with existing integrations and remains a valid path for small ad-hoc batches, but new integrations should use Bulk Exports.
| market | string Enum: "individual" "small_group" "level_funded" Example: "small_group" The market for which the plans are offered (individual, small_group, or level_funded). |
| page | integer Example: "1" Selected page of paginated response. |
| per_page | integer Example: "20" Results per page of response. |
| product_line | string Enum: "medical" "critical_illness" "hospital_indemnity" "accident" "vision" "dental" "medicare_advantage" "life" "disability" Example: "medical" The line of coverage (medical, critical_illness, hospital_indemnity, accident, vision, dental, medicare_advantage, life, disability). |
| state | string Example: "NY" The two-letter state code where the plans are offered. |
| year | string Example: "2017" The year when the plans are offered. |
| X-RateLimit-Limit | integer Maximum requests allowed in the current rate-limit window (per minute) |
| X-RateLimit-Remaining | integer Requests remaining in the current rate-limit window |
object (Meta) Example: {"total":1} | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Array of objects (ACAPlan2018) Example: [{"abortion_rider":false,"actuarial_value":80,"adult_dental":true,"age29_rider":false,"ambulance":"In-Network: 25% after deductible / Out-of-Network: 25% after deductible","audience":"small_group","benefits_summary_url":"https://d2ed110nmrd591.cloudfront.net/blobs/i6XqimNu7KpSbJjKU5HeTSp1.pdf","carrier":{"id":"bae1d0e1-80dc-48f4-918d-6c492340cc1c","issuer_id":"A0027","logo_url":"https://d1hm12jr612u3r.cloudfront.net/images/carriers/174/1438891372/thumb.png?1438891372","name":"Guardian"},"carrier_disclaimers":"See Summary of Benefits and Coverage (SBC) for more details.","carrier_name":"Aetna","child_dental":"In-Network: $0 / Out-of-Network: 100%","child_eye_exam":"In-Network: $0 / Out-of-Network: 100%","child_eyewear":"In-Network: $0 / Out-of-Network: 100%","chiropractic_services":false,"diagnostic_test":"In-Network: 25% after deductible / Out-of-Network: 100%","display_name":"Aetna PPO 20/5000","dp_rider":true,"drug_formulary_url":"https://www.emblemhealth.com/content/dam/emblemhealth/pdfs/resources/formularies/2020_Small-Group_Formulary.pdf","durable_medical_equipment":"In-Network: 25% after deductible / Out-of-Network: 100%","effective_date":"2026-01-01","embedded_deductible":"non_embedded","emergency_room":"Deductible, then $150","estimated_actuarial_value":80,"expiration_date":"2026-12-31","family_drug_deductible":"Included in Medical","family_drug_moop":"Included in Medical","family_medical_deductible":"$4,000","family_medical_moop":"$11,000","formulary":{"id":123,"name":"Aetna 3 Tier"},"fp_rider":true,"gated":false,"generic_drugs":"$10","habilitation_services":"In-Network: $0 / Out-of-Network: 100%","hios_issuer_id":"88582","home_health_care":"In-Network: $0 / Out-of-Network: 100%","hospice_service":"In-Network: $0 / Out-of-Network: 100%","hsa_eligible":false,"id":"88582NY0230001","identifiers":[{"type":"contract_id","value":"abc123"}],"imaging_center":"In-Network: 25% after deductible / Out-of-Network: 100%","imaging_physician":"In-Network: 25% after deductible / Out-of-Network: 100%","individual_drug_deductible":"Included in Medical","individual_drug_moop":"Included in Medical","individual_medical_deductible":"$2,000","individual_medical_moop":"$5,500","infertility_treatment_rider":false,"inpatient_birth":"In-Network: $0 / Out-of-Network: 100%","inpatient_birth_physician":"In-Network: 30% after deductible / Out-of-Network: 50% after deductible","inpatient_facility":"Deductible, then $1,500 per admission\"","inpatient_mental_health":"In-Network: $0 / Out-of-Network: 100%","inpatient_physician":"Included in inpatient facility","inpatient_substance":"In-Network: $0 / Out-of-Network: 100%","lab_test":"In-Network: 25% after deductible / Out-of-Network: 100%","level":"silver","logo_url":"https://d1hm12jr612u3r.cloudfront.net/images/carriers/174/1438891372/thumb.png?1438891372","mail_order_rx":1.5,"name":"Select Care Silver, Age 29 Rider","network_ids":[1,3],"network_size":5000,"networks":[{"id":1,"name":"Open Choice","provider_directory_url":"https://www.example.com/find-a-doctor"}],"non_preferred_brand_drugs":"$70","nonpreferred_generic_drug_share":"$70","nonpreferred_specialty_drug_share":"$70","off_market":false,"on_market":true,"out_of_network_coverage":false,"outpatient_ambulatory_care_center":"In-Network: 25% after deductible / Out-of-Network: 100%","outpatient_facility":"In-Network: 30% after deductible / Out-of-Network: 50% after deductible","outpatient_mental_health":"In-Network: 30% after deductible / Out-of-Network: 50% after deductible","outpatient_physician":"In-Network: 30% after deductible / Out-of-Network: 50% after deductible","outpatient_substance":"In-Network: $0 / Out-of-Network: 100%","plan_ancestors":[{"id":"88582NY0230001","year":2019}],"plan_calendar":"calendar_year","plan_coinsurance":"In-Network: 30% after deductible / Out-of-Network: 50% after deductible","plan_documents":[{"type":"summary_of_benefits_and_coverage","url":"https://www.example.com/summary_of_benefits_and_coverage.pdf"}],"plan_market":"on_market","plan_type":"HMO","postnatal_care":"In-Network: $0 / Out-of-Network: 100%","preferred_brand_drugs":"$35","prenatal_care":"In-Network: $0 / Out-of-Network: 100%","preventative_care":"In-Network: $0 / Out-of-Network: 100%","primary_care_physician":"Deductible, then $30","product_line":"medical","quoted_via_carrier_api":false,"ratings":[{"type":"cms_quality_ratings_overall","value":"3"}],"rehabilitation_services":"In-Network: $0 / Out-of-Network: 100%","sbc_name":"Aetna PPO 20/5000","service_area_id":"11234-2016-WI01-individual","skilled_nursing":"In-Network: $0 / Out-of-Network: 100%","skilled_nursing_facility_365":"unlimited","source":"carrier","specialist":"Deductible, then $50","specialty_drugs":"$70","standardized_plan":false,"telemedicine":false,"type":"ACAPlan2018","updated_at":"2026-01-01T00:00:00.000Z","urgent_care":"In-Network: $0 / Out-of-Network: 100%"}] Plan search results | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Array
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{- "market": "small_group",
- "page": 1,
- "per_page": 20,
- "product_line": "medical",
- "state": "NY",
- "year": "2017"
}{- "meta": {
- "total": 1
}, - "plans": [
- {
- "abortion_rider": false,
- "actuarial_value": 80,
- "adult_dental": true,
- "age29_rider": false,
- "ambulance": "In-Network: 25% after deductible / Out-of-Network: 25% after deductible",
- "audience": "small_group",
- "carrier_disclaimers": "See Summary of Benefits and Coverage (SBC) for more details.",
- "carrier_name": "Aetna",
- "child_dental": "In-Network: $0 / Out-of-Network: 100%",
- "child_eye_exam": "In-Network: $0 / Out-of-Network: 100%",
- "child_eyewear": "In-Network: $0 / Out-of-Network: 100%",
- "chiropractic_services": false,
- "diagnostic_test": "In-Network: 25% after deductible / Out-of-Network: 100%",
- "display_name": "Aetna PPO 20/5000",
- "dp_rider": true,
- "durable_medical_equipment": "In-Network: 25% after deductible / Out-of-Network: 100%",
- "effective_date": "2026-01-01",
- "embedded_deductible": "non_embedded",
- "emergency_room": "Deductible, then $150",
- "estimated_actuarial_value": 80,
- "expiration_date": "2026-12-31",
- "family_drug_deductible": "Included in Medical",
- "family_drug_moop": "Included in Medical",
- "family_medical_deductible": "$4,000",
- "family_medical_moop": "$11,000",
- "fp_rider": true,
- "gated": false,
- "generic_drugs": "$10",
- "habilitation_services": "In-Network: $0 / Out-of-Network: 100%",
- "hios_issuer_id": "88582",
- "home_health_care": "In-Network: $0 / Out-of-Network: 100%",
- "hospice_service": "In-Network: $0 / Out-of-Network: 100%",
- "hsa_eligible": false,
- "id": "88582NY0230001",
- "imaging_center": "In-Network: 25% after deductible / Out-of-Network: 100%",
- "imaging_physician": "In-Network: 25% after deductible / Out-of-Network: 100%",
- "individual_drug_deductible": "Included in Medical",
- "individual_drug_moop": "Included in Medical",
- "individual_medical_deductible": "$2,000",
- "individual_medical_moop": "$5,500",
- "infertility_treatment_rider": false,
- "inpatient_birth": "In-Network: $0 / Out-of-Network: 100%",
- "inpatient_birth_physician": "In-Network: 30% after deductible / Out-of-Network: 50% after deductible",
- "inpatient_facility": "Deductible, then $1,500 per admission\"",
- "inpatient_mental_health": "In-Network: $0 / Out-of-Network: 100%",
- "inpatient_physician": "Included in inpatient facility",
- "inpatient_substance": "In-Network: $0 / Out-of-Network: 100%",
- "lab_test": "In-Network: 25% after deductible / Out-of-Network: 100%",
- "level": "silver",
- "mail_order_rx": 1.5,
- "name": "Select Care Silver, Age 29 Rider",
- "network_ids": [
- 1,
- 3
], - "network_size": 5000,
- "non_preferred_brand_drugs": "$70",
- "nonpreferred_generic_drug_share": "$70",
- "nonpreferred_specialty_drug_share": "$70",
- "off_market": false,
- "on_market": true,
- "out_of_network_coverage": false,
- "outpatient_ambulatory_care_center": "In-Network: 25% after deductible / Out-of-Network: 100%",
- "outpatient_facility": "In-Network: 30% after deductible / Out-of-Network: 50% after deductible",
- "outpatient_mental_health": "In-Network: 30% after deductible / Out-of-Network: 50% after deductible",
- "outpatient_physician": "In-Network: 30% after deductible / Out-of-Network: 50% after deductible",
- "outpatient_substance": "In-Network: $0 / Out-of-Network: 100%",
- "plan_calendar": "calendar_year",
- "plan_coinsurance": "In-Network: 30% after deductible / Out-of-Network: 50% after deductible",
- "plan_market": "on_market",
- "plan_type": "HMO",
- "postnatal_care": "In-Network: $0 / Out-of-Network: 100%",
- "preferred_brand_drugs": "$35",
- "prenatal_care": "In-Network: $0 / Out-of-Network: 100%",
- "preventative_care": "In-Network: $0 / Out-of-Network: 100%",
- "primary_care_physician": "Deductible, then $30",
- "product_line": "medical",
- "quoted_via_carrier_api": false,
- "rehabilitation_services": "In-Network: $0 / Out-of-Network: 100%",
- "sbc_name": "Aetna PPO 20/5000",
- "service_area_id": "11234-2016-WI01-individual",
- "skilled_nursing": "In-Network: $0 / Out-of-Network: 100%",
- "skilled_nursing_facility_365": "unlimited",
- "source": "carrier",
- "specialist": "Deductible, then $50",
- "specialty_drugs": "$70",
- "standardized_plan": false,
- "telemedicine": false,
- "type": "ACAPlan2018",
- "updated_at": "2026-01-01T00:00:00.000Z",
- "urgent_care": "In-Network: $0 / Out-of-Network: 100%"
}
]
}v8: The documentation for this endpoint references this latest available version. v6 is not available for this endpoint.
Validates a National Producer Number (NPN) against carrier-specific appointment rosters. Returns a per-carrier breakdown indicating whether the NPN is currently appointed with each carrier and any associated metadata (effective dates, agent vs agency status, etc.).
Use ahead of quoting or enrollment to confirm a broker or agency is appointed with the relevant carriers. Notably used in v9 small group medical quoting and ICHRA quoting workflows where UnitedHealthcare validates broker_npn against its appointed-broker list at quote time — this endpoint surfaces that appointment status proactively.
| carrier | string Example: "UnitedHealthcare" Carrier validated |
| npn | string Example: "12345678" NPN of the carrrier |
| state | string Example: "TX" State the carrier and npn is valid |
| X-RateLimit-Limit | integer Maximum requests allowed in the current rate-limit window (per minute) |
| X-RateLimit-Remaining | integer Requests remaining in the current rate-limit window |
| carrier | string Example: "UnitedHealthcare" Carrier validated |
| carrier_api_response_code | integer Carrier API response code |
| carrier_api_response_error | string Carrier API response error |
| npn | string Example: "12345678" NPN of the carrrier |
| state | string Example: "TX" State the carrier and npn is valid |
| valid_npn | boolean or null Indicates whether the NPN is valid |
{- "carrier": "UnitedHealthcare",
- "npn": "12345678",
- "state": "TX"
}{- "carrier": "UnitedHealthcare",
- "npn": "12345678",
- "state": "TX"
}Look up zip code and FIPS county code pairs required by all plan search and quoting endpoints.
v6: The documentation for this endpoint references this latest available version.
Searches the ZIP + FIPS code dataset that backs Ideon's rating area and service area logic. Returns paginated results matching a ZIP code, state, county name, or other filters.
A ZIP code can span multiple counties, and rating areas / service areas are county-specific — the FIPS code paired with the ZIP determines which rating area applies. This endpoint is the way to disambiguate when only the ZIP is known.
For bulk caching of the full ZIP + FIPS dataset, use Create Bulk Export with the Zip-Counties dataset type instead — a single bulk export of zip-counties is faster than paginating through this endpoint and is the recommended pattern for any workflow that needs the complete dataset client-side.
| zip_prefix required | string Example: zip_prefix=1002 Partial five-digit Zip |
| X-RateLimit-Limit | integer Maximum requests allowed in the current rate-limit window (per minute) |
| X-RateLimit-Remaining | integer Requests remaining in the current rate-limit window |
Array of objects (County) Example: [{"fips_code":"33025","id":1,"name":"Bergen County","state_code":"NJ","state_id":"123","state_live":true,"state_live_for_business":false}] Counties that exist in the provided zip prefix. | |||||||||||||||||
Array
| |||||||||||||||||
Array of objects (State) Example: [{"code":"NY","fips_number":"36","id":37,"last_date_for_individual":"2026-12-31","last_date_for_shop":"2026-12-31","name":"New York"}] States that exist in the provided zip prefix. | |||||||||||||||||
Array
| |||||||||||||||||
Array of objects (ZipCode) Example: [{"code":"11385","id":1}] ZipCodes that exist in the provided zip prefix. | |||||||||||||||||
Array
| |||||||||||||||||
Array of objects (ZipCounty) Example: [{"county_id":5,"id":1,"zip_code_id":4}] ZipCounties that exist in the provided zip prefix. | |||||||||||||||||
Array
| |||||||||||||||||
{- "counties": [
- {
- "fips_code": "33025",
- "id": 1,
- "name": "Bergen County",
- "state_code": "NJ",
- "state_id": "123",
- "state_live": true,
- "state_live_for_business": false
}
], - "states": [
- {
- "code": "NY",
- "fips_number": "36",
- "id": 37,
- "last_date_for_individual": "2026-12-31",
- "last_date_for_shop": "2026-12-31",
- "name": "New York"
}
], - "zip_codes": [
- {
- "code": "11385",
- "id": 1
}
], - "zip_counties": [
- {
- "county_id": 5,
- "id": 1,
- "zip_code_id": 4
}
]
}v6: The documentation for this endpoint references this latest available version.
Returns the ZIP + FIPS records for a single ZIP code. When a ZIP spans multiple counties, all county pairings are returned — the caller is responsible for selecting the correct FIPS for the user's actual county.
| id required | integer Example: 12345 Unique ID for ZipCounty |
| X-RateLimit-Limit | integer Maximum requests allowed in the current rate-limit window (per minute) |
| X-RateLimit-Remaining | integer Requests remaining in the current rate-limit window |
Array of objects (County) Example: [{"fips_code":"33025","id":1,"name":"Bergen County","state_code":"NJ","state_id":"123","state_live":true,"state_live_for_business":false}] Counties that exist in the provided zip prefix. | |||||||||||||||||
Array
| |||||||||||||||||
Array of objects (State) Example: [{"code":"NY","fips_number":"36","id":37,"last_date_for_individual":"2026-12-31","last_date_for_shop":"2026-12-31","name":"New York"}] States that exist in the provided zip prefix. | |||||||||||||||||
Array
| |||||||||||||||||
Array of objects (ZipCode) Example: [{"code":"11385","id":1}] ZipCodes that exist in the provided zip prefix. | |||||||||||||||||
Array
| |||||||||||||||||
object (ZipCounty) Example: {"county_id":5,"id":1,"zip_code_id":4} | |||||||||||||||||
| |||||||||||||||||
{- "counties": [
- {
- "fips_code": "33025",
- "id": 1,
- "name": "Bergen County",
- "state_code": "NJ",
- "state_id": "123",
- "state_live": true,
- "state_live_for_business": false
}
], - "states": [
- {
- "code": "NY",
- "fips_number": "36",
- "id": 37,
- "last_date_for_individual": "2026-12-31",
- "last_date_for_shop": "2026-12-31",
- "name": "New York"
}
], - "zip_codes": [
- {
- "code": "11385",
- "id": 1
}
], - "zip_county": {
- "county_id": 5,
- "id": 1,
- "zip_code_id": 4
}
}v8: Request parameters filter on both matching carriers as well as nested carrier data in the response. Additionally, only current plan year and active network data is referenced in responses. The documentation for this endpoint references this latest available version.
v6: Previous supported version.
Searches Ideon's carrier catalog. Returns carriers matching a name, line of coverage, or market filter, with each carrier's unique id (consistent across the Quote and Select datasets) and brand metadata.
Carrier IDs are used as the carrier_id filter input on Network Search, Formulary Search, and several Plan Lookup endpoints to narrow searches by carrier.
| search_term | string Example: search_term=United Full or partial proprietary name of a carrier |
| state_code | string Example: state_code=CA The state where the issuer has plans in |
| issuer_id | integer Example: issuer_id=49116 The issuer identifier |
| line_of_coverage | string Enum: "medical" "dental" "vision" "medicaid" "medicare_advantage" Example: line_of_coverage=medical The line of coverage the issuer has plans in. Options are |
| market | string Enum: "individual" "small_group" "level_funded" Example: market=small_group The market the issuer has plans for. Options are |
| carrier_id | string Example: carrier_id=bae1d0e1-80dc-48f4-918d-6c492340cc1c The carrier identifier |
| plan_data_only | boolean Example: plan_data_only=true Excludes provider-network contribution from carrier results |
| page | integer Example: page=1 Page of paginated response |
| per_page | integer <= 25 Example: per_page=10 Responses per page |
| X-RateLimit-Limit | integer Maximum requests allowed in the current rate-limit window (per minute) |
| X-RateLimit-Remaining | integer Requests remaining in the current rate-limit window |
| Total | integer Example: "150" Total number of records matching the query across all pages |
| Per-Page | integer Example: "25" Number of records returned per page |
| Page | integer Example: "1" Current page number |
| Link | string Example: "<https://api.ideonapi.com/networks?page=2&per_page=25>; rel=\"next\", <https://api.ideonapi.com/networks?page=1&per_page=25>; rel=\"first\"" RFC-5988 pagination links containing |
Array of objects (V8_CarrierShow) Example: [{"id":"bae1d0e1-80dc-48f4-918d-6c492340cc1c","issuers":[{"issuer_id":"49116","issuer_id_type":"hios_issuer_id","logo_url":"https://d1hm12jr612u3r.cloudfront.net/images/carriers/174/1438891372/thumb.png?1438891372","name":"UHC of California"}],"lines_of_coverage":["medical"],"markets":["small_group"],"name":"UnitedHealthcare","states":["CA","DE","TX"]}] List of Carriers | |||||||||||||
Array
| |||||||||||||
object (Meta) Example: {"total":1} | |||||||||||||
| |||||||||||||
{- "carriers": [
- {
- "id": "bae1d0e1-80dc-48f4-918d-6c492340cc1c",
- "lines_of_coverage": [
- "medical"
], - "markets": [
- "small_group"
], - "name": "UnitedHealthcare",
- "states": [
- "CA",
- "DE",
- "TX"
]
}
], - "meta": {
- "total": 1
}
}v8: In the response schema, benefits are represented as objects with tier and limit keys. The documentation for this endpoint references this latest available version.
v6: Previous supported version. The response schema returns benefits as strings.
Returns the full record for a single ACA-compliant Major Medical plan by HIOS ID. Includes all benefit fields, premium metadata, network IDs, plan documents, identifiers, and CMS Star Ratings for plans sold on the federal exchange.
For searching available plans by location, applicant, or filters, use Search Major Medical Plans.
For automated workflows, cache plan inventory via Bulk Exports. These Show and Search endpoints are best suited to ad-hoc lookups — for example, surfacing plan details in response to a specific user action, or refreshing a single plan record. For high-volume or scheduled access (powering search UIs, plan comparison tools, member portals), pull the Plans dataset from Bulk Exports on a daily or weekly cadence and join against the cached benefits client-side. This pattern dramatically reduces latency on real-time flows and removes API rate limit pressure.
| id required | string Example: 88582NY0230001 ID of the Plan |
| year | integer Example: year=2026 Plan year (defaults to current year) |
| select | string Example: select=id,name,carrier_name Comma-separated list of response fields to include, enabling partial responses. Use dot notation for nested fields. Example: id,name,carrier_name |
| Accept-Version | string Enum: "v6" "v7" "v8" "v9" Example: v8 API version requested (v6, v7, v8, or v9) |
| X-RateLimit-Limit | integer Maximum requests allowed in the current rate-limit window (per minute) |
| X-RateLimit-Remaining | integer Requests remaining in the current rate-limit window |
| Cache-Control | string Example: "public, max-age=3600" Caching directives for static plan data. Plan data is cacheable for up to 1 hour; quote and rate data is not cached. |
| ETag | string Example: "\"a1b2c3d4e5f6\"" Entity tag for cache validation. Allows conditional requests using If-None-Match. |
object (V8_MedicalPlan2018) Example: {"abortion_rider":false,"actuarial_value":80,"adult_dental":true,"age29_rider":false,"ambulance":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"audience":"small_group","benefits_summary_url":"https://d2ed110nmrd591.cloudfront.net/blobs/i6XqimNu7KpSbJjKU5HeTSp1.pdf","carrier":{"id":"bae1d0e1-80dc-48f4-918d-6c492340cc1c","issuer_id":"A0027","logo_url":"https://d1hm12jr612u3r.cloudfront.net/images/carriers/174/1438891372/thumb.png?1438891372","name":"Guardian"},"carrier_disclaimers":"See Summary of Benefits and Coverage (SBC) for more details.","carrier_name":"Aetna","child_dental":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"child_eye_exam":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"child_eyewear":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"chiropractic_services":false,"diagnostic_test":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"display_name":"Aetna PPO 20/5000","dp_rider":true,"drug_formulary_url":"https://www.emblemhealth.com/content/dam/emblemhealth/pdfs/resources/formularies/2020_Small-Group_Formulary.pdf","durable_medical_equipment":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"effective_date":"2026-01-01","embedded_deductible":"non_embedded","emergency_room":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"estimated_actuarial_value":80,"expiration_date":"2026-12-31","family_drug_deductible":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"family_drug_moop":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"family_medical_deductible":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"family_medical_moop":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"formulary":{"id":123,"name":"Aetna 3 Tier"},"fp_rider":true,"gated":false,"generic_drugs":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"habilitation_services":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"hios_issuer_id":"88582","home_health_care":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"hospice_service":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"hsa_eligible":false,"id":"88582NY0230001","identifiers":[{"type":"contract_id","value":"abc123"}],"imaging":{"in_network":"30% after deductible","limit":"1 time(s) per year","out_of_network":"50% after deductible"},"imaging_center":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"imaging_physician":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"individual_drug_deductible":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"individual_drug_moop":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"individual_medical_deductible":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"individual_medical_moop":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"infertility_treatment_rider":false,"inpatient_birth":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"inpatient_birth_physician":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"inpatient_facility":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"inpatient_mental_health":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"inpatient_physician":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"inpatient_substance":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"lab_test":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"level":"silver","logo_url":"https://d1hm12jr612u3r.cloudfront.net/images/carriers/174/1438891372/thumb.png?1438891372","mail_order_rx":1.5,"name":"Select Care Silver, Age 29 Rider","network_ids":[1,3],"network_size":5000,"networks":[{"id":1,"name":"Open Choice","provider_directory_url":"https://www.example.com/find-a-doctor"}],"non_preferred_brand_drugs":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"nonpreferred_generic_drug_share":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"nonpreferred_specialty_drug_share":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"off_market":false,"on_market":true,"out_of_network_coverage":false,"outpatient_ambulatory_care_center":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"outpatient_facility":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"outpatient_mental_health":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"outpatient_physician":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"outpatient_substance":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"plan_ancestors":[{"id":"88582NY0230001","year":2019}],"plan_calendar":"calendar_year","plan_coinsurance":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"plan_documents":[{"type":"summary_of_benefits_and_coverage","url":"https://www.example.com/summary_of_benefits_and_coverage.pdf"}],"plan_market":"on_market","plan_type":"HMO","postnatal_care":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"preferred_brand_drugs":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"prenatal_care":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"prenatal_postnatal_care":{"in_network":"30% after deductible","limit":"1 time(s) per year","out_of_network":"50% after deductible"},"preventative_care":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"primary_care_physician":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"product_line":"medical","quoted_via_carrier_api":false,"ratings":[{"type":"cms_quality_ratings_overall","value":"3"}],"rehabilitation_services":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"sbc_name":"Aetna PPO 20/5000","service_area_id":"11234-2016-WI01-individual","skilled_nursing":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"skilled_nursing_facility_365":"unlimited","source":"carrier","specialist":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"specialty_drugs":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"standardized_plan":false,"telemedicine":false,"type":"ACAPlan2018","updated_at":"2026-01-01T00:00:00.000Z","urgent_care":{"in_network":"30% after deductible","out_of_network":"50% after deductible"}} | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{- "plan": {
- "abortion_rider": false,
- "actuarial_value": 80,
- "adult_dental": true,
- "age29_rider": false,
- "ambulance": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "audience": "small_group",
- "carrier": {
- "id": "bae1d0e1-80dc-48f4-918d-6c492340cc1c",
- "issuer_id": "A0027",
- "name": "Guardian"
}, - "carrier_disclaimers": "See Summary of Benefits and Coverage (SBC) for more details.",
- "carrier_name": "Aetna",
- "child_dental": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "child_eye_exam": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "child_eyewear": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "chiropractic_services": false,
- "diagnostic_test": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "display_name": "Aetna PPO 20/5000",
- "dp_rider": true,
- "durable_medical_equipment": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "effective_date": "2026-01-01",
- "embedded_deductible": "non_embedded",
- "emergency_room": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "estimated_actuarial_value": 80,
- "expiration_date": "2026-12-31",
- "family_drug_deductible": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "family_drug_moop": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "family_medical_deductible": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "family_medical_moop": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "formulary": {
- "id": 123,
- "name": "Aetna 3 Tier"
}, - "fp_rider": true,
- "gated": false,
- "generic_drugs": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "habilitation_services": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "hios_issuer_id": "88582",
- "home_health_care": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "hospice_service": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "hsa_eligible": false,
- "id": "88582NY0230001",
- "imaging": {
- "in_network": "30% after deductible",
- "limit": "1 time(s) per year",
- "out_of_network": "50% after deductible"
}, - "imaging_center": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "imaging_physician": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "individual_drug_deductible": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "individual_drug_moop": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "individual_medical_deductible": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "individual_medical_moop": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "infertility_treatment_rider": false,
- "inpatient_birth": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "inpatient_birth_physician": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "inpatient_facility": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "inpatient_mental_health": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "inpatient_physician": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "inpatient_substance": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "lab_test": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "level": "silver",
- "mail_order_rx": 1.5,
- "name": "Select Care Silver, Age 29 Rider",
- "network_ids": [
- 1,
- 3
], - "network_size": 5000,
- "non_preferred_brand_drugs": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "nonpreferred_generic_drug_share": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "nonpreferred_specialty_drug_share": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "off_market": false,
- "on_market": true,
- "out_of_network_coverage": false,
- "outpatient_ambulatory_care_center": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "outpatient_facility": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "outpatient_mental_health": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "outpatient_physician": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "outpatient_substance": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "plan_calendar": "calendar_year",
- "plan_coinsurance": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "plan_market": "on_market",
- "plan_type": "HMO",
- "postnatal_care": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "preferred_brand_drugs": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "prenatal_care": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "prenatal_postnatal_care": {
- "in_network": "30% after deductible",
- "limit": "1 time(s) per year",
- "out_of_network": "50% after deductible"
}, - "preventative_care": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "primary_care_physician": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "product_line": "medical",
- "quoted_via_carrier_api": false,
- "rehabilitation_services": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "sbc_name": "Aetna PPO 20/5000",
- "service_area_id": "11234-2016-WI01-individual",
- "skilled_nursing": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "skilled_nursing_facility_365": "unlimited",
- "source": "carrier",
- "specialist": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "specialty_drugs": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "standardized_plan": false,
- "telemedicine": false,
- "type": "ACAPlan2018",
- "updated_at": "2026-01-01T00:00:00.000Z",
- "urgent_care": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}
}
}v8: In the response schema, benefits are represented as objects with tier and limit keys. Updates from v7 are included. The documentation for this endpoint references this latest available version.
v7: Support added for the optional provider address_id in the providers list of the request schema for further filtering of in-network logic.
Additionally, the in_network_ids and out_of_network_ids fields were deprecated from the response and replaced with the providers list. The response schema returns benefits as strings.
v6: Previous supported version.
Searches ACA-compliant Major Medical plans available in a given location for either the individual or small group market. Returns plan details, premiums, and benefits. The same endpoint supports both markets — set market to individual for family-level quoting (outside of an employer context) or small_group for off-cycle plan availability checks in a specific zip and county.
The response includes plan-level premiums and, for individual-market quotes, per-applicant premium breakdowns when applicants are supplied. Federal premium tax credits and state-funded subsidies (currently Vermont Premium Assistance and New Jersey Health Plan Savings) are applied automatically when household_income and household_size are provided; the resulting subsidy amounts are reflected in each plan's premium_subsidized.
Provider participation and drug formulary coverage can be evaluated inline with the quote — see the Shop by Doc and Shop by Drug sections below.
Both the IFP Medical and Small Group Medical quoting workflows support evaluation of provider network participation within a single API call. This pattern — quoting plans alongside doctor participation — is commonly referred to as "Shop by Doc". Because quoting and participation evaluation happen in one request, the workflow is two steps end-to-end:
providers array on this endpoint. The response will return participation data for each provider against each quoted plan's network.Request shape. Each entry in the providers array is an object with an npi and an optional address_id. Multiple addresses for the same provider should be passed as separate objects:
"providers": [
{ "npi": 1538670880, "address_id": "2bd18d55-4bc6-3a66-aeef-fae893d5d8c0" },
{ "npi": 1234567890 }
]
Address ID behavior.
address_id): the provider is evaluated for participation at any of their practice locations. The response will return all in-network addresses for that provider on each plan.address_id: participation is evaluated only against the specific address. The response addresses array will be filtered to just that address when in-network, or empty when not.Validation. NPIs and address IDs are not validated against the IdeonSelect dataset on submission. If an npi or address_id is unknown or invalid, the quote still succeeds and the provider is reported as out-of-network. We recommend a maximum of 50 unique npi / address_id combinations per quote request.
Response shape. When providers is included in the request, each plan in the response carries a providers array. Each entry contains:
npi — the provider NPI from the request.in_network — boolean. With no address_id, true if the provider participates at any address. With an address_id, true only if the provider participates at that address.addresses — array of in-network address objects (city, state, street, zip, lat/lng, phone, fax, pcp, accepting_new_patients, etc.). Filtered to the requested address_id when one was provided; empty when the provider is out-of-network or no qualifying addresses exist.Out-of-network example:
{
"id": "12345NY0000001",
"name": "Blue Shield Inspire (HMO)",
"premium": 500.0,
"providers": [
{ "npi": 1538670880, "in_network": false, "addresses": [] }
]
}
In-network responses use the same shape, with the addresses array populated with the provider's qualifying practice locations.
The IFP Medical quoting workflow supports evaluation of prescription drug formulary coverage within the quote. This pattern is commonly referred to as "Shop by Drug" — surfacing available plans alongside how each plan covers the specific drugs the end user takes. Like Shop by Doc, this is a two-step workflow:
drug_packages array on this endpoint. The response will return formulary coverage details for each drug against each quoted plan.Request shape. Each entry in drug_packages references a drug by NDC Package Code (id) or Med ID (med_id):
"drug_packages": [
{ "id": "01002-1200-11" },
{ "med_id": "12345" }
]
Response shape. When drug_packages is included in the request, the top-level response carries a coverages array. Each entry pairs one requested drug with one quoted plan and includes:
drug_package_id — the NDC Package Code or Med ID from the request.plan_id — the plan HIOS ID this coverage applies to.tier — the formulary tier (see enum list on the tier property).prior_authorization — whether the plan requires prior authorization for this drug.quantity_limit — whether the plan applies a quantity limit.step_therapy — whether step therapy is required.Coverage rows are produced for the cross-product of every requested drug and every quoted plan, so the array length grows with both. We recommend constraining per_page and filtering plans where possible when querying many drugs at once.
Some carriers require end users to answer qualification questions before their plans can be presented in a quote. To unlock those plans, pass the issuer's HIOS Issuer ID in issuer_qualifications_met after the end user has completed the carrier's questionnaire — this confirms to Ideon that the user is eligible to see plans gated behind that issuer.
Plans returned under an issuer qualification carry a -94 suffix in their id. For the current list of issuers with qualification requirements and details on the questions involved, contact [email protected].
| page | integer Example: page=1 Page of paginated response |
| per_page | integer <= 50 Example: per_page=1 Responses per page |
| Accept-Version | string Example: v6 API version requested |
| fips_code required | string Example: "36081" 5-digit county FIPS code for the search location. Required alongside zip_code because a single ZIP may span multiple counties with different plan availability. | ||||||
| market required | string Enum: "shop" "individual" "small_group" Example: "individual" Market to search. | ||||||
| zip_code required | string Example: "11423" 5-digit ZIP code for the search location. Determines rating area and service area eligibility. | ||||||
Array of objects (RequestPlanFindApplicant) Example: [{"age":21,"child":false,"smoker":false}] Applicants for desired plans. | |||||||
Array
| |||||||
Array of objects (RequestPlanFindDrugPackage) Example: [{"id":"01002-1200-11"}] National Drug Code Package Id | |||||||
Array
| |||||||
| enrollment_date | string <date> Example: "2026-01-01" Date of enrollment | ||||||
| external_id | string Example: "some-unique-id" Unique identifier for the member | ||||||
| group_id | string Example: "uaLcmyru" Foreign key for the group to which this member belongs | ||||||
| household_income | integer Example: "55000" Total household income. | ||||||
| household_size | integer Example: "1" Number of people living in household. | ||||||
| ids | Array of integers List of plan IDs to filter by | ||||||
| issuer_qualifications_met | Array of strings Example: ["12345"] A list of HIOS Issuer IDs with specific plan eligibility qualifications | ||||||
| page | integer Example: "1" Selected page of paginated response. | ||||||
| per_page | integer Example: "20" Results per page of response. | ||||||
Array of objects (RequestPlanFindProvider) Example: [{"address_id":"589c907f-28c2-3d14-8916-1144a5191ba2","npi":1234567890}] List of providers to search for. | |||||||
Array
| |||||||
| sort | string Example: "premium:asc" Sort responses by plan field. | ||||||
| X-RateLimit-Limit | integer Maximum requests allowed in the current rate-limit window (per minute) |
| X-RateLimit-Remaining | integer Requests remaining in the current rate-limit window |
| Total | integer Example: "150" Total number of records matching the query across all pages |
| Per-Page | integer Example: "25" Number of records returned per page |
| Page | integer Example: "1" Current page number |
| Link | string Example: "<https://api.ideonapi.com/networks?page=2&per_page=25>; rel=\"next\", <https://api.ideonapi.com/networks?page=1&per_page=25>; rel=\"first\"" RFC-5988 pagination links containing |
Array of objects (DrugCoverage) Example: [{"drug_package_id":"01002-1200-11","plan_id":"88582NY0230001","prior_authorization":true,"quantity_limit":true,"step_therapy":true,"tier":"generic"}] Coverages associated with the plan. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Array
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
object (Meta) Example: {"total":1} | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Array of objects (V8_MedicalPlan2018SearchEntity) Example: [{"abortion_rider":false,"actuarial_value":80,"adult_dental":true,"age29_rider":false,"ambulance":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"audience":"small_group","benefits_summary_url":"https://d2ed110nmrd591.cloudfront.net/blobs/i6XqimNu7KpSbJjKU5HeTSp1.pdf","carrier":{"id":"bae1d0e1-80dc-48f4-918d-6c492340cc1c","issuer_id":"A0027","logo_url":"https://d1hm12jr612u3r.cloudfront.net/images/carriers/174/1438891372/thumb.png?1438891372","name":"Guardian"},"carrier_disclaimers":"See Summary of Benefits and Coverage (SBC) for more details.","carrier_name":"Aetna","child_dental":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"child_eye_exam":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"child_eyewear":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"chiropractic_services":false,"diagnostic_test":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"display_name":"Aetna PPO 20/5000","dp_rider":true,"drug_formulary_url":"https://www.emblemhealth.com/content/dam/emblemhealth/pdfs/resources/formularies/2020_Small-Group_Formulary.pdf","durable_medical_equipment":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"effective_date":"2026-01-01","embedded_deductible":"non_embedded","emergency_room":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"estimated_actuarial_value":80,"expiration_date":"2026-12-31","family_drug_deductible":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"family_drug_moop":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"family_medical_deductible":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"family_medical_moop":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"formulary":{"id":123,"name":"Aetna 3 Tier"},"fp_rider":true,"gated":false,"generic_drugs":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"habilitation_services":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"hios_issuer_id":"88582","home_health_care":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"hospice_service":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"hsa_eligible":false,"id":"88582NY0230001","identifiers":[{"type":"contract_id","value":"abc123"}],"imaging":{"in_network":"30% after deductible","limit":"1 time(s) per year","out_of_network":"50% after deductible"},"imaging_center":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"imaging_physician":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"individual_drug_deductible":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"individual_drug_moop":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"individual_medical_deductible":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"individual_medical_moop":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"infertility_treatment_rider":false,"inpatient_birth":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"inpatient_birth_physician":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"inpatient_facility":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"inpatient_mental_health":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"inpatient_physician":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"inpatient_substance":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"lab_test":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"level":"silver","logo_url":"https://d1hm12jr612u3r.cloudfront.net/images/carriers/174/1438891372/thumb.png?1438891372","mail_order_rx":1.5,"name":"Select Care Silver, Age 29 Rider","network_ids":[1,3],"network_size":5000,"networks":[{"id":1,"name":"Open Choice","provider_directory_url":"https://www.example.com/find-a-doctor"}],"non_preferred_brand_drugs":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"nonpreferred_generic_drug_share":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"nonpreferred_specialty_drug_share":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"off_market":false,"on_market":true,"out_of_network_coverage":false,"outpatient_ambulatory_care_center":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"outpatient_facility":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"outpatient_mental_health":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"outpatient_physician":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"outpatient_substance":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"plan_ancestors":[{"id":"88582NY0230001","year":2019}],"plan_calendar":"calendar_year","plan_coinsurance":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"plan_documents":[{"type":"summary_of_benefits_and_coverage","url":"https://www.example.com/summary_of_benefits_and_coverage.pdf"}],"plan_market":"on_market","plan_type":"HMO","postnatal_care":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"preferred_brand_drugs":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"premium":533.24,"premium_source":"carrier","premium_subsidized":321.5,"premiums_by_applicant":[{"age":21,"child":false}],"prenatal_care":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"prenatal_postnatal_care":{"in_network":"30% after deductible","limit":"1 time(s) per year","out_of_network":"50% after deductible"},"preventative_care":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"primary_care_physician":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"product_line":"medical","providers":[{"in_network":true,"npi":1234567890}],"quoted_via_carrier_api":false,"ratings":[{"type":"cms_quality_ratings_overall","value":"3"}],"rehabilitation_services":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"sbc_name":"Aetna PPO 20/5000","service_area_id":"11234-2016-WI01-individual","skilled_nursing":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"skilled_nursing_facility_365":"unlimited","source":"carrier","specialist":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"specialty_drugs":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"standardized_plan":false,"telemedicine":false,"type":"ACAPlan2018","updated_at":"2026-01-01T00:00:00.000Z","urgent_care":{"in_network":"30% after deductible","out_of_network":"50% after deductible"}}] Medical plan search results | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Array
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{- "applicants": [
- {
- "age": 21,
- "child": false,
- "smoker": false
}
], - "drug_packages": [
- {
- "id": "01002-1200-11"
}
], - "enrollment_date": "2026-01-01",
- "external_id": "some-unique-id",
- "fips_code": "36081",
- "group_id": "uaLcmyru",
- "household_income": 55000,
- "household_size": 1,
- "issuer_qualifications_met": [
- "12345"
], - "market": "individual",
- "page": 1,
- "per_page": 20,
- "providers": [
- {
- "address_id": "589c907f-28c2-3d14-8916-1144a5191ba2",
- "npi": 1234567890
}
], - "sort": "premium:asc",
- "zip_code": "11423"
}{- "coverages": [
- {
- "drug_package_id": "01002-1200-11",
- "plan_id": "88582NY0230001",
- "prior_authorization": true,
- "quantity_limit": true,
- "step_therapy": true,
- "tier": "generic"
}
], - "meta": {
- "total": 1
}, - "plans": [
- {
- "abortion_rider": false,
- "actuarial_value": 80,
- "adult_dental": true,
- "age29_rider": false,
- "ambulance": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "audience": "small_group",
- "carrier_disclaimers": "See Summary of Benefits and Coverage (SBC) for more details.",
- "carrier_name": "Aetna",
- "child_dental": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "child_eye_exam": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "child_eyewear": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "chiropractic_services": false,
- "diagnostic_test": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "display_name": "Aetna PPO 20/5000",
- "dp_rider": true,
- "durable_medical_equipment": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "effective_date": "2026-01-01",
- "embedded_deductible": "non_embedded",
- "emergency_room": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "estimated_actuarial_value": 80,
- "expiration_date": "2026-12-31",
- "family_drug_deductible": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "family_drug_moop": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "family_medical_deductible": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "family_medical_moop": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "fp_rider": true,
- "gated": false,
- "generic_drugs": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "habilitation_services": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "hios_issuer_id": "88582",
- "home_health_care": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "hospice_service": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "hsa_eligible": false,
- "id": "88582NY0230001",
- "imaging_center": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "imaging_physician": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "individual_drug_deductible": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "individual_drug_moop": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "individual_medical_deductible": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "individual_medical_moop": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "infertility_treatment_rider": false,
- "inpatient_birth": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "inpatient_birth_physician": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "inpatient_facility": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "inpatient_mental_health": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "inpatient_physician": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "inpatient_substance": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "lab_test": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "level": "silver",
- "mail_order_rx": 1.5,
- "name": "Select Care Silver, Age 29 Rider",
- "network_ids": [
- 1,
- 3
], - "network_size": 5000,
- "non_preferred_brand_drugs": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "nonpreferred_generic_drug_share": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "nonpreferred_specialty_drug_share": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "off_market": false,
- "on_market": true,
- "out_of_network_coverage": false,
- "outpatient_ambulatory_care_center": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "outpatient_facility": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "outpatient_mental_health": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "outpatient_physician": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "outpatient_substance": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "plan_calendar": "calendar_year",
- "plan_coinsurance": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "plan_market": "on_market",
- "plan_type": "HMO",
- "postnatal_care": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "preferred_brand_drugs": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "premium": 533.24,
- "premium_source": "carrier",
- "premium_subsidized": 321.5,
- "prenatal_care": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "preventative_care": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "primary_care_physician": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "product_line": "medical",
- "quoted_via_carrier_api": false,
- "rehabilitation_services": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "sbc_name": "Aetna PPO 20/5000",
- "service_area_id": "11234-2016-WI01-individual",
- "skilled_nursing": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "skilled_nursing_facility_365": "unlimited",
- "source": "carrier",
- "specialist": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "specialty_drugs": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "standardized_plan": false,
- "telemedicine": false,
- "type": "ACAPlan2018",
- "updated_at": "2026-01-01T00:00:00.000Z",
- "urgent_care": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}
}
]
}v6: The documentation for this endpoint references this latest available version.
Identifies year-over-year changes for a list of Major Medical plans. Given a list of plan HIOS IDs and a target plan year, returns each plan's continuation status (renewing, terminating, replaced) and the corresponding new plan ID where applicable.
Used in renewal workflows — given a member's current plan, determine whether that plan is still available next year and, if not, which plan replaces it. The output feeds quoting decisions for groups and individuals at open enrollment.
For automated workflows, cache plan inventory via Bulk Exports. These Show and Search endpoints are best suited to ad-hoc lookups — for example, surfacing plan details in response to a specific user action, or refreshing a single plan record. For high-volume or scheduled access (powering search UIs, plan comparison tools, member portals), pull the Plans dataset from Bulk Exports on a daily or weekly cadence and join against the cached benefits client-side. This pattern dramatically reduces latency on real-time flows and removes API rate limit pressure.
| page | integer Example: page=1 Page of paginated response |
| per_page | integer <= 100 Example: per_page=1 Responses per page |
| Accept-Version | string Example: v6 API version requested |
| end_date | string <date> Example: "2026-12-31" The date from which to end looking for changes. |
| market | string Example: "small_group" The market for which the plans are available. |
| quarter | string Example: "1" The quarter when the plans are available. |
| start_date | string <date> Example: "2026-01-01" The date from which to start looking for changes. |
| state_code | string Example: "CA" The state where the plans are available. |
| year | string Example: "2020" The year when the plans are available. |
| X-RateLimit-Limit | integer Maximum requests allowed in the current rate-limit window (per minute) |
| X-RateLimit-Remaining | integer Requests remaining in the current rate-limit window |
| Total | integer Example: "150" Total number of records matching the query across all pages |
| Per-Page | integer Example: "25" Number of records returned per page |
| Page | integer Example: "1" Current page number |
| Link | string Example: "<https://api.ideonapi.com/networks?page=2&per_page=25>; rel=\"next\", <https://api.ideonapi.com/networks?page=1&per_page=25>; rel=\"first\"" RFC-5988 pagination links containing |
object (Meta) Example: {"total":1} | |||||
| |||||
Array of objects (PlanChanges) Example: [{"changes":[{"timestamp":"2026-10-01T18:53:12.684Z","type":"add"}],"id":"11111NY1111111"}] List of Plan Changes | |||||
Array
| |||||
{- "end_date": "2026-12-31",
- "market": "small_group",
- "quarter": "1",
- "start_date": "2026-01-01",
- "state_code": "CA",
- "year": "2020"
}{- "meta": {
- "total": 1
}, - "plans": [
- {
- "id": "11111NY1111111"
}
]
}v6: The documentation for this endpoint references this latest available version.
Returns the full record for a single Medicare Advantage plan. Accepts either Ideon's internal plan id or the CMS Medicare Contract Code ID (H4045-001-0 format).
A note on identifiers. Medicare Advantage plans carry two identifiers — id (Ideon-internal, unique across product lines) and medicare_plan_id (CMS Medicare Contract Code, composed of carrier contract/bid ID, plan ID, and segment ID; unique to the plan year). Either can be supplied here.
For searching available Medicare Advantage plans by location, use Search Medicare Advantage Plans.
For automated workflows, cache plan inventory via Bulk Exports. These Show and Search endpoints are best suited to ad-hoc lookups — for example, surfacing plan details in response to a specific user action, or refreshing a single plan record. For high-volume or scheduled access (powering search UIs, plan comparison tools, member portals), pull the Plans dataset from Bulk Exports on a daily or weekly cadence and join against the cached benefits client-side. This pattern dramatically reduces latency on real-time flows and removes API rate limit pressure.
| id required | string Example: H4045-001-0 ID of the Plan |
| year | integer Example: year=2026 Plan year (defaults to current year) |
| select | string Example: select=id,name,carrier_name Comma-separated list of response fields to include, enabling partial responses. Use dot notation for nested fields. Example: id,name,carrier_name |
| Accept-Version | string Enum: "v6" "v7" "v8" "v9" Example: v8 API version requested (v6, v7, v8, or v9) |
| X-RateLimit-Limit | integer Maximum requests allowed in the current rate-limit window (per minute) |
| X-RateLimit-Remaining | integer Requests remaining in the current rate-limit window |
| Cache-Control | string Example: "public, max-age=3600" Caching directives for static plan data. Plan data is cacheable for up to 1 hour; quote and rate data is not cached. |
| ETag | string Example: "\"a1b2c3d4e5f6\"" Entity tag for cache validation. Allows conditional requests using If-None-Match. |
object (MedicareAdvantagePlan) Example: {"audience":"individual","benefits":{"acupuncture":"In-Network: $300 / Out-of-Network: $300 after deductible","ambulance":"In-Network: $300 / Out-of-Network: $300 after deductible","catastrophic_brand_name":"In-Network: 20% / Out-of-Network: 40% after deductible","catastrophic_excluded":"In-Network: 20% / Out-of-Network: 40% after deductible","catastrophic_generic":"In-Network: 20% / Out-of-Network: 40% after deductible","chemotherapy_drug":"In-Network: 20% / Out-of-Network: 40% after deductible","deductible_annual_drug":"In-Network: $0 / Out-of-Network: unknown","deductible_annual_medical":"In-Network: $0 / Out-of-Network: unknown","dental_cleaning":"In-Network: $0 / Out-of-Network: Not Applicable","dental_diagnostic_services":"In-Network: 50% / Out-of-Network: 40% after deductible","dental_endodontics":"In-Network: 50% / Out-of-Network: 40% after deductible","dental_exam":"In-Network: $0 / Out-of-Network: Not Applicable","dental_extraction":"In-Network: $0 / Out-of-Network: Not Applicable","dental_fluoride_treatment":"In-Network: 100% / Out-of-Network: 100%","dental_medicare_covered_benefits":"In-Network: $40 / Out-of-Network: 40% after deductible","dental_non_routine_services":"In-Network: 100% / Out-of-Network: 100%","dental_periodontics":"In-Network: 100% / Out-of-Network: 100%","dental_prosthodontics_and_other":"In-Network: 100% / Out-of-Network: 100%","dental_restorative_services":"In-Network: 100% / Out-of-Network: 100%","dental_x_rays":"In-Network: $0 / Out-of-Network: Not Applicable","diabetes_management_monitoring_supplies":"In-Network: 0%-20% / Out-of-Network: 0%-20% after deductible","diagnostic_lab_service":"In-Network: $40 / Out-of-Network: 40% after deductible","diagnostic_outpatient_x_rays":"In-Network: $40 / Out-of-Network: 40% after deductible","diagnostic_radiology":"In-Network: 20% / Out-of-Network: 40% after deductible","diagnostic_test_and_procedures":"In-Network: 20% / Out-of-Network: 40% after deductible","diagnostic_therapeutic_radiology":"In-Network: 20% / Out-of-Network: 40% after deductible","doctor_visit_primary":"In-Network: 20% / Out-of-Network: 40% after deductible","doctor_visit_specialist":"In-Network: 20% / Out-of-Network: 40% after deductible","durable_medical_equipment":"In-Network: 20% / Out-of-Network: 40% after deductible","emergency_care":"In-Network: 20% / Out-of-Network: 40% after deductible","gap_brand_name":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_generic":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_generic_preferred_mail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_generic_preferred_mail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_generic_preferred_retail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_generic_preferred_retail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_generic_standard_mail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_generic_standard_mail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_generic_standard_retail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_generic_standard_retail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_non_preferred_preferred_mail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_non_preferred_preferred_mail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_non_preferred_preferred_retail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_non_preferred_preferred_retail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_non_preferred_standard_mail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_non_preferred_standard_mail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_non_preferred_standard_retail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_non_preferred_standard_retail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_preferred_brand_preferred_mail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_preferred_brand_preferred_mail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_preferred_brand_preferred_retail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_preferred_brand_preferred_retail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_preferred_brand_standard_mail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_preferred_brand_standard_mail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_preferred_brand_standard_retail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_preferred_brand_standard_retail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_preferred_generic_preferred_mail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_preferred_generic_preferred_mail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_preferred_generic_preferred_retail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_preferred_generic_preferred_retail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_preferred_generic_standard_mail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_preferred_generic_standard_mail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_preferred_generic_standard_retail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_preferred_generic_standard_retail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_specialty_preferred_mail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_specialty_preferred_mail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_specialty_preferred_retail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_specialty_preferred_retail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_specialty_standard_mail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_specialty_standard_mail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_specialty_standard_retail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_specialty_standard_retail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","hearing_aids":"In-Network: 20% / Out-of-Network: 40% after deductible","hearing_aids_fitting_and_evaluation":"In-Network: 20% / Out-of-Network: 40% after deductible","hearing_exam":"In-Network: 20% / Out-of-Network: 40% after deductible","hearing_medicare_covered_benefits":"In-Network: 20% / Out-of-Network: 40% after deductible","home_health_care":"In-Network: 20% / Out-of-Network: 40% after deductible","home_safety_devices_and_modifications":"In-Network: 20% / Out-of-Network: 40% after deductible","hospice":"In-Network: 20% / Out-of-Network: 40% after deductible","in_home_support_services":"In-Network: 20% / Out-of-Network: 40% after deductible","initial_generic_preferred_mail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_generic_preferred_mail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_generic_preferred_retail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_generic_preferred_retail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_generic_standard_mail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_generic_standard_mail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_generic_standard_retail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_generic_standard_retail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_non_preferred_preferred_mail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_non_preferred_preferred_mail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_non_preferred_preferred_retail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_non_preferred_preferred_retail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_non_preferred_standard_mail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_non_preferred_standard_mail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_non_preferred_standard_retail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_non_preferred_standard_retail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_preferred_brand_preferred_mail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_preferred_brand_preferred_mail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_preferred_brand_preferred_retail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_preferred_brand_preferred_retail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_preferred_brand_standard_mail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_preferred_brand_standard_mail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_preferred_brand_standard_retail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_preferred_brand_standard_retail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_preferred_generic_preferred_mail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_preferred_generic_preferred_mail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_preferred_generic_preferred_retail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_preferred_generic_preferred_retail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_preferred_generic_standard_mail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_preferred_generic_standard_mail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_preferred_generic_standard_retail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_preferred_generic_standard_retail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_specialty_preferred_mail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_specialty_preferred_mail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_specialty_preferred_retail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_specialty_preferred_retail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_specialty_standard_mail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_specialty_standard_mail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_specialty_standard_retail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_specialty_standard_retail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","inpatient_hospital":"In-Network: 20% / Out-of-Network: 40% after deductible","meals":"In-Network: 20% / Out-of-Network: 40% after deductible","medical_chiropractic_services":"In-Network: 20% / Out-of-Network: 40% after deductible","medical_moop":"In-Network: $6,700 / Out-of-Network: $9,500","mental_health_inpatient_visit":"In-Network: 20% / Out-of-Network: 40% after deductible","mental_health_outpatient_group_therapy":"In-Network: 20% / Out-of-Network: 40% after deductible","mental_health_outpatient_individual_therapy":"In-Network: 20% / Out-of-Network: 40% after deductible","other_part_b_drug":"In-Network: 20% / Out-of-Network: 40% after deductible","outpatient_hospital":"In-Network: 20% / Out-of-Network: 40% after deductible","over_the_counter":"In-Network: 20% / Out-of-Network: 40% after deductible","personal_emergency_response_system":"In-Network: 20% / Out-of-Network: 40% after deductible","physical_therapy":"In-Network: 20% / Out-of-Network: 40% after deductible","podiatry_medicare_covered_benefits":"In-Network: 20% / Out-of-Network: 40% after deductible","podiatry_routine_footcare":"In-Network: 20% / Out-of-Network: 40% after deductible","preventive_care":"In-Network: 20% / Out-of-Network: 40% after deductible","prosthetics":"In-Network: 20% / Out-of-Network: 40% after deductible","rehabilitation_occupational_therapy":"In-Network: 20% / Out-of-Network: 40% after deductible","remote_access_technology":"In-Network: 20% / Out-of-Network: 40% after deductible","renal_dialysis":"In-Network: 20% / Out-of-Network: 40% after deductible","routine_transportation":"In-Network: 20% / Out-of-Network: 40% after deductible","skilled_nursing_facility":"In-Network: 20% / Out-of-Network: 40% after deductible","telehealth":"In-Network: 20% / Out-of-Network: 40% after deductible","urgent_care":"In-Network: 20% / Out-of-Network: 40% after deductible","vision_contact_lenses":"In-Network: 20% / Out-of-Network: 40% after deductible","vision_exam":"In-Network: 20% / Out-of-Network: 40% after deductible","vision_eyeglass_frames_and_lenses":"In-Network: 20% / Out-of-Network: 40% after deductible","vision_medicare_covered_benefits":"In-Network: 20% / Out-of-Network: 40% after deductible","vision_upgrades":"In-Network: 20% / Out-of-Network: 40% after deductible","wellness_program":"In-Network: 20% / Out-of-Network: 40% after deductible","worldwide_emergency":"In-Network: 20% / Out-of-Network: 40% after deductible"},"benefits_summary_url":"http://www.emblemhealth.com/~/media/Files/PDF/HIXHub/BenefitSummary_SelectCareSilver.pdf","carrier":{"id":"bae1d0e1-80dc-48f4-918d-6c492340cc1c","issuer_id":"A0027","logo_url":"https://d1hm12jr612u3r.cloudfront.net/images/carriers/174/1438891372/thumb.png?1438891372","name":"Guardian"},"carrier_name":"EmblemHealth","customer_service_phone_member":"(800)282-5366","customer_service_phone_non_member":"(855)338-7027","id":"uaLcmyru","identifiers":[{"type":"contract_id","value":"abc123"}],"logo_url":"https://d1hm12jr612u3r.cloudfront.net/images/carriers/174/1438891372/thumb.png?1438891372","name":"Aetna Medicare Choice Plan (PPO)","network_size":5000,"networks":[{"id":1,"name":"Open Choice","provider_directory_url":"https://www.example.com/find-a-doctor"}],"part_b_premium_reduction":30.33,"plan_documents":[{"type":"summary_of_benefits_and_coverage","url":"https://www.example.com/summary_of_benefits_and_coverage.pdf"}],"plan_type":"HMO","premium_drug":533.24,"premium_health":533.24,"product_line":"medical","service_area_id":"11234-2016-WI01-individual","source":"carrier","stand_alone_part_d":false,"star_rating_drug_plan":4,"star_rating_health_plan":4,"star_rating_overall":4,"supplemental_options":[{"benefits":["Preventive Dental","Comprehensive Dental"],"deductible":50,"id":1,"moop":1000,"name":"Aetna Medicare Advantage PPO Dental Plan","premium":23}],"year":"2019"} | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{- "medicare_advantage_plan": {
- "audience": "individual",
- "benefits": {
- "acupuncture": "In-Network: $300 / Out-of-Network: $300 after deductible",
- "ambulance": "In-Network: $300 / Out-of-Network: $300 after deductible",
- "catastrophic_brand_name": "In-Network: 20% / Out-of-Network: 40% after deductible",
- "catastrophic_excluded": "In-Network: 20% / Out-of-Network: 40% after deductible",
- "catastrophic_generic": "In-Network: 20% / Out-of-Network: 40% after deductible",
- "chemotherapy_drug": "In-Network: 20% / Out-of-Network: 40% after deductible",
- "deductible_annual_drug": "In-Network: $0 / Out-of-Network: unknown",
- "deductible_annual_medical": "In-Network: $0 / Out-of-Network: unknown",
- "dental_cleaning": "In-Network: $0 / Out-of-Network: Not Applicable",
- "dental_diagnostic_services": "In-Network: 50% / Out-of-Network: 40% after deductible",
- "dental_endodontics": "In-Network: 50% / Out-of-Network: 40% after deductible",
- "dental_exam": "In-Network: $0 / Out-of-Network: Not Applicable",
- "dental_extraction": "In-Network: $0 / Out-of-Network: Not Applicable",
- "dental_fluoride_treatment": "In-Network: 100% / Out-of-Network: 100%",
- "dental_medicare_covered_benefits": "In-Network: $40 / Out-of-Network: 40% after deductible",
- "dental_non_routine_services": "In-Network: 100% / Out-of-Network: 100%",
- "dental_periodontics": "In-Network: 100% / Out-of-Network: 100%",
- "dental_prosthodontics_and_other": "In-Network: 100% / Out-of-Network: 100%",
- "dental_restorative_services": "In-Network: 100% / Out-of-Network: 100%",
- "dental_x_rays": "In-Network: $0 / Out-of-Network: Not Applicable",
- "diabetes_management_monitoring_supplies": "In-Network: 0%-20% / Out-of-Network: 0%-20% after deductible",
- "diagnostic_lab_service": "In-Network: $40 / Out-of-Network: 40% after deductible",
- "diagnostic_outpatient_x_rays": "In-Network: $40 / Out-of-Network: 40% after deductible",
- "diagnostic_radiology": "In-Network: 20% / Out-of-Network: 40% after deductible",
- "diagnostic_test_and_procedures": "In-Network: 20% / Out-of-Network: 40% after deductible",
- "diagnostic_therapeutic_radiology": "In-Network: 20% / Out-of-Network: 40% after deductible",
- "doctor_visit_primary": "In-Network: 20% / Out-of-Network: 40% after deductible",
- "doctor_visit_specialist": "In-Network: 20% / Out-of-Network: 40% after deductible",
- "durable_medical_equipment": "In-Network: 20% / Out-of-Network: 40% after deductible",
- "emergency_care": "In-Network: 20% / Out-of-Network: 40% after deductible",
- "gap_brand_name": "In-Network: $40 / Out-of-Network: 40% after deductible",
- "gap_generic": "In-Network: $40 / Out-of-Network: 40% after deductible",
- "gap_generic_preferred_mail_1_month": "In-Network: $40 / Out-of-Network: 40% after deductible",
- "gap_generic_preferred_mail_3_month": "In-Network: $40 / Out-of-Network: 40% after deductible",
- "gap_generic_preferred_retail_1_month": "In-Network: $40 / Out-of-Network: 40% after deductible",
- "gap_generic_preferred_retail_3_month": "In-Network: $40 / Out-of-Network: 40% after deductible",
- "gap_generic_standard_mail_1_month": "In-Network: $40 / Out-of-Network: 40% after deductible",
- "gap_generic_standard_mail_3_month": "In-Network: $40 / Out-of-Network: 40% after deductible",
- "gap_generic_standard_retail_1_month": "In-Network: $40 / Out-of-Network: 40% after deductible",
- "gap_generic_standard_retail_3_month": "In-Network: $40 / Out-of-Network: 40% after deductible",
- "gap_non_preferred_preferred_mail_1_month": "In-Network: $40 / Out-of-Network: 40% after deductible",
- "gap_non_preferred_preferred_mail_3_month": "In-Network: $40 / Out-of-Network: 40% after deductible",
- "gap_non_preferred_preferred_retail_1_month": "In-Network: $40 / Out-of-Network: 40% after deductible",
- "gap_non_preferred_preferred_retail_3_month": "In-Network: $40 / Out-of-Network: 40% after deductible",
- "gap_non_preferred_standard_mail_1_month": "In-Network: $40 / Out-of-Network: 40% after deductible",
- "gap_non_preferred_standard_mail_3_month": "In-Network: $40 / Out-of-Network: 40% after deductible",
- "gap_non_preferred_standard_retail_1_month": "In-Network: $40 / Out-of-Network: 40% after deductible",
- "gap_non_preferred_standard_retail_3_month": "In-Network: $40 / Out-of-Network: 40% after deductible",
- "gap_preferred_brand_preferred_mail_1_month": "In-Network: $40 / Out-of-Network: 40% after deductible",
- "gap_preferred_brand_preferred_mail_3_month": "In-Network: $40 / Out-of-Network: 40% after deductible",
- "gap_preferred_brand_preferred_retail_1_month": "In-Network: $40 / Out-of-Network: 40% after deductible",
- "gap_preferred_brand_preferred_retail_3_month": "In-Network: $40 / Out-of-Network: 40% after deductible",
- "gap_preferred_brand_standard_mail_1_month": "In-Network: $40 / Out-of-Network: 40% after deductible",
- "gap_preferred_brand_standard_mail_3_month": "In-Network: $40 / Out-of-Network: 40% after deductible",
- "gap_preferred_brand_standard_retail_1_month": "In-Network: $40 / Out-of-Network: 40% after deductible",
- "gap_preferred_brand_standard_retail_3_month": "In-Network: $40 / Out-of-Network: 40% after deductible",
- "gap_preferred_generic_preferred_mail_1_month": "In-Network: $40 / Out-of-Network: 40% after deductible",
- "gap_preferred_generic_preferred_mail_3_month": "In-Network: $40 / Out-of-Network: 40% after deductible",
- "gap_preferred_generic_preferred_retail_1_month": "In-Network: $40 / Out-of-Network: 40% after deductible",
- "gap_preferred_generic_preferred_retail_3_month": "In-Network: $40 / Out-of-Network: 40% after deductible",
- "gap_preferred_generic_standard_mail_1_month": "In-Network: $40 / Out-of-Network: 40% after deductible",
- "gap_preferred_generic_standard_mail_3_month": "In-Network: $40 / Out-of-Network: 40% after deductible",
- "gap_preferred_generic_standard_retail_1_month": "In-Network: $40 / Out-of-Network: 40% after deductible",
- "gap_preferred_generic_standard_retail_3_month": "In-Network: $40 / Out-of-Network: 40% after deductible",
- "gap_specialty_preferred_mail_1_month": "In-Network: $40 / Out-of-Network: 40% after deductible",
- "gap_specialty_preferred_mail_3_month": "In-Network: $40 / Out-of-Network: 40% after deductible",
- "gap_specialty_preferred_retail_1_month": "In-Network: $40 / Out-of-Network: 40% after deductible",
- "gap_specialty_preferred_retail_3_month": "In-Network: $40 / Out-of-Network: 40% after deductible",
- "gap_specialty_standard_mail_1_month": "In-Network: $40 / Out-of-Network: 40% after deductible",
- "gap_specialty_standard_mail_3_month": "In-Network: $40 / Out-of-Network: 40% after deductible",
- "gap_specialty_standard_retail_1_month": "In-Network: $40 / Out-of-Network: 40% after deductible",
- "gap_specialty_standard_retail_3_month": "In-Network: $40 / Out-of-Network: 40% after deductible",
- "hearing_aids": "In-Network: 20% / Out-of-Network: 40% after deductible",
- "hearing_aids_fitting_and_evaluation": "In-Network: 20% / Out-of-Network: 40% after deductible",
- "hearing_exam": "In-Network: 20% / Out-of-Network: 40% after deductible",
- "hearing_medicare_covered_benefits": "In-Network: 20% / Out-of-Network: 40% after deductible",
- "home_health_care": "In-Network: 20% / Out-of-Network: 40% after deductible",
- "home_safety_devices_and_modifications": "In-Network: 20% / Out-of-Network: 40% after deductible",
- "hospice": "In-Network: 20% / Out-of-Network: 40% after deductible",
- "in_home_support_services": "In-Network: 20% / Out-of-Network: 40% after deductible",
- "initial_generic_preferred_mail_1_month": "In-Network: $40 / Out-of-Network: 40% after deductible",
- "initial_generic_preferred_mail_3_month": "In-Network: $40 / Out-of-Network: 40% after deductible",
- "initial_generic_preferred_retail_1_month": "In-Network: $40 / Out-of-Network: 40% after deductible",
- "initial_generic_preferred_retail_3_month": "In-Network: $40 / Out-of-Network: 40% after deductible",
- "initial_generic_standard_mail_1_month": "In-Network: $40 / Out-of-Network: 40% after deductible",
- "initial_generic_standard_mail_3_month": "In-Network: $40 / Out-of-Network: 40% after deductible",
- "initial_generic_standard_retail_1_month": "In-Network: $40 / Out-of-Network: 40% after deductible",
- "initial_generic_standard_retail_3_month": "In-Network: $40 / Out-of-Network: 40% after deductible",
- "initial_non_preferred_preferred_mail_1_month": "In-Network: $40 / Out-of-Network: 40% after deductible",
- "initial_non_preferred_preferred_mail_3_month": "In-Network: $40 / Out-of-Network: 40% after deductible",
- "initial_non_preferred_preferred_retail_1_month": "In-Network: $40 / Out-of-Network: 40% after deductible",
- "initial_non_preferred_preferred_retail_3_month": "In-Network: $40 / Out-of-Network: 40% after deductible",
- "initial_non_preferred_standard_mail_1_month": "In-Network: $40 / Out-of-Network: 40% after deductible",
- "initial_non_preferred_standard_mail_3_month": "In-Network: $40 / Out-of-Network: 40% after deductible",
- "initial_non_preferred_standard_retail_1_month": "In-Network: $40 / Out-of-Network: 40% after deductible",
- "initial_non_preferred_standard_retail_3_month": "In-Network: $40 / Out-of-Network: 40% after deductible",
- "initial_preferred_brand_preferred_mail_1_month": "In-Network: $40 / Out-of-Network: 40% after deductible",
- "initial_preferred_brand_preferred_mail_3_month": "In-Network: $40 / Out-of-Network: 40% after deductible",
- "initial_preferred_brand_preferred_retail_1_month": "In-Network: $40 / Out-of-Network: 40% after deductible",
- "initial_preferred_brand_preferred_retail_3_month": "In-Network: $40 / Out-of-Network: 40% after deductible",
- "initial_preferred_brand_standard_mail_1_month": "In-Network: $40 / Out-of-Network: 40% after deductible",
- "initial_preferred_brand_standard_mail_3_month": "In-Network: $40 / Out-of-Network: 40% after deductible",
- "initial_preferred_brand_standard_retail_1_month": "In-Network: $40 / Out-of-Network: 40% after deductible",
- "initial_preferred_brand_standard_retail_3_month": "In-Network: $40 / Out-of-Network: 40% after deductible",
- "initial_preferred_generic_preferred_mail_1_month": "In-Network: $40 / Out-of-Network: 40% after deductible",
- "initial_preferred_generic_preferred_mail_3_month": "In-Network: $40 / Out-of-Network: 40% after deductible",
- "initial_preferred_generic_preferred_retail_1_month": "In-Network: $40 / Out-of-Network: 40% after deductible",
- "initial_preferred_generic_preferred_retail_3_month": "In-Network: $40 / Out-of-Network: 40% after deductible",
- "initial_preferred_generic_standard_mail_1_month": "In-Network: $40 / Out-of-Network: 40% after deductible",
- "initial_preferred_generic_standard_mail_3_month": "In-Network: $40 / Out-of-Network: 40% after deductible",
- "initial_preferred_generic_standard_retail_1_month": "In-Network: $40 / Out-of-Network: 40% after deductible",
- "initial_preferred_generic_standard_retail_3_month": "In-Network: $40 / Out-of-Network: 40% after deductible",
- "initial_specialty_preferred_mail_1_month": "In-Network: $40 / Out-of-Network: 40% after deductible",
- "initial_specialty_preferred_mail_3_month": "In-Network: $40 / Out-of-Network: 40% after deductible",
- "initial_specialty_preferred_retail_1_month": "In-Network: $40 / Out-of-Network: 40% after deductible",
- "initial_specialty_preferred_retail_3_month": "In-Network: $40 / Out-of-Network: 40% after deductible",
- "initial_specialty_standard_mail_1_month": "In-Network: $40 / Out-of-Network: 40% after deductible",
- "initial_specialty_standard_mail_3_month": "In-Network: $40 / Out-of-Network: 40% after deductible",
- "initial_specialty_standard_retail_1_month": "In-Network: $40 / Out-of-Network: 40% after deductible",
- "initial_specialty_standard_retail_3_month": "In-Network: $40 / Out-of-Network: 40% after deductible",
- "inpatient_hospital": "In-Network: 20% / Out-of-Network: 40% after deductible",
- "meals": "In-Network: 20% / Out-of-Network: 40% after deductible",
- "medical_chiropractic_services": "In-Network: 20% / Out-of-Network: 40% after deductible",
- "medical_moop": "In-Network: $6,700 / Out-of-Network: $9,500",
- "mental_health_inpatient_visit": "In-Network: 20% / Out-of-Network: 40% after deductible",
- "mental_health_outpatient_group_therapy": "In-Network: 20% / Out-of-Network: 40% after deductible",
- "mental_health_outpatient_individual_therapy": "In-Network: 20% / Out-of-Network: 40% after deductible",
- "other_part_b_drug": "In-Network: 20% / Out-of-Network: 40% after deductible",
- "outpatient_hospital": "In-Network: 20% / Out-of-Network: 40% after deductible",
- "over_the_counter": "In-Network: 20% / Out-of-Network: 40% after deductible",
- "personal_emergency_response_system": "In-Network: 20% / Out-of-Network: 40% after deductible",
- "physical_therapy": "In-Network: 20% / Out-of-Network: 40% after deductible",
- "podiatry_medicare_covered_benefits": "In-Network: 20% / Out-of-Network: 40% after deductible",
- "podiatry_routine_footcare": "In-Network: 20% / Out-of-Network: 40% after deductible",
- "preventive_care": "In-Network: 20% / Out-of-Network: 40% after deductible",
- "prosthetics": "In-Network: 20% / Out-of-Network: 40% after deductible",
- "rehabilitation_occupational_therapy": "In-Network: 20% / Out-of-Network: 40% after deductible",
- "remote_access_technology": "In-Network: 20% / Out-of-Network: 40% after deductible",
- "renal_dialysis": "In-Network: 20% / Out-of-Network: 40% after deductible",
- "routine_transportation": "In-Network: 20% / Out-of-Network: 40% after deductible",
- "skilled_nursing_facility": "In-Network: 20% / Out-of-Network: 40% after deductible",
- "telehealth": "In-Network: 20% / Out-of-Network: 40% after deductible",
- "urgent_care": "In-Network: 20% / Out-of-Network: 40% after deductible",
- "vision_contact_lenses": "In-Network: 20% / Out-of-Network: 40% after deductible",
- "vision_exam": "In-Network: 20% / Out-of-Network: 40% after deductible",
- "vision_eyeglass_frames_and_lenses": "In-Network: 20% / Out-of-Network: 40% after deductible",
- "vision_medicare_covered_benefits": "In-Network: 20% / Out-of-Network: 40% after deductible",
- "vision_upgrades": "In-Network: 20% / Out-of-Network: 40% after deductible",
- "wellness_program": "In-Network: 20% / Out-of-Network: 40% after deductible",
- "worldwide_emergency": "In-Network: 20% / Out-of-Network: 40% after deductible"
}, - "benefits_summary_url": "http://www.emblemhealth.com/~/media/Files/PDF/HIXHub/BenefitSummary_SelectCareSilver.pdf",
- "carrier": {
- "id": "bae1d0e1-80dc-48f4-918d-6c492340cc1c",
- "issuer_id": "A0027",
- "name": "Guardian"
}, - "carrier_name": "EmblemHealth",
- "customer_service_phone_member": "(800)282-5366",
- "customer_service_phone_non_member": "(855)338-7027",
- "id": "uaLcmyru",
- "name": "Aetna Medicare Choice Plan (PPO)",
- "network_size": 5000,
- "part_b_premium_reduction": 30.33,
- "plan_type": "HMO",
- "premium_drug": 533.24,
- "premium_health": 533.24,
- "product_line": "medical",
- "service_area_id": "11234-2016-WI01-individual",
- "source": "carrier",
- "stand_alone_part_d": false,
- "star_rating_drug_plan": 4,
- "star_rating_health_plan": 4,
- "star_rating_overall": 4,
- "year": "2019"
}
}v7: Support added for the optional provider address_id in the providers list of the request schema for further filtering of in-network logic.
Additionally, the in_network_ids and out_of_network_ids fields were deprecated from the response and replaced with the providers list. The response schema returns benefits as strings.
v6: Previous supported version.
Searches Medicare Advantage, MAPD (Medicare Advantage with Prescription Drug coverage), and PDP (Prescription Drug Plan) plans available in a given location for individual Medicare quoting. Only location (zip_code, fips_code) and enrollment_date are required — Medicare Advantage plans are not rated by applicant demographics in the same way as ACA Major Medical, so no applicants block is needed.
A note on identifiers. Medicare Advantage plans carry two distinct identifiers. The id field is an Ideon identifier unique to the plan across product lines. The medicare_plan_id entry in the identifiers array — for example, H0523-022-0 — is the CMS Medicare Contract Code ID, composed of the carrier contract/bid ID, plan ID, and segment ID, and is unique to the plan year.
Provider participation can be evaluated inline with the quote — see the Shop by Doc section below. Shop by Drug is not currently supported on Medicare Advantage.
The Medicare Advantage quoting workflow supports evaluation of provider network participation within a single API call. This pattern — quoting plans alongside doctor participation — is commonly referred to as "Shop by Doc". Because quoting and participation evaluation happen in one request, the workflow is two steps end-to-end:
providers array on this endpoint. The response will return participation data for each provider against each quoted plan's network.Request shape. Each entry in the providers array is an object with an npi and an optional address_id. Multiple addresses for the same provider should be passed as separate objects:
"providers": [
{ "npi": 1538670880, "address_id": "2bd18d55-4bc6-3a66-aeef-fae893d5d8c0" },
{ "npi": 1234567890 }
]
Address ID behavior.
address_id): the provider is evaluated for participation at any of their practice locations. The response will return all in-network addresses for that provider on each plan.address_id: participation is evaluated only against the specific address. The response addresses array will be filtered to just that address when in-network, or empty when not.Validation. NPIs and address IDs are not validated against the IdeonSelect dataset on submission. If an npi or address_id is unknown or invalid, the quote still succeeds and the provider is reported as out-of-network. We recommend a maximum of 50 unique npi / address_id combinations per quote request.
Response shape. When providers is included in the request, each plan in the response carries a providers array. Each entry contains:
npi — the provider NPI from the request.in_network — boolean. With no address_id, true if the provider participates at any address. With an address_id, true only if the provider participates at that address.addresses — array of in-network address objects (city, state, street, zip, lat/lng, phone, fax, pcp, accepting_new_patients, etc.). Filtered to the requested address_id when one was provided; empty when the provider is out-of-network or no qualifying addresses exist.| enrollment_date required | string <date> Example: "2026-04-02" Effective date of coverage, in YYYY-MM-DD format. Plans whose effective/expiration window does not include this date are excluded. | ||||
| fips_code required | string Example: "36081" 5-digit county FIPS code for the search location. Required alongside zip_code because a single ZIP may span multiple counties with different Medicare Advantage plan availability. | ||||
| zip_code required | string Example: "11423" 5-digit ZIP code for the search location. | ||||
| ids | Array of strings Example: ["S2893-003-0","H9585-001-0"] List of Medicare Advantage plan contract identifiers | ||||
| page | integer Example: "1" Selected page of paginated response. | ||||
| per_page | integer Example: "20" Results per page of response. | ||||
Array of objects (RequestPlanFindProvider) Example: [{"address_id":"589c907f-28c2-3d14-8916-1144a5191ba2","npi":1234567890}] List of providers to search for. | |||||
Array
| |||||
| X-RateLimit-Limit | integer Maximum requests allowed in the current rate-limit window (per minute) |
| X-RateLimit-Remaining | integer Requests remaining in the current rate-limit window |
object (Meta) Example: {"total":1} | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Array of objects (V7MedicareAdvantagePlanSearch) Example: [{"audience":"individual","benefits":{"acupuncture":"In-Network: $300 / Out-of-Network: $300 after deductible","ambulance":"In-Network: $300 / Out-of-Network: $300 after deductible","catastrophic_brand_name":"In-Network: 20% / Out-of-Network: 40% after deductible","catastrophic_excluded":"In-Network: 20% / Out-of-Network: 40% after deductible","catastrophic_generic":"In-Network: 20% / Out-of-Network: 40% after deductible","chemotherapy_drug":"In-Network: 20% / Out-of-Network: 40% after deductible","deductible_annual_drug":"In-Network: $0 / Out-of-Network: unknown","deductible_annual_medical":"In-Network: $0 / Out-of-Network: unknown","dental_cleaning":"In-Network: $0 / Out-of-Network: Not Applicable","dental_diagnostic_services":"In-Network: 50% / Out-of-Network: 40% after deductible","dental_endodontics":"In-Network: 50% / Out-of-Network: 40% after deductible","dental_exam":"In-Network: $0 / Out-of-Network: Not Applicable","dental_extraction":"In-Network: $0 / Out-of-Network: Not Applicable","dental_fluoride_treatment":"In-Network: 100% / Out-of-Network: 100%","dental_medicare_covered_benefits":"In-Network: $40 / Out-of-Network: 40% after deductible","dental_non_routine_services":"In-Network: 100% / Out-of-Network: 100%","dental_periodontics":"In-Network: 100% / Out-of-Network: 100%","dental_prosthodontics_and_other":"In-Network: 100% / Out-of-Network: 100%","dental_restorative_services":"In-Network: 100% / Out-of-Network: 100%","dental_x_rays":"In-Network: $0 / Out-of-Network: Not Applicable","diabetes_management_monitoring_supplies":"In-Network: 0%-20% / Out-of-Network: 0%-20% after deductible","diagnostic_lab_service":"In-Network: $40 / Out-of-Network: 40% after deductible","diagnostic_outpatient_x_rays":"In-Network: $40 / Out-of-Network: 40% after deductible","diagnostic_radiology":"In-Network: 20% / Out-of-Network: 40% after deductible","diagnostic_test_and_procedures":"In-Network: 20% / Out-of-Network: 40% after deductible","diagnostic_therapeutic_radiology":"In-Network: 20% / Out-of-Network: 40% after deductible","doctor_visit_primary":"In-Network: 20% / Out-of-Network: 40% after deductible","doctor_visit_specialist":"In-Network: 20% / Out-of-Network: 40% after deductible","durable_medical_equipment":"In-Network: 20% / Out-of-Network: 40% after deductible","emergency_care":"In-Network: 20% / Out-of-Network: 40% after deductible","gap_brand_name":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_generic":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_generic_preferred_mail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_generic_preferred_mail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_generic_preferred_retail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_generic_preferred_retail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_generic_standard_mail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_generic_standard_mail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_generic_standard_retail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_generic_standard_retail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_non_preferred_preferred_mail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_non_preferred_preferred_mail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_non_preferred_preferred_retail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_non_preferred_preferred_retail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_non_preferred_standard_mail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_non_preferred_standard_mail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_non_preferred_standard_retail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_non_preferred_standard_retail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_preferred_brand_preferred_mail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_preferred_brand_preferred_mail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_preferred_brand_preferred_retail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_preferred_brand_preferred_retail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_preferred_brand_standard_mail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_preferred_brand_standard_mail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_preferred_brand_standard_retail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_preferred_brand_standard_retail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_preferred_generic_preferred_mail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_preferred_generic_preferred_mail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_preferred_generic_preferred_retail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_preferred_generic_preferred_retail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_preferred_generic_standard_mail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_preferred_generic_standard_mail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_preferred_generic_standard_retail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_preferred_generic_standard_retail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_specialty_preferred_mail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_specialty_preferred_mail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_specialty_preferred_retail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_specialty_preferred_retail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_specialty_standard_mail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_specialty_standard_mail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_specialty_standard_retail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","gap_specialty_standard_retail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","hearing_aids":"In-Network: 20% / Out-of-Network: 40% after deductible","hearing_aids_fitting_and_evaluation":"In-Network: 20% / Out-of-Network: 40% after deductible","hearing_exam":"In-Network: 20% / Out-of-Network: 40% after deductible","hearing_medicare_covered_benefits":"In-Network: 20% / Out-of-Network: 40% after deductible","home_health_care":"In-Network: 20% / Out-of-Network: 40% after deductible","home_safety_devices_and_modifications":"In-Network: 20% / Out-of-Network: 40% after deductible","hospice":"In-Network: 20% / Out-of-Network: 40% after deductible","in_home_support_services":"In-Network: 20% / Out-of-Network: 40% after deductible","initial_generic_preferred_mail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_generic_preferred_mail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_generic_preferred_retail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_generic_preferred_retail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_generic_standard_mail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_generic_standard_mail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_generic_standard_retail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_generic_standard_retail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_non_preferred_preferred_mail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_non_preferred_preferred_mail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_non_preferred_preferred_retail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_non_preferred_preferred_retail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_non_preferred_standard_mail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_non_preferred_standard_mail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_non_preferred_standard_retail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_non_preferred_standard_retail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_preferred_brand_preferred_mail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_preferred_brand_preferred_mail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_preferred_brand_preferred_retail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_preferred_brand_preferred_retail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_preferred_brand_standard_mail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_preferred_brand_standard_mail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_preferred_brand_standard_retail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_preferred_brand_standard_retail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_preferred_generic_preferred_mail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_preferred_generic_preferred_mail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_preferred_generic_preferred_retail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_preferred_generic_preferred_retail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_preferred_generic_standard_mail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_preferred_generic_standard_mail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_preferred_generic_standard_retail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_preferred_generic_standard_retail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_specialty_preferred_mail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_specialty_preferred_mail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_specialty_preferred_retail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_specialty_preferred_retail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_specialty_standard_mail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_specialty_standard_mail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_specialty_standard_retail_1_month":"In-Network: $40 / Out-of-Network: 40% after deductible","initial_specialty_standard_retail_3_month":"In-Network: $40 / Out-of-Network: 40% after deductible","inpatient_hospital":"In-Network: 20% / Out-of-Network: 40% after deductible","meals":"In-Network: 20% / Out-of-Network: 40% after deductible","medical_chiropractic_services":"In-Network: 20% / Out-of-Network: 40% after deductible","medical_moop":"In-Network: $6,700 / Out-of-Network: $9,500","mental_health_inpatient_visit":"In-Network: 20% / Out-of-Network: 40% after deductible","mental_health_outpatient_group_therapy":"In-Network: 20% / Out-of-Network: 40% after deductible","mental_health_outpatient_individual_therapy":"In-Network: 20% / Out-of-Network: 40% after deductible","other_part_b_drug":"In-Network: 20% / Out-of-Network: 40% after deductible","outpatient_hospital":"In-Network: 20% / Out-of-Network: 40% after deductible","over_the_counter":"In-Network: 20% / Out-of-Network: 40% after deductible","personal_emergency_response_system":"In-Network: 20% / Out-of-Network: 40% after deductible","physical_therapy":"In-Network: 20% / Out-of-Network: 40% after deductible","podiatry_medicare_covered_benefits":"In-Network: 20% / Out-of-Network: 40% after deductible","podiatry_routine_footcare":"In-Network: 20% / Out-of-Network: 40% after deductible","preventive_care":"In-Network: 20% / Out-of-Network: 40% after deductible","prosthetics":"In-Network: 20% / Out-of-Network: 40% after deductible","rehabilitation_occupational_therapy":"In-Network: 20% / Out-of-Network: 40% after deductible","remote_access_technology":"In-Network: 20% / Out-of-Network: 40% after deductible","renal_dialysis":"In-Network: 20% / Out-of-Network: 40% after deductible","routine_transportation":"In-Network: 20% / Out-of-Network: 40% after deductible","skilled_nursing_facility":"In-Network: 20% / Out-of-Network: 40% after deductible","telehealth":"In-Network: 20% / Out-of-Network: 40% after deductible","urgent_care":"In-Network: 20% / Out-of-Network: 40% after deductible","vision_contact_lenses":"In-Network: 20% / Out-of-Network: 40% after deductible","vision_exam":"In-Network: 20% / Out-of-Network: 40% after deductible","vision_eyeglass_frames_and_lenses":"In-Network: 20% / Out-of-Network: 40% after deductible","vision_medicare_covered_benefits":"In-Network: 20% / Out-of-Network: 40% after deductible","vision_upgrades":"In-Network: 20% / Out-of-Network: 40% after deductible","wellness_program":"In-Network: 20% / Out-of-Network: 40% after deductible","worldwide_emergency":"In-Network: 20% / Out-of-Network: 40% after deductible"},"benefits_summary_url":"http://www.emblemhealth.com/~/media/Files/PDF/HIXHub/BenefitSummary_SelectCareSilver.pdf","carrier":{"id":"bae1d0e1-80dc-48f4-918d-6c492340cc1c","issuer_id":"A0027","logo_url":"https://d1hm12jr612u3r.cloudfront.net/images/carriers/174/1438891372/thumb.png?1438891372","name":"Guardian"},"carrier_name":"EmblemHealth","customer_service_phone_member":"(800)282-5366","customer_service_phone_non_member":"(855)338-7027","id":"uaLcmyru","identifiers":[{"type":"contract_id","value":"abc123"}],"logo_url":"https://d1hm12jr612u3r.cloudfront.net/images/carriers/174/1438891372/thumb.png?1438891372","name":"Aetna Medicare Choice Plan (PPO)","network_size":5000,"networks":[{"id":1,"name":"Open Choice","provider_directory_url":"https://www.example.com/find-a-doctor"}],"part_b_premium_reduction":30.33,"plan_documents":[{"type":"summary_of_benefits_and_coverage","url":"https://www.example.com/summary_of_benefits_and_coverage.pdf"}],"plan_type":"HMO","premium_drug":533.24,"premium_health":533.24,"product_line":"medical","providers":[{"in_network":true,"npi":1234567890}],"service_area_id":"11234-2016-WI01-individual","source":"carrier","stand_alone_part_d":false,"star_rating_drug_plan":4,"star_rating_health_plan":4,"star_rating_overall":4,"supplemental_options":[{"benefits":["Preventive Dental","Comprehensive Dental"],"deductible":50,"id":1,"moop":1000,"name":"Aetna Medicare Advantage PPO Dental Plan","premium":23}],"year":"2019"}] Medicare Advantage plan search results | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Array
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{- "enrollment_date": "2026-04-02",
- "fips_code": "36081",
- "ids": [
- "S2893-003-0",
- "H9585-001-0"
], - "page": 1,
- "per_page": 20,
- "providers": [
- {
- "address_id": "589c907f-28c2-3d14-8916-1144a5191ba2",
- "npi": 1234567890
}
], - "zip_code": "11423"
}{- "meta": {
- "total": 1
}, - "plans": [
- {
- "audience": "individual",
- "benefits_summary_url": "http://www.emblemhealth.com/~/media/Files/PDF/HIXHub/BenefitSummary_SelectCareSilver.pdf",
- "carrier_name": "EmblemHealth",
- "customer_service_phone_member": "(800)282-5366",
- "customer_service_phone_non_member": "(855)338-7027",
- "id": "uaLcmyru",
- "name": "Aetna Medicare Choice Plan (PPO)",
- "network_size": 5000,
- "part_b_premium_reduction": 30.33,
- "plan_type": "HMO",
- "premium_drug": 533.24,
- "premium_health": 533.24,
- "product_line": "medical",
- "service_area_id": "11234-2016-WI01-individual",
- "source": "carrier",
- "stand_alone_part_d": false,
- "star_rating_drug_plan": 4,
- "star_rating_health_plan": 4,
- "star_rating_overall": 4,
- "year": "2019"
}
]
}v8: In the response schema, benefits are represented as objects with tier and limit keys.
Additionally, fields for UCR Percentile, Coverage Tiers, Copay Schedules, and OON Reimbursement Type were added. The documentation for this endpoint references this latest available version.
v6: Previous supported version. The response schema returns benefits as strings.
Returns the full record for a single Dental plan by id. Includes all benefit fields, premium metadata, identifiers, and plan documents. v8 adds UCR percentile, coverage tiers, copay schedules, out-of-network reimbursement type, and the benefit-as-object grammar with coverage_tier.
For searching available plans by location and applicant criteria, use Search Dental Plans.
For automated workflows, cache plan inventory via Bulk Exports. These Show and Search endpoints are best suited to ad-hoc lookups — for example, surfacing plan details in response to a specific user action, or refreshing a single plan record. For high-volume or scheduled access (powering search UIs, plan comparison tools, member portals), pull the Plans dataset from Bulk Exports on a daily or weekly cadence and join against the cached benefits client-side. This pattern dramatically reduces latency on real-time flows and removes API rate limit pressure.
| id required | string Example: dta2DWxv ID of the Plan |
| year | integer Example: year=2026 Plan year (defaults to current year) |
| select | string Example: select=id,name,carrier_name Comma-separated list of response fields to include, enabling partial responses. Use dot notation for nested fields. Example: id,name,carrier_name |
| Accept-Version | string Enum: "v6" "v7" "v8" "v9" Example: v8 API version requested (v6, v7, v8, or v9) |
| X-RateLimit-Limit | integer Maximum requests allowed in the current rate-limit window (per minute) |
| X-RateLimit-Remaining | integer Requests remaining in the current rate-limit window |
| Cache-Control | string Example: "public, max-age=3600" Caching directives for static plan data. Plan data is cacheable for up to 1 hour; quote and rate data is not cached. |
| ETag | string Example: "\"a1b2c3d4e5f6\"" Entity tag for cache validation. Allows conditional requests using If-None-Match. |
object (V8_DentalPlan) Example: {"adult_individual_annual_max":{"in_network":"30% after deductible","limit":"1 time(s) per year","out_of_network":"50% after deductible"},"adult_individual_deductible":{"in_network":"30% after deductible","limit":"1 time(s) per year","out_of_network":"50% after deductible"},"audience":"small_group","benefits":{"bridges":{"coverage_tier":"basic","in_network":"30% after deductible","limit":"1 time(s) per year","out_of_network":"50% after deductible"},"crowns":{"coverage_tier":"basic","in_network":"30% after deductible","limit":"1 time(s) per year","out_of_network":"50% after deductible"},"denture_relines_rebases":{"coverage_tier":"basic","in_network":"30% after deductible","limit":"1 time(s) per year","out_of_network":"50% after deductible"},"denture_repair_and_adjustments":{"coverage_tier":"basic","in_network":"30% after deductible","limit":"1 time(s) per year","out_of_network":"50% after deductible"},"dentures":{"coverage_tier":"basic","in_network":"30% after deductible","limit":"1 time(s) per year","out_of_network":"50% after deductible"},"emergency_treatment":{"coverage_tier":"basic","in_network":"30% after deductible","limit":"1 time(s) per year","out_of_network":"50% after deductible"},"endodontics":{"coverage_tier":"basic","in_network":"30% after deductible","limit":"1 time(s) per year","out_of_network":"50% after deductible"},"fluoride_treatment":{"coverage_tier":"basic","in_network":"30% after deductible","limit":"1 time(s) per year","out_of_network":"50% after deductible"},"implants":{"coverage_tier":"basic","in_network":"30% after deductible","limit":"1 time(s) per year","out_of_network":"50% after deductible"},"inlays":{"coverage_tier":"basic","in_network":"30% after deductible","limit":"1 time(s) per year","out_of_network":"50% after deductible"},"onlays":{"coverage_tier":"basic","in_network":"30% after deductible","limit":"1 time(s) per year","out_of_network":"50% after deductible"},"oral_exam":{"coverage_tier":"basic","in_network":"30% after deductible","limit":"1 time(s) per year","out_of_network":"50% after deductible"},"oral_surgery":{"coverage_tier":"basic","in_network":"30% after deductible","limit":"1 time(s) per year","out_of_network":"50% after deductible"},"orthodontics_adult":{"coverage_tier":"basic","in_network":"30% after deductible","limit":"1 time(s) per year","out_of_network":"50% after deductible"},"orthodontics_child":{"coverage_tier":"basic","in_network":"30% after deductible","limit":"1 time(s) per year","out_of_network":"50% after deductible"},"periodontal_maintenance":{"coverage_tier":"basic","in_network":"30% after deductible","limit":"1 time(s) per year","out_of_network":"50% after deductible"},"periodontics":{"coverage_tier":"basic","in_network":"30% after deductible","limit":"1 time(s) per year","out_of_network":"50% after deductible"},"prophylaxis_cleaning":{"coverage_tier":"basic","in_network":"30% after deductible","limit":"1 time(s) per year","out_of_network":"50% after deductible"},"radiograph_bitewings":{"coverage_tier":"basic","in_network":"30% after deductible","limit":"1 time(s) per year","out_of_network":"50% after deductible"},"radiograph_other":{"coverage_tier":"basic","in_network":"30% after deductible","limit":"1 time(s) per year","out_of_network":"50% after deductible"},"restoration_fillings":{"coverage_tier":"basic","in_network":"30% after deductible","limit":"1 time(s) per year","out_of_network":"50% after deductible"},"sealant":{"coverage_tier":"basic","in_network":"30% after deductible","limit":"1 time(s) per year","out_of_network":"50% after deductible"},"simple_extraction":{"coverage_tier":"basic","in_network":"30% after deductible","limit":"1 time(s) per year","out_of_network":"50% after deductible"},"space_maintainers":{"coverage_tier":"basic","in_network":"30% after deductible","limit":"1 time(s) per year","out_of_network":"50% after deductible"}},"benefits_summary_url":"http://www.example.com/benefits_summary.pdf","carrier":{"id":"bae1d0e1-80dc-48f4-918d-6c492340cc1c","issuer_id":"A0027","logo_url":"https://d1hm12jr612u3r.cloudfront.net/images/carriers/174/1438891372/thumb.png?1438891372","name":"Guardian"},"carrier_disclaimers":"See Summary of Benefits and Coverage (SBC) for more details.","child_individual_annual_max":{"in_network":"30% after deductible","limit":"1 time(s) per year","out_of_network":"50% after deductible"},"child_individual_deductible":{"in_network":"30% after deductible","limit":"1 time(s) per year","out_of_network":"50% after deductible"},"child_individual_moop":{"in_network":"30% after deductible","limit":"1 time(s) per year","out_of_network":"50% after deductible"},"copay_schedule":true,"coverage_tiers":{"basic":{"in_network":"30% after deductible","limit":"1 time(s) per year","out_of_network":"50% after deductible"},"major":{"in_network":"30% after deductible","limit":"1 time(s) per year","out_of_network":"50% after deductible"},"preventive":{"in_network":"30% after deductible","limit":"1 time(s) per year","out_of_network":"50% after deductible"}},"family_deductible":{"in_network":"30% after deductible","limit":"1 time(s) per year","out_of_network":"50% after deductible"},"id":"uaLcmyru","identifiers":[{"type":"issuer_internal_id","value":"Identifier 1"}],"issuer_name":"Guardian","logo_url":"http://www.example.com/logo.jpg","name":"Select Care Silver, Age 29 Rider","network_size":5000,"networks":[{"id":1,"name":"Open Choice","provider_directory_url":"https://www.example.com/find-a-doctor"}],"out_of_network_reimbursement_type":"UCR","plan_documents":[{"type":"summary_of_benefits_and_coverage","url":"https://www.example.com/summary_of_benefits_and_coverage.pdf"}],"plan_type":"HMO","product_line":"medical","quoted_via_carrier_api":false,"service_area_id":"11234-2016-WI01-individual","source":"carrier","stand_alone":false,"usual_customary_reasonable_percentile":80} | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{- "dental_plan": {
- "adult_individual_annual_max": {
- "in_network": "30% after deductible",
- "limit": "1 time(s) per year",
- "out_of_network": "50% after deductible"
}, - "adult_individual_deductible": {
- "in_network": "30% after deductible",
- "limit": "1 time(s) per year",
- "out_of_network": "50% after deductible"
}, - "audience": "small_group",
- "carrier": {
- "id": "bae1d0e1-80dc-48f4-918d-6c492340cc1c",
- "issuer_id": "A0027",
- "name": "Guardian"
}, - "carrier_disclaimers": "See Summary of Benefits and Coverage (SBC) for more details.",
- "child_individual_annual_max": {
- "in_network": "30% after deductible",
- "limit": "1 time(s) per year",
- "out_of_network": "50% after deductible"
}, - "child_individual_deductible": {
- "in_network": "30% after deductible",
- "limit": "1 time(s) per year",
- "out_of_network": "50% after deductible"
}, - "child_individual_moop": {
- "in_network": "30% after deductible",
- "limit": "1 time(s) per year",
- "out_of_network": "50% after deductible"
}, - "copay_schedule": true,
- "family_deductible": {
- "in_network": "30% after deductible",
- "limit": "1 time(s) per year",
- "out_of_network": "50% after deductible"
}, - "id": "uaLcmyru",
- "issuer_name": "Guardian",
- "name": "Select Care Silver, Age 29 Rider",
- "network_size": 5000,
- "out_of_network_reimbursement_type": "UCR",
- "plan_type": "HMO",
- "product_line": "medical",
- "quoted_via_carrier_api": false,
- "service_area_id": "11234-2016-WI01-individual",
- "source": "carrier",
- "stand_alone": false,
- "usual_customary_reasonable_percentile": 80
}
}v8: In the response schema, benefits are represented as objects with tier and limit keys.
Additionally, fields for UCR Percentile, Coverage Tiers, Copay Schedules, and OON Reimbursement Type were added. The documentation for this endpoint references this latest available version.
v6: Previous supported version. The response schema returns benefits as strings.
Searches available Dental plans for an individual or small group market. Returns plans available in the specified location with premiums, benefits, and identifiers. Supports filtering by carrier, age, gender (where applicable for the product line), tobacco status (where applicable), effective date, and applicant composition. v8 supports the same benefit object schema as the Show endpoint, including UCR percentile, coverage tiers, and copay schedules.
For retrieving the full record of a known plan, use Show Dental Plan.
For automated workflows, cache plan inventory via Bulk Exports. These Show and Search endpoints are best suited to ad-hoc lookups — for example, surfacing plan details in response to a specific user action, or refreshing a single plan record. For high-volume or scheduled access (powering search UIs, plan comparison tools, member portals), pull the Plans dataset from Bulk Exports on a daily or weekly cadence and join against the cached benefits client-side. This pattern dramatically reduces latency on real-time flows and removes API rate limit pressure.
| page | integer Example: page=1 Page of paginated response |
| per_page | integer <= 300 Example: per_page=1 Responses per page |
| Accept-Version | string Example: v6 API version requested |
| market required | string Enum: "individual" "shop" "small_group" "medicare_advantage" "large_group" "level_funded" Example: "individual" The audience of plan to search for. Possible values are individual, shop, small_group, medicare_advantage, large_group, level_funded | ||||||
Array of objects (DentalPlanSearchApplicant) Example: [{"age":21,"child":false,"gender":"F"}] Applicants for desired plans. | |||||||
Array
| |||||||
| enrollment_date | string <date> Example: "2026-04-02" Date of enrollment | ||||||
| fips_code | string Example: "36081" County code to determine eligibility | ||||||
| page | integer Example: "1" Selected page of paginated response. | ||||||
| per_page | integer Example: "20" Results per page of response. | ||||||
Array of objects (RequestPlanFindProvider) Example: [{"address_id":"589c907f-28c2-3d14-8916-1144a5191ba2","npi":1234567890}] List of Provider National Practitioner Index numbers | |||||||
Array
| |||||||
| zip_code | string Example: "11423" 5-digit zip code - this helps determine pricing. | ||||||
| X-RateLimit-Limit | integer Maximum requests allowed in the current rate-limit window (per minute) |
| X-RateLimit-Remaining | integer Requests remaining in the current rate-limit window |
| Total | integer Example: "150" Total number of records matching the query across all pages |
| Per-Page | integer Example: "25" Number of records returned per page |
| Page | integer Example: "1" Current page number |
| Link | string Example: "<https://api.ideonapi.com/networks?page=2&per_page=25>; rel=\"next\", <https://api.ideonapi.com/networks?page=1&per_page=25>; rel=\"first\"" RFC-5988 pagination links containing |
object (Meta) Example: {"total":1} | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Array of objects (V8_DentalPlanSearch) Example: [{"adult_individual_annual_max":{"in_network":"30% after deductible","limit":"1 time(s) per year","out_of_network":"50% after deductible"},"adult_individual_deductible":{"in_network":"30% after deductible","limit":"1 time(s) per year","out_of_network":"50% after deductible"},"audience":"small_group","benefits":{"bridges":{"coverage_tier":"basic","in_network":"30% after deductible","limit":"1 time(s) per year","out_of_network":"50% after deductible"},"crowns":{"coverage_tier":"basic","in_network":"30% after deductible","limit":"1 time(s) per year","out_of_network":"50% after deductible"},"denture_relines_rebases":{"coverage_tier":"basic","in_network":"30% after deductible","limit":"1 time(s) per year","out_of_network":"50% after deductible"},"denture_repair_and_adjustments":{"coverage_tier":"basic","in_network":"30% after deductible","limit":"1 time(s) per year","out_of_network":"50% after deductible"},"dentures":{"coverage_tier":"basic","in_network":"30% after deductible","limit":"1 time(s) per year","out_of_network":"50% after deductible"},"emergency_treatment":{"coverage_tier":"basic","in_network":"30% after deductible","limit":"1 time(s) per year","out_of_network":"50% after deductible"},"endodontics":{"coverage_tier":"basic","in_network":"30% after deductible","limit":"1 time(s) per year","out_of_network":"50% after deductible"},"fluoride_treatment":{"coverage_tier":"basic","in_network":"30% after deductible","limit":"1 time(s) per year","out_of_network":"50% after deductible"},"implants":{"coverage_tier":"basic","in_network":"30% after deductible","limit":"1 time(s) per year","out_of_network":"50% after deductible"},"inlays":{"coverage_tier":"basic","in_network":"30% after deductible","limit":"1 time(s) per year","out_of_network":"50% after deductible"},"onlays":{"coverage_tier":"basic","in_network":"30% after deductible","limit":"1 time(s) per year","out_of_network":"50% after deductible"},"oral_exam":{"coverage_tier":"basic","in_network":"30% after deductible","limit":"1 time(s) per year","out_of_network":"50% after deductible"},"oral_surgery":{"coverage_tier":"basic","in_network":"30% after deductible","limit":"1 time(s) per year","out_of_network":"50% after deductible"},"orthodontics_adult":{"coverage_tier":"basic","in_network":"30% after deductible","limit":"1 time(s) per year","out_of_network":"50% after deductible"},"orthodontics_child":{"coverage_tier":"basic","in_network":"30% after deductible","limit":"1 time(s) per year","out_of_network":"50% after deductible"},"periodontal_maintenance":{"coverage_tier":"basic","in_network":"30% after deductible","limit":"1 time(s) per year","out_of_network":"50% after deductible"},"periodontics":{"coverage_tier":"basic","in_network":"30% after deductible","limit":"1 time(s) per year","out_of_network":"50% after deductible"},"prophylaxis_cleaning":{"coverage_tier":"basic","in_network":"30% after deductible","limit":"1 time(s) per year","out_of_network":"50% after deductible"},"radiograph_bitewings":{"coverage_tier":"basic","in_network":"30% after deductible","limit":"1 time(s) per year","out_of_network":"50% after deductible"},"radiograph_other":{"coverage_tier":"basic","in_network":"30% after deductible","limit":"1 time(s) per year","out_of_network":"50% after deductible"},"restoration_fillings":{"coverage_tier":"basic","in_network":"30% after deductible","limit":"1 time(s) per year","out_of_network":"50% after deductible"},"sealant":{"coverage_tier":"basic","in_network":"30% after deductible","limit":"1 time(s) per year","out_of_network":"50% after deductible"},"simple_extraction":{"coverage_tier":"basic","in_network":"30% after deductible","limit":"1 time(s) per year","out_of_network":"50% after deductible"},"space_maintainers":{"coverage_tier":"basic","in_network":"30% after deductible","limit":"1 time(s) per year","out_of_network":"50% after deductible"}},"benefits_summary_url":"http://www.example.com/benefits_summary.pdf","carrier":{"id":"bae1d0e1-80dc-48f4-918d-6c492340cc1c","issuer_id":"A0027","logo_url":"https://d1hm12jr612u3r.cloudfront.net/images/carriers/174/1438891372/thumb.png?1438891372","name":"Guardian"},"carrier_disclaimers":"See Summary of Benefits and Coverage (SBC) for more details.","child_individual_annual_max":{"in_network":"30% after deductible","limit":"1 time(s) per year","out_of_network":"50% after deductible"},"child_individual_deductible":{"in_network":"30% after deductible","limit":"1 time(s) per year","out_of_network":"50% after deductible"},"child_individual_moop":{"in_network":"30% after deductible","limit":"1 time(s) per year","out_of_network":"50% after deductible"},"copay_schedule":true,"coverage_tiers":{"basic":{"in_network":"30% after deductible","limit":"1 time(s) per year","out_of_network":"50% after deductible"},"major":{"in_network":"30% after deductible","limit":"1 time(s) per year","out_of_network":"50% after deductible"},"preventive":{"in_network":"30% after deductible","limit":"1 time(s) per year","out_of_network":"50% after deductible"}},"family_deductible":{"in_network":"30% after deductible","limit":"1 time(s) per year","out_of_network":"50% after deductible"},"id":"uaLcmyru","identifiers":[{"type":"issuer_internal_id","value":"Identifier 1"}],"issuer_name":"Guardian","logo_url":"http://www.example.com/logo.jpg","name":"Select Care Silver, Age 29 Rider","network_size":5000,"networks":[{"id":1,"name":"Open Choice","provider_directory_url":"https://www.example.com/find-a-doctor"}],"out_of_network_reimbursement_type":"MAC","plan_documents":[{"type":"summary_of_benefits_and_coverage","url":"https://www.example.com/summary_of_benefits_and_coverage.pdf"}],"plan_type":"HMO","premium":533.24,"premium_source":"carrier","premium_subsidized":321.5,"product_line":"medical","providers":[{"in_network":true,"npi":1234567890}],"quoted_via_carrier_api":false,"service_area_id":"11234-2016-WI01-individual","source":"carrier","stand_alone":false,"usual_customary_reasonable_percentile":80}] Dental plan search results | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Array
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{- "applicants": [
- {
- "age": 21,
- "child": false,
- "gender": "F"
}
], - "enrollment_date": "2026-04-02",
- "fips_code": "36081",
- "market": "individual",
- "page": 1,
- "per_page": 20,
- "providers": [
- {
- "address_id": "589c907f-28c2-3d14-8916-1144a5191ba2",
- "npi": 1234567890
}
], - "zip_code": "11423"
}{- "meta": {
- "total": 1
}, - "plans": [
- {
- "audience": "small_group",
- "carrier_disclaimers": "See Summary of Benefits and Coverage (SBC) for more details.",
- "copay_schedule": true,
- "id": "uaLcmyru",
- "issuer_name": "Guardian",
- "name": "Select Care Silver, Age 29 Rider",
- "network_size": 5000,
- "out_of_network_reimbursement_type": "MAC",
- "plan_type": "HMO",
- "premium": 533.24,
- "premium_source": "carrier",
- "premium_subsidized": 321.5,
- "product_line": "medical",
- "quoted_via_carrier_api": false,
- "service_area_id": "11234-2016-WI01-individual",
- "source": "carrier",
- "stand_alone": false,
- "usual_customary_reasonable_percentile": 80
}
]
}v8: In the response schema, benefits are represented as objects with tier and limit keys.
Additionally, fields for Exam Copay, Materials Copay, and Service Frequencies were added. The documentation for this endpoint references this latest available version.
v6: Previous supported version. The response schema returns benefits as strings.
Returns the full record for a single Vision plan by id. Includes all benefit fields, premium metadata, identifiers, and plan documents.
For searching available plans by location and applicant criteria, use Search Vision Plans.
For automated workflows, cache plan inventory via Bulk Exports. These Show and Search endpoints are best suited to ad-hoc lookups — for example, surfacing plan details in response to a specific user action, or refreshing a single plan record. For high-volume or scheduled access (powering search UIs, plan comparison tools, member portals), pull the Plans dataset from Bulk Exports on a daily or weekly cadence and join against the cached benefits client-side. This pattern dramatically reduces latency on real-time flows and removes API rate limit pressure.
| id required | string Example: Eczwf4mm ID of the Plan |
| year | integer Example: year=2026 Plan year (defaults to current year) |
| select | string Example: select=id,name,carrier_name Comma-separated list of response fields to include, enabling partial responses. Use dot notation for nested fields. Example: id,name,carrier_name |
| Accept-Version | string Enum: "v6" "v7" "v8" "v9" Example: v8 API version requested (v6, v7, v8, or v9) |
| X-RateLimit-Limit | integer Maximum requests allowed in the current rate-limit window (per minute) |
| X-RateLimit-Remaining | integer Requests remaining in the current rate-limit window |
| Cache-Control | string Example: "public, max-age=3600" Caching directives for static plan data. Plan data is cacheable for up to 1 hour; quote and rate data is not cached. |
| ETag | string Example: "\"a1b2c3d4e5f6\"" Entity tag for cache validation. Allows conditional requests using If-None-Match. |
object (V8_VisionPlan) Example: {"audience":"small_group","benefits":{"additional_pairs_of_eyeglasses":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"contact_lenses_conventional":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"contact_lenses_disposable":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"contact_lenses_medically_necessary":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"eye_exam":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"eyeglass_lenses_bifocal":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"eyeglass_lenses_lenticular":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"eyeglass_lenses_single_vision":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"eyeglass_lenses_trifocal":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"frame":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"laser_vision_correction":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"photochromatic_lenses":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"polarized_lenses":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"premium_antireflective_coating":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"premium_contact_lens_fit_and_follow_up":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"premium_progressive_lenses":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"retinal_imaging":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"standard_antireflective_coating":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"standard_contact_lens_fit_and_follow_up":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"standard_polycarbonate_lenses_adult":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"standard_polycarbonate_lenses_child":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"standard_progressive_lenses":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"standard_scratch_resistance":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"tint":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"uv_coating":{"in_network":"30% after deductible","out_of_network":"50% after deductible"}},"benefits_summary_url":"http://www.example.com/benefits_summary.pdf","carrier":{"id":"bae1d0e1-80dc-48f4-918d-6c492340cc1c","issuer_id":"A0027","logo_url":"https://d1hm12jr612u3r.cloudfront.net/images/carriers/174/1438891372/thumb.png?1438891372","name":"Guardian"},"carrier_disclaimers":"See Summary of Benefits and Coverage (SBC) for more details.","exam_copay":"$50","id":"uaLcmyru","identifiers":[{"type":"issuer_internal_id","value":"Identifier 1"}],"issuer_name":"Guardian","logo_url":"http://www.example.com/logo.jpg","materials_copay":"$120","name":"Some Vision Plan","network_size":5000,"networks":[{"id":1,"name":"Open Choice","provider_directory_url":"https://www.example.com/find-a-doctor"}],"plan_type":"PPO","premium":533.24,"premium_source":"carrier","product_line":"medical","quoted_via_carrier_api":false,"service_area_id":"11234-2016-WI01-individual","service_frequency":{"contacts":"1 item(s) per 12 month(s)","exams":"1 exam(s) per 12 month(s)","frames":"1 item(s) per 12 month(s)","lenses":"1 item(s) per 12 month(s)"},"source":"carrier","stand_alone":false} | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{- "vision_plan": {
- "audience": "small_group",
- "benefits": {
- "additional_pairs_of_eyeglasses": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "contact_lenses_conventional": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "contact_lenses_disposable": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "contact_lenses_medically_necessary": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "eye_exam": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "eyeglass_lenses_bifocal": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "eyeglass_lenses_lenticular": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "eyeglass_lenses_single_vision": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "eyeglass_lenses_trifocal": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "frame": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "laser_vision_correction": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "photochromatic_lenses": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "polarized_lenses": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "premium_antireflective_coating": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "premium_contact_lens_fit_and_follow_up": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "premium_progressive_lenses": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "retinal_imaging": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "standard_antireflective_coating": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "standard_contact_lens_fit_and_follow_up": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "standard_polycarbonate_lenses_adult": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "standard_polycarbonate_lenses_child": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "standard_progressive_lenses": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "standard_scratch_resistance": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "tint": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}, - "uv_coating": {
- "in_network": "30% after deductible",
- "out_of_network": "50% after deductible"
}
}, - "carrier": {
- "id": "bae1d0e1-80dc-48f4-918d-6c492340cc1c",
- "issuer_id": "A0027",
- "name": "Guardian"
}, - "carrier_disclaimers": "See Summary of Benefits and Coverage (SBC) for more details.",
- "exam_copay": "$50",
- "id": "uaLcmyru",
- "issuer_name": "Guardian",
- "materials_copay": "$120",
- "name": "Some Vision Plan",
- "network_size": 5000,
- "plan_type": "PPO",
- "premium": 533.24,
- "premium_source": "carrier",
- "product_line": "medical",
- "quoted_via_carrier_api": false,
- "service_area_id": "11234-2016-WI01-individual",
- "service_frequency": {
- "contacts": "1 item(s) per 12 month(s)",
- "exams": "1 exam(s) per 12 month(s)",
- "frames": "1 item(s) per 12 month(s)",
- "lenses": "1 item(s) per 12 month(s)"
}, - "source": "carrier",
- "stand_alone": false
}
}v8: In the response schema, benefits are represented as objects with tier and limit keys.
Additionally, fields for Exam Copay, Materials Copay, and Service Frequencies were added. The documentation for this endpoint references this latest available version.
v6: Previous supported version. The response schema returns benefits as strings.
Searches available Vision plans for an individual or small group market. Returns plans available in the specified location with premiums, benefits, and identifiers. Supports filtering by carrier, age, gender (where applicable for the product line), tobacco status (where applicable), effective date, and applicant composition.
For retrieving the full record of a known plan, use Show Vision Plan.
For automated workflows, cache plan inventory via Bulk Exports. These Show and Search endpoints are best suited to ad-hoc lookups — for example, surfacing plan details in response to a specific user action, or refreshing a single plan record. For high-volume or scheduled access (powering search UIs, plan comparison tools, member portals), pull the Plans dataset from Bulk Exports on a daily or weekly cadence and join against the cached benefits client-side. This pattern dramatically reduces latency on real-time flows and removes API rate limit pressure.
| page | integer Example: page=1 Page of paginated response |
| per_page | integer <= 50 Example: per_page=1 Responses per page |
| Accept-Version | string Example: v6 API version requested |
| market required | string Enum: "individual" "shop" "small_group" "medicare_advantage" "large_group" "level_funded" Example: "individual" The audience of plan to search for. Possible values are individual, shop, small_group, medicare_advantage, large_group, level_funded | ||||||
Array of objects (VisionPlanSearchApplicant) Example: [{"age":21,"child":false,"gender":"F"}] Applicants for desired plans. | |||||||
Array
| |||||||
| enrollment_date | string <date> Example: "2026-04-02" Date of enrollment | ||||||
| fips_code | string Example: "36081" County code to determine eligibility | ||||||
| page | integer Example: "1" Selected page of paginated response. | ||||||
| per_page | integer Example: "20" Results per page of response. | ||||||
| zip_code | string Example: "11423" 5-digit zip code - this helps determine pricing. | ||||||
| X-RateLimit-Limit | integer Maximum requests allowed in the current rate-limit window (per minute) |
| X-RateLimit-Remaining | integer Requests remaining in the current rate-limit window |
| Total | integer Example: "150" Total number of records matching the query across all pages |
| Per-Page | integer Example: "25" Number of records returned per page |
| Page | integer Example: "1" Current page number |
| Link | string Example: "<https://api.ideonapi.com/networks?page=2&per_page=25>; rel=\"next\", <https://api.ideonapi.com/networks?page=1&per_page=25>; rel=\"first\"" RFC-5988 pagination links containing |
object (Meta) Example: {"total":1} | |||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||
Array of objects (V8_PlanSearchEntity) Example: [{"audience":"small_group","benefits":{"additional_pairs_of_eyeglasses":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"contact_lenses_conventional":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"contact_lenses_disposable":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"contact_lenses_medically_necessary":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"eye_exam":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"eyeglass_lenses_bifocal":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"eyeglass_lenses_lenticular":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"eyeglass_lenses_single_vision":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"eyeglass_lenses_trifocal":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"frame":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"laser_vision_correction":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"photochromatic_lenses":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"polarized_lenses":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"premium_antireflective_coating":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"premium_contact_lens_fit_and_follow_up":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"premium_progressive_lenses":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"retinal_imaging":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"standard_antireflective_coating":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"standard_contact_lens_fit_and_follow_up":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"standard_polycarbonate_lenses_adult":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"standard_polycarbonate_lenses_child":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"standard_progressive_lenses":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"standard_scratch_resistance":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"tint":{"in_network":"30% after deductible","out_of_network":"50% after deductible"},"uv_coating":{"in_network":"30% after deductible","out_of_network":"50% after deductible"}},"benefits_summary_url":"http://www.example.com/benefits_summary.pdf","carrier":{"id":"bae1d0e1-80dc-48f4-918d-6c492340cc1c","issuer_id":"A0027","logo_url":"https://d1hm12jr612u3r.cloudfront.net/images/carriers/174/1438891372/thumb.png?1438891372","name":"Guardian"},"carrier_disclaimers":"See Summary of Benefits and Coverage (SBC) for more details.","exam_copay":"$50","id":"uaLcmyru","identifiers":[{"type":"issuer_internal_id","value":"Identifier 1"}],"issuer_name":"Guardian","logo_url":"http://www.example.com/logo.jpg","materials_copay":"$120","name":"Some Vision Plan","network_size":5000,"networks":[{"id":1,"name":"Open Choice","provider_directory_url":"https://www.example.com/find-a-doctor"}],"plan_type":"PPO","premium":533.24,"premium_source":"carrier","product_line":"medical","quoted_via_carrier_api":false,"service_area_id":"11234-2016-WI01-individual","service_frequency":{"contacts":"1 item(s) per 12 month(s)","exams":"1 exam(s) per 12 month(s)","frames":"1 item(s) per 12 month(s)","lenses":"1 item(s) per 12 month(s)"},"source":"carrier","stand_alone":false}] Vision plan search results | |||||||||||||||||||||||||||||||||||||||||||||||
Array
| |||||||||||||||||||||||||||||||||||||||||||||||
{- "applicants": [
- {
- "age": 21,
- "child": false,
- "gender": "F"
}
], - "enrollment_date": "2026-04-02",
- "fips_code": "36081",
- "market": "individual",
- "page": 1,
- "per_page": 20,
- "zip_code": "11423"
}{- "meta": {
- "total": 1
}, - "plans": [
- {
- "audience": "small_group",
- "carrier_disclaimers": "See Summary of Benefits and Coverage (SBC) for more details.",
- "exam_copay": "$50",
- "id": "uaLcmyru",
- "issuer_name": "Guardian",
- "materials_copay": "$120",
- "name": "Some Vision Plan",
- "network_size": 5000,
- "plan_type": "PPO",
- "premium": 533.24,
- "premium_source": "carrier",
- "product_line": "medical",
- "quoted_via_carrier_api": false,
- "service_area_id": "11234-2016-WI01-individual",
- "source": "carrier",
- "stand_alone": false
}
]
}v6: The documentation for this endpoint references this latest available version.
Returns the full record for a single Life plan by id. Includes all benefit fields, premium metadata, identifiers, and plan documents.
For searching available plans by location and applicant criteria, use Search Life Plans.
For automated workflows, cache plan inventory via Bulk Exports. These Show and Search endpoints are best suited to ad-hoc lookups — for example, surfacing plan details in response to a specific user action, or refreshing a single plan record. For high-volume or scheduled access (powering search UIs, plan comparison tools, member portals), pull the Plans dataset from Bulk Exports on a daily or weekly cadence and join against the cached benefits client-side. This pattern dramatically reduces latency on real-time flows and removes API rate limit pressure.
| id required | string Example: NMQKsN5i ID of the Plan |
| year | integer Example: year=2026 Plan year (defaults to current year) |
| select | string Example: select=id,name,carrier_name Comma-separated list of response fields to include, enabling partial responses. Use dot notation for nested fields. Example: id,name,carrier_name |
| Accept-Version | string Enum: "v6" "v7" "v8" "v9" Example: v8 API version requested (v6, v7, v8, or v9) |
| X-RateLimit-Limit | integer Maximum requests allowed in the current rate-limit window (per minute) |
| X-RateLimit-Remaining | integer Requests remaining in the current rate-limit window |
| Cache-Control | string Example: "public, max-age=3600" Caching directives for static plan data. Plan data is cacheable for up to 1 hour; quote and rate data is not cached. |
| ETag | string Example: "\"a1b2c3d4e5f6\"" Entity tag for cache validation. Allows conditional requests using If-None-Match. |
object (V6_Response_Plans_Life_Plan) Example: {"accelerated_life_benefit":false,"accidental_death_dismemberment_covered_members":{"child":true,"employee":true,"spouse":true},"accidental_death_dismemberment_included":true,"audience":"small_group","benefit_reduction_schedules":[{"age":65,"reduction_amount":"35%"}],"benefits":{"child":{"increment":"$10,000","maximum":"$50,000","minimum":"$10,000"},"employee":{"increment":"$10,000","maximum":"$50,000","minimum":"$10,000"},"spouse":{"increment":"$10,000","maximum":"$50,000","minimum":"$10,000"}},"benefits_summary_url":"https://d2ed110nmrd591.cloudfront.net/blobs/wigcdFDPSjHGkJ5BvYGUsdkZ.pdf","carrier":{"id":"bae1d0e1-80dc-48f4-918d-6c492340cc1c","issuer_id":"A0027","logo_url":"https://d1hm12jr612u3r.cloudfront.net/images/carriers/174/1438891372/thumb.png?1438891372","name":"Guardian"},"carrier_disclaimers":"See Summary of Benefits and Coverage (SBC) for more details.","convertible_after_termination":false,"disabled_premium_waiver":false,"effective_date":"2026-01-01","expiration_date":"2026-12-31","guaranteed_issue_bands":[{"child":"$10,000","employee":"$50,000","maximum_age":64,"maximum_group_size":10,"minimum_age":0,"minimum_group_size":2,"spouse":"$20,000"}],"id":"uaLcmyru","identifiers":[{"type":"contract_id","value":"abc123"}],"name":"Life 15 A","plan_years":[2021,2022],"premium_increase":false,"quoted_via_carrier_api":false,"source":"carrier_direct","updated_at":"2026-01-01","voluntary":false} | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{- "life_plan": {
- "accelerated_life_benefit": false,
- "accidental_death_dismemberment_covered_members": {
- "child": true,
- "employee": true,
- "spouse": true
}, - "accidental_death_dismemberment_included": true,
- "audience": "small_group",
- "carrier": {
- "id": "bae1d0e1-80dc-48f4-918d-6c492340cc1c",
- "issuer_id": "A0027",
- "name": "Guardian"
}, - "carrier_disclaimers": "See Summary of Benefits and Coverage (SBC) for more details.",
- "convertible_after_termination": false,
- "disabled_premium_waiver": false,
- "effective_date": "2026-01-01",
- "expiration_date": "2026-12-31",
- "id": "uaLcmyru",
- "name": "Life 15 A",
- "plan_years": [
- 2021,
- 2022
], - "premium_increase": false,
- "quoted_via_carrier_api": false,
- "source": "carrier_direct",
- "updated_at": "2026-01-01",
- "voluntary": false
}
}v6: The documentation for this endpoint references this latest available version.
Searches available Life plans for an individual or small group market. Returns plans available in the specified location with premiums, benefits, and identifiers. Supports filtering by carrier, age, gender (where applicable for the product line), tobacco status (where applicable), effective date, and applicant composition.
For retrieving the full record of a known plan, use Show Life Plan.
For automated workflows, cache plan inventory via Bulk Exports. These Show and Search endpoints are best suited to ad-hoc lookups — for example, surfacing plan details in response to a specific user action, or refreshing a single plan record. For high-volume or scheduled access (powering search UIs, plan comparison tools, member portals), pull the Plans dataset from Bulk Exports on a daily or weekly cadence and join against the cached benefits client-side. This pattern dramatically reduces latency on real-time flows and removes API rate limit pressure.
| page | integer Example: page=1 Page of paginated response |
| per_page | integer <= 50 Example: per_page=1 Responses per page |
| Accept-Version | string Example: v6 API version requested |
| market required | string Enum: "individual" "shop" "small_group" "medicare_advantage" "large_group" "level_funded" Example: "individual" The audience of plan to search for. Possible values are individual, shop, small_group, medicare_advantage, large_group, level_funded |
| enrollment_date | string <date> Example: "2026-04-02" Date of enrollment |
| fips_code | string Example: "36081" County code to determine eligibility |
| page | integer Example: "1" Selected page of paginated response. |
| per_page | integer Example: "20" Results per page of response. |
| zip_code | string Example: "11423" 5-digit zip code - this helps determine pricing. |
| X-RateLimit-Limit | integer Maximum requests allowed in the current rate-limit window (per minute) |
| X-RateLimit-Remaining | integer Requests remaining in the current rate-limit window |
| Total | integer Example: "150" Total number of records matching the query across all pages |
| Per-Page | integer Example: "25" Number of records returned per page |
| Page | integer Example: "1" Current page number |
| Link | string Example: "<https://api.ideonapi.com/networks?page=2&per_page=25>; rel=\"next\", <https://api.ideonapi.com/networks?page=1&per_page=25>; rel=\"first\"" RFC-5988 pagination links containing |
object (Meta) Example: {"total":1} | |||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||
Array of objects (V6_Response_Plans_Life_Plan) Example: [{"accelerated_life_benefit":false,"accidental_death_dismemberment_covered_members":{"child":true,"employee":true,"spouse":true},"accidental_death_dismemberment_included":true,"audience":"small_group","benefit_reduction_schedules":[{"age":65,"reduction_amount":"35%"}],"benefits":{"child":{"increment":"$10,000","maximum":"$50,000","minimum":"$10,000"},"employee":{"increment":"$10,000","maximum":"$50,000","minimum":"$10,000"},"spouse":{"increment":"$10,000","maximum":"$50,000","minimum":"$10,000"}},"benefits_summary_url":"https://d2ed110nmrd591.cloudfront.net/blobs/wigcdFDPSjHGkJ5BvYGUsdkZ.pdf","carrier":{"id":"bae1d0e1-80dc-48f4-918d-6c492340cc1c","issuer_id":"A0027","logo_url":"https://d1hm12jr612u3r.cloudfront.net/images/carriers/174/1438891372/thumb.png?1438891372","name":"Guardian"},"carrier_disclaimers":"See Summary of Benefits and Coverage (SBC) for more details.","convertible_after_termination":false,"disabled_premium_waiver":false,"effective_date":"2026-01-01","expiration_date":"2026-12-31","guaranteed_issue_bands":[{"child":"$10,000","employee":"$50,000","maximum_age":64,"maximum_group_size":10,"minimum_age":0,"minimum_group_size":2,"spouse":"$20,000"}],"id":"uaLcmyru","identifiers":[{"type":"contract_id","value":"abc123"}],"name":"Life 15 A","plan_years":[2021,2022],"premium_increase":false,"quoted_via_carrier_api":false,"source":"carrier_direct","updated_at":"2026-01-01","voluntary":false}] Life plan search results | |||||||||||||||||||||||||||||||||||||||||||||||
Array
| |||||||||||||||||||||||||||||||||||||||||||||||
{- "enrollment_date": "2026-04-02",
- "fips_code": "36081",
- "market": "individual",
- "page": 1,
- "per_page": 20,
- "zip_code": "11423"
}{- "meta": {
- "total": 1
}, - "plans": [
- {
- "accelerated_life_benefit": false,
- "accidental_death_dismemberment_included": true,
- "audience": "small_group",
- "carrier_disclaimers": "See Summary of Benefits and Coverage (SBC) for more details.",
- "convertible_after_termination": false,
- "disabled_premium_waiver": false,
- "effective_date": "2026-01-01",
- "expiration_date": "2026-12-31",
- "id": "uaLcmyru",
- "name": "Life 15 A",
- "plan_years": [
- 2021,
- 2022
], - "premium_increase": false,
- "quoted_via_carrier_api": false,
- "source": "carrier_direct",
- "updated_at": "2026-01-01",
- "voluntary": false
}
]
}v6: The documentation for this endpoint references this latest available version.
Returns the full record for a single Disability plan by id. Includes all benefit fields, premium metadata, identifiers, and plan documents.
For searching available plans by location and applicant criteria, use Search Disability Plans.
Quoting note. Beam Disability plans require annual_salary and hours_per_week on every member submitted via Create Members; members missing those fields cannot be quoted for Beam.
For automated workflows, cache plan inventory via Bulk Exports. These Show and Search endpoints are best suited to ad-hoc lookups — for example, surfacing plan details in response to a specific user action, or refreshing a single plan record. For high-volume or scheduled access (powering search UIs, plan comparison tools, member portals), pull the Plans dataset from Bulk Exports on a daily or weekly cadence and join against the cached benefits client-side. This pattern dramatically reduces latency on real-time flows and removes API rate limit pressure.
| id required | string Example: Ngchc4DL ID of the Plan |
| year | integer Example: year=2026 Plan year (defaults to current year) |
| select | string Example: select=id,name,carrier_name Comma-separated list of response fields to include, enabling partial responses. Use dot notation for nested fields. Example: id,name,carrier_name |
| Accept-Version | string Enum: "v6" "v7" "v8" "v9" Example: v8 API version requested (v6, v7, v8, or v9) |
| X-RateLimit-Limit | integer Maximum requests allowed in the current rate-limit window (per minute) |
| X-RateLimit-Remaining | integer Requests remaining in the current rate-limit window |
| Cache-Control | string Example: "public, max-age=3600" Caching directives for static plan data. Plan data is cacheable for up to 1 hour; quote and rate data is not cached. |
| ETag | string Example: "\"a1b2c3d4e5f6\"" Entity tag for cache validation. Allows conditional requests using If-None-Match. |
object (V6_Response_Plans_Disability_Plan) Example: {"audience":"small_group","benefit":{"amount":"50% of salary","maximum_amount":"$500","maximum_duration":"13 weeks"},"benefits_summary_url":"https://d2ed110nmrd591.cloudfront.net/blobs/i6XqimNu7KpSbJjKU5HeTSp1.pdf","carrier":{"id":"bae1d0e1-80dc-48f4-918d-6c492340cc1c","issuer_id":"A0027","logo_url":"https://d1hm12jr612u3r.cloudfront.net/images/carriers/174/1438891372/thumb.png?1438891372","name":"Guardian"},"carrier_disclaimers":"See Summary of Benefits and Coverage (SBC) for more details.","disabled_premium_waiver":false,"effective_date":"2026-01-01","expiration_date":"2026-12-31","id":"uaLcmyru","identifiers":[{"type":"contract_id","value":"abc123"}],"name":"STD 8-8-13","own_occupation_disability_definition":"3 months","plan_years":[2021,2022],"quoted_via_carrier_api":false,"source":"carrier_direct","term":"short_term","updated_at":"2026-01-01","voluntary":false,"waiting_period_accident":"8 days","waiting_period_illness":"8 days"} | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{- "disability_plan": {
- "audience": "small_group",
- "benefit": {
- "amount": "50% of salary",
- "maximum_amount": "$500",
- "maximum_duration": "13 weeks"
}, - "carrier": {
- "id": "bae1d0e1-80dc-48f4-918d-6c492340cc1c",
- "issuer_id": "A0027",
- "name": "Guardian"
}, - "carrier_disclaimers": "See Summary of Benefits and Coverage (SBC) for more details.",
- "disabled_premium_waiver": false,
- "effective_date": "2026-01-01",
- "expiration_date": "2026-12-31",
- "id": "uaLcmyru",
- "name": "STD 8-8-13",
- "own_occupation_disability_definition": "3 months",
- "plan_years": [
- 2021,
- 2022
], - "quoted_via_carrier_api": false,
- "source": "carrier_direct",
- "term": "short_term",
- "updated_at": "2026-01-01",
- "voluntary": false,
- "waiting_period_accident": "8 days",
- "waiting_period_illness": "8 days"
}
}v6: The documentation for this endpoint references this latest available version.
Searches available Disability plans for an individual or small group market. Returns plans available in the specified location with premiums, benefits, and identifiers. Supports filtering by carrier, age, gender (where applicable for the product line), tobacco status (where applicable), effective date, and applicant composition.
For retrieving the full record of a known plan, use Show Disability Plan.
Quoting note. Beam Disability plans require annual_salary and hours_per_week on every member submitted via Create Members; members missing those fields cannot be quoted for Beam.
For automated workflows, cache plan inventory via Bulk Exports. These Show and Search endpoints are best suited to ad-hoc lookups — for example, surfacing plan details in response to a specific user action, or refreshing a single plan record. For high-volume or scheduled access (powering search UIs, plan comparison tools, member portals), pull the Plans dataset from Bulk Exports on a daily or weekly cadence and join against the cached benefits client-side. This pattern dramatically reduces latency on real-time flows and removes API rate limit pressure.
| page | integer Example: page=1 Page of paginated response |
| per_page | integer <= 50 Example: per_page=1 Responses per page |
| Accept-Version | string Example: v6 API version requested |
| market required | string Enum: "individual" "shop" "small_group" "medicare_advantage" "large_group" "level_funded" Example: "individual" The audience of plan to search for. Possible values are individual, shop, small_group, medicare_advantage, large_group, level_funded |
| enrollment_date | string <date> Example: "2026-04-02" Date of enrollment |
| fips_code | string Example: "36081" County code to determine eligibility |
| page | integer Example: "1" Selected page of paginated response. |
| per_page | integer Example: "20" Results per page of response. |
| zip_code | string Example: "11423" 5-digit zip code - this helps determine pricing. |
| X-RateLimit-Limit | integer Maximum requests allowed in the current rate-limit window (per minute) |
| X-RateLimit-Remaining | integer Requests remaining in the current rate-limit window |
| Total | integer Example: "150" Total number of records matching the query across all pages |
| Per-Page | integer Example: "25" Number of records returned per page |
| Page | integer Example: "1" Current page number |
| Link | string Example: "<https://api.ideonapi.com/networks?page=2&per_page=25>; rel=\"next\", <https://api.ideonapi.com/networks?page=1&per_page=25>; rel=\"first\"" RFC-5988 pagination links containing |
object (Meta) Example: {"total":1} | |||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||
Array of objects (V6_Response_Plans_Disability_Plan) Example: [{"audience":"small_group","benefit":{"amount":"50% of salary","maximum_amount":"$500","maximum_duration":"13 weeks"},"benefits_summary_url":"https://d2ed110nmrd591.cloudfront.net/blobs/i6XqimNu7KpSbJjKU5HeTSp1.pdf","carrier":{"id":"bae1d0e1-80dc-48f4-918d-6c492340cc1c","issuer_id":"A0027","logo_url":"https://d1hm12jr612u3r.cloudfront.net/images/carriers/174/1438891372/thumb.png?1438891372","name":"Guardian"},"carrier_disclaimers":"See Summary of Benefits and Coverage (SBC) for more details.","disabled_premium_waiver":false,"effective_date":"2026-01-01","expiration_date":"2026-12-31","id":"uaLcmyru","identifiers":[{"type":"contract_id","value":"abc123"}],"name":"STD 8-8-13","own_occupation_disability_definition":"3 months","plan_years":[2021,2022],"quoted_via_carrier_api":false,"source":"carrier_direct","term":"short_term","updated_at":"2026-01-01","voluntary":false,"waiting_period_accident":"8 days","waiting_period_illness":"8 days"}] Disability plan search results | |||||||||||||||||||||||||||||||||||||||||
Array
| |||||||||||||||||||||||||||||||||||||||||
{- "enrollment_date": "2026-04-02",
- "fips_code": "36081",
- "market": "individual",
- "page": 1,
- "per_page": 20,
- "zip_code": "11423"
}{- "meta": {
- "total": 1
}, - "plans": [
- {
- "audience": "small_group",
- "carrier_disclaimers": "See Summary of Benefits and Coverage (SBC) for more details.",
- "disabled_premium_waiver": false,
- "effective_date": "2026-01-01",
- "expiration_date": "2026-12-31",
- "id": "uaLcmyru",
- "name": "STD 8-8-13",
- "own_occupation_disability_definition": "3 months",
- "plan_years": [
- 2021,
- 2022
], - "quoted_via_carrier_api": false,
- "source": "carrier_direct",
- "term": "short_term",
- "updated_at": "2026-01-01",
- "voluntary": false,
- "waiting_period_accident": "8 days",
- "waiting_period_illness": "8 days"
}
]
}v6: The documentation for this endpoint references this latest available version.
Returns the full record for a single Accident plan by id. Includes all benefit fields, premium metadata, identifiers, and plan documents.
For searching available plans by location and applicant criteria, use Search Accident Plans.
For automated workflows, cache plan inventory via Bulk Exports. These Show and Search endpoints are best suited to ad-hoc lookups — for example, surfacing plan details in response to a specific user action, or refreshing a single plan record. For high-volume or scheduled access (powering search UIs, plan comparison tools, member portals), pull the Plans dataset from Bulk Exports on a daily or weekly cadence and join against the cached benefits client-side. This pattern dramatically reduces latency on real-time flows and removes API rate limit pressure.
| id required | string Example: L1jzke75 ID of the Plan |
| year | integer Example: year=2026 Plan year (defaults to current year) |
| select | string Example: select=id,name,carrier_name Comma-separated list of response fields to include, enabling partial responses. Use dot notation for nested fields. Example: id,name,carrier_name |
| Accept-Version | string Enum: "v6" "v7" "v8" "v9" Example: v8 API version requested (v6, v7, v8, or v9) |
| X-RateLimit-Limit | integer Maximum requests allowed in the current rate-limit window (per minute) |
| X-RateLimit-Remaining | integer Requests remaining in the current rate-limit window |
| Cache-Control | string Example: "public, max-age=3600" Caching directives for static plan data. Plan data is cacheable for up to 1 hour; quote and rate data is not cached. |
| ETag | string Example: "\"a1b2c3d4e5f6\"" Entity tag for cache validation. Allows conditional requests using If-None-Match. |
object (V6_Response_Plans_Accident_Plan) Example: {"24_hour":false,"accidental_death_benefit":{"child":"$20,000","employee":"$300,000","spouse":"$50,000"},"accidental_death_dismemberment_included":false,"ambulance":{"benefit":"$50","limit":"1 time(s) per year"},"audience":"small_group","benefits_summary_url":"https://d2ed110nmrd591.cloudfront.net/blobs/i6XqimNu7KpSbJjKU5HeTSp1.pdf","burns":{"benefit":"$50","limit":"1 time(s) per year"},"carrier":{"id":"bae1d0e1-80dc-48f4-918d-6c492340cc1c","issuer_id":"A0027","logo_url":"https://d1hm12jr612u3r.cloudfront.net/images/carriers/174/1438891372/thumb.png?1438891372","name":"Guardian"},"carrier_disclaimers":"See Summary of Benefits and Coverage (SBC) for more details.","common_carrier_death_benefit":{"child":"$20,000","employee":"$300,000","spouse":"$50,000"},"diagnostic_exam":{"benefit":"$50","limit":"1 time(s) per year"},"dislocations":{"benefit":"$50","limit":"1 time(s) per year"},"effective_date":"2026-01-01","emergency_room_treatment":{"benefit":"$50","limit":"1 time(s) per year"},"expiration_date":"2026-12-31","eye_injury":{"benefit":"$50","limit":"1 time(s) per year"},"fractures":{"benefit":"$50","limit":"1 time(s) per year"},"hospital_admission":{"benefit":"$50","limit":"1 time(s) per year"},"hospital_admission_icu":{"benefit":"$50","limit":"1 time(s) per year"},"hospital_confinement":{"benefit":"$50","limit":"1 time(s) per year"},"hospital_confinement_icu":{"benefit":"$50","limit":"1 time(s) per year"},"id":"uaLcmyru","identifiers":[{"type":"contract_id","value":"abc123"}],"name":"STD 8-8-13","outpatient_therapy":{"benefit":"$50","limit":"1 time(s) per year"},"plan_years":[2021,2022],"portability":"included","quoted_via_carrier_api":false,"rate_guarantee":"true","source":"carrier_direct","treatment_doctors_office_initial":{"benefit":"$50","limit":"1 time(s) per year"},"treatment_follow_up":{"benefit":"$50","limit":"1 time(s) per year"},"treatment_urgent_care_initial":{"benefit":"$50","limit":"1 time(s) per year"},"updated_at":"2026-01-01","voluntary":false,"wellness":{"benefit":"$50","limit":"1 time(s) per year"}} | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{- "accident_plan": {
- "24_hour": false,
- "accidental_death_benefit": {
- "child": "$20,000",
- "employee": "$300,000",
- "spouse": "$50,000"
}, - "accidental_death_dismemberment_included": false,
- "ambulance": {
- "benefit": "$50",
- "limit": "1 time(s) per year"
}, - "audience": "small_group",
- "burns": {
- "benefit": "$50",
- "limit": "1 time(s) per year"
}, - "carrier": {
- "id": "bae1d0e1-80dc-48f4-918d-6c492340cc1c",
- "issuer_id": "A0027",
- "name": "Guardian"
}, - "carrier_disclaimers": "See Summary of Benefits and Coverage (SBC) for more details.",
- "common_carrier_death_benefit": {
- "child": "$20,000",
- "employee": "$300,000",
- "spouse": "$50,000"
}, - "diagnostic_exam": {
- "benefit": "$50",
- "limit": "1 time(s) per year"
}, - "dislocations": {
- "benefit": "$50",
- "limit": "1 time(s) per year"
}, - "effective_date": "2026-01-01",
- "emergency_room_treatment": {
- "benefit": "$50",
- "limit": "1 time(s) per year"
}, - "expiration_date": "2026-12-31",
- "eye_injury": {
- "benefit": "$50",
- "limit": "1 time(s) per year"
}, - "fractures": {
- "benefit": "$50",
- "limit": "1 time(s) per year"
}, - "hospital_admission": {
- "benefit": "$50",
- "limit": "1 time(s) per year"
}, - "hospital_admission_icu": {
- "benefit": "$50",
- "limit": "1 time(s) per year"
}, - "hospital_confinement": {
- "benefit": "$50",
- "limit": "1 time(s) per year"
}, - "hospital_confinement_icu": {
- "benefit": "$50",
- "limit": "1 time(s) per year"
}, - "id": "uaLcmyru",
- "name": "STD 8-8-13",
- "outpatient_therapy": {
- "benefit": "$50",
- "limit": "1 time(s) per year"
}, - "plan_years": [
- 2021,
- 2022
], - "portability": "included",
- "quoted_via_carrier_api": false,
- "rate_guarantee": "true",
- "source": "carrier_direct",
- "treatment_doctors_office_initial": {
- "benefit": "$50",
- "limit": "1 time(s) per year"
}, - "treatment_follow_up": {
- "benefit": "$50",
- "limit": "1 time(s) per year"
}, - "treatment_urgent_care_initial": {
- "benefit": "$50",
- "limit": "1 time(s) per year"
}, - "updated_at": "2026-01-01",
- "voluntary": false,
- "wellness": {
- "benefit": "$50",
- "limit": "1 time(s) per year"
}
}
}v6: The documentation for this endpoint references this latest available version.
Searches available Accident plans for an individual or small group market. Returns plans available in the specified location with premiums, benefits, and identifiers. Supports filtering by carrier, age, gender (where applicable for the product line), tobacco status (where applicable), effective date, and applicant composition.
For retrieving the full record of a known plan, use Show Accident Plan.
For automated workflows, cache plan inventory via Bulk Exports. These Show and Search endpoints are best suited to ad-hoc lookups — for example, surfacing plan details in response to a specific user action, or refreshing a single plan record. For high-volume or scheduled access (powering search UIs, plan comparison tools, member portals), pull the Plans dataset from Bulk Exports on a daily or weekly cadence and join against the cached benefits client-side. This pattern dramatically reduces latency on real-time flows and removes API rate limit pressure.
| page | integer Example: page=1 Page of paginated response |
| per_page | integer <= 50 Example: per_page=1 Responses per page |
| Accept-Version | string Example: v6 API version requested |
| market required | string Enum: "individual" "shop" "small_group" "medicare_advantage" "large_group" "level_funded" Example: "individual" The audience of plan to search for. Possible values are individual, shop, small_group, medicare_advantage, large_group, level_funded |
| enrollment_date | string <date> Example: "2026-04-02" Date of enrollment |
| fips_code | string Example: "36081" County code to determine eligibility |
| page | integer Example: "1" Selected page of paginated response. |
| per_page | integer Example: "20" Results per page of response. |
| zip_code | string Example: "11423" 5-digit zip code - this helps determine pricing. |
| X-RateLimit-Limit | integer Maximum requests allowed in the current rate-limit window (per minute) |
| X-RateLimit-Remaining | integer Requests remaining in the current rate-limit window |
| Total | integer Example: "150" Total number of records matching the query across all pages |
| Per-Page | integer Example: "25" Number of records returned per page |
| Page | integer Example: "1" Current page number |
| Link | string Example: "<https://api.ideonapi.com/networks?page=2&per_page=25>; rel=\"next\", <https://api.ideonapi.com/networks?page=1&per_page=25>; rel=\"first\"" RFC-5988 pagination links containing |
object (Meta) Example: {"total":1} | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Array of objects (V6_Response_Plans_Accident_Plan) Example: [{"24_hour":false,"accidental_death_benefit":{"child":"$20,000","employee":"$300,000","spouse":"$50,000"},"accidental_death_dismemberment_included":false,"ambulance":{"benefit":"$50","limit":"1 time(s) per year"},"audience":"small_group","benefits_summary_url":"https://d2ed110nmrd591.cloudfront.net/blobs/i6XqimNu7KpSbJjKU5HeTSp1.pdf","burns":{"benefit":"$50","limit":"1 time(s) per year"},"carrier":{"id":"bae1d0e1-80dc-48f4-918d-6c492340cc1c","issuer_id":"A0027","logo_url":"https://d1hm12jr612u3r.cloudfront.net/images/carriers/174/1438891372/thumb.png?1438891372","name":"Guardian"},"carrier_disclaimers":"See Summary of Benefits and Coverage (SBC) for more details.","common_carrier_death_benefit":{"child":"$20,000","employee":"$300,000","spouse":"$50,000"},"diagnostic_exam":{"benefit":"$50","limit":"1 time(s) per year"},"dislocations":{"benefit":"$50","limit":"1 time(s) per year"},"effective_date":"2026-01-01","emergency_room_treatment":{"benefit":"$50","limit":"1 time(s) per year"},"expiration_date":"2026-12-31","eye_injury":{"benefit":"$50","limit":"1 time(s) per year"},"fractures":{"benefit":"$50","limit":"1 time(s) per year"},"hospital_admission":{"benefit":"$50","limit":"1 time(s) per year"},"hospital_admission_icu":{"benefit":"$50","limit":"1 time(s) per year"},"hospital_confinement":{"benefit":"$50","limit":"1 time(s) per year"},"hospital_confinement_icu":{"benefit":"$50","limit":"1 time(s) per year"},"id":"uaLcmyru","identifiers":[{"type":"contract_id","value":"abc123"}],"name":"STD 8-8-13","outpatient_therapy":{"benefit":"$50","limit":"1 time(s) per year"},"plan_years":[2021,2022],"portability":"included","quoted_via_carrier_api":false,"rate_guarantee":"true","source":"carrier_direct","treatment_doctors_office_initial":{"benefit":"$50","limit":"1 time(s) per year"},"treatment_follow_up":{"benefit":"$50","limit":"1 time(s) per year"},"treatment_urgent_care_initial":{"benefit":"$50","limit":"1 time(s) per year"},"updated_at":"2026-01-01","voluntary":false,"wellness":{"benefit":"$50","limit":"1 time(s) per year"}}] Accident plan search results | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Array
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{- "enrollment_date": "2026-04-02",
- "fips_code": "36081",
- "market": "individual",
- "page": 1,
- "per_page": 20,
- "zip_code": "11423"
}{- "meta": {
- "total": 1
}, - "plans": [
- {
- "24_hour": false,
- "accidental_death_dismemberment_included": false,
- "audience": "small_group",
- "carrier_disclaimers": "See Summary of Benefits and Coverage (SBC) for more details.",
- "effective_date": "2026-01-01",
- "expiration_date": "2026-12-31",
- "id": "uaLcmyru",
- "name": "STD 8-8-13",
- "plan_years": [
- 2021,
- 2022
], - "portability": "included",
- "quoted_via_carrier_api": false,
- "rate_guarantee": "true",
- "source": "carrier_direct",
- "updated_at": "2026-01-01",
- "voluntary": false
}
]
}v6: The documentation for this endpoint references this latest available version.
Returns the full record for a single Critical Illness plan by id. Includes all benefit fields, premium metadata, identifiers, and plan documents.
For searching available plans by location and applicant criteria, use Search Critical Illness Plans.
For automated workflows, cache plan inventory via Bulk Exports. These Show and Search endpoints are best suited to ad-hoc lookups — for example, surfacing plan details in response to a specific user action, or refreshing a single plan record. For high-volume or scheduled access (powering search UIs, plan comparison tools, member portals), pull the Plans dataset from Bulk Exports on a daily or weekly cadence and join against the cached benefits client-side. This pattern dramatically reduces latency on real-time flows and removes API rate limit pressure.
| id required | string Example: CgFmdiDh ID of the Plan |
| year | integer Example: year=2026 Plan year (defaults to current year) |
| select | string Example: select=id,name,carrier_name Comma-separated list of response fields to include, enabling partial responses. Use dot notation for nested fields. Example: id,name,carrier_name |
| Accept-Version | string Enum: "v6" "v7" "v8" "v9" Example: v8 API version requested (v6, v7, v8, or v9) |
| X-RateLimit-Limit | integer Maximum requests allowed in the current rate-limit window (per minute) |
| X-RateLimit-Remaining | integer Requests remaining in the current rate-limit window |
| Cache-Control | string Example: "public, max-age=3600" Caching directives for static plan data. Plan data is cacheable for up to 1 hour; quote and rate data is not cached. |
| ETag | string Example: "\"a1b2c3d4e5f6\"" Entity tag for cache validation. Allows conditional requests using If-None-Match. |
object (CriticalIllnessPlan) Example: {"audience":"small_group","benefit_reduction_schedules":[{"age":80,"reduction_amount":"50%"}],"benefits":{"addisons_disease":{"first_occurrence":"100%","limit":"1 time(s) per year","second_occurrence":"50%"},"als_lou_gehrigs_disease":{"first_occurrence":"100%","limit":"1 time(s) per year","second_occurrence":"50%"},"alzheimers_disease":{"first_occurrence":"100%","limit":"1 time(s) per year","second_occurrence":"50%"},"coma":{"first_occurrence":"100%","limit":"1 time(s) per year","second_occurrence":"50%"},"coronary_artery_bypass_surgery":{"first_occurrence":"100%","limit":"1 time(s) per year","second_occurrence":"50%"},"coronary_artery_disease":{"first_occurrence":"100%","limit":"1 time(s) per year","second_occurrence":"50%"},"heart_attack":{"first_occurrence":"100%","limit":"1 time(s) per year","second_occurrence":"50%"},"invasive_cancer":{"first_occurrence":"100%","limit":"1 time(s) per year","second_occurrence":"50%"},"kidney_failure":{"first_occurrence":"100%","limit":"1 time(s) per year","second_occurrence":"50%"},"loss_of_hearing":{"first_occurrence":"100%","limit":"1 time(s) per year","second_occurrence":"50%"},"loss_of_sight":{"first_occurrence":"100%","limit":"1 time(s) per year","second_occurrence":"50%"},"major_organ_transplant":{"first_occurrence":"100%","limit":"1 time(s) per year","second_occurrence":"50%"},"non_invasive_cancer":{"first_occurrence":"100%","limit":"1 time(s) per year","second_occurrence":"50%"},"organ_failure":{"first_occurrence":"100%","limit":"1 time(s) per year","second_occurrence":"50%"},"paralysis":{"first_occurrence":"100%","limit":"1 time(s) per year","second_occurrence":"50%"},"stroke":{"first_occurrence":"100%","limit":"1 time(s) per year","second_occurrence":"50%"},"wellness":{"benefit":"$100","limit":"1 time(s) per year"}},"benefits_summary_url":"http://www.example.com/benefits_summary.pdf","carrier":{"id":"bae1d0e1-80dc-48f4-918d-6c492340cc1c","issuer_id":"A0027","logo_url":"https://d1hm12jr612u3r.cloudfront.net/images/carriers/174/1438891372/thumb.png?1438891372","name":"Guardian"},"carrier_disclaimers":"See Summary of Benefits and Coverage (SBC) for more details.","effective_date":"2026-01-01","exclusion_period":"6 month(s)","expiration_date":"2026-12-31","guaranteed_issue_bands":[{"child":"$5,000","employee":"$10,000","maximum_group_size":20,"minimum_group_size":10,"spouse":"$5,000"}],"id":"uaLcmyru","identifiers":[{"type":"contract_id","value":"abc123"}],"insured_benefits":{"child":{"increment":"$1,000","maximum":"$10,000","minimum":"$5,000"},"employee":{"increment":"$1,000","maximum":"$10,000","minimum":"$5,000"},"spouse":{"increment":"$1,000","maximum":"$10,000","minimum":"$5,000"}},"issuer_name":"Guardian","look_back_period":"3 month(s)","name":"Critical Illness Plan 1","plan_years":[2021,2022],"portability":"included","premium_increase":"attained age","quoted_via_carrier_api":false,"rate_guarantee":"true","second_occurrence_suspension_period":"6 month(s)","source":"carrier","treatment_free_period":"6 month(s)","voluntary":true} | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{- "critical_illness_plan": {
- "audience": "small_group",
- "carrier": {
- "id": "bae1d0e1-80dc-48f4-918d-6c492340cc1c",
- "issuer_id": "A0027",
- "name": "Guardian"
}, - "carrier_disclaimers": "See Summary of Benefits and Coverage (SBC) for more details.",
- "effective_date": "2026-01-01",
- "exclusion_period": "6 month(s)",
- "expiration_date": "2026-12-31",
- "id": "uaLcmyru",
- "issuer_name": "Guardian",
- "look_back_period": "3 month(s)",
- "name": "Critical Illness Plan 1",
- "plan_years": [
- 2021,
- 2022
], - "portability": "included",
- "premium_increase": "attained age",
- "quoted_via_carrier_api": false,
- "rate_guarantee": "true",
- "second_occurrence_suspension_period": "6 month(s)",
- "source": "carrier",
- "treatment_free_period": "6 month(s)",
- "voluntary": true
}
}v6: The documentation for this endpoint references this latest available version.
Searches available Critical Illness plans for an individual or small group market. Returns plans available in the specified location with premiums, benefits, and identifiers. Supports filtering by carrier, age, gender (where applicable for the product line), tobacco status (where applicable), effective date, and applicant composition.
For retrieving the full record of a known plan, use Show Critical Illness Plan.
For automated workflows, cache plan inventory via Bulk Exports. These Show and Search endpoints are best suited to ad-hoc lookups — for example, surfacing plan details in response to a specific user action, or refreshing a single plan record. For high-volume or scheduled access (powering search UIs, plan comparison tools, member portals), pull the Plans dataset from Bulk Exports on a daily or weekly cadence and join against the cached benefits client-side. This pattern dramatically reduces latency on real-time flows and removes API rate limit pressure.
| page | integer Example: page=1 Page of paginated response |
| per_page | integer <= 50 Example: per_page=1 Responses per page |
| Accept-Version | string Example: v6 API version requested |
| market required | string Enum: "individual" "shop" "small_group" "medicare_advantage" "large_group" "level_funded" Example: "individual" The audience of plan to search for. Possible values are individual, shop, small_group, medicare_advantage, large_group, level_funded | ||||||
Array of objects (CriticalIllnessPlanSearchApplicant) Example: [{"age":21,"child":false,"gender":"F"}] Applicants for desired plans. | |||||||
Array
| |||||||
| enrollment_date | string <date> Example: "2026-04-02" Date of enrollment | ||||||
| fips_code | string Example: "36081" County code to determine eligibility | ||||||
| page | integer Example: "1" Selected page of paginated response. | ||||||
| per_page | integer Example: "20" Results per page of response. | ||||||
| zip_code | string Example: "11423" 5-digit zip code - this helps determine pricing. | ||||||
| X-RateLimit-Limit | integer Maximum requests allowed in the current rate-limit window (per minute) |
| X-RateLimit-Remaining | integer Requests remaining in the current rate-limit window |
| Total | integer Example: "150" Total number of records matching the query across all pages |
| Per-Page | integer Example: "25" Number of records returned per page |
| Page | integer Example: "1" Current page number |
| Link | string Example: "<https://api.ideonapi.com/networks?page=2&per_page=25>; rel=\"next\", <https://api.ideonapi.com/networks?page=1&per_page=25>; rel=\"first\"" RFC-5988 pagination links containing |
object (Meta) Example: {"total":1} | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||
Array of objects (CriticalIllnessPlanSearch) Example: [{"audience":"small_group","benefit_reduction_schedules":[{"age":80,"reduction_amount":"50%"}],"benefits":{"addisons_disease":{"first_occurrence":"100%","limit":"1 time(s) per year","second_occurrence":"50%"},"als_lou_gehrigs_disease":{"first_occurrence":"100%","limit":"1 time(s) per year","second_occurrence":"50%"},"alzheimers_disease":{"first_occurrence":"100%","limit":"1 time(s) per year","second_occurrence":"50%"},"coma":{"first_occurrence":"100%","limit":"1 time(s) per year","second_occurrence":"50%"},"coronary_artery_bypass_surgery":{"first_occurrence":"100%","limit":"1 time(s) per year","second_occurrence":"50%"},"coronary_artery_disease":{"first_occurrence":"100%","limit":"1 time(s) per year","second_occurrence":"50%"},"heart_attack":{"first_occurrence":"100%","limit":"1 time(s) per year","second_occurrence":"50%"},"invasive_cancer":{"first_occurrence":"100%","limit":"1 time(s) per year","second_occurrence":"50%"},"kidney_failure":{"first_occurrence":"100%","limit":"1 time(s) per year","second_occurrence":"50%"},"loss_of_hearing":{"first_occurrence":"100%","limit":"1 time(s) per year","second_occurrence":"50%"},"loss_of_sight":{"first_occurrence":"100%","limit":"1 time(s) per year","second_occurrence":"50%"},"major_organ_transplant":{"first_occurrence":"100%","limit":"1 time(s) per year","second_occurrence":"50%"},"non_invasive_cancer":{"first_occurrence":"100%","limit":"1 time(s) per year","second_occurrence":"50%"},"organ_failure":{"first_occurrence":"100%","limit":"1 time(s) per year","second_occurrence":"50%"},"paralysis":{"first_occurrence":"100%","limit":"1 time(s) per year","second_occurrence":"50%"},"stroke":{"first_occurrence":"100%","limit":"1 time(s) per year","second_occurrence":"50%"},"wellness":{"benefit":"$100","limit":"1 time(s) per year"}},"benefits_summary_url":"http://www.example.com/benefits_summary.pdf","carrier":{"id":"bae1d0e1-80dc-48f4-918d-6c492340cc1c","issuer_id":"A0027","logo_url":"https://d1hm12jr612u3r.cloudfront.net/images/carriers/174/1438891372/thumb.png?1438891372","name":"Guardian"},"carrier_disclaimers":"See Summary of Benefits and Coverage (SBC) for more details.","effective_date":"2026-01-01","exclusion_period":"6 month(s)","expiration_date":"2026-12-31","guaranteed_issue_bands":[{"child":"$5,000","employee":"$10,000","maximum_group_size":20,"minimum_group_size":10,"spouse":"$5,000"}],"id":"uaLcmyru","identifiers":[{"type":"contract_id","value":"abc123"}],"insured_benefits":{"child":{"increment":"$1,000","maximum":"$10,000","minimum":"$5,000"},"employee":{"increment":"$1,000","maximum":"$10,000","minimum":"$5,000"},"spouse":{"increment":"$1,000","maximum":"$10,000","minimum":"$5,000"}},"issuer_name":"Guardian","look_back_period":"3 month(s)","name":"Critical Illness Plan 1","plan_years":[2021,2022],"portability":"included","premium":533.24,"premium_increase":"attained age","premium_source":"carrier","quoted_via_carrier_api":false,"rate_guarantee":"true","second_occurrence_suspension_period":"6 month(s)","source":"carrier","treatment_free_period":"6 month(s)","voluntary":true}] CriticalIllness plan search results | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
Array
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||
{- "applicants": [
- {
- "age": 21,
- "child": false,
- "gender": "F"
}
], - "enrollment_date": "2026-04-02",
- "fips_code": "36081",
- "market": "individual",
- "page": 1,
- "per_page": 20,
- "zip_code": "11423"
}{- "meta": {
- "total": 1
}, - "plans": [
- {
- "audience": "small_group",
- "carrier_disclaimers": "See Summary of Benefits and Coverage (SBC) for more details.",
- "effective_date": "2026-01-01",
- "exclusion_period": "6 month(s)",
- "expiration_date": "2026-12-31",
- "id": "uaLcmyru",
- "issuer_name": "Guardian",
- "look_back_period": "3 month(s)",
- "name": "Critical Illness Plan 1",
- "plan_years": [
- 2021,
- 2022
], - "portability": "included",
- "premium": 533.24,
- "premium_increase": "attained age",
- "premium_source": "carrier",
- "quoted_via_carrier_api": false,
- "rate_guarantee": "true",
- "second_occurrence_suspension_period": "6 month(s)",
- "source": "carrier",
- "treatment_free_period": "6 month(s)",
- "voluntary": true
}
]
}v6: The documentation for this endpoint references this latest available version.
Returns the full record for a single Hospital Indemnity plan by id. Includes all benefit fields, premium metadata, identifiers, and plan documents.
For searching available plans by location and applicant criteria, use Search Hospital Indemnity Plans.
For automated workflows, cache plan inventory via Bulk Exports. These Show and Search endpoints are best suited to ad-hoc lookups — for example, surfacing plan details in response to a specific user action, or refreshing a single plan record. For high-volume or scheduled access (powering search UIs, plan comparison tools, member portals), pull the Plans dataset from Bulk Exports on a daily or weekly cadence and join against the cached benefits client-side. This pattern dramatically reduces latency on real-time flows and removes API rate limit pressure.
| id required | string Example: WPxC66AF ID of the Plan |
| year | integer Example: year=2026 Plan year (defaults to current year) |
| select | string Example: select=id,name,carrier_name Comma-separated list of response fields to include, enabling partial responses. Use dot notation for nested fields. Example: id,name,carrier_name |
| Accept-Version | string Enum: "v6" "v7" "v8" "v9" Example: v8 API version requested (v6, v7, v8, or v9) |
| X-RateLimit-Limit | integer Maximum requests allowed in the current rate-limit window (per minute) |
| X-RateLimit-Remaining | integer Requests remaining in the current rate-limit window |
| Cache-Control | string Example: "public, max-age=3600" Caching directives for static plan data. Plan data is cacheable for up to 1 hour; quote and rate data is not cached. |
| ETag | string Example: "\"a1b2c3d4e5f6\"" Entity tag for cache validation. Allows conditional requests using If-None-Match. |
object (HospitalIndemnityPlan) Example: {"audience":"small_group","benefits":{"hospital_admission":{"benefit":"$50","limit":"1 time(s) per year"},"hospital_admission_icu":{"benefit":"$50","limit":"1 time(s) per year"},"hospital_confinement":{"benefit":"$50","limit":"1 time(s) per year"},"hospital_confinement_icu":{"benefit":"$50","limit":"1 time(s) per year"},"wellness":{"benefit":"$50","limit":"1 time(s) per year"}},"benefits_summary_url":"http://www.example.com/benefits_summary.pdf","carrier":{"id":"bae1d0e1-80dc-48f4-918d-6c492340cc1c","issuer_id":"A0027","logo_url":"https://d1hm12jr612u3r.cloudfront.net/images/carriers/174/1438891372/thumb.png?1438891372","name":"Guardian"},"carrier_disclaimers":"See Summary of Benefits and Coverage (SBC) for more details.","effective_date":"2026-01-01","exclusion_period":"6 month(s)","expiration_date":"2026-12-31","icu_admission_paid_in_addition_to_hospital":false,"icu_confinement_paid_in_addition_to_hospital":false,"id":"uaLcmyru","identifiers":[{"type":"contract_id","value":"abc123"}],"issuer_name":"Guardian","look_back_period":"6 month(s)","name":"Hospital Indemnity Plan 1","plan_years":[2021,2022],"portability":"included","premium_increase":"attained age","quoted_via_carrier_api":false,"rate_guarantee":"true","source":"carrier_direct","treatment_free_period":"6 month(s)","voluntary":true} | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{- "hospital_indemnity_plan": {
- "audience": "small_group",
- "carrier": {
- "id": "bae1d0e1-80dc-48f4-918d-6c492340cc1c",
- "issuer_id": "A0027",
- "name": "Guardian"
}, - "carrier_disclaimers": "See Summary of Benefits and Coverage (SBC) for more details.",
- "effective_date": "2026-01-01",
- "exclusion_period": "6 month(s)",
- "expiration_date": "2026-12-31",
- "icu_admission_paid_in_addition_to_hospital": false,
- "icu_confinement_paid_in_addition_to_hospital": false,
- "id": "uaLcmyru",
- "issuer_name": "Guardian",
- "look_back_period": "6 month(s)",
- "name": "Hospital Indemnity Plan 1",
- "plan_years": [
- 2021,
- 2022
], - "portability": "included",
- "premium_increase": "attained age",
- "quoted_via_carrier_api": false,
- "rate_guarantee": "true",
- "source": "carrier_direct",
- "treatment_free_period": "6 month(s)",
- "voluntary": true
}
}v6: The documentation for this endpoint references this latest available version.
Searches available Hospital Indemnity plans for an individual or small group market. Returns plans available in the specified location with premiums, benefits, and identifiers. Supports filtering by carrier, age, gender (where applicable for the product line), tobacco status (where applicable), effective date, and applicant composition.
For retrieving the full record of a known plan, use Show Hospital Indemnity Plan.
For automated workflows, cache plan inventory via Bulk Exports. These Show and Search endpoints are best suited to ad-hoc lookups — for example, surfacing plan details in response to a specific user action, or refreshing a single plan record. For high-volume or scheduled access (powering search UIs, plan comparison tools, member portals), pull the Plans dataset from Bulk Exports on a daily or weekly cadence and join against the cached benefits client-side. This pattern dramatically reduces latency on real-time flows and removes API rate limit pressure.
| page | integer Example: page=1 Page of paginated response |
| per_page | integer <= 50 Example: per_page=1 Responses per page |
| Accept-Version | string Example: v6 API version requested |
| market required | string Enum: "individual" "shop" "small_group" "medicare_advantage" "large_group" "level_funded" Example: "individual" The audience of plan to search for. Possible values are individual, shop, small_group, medicare_advantage, large_group, level_funded | ||||||
Array of objects (HospitalIndemnityPlanSearchApplicant) Example: [{"age":21,"child":false,"gender":"F"}] Applicants for desired plans. | |||||||
Array
| |||||||
| enrollment_date | string <date> Example: "2026-04-02" Date of enrollment | ||||||
| fips_code | string Example: "36081" County code to determine eligibility | ||||||
| page | integer Example: "1" Selected page of paginated response. | ||||||
| per_page | integer Example: "20" Results per page of response. | ||||||
| zip_code | string Example: "11423" 5-digit zip code - this helps determine pricing. | ||||||
| X-RateLimit-Limit | integer Maximum requests allowed in the current rate-limit window (per minute) |
| X-RateLimit-Remaining | integer Requests remaining in the current rate-limit window |
| Total | integer Example: "150" Total number of records matching the query across all pages |
| Per-Page | integer Example: "25" Number of records returned per page |
| Page | integer Example: "1" Current page number |
| Link | string Example: "<https://api.ideonapi.com/networks?page=2&per_page=25>; rel=\"next\", <https://api.ideonapi.com/networks?page=1&per_page=25>; rel=\"first\"" RFC-5988 pagination links containing |
object (Meta) Example: {"total":1} | |||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||
Array of objects (HospitalIndemnityPlanSearch) Example: [{"audience":"small_group","benefits":{"hospital_admission":{"benefit":"$50","limit":"1 time(s) per year"},"hospital_admission_icu":{"benefit":"$50","limit":"1 time(s) per year"},"hospital_confinement":{"benefit":"$50","limit":"1 time(s) per year"},"hospital_confinement_icu":{"benefit":"$50","limit":"1 time(s) per year"},"wellness":{"benefit":"$50","limit":"1 time(s) per year"}},"benefits_summary_url":"http://www.example.com/benefits_summary.pdf","carrier":{"id":"bae1d0e1-80dc-48f4-918d-6c492340cc1c","issuer_id":"A0027","logo_url":"https://d1hm12jr612u3r.cloudfront.net/images/carriers/174/1438891372/thumb.png?1438891372","name":"Guardian"},"carrier_disclaimers":"See Summary of Benefits and Coverage (SBC) for more details.","effective_date":"2026-01-01","exclusion_period":"6 month(s)","expiration_date":"2026-12-31","icu_admission_paid_in_addition_to_hospital":false,"icu_confinement_paid_in_addition_to_hospital":false,"id":"uaLcmyru","identifiers":[{"type":"contract_id","value":"abc123"}],"issuer_name":"Guardian","look_back_period":"6 month(s)","name":"Hospital Indemnity Plan 1","plan_years":[2021,2022],"portability":"included","premium":533.24,"premium_increase":"attained age","premium_source":"carrier","quoted_via_carrier_api":false,"rate_guarantee":"true","source":"carrier_direct","treatment_free_period":"6 month(s)","voluntary":true}] HospitalIndemnity plan search results | |||||||||||||||||||||||||||||||||||||||||||||||||||
Array
| |||||||||||||||||||||||||||||||||||||||||||||||||||
{- "applicants": [
- {
- "age": 21,
- "child": false,
- "gender": "F"
}
], - "enrollment_date": "2026-04-02",
- "fips_code": "36081",
- "market": "individual",
- "page": 1,
- "per_page": 20,
- "zip_code": "11423"
}{- "meta": {
- "total": 1
}, - "plans": [
- {
- "audience": "small_group",
- "carrier_disclaimers": "See Summary of Benefits and Coverage (SBC) for more details.",
- "effective_date": "2026-01-01",
- "exclusion_period": "6 month(s)",
- "expiration_date": "2026-12-31",
- "icu_admission_paid_in_addition_to_hospital": false,
- "icu_confinement_paid_in_addition_to_hospital": false,
- "id": "uaLcmyru",
- "issuer_name": "Guardian",
- "look_back_period": "6 month(s)",
- "name": "Hospital Indemnity Plan 1",
- "plan_years": [
- 2021,
- 2022
], - "portability": "included",
- "premium": 533.24,
- "premium_increase": "attained age",
- "premium_source": "carrier",
- "quoted_via_carrier_api": false,
- "rate_guarantee": "true",
- "source": "carrier_direct",
- "treatment_free_period": "6 month(s)",
- "voluntary": true
}
]
}