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
const response = await fetch("https://api.rift.trade/quote", {
method: "POST",
headers: {
Accept: "application/json",
"Content-Type": "application/json",
},
body: JSON.stringify({
format: "formatted",
from: "bitcoin.btc",
from_amount: "0.01",
return_full_route: true,
to: "ethereum.usdc",
}),
});
const data = await response.json();
console.log(data);Parameters
header parameter
x-api-keystringYour API key. Quotes made with it are attributed to your integrator id and held to its rate. Without it the quote is anonymous.
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
integrator_idstring | nullDeprecated and ignored. Quotes are attributed to the integrator that
owns the API key sent in the x-api-key header. Still accepted so
existing requests keep working.
Show child attributes
Any of: string 1
string
Any of: null 2
null
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", "chainflip", "cowswap", "flytrade", "hyperliquid", "kyberswap", "lifi", "mayan", "morpho", "near_intents", "nordstern", "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", "chainflip", "cowswap", "flytrade", "hyperliquid", "kyberswap", "lifi", "mayan", "morpho", "near_intents", "nordstern", "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
integrator_idstring | nullThe integrator id of the API key the quote was made with, or null when it was made without one.
Show child attributes
Any of: string 1
string
Any of: null 2
null
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""across_swap""cctp_fast""cctp_hyperliquid_fast""cctp_hyperliquid_standard""cctp_standard""chainflip""cowswap""flytrade""hyperliquid_spot""kyberswap""lifi_fast""lifi_standard""mayan""mayan_swap""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""across_swap""cctp_fast""cctp_hyperliquid_fast""cctp_hyperliquid_standard""cctp_standard""chainflip""cowswap""flytrade""hyperliquid_spot""kyberswap""lifi_fast""lifi_standard""mayan""mayan_swap""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", "across_swap", "cctp_fast", "cctp_hyperliquid_fast", "cctp_hyperliquid_standard", "cctp_standard", "chainflip", "cowswap", "flytrade", "hyperliquid_spot", "kyberswap", "lifi_fast", "lifi_standard", "mayan", "mayan_swap", "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 execution costs could not be
priced, in the same words as single_hop.setup_error.
single_hopobjectrequiredThe venues able to quote the pair directly and what each answered.
Show child attributes
candidatesobject[]requiredOne entry per venue able 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 able to quote the pair directly.
Allowed: "aave""across""across_swap""cctp_fast""cctp_hyperliquid_fast""cctp_hyperliquid_standard""cctp_standard""chainflip""cowswap""flytrade""hyperliquid_spot""kyberswap""lifi_fast""lifi_standard""mayan""mayan_swap""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""across_swap""cctp_fast""cctp_hyperliquid_fast""cctp_hyperliquid_standard""cctp_standard""chainflip""cowswap""flytrade""hyperliquid_spot""kyberswap""lifi_fast""lifi_standard""mayan""mayan_swap""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
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
The venue refused or errored.
errorstringrequiredstatusstringrequiredValue: "failed"
One of: timed_out
The venue did not answer within the quote_mode deadline.
statusstringrequiredValue: "timed_out"
One of: not_asked
The venue was never asked because execution costs could not be
priced; single_hop.setup_error says why.
statusstringrequiredValue: "not_asked"
setup_errorstring | nullWhy no direct venue was asked, when execution costs could not be
priced: pricing timed out, pricing unavailable for <asset> (a
temporary outage) or no price available for <asset> (the asset has
no price).
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""across_swap""cctp_fast""cctp_hyperliquid_fast""cctp_hyperliquid_standard""cctp_standard""chainflip""cowswap""flytrade""hyperliquid_spot""kyberswap""lifi_fast""lifi_standard""mayan""mayan_swap""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", "chainflip", "cowswap", "flytrade", "hyperliquid", "kyberswap", "lifi", "mayan", "morpho", "near_intents", "nordstern", "okx", "relay", "transit", "unit", "velora"
venue_blockliststring[]requiredVenues excluded from quoting; empty when none were.
Show child attributes
string · "aave", "across", "cctp", "chainflip", "cowswap", "flytrade", "hyperliquid", "kyberswap", "lifi", "mayan", "morpho", "near_intents", "nordstern", "okx", "relay", "transit", "unit", "velora"

