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

# List Terminals

> Lists physical and simulated Terminals for the Merchant and key mode.



## OpenAPI

````yaml /openapi/terminal-management.yaml get /terminals
openapi: 3.0.3
info:
  title: Ionic Terminal Management API
  version: '2026-08-26'
  description: |
    Request physical Terminal hardware, inspect Merchant-owned Terminals, and
    read Ionic's terminal batch and settlement records.

    Every resource is scoped to the authenticated Merchant and the secret
    key's test or live mode. Request bodies never select `merchant_id` or
    `livemode`. Platforms can use `Ionic-Account` on delegated reads and
    provisioning requests; batch refresh is available only to a Merchant's
    own secret key.
servers:
  - url: '{baseUrl}/v1'
    variables:
      baseUrl:
        default: https://api.ionicfi.com
        description: API base URL for the selected environment.
security:
  - secretKey: []
tags:
  - name: Terminal Provisioning
    description: Request physical hardware and track fulfillment.
  - name: Terminals
    description: Inspect Merchant-owned Terminal inventory and readiness.
  - name: Terminal Batches
    description: Read Ionic batch, item, and settlement records.
paths:
  /terminals:
    get:
      tags:
        - Terminals
      summary: List Terminals
      description: Lists physical and simulated Terminals for the Merchant and key mode.
      operationId: listTerminals
      parameters:
        - $ref: '#/components/parameters/IonicAccount'
        - $ref: '#/components/parameters/Limit'
        - $ref: '#/components/parameters/StartingAfter'
      responses:
        '200':
          description: A page of Terminals.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TerminalList'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ReadForbidden'
        '429':
          $ref: '#/components/responses/RateLimited'
        '500':
          $ref: '#/components/responses/InternalError'
      security:
        - secretKey:
            - terminals:read
components:
  parameters:
    IonicAccount:
      name: Ionic-Account
      in: header
      required: false
      description: Merchant ID when an authorized Platform acts for a connected Merchant.
      schema:
        type: string
        pattern: ^mer_[0-9A-Za-z]{14}$
    Limit:
      name: limit
      in: query
      required: false
      description: Page size. Defaults to 20 and cannot exceed 100.
      schema:
        type: integer
        minimum: 1
        maximum: 100
        default: 20
    StartingAfter:
      name: starting_after
      in: query
      required: false
      description: Return objects after this resource ID.
      schema:
        type: string
  schemas:
    TerminalList:
      allOf:
        - $ref: '#/components/schemas/ListBase'
        - type: object
          required:
            - data
          properties:
            data:
              type: array
              items:
                $ref: '#/components/schemas/Terminal'
    ListBase:
      type: object
      required:
        - object
        - has_more
      properties:
        object:
          type: string
          enum:
            - list
        has_more:
          type: boolean
        next_cursor:
          type: string
          nullable: true
    Terminal:
      type: object
      additionalProperties: false
      required:
        - id
        - object
        - merchant_id
        - location_id
        - livemode
        - label
        - device
        - status
        - connection_status
        - connection_status_stale
        - connection_observed_at
        - capabilities
        - last_seen_at
        - metadata
        - created_at
        - updated_at
      properties:
        id:
          type: string
          pattern: ^tmr_[0-9A-Za-z]{14}$
        object:
          type: string
          enum:
            - terminal
        merchant_id:
          type: string
          pattern: ^mer_[0-9A-Za-z]{14}$
        location_id:
          type: string
          pattern: ^loc_[0-9A-Za-z]{14}$
        livemode:
          type: boolean
        label:
          type: string
        device:
          $ref: '#/components/schemas/TerminalDevice'
        status:
          type: string
          enum:
            - provisioning
            - requires_action
            - ready
            - disabled
            - replacing
            - failed
        connection_status:
          type: string
          enum:
            - online
            - offline
            - unknown
          description: >-
            Freshness-aware connection status; stale observations are returned
            as `unknown`.
        connection_status_stale:
          type: boolean
        connection_observed_at:
          type: integer
          format: int64
          nullable: true
          description: Unix epoch seconds of the last connection observation.
        capabilities:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/TerminalCapability'
          description: >-
            Capability names are additive; inspect each entry's status before
            use.
        last_seen_at:
          type: integer
          format: int64
          nullable: true
        metadata:
          $ref: '#/components/schemas/Metadata'
        created_at:
          type: integer
          format: int64
        updated_at:
          type: integer
          format: int64
    Error:
      type: object
      required:
        - error
      properties:
        error:
          type: object
          required:
            - code
            - message
          properties:
            code:
              type: string
            message:
              type: string
    TerminalDevice:
      type: object
      additionalProperties: false
      required:
        - model
        - serial_number_last4
      properties:
        model:
          type: string
        serial_number_last4:
          type: string
          pattern: ^[0-9A-Za-z]{4}$
    TerminalCapability:
      type: object
      additionalProperties: false
      required:
        - support
        - status
      properties:
        support:
          type: string
          enum:
            - supported
            - unsupported
            - conditional
        status:
          type: string
          enum:
            - ready
            - pending
            - not_ready
            - unknown
        reason:
          type: string
          description: Additive Ionic reason code when the capability is not ready.
    Metadata:
      type: object
      description: >-
        Up to 50 string keys; keys are at most 40 characters and values are at
        most 500 characters.
      maxProperties: 50
      additionalProperties:
        type: string
        maxLength: 500
  responses:
    BadRequest:
      description: Invalid JSON, identifier, fields, filters, or cursor.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: Missing or invalid API key.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    ReadForbidden:
      description: Invalid delegation or missing `terminals:read` permission.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    RateLimited:
      description: Too many requests.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    InternalError:
      description: Unexpected server error.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    secretKey:
      type: http
      scheme: bearer
      bearerFormat: Ionic secret key
      description: >-
        Merchant secret key, or an authorized Platform secret key with
        delegation where documented.

````