> ## Documentation Index
> Fetch the complete documentation index at: https://docs.clinikehr.com/llms.txt
> Use this file to discover all available pages before exploring further.

# List insurer enrollees

> **Permission:** `insurance.enrollees:read`

List the enrollees of your insurer.

For an organization the clinic linked to an insurer: that insurer's enrollees at this clinic. To verify an enrollee, send `insurance_no` (it also matches the alternate number). A clinic-owned key sees every insurer's enrollees. An organization with no insurer link is refused (`hmo_not_linked`); a clinic on the US insurance setup is refused (`insurance_region_unsupported`). A restricted patient's enrollee record is never returned.



## OpenAPI

````yaml /openapi/ehr-api.v1.yaml get /v1/clinics/{clinic_id}/insurance/enrollees
openapi: 3.1.0
info:
  title: ClinikEHR API
  version: 1.0.0
  description: >-
    Server-to-server REST API for a clinic's own data, reached with a key the
    clinic (or a developer workspace) creates in the developer portal.


    Authenticate every request with `Authorization: Bearer <key>`. Test keys
    reach only your workspace's own synthetic sandbox; live keys reach the
    clinic that created them. Lists wrap their rows as `{ data, has_more,
    next_cursor }`; single resources are returned directly. Errors are
    `application/problem+json` (RFC 9457) with a stable `code`.


    Write requests accept an `Idempotency-Key` header so a retry never repeats a
    change. See the guides for authentication, permissions, pagination, rate
    limits and retries.
servers:
  - url: https://api.clinikehr.com
security:
  - ApiKey: []
paths:
  /v1/clinics/{clinic_id}/insurance/enrollees:
    get:
      tags:
        - HMO insurance
      summary: List insurer enrollees
      description: >-
        **Permission:** `insurance.enrollees:read`


        List the enrollees of your insurer.


        For an organization the clinic linked to an insurer: that insurer's
        enrollees at this clinic. To verify an enrollee, send `insurance_no` (it
        also matches the alternate number). A clinic-owned key sees every
        insurer's enrollees. An organization with no insurer link is refused
        (`hmo_not_linked`); a clinic on the US insurance setup is refused
        (`insurance_region_unsupported`). A restricted patient's enrollee record
        is never returned.
      operationId: listInsuranceEnrollees
      parameters:
        - name: clinic_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
        - name: insurance_company_id
          in: query
          required: false
          schema:
            type: string
            format: uuid
        - name: insurance_no
          in: query
          required: false
          schema:
            type: string
            maxLength: 64
        - name: status
          in: query
          required: false
          schema:
            type: string
            enum:
              - AA
              - IA
              - SX
              - XX
              - PP
              - WP
        - name: updated_since
          in: query
          required: false
          schema:
            type: string
            format: date-time
        - name: limit
          in: query
          required: false
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 25
        - name: starting_after
          in: query
          required: false
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                type: object
                required:
                  - data
                  - has_more
                  - next_cursor
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/InsuranceEnrollee'
                  has_more:
                    type: boolean
                  next_cursor:
                    type:
                      - string
                      - 'null'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '409':
          $ref: '#/components/responses/Conflict'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      security:
        - ApiKey: []
