Skip to main content
POST
/
execution
/
withdraw
Withdraw funds
curl --request POST \
  --url https://api.agg.market/execution/withdraw \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --header 'x-app-id: <api-key>' \
  --data '
{
  "amountRaw": "<string>",
  "tokenSymbol": "USDC",
  "destinationAddress": "<string>",
  "destinationChainId": 2
}
'
{
  "withdrawalId": "<string>",
  "status": "pending",
  "requested": {
    "tokenSymbol": "USDC",
    "amountRaw": "<string>"
  },
  "destination": {
    "chainId": 2,
    "address": "<string>",
    "tokenSymbol": "USDC"
  },
  "legs": [
    {
      "type": "transfer",
      "status": "planned",
      "sourceChainId": 123,
      "destChainId": 123,
      "amountRaw": "<string>",
      "txHash": "<string>",
      "bridgeOperationId": "<string>",
      "sourceTokenSymbol": "<string>"
    }
  ],
  "expected": {
    "outputRaw": "<string>",
    "feeRaw": "<string>",
    "etaSeconds": 123
  },
  "pricingStatus": "unquoted",
  "errorMessage": "<string>",
  "sources": [
    {
      "sourceId": "<string>",
      "chainId": 123,
      "tokenSymbol": "USDC",
      "tokenAddress": "<string>",
      "decimals": 18,
      "amountRaw": "<string>",
      "status": "pending",
      "txHash": "<string>",
      "bridgeOperationId": "<string>"
    }
  ]
}

Documentation Index

Fetch the complete documentation index at: https://docs.agg.market/llms.txt

Use this file to discover all available pages before exploring further.

Authorizations

x-app-id
string
header
required

Your application ID. Required for all app-tier and user-tier routes.

Authorization
string
header
required

JWT access token returned by POST /auth/verify. Required for user-tier routes.

Body

application/json
amountRaw
string
required

Positive integer string in the token's native decimals.

Pattern: ^[1-9][0-9]*$
tokenSymbol
enum<string>
required

Stable-coin symbol the withdrawal is denominated in.

Available options:
USDC,
USDC.e,
USDT
destinationAddress
string
required

Recipient address. EVM destinations: 0x-prefixed 20-byte hex. Solana: base58 (32–44 chars).

Pattern: ^(0x[a-fA-F0-9]{40}|[1-9A-HJ-NP-Za-km-z]{32,44})$
destinationChainId
integer
required

Chain ID where the recipient address should receive funds.

Required range: x >= 1

Response

200

withdrawalId
string
required
status
enum<string>
required

DB-backed withdrawal status. Mirrors the WithdrawalStatus Prisma enum.

Available options:
pending,
bridging,
transferring,
completed,
partial,
failed
requested
object
required
destination
object
required
legs
object[]
required
expected
object
required
pricingStatus
enum<string>
required

Until the multi-stable quote layer ships this is always 'unquoted' and expected.* is null. Clients must NOT treat null expected.* as missing data.

Available options:
unquoted,
quoted
errorMessage
string | null
required
sources
object[]
required