---
title: "Poll Batch"
method: GET
path: "/eligibility-checks/v1/batch/{batch_id}"
tags: ["v1"]
---

# Poll Batch

`GET /eligibility-checks/v1/batch/{batch_id}`

Polls the status of a batch eligibility check.

## Path parameters

- `batch_id` string, required

## Query parameters

- `page_token` string — A token that can be used to retrieve the next or previous page of results

## Response `200`

Response with status 200

- PreEncounterEligibilityChecksV1EligibilityCheckPage
  - `next_page_token` string — A token that can be used to retrieve the next or previous page of results
  - `prev_page_token` string — A token that can be used to retrieve the next or previous page of results
  - `total` integer, required
  - `items` PreEncounterEligibilityChecksV1EligibilityCheck[], required
    - `batch_id` string
    - `errors` PreEncounterEligibilityChecksV1EligibilityCheckError[]
      - `source` 'CANDID' | 'STEDI', required — enum to represent the source of an error in an eligibility check
      - `errorDetails` PreEncounterEligibilityChecksV1EligibilityCheckErrorDetails, required — This object is our fern representation of Stedi's EligbilityCheckError object from their API.
        - `field?` string
        - `description?` string
        - `location?` string
        - `possibleResolutions?` string
        - `code?` string
        - `followupAction?` string
    - `request` PreEncounterEligibilityChecksV1EligibilityRequest — An object representing the data for an eligibility request.
      - `submitter_transaction_identifier` string — A unique identifier for the eligibility check within the batch. Candid returns this identifier in the response for the /batch/{batch_id} polling endpoint so you can correlate benefit responses with the original eligibility check.
      - `payer_id` string, required — Supported payer ID values can be found [here](https://www.stedi.com/healthcare/network).
      - `provider` union, required
        - PreEncounterEligibilityChecksV1IndividualProvider
          - `first_name` string
          - `last_name` string
          - `npi` string, required
        - PreEncounterEligibilityChecksV1OrganizationProvider
          - `organization_name` string
          - `npi` string, required
      - `subscriber` PreEncounterCoveragesV1MemberInfo, required
        - `member_id` string — Stedi requires that you supply at least one of these fields in the request: memberId, dateOfBirth, or lastName. However, each payer has different requirements, so you should supply as many of the fields necessary for each payer to identify the subscriber/dependent in their system.
        - `first_name` string, required
        - `last_name` string, required
        - `date_of_birth` string, date — Stedi requires that you supply at least one of these fields in the request: memberId, dateOfBirth, or lastName. However, each payer has different requirements, so you should supply as many of the fields necessary for each payer to identify the subscriber/dependent in their system.
      - `dependent` PreEncounterCoveragesV1MemberInfo
        - `member_id` string — Stedi requires that you supply at least one of these fields in the request: memberId, dateOfBirth, or lastName. However, each payer has different requirements, so you should supply as many of the fields necessary for each payer to identify the subscriber/dependent in their system.
        - `first_name` string, required
        - `last_name` string, required
        - `date_of_birth` string, date — Stedi requires that you supply at least one of these fields in the request: memberId, dateOfBirth, or lastName. However, each payer has different requirements, so you should supply as many of the fields necessary for each payer to identify the subscriber/dependent in their system.
      - `encounter` PreEncounterEligibilityChecksV1Encounter
        - `date_of_service` string, date — Defaults to the current date if not provided.
        - `service_type_codes` string[] — Defaults to HealthBenefitPlanCoverage (30) if not provided. <Note>Not all payers support multiple service type codes, so it is recommended to only include a single code per request.</Note>
      - `get_existing_check_initiated_after` string, date-time — If not provided, this endpoint will run a fresh eligibility check. If provided, it will return an existing successful eligibility check if one exists that was initiated after provided date with the same parameters (Date of Service, Payer ID, Provider, Subscriber, Dependent, and Encounter).
      - `source` string
      - `portal_password` string — The password that the provider uses to log in to the payer's portal. This is not commonly used.
      - `portal_username` string — The username that the provider uses to log in to the payer's portal. This is not commonly used.
    - `response` unknown, required
    - `parsed_response` PreEncounterEligibilityChecksV1ParsedResponse
      - `eligibility_status` 'ACTIVE' | 'INACTIVE' | 'UNKNOWN', required — enum to represent the status of a patient's coverage
      - `plan_metadata` PreEncounterCoveragesV1PlanMetadata
        - `payer_name` string
        - `insurance_type` string
        - `insurance_type_code` string
        - `plan_name` string
        - `member_id` string
        - `group_number` string
        - `start_date` string, date
        - `end_date` string, date
        - `plan_dates` PreEncounterCoveragesV1PlanDate[]
          - `start_date` string, date, required
          - `end_date` string, date
          - `field_name` string, required
        - `subscriber` PreEncounterCoveragesV1ExpandedMemberInfo
          - `member_id` string
          - `group_number` string
          - `first_name` string
          - `middle_name` string
          - `last_name` string
          - `date_of_birth` string
          - `gender` string
          - `address` PreEncounterCoveragesV1Address
            - `address1` string
            - `address2` string
            - `city` string
            - `state` string
            - `postal_code` string
            - `country_code` string
            - `country_sub_division_code` string
        - `dependent` PreEncounterCoveragesV1ExpandedMemberInfo
          - `member_id` string
          - `group_number` string
          - `first_name` string
          - `middle_name` string
          - `last_name` string
          - `date_of_birth` string
          - `gender` string
          - `address` PreEncounterCoveragesV1Address
            - `address1` string
            - `address2` string
            - `city` string
            - `state` string
            - `postal_code` string
            - `country_code` string
            - `country_sub_division_code` string
        - `trading_partner` string — The payer's own identifier as returned on the Stedi eligibility response (271) `tradingPartnerServiceId`. Reflects the payer's internal concept of their ID, which may differ from the ID Stedi routes on.
      - `benefits` PreEncounterCoveragesV1CoverageBenefits
        - `plan_coverage` PreEncounterCoveragesV1PlanCoverage
          - `in_network` PreEncounterCoveragesV1PlanCoverageDetails
            - `deductible` PreEncounterCoveragesV1CoverageValue
              - …
            - `deductible_contract` PreEncounterCoveragesV1CoverageValue
              - …
            - `deductible_remaining` PreEncounterCoveragesV1CoverageValue
              - …
            - `deductible_year_to_date` PreEncounterCoveragesV1CoverageValue
              - …
            - `oop_max` PreEncounterCoveragesV1CoverageValue
              - …
            - `oop_max_contract` PreEncounterCoveragesV1CoverageValue
              - …
            - `oop_max_remaining` PreEncounterCoveragesV1CoverageValue
              - …
            - `oop_max_year_to_date` PreEncounterCoveragesV1CoverageValue
              - …
            - `additional_notes` string
          - `in_network_flat` PreEncounterCoveragesV1CoverageDetails[]
            - `type` 'DEDUCTIBLE' | 'DEDUCTIBLE_CONTRACT' | 'DEDUCTIBLE_REMAINING' | 'DEDUCTIBLE_YEAR_TO_DATE' | 'OOP_MAX' | 'OOP_MAX_CONTRACT' | 'OOP_MAX_REMAINING' | 'OOP_MAX_YEAR_TO_DATE' | 'COPAY' | 'COINSURANCE' | 'NON_COVERED' | 'LIMITATION', required
            - `coverageLevel` 'EMPLOYEE_AND_CHILDREN' | 'EMPLOYEE_ONLY' | 'EMPLOYEE_AND_SPOUSE' | 'FAMILY' | 'INDIVIDUAL', required
            - `unit` 'PERCENT' | 'CURRENCY' | 'COUNT', required
            - `value` number, double, required
            - `additional_notes` string
          - `out_of_network` PreEncounterCoveragesV1PlanCoverageDetails
            - `deductible` PreEncounterCoveragesV1CoverageValue
              - …
            - `deductible_contract` PreEncounterCoveragesV1CoverageValue
              - …
            - `deductible_remaining` PreEncounterCoveragesV1CoverageValue
              - …
            - `deductible_year_to_date` PreEncounterCoveragesV1CoverageValue
              - …
            - `oop_max` PreEncounterCoveragesV1CoverageValue
              - …
            - `oop_max_contract` PreEncounterCoveragesV1CoverageValue
              - …
            - `oop_max_remaining` PreEncounterCoveragesV1CoverageValue
              - …
            - `oop_max_year_to_date` PreEncounterCoveragesV1CoverageValue
              - …
            - `additional_notes` string
          - `out_of_network_flat` PreEncounterCoveragesV1CoverageDetails[]
            - `type` 'DEDUCTIBLE' | 'DEDUCTIBLE_CONTRACT' | 'DEDUCTIBLE_REMAINING' | 'DEDUCTIBLE_YEAR_TO_DATE' | 'OOP_MAX' | 'OOP_MAX_CONTRACT' | 'OOP_MAX_REMAINING' | 'OOP_MAX_YEAR_TO_DATE' | 'COPAY' | 'COINSURANCE' | 'NON_COVERED' | 'LIMITATION', required
            - `coverageLevel` 'EMPLOYEE_AND_CHILDREN' | 'EMPLOYEE_ONLY' | 'EMPLOYEE_AND_SPOUSE' | 'FAMILY' | 'INDIVIDUAL', required
            - `unit` 'PERCENT' | 'CURRENCY' | 'COUNT', required
            - `value` number, double, required
            - `additional_notes` string
        - `service_specific_coverage` PreEncounterCoveragesV1ServiceCoverage[]
          - `service_code` '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' | '10' | '11' | '12' | '13' | '14' | '15' | '16' | '17' | '18' | '19' | '20' | '21' | '22' | '23' | '24' | '25' | '26' | '27' | '28' | '30' | '32' | '33' | '34' | '35' | '36' | '37' | '38' | '39' | '40' | '41' | '42' | '43' | '44' | '45' | '46' | '47' | '48' | '49' | '50' | '51' | '52' | '53' | '54' | '55' | '56' | '57' | '58' | '59' | '60' | '61' | '62' | '63' | '64' | '65' | '66' | '67' | '68' | '69' | '70' | '71' | '72' | '73' | '74' | '75' | '76' | '77' | '78' | '79' | '80' | '81' | '82' | '83' | '84' | '85' | '86' | '87' | '88' | '89' | '90' | '91' | '92' | '93' | '94' | '95' | '96' | '97' | '98' | '99' | 'A0' | 'A1' | 'A2' | 'A3' | 'A4' | 'A5' | 'A6' | 'A7' | 'A8' | 'A9' | 'AA' | 'AB' | 'AC' | 'AD' | 'AE' | 'AF' | 'AG' | 'AH' | 'AI' | 'AJ' | 'AK' | 'AL' | 'AM' | 'AN' | 'AO' | 'AQ' | 'AR' | 'B1' | 'B2' | 'B3' | 'BA' | 'BB' | 'BC' | 'BD' | 'BE' | 'BF' | 'BG' | 'BH' | 'BI' | 'BJ' | 'BK' | 'BL' | 'BM' | 'BN' | 'BP' | 'BQ' | 'BR' | 'BS' | 'BT' | 'BU' | 'BV' | 'BW' | 'BX' | 'BY' | 'BZ' | 'C1' | 'CA' | 'CB' | 'CC' | 'CD' | 'CE' | 'CF' | 'CG' | 'CH' | 'CI' | 'CJ' | 'CK' | 'CL' | 'CM' | 'CN' | 'CO' | 'CP' | 'CQ' | 'DG' | 'DM' | 'DS' | 'GF' | 'GN' | 'GY' | 'IC' | 'MH' | 'NI' | 'ON' | 'PT' | 'PU' | 'RN' | 'RT' | 'TC' | 'TN' | 'UC', required — Code identifying the type of service or benefit within a specific insurance policy (X12 008010 Element 1365)
          - `in_network` PreEncounterCoveragesV1ServiceCoverageDetails
            - `copay` PreEncounterCoveragesV1CoverageValue
              - …
            - `coinsurance` PreEncounterCoveragesV1CoverageValue
              - …
            - `visits` PreEncounterCoveragesV1CoverageValue
              - …
            - `visits_remaining` PreEncounterCoveragesV1CoverageValue
              - …
            - `additional_notes` string
          - `in_network_flat` PreEncounterCoveragesV1CoverageDetails[]
            - `type` 'DEDUCTIBLE' | 'DEDUCTIBLE_CONTRACT' | 'DEDUCTIBLE_REMAINING' | 'DEDUCTIBLE_YEAR_TO_DATE' | 'OOP_MAX' | 'OOP_MAX_CONTRACT' | 'OOP_MAX_REMAINING' | 'OOP_MAX_YEAR_TO_DATE' | 'COPAY' | 'COINSURANCE' | 'NON_COVERED' | 'LIMITATION', required
            - `coverageLevel` 'EMPLOYEE_AND_CHILDREN' | 'EMPLOYEE_ONLY' | 'EMPLOYEE_AND_SPOUSE' | 'FAMILY' | 'INDIVIDUAL', required
            - `unit` 'PERCENT' | 'CURRENCY' | 'COUNT', required
            - `value` number, double, required
            - `additional_notes` string
          - `out_of_network` PreEncounterCoveragesV1ServiceCoverageDetails
            - `copay` PreEncounterCoveragesV1CoverageValue
              - …
            - `coinsurance` PreEncounterCoveragesV1CoverageValue
              - …
            - `visits` PreEncounterCoveragesV1CoverageValue
              - …
            - `visits_remaining` PreEncounterCoveragesV1CoverageValue
              - …
            - `additional_notes` string
          - `out_of_network_flat` PreEncounterCoveragesV1CoverageDetails[]
            - `type` 'DEDUCTIBLE' | 'DEDUCTIBLE_CONTRACT' | 'DEDUCTIBLE_REMAINING' | 'DEDUCTIBLE_YEAR_TO_DATE' | 'OOP_MAX' | 'OOP_MAX_CONTRACT' | 'OOP_MAX_REMAINING' | 'OOP_MAX_YEAR_TO_DATE' | 'COPAY' | 'COINSURANCE' | 'NON_COVERED' | 'LIMITATION', required
            - `coverageLevel` 'EMPLOYEE_AND_CHILDREN' | 'EMPLOYEE_ONLY' | 'EMPLOYEE_AND_SPOUSE' | 'FAMILY' | 'INDIVIDUAL', required
            - `unit` 'PERCENT' | 'CURRENCY' | 'COUNT', required
            - `value` number, double, required
            - `additional_notes` string
        - `benefits_related_entities` PreEncounterCoveragesV1BenefitsRelatedEntity[]
          - `entityIdentifier` string
          - `entityType` string
          - `entityName` string
          - `contactInformation` PreEncounterCoveragesV1RelatedEntityContact[]
            - `mode` string
            - `value` string
          - `serviceTypeCodes` PreEncounterCoveragesV1ServiceTypeCode[]
        - `non_covered_details` PreEncounterCoveragesV1NonCoveredDetail[]
          - `type` 'DEDUCTIBLE' | 'DEDUCTIBLE_CONTRACT' | 'DEDUCTIBLE_REMAINING' | 'DEDUCTIBLE_YEAR_TO_DATE' | 'OOP_MAX' | 'OOP_MAX_CONTRACT' | 'OOP_MAX_REMAINING' | 'OOP_MAX_YEAR_TO_DATE' | 'COPAY' | 'COINSURANCE' | 'NON_COVERED' | 'LIMITATION', required
          - `coverageLevel` 'EMPLOYEE_AND_CHILDREN' | 'EMPLOYEE_ONLY' | 'EMPLOYEE_AND_SPOUSE' | 'FAMILY' | 'INDIVIDUAL', required
          - `unit` 'PERCENT' | 'CURRENCY' | 'COUNT', required
          - `value` number, double, required
          - `additional_notes` string
          - `service_type_codes` PreEncounterCoveragesV1ServiceTypeCode[]
        - `notes` string
        - `autoUpdatedEligibilityCheckId` string
    - `request_corrections` PreEncounterEligibilityChecksV1RequestCorrection[]
      - `property` string, required
      - `request_value` string, required
      - `corrected_value` string, required

## Changes

- **2026-09-17** `24b2d80d577a` — 1 breaking, 1 warning, 6 info
  - the response's body type changed from no type to `object` for status `200`
  - deleted the `header` request parameter `Authorization`
  - the endpoint scheme security `OAuthScheme` was added to the API
  - for the `query` request parameter `page_token`, the type was generalized from no type to `string`
  - …4 more
- **2026-09-12** `3a81ee81d4ed` — 1 info
  - api operation id `poll-batch` removed and replaced with `v1_poll-batch`

[Change history](https://skmtc.dev/joincandidhealth/apis/api-reference/changes/eligibility-checks/v1/batch/:batch_id/get.md)

---

[API](https://skmtc.dev/joincandidhealth/apis/api-reference.md) · [All operations](https://skmtc.dev/joincandidhealth/apis/api-reference/llms.txt) · [OpenAPI document](https://skmtc.dev/joincandidhealth/apis/api-reference/revisions/4074901c170f?raw)
