FlexpaFlexpa
Developer PortalGet a DemoTry it yourself

All docs

Availability

    Schema

    • Overview

    Coverage by source

    • Plan identity
    • Which identifier is which
    • Carrier and sponsor
    • Plan-level costs
    • Covered benefits
    • Per-service cost sharing
    • Drug coverage
    • Plan characteristics

    API

    • GETSearch
    • GETRead

    Related Resources

      InsurancePlan

      InsurancePlan is a FHIR resource that describes a health insurance product or plan, including plan-level benefits, costs, coverage area, and issuer details.

      Flexpa API generates InsurancePlan resources for supported Medicare Advantage Part C plans, as well as for specific lines of business for the following payers:

      • UnitedHealthcare, the insurance arm of UnitedHealth Group and the largest health insurer in the United States.
      • Aetna, a national health insurer and a CVS Health company.
      • Cigna, the health benefits business of The Cigna Group, operating as Cigna Healthcare.
      • Health Care Service Corporation (HCSC), the largest customer-owned health insurer in the United States, operating the Blue Cross and Blue Shield plans of Illinois, Montana, New Mexico, Oklahoma, and Texas.

      For Part C plans, plan design comes from CMS Plan Benefit Package (PBP) reference data when the user consents through the Medicare.gov (CMS Blue Button) endpoint and the returned Coverage contains enough plan identifiers to match a PBP plan. For UHC, Aetna, Cigna and HCSC plan design comes from the payer's own data.

      The InsurancePlan resource gives a structured view of the plan's benefit design even when the payer API only returns the member-specific Coverage.

      A generated InsurancePlan describes the product, not the member. Everyone enrolled in the same plan and coverage line shares one InsurancePlan, and each of their Coverage resources carries an insurance-plan-reference extension pointing at it. Member-specific amounts, such as how much of a deductible has been met, are not part of the plan.

      InsurancePlan resources are not returned by Patient/$everything. That operation returns the resources in a patient's compartment, and an InsurancePlan describes a product rather than a person, so it is never in one. Search for it with GET /fhir/InsurancePlan, or read it by ID using the insurance-plan-reference extension on the patient's Coverage.

      What a plan carries depends on what its source publishes. The coverage by source tables below list every data point, its FHIR path, and which sources populate it.

      FHIR API

      https://api.flexpa.com/fhir/InsurancePlan
      

      New to FHIR?

      Intro to FHIR

      FHIR, or Fast Healthcare Interoperability Resources, is a standard for exchanging healthcare information electronically

      Read introduction →

      #Availability

      Medicare Advantage Part C InsurancePlans are generated when the patient's Coverage can be resolved to a CMS PBP plan for the relevant plan year and service area.

      For certain UnitedHealthcare, Aetna, Cigna, and HCSC lines of business, a plan is generated per coverage line when the payer publishes plan design for it.

      SourceMedicalDrugDental
      Medicare AdvantageYesFormulary onlyYes, as a benefit
      UnitedHealthcareYesYesYes
      AetnaYesYesYes
      CignaYesYesYes
      HCSCYesYesNo

      A generated InsurancePlan is not guaranteed for every Coverage. If the plan identifiers, plan year, location details, or payer benefit design are missing, the Coverage is still returned normally and no InsurancePlan is generated.

      Medicare Advantage InsurancePlan generation depends on the user consenting through Flexpa's connection to the CMS Blue Button API. To get both claims and plan design information, the member should consent with both their Medicare Advantage payer and the CMS Blue Button API. Flexpa supports both connections within the same Consent flow.

      Coverage reference extension

      {
        "resourceType": "Coverage",
        "id": "0f713b1a-cc7e-4f08-8cb9-01cdd1923a8c",
        "extension": [
          {
            "url": "https://api.flexpa.com/fhir/StructureDefinition/insurance-plan-reference",
            "valueReference": {
              "reference": "InsurancePlan/2f6fa785-24bd-4ed5-a833-68ec53293f43"
            }
          }
        ]
      }
      

      #Schema

      #Overview

      The FHIR R4 InsurancePlan resource describes an insurance plan at the plan level.

      Which fields are present depends on the source, and the coverage by source tables below give the breakdown.

      Coverage and InsurancePlan answer different questions. Coverage is member-specific and describes a patient's enrollment or policy. InsurancePlan is plan-specific and describes the benefit design for the plan identified by the Coverage.

      Elements

      idid

      The unique identifier for the generated InsurancePlan resource.

      metaMeta

      Metadata about the generated resource.

      sourceuri

      The source the resource was generated from. Medicare Advantage plans point at the CMS PBP benefits data set, for example https://www.cms.gov/data-research/statistics-trends-and-reports/medicare-advantagepart-d-contract-and-enrollment-data/benefits-data/pbp-benefits-2026. The other four plans point at the payer endpoint.

      lastUpdatedinstant

      The timestamp of the source record, when available.

      extensionarray

      Flexpa extensions carrying plan context FHIR has no element for. There are 76 of them and the coverage by source tables list every one, with the path that reads it and which sources publish it, so they are not repeated here.

      identifierarray

      Plan identifiers from the source, each under a system naming the payer that issued it. Which identifier is which gives the system for every one.

      statuscode

      The plan status. Generated values may include active, draft, or retired. Derived from CMS PBP plan status fields for Medicare Advantage, and from the coverage status the payer reports for the four other payers.

      typearray

      The kind of plan, always a single concept. Medicare Advantage plans carry the CMS plan type, such as Local PPO or HMO. The four other payers carry the coverage line the plan covers, coded twice in one concept so it can be read from either vocabulary: HIP and medical, DRUGPOL and drug, or DENTAL and dental.

      namestring

      The plan name as published by the source. Absent when the source publishes no official product name, which is the case for UnitedHealthcare drug plans. Aetna publishes no plan.type, so on an Aetna plan the name is the only element a product or network model could appear in.

      periodPeriod

      The period the plan is effective for, as a FHIR Period. For Medicare Advantage this is the plan year. Far-future end dates that a payer uses to mean "no end date" are suppressed rather than published.

      containedarray

      Supporting resources embedded in the generated InsurancePlan.

      OrganizationResource

      For Medicare Advantage, the issuer or contract organization, including HPMS contract identifiers, name, aliases, parent organization, tax status, and address when available. For all other plans, the employer or organization sponsoring the plan, where the payer names one. UnitedHealthcare drug plans also carry the pharmacy benefit manager.

      LocationResource

      Medicare Advantage only. The matched plan service area or region name when available.

      ownedByReference(Organization)

      The organization that underwrites the risk, when available. For Medicare Advantage this is the issuer. For the four other payers it is the entity carrying the risk, which may be the insurer or the employer depending on the funding arrangement.

      administeredByReference(Organization)

      The administering organization, when available. For Medicare Advantage this often references the contained issuer organization. For all other plans it is the payer, or the pharmacy benefit manager on UnitedHealthcare drug plans.

      coverageAreaarray

      Medicare Advantage only. The service area or geographic name for the matched plan, when available.

      contactarray

      Medicare Advantage only. Customer service or administrative contact details from CMS directory data, including phone, fax, email, and mailing address when available.

      coveragearray

      The categories of coverage and benefits described by the plan.

      typeCodeableConcept

      A broad coverage grouping, such as medical coverage.

      benefitarray

      The benefits the plan covers, each with a label and any dollar or visit limit. For Medicare Advantage these are benefit categories from the CMS PBP benefits file, and each may include HPMS category coding, Medicare-covered or supplemental category type, and a Flexpa benefit-offered extension indicating in-network, out-of-network, or combined availability. For all other plans these are the payer's own service labels. UnitedHealthcare adds a benefit-document-name extension naming the plan document each figure came from, and Cigna adds the payer's own service code in type.coding, since Cigna names services by code alone. A benefit with no published price still appears here, so a covered service is never dropped for lack of a number.

      planarray

      Plan-level cost-sharing information, including general costs and benefit-specific costs.

      typeCodeableConcept

      Two unrelated facts share this element. Medicare Advantage puts the MA coverage type here, MA-only or MA-PD, which reports whether the plan includes Part D. Everyone else puts the product or provider network: Cigna as a coding, HCSC and UnitedHealthcare dental plans as text. Not set on UnitedHealthcare medical or drug plans, and never set by Aetna, whose product is in name. The coverage line is on type at the top level, not here.

      generalCostarray

      Plan-wide costs as Money. For Medicare Advantage, monthly premiums, Part C and Part D premiums, deductibles, in-network and combined maximum out-of-pocket amounts, and Part D thresholds when available, each named in type.text alone. For the four other payers, deductibles and out-of-pocket maximums, reported separately for individual and family and for in-network and out-of-network, and coded in coverage-copay-type so one query finds them across payers.

      specificCostarray

      Benefit-specific costs, grouped by category. Medicare Advantage groups them by CMS PBP benefit category. The four other payers emit one group per coverage line, holding every priced benefit on that line.

      categoryCodeableConcept

      The category the cost group covers. Medicare Advantage uses the CMS PBP benefit category. The four other payers use the coverage line, coded in insurance-plan-type.

      benefit.costarray

      Copays, coinsurance, and deductibles for the benefit. Each cost states whether it applies in-network or out-of-network, and carries its amount as a Quantity: US dollars for a flat fee, or a percentage for coinsurance. Qualifiers add the conditions attached to the cost: day ranges or visit types for Medicare Advantage, a minimum charge, a supply length, or applying only after the deductible is met for UnitedHealthcare, and the setting, the provider type, or an age band for Cigna.

      InsurancePlan Example

      {
        "resourceType": "InsurancePlan",
        "id": "2f6fa785-24bd-4ed5-a833-68ec53293f43",
        "meta": {
          "source": "https://www.cms.gov/data-research/statistics-trends-and-reports/medicare-advantagepart-d-contract-and-enrollment-data/benefits-data/pbp-benefits-2026",
          "lastUpdated": "2025-08-05T09:11:32-04:00"
        },
        "extension": [
          {
            "url": "https://api.flexpa.com/fhir/StructureDefinition/star-rating",
            "extension": [
              {
                "url": "overall",
                "valueDecimal": 4.5
              },
              {
                "url": "partC",
                "valueDecimal": 4.5
              },
              {
                "url": "partD",
                "valueDecimal": 4
              }
            ]
          },
          {
            "url": "https://api.flexpa.com/fhir/StructureDefinition/drug-benefit",
            "extension": [
              {
                "url": "category",
                "valueString": "Enhanced"
              },
              {
                "url": "type",
                "valueString": "Enhanced Alternative"
              }
            ]
          }
        ],
        "identifier": [
          {
            "system": "https://hpms.cms.gov/contract-plan-segment",
            "value": "H5215-012-000"
          },
          {
            "system": "https://hpms.cms.gov/contract-plan-id",
            "value": "H5215_012"
          },
          {
            "system": "https://hpms.cms.gov/contract-plan-segment-id",
            "value": "H5215_012_0"
          }
        ],
        "status": "active",
        "type": [
          {
            "coding": [
              {
                "system": "https://hpms.cms.gov/plan-type",
                "code": "04",
                "display": "Local PPO"
              }
            ],
            "text": "Local PPO"
          }
        ],
        "name": "Network Health Zero (PPO)",
        "period": {
          "start": "2026-01-01",
          "end": "2026-12-31"
        },
        "contained": [
          {
            "resourceType": "Organization",
            "id": "issuer",
            "identifier": [
              {
                "system": "https://hpms.cms.gov/contract",
                "value": "H5215"
              }
            ],
            "name": "NETWORK HEALTH INSURANCE CORPORATION",
            "alias": ["Network Health Medicare Advantage Plans"],
            "partOf": {
              "display": "Network Health, Inc."
            }
          },
          {
            "resourceType": "Location",
            "id": "area",
            "name": "East Central Wisconsin"
          }
        ],
        "ownedBy": {
          "reference": "#issuer",
          "display": "Network Health Medicare Advantage Plans"
        },
        "administeredBy": {
          "reference": "#issuer",
          "display": "Network Health Medicare Advantage Plans"
        },
        "coverageArea": [
          {
            "reference": "#area",
            "display": "East Central Wisconsin"
          }
        ],
        "contact": [
          {
            "purpose": {
              "coding": [
                {
                  "system": "http://terminology.hl7.org/CodeSystem/contactentity-type",
                  "code": "ADMIN"
                }
              ]
            },
            "name": {
              "text": "Customer Service"
            },
            "telecom": [
              {
                "system": "phone",
                "value": "1-800-378-5234"
              }
            ]
          }
        ],
        "coverage": [
          {
            "type": {
              "text": "Medical"
            },
            "benefit": [
              {
                "type": {
                  "coding": [
                    {
                      "system": "https://hpms.cms.gov/pbp-benefit-category",
                      "code": "1a",
                      "display": "Inpatient Hospital-Acute"
                    },
                    {
                      "system": "https://hpms.cms.gov/pbp-category-type",
                      "code": "1",
                      "display": "Medicare-covered"
                    }
                  ]
                },
                "extension": [
                  {
                    "url": "https://api.flexpa.com/fhir/StructureDefinition/benefit-offered",
                    "valueString": "in-and-out-of-network"
                  }
                ]
              },
              {
                "type": {
                  "coding": [
                    {
                      "system": "https://hpms.cms.gov/pbp-benefit-category",
                      "code": "7a",
                      "display": "Primary Care Physician Services"
                    },
                    {
                      "system": "https://hpms.cms.gov/pbp-category-type",
                      "code": "1",
                      "display": "Medicare-covered"
                    }
                  ]
                }
              }
            ]
          }
        ],
        "plan": [
          {
            "identifier": [
              {
                "system": "https://hpms.cms.gov/contract-plan-segment",
                "value": "H5215-012-000"
              }
            ],
            "type": {
              "coding": [
                {
                  "system": "https://hpms.cms.gov/ma-coverage-type",
                  "code": "MA-PD",
                  "display": "Medicare Advantage with prescription drug coverage"
                }
              ]
            },
            "generalCost": [
              {
                "type": {
                  "text": "Monthly consolidated premium (Part C + D)"
                },
                "cost": {
                  "value": 0,
                  "currency": "USD"
                }
              },
              {
                "type": {
                  "text": "In-network maximum out-of-pocket"
                },
                "cost": {
                  "value": 3860,
                  "currency": "USD"
                }
              }
            ],
            "specificCost": [
              {
                "category": {
                  "coding": [
                    {
                      "system": "https://hpms.cms.gov/pbp-benefit-category",
                      "code": "1a",
                      "display": "Inpatient Hospital-Acute"
                    }
                  ]
                },
                "benefit": [
                  {
                    "type": {
                      "coding": [
                        {
                          "system": "https://hpms.cms.gov/pbp-benefit-category",
                          "code": "1a",
                          "display": "Inpatient Hospital-Acute"
                        }
                      ]
                    },
                    "cost": [
                      {
                        "type": {
                          "text": "Copayment"
                        },
                        "applicability": {
                          "coding": [
                            {
                              "system": "http://terminology.hl7.org/CodeSystem/applicability",
                              "code": "in-network"
                            }
                          ]
                        },
                        "value": {
                          "value": 340,
                          "unit": "USD",
                          "system": "urn:iso:std:iso:4217",
                          "code": "USD"
                        },
                        "qualifiers": [
                          {
                            "text": "Days 1-7"
                          }
                        ]
                      }
                    ]
                  }
                ]
              }
            ]
          }
        ]
      }
      

      #Coverage by source

      This section helps explain which data points a plan carries, where on the InsurancePlan resource it can be found, and which payers publish it. MA is Medicare Advantage, UHC is UnitedHealthcare, HCSC is Health Care Service Corporation. [FLEXPA] stands in for https://api.flexpa.com/fhir/StructureDefinition, the base Flexpa extension URL.

      #Plan identity

      Data pointWhere to lookMAUHCAetnaCignaHCSC
      What the plan is calledname✓✓✓✓✓
      Any other name it goes byalias✓✓——✓
      Whether it covers medical, dental or drugtype.coding.where(system = 'http://terminology.hl7.org/CodeSystem/v3-ActCode' or system = 'http://terminology.hl7.org/CodeSystem/insurance-plan-type')—✓✓✓✓
      Which product or provider network it runs onplan.type.coding.where(system = 'https://www.cigna.com/productTypeCode' or system = 'https://www.cigna.com/dentalPlanType') for Cigna, plan.type.text for HCSC and UHC, name field for Aetna—text, dental onlynamecodetext
      Whether the plan is still in forcestatus✓✓✓✓✓
      Which plan year the design describesperiod.start, period.end✓✓✓✓✓
      The payer's own reference number for the planidentifier, which one is which✓✓✓✓✓
      Which kind of Medicare Advantage plan it is, such as Local PPOtype.coding.where(system = 'https://hpms.cms.gov/plan-type')✓————
      Whether a Medicare Advantage plan includes Part D drug coverageplan.type.coding.where(system = 'https://hpms.cms.gov/ma-coverage-type')✓————

      #Which identifier is which

      The identifier field can hold several different business identifiers, so pick one by its system. HCSC's host varies with the Blue Cross entity servicing the member, bcbsil.com for Illinois and its siblings elsewhere.

      SourceSystemWhat the value is
      Cignahttps://www.cigna.com/groupIdthe employer group the policy belongs to
      Cignahttps://www.cigna.com/accountNumberCigna's account number for that group
      UnitedHealthcarehttps://www.uhc.com/policyNumberthe policy number
      UnitedHealthcarehttps://www.uhc.com/groupNumberthe employer group number
      UnitedHealthcarehttps://www.uhc.com/benefitPlanIdUnited's id for the benefit plan
      UnitedHealthcarehttps://www.uhc.com/planVariationCodewhich variation of that plan the group bought
      UnitedHealthcarehttps://www.uhc.com/reportingCodeUnited's internal reporting code
      UnitedHealthcarehttps://www.uhc.com/obligorId, https://www.uhc.com/marketNumberwho carries the obligation, and the market the plan is sold in
      Aetnahttps://sources.aetna.com/groupId, https://sources.aetna.com/planSponsorIdthe employer group, and Aetna's id for the sponsor
      HCSChttps://www.bcbsil.com/groupNumber, .../groupSectionNumber, .../bluestarAccountNumberthe group, the section within it, and the account
      HCSChttps://www.bcbsil.com/planType, .../productTypeHCSC's own plan and product codes
      HCSChttps://www.bcbsil.com/rxBin, .../rxPCNthe pharmacy routing numbers a pharmacist needs to bill the plan
      Medicare Advantagehttps://hpms.cms.gov/formulary-idthe CMS formulary the drug plan uses
      Medicare Advantagehttps://hpms.cms.gov/contract-plan-id and its siblingsthe CMS contract, plan and segment identifiers
      Every source[PAYER_ENDPOINT]/InsurancePlan/SourceResourceIdthe id Flexpa minted before the resource was stored, added by Flexpa rather than by the payer

      #Carrier and sponsor

      Data pointWhere to lookMAUHCAetnaCignaHCSC
      Administering payeradministeredBy.reference✓✓✓✓✓
      Entity underwriting the riskownedBy.reference✓✓✓—✓
      Entity (often the employer) the policy is written forextension.where(url = '[FLEXPA]/plan-sponsor').valueReference.reference—✓—✓—
      Service contactscontact✓——✓—
      Service areacoverageArea✓————

      #Plan-level costs

      Data pointWhere to lookMAUHCAetnaCignaHCSC
      Deductibleplan.generalCost.where(type.coding.where(system = 'http://terminology.hl7.org/CodeSystem/coverage-copay-type').code = 'deductible') where the cost is coded, plan.generalCost.where(type.text.contains('deductible')) where it is text onlytextcodecodecodecode
      Out-of-pocket maximumplan.generalCost.where(type.coding.where(system = 'http://terminology.hl7.org/CodeSystem/coverage-copay-type').code = 'maxoutofpocket') where the cost is coded, plan.generalCost.where(type.text.contains('maximum out-of-pocket')) where it is text onlytextcodecodecodecode
      Amount of a plan-level costplan.generalCost.cost.value, plan.generalCost.cost.currency✓✓✓✓✓
      Individual or familyplan.generalCost.extension.where(url = '[FLEXPA]/cost-scope').valueCode—✓✓✓✓
      In-network or out-of-networkplan.generalCost.extension.where(url = '[FLEXPA]/cost-network').valueCoding.code—✓✓✓✓
      CARIN Digital Insurance Card code for the same costplan.generalCost.type.coding.where(system = 'http://hl7.org/fhir/us/insurance-card/CodeSystem/C4DICExtendedCopayTypeCS').code—✓✓✓✓
      The payer's own wording for the costplan.generalCost.extension.where(url = '[FLEXPA]/source-label').valueString——✓—✓
      An amount the payer states in words rather than as a numberplan.generalCost.comment✓✓——✓
      Monthly premiumplan.generalCost.where(type.text.contains('premium'))✓————
      Part D out-of-pocket thresholdplan.generalCost.where(type.text = 'Part D out-of-pocket threshold')✓————

      #Covered benefits

      Data pointWhere to lookMAUHCAetnaCignaHCSC
      Benefit namecoverage.benefit.type.text✓✓✓✓✓
      The payer's own code for the benefitcoverage.benefit.type.coding.where(system = 'https://www.cigna.com/benefitServiceId' or system = 'https://www.uhc.com/medicalServiceId')—✓—✓—
      Benefit descriptioncoverage.benefit.extension.where(url = '[FLEXPA]/benefit-description').valueString—✓—✓✓
      Dollar or count limitcoverage.benefit.limit.value.value, coverage.benefit.limit.value.unit✓✓✓✓—
      What the limit is calledcoverage.benefit.limit.code.text✓✓✓✓—
      The payer's own code for the kind of ceilingcoverage.benefit.limit.code.coding.where(system = 'https://www.cigna.com/benefitLimitCode')———✓—
      When the limit resetscoverage.benefit.limit.extension.where(url = '[FLEXPA]/limit-period').valueCode———✓—
      Whether the limit is one person's or the household'scoverage.benefit.limit.extension.where(url = '[FLEXPA]/cost-scope').valueCode———✓—
      Referral or prior authorization neededcoverage.benefit.requirement✓——✓—
      Which document the benefit was quoted fromcoverage.benefit.extension.where(url = '[FLEXPA]/benefit-document-name').valueString—✓———
      Whether the benefit is offered in-network, out-of-network, or not at allcoverage.benefit.extension.where(url = '[FLEXPA]/benefit-offered').valueString✓————
      A service the plan says it does not covercoverage.benefit.extension.where(url = '[FLEXPA]/excluded-benefit')———✓—
      Aetna's own group the service is filed undercoverage.benefit.extension.where(url = '[FLEXPA]/rollup-group-id').valueString——✓——

      #Per-service cost sharing

      Data pointWhere to lookMAUHCAetnaCignaHCSC
      Copayplan.specificCost.benefit.cost.where(type.coding.where(system = 'http://terminology.hl7.org/CodeSystem/coverage-copay-type').code = 'copay') where the cost is coded, plan.specificCost.benefit.cost.where(type.text = 'Copayment') where it is text onlytextcodecodecodecode
      Coinsuranceplan.specificCost.benefit.cost.where(type.coding.where(system = 'http://terminology.hl7.org/CodeSystem/coverage-copay-type').code = 'copaypct') where the cost is coded, plan.specificCost.benefit.cost.where(type.text = 'Coinsurance') where it is text onlytextcodecodecodecode
      Per-benefit deductibleplan.specificCost.benefit.cost.where(type.coding.where(system = 'http://terminology.hl7.org/CodeSystem/coverage-copay-type').code = 'deductible') where the cost is coded, plan.specificCost.benefit.cost.where(type.text = 'Deductible') where it is text onlytextcode—code, dental onlycode
      Amount, in dollars or percentplan.specificCost.benefit.cost.value.value, plan.specificCost.benefit.cost.value.unit✓✓✓✓✓
      In-network or out-of-networkplan.specificCost.benefit.cost.applicability.coding.code✓✓✓✓✓
      Conditions on the cost, such as a setting or a days supplyplan.specificCost.benefit.cost.qualifiers.text✓✓✓✓✓
      Whether the cost counts toward the out-of-pocket maximumplan.specificCost.benefit.cost.extension.where(url = '[FLEXPA]/cost-applies-to-oop').valueBoolean———✓—
      Which coverage line the costs belong toplan.specificCost.category.coding.code✓✓✓✓✓

      #Drug coverage

      Data pointWhere to lookMAUHCAetnaCignaHCSC
      The plan the drug benefits sit onInsurancePlan.where(type.coding.where(system = 'http://terminology.hl7.org/CodeSystem/v3-ActCode').code = 'DRUGPOL')—✓✓✓✓
      Which drug tier, and whether it is retail or mail orderplan.specificCost.benefit.type.text—✓✓✓✓
      Cost sharing for that tierplan.specificCost.benefit.cost—✓✓✓✓
      Days supplyplan.specificCost.benefit.cost.qualifiers.text—✓✓✓—
      Pharmacy deductibleplan.generalCost, on that plan—✓—✓—
      Whether the pharmacy deductible is combined with the medical oneextension.where(url = '[FLEXPA]/pharmacy-deductible-combined').valueBoolean—✓———
      Whether the pharmacy out-of-pocket maximum is combined with the medical oneextension.where(url = '[FLEXPA]/pharmacy-oop-combined').valueBoolean—✓———
      Whether the drug line draws on the medical accumulatorsextension.where(url = '[FLEXPA]/accumulators-shared-with-medical').valueBoolean———✓—
      Which other product groups share the deductibleextension.where(url = '[FLEXPA]/deductible-shared').extension.where(url = 'sharedWith').valueCoding.code———✓—
      Which other product groups share the out-of-pocket maximumextension.where(url = '[FLEXPA]/oop-max-shared').extension.where(url = 'sharedWith').valueCoding.code———✓—
      Which Part D benefit design the plan usesextension.where(url = '[FLEXPA]/drug-benefit').extension.where(url = 'category').valueString and .where(url = 'type').valueString✓————
      Formulary IDidentifier.where(system = 'https://hpms.cms.gov/formulary-id').value✓————
      Pharmacy routing numbers a pharmacist bills againstidentifier.where(system = 'https://www.bcbsil.com/rxBin').value, .../rxPCN————✓
      Drug list codeextension.where(url = '[FLEXPA]/cigna-drug-list-code').valueString———✓—
      Highest drug tier the plan pricesextension.where(url = '[FLEXPA]/max-tier-number').valueString———✓—
      Days supply for a specialty drug at retailextension.where(url = '[FLEXPA]/specialty-drug-days-retail').valueString———✓—
      Days supply for a specialty drug by mail orderextension.where(url = '[FLEXPA]/specialty-drug-days-mail-order').valueString———✓—
      Fills of a 30-day supply the plan permitsextension.where(url = '[FLEXPA]/fills-per-30-day-supply').valueString———✓—
      Whether the 90-day retail program is voluntary or mandatoryextension.where(url = '[FLEXPA]/retail-90-day-program-type').valueString———✓—

      deductible-shared and oop-max-shared are complex extensions rather than simple ones. Each carries a sharedWith child naming the other product group and, where the tier can be coded, a network child.

      #Plan characteristics

      Data pointWhere to lookMAUHCAetnaCignaHCSC
      Commercial, Medicare or Medicaidextension.where(url = '[FLEXPA]/program-type').valueString—✓✓—✓
      Line of business, as United's own tokenextension.where(url = '[FLEXPA]/united-line-of-business').valueString—✓———
      Market segment, employer group or individualextension.where(url = '[FLEXPA]/market-segment').valueString————✓
      Market the plan is sold in, as United's own codeextension.where(url = '[FLEXPA]/united-market-type').valueString—✓———
      Product, as United's own codeextension.where(url = '[FLEXPA]/united-product-code').valueString—✓———
      How a shared funding arrangement is split, as United's own codeextension.where(url = '[FLEXPA]/shared-arrangement-code').valueString—✓———
      Funding arrangement, as a decoded wordextension.where(url = '[FLEXPA]/funding-arrangement').valueString—✓———
      Funding arrangement, as Cigna's own codeextension.where(url = '[FLEXPA]/cigna-funding-arrangement-type').valueString———✓—
      Whether a referral from a primary care provider is requiredextension.where(url = '[FLEXPA]/pcp-referral-required').valueBoolean—✓———
      Whether a referral is requiredextension.where(url = '[FLEXPA]/referral-required').valueBoolean———✓—
      Care must go through a primary care provider to be coveredextension.where(url = '[FLEXPA]/gated-plan').valueBoolean—✓———
      Virtual visits availableextension.where(url = '[FLEXPA]/virtual-visits-available').valueBoolean—✓———
      Whether a primary care provider may be electedextension.where(url = '[FLEXPA]/pcp-eligibility').valueString—✓———
      Whether primary care referrals applyextension.where(url = '[FLEXPA]/pcp-referrals').valueString—✓———
      Whether a primary care provider is required or recommendedextension.where(url = '[FLEXPA]/pcp-requirement').valueString———✓—
      Whether a primary care medical group must be chosenextension.where(url = '[FLEXPA]/pcp-medical-group-required').valueBoolean————✓
      Covers the ten essential health benefitsextension.where(url = '[FLEXPA]/essential-health-benefits').valueBoolean—✓———
      High-deductible health planextension.where(url = '[FLEXPA]/high-deductible-health-plan').valueBoolean—✓———
      Eligible for a health savings accountextension.where(url = '[FLEXPA]/hsa-eligible').valueBoolean—✓———
      Eligible for a health reimbursement arrangementextension.where(url = '[FLEXPA]/hra-eligible').valueBoolean—✓———
      Provider network nameextension.where(url = '[FLEXPA]/network-name').valueString———✓—
      Provider network idextension.where(url = '[FLEXPA]/cigna-network-id').valueString———✓—
      Provider network categoryextension.where(url = '[FLEXPA]/cigna-network-category').valueString———✓—
      Which network tiers the policy coversextension.where(url = '[FLEXPA]/cigna-network-coverage').valueString———✓—
      Whether the plan has a deductible at allextension.where(url = '[FLEXPA]/has-deductible').valueBoolean———✓—
      Whether the plan has an out-of-pocket maximum at allextension.where(url = '[FLEXPA]/has-oop-maximum').valueBoolean———✓—
      Whether the plan caps what it pays out in a yearextension.where(url = '[FLEXPA]/has-plan-maximum').valueBoolean———✓—
      State whose insurance law governs the contractextension.where(url = '[FLEXPA]/situs-state').valueString—✓—✓—
      Blue Cross and Blue Shield entity servicing the memberextension.where(url = '[FLEXPA]/hcsc-plan-state').valueString————✓
      Sold on a public exchangeextension.where(url = '[FLEXPA]/on-exchange').valueBoolean————✓
      Medicare supplementextension.where(url = '[FLEXPA]/medicare-supplement').valueBoolean————✓
      Grandfathered under the Affordable Care Actextension.where(url = '[FLEXPA]/grandfathered-plan').valueBoolean———✓—
      Whether a flat copay counts toward the out-of-pocket maximumextension.where(url = '[FLEXPA]/copay-applies-to-oop').valueBoolean———✓—
      Whether the deductible counts toward the out-of-pocket maximumextension.where(url = '[FLEXPA]/deductible-applies-to-oop').valueBoolean———✓—
      Whether the plan is sold alongside another as a supplementextension.where(url = '[FLEXPA]/supplemental-plan').valueBoolean—✓———
      Pharmacy benefit administered by someone elseextension.where(url = '[FLEXPA]/pharmacy-carve-out').valueBoolean—✓———
      Another benefit administered by a third partyextension.where(url = '[FLEXPA]/third-party-carve-out').valueBoolean—✓———
      Employer's own branding on the planextension.where(url = '[FLEXPA]/private-label-customer').valueString—✓———
      Multiplier the plan applies to a member's maximumextension.where(url = '[FLEXPA]/consumer-max-multiplier').valueString—✓———
      Dental product typeextension.where(url = '[FLEXPA]/dental-plan-type').valueString—✓———
      Whose accumulators the figures describeextension.where(url = '[FLEXPA]/plan-scope').valueString——✓——
      Aetna's own plan characteristic tokensextension.where(url = '[FLEXPA]/view-characteristic').valueString——✓——
      CMS contract effective dateextension.where(url = '[FLEXPA]/contract-effective-date').valueDate✓————
      CMS contract enrollment countextension.where(url = '[FLEXPA]/contract-enrollment').valueInteger✓————
      Sanctioned by CMSextension.where(url = '[FLEXPA]/sanctioned-plan').valueBoolean✓————
      Issuer tax statuscontained.ofType(Organization).extension.where(url = '[FLEXPA]/tax-status').valueString✓————
      Voluntary de minimis premium reductionextension.where(url = '[FLEXPA]/voluntary-de-minimis').valueBoolean✓————
      Medicare Advantage regionextension.where(url = '[FLEXPA]/ma-region').extension.where(url = 'code').valueString and .where(url = 'name').valueString✓————
      Star rating, overall and for Part C and Part Dextension.where(url = '[FLEXPA]/star-rating').extension.where(url = 'overall' or url = 'partC' or url = 'partD').valueDecimal✓————
      Special Needs Plan typeextension.where(url = '[FLEXPA]/snp').extension.where(url = 'type').valueString, with institutionalType and chronicConditions beside it✓————
      How a dual-eligible Special Needs Plan is integratedextension.where(url = '[FLEXPA]/dsnp-integration').extension.where(url = 'integrationStatus').valueString, with hasApplicableIntegratedPlan and zeroDollarCostSharing as booleans✓————
      Low-income subsidy auto-enrollmentextension.where(url = '[FLEXPA]/lis-auto-enrollment').valueBoolean✓————
      Part D premium at or below benchmarkextension.where(url = '[FLEXPA]/part-d-premium-at-or-below-benchmark').valueBoolean✓————

      #API

      GEThttps://api.flexpa.com/fhir/InsurancePlan

      #Search

      Search returns InsurancePlan resources available through the presented access token. For patient-scoped access, this means generated InsurancePlan resources associated with the authorized patient's matched Coverage.

      Request headers

      Authorizationstring

      An Authorization: Bearer header value must be presented with a Patient Access Token or an Application Access Token.

      Request

      GET
      /fhir/InsurancePlan
      ACCESS_TOKEN=flexpa-link-access-token
      
      curl "https://api.flexpa.com/fhir/InsurancePlan" \
        -H "Authorization: Bearer $ACCESS_TOKEN"
      

      Response

      {
        "resourceType": "Bundle",
        "type": "searchset",
        "entry": [
          {
            "fullUrl": "https://api.flexpa.com/fhir/InsurancePlan/2f6fa785-24bd-4ed5-a833-68ec53293f43",
            "resource": {
              "resourceType": "InsurancePlan",
              "id": "2f6fa785-24bd-4ed5-a833-68ec53293f43",
              "status": "active",
              "name": "Network Health Zero (PPO)"
            }
          }
        ]
      }
      
      GEThttps://api.flexpa.com/fhir/InsurancePlan/:id

      #Read

      A read retrieves a single InsurancePlan by ID.

      Request path parameters

      idstring

      The identifier of the InsurancePlan resource to retrieve.

      Request

      GET
      /fhir/InsurancePlan/:id
      ACCESS_TOKEN=flexpa-link-access-token
      
      curl "https://api.flexpa.com/fhir/InsurancePlan/2f6fa785-24bd-4ed5-a833-68ec53293f43" \
        -H "Authorization: Bearer $ACCESS_TOKEN"
      

      #Related Resources

      • Coverage - member-specific enrollment and policy details. For generated InsurancePlan resources, the Coverage may include a Flexpa extension that references the generated plan.
      Status TwitterGitHub

      © 2026 Flexpa. All rights reserved.

      FHIR® is the registered trademark of Health Level Seven International and its use does not constitute endorsement by HL7.