# RAVN Cross-Chain Swap Quote

> RAVN Cross-Chain Swap Quote is a paid API for AI agents from app.ravn.exchange, paid per call via x402, $0.001/call, status unknown (last checked 2026-09-15).

Returns a quoted price and route for a cross-chain token swap, including native Bitcoin as source or destination

## Facts

- Endpoint: POST https://app.ravn.exchange/api/v1/x402/quote
- Price: $0.001/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-15
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/ravn-cross-chain-swap-quote-830137e7
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_9m1ZsNsm71QdZgca1SR4F

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 ravn-cross-chain-swap-quote-830137e7 -d '<json body>'
```

Example prompt: Give me a RAVN quote for swapping 1 ETH on Ethereum (chain 1) to native ETH on Base (chain 8453) — I want to see the output amount, fees, and which bridge venue it'll use.

## When to prefer this

Use this endpoint when you need a real-time cross-chain swap quote that supports native Bitcoin as either source or destination — a capability most bridge aggregators lack. It is the required first step before calling RAVN's swap execution endpoint, since the returned quoteToken is needed to authorize the actual trade. Prefer this over generic DEX quote APIs when the swap involves non-EVM chains or native BTC.

## Known failure modes

- Unsupported token pair or chain combination returns an error or empty route
- Quote expires quickly (expiresAt timestamp); using a stale quoteToken in execution will fail
- Invalid chainId or token symbol returns a validation error
- Liquidity unavailable for the requested pair at the given amount
- Network congestion may cause slow quote response or timeout

## How this service works

RAVN — best-price swap quotes across 12 execution venues and 16 chains, including native (non-wrapped) Bitcoin as either source or destination. 0% protocol fee, non-custodial. Returns a quoteToken; pass it to POST /execute.

## Output

A JSON object containing the quoted output token amount, input token details (symbol, chainId, decimals, isNative), output token details, fee in basis points and absolute amount, the routing venue (id and name, e.g. Mayan), route type (e.g. EVM_CROSS_CHAIN), a signed quoteToken string to use for execution, estimated completion time in seconds, and an expiry timestamp.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "inputToken": {
   "type": "string",
   "minLength": 1,
   "description": "Token contract address, or the native-token sentinel 0xEeee...EEeE"
  },
  "inputAmount": {
   "type": "string",
   "description": "Positive integer string, in the input token's smallest unit"
  },
  "outputToken": {
   "type": "string",
   "minLength": 1
  },
  "rankingMode": {
   "enum": [
    "best_output",
    "fastest"
   ],
   "type": "string",
   "description": "Defaults to best_output."
  },
  "slippageBps": {
   "type": "integer",
   "maximum": 5000,
   "minimum": 1
  },
  "userAddress": {
   "type": "string",
   "minLength": 1
  },
  "inputChainId": {
   "enum": [
    1,
    10,
    56,
    130,
    137,
    324,
    480,
    999,
    143,
    8453,
    42161,
    59144,
    43114,
    4663,
    -1,
    -2
   ],
   "type": "number"
  },
  "excludeVenues": {
   "type": "array",
   "items": {
    "enum": [
     "rift",
     "0x_gasless",
     "bebop",
     "cow",
     "across",
     "relay",
     "mayan",
     "jupiter",
     "near_intents",
     "garden",
     "chainflip",
     "thorchain",
     "eco"
    ],
    "type": "string"
   },
   "description": "Drop specific venues from this race — e.g. a risk objection to one of them. Naming a venue that was never eligible for this pair is a no-op, not an error."
  },
  "outputChainId": {
   "enum": [
    1,
    10,
    56,
    130,
    137,
    324,
    480,
    999,
    143,
    8453,
    42161,
    59144,
    43114,
    4663,
    -1,
    -2
   ],
   "type": "number"
  },
  "refundAddress": {
   "type": "string",
   "description": "Where to refund the input asset if the swap fails. For a Bitcoin-source Relay quote specifically, this must be supplied here, at quote time — Relay has no execute-time re-bind, so omitting it returns a priced-but-unexecutable preview and supplying it later on execute has no effect. Other BTC-source venues (Garden, THORChain, Chainflip, Rift) support binding this at execute time instead."
  },
  "destinationAddress": {
   "type": "string",
   "description": "Where output should land. For a Solana-touching Across quote or a cross-ecosystem Eco quote, this must be supplied here, at quote time — omitting it returns a priced-but-unexecutable preview (see QuoteDTO.executable), since neither venue supports fixing the destination after quoting."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "data": {
   "fee": {
    "bps": 0,
    "amount": "0"
   },
   "input": {
    "token": {
     "symbol": "ETH",
     "chainId": 1,
     "decimals": 18,
     "isNative": true
    },
    "amount": "1000000000000000000"
   },
   "venue": {
    "id": "mayan",
    "name": "Mayan"
   },
   "output": {
    "token": {
     "symbol": "ETH",
     "chainId": 8453,
     "decimals": 18,
     "isNative": true
    },
    "amount": "999534824840543000"
   },
   "expiresAt": 1786374968171,
   "routeType": "EVM_CROSS_CHAIN",
   "quoteToken": "eyJ2ZW51ZUlkIjoi...",
   "estimatedTimeSeconds": 3
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/ravn-cross-chain-swap-quote-830137e7/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from app.ravn.exchange](https://www.zero.xyz/host/app.ravn.exchange/llms.txt)
