curl --request GET \
--url https://calibri.io/api/v2/atlas/public/ratesimport requests
url = "https://calibri.io/api/v2/atlas/public/rates"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://calibri.io/api/v2/atlas/public/rates', 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://calibri.io/api/v2/atlas/public/rates",
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://calibri.io/api/v2/atlas/public/rates"
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://calibri.io/api/v2/atlas/public/rates")
.asString();require 'uri'
require 'net/http'
url = URI("https://calibri.io/api/v2/atlas/public/rates")
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{
"base": "usd",
"rates": {
"eur": 0.85885,
"gbp": 0.736155,
"zar": 16.00105
},
"ttl_seconds": 300,
"updated_at": "2026-08-28T12:12:03.972Z"
}Reference exchange rates
USD-based reference rates, refreshed from a price provider on our own clock. DISPLAY ONLY: every market is priced, collateralised and settled in USDC, and an order signature commits to a USDC amount — these decide what number is shown beside it and nothing else. Served from memory, so poll no faster than ttl_seconds.
curl --request GET \
--url https://calibri.io/api/v2/atlas/public/ratesimport requests
url = "https://calibri.io/api/v2/atlas/public/rates"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://calibri.io/api/v2/atlas/public/rates', 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://calibri.io/api/v2/atlas/public/rates",
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://calibri.io/api/v2/atlas/public/rates"
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://calibri.io/api/v2/atlas/public/rates")
.asString();require 'uri'
require 'net/http'
url = URI("https://calibri.io/api/v2/atlas/public/rates")
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{
"base": "usd",
"rates": {
"eur": 0.85885,
"gbp": 0.736155,
"zar": 16.00105
},
"ttl_seconds": 300,
"updated_at": "2026-08-28T12:12:03.972Z"
}Response
The currency the rates are quoted against. Always usd; USDC is pegged to it.
"usd"
How many units of each currency one unit of base buys. DISPLAY ONLY: every market is priced, collateralised and settled in USDC, and an order signature commits to a USDC amount — these decide what number is printed beside it and nothing else. The base and the stablecoins pegged to it are omitted (they quote at 1.00).
Show child attributes
Show child attributes
{
"eur": 0.85885,
"gbp": 0.736155,
"zar": 16.00105
}
How long this response stays current. Poll no faster than this; a shorter interval returns the same body.
300
When the provider struck these prices — not when we fetched them. ISO-8601.
"2026-08-28T12:12:03.972Z"