On this page
Get a quote
Price from_amount of from into to across the available venues. Use the returned id as quote_id when creating an order, before the quote’s expires_at.
Set format to formatted (the default) for decimal amounts and asset names such as bitcoin.btc, or raw for base-unit amounts and canonical asset identifiers. See the token list for registered asset names.
Choose optimal quoting for up to 10 seconds per venue, or fast for a 1.5-second cutoff. Set return_full_route to include the route, and include_candidates for debugging details. Use either venue_allowlist or venue_blocklist to control which venues are considered.
Try it out
ProductionRequest example
curl --request POST \
--url 'https://api.rift.trade/quote' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{"format":"formatted","from":"bitcoin.btc","to":"ethereum.usdc","from_amount":"0.01","return_full_route":true}'Body parameters
application/json
formatstringHow amounts and asset names are written in this request and in the
response. formatted writes amounts as decimals in the asset's own
units and assets as <chain name>.<symbol>; raw writes amounts as
base-unit integers and assets in canonical form, evm:<chain id>.<address>
on EVM chains. Defaults to formatted. Key on assets with raw: symbols
are presentation and may be reassigned.
Allowed: "raw""formatted"
Default: "formatted"
fromstringrequiredAsset to sell, as <chain>.<asset>. The chain is a name (ethereum,
base, arbitrum, robinhood, ink, bitcoin, hyperliquid) or
evm:<chain id>. The asset is a symbol, a contract address, or eth
and btc for the native coin. Case does not matter.
from_amountstringrequiredAmount of from to sell. A decimal in the asset's own units when
format is formatted, an integer in base units when raw.
include_candidatesbooleanInclude every venue and route that was considered under
quote_candidates. Large, meant for debugging.
Default: false
quote_modestringoptimal gives every venue up to 10 seconds to answer, fast cuts
each one off at 1.5 seconds. Defaults to optimal.
Allowed: "fast""optimal"
Default: "optimal"
return_full_routebooleanrequiredInclude the hop-by-hop route in the response.
tostringrequiredAsset to receive, in the same form as from.
venue_allowliststring[]Quote only these venues. Empty means every venue. Cannot be combined
with venue_blocklist.
Default: []
Show child attributes
string · "aave", "across", "cctp_fast", "cctp_hyperliquid_fast", "cctp_hyperliquid_standard", "cctp_standard", "chainflip", "flytrade", "hyperliquid_spot", "kyberswap", "lifi_fast", "lifi_standard", "mayan", "morpho", "nordstern", "near_intents", "okx", "relay", "transit", "unit", "velora"
venue_blockliststring[]Never quote these venues. Cannot be combined with venue_allowlist.
Default: []
Show child attributes
string · "aave", "across", "cctp_fast", "cctp_hyperliquid_fast", "cctp_hyperliquid_standard", "cctp_standard", "chainflip", "flytrade", "hyperliquid_spot", "kyberswap", "lifi_fast", "lifi_standard", "mayan", "morpho", "nordstern", "near_intents", "okx", "relay", "transit", "unit", "velora"
Responses
The best executable quote
application/json
{
"format": "raw",
"delivery": {
"amount_in": "",
"amount_out": "",
"execution_cost": ""
},
"estimated_amount_out": "",
"expires_at": "2026-09-23T12:00:00Z",
"from": "",
"from_amount": "",
"id": "00000000-0000-4000-8000-000000000001",
"to": "",
"venue_allowlist": [],
"venue_blocklist": []
}formatstringrequiredThe format every amount and asset name in this response is written in.
Allowed: "raw""formatted"
deliveryobjectrequiredThe final transfer into to_address and what it costs.
Show child attributes
amount_instringrequiredAmount of to handed to delivery: the last step's step_amount_out.
amount_outstringrequiredAmount that arrives at to_address. This is estimated_amount_out.
execution_coststringrequiredCost of the transfer into to_address, paid out of amount_in.
estimated_amount_outstringrequiredExpected amount of to delivered to the order's to_address, after
every venue and delivery cost.
expires_atstringrequiredInstant after which the quote is refused on order creation.
date-time
fromstringrequiredAsset sold, written per format.
from_amountstringrequiredThe amount quoted, echoed in format.
idstringrequiredIdentifier to pass as quote_id when creating the order.
uuid
quote_candidatesobject | nullEvery venue and route considered, with timings and failures. Present
only when include_candidates was set.
Show child attributes
Any of: object 1
Everything the quoter considered, for debugging. Direct venues under
single_hop, multi-venue routes under multi_hop.
multi_hopobjectrequiredThe graph search over intermediate assets and its outcome.
Show child attributes
attemptsobject[]requiredEvery venue quote requested while walking the paths.
Show child attributes
amount_instringrequiredAmount the hop was priced for.
elapsed_msintegerrequiredMilliseconds until the venue answered or was cut off.
uint64 · min: 0
fromstringrequiredAsset entering the hop, written per format.
roundintegerrequiredPosition of the hop in the route, counted from zero.
uint · min: 0
tostringrequiredAsset leaving the hop, written per format.
venuestringrequiredThe venue asked.
Allowed: "aave""across""cctp_fast""cctp_hyperliquid_fast""cctp_hyperliquid_standard""cctp_standard""chainflip""flytrade""hyperliquid_spot""kyberswap""lifi_fast""lifi_standard""mayan""morpho""nordstern""near_intents""okx""relay""transit""unit""velora"
One of: quoted
The venue answered; step is the costed hop.
statusstringrequiredValue: "quoted"
stepobjectrequiredOne venue leg of the route.
Show child attributes
executionobjectrequiredHow the step runs: on Bitcoin, on an EVM chain with vault-funded gas, on an EVM chain with router-funded gas, or on HyperCore.
Show child attributes
One of: bitcoin
Runs on Bitcoin.
See the OpenAPI specification for the complete schema.
One of: evm
Runs on an EVM chain with gas paid by the vault.
See the OpenAPI specification for the complete schema.
One of: evm_gas_desk
Runs on an EVM chain with gas advanced by the router.
See the OpenAPI specification for the complete schema.
One of: hyperliquid
Runs on HyperCore.
See the OpenAPI specification for the complete schema.
fromstringrequiredAsset entering the step, written per format.
step_amount_instringrequiredAmount entering the step: from_amount for the first step, the
previous step's step_amount_out after that.
step_amount_outstringrequiredAmount leaving the step, handed to the next step or to delivery.
tostringrequiredAsset leaving the step, written per format.
venuestringrequiredVenue that executes this step.
Allowed: "aave""across""cctp_fast""cctp_hyperliquid_fast""cctp_hyperliquid_standard""cctp_standard""chainflip""flytrade""hyperliquid_spot""kyberswap""lifi_fast""lifi_standard""mayan""morpho""nordstern""near_intents""okx""relay""transit""unit""velora"
venue_amount_instringrequiredAmount sent to the venue: step_amount_in less this step's execution
cost.
venue_amount_outstringrequiredThe venue's output for venue_amount_in.
One of: failed
The venue refused or errored.
errorstringrequiredstatusstringrequiredValue: "failed"
One of: timed_out
The venue did not answer within the deadline.
statusstringrequiredValue: "timed_out"
completebooleanrequiredWhether every path was enumerated, false when the search hit its limit.
hopsinteger | nullNumber of venue steps in the routes tried, the fewest with a path. Null when no path exists.
uint · min: 0
pathsintegerrequiredNumber of candidate paths found at that hop count.
uint · min: 0
routesobject[]requiredEach complete path and whether it produced a quote.
Show child attributes
assetsstring[]requiredThe assets along the path, from from to to, written per format.
Show child attributes
string
bestbooleanrequiredWhether this route is the quote that was returned.
venuesstring[]requiredThe venue of each hop, in order.
Show child attributes
string · "aave", "across", "cctp_fast", "cctp_hyperliquid_fast", "cctp_hyperliquid_standard", "cctp_standard", "chainflip", "flytrade", "hyperliquid_spot", "kyberswap", "lifi_fast", "lifi_standard", "mayan", "morpho", "nordstern", "near_intents", "okx", "relay", "transit", "unit", "velora"
One of: quoted
Every hop quoted; quote is the costed route.
quoteobjectrequiredThe priced route shared by the quote response and every candidate.
Show child attributes
deliveryobjectrequiredThe final transfer into to_address and what it costs.
Show child attributes
amount_instringrequiredAmount of to handed to delivery: the last step's step_amount_out.
amount_outstringrequiredAmount that arrives at to_address. This is estimated_amount_out.
execution_coststringrequiredCost of the transfer into to_address, paid out of amount_in.
estimated_amount_outstringrequiredExpected amount of to delivered to the order's to_address, after
every venue and delivery cost.
expires_atstringrequiredInstant after which the quote is refused on order creation.
date-time
fromstringrequiredAsset sold, written per format.
from_amountstringrequiredThe amount quoted, echoed in format.
idstringrequiredIdentifier to pass as quote_id when creating the order.
uuid
routeobject[] | nullThe venue steps in execution order. Present only when
return_full_route was set.
Show child attributes
See the OpenAPI specification for the complete schema.
tostringrequiredAsset received, written per format.
venue_allowliststring[]requiredVenues quoting was restricted to; empty when it was not.
Show child attributes
See the OpenAPI specification for the complete schema.
venue_blockliststring[]requiredVenues excluded from quoting; empty when none were.
Show child attributes
See the OpenAPI specification for the complete schema.
statusstringrequiredValue: "quoted"
One of: failed
A hop failed; error is what stopped the route.
errorstringrequiredstatusstringrequiredValue: "failed"
setup_errorstring | nullWhy the search could not start, when it could not.
single_hopobject[]requiredOne entry per venue asked to quote the pair directly.
Show child attributes
bestbooleanrequiredWhether this candidate is the quote that was returned.
elapsed_msintegerrequiredMilliseconds until the venue answered or was cut off.
uint64 · min: 0
venuestringrequiredThe venue asked.
Allowed: "aave""across""cctp_fast""cctp_hyperliquid_fast""cctp_hyperliquid_standard""cctp_standard""chainflip""flytrade""hyperliquid_spot""kyberswap""lifi_fast""lifi_standard""mayan""morpho""nordstern""near_intents""okx""relay""transit""unit""velora"
One of: quoted
The venue answered; quote is the costed result and costing_audit
the raw answer it was derived from.
costing_auditobjectrequiredThe venue's raw answer before execution costs were applied.
Show child attributes
observed_amount_instringrequiredAmount the venue was asked to price.
observed_amount_outstringrequiredAmount the venue said it would return for it.
venuestringrequiredThe venue that answered.
Allowed: "aave""across""cctp_fast""cctp_hyperliquid_fast""cctp_hyperliquid_standard""cctp_standard""chainflip""flytrade""hyperliquid_spot""kyberswap""lifi_fast""lifi_standard""mayan""morpho""nordstern""near_intents""okx""relay""transit""unit""velora"
quoteobjectrequiredThe priced route shared by the quote response and every candidate.
Show child attributes
deliveryobjectrequiredThe final transfer into to_address and what it costs.
Show child attributes
amount_instringrequiredAmount of to handed to delivery: the last step's step_amount_out.
amount_outstringrequiredAmount that arrives at to_address. This is estimated_amount_out.
execution_coststringrequiredCost of the transfer into to_address, paid out of amount_in.
estimated_amount_outstringrequiredExpected amount of to delivered to the order's to_address, after
every venue and delivery cost.
expires_atstringrequiredInstant after which the quote is refused on order creation.
date-time
fromstringrequiredAsset sold, written per format.
from_amountstringrequiredThe amount quoted, echoed in format.
idstringrequiredIdentifier to pass as quote_id when creating the order.
uuid
routeobject[] | nullThe venue steps in execution order. Present only when
return_full_route was set.
Show child attributes
executionobjectrequiredHow the step runs: on Bitcoin, on an EVM chain with vault-funded gas, on an EVM chain with router-funded gas, or on HyperCore.
Show child attributes
See the OpenAPI specification for the complete schema.
fromstringrequiredAsset entering the step, written per format.
step_amount_instringrequiredAmount entering the step: from_amount for the first step, the
previous step's step_amount_out after that.
step_amount_outstringrequiredAmount leaving the step, handed to the next step or to delivery.
tostringrequiredAsset leaving the step, written per format.
venuestringrequiredVenue that executes this step.
Allowed: "aave""across""cctp_fast""cctp_hyperliquid_fast""cctp_hyperliquid_standard""cctp_standard""chainflip""flytrade""hyperliquid_spot""kyberswap""lifi_fast""lifi_standard""mayan""morpho""nordstern""near_intents""okx""relay""transit""unit""velora"
venue_amount_instringrequiredAmount sent to the venue: step_amount_in less this step's execution
cost.
venue_amount_outstringrequiredThe venue's output for venue_amount_in.
tostringrequiredAsset received, written per format.
venue_allowliststring[]requiredVenues quoting was restricted to; empty when it was not.
Show child attributes
string · "aave", "across", "cctp_fast", "cctp_hyperliquid_fast", "cctp_hyperliquid_standard", "cctp_standard", "chainflip", "flytrade", "hyperliquid_spot", "kyberswap", "lifi_fast", "lifi_standard", "mayan", "morpho", "nordstern", "near_intents", "okx", "relay", "transit", "unit", "velora"
venue_blockliststring[]requiredVenues excluded from quoting; empty when none were.
Show child attributes
string · "aave", "across", "cctp_fast", "cctp_hyperliquid_fast", "cctp_hyperliquid_standard", "cctp_standard", "chainflip", "flytrade", "hyperliquid_spot", "kyberswap", "lifi_fast", "lifi_standard", "mayan", "morpho", "nordstern", "near_intents", "okx", "relay", "transit", "unit", "velora"
statusstringrequiredValue: "quoted"
One of: failed
The venue refused or errored.
errorstringrequiredstatusstringrequiredValue: "failed"
One of: timed_out
The venue did not answer within the quote_mode deadline.
statusstringrequiredValue: "timed_out"
Any of: null 2
null
routeobject[] | nullThe venue steps in execution order. Present only when
return_full_route was set.
Show child attributes
executionobjectrequiredHow the step runs: on Bitcoin, on an EVM chain with vault-funded gas, on an EVM chain with router-funded gas, or on HyperCore.
Show child attributes
One of: bitcoin
Runs on Bitcoin.
modestringrequiredValue: "bitcoin"
One of: evm
Runs on an EVM chain with gas paid by the vault.
chainintegerrequiredEVM chain id.
int32
modestringrequiredValue: "evm"
One of: evm_gas_desk
Runs on an EVM chain with gas advanced by the router.
chainintegerrequiredEVM chain id.
int32
modestringrequiredValue: "evm_gas_desk"
One of: hyperliquid
Runs on HyperCore.
modestringrequiredValue: "hyperliquid"
fromstringrequiredAsset entering the step, written per format.
step_amount_instringrequiredAmount entering the step: from_amount for the first step, the
previous step's step_amount_out after that.
step_amount_outstringrequiredAmount leaving the step, handed to the next step or to delivery.
tostringrequiredAsset leaving the step, written per format.
venuestringrequiredVenue that executes this step.
Allowed: "aave""across""cctp_fast""cctp_hyperliquid_fast""cctp_hyperliquid_standard""cctp_standard""chainflip""flytrade""hyperliquid_spot""kyberswap""lifi_fast""lifi_standard""mayan""morpho""nordstern""near_intents""okx""relay""transit""unit""velora"
venue_amount_instringrequiredAmount sent to the venue: step_amount_in less this step's execution
cost.
venue_amount_outstringrequiredThe venue's output for venue_amount_in.
tostringrequiredAsset received, written per format.
venue_allowliststring[]requiredVenues quoting was restricted to; empty when it was not.
Show child attributes
string · "aave", "across", "cctp_fast", "cctp_hyperliquid_fast", "cctp_hyperliquid_standard", "cctp_standard", "chainflip", "flytrade", "hyperliquid_spot", "kyberswap", "lifi_fast", "lifi_standard", "mayan", "morpho", "nordstern", "near_intents", "okx", "relay", "transit", "unit", "velora"
venue_blockliststring[]requiredVenues excluded from quoting; empty when none were.
Show child attributes
string · "aave", "across", "cctp_fast", "cctp_hyperliquid_fast", "cctp_hyperliquid_standard", "cctp_standard", "chainflip", "flytrade", "hyperliquid_spot", "kyberswap", "lifi_fast", "lifi_standard", "mayan", "morpho", "nordstern", "near_intents", "okx", "relay", "transit", "unit", "velora"

