curl --request GET \
--url https://api.velora.xyz/v2/quoteimport requests
url = "https://api.velora.xyz/v2/quote"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.velora.xyz/v2/quote', 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.velora.xyz/v2/quote",
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.velora.xyz/v2/quote"
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.velora.xyz/v2/quote")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.velora.xyz/v2/quote")
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{
"delta": {
"id": "4899cda3-795d-467d-a5e2-c6633415ecc0",
"side": "SELL",
"inputToken": {
"chainId": 10,
"address": "0x0b2c639c533813f4aa9d7837caf62653d097ff85"
},
"outputToken": {
"chainId": 10,
"address": "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"
},
"route": {
"origin": {
"input": {
"token": {
"chainId": 10,
"address": "0x0b2c639c533813f4aa9d7837caf62653d097ff85"
},
"amount": "1000000",
"amountUSD": "0.9995570000"
},
"output": {
"token": {
"chainId": 10,
"address": "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"
},
"amount": "560908985930384",
"amountUSD": "0.9950301048"
}
},
"destination": {
"input": {
"token": {
"chainId": 10,
"address": "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"
},
"amount": "560908985930384",
"amountUSD": "0.9950301048"
},
"output": {
"token": {
"chainId": 10,
"address": "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"
},
"amount": "560908985930384",
"amountUSD": "0.9950301048"
}
},
"bridge": null,
"fees": {
"gas": {
"token": {
"chainId": 10,
"address": "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"
},
"amount": "388230",
"amountUSD": "0.0007580000"
},
"bridge": []
}
},
"partner": {
"name": "paraswap.io-orders",
"feePercent": 0
},
"spender": "0x76e0ebb8d4c6dccb3fdedab7a3e1c87036719a42",
"alternatives": []
}
}Get a Delta quote
Unified Delta V2 quote: a route-based delta price with optional Market fallback. Use mode=DELTA for Delta-only.
curl --request GET \
--url https://api.velora.xyz/v2/quoteimport requests
url = "https://api.velora.xyz/v2/quote"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.velora.xyz/v2/quote', 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.velora.xyz/v2/quote",
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.velora.xyz/v2/quote"
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.velora.xyz/v2/quote")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.velora.xyz/v2/quote")
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{
"delta": {
"id": "4899cda3-795d-467d-a5e2-c6633415ecc0",
"side": "SELL",
"inputToken": {
"chainId": 10,
"address": "0x0b2c639c533813f4aa9d7837caf62653d097ff85"
},
"outputToken": {
"chainId": 10,
"address": "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"
},
"route": {
"origin": {
"input": {
"token": {
"chainId": 10,
"address": "0x0b2c639c533813f4aa9d7837caf62653d097ff85"
},
"amount": "1000000",
"amountUSD": "0.9995570000"
},
"output": {
"token": {
"chainId": 10,
"address": "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"
},
"amount": "560908985930384",
"amountUSD": "0.9950301048"
}
},
"destination": {
"input": {
"token": {
"chainId": 10,
"address": "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"
},
"amount": "560908985930384",
"amountUSD": "0.9950301048"
},
"output": {
"token": {
"chainId": 10,
"address": "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"
},
"amount": "560908985930384",
"amountUSD": "0.9950301048"
}
},
"bridge": null,
"fees": {
"gas": {
"token": {
"chainId": 10,
"address": "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"
},
"amount": "388230",
"amountUSD": "0.0007580000"
},
"bridge": []
}
},
"partner": {
"name": "paraswap.io-orders",
"feePercent": 0
},
"spender": "0x76e0ebb8d4c6dccb3fdedab7a3e1c87036719a42",
"alternatives": []
}
}GET /v2/quote is the entry point of the Delta flow: it returns a delta block (a gasless, MEV-protected intent price) and, with mode=ALL, falls back to a ready-to-build Market route when no solver can fill. You never compare routes client-side; fallbackReason tells you why a downgrade happened. See Trading modes for the mode semantics.
mode=DELTA the response carries a single delta block: a Delta V2 price with route + alternatives (no hmac). Pass delta.route verbatim to POST /v2/delta/orders/build. For the raw price object without the quote envelope, use GET /v2/delta/prices.Query Parameters
Source chain ID. Supported: 1, 10, 56, 100, 130, 137, 4663, 8453, 42161, 43114.
1
"0x6B175474E89094C44Da98b954EedeAC495271d0F"
Destination token. For crosschain quotes, the destination token on destChainId.
"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"
Source amount (SELL) or destination amount (BUY), in raw token units.
"1000000000000000000"
18
6
Which execution path to return. DELTA returns the delta block only; MARKET returns the market block only; ALL (default) lets Velora pick and may fall back to Market.
ALL, DELTA, MARKET SELL, BUY Omit for same-chain. When set, the delta block's route.bridge is populated.
Address that receives the destination token. Defaults to userAddress.
Partner key. Defaults to anon (1bps fee).
"my-app-name"
Override partner fee in basis points (max 200 = 2%).
0 <= x <= 200Response
Delta quote, optionally with a Market block depending on mode.
Delta V2 price. Present for mode=DELTA and mode=ALL (when Delta can price). Pass delta.route verbatim to POST /v2/delta/orders/build.
Show child attributes
Show child attributes
Market route block. Same shape as the GET /prices priceRoute field. Present when mode is ALL or MARKET.
Set when Delta couldn't price and the response fell back to Market.
Show child attributes
Show child attributes