# List terminals

List all terminals (POS devices) from your account.
**Required scope:** <code style="background:#e8f0fe;color:#1a73e8;padding:2px 8px;border-radius:12px;font-size:0.85em">terminal:read</code>

Endpoint: GET /terminal
Version: 2.0
Security: accountId, apiKey

## Query parameters:

  - `cursor` (string)
    The cursor parameter is used for pagination. It specifies the pointer to the start of the next set of results in a sequence of paginated data. Typically, this is a unique identifier of the last item from the previous response. If not provided, the API fetches the first page of results.

  - `limit` (number)
    The limit parameter is used for pagination. It specifies the maximum number of entries to return in a single page of results. Max 100.

  - `name` (string)
    Filter by terminal name

  - `status` (string)
    Filter by terminal status

  - `model` (string)
    Filter by terminal model

## Response 200 fields (application/json):

  - `metadata` (object, required)
    An object containing additional information about the response. It includes details that help manage and navigate the retrieved data.

  - `metadata.next_cursor` (string, required)
    Provides the cursor for the next set of records. This value should be used as the cursor parameter in subsequent requests to continue paginating through the data. If the cursor is an empty string or null, it indicates that there are no more results. To retrieve all available results, continue making subsequent requests until next_cursor is empty or null.
    Example: lL_j7ilk7rc

  - `metadata.count` (number, required)
    The total number of records in the current response. This field indicates the number of items returned in the current set of results.
    Example: 10

  - `data` (array, required)

  - `data.id` (string)
    The unique identifier of the terminal.
    Example: 458b2fc4-3092-4de3-abd4-fe1600c09420

  - `data.serial_number` (string)
    The serial number of the terminal device. Unique per acquirer.
    Example: 123-456-789

  - `data.name` (string)
    The name of the terminal. Must be unique.
    Example: Terminal Checkout 1

  - `data.status` (string)
    The current status of the terminal. Determined by the device state.
    Enum: "ACTIVE", "INACTIVE", "DELETED"

  - `data.acquirer` (string)
    The acquirer associated with the terminal.
    Enum: "VERIFONE"

  - `data.model` (string)
    The model of the terminal device. Inferred from the serial number.
    Example: V240m

  - `data.last_transaction_at` (string | null)
    The date and time of the last transaction processed by the terminal. Null if no transactions have been processed.
    Example: 2025-08-05T13:44:29Z

  - `data.created_at` (string)
    The date and time when the terminal was created.
    Example: 2025-08-05T13:44:29Z

## Response 403 fields (application/json):

  - `status` (string, required)

  - `message` (array, required)
    An array of human-readable messages included in the response. These messages provide detailed information about the success of the operation or explain the reasons for any failure. This field is always present in the response to ensure clarity and transparency regarding the outcome of the API request.

## Response 429 fields (application/json):

  - `status` (string, required)

  - `message` (array, required)
    An array of human-readable messages included in the response. These messages provide detailed information about the success of the operation or explain the reasons for any failure. This field is always present in the response to ensure clarity and transparency regarding the outcome of the API request.

## Response 500 fields (application/json):

  - `status` (string, required)

  - `message` (array, required)
    An array of human-readable messages included in the response. These messages provide detailed information about the success of the operation or explain the reasons for any failure. This field is always present in the response to ensure clarity and transparency regarding the outcome of the API request.

