curl --request GET \
--url https://api.delora.build/v1/quotesimport requests
url = "https://api.delora.build/v1/quotes"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.delora.build/v1/quotes', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.delora.build/v1/quotes",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.delora.build/v1/quotes"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.delora.build/v1/quotes")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.delora.build/v1/quotes")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"inputAmount": "1000000",
"outputAmount": "997321",
"minOutputAmount": "992334",
"adapter": "OPENOCEAN",
"calldata": {
"to": "0x1111111111111111111111111111111111111111",
"value": "0x0",
"data": "0xabcdef"
},
"fees": {
"total": {
"amount": "2679",
"currencySymbol": "USDC",
"currencyAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"chainId": 8453,
"decimals": 6
},
"breakdown": [
{
"type": "gas",
"amount": "2679",
"currencySymbol": "USDC",
"currencyAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"chainId": 8453,
"decimals": 6,
"amountUsd": "0.01"
}
],
"totalUsd": "0.01"
},
"gas": {
"gasPrice": "0x3b9aca00",
"maxFeePerGas": "0x59682f00",
"maxPriorityFeePerGas": "0x3b9aca00"
},
"warnings": [
{
"code": "SOLANA_INSUFFICIENT_BALANCE",
"message": "Solana simulation reported insufficient balance."
}
]
}{
"statusCode": 400,
"code": "VALIDATION_ERROR",
"message": "Invalid request parameters",
"details": {
"message": [
"senderAddress should not be empty",
"senderAddress must be a string"
]
},
"timestamp": "2026-05-15T16:58:45.603Z",
"path": "/v1/quotes"
}{
"statusCode": 429,
"code": "RATE_LIMIT",
"message": "Rate limit exceeded. Please try again later.",
"details": {
"message": "Rate limit exceeded. Please try again later."
},
"timestamp": "2026-05-15T16:58:45.603Z",
"path": "/v1/quotes"
}Get a quote for a token transfer
Returns the best available route for an exact-input transfer or swap, including estimated output, executable calldata, fee breakdown, optional gas data, and non-blocking warnings.
curl --request GET \
--url https://api.delora.build/v1/quotesimport requests
url = "https://api.delora.build/v1/quotes"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.delora.build/v1/quotes', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.delora.build/v1/quotes",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.delora.build/v1/quotes"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.delora.build/v1/quotes")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.delora.build/v1/quotes")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"inputAmount": "1000000",
"outputAmount": "997321",
"minOutputAmount": "992334",
"adapter": "OPENOCEAN",
"calldata": {
"to": "0x1111111111111111111111111111111111111111",
"value": "0x0",
"data": "0xabcdef"
},
"fees": {
"total": {
"amount": "2679",
"currencySymbol": "USDC",
"currencyAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"chainId": 8453,
"decimals": 6
},
"breakdown": [
{
"type": "gas",
"amount": "2679",
"currencySymbol": "USDC",
"currencyAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"chainId": 8453,
"decimals": 6,
"amountUsd": "0.01"
}
],
"totalUsd": "0.01"
},
"gas": {
"gasPrice": "0x3b9aca00",
"maxFeePerGas": "0x59682f00",
"maxPriorityFeePerGas": "0x3b9aca00"
},
"warnings": [
{
"code": "SOLANA_INSUFFICIENT_BALANCE",
"message": "Solana simulation reported insufficient balance."
}
]
}{
"statusCode": 400,
"code": "VALIDATION_ERROR",
"message": "Invalid request parameters",
"details": {
"message": [
"senderAddress should not be empty",
"senderAddress must be a string"
]
},
"timestamp": "2026-05-15T16:58:45.603Z",
"path": "/v1/quotes"
}{
"statusCode": 429,
"code": "RATE_LIMIT",
"message": "Rate limit exceeded. Please try again later.",
"details": {
"message": "Rate limit exceeded. Please try again later."
},
"timestamp": "2026-05-15T16:58:45.603Z",
"path": "/v1/quotes"
}calldata, fees, and optional non-blocking warnings.
Automatic slippage
SetslippageMode=auto to use Delora’s route-specific automatic slippage policy. When it is supplied, it takes precedence over a numeric slippage value.Headers
Optional API key for higher rate limits and fee rules.
Query Parameters
Sender wallet address on the origin chain.
"0x1111111111111111111111111111111111111111"
Receiver wallet address. Defaults to senderAddress for same chain-type routes (EVM -> EVM or SVM -> SVM) and is required when crossing chain types (EVM -> SVM or SVM -> EVM).
"0x2222222222222222222222222222222222222222"
Origin chain ID.
8453
Destination chain ID.
8453
Exact input amount in token base units as a positive integer string, before Delora and integrator fees.
"1000000"
Origin token address, or native asset marker supported by the backend.
"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"
Destination token address, or native asset marker supported by the backend.
"0x4200000000000000000000000000000000000006"
Integrator identifier used for fee attribution. Required when fee is provided.
"partner-app"
Optional integrator fee fraction taken from the input amount. 0.01 means 1%. Must be between 0 and 0.1 inclusive and can be provided only with integrator.
0 <= x <= 0.10.01
Optional slippage fraction. 0.005 means 0.5%.
0 <= x <= 10.005
Automatic slippage policy. Set to auto to let Delora choose the route-specific slippage; when supplied, it takes precedence over slippage.
auto "auto"
Comma-separated bridge adapter keys from /v1/tools to include, for example RELAY,ACROSS. Only bridge-capable or multi-capability adapters are valid.
"RELAY,ACROSS"
Comma-separated exchange adapter keys from /v1/tools to include, for example OPENOCEAN,OKX. Only exchange-capable or multi-capability adapters are valid.
"OPENOCEAN,OKX"
Comma-separated bridge adapter keys from /v1/tools to exclude, for example RELAY,ACROSS. Only bridge-capable or multi-capability adapters are valid.
"RELAY,ACROSS"
Comma-separated exchange adapter keys from /v1/tools to exclude, for example OPENOCEAN,OKX. Only exchange-capable or multi-capability adapters are valid.
"OPENOCEAN,OKX"
Response
Best executable quote response.
"1000000"
"997321"
ACROSS, RELAY, GASZIP, OPENOCEAN, JUPITER, SYMBIOSIS, MAYAN, MAYAN_WORMHOLE, MAYAN_SWIFT, MAYAN_MCTP, MAYAN_FAST_MCTP, OKX, RISE, NORDSTERN, KYBERSWAP, DFLOW, NEAR_INTENTS "OPENOCEAN"
Show child attributes
Show child attributes
Show child attributes
Show child attributes
"992334"
Estimated bridge completion time in seconds. Returned only for bridge routes.
120
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Approval spender address for EVM-origin routes.
"0x1111111111111111111111111111111111111111"
Serialized Solana transaction size when available.
Show child attributes
Show child attributes
Bridge tracking metadata returned when the selected bridge adapter provides it.
Best-effort transaction simulation metadata returned when simulation is enabled for the selected route.
Show child attributes
Show child attributes
Cached USD price snapshots for the origin and destination quote tokens.
Show child attributes
Show child attributes

