cURL
curl "https://api.ornnai.com/api/token-types"import requests
labs = requests.get("https://api.ornnai.com/api/token-types").json()["data"]
const res = await fetch("https://api.ornnai.com/api/token-types");
const { data } = await res.json();
<?php
$ch = curl_init("https://api.ornnai.com/api/token-types");
curl_setopt_array($ch, [CURLOPT_RETURNTRANSFER => true]);
$data = json_decode(curl_exec($ch), true);
package main
import (
"io"
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "https://api.ornnai.com/api/token-types", nil)
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
_ = body
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder(
URI.create("https://api.ornnai.com/api/token-types"))
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
require "net/http"
require "json"
uri = URI("https://api.ornnai.com/api/token-types")
res = Net::HTTP.get_response(uri)
data = JSON.parse(res.body)
{
"success": true,
"data": [
{
"lab": "anthropic",
"label": "Anthropic"
},
{
"lab": "openai",
"label": "OpenAI"
},
{
"lab": "google",
"label": "Google"
},
{
"lab": "deepseek",
"label": "DeepSeek"
},
{
"lab": "minimax",
"label": "MiniMax"
},
{
"lab": "xiaomi",
"label": "Xiaomi"
},
{
"lab": "qwen",
"label": "Qwen"
},
{
"lab": "moonshotai",
"label": "Moonshot AI"
},
{
"lab": "z-ai",
"label": "Z.ai"
},
{
"lab": "mistralai",
"label": "Mistral AI"
},
{
"lab": "meta-llama",
"label": "Meta Llama"
}
]
}List tracked OTPI labs
Returns every lab published by the Ornn Token Price Index (OTPI) as { lab, label } pairs. Use this as the source of truth for valid lab values on /api/otpi and /api/workload instead of hard-coding them or discovering them from 400 errors.
GET
/
api
/
token-types
cURL
curl "https://api.ornnai.com/api/token-types"import requests
labs = requests.get("https://api.ornnai.com/api/token-types").json()["data"]
const res = await fetch("https://api.ornnai.com/api/token-types");
const { data } = await res.json();
<?php
$ch = curl_init("https://api.ornnai.com/api/token-types");
curl_setopt_array($ch, [CURLOPT_RETURNTRANSFER => true]);
$data = json_decode(curl_exec($ch), true);
package main
import (
"io"
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "https://api.ornnai.com/api/token-types", nil)
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
_ = body
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder(
URI.create("https://api.ornnai.com/api/token-types"))
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
require "net/http"
require "json"
uri = URI("https://api.ornnai.com/api/token-types")
res = Net::HTTP.get_response(uri)
data = JSON.parse(res.body)
{
"success": true,
"data": [
{
"lab": "anthropic",
"label": "Anthropic"
},
{
"lab": "openai",
"label": "OpenAI"
},
{
"lab": "google",
"label": "Google"
},
{
"lab": "deepseek",
"label": "DeepSeek"
},
{
"lab": "minimax",
"label": "MiniMax"
},
{
"lab": "xiaomi",
"label": "Xiaomi"
},
{
"lab": "qwen",
"label": "Qwen"
},
{
"lab": "moonshotai",
"label": "Moonshot AI"
},
{
"lab": "z-ai",
"label": "Z.ai"
},
{
"lab": "mistralai",
"label": "Mistral AI"
},
{
"lab": "meta-llama",
"label": "Meta Llama"
}
]
}Overview
Returns every lab published by the Ornn Token Price Index (OTPI) as{ lab, label } pairs. Use this as the source of truth for valid lab values on /api/otpi and /api/workload instead of hard-coding them or discovering them from 400 errors.Response
200 - application/json
All OTPI labs.
⌘I

