Skip to main content
GET
List bridge intents
Alpha Preview — Endpoints and response shape may change without notice.
Paginated history of bridge intents — every bridge attempt with its lifecycle status, amounts (token + USD), token metadata, transaction hashes, and per-step timestamps. Newest-first.

Scoping

At least one scoping dimension is required — the endpoint never runs an unbounded scan:
  • wallet — intents where the address is the sender or the recipient.
  • customerId — intents created with any API key owned by that customer.
  • apiKey — intents created with that specific API key.
customerId and apiKey are mutually exclusive (at most one). wallet can be combined with either to narrow a customer/key scope to one address. Note that apiKey is both the auth credential and a scope: passing ?apiKey= filters results to intents created with that key. To list a wallet’s intents across all keys, authenticate with the Authorization: <key> header and pass only wallet. An unknown or revoked apiKey returns 404.

Query parameters

Unknown chains, malformed wallets, and malformed cursors return 400.

Response

Two differences from /status/{id} worth flagging:
  • amountIn / amountOut are raw base units (not decimal-adjusted) — "7887660" above is 7.88766 USDC (6 decimals). Use amountInUsd / amountOutUsd for display, or divide by the token’s decimals.
  • Timestamps are epoch milliseconds, not ISO strings.
originMeta / destinationMeta carry token name/symbol/logo, with null fields when the token isn’t indexed. latencyMs is the deposit-detected → fill-confirmed delta (null when the intent never filled, e.g. a refund).

Status lifecycle

Happy path: pending → deposited → filling (→ broadcasted → replaced) → filled → settling → settled. Failure path: filling → retrying → refunded or failed; settling → settle_lost when reconciliation could not confirm settlement. From the user’s perspective, filled (and later settled) means funds were received; refunded means the deposit was returned on the origin chain. See Bridge Status for the statuses the live polling endpoint emits.

Pagination

Cursor-based (keyset), newest-first. pagination.nextCursor is non-null when the page was full — pass it back as cursor for the next page; null means you’ve reached the end.

Query Parameters

wallet
string

Wallet address — returns intents where it is the sender or the recipient.

customerId
string

Scope to all intents created with API keys owned by this customer.

apiKey
string

Scope to intents created with this API key.

status
enum<string>

Filter by lifecycle status.

Available options:
pending,
deposited,
filling,
broadcasted,
replaced,
filled,
settling,
settled,
settle_lost,
retrying,
refunded,
failed
originChainId
string

Filter by origin chain (id, name, or alias — e.g. "evm:8453", "base").

destinationChainId
string

Filter by destination chain (id, name, or alias).

limit
integer

Page size (1-100, default 50).

Required range: 1 <= x <= 100
cursor
string

Opaque cursor from the previous page's pagination.nextCursor.

Response

200 - application/json

Bridge intents, newest-first, with cursor pagination.

data
object[]
required
pagination
object
required