components:
  schemas:
    InsuranceEnrollee:
      type: object
      description: >-
        A person an insurer covers at this clinic, as the clinic holds them.
        `insurance_no` is the number an enrollee is verified by. Only enrollees
        of an insurer the clinic linked to your organization are returned.
        Verification metadata and the clinic's internal notes are never exposed.
      required:
        - id
        - insurance_company_id
        - insurance_no
        - status
      properties:
        id:
          type: string
          format: uuid
        insurance_company_id:
          type: string
          format: uuid
        patient_id:
          type:
            - string
            - 'null'
          format: uuid
          description: >-
            The clinic's own patient id; null for a floating enrollee not yet
            matched to a patient.
        insurance_no:
          type: string
        alternate_insurance_no:
          type:
            - string
            - 'null'
        firstname:
          type:
            - string
            - 'null'
        middlename:
          type:
            - string
            - 'null'
        lastname:
          type:
            - string
            - 'null'
        sex:
          type:
            - string
            - 'null'
        birthdate:
          type:
            - string
            - 'null'
          format: date
        status:
          type: string
          enum:
            - AA
            - IA
            - SX
            - XX
            - PP
            - WP
          description: >-
            Curacel enrollee status codes: AA active, IA inactive, SX suspended,
            XX cancelled, PP pending, WP waiting period.
        status_effective_from:
          type:
            - string
            - 'null'
          format: date
        valid_until:
          type:
            - string
            - 'null'
          format: date
        plan:
          oneOf:
            - $ref: '#/components/schemas/InsuranceEnrolleePlan'
            - type: 'null'
        parent_enrollee_id:
          type:
            - string
            - 'null'
          format: uuid
        parent_relationship:
          type:
            - string
            - 'null'
        staff_number:
          type:
            - string
            - 'null'
        primary_provider_code:
          type:
            - string
            - 'null'
        is_floating:
          type:
            - boolean
            - 'null'
        verified_at:
          type:
            - string
            - 'null'
          format: date-time
        updated_at:
          type:
            - string
            - 'null'
          format: date-time
    InsuranceEnrolleePlan:
      type: object
      required:
        - id
        - name
        - code
      properties:
        id:
          type: string
          format: uuid
        name:
          type:
            - string
            - 'null'
        code:
          type:
            - string
            - 'null'
    Problem:
      type: object
      description: RFC 9457 application/problem+json.
      required:
        - type
        - title
        - status
        - code
        - request_id
      properties:
        type:
          type: string
          format: uri
        title:
          type: string
        status:
          type: integer
        detail:
          type: string
        code:
          type: string
        request_id:
          type: string
        errors:
          type: array
          items:
            type: object
            required:
              - pointer
              - message
            properties:
              pointer:
                type: string
              message:
                type: string
  responses:
    BadRequest:
      description: >-
        The request failed validation (unknown query parameter, limit out of
        range, malformed body, or a write-off sent without its reason —
        `reason_required`).
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
    Unauthorized:
      description: >-
        Missing, malformed, unknown, revoked or expired key, or the wrong
        secret.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
    Forbidden:
      description: >-
        The key or connection lacks the required scope, the plan does not
        include this resource, the request came from an address this key's IP
        allow-list does not permit, a TEST-environment workspace key asked for a
        clinic_id other than its own workspace's sandbox (`sandbox_only`), or a
        LIVE workspace key asked for a real clinic while its workspace's
        verification has lapsed (`not_verified`) — the response never names
        which addresses ARE allowed, nor which clinic actually is the sandbox.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
    NotFound:
      description: The record is absent, or out of the key's scope — one message for both.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
    Conflict:
      description: >-
        The request is well-formed but conflicts with the CURRENT STATE of the
        record — a double-booked slot (`slot_taken`), a clinician's calendar
        blocked at that time (`out_of_office`), nobody eligible free
        (`no_provider_available`), an item that still has stock
        (`item_has_stock`), an item that has been used and so cannot be deleted
        (`item_has_history`), a ledger movement that cannot be covered
        (`insufficient_stock`, `expired_stock_not_transferable`), a note already
        signed or clinician-touched (`note_not_editable`), an Idempotency-Key
        already used for a different request or still in flight
        (`idempotency_key_conflict`, `idempotency_key_reused`), or an
        external-stock batch rejected as structurally invalid or a suspicious
        shrink versus the clinic's last accepted batch (`batch_rejected`), or an
        outside record that conflicts with what was already submitted or
        decided: the same `client_reference` sent again with different content
        (`client_reference_conflict`), or a submission a clinician has already
        decided (`submission_not_pending`), or an insurance write that conflicts
        with the clinic's setup or the coverage's state: the patient already has
        a coverage for that payer (`coverage_exists`, the existing coverage's id
        is in `detail` when the caller can see that patient), a payer the clinic
        has not enabled in Settings → Insurance (`payer_not_enabled`), or
        `coverage_active: true` sent through the API
        (`activation_requires_staff` — only clinic staff activate a coverage),
        or a change to an outside care provider the clinic added rather than an
        app (`care_provider_clinic_managed` — only the clinic can change or
        remove it).
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
    TooManyRequests:
      description: Rate limited. See the Retry-After header.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
  securitySchemes:
    ApiKey:
      type: http
      scheme: bearer
      bearerFormat: ehr_live_<keyId>_<secret> or ehr_test_<keyId>_<secret>

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.