# 3Route Swap Quote & Transaction Builder

> 3Route Swap Quote & Transaction Builder is a paid API for AI agents from api.3route.io, paid per call via x402, $0.001/call, status unknown (last checked 2026-09-17).

Returns a best-priced swap quote and ready-to-sign transaction for exchanging one crypto token for another on a specified EVM chain.

## Facts

- Endpoint: GET https://api.3route.io/v1/%7BchainId%7D/swap
- Price: $0.001/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-17
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/3route-swap-quote-transaction-builder-d1ba4044
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_t1fqUlhIq2bITz_tlQO4K

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability 3route-swap-quote-transaction-builder-d1ba4044
```

Example prompt: Get me the best swap quote and transaction to sell 1 ETH (1000000000000000000 wei) for USDC on chain 4663, from my wallet 0x1111111111111111111111111111111111111111, with 1% slippage — I want the ready-to-sign transaction data.

## When to prefer this

Choose this endpoint when you need a pay-per-call, no-subscription DEX aggregator quote and executable swap transaction on one of the three supported EVM chains (4663, 42793, 128064). It is ideal for AI agents and bots that need on-demand pricing without managing API keys, and for apps requiring ready-to-sign transaction calldata rather than just a price estimate.

## Known failure modes

- Unsupported chainId enum value returns an error — only 4663, 42793, and 128064 are valid
- Invalid token address format (not 0x + 40 hex chars) causes a schema validation error
- Insufficient liquidity for the requested token pair or amount returns no route found
- Amount of zero or non-integer amount string causes a bad request error
- Slippage out of bounds (>50 or <0) causes parameter validation failure
- Payment not fulfilled via x402/MPP results in 402 Payment Required before any quote is returned

## How this service works

Best-priced crypto token swaps for agents, traders and apps. Pay-per-call quote & swap API via x402/MPP. No API key or subscription.

## Output

Returns a JSON object containing: a ready-to-sign transaction object (to, from, data, value, gas, gasPrice), the expected destination token amount (dstAmount), minimum guaranteed destination amount accounting for slippage (dstAmountMin), the source amount (srcAmount), and a gas estimate integer.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "GET"
     ],
     "type": "string"
    },
    "pathParams": {
     "type": "object",
     "required": [
      "chainId"
     ],
     "properties": {
      "chainId": {
       "enum": [
        "4663",
        "42793",
        "128064"
       ],
       "type": "string",
       "example": "4663",
       "pattern": "^[0-9]+$",
       "description": "Chain ID for the operation."
      }
     },
     "additionalProperties": false
    },
    "queryParams": {
     "type": "object",
     "required": [
      "src",
      "dst",
      "amount",
      "from"
     ],
     "properties": {
      "dst": {
       "type": "string",
       "example": "0x5fc5360d0400a0fd4f2af552add042d716f1d168",
       "pattern": "^0x[0-9a-fA-F]{40}$",
       "description": "Address of the token being bought; take one from the token-list operation for the selected chain, or use the zero address, or the case-insensitive sentinel 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee, for the chain's native asset."
      },
      "fee": {
       "type": "number",
       "default": 0,
       "maximum": 3,
       "minimum": 0
      },
      "src": {
       "type": "string",
       "example": "0x0000000000000000000000000000000000000000",
       "pattern": "^0x[0-9a-fA-F]{40}$",
       "description": "Address of the token being sold; use the zero address, or the case-insensitive sentinel 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee, for the chain's native asset."
      },
      "from": {
       "type": "string",
       "example": "0x1111111111111111111111111111111111111111",
       "pattern": "^0x[0-9a-fA-F]{40}$",
       "description": "Address that signs and sends the transaction, and that the src tokens are taken from"
      },
      "amount": {
       "type": "string",
       "example": "1000000000000000000",
       "pattern": "^[0-9]+$",
       "description": "Positive amount of src to sell in smallest units, as an integer string."
      },
      "gasPrice": {
       "type": "string",
       "example": "1000000000",
       "pattern": "^[0-9]+$"
      },
      "receiver": {
       "type": "string",
       "example": "0x1111111111111111111111111111111111111111",
       "pattern": "^
… (truncated)
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "tx": {
   "to": "0x2222222222222222222222222222222222222222",
   "gas": "210000",
   "data": "0x1234",
   "from": "0x1111111111111111111111111111111111111111",
   "value": "1000000000000000000",
   "gasPrice": "1000000000"
  },
  "gas": 210000,
  "dstAmount": "950000",
  "srcAmount": "1000000000000000000",
  "dstAmountMin": "940500"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/3route-swap-quote-transaction-builder-d1ba4044/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.3route.io](https://www.zero.xyz/host/api.3route.io/llms.txt)
