curl --request GET \
--url https://app.sandbox.rio.trade/api/quotes/{id} \
--header 'x-api-key: <api-key>'import requests
url = "https://app.sandbox.rio.trade/api/quotes/{id}"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://app.sandbox.rio.trade/api/quotes/{id}', 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://app.sandbox.rio.trade/api/quotes/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$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://app.sandbox.rio.trade/api/quotes/{id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://app.sandbox.rio.trade/api/quotes/{id}")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.sandbox.rio.trade/api/quotes/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"id": "6660bdefd6c964829d63fcb7",
"userId": "66290ac8bd3903485989f82e",
"flow": "fiatToCrypto",
"origin": {
"asset": "MXN",
"amount": 1000,
"country": "MX"
},
"destination": {
"asset": "USDC",
"amount": 54.76,
"country": "MX"
},
"fixedLeg": "origin",
"pricingDetails": {
"fees": [
{
"type": "processing",
"amount": 20,
"asset": "MXN",
"tax": 3.2
}
]
},
"settlement": {
"mode": "deliverable",
"timing": "default",
"valueDateOffset": 1,
"effectiveValueDateOffset": 1,
"valueDate": "2026-10-12T18:00:00.000Z",
"payment": {
"asset": "MXN",
"amount": 1000,
"rail": "bankTransfer",
"network": "polygon",
"dueDate": "2026-10-12T18:00:00.000Z"
},
"payout": {
"asset": "USDC",
"amount": 54.76,
"rail": "blockchain",
"network": "polygon",
"dueDate": "2026-10-12T18:00:00.000Z"
}
},
"marketPrice": 0.056,
"netPrice": 0.05476,
"orderType": "market",
"limitNetPrice": 0.0555,
"timeInForceStartsAt": "2026-10-12T18:00:00.000Z",
"timeInForceEndsAt": "2026-10-12T18:00:00.000Z",
"createdAt": "2026-10-12T18:00:00.000Z",
"expiresAt": "2026-10-12T18:00:10.000Z",
"reissueAfterExpiration": true,
"isAfterHours": false,
"isSurgePricing": false
}{
"errors": [
{
"code": 21,
"message": "Quote not found"
}
]
}Get Quote by ID
curl --request GET \
--url https://app.sandbox.rio.trade/api/quotes/{id} \
--header 'x-api-key: <api-key>'import requests
url = "https://app.sandbox.rio.trade/api/quotes/{id}"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://app.sandbox.rio.trade/api/quotes/{id}', 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://app.sandbox.rio.trade/api/quotes/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$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://app.sandbox.rio.trade/api/quotes/{id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://app.sandbox.rio.trade/api/quotes/{id}")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.sandbox.rio.trade/api/quotes/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"id": "6660bdefd6c964829d63fcb7",
"userId": "66290ac8bd3903485989f82e",
"flow": "fiatToCrypto",
"origin": {
"asset": "MXN",
"amount": 1000,
"country": "MX"
},
"destination": {
"asset": "USDC",
"amount": 54.76,
"country": "MX"
},
"fixedLeg": "origin",
"pricingDetails": {
"fees": [
{
"type": "processing",
"amount": 20,
"asset": "MXN",
"tax": 3.2
}
]
},
"settlement": {
"mode": "deliverable",
"timing": "default",
"valueDateOffset": 1,
"effectiveValueDateOffset": 1,
"valueDate": "2026-10-12T18:00:00.000Z",
"payment": {
"asset": "MXN",
"amount": 1000,
"rail": "bankTransfer",
"network": "polygon",
"dueDate": "2026-10-12T18:00:00.000Z"
},
"payout": {
"asset": "USDC",
"amount": 54.76,
"rail": "blockchain",
"network": "polygon",
"dueDate": "2026-10-12T18:00:00.000Z"
}
},
"marketPrice": 0.056,
"netPrice": 0.05476,
"orderType": "market",
"limitNetPrice": 0.0555,
"timeInForceStartsAt": "2026-10-12T18:00:00.000Z",
"timeInForceEndsAt": "2026-10-12T18:00:00.000Z",
"createdAt": "2026-10-12T18:00:00.000Z",
"expiresAt": "2026-10-12T18:00:10.000Z",
"reissueAfterExpiration": true,
"isAfterHours": false,
"isSurgePricing": false
}{
"errors": [
{
"code": 21,
"message": "Quote not found"
}
]
}Authorizations
Path Parameters
Id of the quote to be obtained.
Response
OK
Id of the quote.
"6660bdefd6c964829d63fcb7"
Id of the user the quote belongs to.
"66290ac8bd3903485989f82e"
Direction of the conversion, derived from the two assets. fiatToCrypto buys stablecoins, cryptoToFiat sells them, cryptoToCrypto swaps one stablecoin or network for another.
fiatToCrypto, cryptoToFiat, cryptoToCrypto "fiatToCrypto"
What the customer pays. The amount is in the leg's own asset.
Show child attributes
Show child attributes
What the customer receives. The amount is in the leg's own asset.
Show child attributes
Show child attributes
Which leg's amount you specified. The other leg was derived from the price and fees.
origin, destination "origin"
How the destination amount was derived from the origin amount.
Show child attributes
Show child attributes
How and when the two legs settle.
Show child attributes
Show child attributes
Market price at the time of the quote, in units of the destination asset per unit of the origin asset.
0.056
Final price including fees and taxes, in destination asset per unit of origin asset.
0.05476
market executes at the current price, limit waits for limitNetPrice.
market, limit "market"
Limit price for limit orders, expressed like netPrice as units of the destination asset per unit of the origin asset. Only applicable when orderType is limit.
0.0555
Earliest execution time of a limit order.
"2026-10-12T18:00:00.000Z"
Latest execution time of a limit order.
"2026-10-12T18:00:00.000Z"
Creation time.
"2026-10-12T18:00:00.000Z"
Expiration time. Orders created from an expired quote are re-quoted unless the account uses instant booking.
"2026-10-12T18:00:10.000Z"
Whether orders keep getting a fresh quote after this one expires.
true
Whether after hours pricing applied.
false
Whether surge pricing applied.
false