Skip to Content
XebraDocs
APIQuotes

Price a transfer

Read-only. Fees move, so a quote expires; building a transfer prices it again. A Solana recipient with no USDC account costs more; that is priced when the transfer is built.

Requests go to mainnet

Building a transfer never sends it. Nothing moves until a wallet signs the steps and someone submits them.
GET
/v1/quote

Read-only. Fees move, so a quote expires; building a transfer prices it again. A Solana recipient with no USDC account costs more; that is priced when the transfer is built.

Query Parameters

from*string

A chain, as the API names it.

Value in"stellar""solana""sui""avalanche""optimism""arbitrum""base""polygon""unichain""codex""sonic""worldchain""monad""sei""xdc""hyperevm""ink""arc"
to*string

A chain, as the API names it.

Value in"stellar""solana""sui""avalanche""optimism""arbitrum""base""polygon""unichain""codex""sonic""worldchain""monad""sei""xdc""hyperevm""ink""arc"
amount*string

USDC, as a decimal string with at most 6 places.

Match^\d{1,12}(\.\d{1,6})?$
speed?string

Standard waits for finality; Fast is attested sooner for Circle's fee.

Value in"standard""fast"
recipient?string

Optional. For Solana, pass it: a wallet with no USDC account yet costs more to deliver to, and the quote includes that.

Length1 <= length <= 128

Response Body

The price.

application/json
  1. response
from*ChainId

A chain, as the API names it.

Value in"stellar""solana""sui""avalanche""optimism""arbitrum""base""polygon""unichain""codex""sonic""worldchain""monad""sei""xdc""hyperevm""ink""arc"
to*ChainId

A chain, as the API names it.

Value in"stellar""solana""sui""avalanche""optimism""arbitrum""base""polygon""unichain""codex""sonic""worldchain""monad""sei""xdc""hyperevm""ink""arc"
speed*Speed

Standard waits for finality; Fast is attested sooner for Circle's fee.

Value in"standard""fast"
amount*AmountOut

USDC, as a decimal string with at most 6 places.

Match^\d{1,12}(\.\d{1,6})?$
recipientGets*AmountOut

USDC, as a decimal string with at most 6 places.

Match^\d{1,12}(\.\d{1,6})?$
fees*
minimum*AmountOut

USDC, as a decimal string with at most 6 places.

Match^\d{1,12}(\.\d{1,6})?$
maximum*|null
circleStatus*|null
expiresAt*string
Match^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
Formatdate-time
Example Request
curl -X GET 'https://api.xebra.exchange/v1/quote?from=stellar&to=stellar&amount=string'
Example Response
{  "from": "stellar",  "to": "stellar",  "speed": "standard",  "amount": "string",  "recipientGets": "string",  "fees": {    "xebra": "string",    "circle": "string",    "delivery": "string",    "total": "string"  },  "minimum": "string",  "maximum": "string",  "circleStatus": "ok",  "expiresAt": "2019-08-24T14:15:22Z"}