---
title: "Bridge quote"
method: POST
path: "/crosschain/quote"
tags: ["Bridge"]
---

# Bridge quote

`POST /crosschain/quote`

## Request

- Base URL: `https://api.getchord.xyz/v1`
- URL: `https://api.getchord.xyz/v1/crosschain/quote`
- Auth: none declared

A cross-chain quote from the provider: the steps, fees and the transactions to sign on the origin chain (an approve step is added when the origin token is an ERC-20). Poll `/crosschain/status` with the deposit hash.

## Request body

- object
  - `user` string, required: EVM address, hex, case-insensitive.
  - `originChainId` integer
  - `destinationChainId` integer, required
  - `originCurrency` string, required: EVM address, hex, case-insensitive.
  - `destinationCurrency` string, required: EVM address, hex, case-insensitive.
  - `amount` string, required: Amount in the token's smallest unit, as a decimal string. Never a float.
  - `slippageBps` integer
  - `recipient` string: EVM address, hex, case-insensitive.
  - `provider` 'lifi' | 'relay'
  - `usePermit` boolean: Relay only: a permit (signature) deposit instead of a transaction, for tokens that support it (native USDC on Arbitrum).

## Response `200`

- object: `{ provider, requestId, steps[], fees, details, checkEndpoint, txns[] }` — provider-shaped; sign `txns` in order.

## Other responses

- `400`: Invalid parameters — `error` names the check that failed (`INVALID_PARAMS`, `BAD_ADDRESS`, `BAD_LIMIT`, `BAD_HOURS`, …).
- `429`: Over the per-minute limit (`RATE_LIMIT_EXCEEDED`). Read `X-RateLimit-Reset` and back off.
- `502`: The routing engine or an upstream did not answer (`ENGINE_ERROR`, `ROUTE_ERROR`).
- `503`: The lane behind this endpoint is not ready or not enabled here (`NOT_READY`, `CHAIN_NOT_ENABLED`, `NOT_ENABLED`, `*_UNAVAILABLE`). Retry later; do not treat it as an empty answer.

---

[API](https://skmtc.dev/getchord/apis/chord-api.md) · [All operations](https://skmtc.dev/getchord/apis/chord-api/llms.txt) · [OpenAPI document](https://skmtc.dev/getchord/apis/chord-api/revisions/d3bc4640fea0?raw)
