> The full uetr.ai documentation index is at https://uetr.ai/llms.txt, and every page under https://uetr.ai/docs/api is also Markdown at its address plus `.md`.

# List transfers

List the transfers in this account with their current status, newest first, one page at a time. Paid transfers come in the full view and the rest in the free view, exactly as the dashboard shows them. Archived transfers are left out unless asked for. Pass next_cursor as cursor until it is null. Reading changes nothing.

`GET https://uetr.ai/api/v1/transfers`

- MCP tool: `list_transfers`
- Access: any key or connection

## Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `archived` | query | `exclude`, `include`, `only` (default `exclude`) | No | exclude (default): active transfers. include: all. only: archived transfers. |
| `cursor` | query | string (at most 200 characters) | No | The next_cursor of the previous page. |
| `limit` | query | integer (at least 1, at most 100, default `50`) | No | Transfers per page, 1 to 100. Default 50. |

## Response

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `transfers` | array of object | Yes |  |
| `transfers[].id` | string (uuid) | Yes | The transfer's id in this account. |
| `transfers[].uetr` | string | Yes | The Unique End-to-end Transaction Reference. |
| `transfers[].label` | string or null | Yes | The account's own label for the transfer. |
| `transfers[].view` | `full`, `free` | Yes | full: every report as the paid timeline shows it. free: the free tracker view. |
| `transfers[].status` | `searching`, `not_found`, `check_failed`, `in_transit`, `on_hold`, `credited`, `rejected`, `returned`, `cancelled` | Yes | The transfer's current status. |
| `transfers[].position_sentence` | string or null | No | In the full view, the payment position from its status and verified route. A reporting bank alone never establishes a position. |
| `transfers[].status_code` | string or null | Yes | The latest ISO 20022 status code, in the full view only. |
| `transfers[].status_explanation` | string or null | Yes | What the status code means, in plain English. |
| `transfers[].checks_finished` | boolean | Yes | True when no automatic check is scheduled: a final outcome, an archived transfer, or a closed monitoring window. list_transfers judges the transfer's own entry, as the dashboard shows it; get_transfer judges every lookup of the UETR, as the timeline does. |
| `transfers[].amount` | object | Yes | The amount entered for the search, as last corrected by the account owner. bank_reported_amount is what a bank reported. |
| `transfers[].amount.value` | number | Yes | The amount. |
| `transfers[].amount.currency` | string | Yes | ISO 4217 currency code. |
| `transfers[].payment_date` | string | Yes | The payment date entered for the search, as last corrected by the account owner. |
| `transfers[].bank_reported_amount` | object or null | Yes | The latest amount a bank reported, with its value date. When no bank stated a currency, the currency is the one entered for the search. A free transfer's figure is the one its free tracker shows, from the reports revealed so far. |
| `transfers[].bank_reported_amount.value` | number | Yes | The amount. |
| `transfers[].bank_reported_amount.currency` | string | Yes | ISO 4217 currency code. |
| `transfers[].bank_reported_amount.payment_date` | string or null | Yes |  |
| `transfers[].last_checked_at` | string or null | Yes | When the transfer was last checked. |
| `transfers[].monitoring_until` | string or null | Yes | When this transfer's monitoring window ends or ended (at archiving, if earlier): the paid window, or for a free transfer its free checking window. Checks can finish before it, and a paid transfer still inside its free checking window keeps free checks after it; checks_finished says whether any is scheduled. |
| `transfers[].check_frequency_minutes` | integer or null | Yes | How often this transfer's own checks run, in the full view; null when it has none scheduled. |
| `transfers[].archived` | boolean | Yes | True when the transfer is archived. |
| `transfers[].added_at` | string | Yes | When the transfer was added. |
| `next_cursor` | string or null | Yes | Pass as cursor for the next page; null on the last. |

## Example

```sh
curl -X GET "https://uetr.ai/api/v1/transfers" \
  -H "Authorization: Bearer $UETR_API_KEY"
```

The answer:

```json
{
  "transfers": [
    {
      "id": "8d2f6b1e-4c3a-4f7d-9e8b-5a1c2d3e4f60",
      "uetr": "eb6305c9-1f7f-49de-aed0-16487c27b42d",
      "label": null,
      "view": "full",
      "status": "in_transit",
      "status_code": "ACSP/G000",
      "status_explanation": "Passed to the next agent or market infrastructure, with tracking continuing.",
      "checks_finished": false,
      "amount": {
        "value": 1500.5,
        "currency": "USD"
      },
      "payment_date": "2026-10-01",
      "bank_reported_amount": {
        "value": 1500.5,
        "currency": "USD",
        "payment_date": "2026-10-01"
      },
      "last_checked_at": "2026-10-14T09:20:00.000Z",
      "monitoring_until": "2026-11-14T09:00:00.000Z",
      "check_frequency_minutes": 60,
      "archived": false,
      "added_at": "2026-10-14T09:00:00.000Z"
    }
  ],
  "next_cursor": null
}
```

## Refusals

Besides the [access refusals](/docs/api/errors#access-refusals) every call can meet, this call can answer:

- None of its own.