Across Docs

List transfers

Lists your transfers, newest first. Filters are repeatable and combine — values within one filter match any, separate filters must all match — and for reconciliation externalId matches your own id while txnRef matches any transaction in the transfer's lifecycle. The query is strict: an unknown parameter is rejected with 400 request.unsupported_param, and an empty filter value is a 400.

GET
/v1/transfers

Authorization

bearerAuth
AuthorizationBearer <token>

API key for authentication.

In: header

Query Parameters

limit?integer

Page size. An integer from 1 to 100; anything else is a 400, not clamped.

cursor?string

Opaque cursor from the previous page's pagination.nextCursor. A malformed cursor is a 400.

fromSubmittedAt?string

Inclusive lower bound on submittedAt. A full RFC 3339 timestamp with a Z or an offset such as +02:00; a bare date or a timestamp without a zone is a 400.

toSubmittedAt?string

Inclusive upper bound on submittedAt. Same format as fromSubmittedAt.

statusState?array<>

Coarse lifecycle state. Repeatable; matches any of the supplied values.

statusReason?array<>

Granular reason. Repeatable; matches any of the supplied values. Each reason belongs to exactly one state, so combining a reason with a conflicting statusState returns nothing. A completed transfer with destination actions reports filled_destination_action_successful or filled_destination_action_failed, not filled. source_transfer_failed is still accepted as a deprecated alias of origin_transfer_failed.

orderId?array<string>

Order identifier. Repeatable -- supply it more than once to match any of the values (?orderId=a&orderId=b). Maximum 100 entries.

externalId?array<string>

The integrator-supplied id echoed from the quote request. Repeatable -- supply it more than once to match any of the values (?externalId=a&externalId=b). Maximum 100 entries.

depositor?array<string>

Account that paid the input, in any case. Matches either the deposit-side depositor or, for a transfer that began on a chain the indexer does not observe, the origin account. Repeatable -- supply it more than once to match any of the values (?depositor=a&depositor=b). Maximum 100 entries; an invalid address is a 400.

recipient?array<string>

Account that receives the output, in any case. Repeatable -- supply it more than once to match any of the values (?recipient=a&recipient=b). Maximum 100 entries; an invalid address is a 400.

txnRef?array<string>

Matches any transaction in the lifecycle ledger -- origin entry, settlement fill, destination delivery or refund. A hash can be pasted without knowing which role it played; a match on any other hop is echoed back as an intermediate ledger entry. EVM hashes match case-insensitively, other shapes (Solana signatures) case-sensitively. Repeatable -- supply it more than once to match any of the values (?txnRef=a&txnRef=b). Maximum 100 entries.

originTokenAddress?array<string>

Token address on the origin side, in any case. Matches either the deposit-side input token or, for a transfer that began on a chain the indexer does not observe, the origin token. Repeatable -- supply it more than once to match any of the values (?originTokenAddress=a&originTokenAddress=b). Maximum 100 entries. Replaces inputTokenAddress, which is now rejected.

destinationTokenAddress?array<string>

Output token address on the destination chain, in any case. Repeatable -- supply it more than once to match any of the values (?destinationTokenAddress=a&destinationTokenAddress=b). Maximum 100 entries. Replaces outputTokenAddress, which is now rejected.

originChainId?array<integer>

Chain id on the origin side. Matches either the deposit chain or, for a transfer that began on a chain the indexer does not observe, the origin chain. Repeatable -- supply it more than once to match any of the values (?originChainId=a&originChainId=b). Maximum 100 entries; a non-integer is a 400. Replaces inputChainId, which is now rejected.

destinationChainId?array<integer>

Chain id the order asked to be credited on -- it also matches pending, failed and refunded transfers that have no destination yet. Repeatable -- supply it more than once to match any of the values (?destinationChainId=a&destinationChainId=b). Maximum 100 entries; a non-integer is a 400. Replaces outputChainId, which is now rejected.

Response Body

application/json

application/json

application/json

