Service
Service index
Every endpoint on this version, the free-tier limits, and your key’s own limits and remaining quota in one call.
Use it as a health check and as the authoritative answer to “how much do I have left”. The quota figures in key are read, not spent: this call costs one request like any other, and the numbers it reports are the ones remaining after it.
Read key rather than limits whenever the two disagree. limits describes the free tier; key describes you.
GET
/
v1
curl
curl -s "https://api.beliefsystems.xyz/v1" \
-H "Authorization: Bearer $BELIEF_API_KEY"import os
import requests
resp = requests.get(
"https://api.beliefsystems.xyz/v1",
headers={"Authorization": f"Bearer {os.environ['BELIEF_API_KEY']}"},
timeout=10,
)
resp.raise_for_status()
payload = resp.json()
print(payload["data"])const res = await fetch("https://api.beliefsystems.xyz/v1", {
headers: { Authorization: `Bearer ${process.env.BELIEF_API_KEY}` },
});
if (!res.ok) throw new Error(`Belief Systems API ${res.status}`);
const { data, meta } = await res.json();
console.log(data);<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.beliefsystems.xyz/v1",
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://api.beliefsystems.xyz/v1"
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://api.beliefsystems.xyz/v1")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.beliefsystems.xyz/v1")
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{
"data": {
"docsUrl": "https://docs.beliefsystems.xyz/api-reference/introduction",
"endpoints": [
{
"description": "Service index: endpoints, limits, and your remaining quota",
"path": "/v1"
},
{
"description": "The published index catalog with staleness labels",
"path": "/v1/indices"
},
{
"description": "Current level, not delayed",
"path": "/v1/indices/{ticker}/latest"
},
{
"description": "Level history at 1h or 1d",
"path": "/v1/indices/{ticker}/history"
},
{
"description": "Completed composition changes",
"path": "/v1/indices/{ticker}/reconstitutions"
},
{
"description": "The Belief Volatility catalog",
"path": "/v1/volatility"
},
{
"description": "Latest published volatility reading",
"path": "/v1/volatility/{ticker}/latest"
},
{
"description": "Volatility history",
"path": "/v1/volatility/{ticker}/history"
},
{
"description": "Pointers to the free point-in-time snapshots",
"path": "/v1/downloads"
}
],
"key": {
"limitDay": 2000,
"limitMinute": 60,
"prefix": "belief_live_a1b2c3d4",
"remainingDay": 1873,
"remainingMinute": 59
},
"limits": {
"historyMaxDays": 90,
"intervals": [
"1h",
"1d"
],
"requestsPerDay": 2000,
"requestsPerMinute": 60
},
"version": "v1"
},
"meta": {
"attribution": "Source: Belief Systems (beliefsystems.xyz)",
"generatedAt": "2026-08-31T14:01:22.277647Z",
"license": "https://beliefsystems.xyz/license",
"termsUrl": "https://beliefsystems.xyz/terms"
}
}{
"error": {
"code": "invalid_api_key",
"docsUrl": "https://docs.beliefsystems.xyz/api-reference/limits#invalid-api-key",
"message": "This endpoint requires a Data API key. Create one free at https://beliefsystems.xyz/data ; programmatic or commercial licensing is at https://beliefsystems.xyz/license.",
"requestId": "9f2c1ad4e6b74c0f8a3d5e1b7c904a26"
}
}{
"error": {
"code": "rate_limited",
"docsUrl": "https://docs.beliefsystems.xyz/api-reference/limits#rate-limited",
"message": "Rate limit exceeded: 60 requests per minute per key.",
"requestId": "9f2c1ad4e6b74c0f8a3d5e1b7c904a26"
}
}{
"error": {
"code": "invalid_api_key",
"docsUrl": "<string>",
"message": "<string>",
"requestId": "<string>"
}
}Authorizations
bearerAuthapiKeyAuth
Your Data API key as a Bearer token: Authorization: Bearer belief_live_.... This is the canonical form. Keys belong on a server, never in a browser.
⌘I
curl
curl -s "https://api.beliefsystems.xyz/v1" \
-H "Authorization: Bearer $BELIEF_API_KEY"import os
import requests
resp = requests.get(
"https://api.beliefsystems.xyz/v1",
headers={"Authorization": f"Bearer {os.environ['BELIEF_API_KEY']}"},
timeout=10,
)
resp.raise_for_status()
payload = resp.json()
print(payload["data"])const res = await fetch("https://api.beliefsystems.xyz/v1", {
headers: { Authorization: `Bearer ${process.env.BELIEF_API_KEY}` },
});
if (!res.ok) throw new Error(`Belief Systems API ${res.status}`);
const { data, meta } = await res.json();
console.log(data);<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.beliefsystems.xyz/v1",
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://api.beliefsystems.xyz/v1"
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://api.beliefsystems.xyz/v1")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.beliefsystems.xyz/v1")
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{
"data": {
"docsUrl": "https://docs.beliefsystems.xyz/api-reference/introduction",
"endpoints": [
{
"description": "Service index: endpoints, limits, and your remaining quota",
"path": "/v1"
},
{
"description": "The published index catalog with staleness labels",
"path": "/v1/indices"
},
{
"description": "Current level, not delayed",
"path": "/v1/indices/{ticker}/latest"
},
{
"description": "Level history at 1h or 1d",
"path": "/v1/indices/{ticker}/history"
},
{
"description": "Completed composition changes",
"path": "/v1/indices/{ticker}/reconstitutions"
},
{
"description": "The Belief Volatility catalog",
"path": "/v1/volatility"
},
{
"description": "Latest published volatility reading",
"path": "/v1/volatility/{ticker}/latest"
},
{
"description": "Volatility history",
"path": "/v1/volatility/{ticker}/history"
},
{
"description": "Pointers to the free point-in-time snapshots",
"path": "/v1/downloads"
}
],
"key": {
"limitDay": 2000,
"limitMinute": 60,
"prefix": "belief_live_a1b2c3d4",
"remainingDay": 1873,
"remainingMinute": 59
},
"limits": {
"historyMaxDays": 90,
"intervals": [
"1h",
"1d"
],
"requestsPerDay": 2000,
"requestsPerMinute": 60
},
"version": "v1"
},
"meta": {
"attribution": "Source: Belief Systems (beliefsystems.xyz)",
"generatedAt": "2026-08-31T14:01:22.277647Z",
"license": "https://beliefsystems.xyz/license",
"termsUrl": "https://beliefsystems.xyz/terms"
}
}{
"error": {
"code": "invalid_api_key",
"docsUrl": "https://docs.beliefsystems.xyz/api-reference/limits#invalid-api-key",
"message": "This endpoint requires a Data API key. Create one free at https://beliefsystems.xyz/data ; programmatic or commercial licensing is at https://beliefsystems.xyz/license.",
"requestId": "9f2c1ad4e6b74c0f8a3d5e1b7c904a26"
}
}{
"error": {
"code": "rate_limited",
"docsUrl": "https://docs.beliefsystems.xyz/api-reference/limits#rate-limited",
"message": "Rate limit exceeded: 60 requests per minute per key.",
"requestId": "9f2c1ad4e6b74c0f8a3d5e1b7c904a26"
}
}{
"error": {
"code": "invalid_api_key",
"docsUrl": "<string>",
"message": "<string>",
"requestId": "<string>"
}
}