Get Current Price for an Asset
curl --request GET \
--url https://api.gm.ondo.finance/v1/assets/{symbol}/prices/latest \
--header 'x-api-key: <api-key>'import requests
url = "https://api.gm.ondo.finance/v1/assets/{symbol}/prices/latest"
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://api.gm.ondo.finance/v1/assets/{symbol}/prices/latest', 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.gm.ondo.finance/v1/assets/{symbol}/prices/latest",
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://api.gm.ondo.finance/v1/assets/{symbol}/prices/latest"
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://api.gm.ondo.finance/v1/assets/{symbol}/prices/latest")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.gm.ondo.finance/v1/assets/{symbol}/prices/latest")
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{
"primaryMarket": {
"symbol": "AAPLon",
"price": "12.345"
},
"underlyingMarket": {
"ticker": "AAPL",
"price": "12.345"
},
"timestamp": 1746655938
}{
"code": "INVALID_SYMBOL",
"message": "invalid symbol; must be at least 3 characters long and end with 'on'",
"documentation": "https://docs.ondo.finance/api-reference/error-codes#invalid_symbol"
}{
"code": "MISSING_API_KEY",
"message": "missing API key",
"documentation": "https://docs.ondo.finance/api-reference/error-codes#missing_api_key"
}{
"code": "ASSET_NOT_FOUND",
"message": "The provided asset symbol does not exist and cannot be found.",
"documentation": "https://docs.ondo.finance/api-reference/error-codes#asset_not_found"
}{
"code": "RATE_LIMITED",
"message": "rate limit exceeded",
"documentation": "https://docs.ondo.finance/api-reference/error-codes#rate_limited"
}{
"code": "INTERNAL_ERROR",
"message": "An internal server error occurred. Please see the returned message and documentation for details.",
"documentation": "https://docs.ondo.finance/api-reference/error-codes#internal_error"
}Assets
Get Current Price for an Asset
This endpoint retrieves the latest price for a specific asset. Note that the primaryMarket represents the on-chain token while the underlyingMarket
represents the off-chain collateralized stock.
For real-time price updates as they occur, rather than repeatedly polling this endpoint, use the Price Streaming endpoint.
Prices are intended for display only. For real-time trading prices, use the Soft Attestation Quote API. We do not recommend using the price feeds as an oracle for these assets. An official oracle is in development and will be documented when available. For questions, contact support@ondo.finance.
For caching details on this endpoint, please see: Endpoint Caching.
GET
/
v1
/
assets
/
{symbol}
/
prices
/
latest
Get Current Price for an Asset
curl --request GET \
--url https://api.gm.ondo.finance/v1/assets/{symbol}/prices/latest \
--header 'x-api-key: <api-key>'import requests
url = "https://api.gm.ondo.finance/v1/assets/{symbol}/prices/latest"
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://api.gm.ondo.finance/v1/assets/{symbol}/prices/latest', 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.gm.ondo.finance/v1/assets/{symbol}/prices/latest",
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://api.gm.ondo.finance/v1/assets/{symbol}/prices/latest"
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://api.gm.ondo.finance/v1/assets/{symbol}/prices/latest")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.gm.ondo.finance/v1/assets/{symbol}/prices/latest")
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{
"primaryMarket": {
"symbol": "AAPLon",
"price": "12.345"
},
"underlyingMarket": {
"ticker": "AAPL",
"price": "12.345"
},
"timestamp": 1746655938
}{
"code": "INVALID_SYMBOL",
"message": "invalid symbol; must be at least 3 characters long and end with 'on'",
"documentation": "https://docs.ondo.finance/api-reference/error-codes#invalid_symbol"
}{
"code": "MISSING_API_KEY",
"message": "missing API key",
"documentation": "https://docs.ondo.finance/api-reference/error-codes#missing_api_key"
}{
"code": "ASSET_NOT_FOUND",
"message": "The provided asset symbol does not exist and cannot be found.",
"documentation": "https://docs.ondo.finance/api-reference/error-codes#asset_not_found"
}{
"code": "RATE_LIMITED",
"message": "rate limit exceeded",
"documentation": "https://docs.ondo.finance/api-reference/error-codes#rate_limited"
}{
"code": "INTERNAL_ERROR",
"message": "An internal server error occurred. Please see the returned message and documentation for details.",
"documentation": "https://docs.ondo.finance/api-reference/error-codes#internal_error"
}Authorizations
Path Parameters
The GM token symbol

