---
api: 'Merchant API'
---

# Retrieve terminal list

Retrieve a list of Revolut Terminal devices available to the merchant.

This endpoint is primarily used for push payments to Revolut Terminal integration, allowing POS systems to discover available terminals at a specific location and in the correct operation mode.

:::tip
For push payments integration, use the `operation_mode=pos` query parameter to filter only terminals in **Pay at Counter** mode that are ready to receive payment intents.
:::

:::info
For more information about integration, see: [Push payments to Revolut Terminal](/docs/guides/merchant/accept-payments/in-person-payments/terminal/push-payments).
:::

## Endpoint

GET `/api/terminals`

## Parameters

### query parameters

- `operation_mode` (enum, optional)
  Filter terminals by operation mode.
  
  | Value | Description |
  |-------|-------------|
  | `pos` | Returns only terminals in Pay at Counter mode |
  | `payment_acceptance` | Returns only terminals in standard checkout mode |
  Possible enum values:

  - `pos`
  - `payment_acceptance`

- `location_id` (string, optional)
  Filter results by location ID.

## Returns

### 200

OK

#### Response attributes

- `terminals` (array of object)
    List of terminal devices.
  - `terminals[].id` (string)
      The unique identifier of the terminal.
  - `terminals[].name` (string)
      The name of the terminal device.
  - `terminals[].type` (enum)
      The hardware type/model of the terminal device.
      Possible enum values:

      - `youtransactor_ucube_touch`
      - `newland_n950`
      - `newland_n750`
      - `newland_r25p`
  - `terminals[].serial_number` (string)
      The serial number of the terminal device.
  - `terminals[].battery_level` (integer)
      The current battery level of the terminal as a percentage (0-100).
  - `terminals[].online` (boolean)
      Indicates whether the terminal is currently online and connected.
      
      | Value | Description |
      |-------|-------------|
      | `true` | Terminal is online and available |
      | `false` | Terminal is offline |
  - `terminals[].last_online_at` (string)
      The date and time when the terminal was last seen online.

## Error responses

| HTTP status code | Description |
| --- | --- |
| 400 | Bad Request |
| 401 | Unauthorized |
