> 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`.

# uetr.ai API

Track international bank transfers by their UETR and read what the banks report about them. Every call acts on one uetr.ai account, with the rights of the user who created the credential. The same actions are tools on the MCP server at `https://uetr.ai/mcp`.

New here? The [quickstart](/docs/api/quickstart) makes a first call in a few minutes.

## Base address

`https://uetr.ai/api/v1`. The OpenAPI document is at [https://uetr.ai/openapi.json](https://uetr.ai/openapi.json).

## Authentication

Create an API key on the AI and API page of uetr.ai and send it only in the `Authorization` header as `Bearer <key>`. A key sent in a URL is revoked at once. AI apps on the MCP server sign in through `https://auth.uetr.ai` instead and receive their own tokens, and a script can send its API key to the MCP server too. A read key can make the reads its user may make, and changes need a key with read and write access. Some operations are the account owner's alone, as on the website: their pages say so, and a teammate's keys and connected apps cannot call them. More in [authentication](/docs/api/authentication).

## Versions

Versions are dates. A key keeps the version it was created on, and a call can name another known version in the `uetr-version` header. The current version is `2026-10-14`. Breaking changes ship only as a new dated version.

## Limits

Calls and changes have per-account limits, listed in [rate limits](/docs/api/rate-limits). A refused call carries `rate_limited` with a `Retry-After` header and `retry_after_seconds` in the body. Wait that long, then try again.

## Refusals

A refusal is a problem+json body (RFC 9457) with a stable `code` to act on and a plain-English `detail` to pass on. Every code is listed on the [errors page](/docs/api/errors).

## Operations

### Transfers

- [Add a transfer](/docs/api/add-transfer): `POST /transfers`
- [Archive a transfer](/docs/api/archive-transfer): `POST /transfers/{uetr}/archive`
- [Delete a transfer](/docs/api/delete-transfer): `DELETE /transfers/{uetr}`
- [Get a transfer's share link](/docs/api/get-share-link): `GET /transfers/{uetr}/share-link`
- [Get a transfer](/docs/api/get-transfer): `GET /transfers/{uetr}`
- [Count the people following a transfer](/docs/api/get-watcher-count): `GET /transfers/{uetr}/watchers`
- [List transfers](/docs/api/list-transfers): `GET /transfers`
- [Re-check a transfer now](/docs/api/recheck-transfer): `POST /transfers/{uetr}/recheck`
- [Rename a transfer](/docs/api/rename-transfer): `PATCH /transfers/{uetr}/label`
- [Restore an archived transfer](/docs/api/restore-transfer): `POST /transfers/{uetr}/restore`
- [Set a transfer's check frequency](/docs/api/set-check-frequency): `PATCH /transfers/{uetr}/check-frequency`
- [Share a payment record](/docs/api/share-payment-record): `POST /transfers/{uetr}/record-share`
- [Correct a transfer's details](/docs/api/update-transfer): `PATCH /transfers/{uetr}/details`

### Payment records

- [Get a payment record](/docs/api/get-payment-record): `GET /records/{record_token}`

### Account

- [Export the account's transfers](/docs/api/export-transfers): `GET /export`
- [Get the account](/docs/api/get-account): `GET /account`
- [Get the billing page link](/docs/api/get-billing-link): `GET /account/billing-link`
- [Get plan usage](/docs/api/get-plan-usage): `GET /account/usage`

### Team

- [Invite a teammate](/docs/api/invite-team-member): `POST /team/members`
- [List the team](/docs/api/list-team-members): `GET /team`
- [Remove a teammate](/docs/api/remove-team-member): `DELETE /team/members/{member_id}`
- [Resend a team invitation](/docs/api/resend-team-invitation): `POST /team/members/{member_id}/resend`

### Webhooks

- [Change a webhook endpoint's address](/docs/api/change-webhook-endpoint-url): `PATCH /webhooks/{id}/url`
- [Add a webhook endpoint](/docs/api/create-webhook-endpoint): `POST /webhooks`
- [Delete a webhook endpoint](/docs/api/delete-webhook-endpoint): `DELETE /webhooks/{id}`
- [Get a webhook endpoint](/docs/api/get-webhook-endpoint): `GET /webhooks/{id}`
- [List a webhook endpoint's deliveries](/docs/api/list-webhook-deliveries): `GET /webhooks/{id}/deliveries`
- [List webhook endpoints](/docs/api/list-webhook-endpoints): `GET /webhooks`
- [Rotate a webhook signing secret](/docs/api/rotate-webhook-secret): `POST /webhooks/{id}/rotate-secret`
- [Send a test event](/docs/api/send-webhook-test): `POST /webhooks/{id}/test`
- [Change a webhook endpoint's events](/docs/api/update-webhook-endpoint): `PATCH /webhooks/{id}`

### Owner confirmation

- [List requests waiting for the owner](/docs/api/list-pending-access): `GET /pending-access`