curl -X GET "https://example.com/v1/transfers?limit=5"
{
  "transfers": [
    {
      "orderId": "0xe3d6f2babb58d4e583a1ec616cc695d51e77ce01184a67b8fe479df08afcb5d2",
      "externalId": "order-8f2c1a",
      "status": {
        "state": "completed",
        "reason": "filled_destination_action_successful",
        "description": "The transfer is complete, the funds were delivered to the recipient, and the requested destination actions completed.",
        "isTerminal": true,
        "finalized": true
      },
      "origin": {
        "chain": {
          "chainId": 42161,
          "name": "arbitrum-one",
          "displayName": "Arbitrum One",
          "logoUrl": "https://alexandria-blond.vercel.app/assets/chains/arbitrum.svg"
        },
        "input": {
          "token": {
            "kind": "token",
            "address": "0xaf88d065e77c8cc2239327c5edb3a432268e5831",
            "symbol": "USDC",
            "name": "USD Coin",
            "decimals": 6,
            "chainId": 42161,
            "logoUrl": "https://alexandria-blond.vercel.app/assets/tokens/usdc.svg",
            "priceUsd": 0.9996656809977668,
            "priceUsdAt": "2026-10-15T12:45:00.000Z"
          },
          "amount": "3000000",
          "amountUsd": "2.998997042993300400"
        },
        "depositor": {
          "address": "0x9A8f92a830A5cB89a3816e3D267CB7791c16b04D",
          "chainId": 42161
        }
      },
      "destination": {
        "chain": {
          "chainId": 137,
          "name": "polygon",
          "displayName": "Polygon",
          "logoUrl": "https://alexandria-blond.vercel.app/assets/chains/polygon.svg"
        },
        "output": {
          "token": {
            "kind": "token",
            "address": "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174",
            "symbol": "USDC.e",
            "name": "USD Coin (bridged)",
            "decimals": 6,
            "chainId": 137,
            "logoUrl": "https://alexandria-blond.vercel.app/assets/tokens/usdc.svg",
            "priceUsd": 0.9996727054482215,
            "priceUsdAt": "2026-10-15T12:45:00.000Z"
          },
          "amount": "2963015",
          "amountUsd": "2.962045221333662028"
        },
        "recipient": {
          "address": "0x9A8f92a830A5cB89a3816e3D267CB7791c16b04D",
          "chainId": 137
        }
      },
      "submittedAt": "2026-10-15T12:45:50.743Z",
      "filledAt": "2026-10-15T12:46:01.000Z",
      "fillTimeMs": 10257,
      "fundingMethod": "approval",
      "transactions": [
        {
          "type": "deposit",
          "transaction": {
            "txnRef": "0x17207bfaa5358b3e0109e9fc4a8c39c0cf1ab97e0175852fc2c7f7a5bed6a77d",
            "chainId": 42161,
            "blockRef": 515062780,
            "blockTimestamp": null,
            "explorerUrl": "https://arbiscan.io/tx/0x17207bfaa5358b3e0109e9fc4a8c39c0cf1ab97e0175852fc2c7f7a5bed6a77d"
          }
        },
        {
          "type": "fill",
          "transaction": {
            "txnRef": "0xdc1fd195d7947ef11c81c61f2dc17de88b50e7c2341c740ea4767e04c885dde1",
            "chainId": 137,
            "blockRef": 95575357,
            "blockTimestamp": "2026-10-15T12:46:01.000Z",
            "explorerUrl": "https://polygonscan.com/tx/0xdc1fd195d7947ef11c81c61f2dc17de88b50e7c2341c740ea4767e04c885dde1"
          }
        }
      ],
      "subsidy": {
        "appliedUsd": "0.000499",
        "policyId": "8a2e4b6c-1d3f-4a5b-8c7d-9e0f1a2b3c4d",
        "policyVersion": 5,
        "apiKeyId": "3f1c2a9e-7b4d-4e8a-9c21-5d6f7a8b9c0d",
        "billingState": "charged"
      },
      "appFee": {
        "feeUsd": "0.002999",
        "integratorEarningUsd": "0.002999",
        "riskLabsShareUsd": "0",
        "apiKeyId": "3f1c2a9e-7b4d-4e8a-9c21-5d6f7a8b9c0d",
        "billingState": "charged"
      },
      "quoted": {
        "amountType": "exact_input",
        "origin": {
          "input": {
            "token": {
              "kind": "token",
              "chainId": 42161,
              "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831",
              "symbol": "USDC",
              "decimals": 6
            },
            "amount": "3000000",
            "maxAmount": "3000000"
          },
          "depositor": {
            "address": "0x9A8f92a830A5cB89a3816e3D267CB7791c16b04D",
            "chainId": 42161
          }
        },
        "destination": {
          "output": {
            "token": {
              "kind": "token",
              "chainId": 137,
              "address": "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174",
              "symbol": "USDC.e",
              "decimals": 6
            },
            "amount": "2946651",
            "minAmount": "2858923"
          },
          "recipient": {
            "address": "0x9A8f92a830A5cB89a3816e3D267CB7791c16b04D",
            "chainId": 137
          }
        },
        "expectedFillTimeMs": 1000
      }
    }
  ],
  "pagination": {
    "nextCursor": "eyJzdWJtaXR0ZWRBdCI6MTc5MjA2ODM1MDc0Mywib3JkZXJJZCI6IjB4ZTNkNmYyYmFiYjU4ZDRlNTgzYTFlYzYxNmNjNjk1ZDUxZTc3Y2UwMTE4NGE2N2I4ZmU0NzlkZjA4YWZjYjVkMiJ9"
  }
}
{
  "error": {
    "type": "request",
    "code": "request.invalid_param",
    "message": "Request validation failed on query parameters",
    "param": "statusState",
    "requestId": "f6f0250f-8516-461b-8200-5855e5cb7d1f",
    "details": {
      "issues": [
        {
          "code": "invalid_value",
          "values": [
            "pending",
            "completed",
            "refunded",
            "failed"
          ],
          "path": [
            "statusState",
            0
          ],
          "message": "Invalid option: expected one of \"pending\"|\"completed\"|\"refunded\"|\"failed\""
        }
      ]
    }
  }
}
{
  "error": {
    "type": "request",
    "code": "string",
    "message": "string",
    "param": "string",
    "requestId": "string",
    "details": {}
  }
}