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

# Read a claim's status

> Where one claim you sent stands, by its claim number. Needs a key with **Read claim status**
(`claims:read`). `signing` tells you whether the patient's signature is needed and, while your appeal
button is switched on, gives you the link to show them.




## OpenAPI

````yaml api-reference/openapi.yaml GET /api/v1/claims/status
openapi: 3.1.0
info:
  title: Denialbase claims API
  version: '1.0'
  description: >
    Send us the claims your practice wrote off or won't pursue, straight from
    your billing system, and read

    where each one stands. Our team reviews every claim, decides how to appeal
    it and does the work.


    Server to server only: send your API key from your own server, never from a
    browser.
  contact:
    email: support@denialbase.com
servers:
  - url: https://api.denialbase.com
security:
  - apiKey: []
tags:
  - name: Claims
paths:
  /api/v1/claims/status:
    get:
      tags:
        - Claims
      summary: Read a claim's status
      description: >
        Where one claim you sent stands, by its claim number. Needs a key with
        **Read claim status**

        (`claims:read`). `signing` tells you whether the patient's signature is
        needed and, while your appeal

        button is switched on, gives you the link to show them.
      operationId: readClaimStatus
      parameters:
        - name: claim_number
          in: query
          required: true
          description: The claim number you sent the claim with (`claim.claim_number`).
          schema:
            type: string
            maxLength: 128
          example: CLM-1001
      responses:
        '200':
          description: The claim.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClaimStatusResponse'
              examples:
                reviewing:
                  summary: Not routed yet
                  value:
                    claim:
                      claim_number: CLM-1001
                      id: 952a1c46-5a7e-48e3-9322-5bafeaf02771
                      status: reviewing
                      signing:
                        status: not_decided
                        appeal_button: false
                ready:
                  summary: The patient needs to sign
                  value:
                    claim:
                      claim_number: CLM-1001
                      id: 952a1c46-5a7e-48e3-9322-5bafeaf02771
                      status: in_appeal
                      signing:
                        status: ready
                        appeal_button: true
                        url: https://denialbase.com/sign/3f9c2e
                        expires_at: '2026-11-01T12:00:00Z'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          description: No claim with this claim number.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error: No claim with this claim_number
        '429':
          $ref: '#/components/responses/TooManyRequests'
components:
  schemas:
    ClaimStatusResponse:
      type: object
      required:
        - claim
      additionalProperties: false
      properties:
        claim:
          type: object
          required:
            - claim_number
            - status
            - signing
          additionalProperties: false
          properties:
            claim_number:
              type: string
            id:
              type:
                - string
                - 'null'
              format: uuid
            status:
              $ref: '#/components/schemas/ClaimStatus'
            signing:
              $ref: '#/components/schemas/Signing'
    Error:
      type: object
      required:
        - error
      properties:
        error:
          type: string
        code:
          type: string
          description: A stable code where one exists, such as `baa_required`.
    ClaimStatus:
      type: string
      enum:
        - received
        - reviewing
        - in_report
        - in_appeal
        - recovered
        - closed
      description: |
        - `received`: not reviewed yet
        - `reviewing`: our team is working out how to appeal it
        - `in_report`: it is in a report we delivered to you
        - `in_appeal`: our team opened its case
        - `recovered`: the payer paid, in full or in part
        - `closed`: the appeal ended without payment
    Signing:
      type: object
      required:
        - status
        - appeal_button
      additionalProperties: false
      description: Whether the patient's signature is needed, for the appeal button.
      properties:
        status:
          type: string
          enum:
            - not_decided
            - not_needed
            - waiting_for_us
            - invite_needed
            - ready
            - signed
          description: >
            - `not_decided`: our team hasn't decided how to appeal the claim yet

            - `not_needed`: we appeal it for your practice; no patient signature

            - `waiting_for_us`: the patient will need to sign; our team hasn't
            opened the case yet

            - `invite_needed`: invite the patient first (To do → Patients to
            invite)

            - `ready`: the signing request is out; show the button with `url`
            until `expires_at`

            - `signed`: the patient signed
        appeal_button:
          type: boolean
          description: >-
            Whether the appeal button is switched on for your practice. `url`
            and `expires_at` are only present while it is.
        url:
          type: string
          format: uri
          description: >-
            The patient's signing link (only when `status` is `ready` and the
            appeal button is on).
        expires_at:
          type: string
          format: date-time
    RateLimitError:
      type: object
      required:
        - error
        - retry_after
      properties:
        error:
          type: string
        retry_after:
          type: integer
  responses:
    Unauthorized:
      description: The key is missing, unknown, revoked or expired.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error: API key has expired
    Forbidden:
      description: >
        The key lacks the scope this endpoint needs, the organization can't use
        the claims API, or the

        practice has no signed business associate agreement (`code:
        baa_required`).
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            scope:
              summary: Missing scope
              value:
                error: This API key needs the claims:write scope
            baa:
              summary: No signed business associate agreement
              value:
                error: >-
                  A signed business associate agreement (BAA) with Coastal Ortho
                  is required before any patient data can be received or sent.
                code: baa_required
    TooManyRequests:
      description: >-
        Too many requests. Wait the number of seconds in `Retry-After` (also
        `retry_after`).
      headers:
        Retry-After:
          description: Seconds to wait.
          schema:
            type: integer
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/RateLimitError'
          example:
            error: Too many requests. Please try again later.
            retry_after: 42
  securitySchemes:
    apiKey:
      type: http
      scheme: bearer
      description: >
        Your practice's API key, created in Settings → API keys: `Authorization:
        Bearer <key>`.

````

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