---
title: "Apply for ICHRA off-exchange coverage via deeplink"
method: POST
path: "/public/ichra/off_ex"
tags: ["Deeplinking"]
---

# Apply for ICHRA off-exchange coverage via deeplink

`POST /public/ichra/off_ex`

Public endpoint for initiating an ICHRA off-exchange application with prefilled fields. Prefill behavior is controlled via request body.
Requires `plan_hios_id`, `_agent_id`, `zip_code`, `fip_code`, and either `phone_number` or `email`.

Note: If any applicants other than `primary` are included (e.g., `spouse`, `domestic_partner`, `dependents`), then the `primary` applicant is required.

Authentication:

- Production: You may optionally send an `x-api-key` header. Providing a valid API key will automatically allowlist any valid `_agent_id` included in your request, allowing agents not associated with an agency to proceed. `_agent_id` remains required in all cases.
- Staging: Basic Auth is required. Please contact your onboarding representative for credentials.

## Headers

- `x-api-key` string

## Request body

- object
  - `plan_hios_id` string, required — HIOS ID of the selected plan
  - `_agent_id` string, required — Slug of the agent of record
  - `agent_of_record_cpc` string — Carrier Producer Code of the agent of record
  - `agent_of_record_tin` string — Tax Identification Number of the agent of record or agency, if preferred.
  - `agent_of_record_email_address` string, email — Email address of the agent of record. If not provided, the email address associated with the `_agent_id` will be used.
  - `agent_of_record_first_name` string — First name of the agent of record. If not provided, the first name associated with the `_agent_id` will be used.
  - `agent_of_record_last_name` string — Last name of the agent of record. If not provided, the last name associated with the `_agent_id` will be used.
  - `agent_of_record_npn` string — NPN of the agent of record. Must be 1-10 digits and not start with 0. If not provided, the NPN associated with the `_agent_id` will be used.
  - `agent_of_record_phone_number` string — Phone number of the agent of record. Must be 10 digits and cannot start with 0, 1, or 9. Can be all digits (5625551212) or with dashes (562-555-1212).
  - `agent_of_record_state_license` string — State license of the agent of record. This will not be taken from the `_agent_id`.
  - `email` string, email — Email for the application (required if phone_number is not provided)
  - `phone_number` string — Phone number for the application (required if email is not provided)
  - `phone_type` 'cell' | 'home' | 'work' — Type of phone number provided
  - `external_id` string — External identifier for the application
  - `utm_source` string — UTM source parameter for tracking
  - `utm_medium` string — UTM medium parameter for tracking
  - `utm_campaign` string — UTM campaign parameter for tracking
  - `utm_term` string — UTM term parameter for tracking
  - `utm_content` string — UTM content parameter for tracking
  - `ljs` string — LJS parameter
  - `call` string — Call parameter
  - `plan_year` integer — Plan year (defaults to current year if not provided)
  - `street_address` string — Street address
  - `street_address_unit_number` string — Street address unit number
  - `city` string — City
  - `state` 'AL' | 'AK' | 'AZ' | 'AR' | 'CA' | 'CO' | 'CT' | 'DE' | 'FL' | 'GA' | 'HI' | 'ID' | 'IL' | 'IN' | 'IA' | 'KS' | 'KY' | 'LA' | 'ME' | 'MD' | 'MA' | 'MI' | 'MN' | 'MS' | 'MO' | 'MT' | 'NE' | 'NV' | 'NH' | 'NJ' | 'NM' | 'NY' | 'NC' | 'ND' | 'OH' | 'OK' | 'OR' | 'PA' | 'RI' | 'SC' | 'SD' | 'TN' | 'TX' | 'UT' | 'VT' | 'VA' | 'WA' | 'WV' | 'WI' | 'WY' | 'DC' — State
  - `zip_code` string, required — ZIP code (must be exactly 5 digits)
  - `fip_code` string, required — County code (FIPS) (must be exactly 5 digits)
  - `mailing_street_address` string — Mailing street address (if different from residential)
  - `mailing_city` string — Mailing city (if different from residential)
  - `mailing_state` 'AL' | 'AK' | 'AZ' | 'AR' | 'CA' | 'CO' | 'CT' | 'DE' | 'FL' | 'GA' | 'HI' | 'ID' | 'IL' | 'IN' | 'IA' | 'KS' | 'KY' | 'LA' | 'ME' | 'MD' | 'MA' | 'MI' | 'MN' | 'MS' | 'MO' | 'MT' | 'NE' | 'NV' | 'NH' | 'NJ' | 'NM' | 'NY' | 'NC' | 'ND' | 'OH' | 'OK' | 'OR' | 'PA' | 'RI' | 'SC' | 'SD' | 'TN' | 'TX' | 'UT' | 'VT' | 'VA' | 'WA' | 'WV' | 'WI' | 'WY' | 'DC' — Mailing state (if different from residential)
  - `mailing_zip_code` string — Mailing ZIP code (if different from residential)
  - `mailing_fip_code` string — Mailing county code (FIPS) (if different from residential)
  - `sep_reason` 'birth' | 'adoption' | 'death' | 'divorce' | 'marriage' | 'domestic_partnership' | 'child_support' | 'loss_of_mec' | 'loss_of_dependent' | 'dependent_lost_coverage' | 'loss_of_pregnancy_coverage' | 'end_of_non_calendar_year_policy' | 'change_in_household_status' | 'lost_aptc' | 'relocation' | 'nj_county_change' | 'offered_ichra' | 'offered_qsehra' | 'mandated_covered_dependent' | 'released_from_incarceration' | 'returning_active_duty' | 'provider_not_participating_in_prior_plan' | 'issuer_violated_contract' | 'misinformed' | 'domestic_abuse' | 'family_care_app_ineligible' | 'pregnancy' | 'other' — Special enrollment period reason
  - `sep_reason_date` string, date — Special enrollment period reason date
  - `language_spoken` 'english' | 'spanish' | 'arabic' | 'chinese' | 'french_creole' | 'french' | 'german' | 'gujarati' | 'hindi' | 'korean' | 'polish' | 'portuguese' | 'russian' | 'tagalog' | 'urdu' | 'vietnamese' | 'other' — The preferred spoken language of the applicant.
  - `language_written` 'english' | 'spanish' | 'arabic' | 'chinese' | 'french_creole' | 'french' | 'german' | 'gujarati' | 'hindi' | 'korean' | 'polish' | 'portuguese' | 'russian' | 'tagalog' | 'urdu' | 'vietnamese' | 'other' — The preferred written language of the applicant.
  - `skip` boolean — Whether to skip to the latest possible step in the application
  - `pediatric` 'purchased_separately' | 'not_applicable' — Pediatric dental coverage status
  - `applicants` object — Applicant information
    - `primary` object — Primary applicant information
      - `first_name` string — First name
      - `middle_name` string — Middle name
      - `last_name` string — Last name
      - `suffix` 'Jr.' | 'Sr.' | 'II' | 'III' | 'IV' | 'V' — Name suffix
      - `gender` 'male' | 'female' — Gender
      - `date_of_birth` string, date — Date of birth
      - `us_citizen` boolean — US citizenship status
      - `resides_in_state` boolean — Whether applicant resides in the state
      - `uses_tobacco` 'true' | 'false' — Tobacco use status
      - `race_ethnicity` 'american_indian_or_alaskan_native' | 'asian_indian' | 'black_or_african_american' | 'chinese' | 'filipino' | 'guamanian_or_chamorro' | 'japanese' | 'korean' | 'native_hawaiian' | 'samoan' | 'vietnamese' | 'white' | 'asian_race_not_listed_above' | 'pacific_islander_race_not_listed_above' | 'race_not_listed_above' | 'decline_to_answer' — Race/ethnicity
      - `hispanic_origin` 'yes' | 'no' | 'decline_to_answer' — Hispanic origin
      - `hispanic_origin_description` 'cuban' | 'mexican_mexican_american_or_chicanx' | 'puerto_rican' | 'other_hispanic_latino_or_spanish_origin' | 'decline_to_answer' — Hispanic origin description
      - `ssn` string — Social Security Number (must be exactly 9 digits, no dashes)
      - `has_existing_coverage` boolean — Whether applicant has existing coverage
      - `existing_coverage_type` 'issuer' | 'government' — Type of existing coverage
      - `plan_replaces_existing_coverage` boolean — Whether plan replaces existing coverage
      - `existing_coverage_insurer` string — Existing coverage insurer
      - `existing_coverage_policy_id` string — Existing coverage policy ID
      - `existing_coverage_term_date` string, date — Existing coverage termination date
      - `hra` object — HRA (Health Reimbursement Arrangement) information
        - `type` 'ichra' | 'qsehra', required — Type of HRA
        - `amount` number, float — Monthly contribution amount from employer
        - `contribution_covers` 'premium' | 'premium_oop' — What the contribution covers
        - `hra_used_for_spousal_or_family_premiums` boolean — Whether HRA is used for spousal or family premiums
        - `start` string, date — HRA start date
        - `name` string — Company name of the employer providing the HRA benefit
        - `phone` string — Phone number of the employer providing the HRA benefit
        - `street_address` string — Street address of the employer providing the HRA benefit
        - `city` string — City of the employer providing the HRA benefit
        - `state` 'AL' | 'AK' | 'AZ' | 'AR' | 'CA' | 'CO' | 'CT' | 'DE' | 'FL' | 'GA' | 'HI' | 'ID' | 'IL' | 'IN' | 'IA' | 'KS' | 'KY' | 'LA' | 'ME' | 'MD' | 'MA' | 'MI' | 'MN' | 'MS' | 'MO' | 'MT' | 'NE' | 'NV' | 'NH' | 'NJ' | 'NM' | 'NY' | 'NC' | 'ND' | 'OH' | 'OK' | 'OR' | 'PA' | 'RI' | 'SC' | 'SD' | 'TN' | 'TX' | 'UT' | 'VT' | 'VA' | 'WA' | 'WV' | 'WI' | 'WY' | 'DC' — State of the employer providing the HRA benefit
        - `zip_code` string — ZIP code of the employer providing the HRA benefit
        - `fein` string — Federal Employer Identification Number (FEIN) of the employer
        - `premium_payer` string — Who pays the premium for the HRA benefit
        - `household_size` integer — Household size for HRA benefit calculation
        - `annual_household_income` number, float — Annual household income for HRA benefit determination
        - `annual_household_income_determination` string — Method used to determine the annual household income
        - `offered_hra` boolean, required — Whether HRA was offered to the applicant
        - `offered_hra_unknown` boolean — Whether the HRA offering status is unknown
        - `tpa_slug` string — TPA slug for auto-filling TPA information from the database
      - `guardian` object — Guardian information (optional)
        - `first_name` string — First name of the guardian
        - `middle_name` string — Middle name of the guardian
        - `last_name` string — Last name of the guardian
        - `gender` 'male' | 'female' — Gender of the guardian
        - `relationship` 'parent' | 'legal_guardian' | 'grandparent' | 'other' — Relationship of the guardian to the applicant
    - `spouse` object — Spouse information (optional)
      - `first_name` string — First name
      - `middle_name` string — Middle name
      - `last_name` string — Last name
      - `suffix` 'Jr.' | 'Sr.' | 'II' | 'III' | 'IV' | 'V' — Name suffix
      - `gender` 'male' | 'female' — Gender
      - `date_of_birth` string, date — Date of birth
      - `us_citizen` boolean — US citizenship status
      - `resides_in_state` boolean — Whether applicant resides in the state
      - `uses_tobacco` 'true' | 'false' — Tobacco use status
      - `race_ethnicity` 'american_indian_or_alaskan_native' | 'asian_indian' | 'black_or_african_american' | 'chinese' | 'filipino' | 'guamanian_or_chamorro' | 'japanese' | 'korean' | 'native_hawaiian' | 'samoan' | 'vietnamese' | 'white' | 'asian_race_not_listed_above' | 'pacific_islander_race_not_listed_above' | 'race_not_listed_above' | 'decline_to_answer' — Race/ethnicity
      - `hispanic_origin` 'yes' | 'no' | 'decline_to_answer' — Hispanic origin
      - `hispanic_origin_description` 'cuban' | 'mexican_mexican_american_or_chicanx' | 'puerto_rican' | 'other_hispanic_latino_or_spanish_origin' | 'decline_to_answer' — Hispanic origin description
      - `ssn` string — Social Security Number (must be exactly 9 digits, no dashes)
      - `has_existing_coverage` boolean — Whether applicant has existing coverage
      - `existing_coverage_type` 'issuer' | 'government' — Type of existing coverage
      - `plan_replaces_existing_coverage` boolean — Whether plan replaces existing coverage
      - `existing_coverage_insurer` string — Existing coverage insurer
      - `existing_coverage_policy_id` string — Existing coverage policy ID
      - `existing_coverage_term_date` string, date — Existing coverage termination date
    - `domestic_partner` object — Domestic partner information (optional)
      - `first_name` string — First name
      - `middle_name` string — Middle name
      - `last_name` string — Last name
      - `suffix` 'Jr.' | 'Sr.' | 'II' | 'III' | 'IV' | 'V' — Name suffix
      - `gender` 'male' | 'female' — Gender
      - `date_of_birth` string, date — Date of birth
      - `us_citizen` boolean — US citizenship status
      - `resides_in_state` boolean — Whether applicant resides in the state
      - `uses_tobacco` 'true' | 'false' — Tobacco use status
      - `race_ethnicity` 'american_indian_or_alaskan_native' | 'asian_indian' | 'black_or_african_american' | 'chinese' | 'filipino' | 'guamanian_or_chamorro' | 'japanese' | 'korean' | 'native_hawaiian' | 'samoan' | 'vietnamese' | 'white' | 'asian_race_not_listed_above' | 'pacific_islander_race_not_listed_above' | 'race_not_listed_above' | 'decline_to_answer' — Race/ethnicity
      - `hispanic_origin` 'yes' | 'no' | 'decline_to_answer' — Hispanic origin
      - `hispanic_origin_description` 'cuban' | 'mexican_mexican_american_or_chicanx' | 'puerto_rican' | 'other_hispanic_latino_or_spanish_origin' | 'decline_to_answer' — Hispanic origin description
      - `ssn` string — Social Security Number (must be exactly 9 digits, no dashes)
      - `has_existing_coverage` boolean — Whether applicant has existing coverage
      - `existing_coverage_type` 'issuer' | 'government' — Type of existing coverage
      - `plan_replaces_existing_coverage` boolean — Whether plan replaces existing coverage
      - `existing_coverage_insurer` string — Existing coverage insurer
      - `existing_coverage_policy_id` string — Existing coverage policy ID
      - `existing_coverage_term_date` string, date — Existing coverage termination date
    - `dependents` object[] — Array of dependent information
      - `first_name` string — First name
      - `middle_name` string — Middle name
      - `last_name` string — Last name
      - `suffix` 'Jr.' | 'Sr.' | 'II' | 'III' | 'IV' | 'V' — Name suffix
      - `gender` 'male' | 'female' — Gender
      - `date_of_birth` string, date — Date of birth
      - `us_citizen` boolean — US citizenship status
      - `resides_in_state` boolean — Whether dependent resides in the state
      - `uses_tobacco` boolean — Tobacco use status
      - `race_ethnicity` 'american_indian_or_alaskan_native' | 'asian_indian' | 'black_or_african_american' | 'chinese' | 'filipino' | 'guamanian_or_chamorro' | 'japanese' | 'korean' | 'native_hawaiian' | 'samoan' | 'vietnamese' | 'white' | 'asian_race_not_listed_above' | 'pacific_islander_race_not_listed_above' | 'race_not_listed_above' | 'decline_to_answer' — Race/ethnicity
      - `hispanic_origin` 'yes' | 'no' | 'decline_to_answer' — Hispanic origin
      - `hispanic_origin_description` 'cuban' | 'mexican_mexican_american_or_chicanx' | 'puerto_rican' | 'other_hispanic_latino_or_spanish_origin' | 'decline_to_answer' — Hispanic origin description
      - `ssn` string — Social Security Number (must be exactly 9 digits, no dashes)
      - `has_existing_coverage` boolean — Whether dependent has existing coverage
      - `existing_coverage_type` 'issuer' | 'government' — Type of existing coverage
      - `plan_replaces_existing_coverage` boolean — Whether plan replaces existing coverage
      - `existing_coverage_insurer` string — Existing coverage insurer
      - `existing_coverage_policy_id` string — Existing coverage policy ID
      - `existing_coverage_term_date` string, date — Existing coverage termination date

## Other responses

- `302` — Success - Redirects to application/enrollment page
- `401` — Error - Authentication required (staging environment)
- `406` — Error - Access blocked from outside United States
- `422` — Error - Plan not available for off-ex marketplace, missing required parameters, or malformed input
- `429` — Error - Rate limit exceeded
- `500` — Error - Internal server error

---

[API](https://skmtc.net/healthsherpa/apis/health-insurance-quotes-api.md) · [All operations](https://skmtc.net/healthsherpa/apis/health-insurance-quotes-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/healthsherpa/health-insurance-quotes-api/revisions/3cbfff4e5929/schema)
