Skip to main content
GET
/
accounts
/
{account_id}
/
transfers
Get all transfers for a given account
curl --request GET \
  --url https://api.brale.xyz/accounts/{account_id}/transfers \
  --header 'Authorization: Bearer <token>'
[
  {
    "status": "pending",
    "amount": {
      "value": "11234.88",
      "currency": "USD"
    },
    "created_at": "2025-02-05T19:39:14.316Z",
    "updated_at": "2025-02-05T19:39:14.316Z",
    "source": {
      "value_type": "USD",
      "transfer_type": "wire",
      "address_id": "2VcUIIsgARwVbEGlIYbhg6fGG57",
      "transaction_id": "0xdd5646ea…"
    },
    "destination": {
      "value_type": "USD",
      "transfer_type": "wire",
      "address_id": "2VcUIIsgARwVbEGlIYbhg6fGG57",
      "transaction_id": "0xdd5646ea…"
    }
  }
]

Filters

You can narrow results by appending query parameters. All filters use exact match and are case-sensitive. When you combine multiple filters they apply with AND semantics — only transfers matching every supplied filter are returned. If no transfers match the filters, the API returns 200 with an empty transfers array and a pagination object.
ParameterFilters byFormatExample
automation_idAutomation that created the transferKSUID (26-char string)2MhCCIHuK4TGVgT9a4loQzJx1rj
value_typeCurrency / token on source or destinationCanonical API id (case-sensitive)USDC, SBC, usd
transfer_typePayment rail / chain on source or destinationCanonical API id (case-sensitive)polygon, wire, solana
value_type and transfer_type use canonical API identifiers. See Value types and Transfer types for the full list of valid values.

transaction_id — not a list filter

transaction_id is a response-only field on each transfer’s source and destination objects. It contains the on-chain transaction hash or off-chain payment reference once the leg has been submitted. To locate a transfer by its transaction_id, retrieve the full list (optionally filtered by transfer_type or value_type) and match client-side, or use Get transfer if you already know the transfer id.

Pagination

ParameterDescriptionDefault
page[size]Number of transfers per page (1–100)25
page[after]Cursor for forward pagination
page[prev]Cursor from pagination.prev in a previous response
Only one of page[after] or page[prev] may be present per request. Filters persist across pages — you do not need to resend them when paging. Use the pagination.next value from the previous response as the page[after] query parameter in the next request.

Examples

Filter by automation_id

curl "https://api.brale.xyz/accounts/${ACCOUNT_ID}/transfers?automation_id=2MhCCIHuK4TGVgT9a4loQzJx1rj" \
  -H "Authorization: Bearer ${AUTH_TOKEN}"

Filter by value_type

curl "https://api.brale.xyz/accounts/${ACCOUNT_ID}/transfers?value_type=USDC" \
  -H "Authorization: Bearer ${AUTH_TOKEN}"

Filter by transfer_type

curl "https://api.brale.xyz/accounts/${ACCOUNT_ID}/transfers?transfer_type=polygon" \
  -H "Authorization: Bearer ${AUTH_TOKEN}"

Combined filters

Return only Polygon USDC transfers created by a specific Automation, 10 per page:
curl "https://api.brale.xyz/accounts/${ACCOUNT_ID}/transfers?automation_id=2MhCCIHuK4TGVgT9a4loQzJx1rj&value_type=USDC&transfer_type=polygon&page[size]=10" \
  -H "Authorization: Bearer ${AUTH_TOKEN}"

Response schema

A successful response returns 200 with the following structure:
Response
{
  "pagination": {
    "next": "g3QAAAABdw...",
    "page_size": 25
  },
  "transfers": [
    {
      "id": "30NoY6R1Ns2tRBcx1Kb16SnuXOW",
      "status": "complete",
      "amount": {
        "value": "100.00",
        "currency": "USD"
      },
      "created_at": "2025-07-25T21:03:55.364134Z",
      "updated_at": "2025-07-25T21:05:07.779018Z",
      "source": {
        "address_id": "2MhCCIHuK4TGVgT9a4loQzJx1rj",
        "value_type": "USDC",
        "transfer_type": "polygon",
        "transaction_id": "0xdd5646ea…"
      },
      "destination": {
        "address_id": "2O6asmNK4TGVgT9a4loQzJx1rj",
        "value_type": "USDC",
        "transfer_type": "polygon",
        "transaction_id": "0xdd5646ea…"
      },
      "note": null
    }
  ]
}

Authorizations

Authorization
string
header
required

Use the Bearer token returned from the Auth endpoint via OAuth2 client_credentials flow. Include the token in the "Authorization: Bearer " header.

Path Parameters

account_id
string<ksuid>
required

The ID of the account

Pattern: ^[a-zA-Z0-9]{26}$
Example:

"2VcUIIsgARwVbEGlIYbhg6fGG57"

Query Parameters

automation_id
string<ksuid>

Filter transfers to only those created by the specified Automation. Must be a valid KSUID. Exact match.

Pattern: ^[a-zA-Z0-9]{26}$
Example:

"2VcUIIsgARwVbEGlIYbhg6fGG57"

value_type
string

Filter transfers by currency or token identifier. Matches transfers where the source or destination value_type equals this value. Case-sensitive. Use canonical API ids from the Coverage page.

transfer_type
string

Filter transfers by payment rail or chain identifier. Matches transfers where the source or destination transfer_type equals this value. Case-sensitive. Use canonical API ids from the Coverage page.

page[size]
integer

The number of transfers to return per page (1–100, default 25).

Required range: 1 <= x <= 100
page[next]
string

Cursor for the next page (value returned in pagination.next)

page[prev]
string

Cursor for the previous page (value returned in pagination.prev)

Response

200 - */*

A list of transfers

status
enum<string>

Lifecycle stage of the transfer

Available options:
pending,
processing,
complete,
canceled,
failed
Example:

"pending"

amount
Amount · object

Monetary value with explicit currency

created_at
string<date-time>
Example:

"2025-02-05T19:39:14.316Z"

updated_at
string<date-time>
Example:

"2025-02-05T19:39:14.316Z"

source
TransferEndpoint · object
destination
TransferEndpoint · object