curl --request GET \
--url https://sandbox-api.polygon.technology/v0.13/quotes/{quoteId} \
--header 'Authorization: Bearer <token>'import requests
url = "https://sandbox-api.polygon.technology/v0.13/quotes/{quoteId}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://sandbox-api.polygon.technology/v0.13/quotes/{quoteId}', 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://sandbox-api.polygon.technology/v0.13/quotes/{quoteId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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://sandbox-api.polygon.technology/v0.13/quotes/{quoteId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://sandbox-api.polygon.technology/v0.13/quotes/{quoteId}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox-api.polygon.technology/v0.13/quotes/{quoteId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"id": "qt_0gq9aesz4wb5etdv88z1j61qcm",
"object": "quote",
"status": "open",
"sourceToDestination": "cryptoToFiatAccount",
"customerId": "cst_vfa0nxw6zvyws9g237jrxn4y7k",
"customer": {
"id": "cst_vfa0nxw6zvyws9g237jrxn4y7k",
"name": "Jane Smith"
},
"source": {
"type": "walletCrypto",
"id": "wlt_5h4jzzpr9xre3bamd9ca7qyghn",
"asset": "usdc",
"network": "polygon",
"details": {
"address": "0x7B3A9F2C4D1eA8bf6390cE5D2b7fA104c8e3D9B1"
}
},
"destination": {
"owner": {
"kind": "counterparty",
"id": "ctp_yp5z8m7n22svc0vh6edqgcfdat",
"name": "Alice Smith"
},
"type": "bankUs",
"id": "ext_fky491gakzj0dd46qb6whsr2vq",
"asset": "usd",
"network": "ach",
"details": {
"accountNumberLast4": "1234",
"holderName": "Alice Smith"
},
"payoutOrigin": {
"type": "bank",
"accountHolder": "customer",
"accountHolderName": "Jane Smith"
}
},
"pricing": {
"source": {
"asset": "usdc",
"amount": "100.000000"
},
"destination": {
"asset": "usd",
"amount": "100.00"
},
"fees": [],
"exchangeRate": "1.0000",
"fixedAmountSide": "source",
"sponsorGas": true
},
"expiresAt": "2026-03-14T19:15:00Z",
"createdAt": "2026-03-14T19:00:00Z"
}{
"error": "QuoteNotFound",
"code": 10260,
"msg": "quote not found",
"cause": "<string>"
}Get quote by ID
Retrieves a previously created quote by ID, including its locked rate, fee breakdown, and expiry.
curl --request GET \
--url https://sandbox-api.polygon.technology/v0.13/quotes/{quoteId} \
--header 'Authorization: Bearer <token>'import requests
url = "https://sandbox-api.polygon.technology/v0.13/quotes/{quoteId}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://sandbox-api.polygon.technology/v0.13/quotes/{quoteId}', 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://sandbox-api.polygon.technology/v0.13/quotes/{quoteId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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://sandbox-api.polygon.technology/v0.13/quotes/{quoteId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://sandbox-api.polygon.technology/v0.13/quotes/{quoteId}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox-api.polygon.technology/v0.13/quotes/{quoteId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"id": "qt_0gq9aesz4wb5etdv88z1j61qcm",
"object": "quote",
"status": "open",
"sourceToDestination": "cryptoToFiatAccount",
"customerId": "cst_vfa0nxw6zvyws9g237jrxn4y7k",
"customer": {
"id": "cst_vfa0nxw6zvyws9g237jrxn4y7k",
"name": "Jane Smith"
},
"source": {
"type": "walletCrypto",
"id": "wlt_5h4jzzpr9xre3bamd9ca7qyghn",
"asset": "usdc",
"network": "polygon",
"details": {
"address": "0x7B3A9F2C4D1eA8bf6390cE5D2b7fA104c8e3D9B1"
}
},
"destination": {
"owner": {
"kind": "counterparty",
"id": "ctp_yp5z8m7n22svc0vh6edqgcfdat",
"name": "Alice Smith"
},
"type": "bankUs",
"id": "ext_fky491gakzj0dd46qb6whsr2vq",
"asset": "usd",
"network": "ach",
"details": {
"accountNumberLast4": "1234",
"holderName": "Alice Smith"
},
"payoutOrigin": {
"type": "bank",
"accountHolder": "customer",
"accountHolderName": "Jane Smith"
}
},
"pricing": {
"source": {
"asset": "usdc",
"amount": "100.000000"
},
"destination": {
"asset": "usd",
"amount": "100.00"
},
"fees": [],
"exchangeRate": "1.0000",
"fixedAmountSide": "source",
"sponsorGas": true
},
"expiresAt": "2026-03-14T19:15:00Z",
"createdAt": "2026-03-14T19:00:00Z"
}{
"error": "QuoteNotFound",
"code": 10260,
"msg": "quote not found",
"cause": "<string>"
}Authorizations
Token from POST /auth/token
Path Parameters
Quote ID (qt_ prefix).
Response
The request has succeeded.
A price quote for moving money between two instruments. It locks an exchange rate and the amounts for a short window; execute it by creating a transaction that references this quote's id.
Quote ID (qt_ prefix).
^[a-z]+_([0-9a-hjkmnp-tv-z]{26}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})$Resource type discriminator. Always "quote".
quote Current status of the quote.
open, accepted, expired The OMS customer that owns this record (cst_ prefix).
^[a-z]+_([0-9a-hjkmnp-tv-z]{26}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})$The funding side, echoed from the request with resolved instrument detail.
- OMS wallet
- External wallet
- Fiat wallet
- US bank account
- IBAN bank account
- Canadian bank account
- Card
- Cash
- Deposit address
- Virtual account
Hide child attributes
Hide child attributes
walletCrypto Lowercase asset.
Lowercase blockchain.
The wallet (wlt_); an older wallet keeps its original wlt_<uuid> id. Left out while a deposit's receiving wallet is not resolved yet.
^[a-z]+_([0-9a-hjkmnp-tv-z]{26}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})$Who owns an account that is not the resource's customer's.
Hide child attributes
Hide child attributes
counterparty, or customer for another customer's account.
counterparty, customer The counterparty (ctp_) or customer (cst_).
^[a-z]+_([0-9a-hjkmnp-tv-z]{26}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})$The counterparty's name. A customer's name is on the customer resource.
The receiving side, echoed from the request with resolved instrument detail.
- OMS wallet
- External wallet
- Fiat wallet
- US bank account
- IBAN bank account
- Canadian bank account
- Card
- Cash
Hide child attributes
Hide child attributes
walletCrypto Lowercase asset.
Lowercase blockchain.
The wallet (wlt_); an older wallet keeps its original wlt_<uuid> id. Left out while a deposit's receiving wallet is not resolved yet.
^[a-z]+_([0-9a-hjkmnp-tv-z]{26}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})$Who owns an account that is not the resource's customer's.
Hide child attributes
Hide child attributes
counterparty, or customer for another customer's account.
counterparty, customer The counterparty (ctp_) or customer (cst_).
^[a-z]+_([0-9a-hjkmnp-tv-z]{26}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})$The counterparty's name. A customer's name is on the customer resource.
Where last-mile delivery is sent from, as a uniform {type, id} reference — response-only. id is the Virtual Account (va_) or OMS wallet (wlt_) funding the leg; left out before execution (Quote / Deposit Address echo the choice only) or when the origin has no partner-visible resource. Rail identifiers for the last-mile transfer live in the top-level tracking array with leg: destination — not here.
Hide child attributes
Hide child attributes
bank, blockchain Public TypeID, e.g. txn_01h455vb4pex5vsknk084sn02q.
^[a-z]+_([0-9a-hjkmnp-tv-z]{26}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})$Whose legal identity the payment is sent under. Determined by OMS from the route's configuration — not a request field. Left out when OMS cannot determine it, and on destinations that have no sending legal identity (cash payouts, and crypto payouts outside a Deposit Address). A bank payout that goes out under the payment provider or the partner records that holder just before it is sent to the provider, and reports it only while a payout was or may have been created there; a send interrupted after the holder was recorded and before it went out has an unknown outcome and may report it. A failed send known to have created no payout at the provider, and a payout sent before holders were recorded whose holder could not be recovered afterwards, report the fallback value instead, which may differ from the holder actually used. The fallback value, also reported before a holder is recorded and for payouts that always go out under the customer's own name, is the holder the Deposit Address fixed for the destination type the transaction pays on a transaction created from a Deposit Address, and the value its route implies on any other.
customer, paymentProvider, partner The legal name the payment is sent under, resolved from accountHolder — the customer's own legal name for customer, the owning customer's legal name for partner (for now; a partner-level name may replace it later), or the payment provider's name for paymentProvider, which differs between a bank origin ("Coinme Inc FBO its Customers") and a blockchain origin. This is what the recipient sees as the sender. Like accountHolder and unlike id, it is populated as soon as it is determinable, so it appears on Quote, Deposit Address and Virtual Account responses as well as Transactions. Left out whenever accountHolder is, and when the customer's name cannot be read at that moment.
Echo of the ACH companyDiscretionaryData supplied on the originating request. Null/absent on non-ACH destinations or when not supplied.
Consolidated economics.
Hide child attributes
Hide child attributes
Every fee charged across both sides. [] when there are none — never omitted, never null.
Hide child attributes
Hide child attributes
Fee kind. OPEN — clients must tolerate an unrecognised type. Known values today: "developer", "oms", "gas".
Which side this fee was deducted from.
source, destination Currency this fee is denominated in — that side's asset.
Fee amount in asset, at the asset's precision.
The source side, in the source asset.
Hide child attributes
Hide child attributes
Lowercase asset of this side, the same as the side's instrument asset.
On the source, the gross amount the customer pays; on the destination, the amount that arrives. A decimal string at the asset's precision. Always set on the source; set on the destination once priced.
The destination side, in the destination asset.
Hide child attributes
Hide child attributes
Lowercase asset of this side, the same as the side's instrument asset.
On the source, the gross amount the customer pays; on the destination, the amount that arrives. A decimal string at the asset's precision. Always set on the source; set on the destination once priced.
Mid-market rate from the source asset to the destination asset, set together with the destination amount. Identity: (source.amount − Σ source fees) × exchangeRate = destination.amount + Σ destination fees.
The side whose amount was fixed at creation. OMS calculated the other side.
source, destination Present and true when OMS absorbs the destination gas cost; omitted otherwise.
Corridor composite derived from the two sides.
cryptoToCrypto, cryptoToCash, cryptoToFiatAccount, cashToCrypto, fiatAccountToCrypto, fiatAccountToFiatAccount Display-safe summary of the owning customer (customer.id equals customerId). Omitted when the customer cannot be resolved.
When the locked pricing expires.
When the quote was created.
Was this page helpful?