curl "https://api.ornnai.com/api/workload?lab=anthropic" \
-H "Authorization: Bearer YOUR_API_KEY"import requests
rows = requests.get(
"https://api.ornnai.com/api/workload",
params={"lab": "anthropic"},
headers={"Authorization": "Bearer YOUR_API_KEY"},
).json()["data"]
for r in rows:
print(r["date"], r["lab"], r["family"], r["cCents"], r["lfl"])
const res = await fetch(
"https://api.ornnai.com/api/workload?lab=anthropic",
{ headers: { Authorization: "Bearer YOUR_API_KEY" } },
);
const { data } = await res.json();
<?php
$ch = curl_init("https://api.ornnai.com/api/workload?lab=anthropic");
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ["Authorization: Bearer YOUR_API_KEY"],
]);
$data = json_decode(curl_exec($ch), true);
package main
import (
"io"
"net/http"
)
func main() {
endpoint := "https://api.ornnai.com/api/workload?lab=anthropic"
req, _ := http.NewRequest("GET", endpoint, nil)
req.Header.Set("Authorization", "Bearer YOUR_API_KEY")
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/workload?lab=anthropic"))
.header("Authorization", "Bearer YOUR_API_KEY")
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
require "net/http"
require "json"
uri = URI("https://api.ornnai.com/api/workload?lab=anthropic")
req = Net::HTTP::Get.new(uri)
req["Authorization"] = "Bearer YOUR_API_KEY"
res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }
data = JSON.parse(res.body)
{
"success": true,
"count": 3,
"startDate": "2026-07-13",
"endDate": "2026-07-13",
"data": [
{
"date": "2026-07-13",
"lab": "anthropic",
"family": "all",
"cCents": 4.82,
"lfl": 96.4,
"qKtok": 1.82,
"priceEffect": 0.4,
"intensityEffect": -1.1,
"mixEffect": 0.2,
"computedAt": "2026-07-14T00:00:00.000Z"
},
{
"date": "2026-07-13",
"lab": "openai",
"family": "all",
"cCents": 3.11,
"lfl": 91.7,
"qKtok": 1.44,
"priceEffect": -0.7,
"intensityEffect": 0.3,
"mixEffect": 0.1,
"computedAt": "2026-07-14T00:00:00.000Z"
},
{
"date": "2026-07-13",
"lab": "google",
"family": "all",
"cCents": 1.94,
"lfl": 88.2,
"qKtok": 1.61,
"priceEffect": 0.2,
"intensityEffect": -0.4,
"mixEffect": null,
"computedAt": "2026-07-14T00:00:00.000Z"
}
]
}{
"error": "Bad request",
"message": "Invalid GPU type. Allowed: H100 SXM, H200, A100 SXM4, RTX 5090, B200, RTX PRO 6000 WS"
}{
"error": "Unauthorized",
"message": "API key required. Use Authorization: Bearer YOUR_API_KEY"
}{
"error": "No data available",
"message": "No daily index data found for H100 SXM"
}Get the Workload Cost Index by provider
The Workload Cost Index: daily settled cents per request, a mix-purged like-for-like index, and tokens per request for each closed-lab provider (anthropic, openai, google). Floats are rounded on the wire: cCents, qKtok, priceEffect, intensityEffect, and mixEffect to 6 decimal places, lfl to 4. With no startDate or endDate this returns the entire settled history for every provider and model family, so pass a range unless you actually want the full series - the unfiltered payload grows with every settlement day. Use lab to filter to a single provider. Requires an API key - unlike the GPU and token indices, the Workload Cost Index has no free tier.
curl "https://api.ornnai.com/api/workload?lab=anthropic" \
-H "Authorization: Bearer YOUR_API_KEY"import requests
rows = requests.get(
"https://api.ornnai.com/api/workload",
params={"lab": "anthropic"},
headers={"Authorization": "Bearer YOUR_API_KEY"},
).json()["data"]
for r in rows:
print(r["date"], r["lab"], r["family"], r["cCents"], r["lfl"])
const res = await fetch(
"https://api.ornnai.com/api/workload?lab=anthropic",
{ headers: { Authorization: "Bearer YOUR_API_KEY" } },
);
const { data } = await res.json();
<?php
$ch = curl_init("https://api.ornnai.com/api/workload?lab=anthropic");
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ["Authorization: Bearer YOUR_API_KEY"],
]);
$data = json_decode(curl_exec($ch), true);
package main
import (
"io"
"net/http"
)
func main() {
endpoint := "https://api.ornnai.com/api/workload?lab=anthropic"
req, _ := http.NewRequest("GET", endpoint, nil)
req.Header.Set("Authorization", "Bearer YOUR_API_KEY")
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/workload?lab=anthropic"))
.header("Authorization", "Bearer YOUR_API_KEY")
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
require "net/http"
require "json"
uri = URI("https://api.ornnai.com/api/workload?lab=anthropic")
req = Net::HTTP::Get.new(uri)
req["Authorization"] = "Bearer YOUR_API_KEY"
res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }
data = JSON.parse(res.body)
{
"success": true,
"count": 3,
"startDate": "2026-07-13",
"endDate": "2026-07-13",
"data": [
{
"date": "2026-07-13",
"lab": "anthropic",
"family": "all",
"cCents": 4.82,
"lfl": 96.4,
"qKtok": 1.82,
"priceEffect": 0.4,
"intensityEffect": -1.1,
"mixEffect": 0.2,
"computedAt": "2026-07-14T00:00:00.000Z"
},
{
"date": "2026-07-13",
"lab": "openai",
"family": "all",
"cCents": 3.11,
"lfl": 91.7,
"qKtok": 1.44,
"priceEffect": -0.7,
"intensityEffect": 0.3,
"mixEffect": 0.1,
"computedAt": "2026-07-14T00:00:00.000Z"
},
{
"date": "2026-07-13",
"lab": "google",
"family": "all",
"cCents": 1.94,
"lfl": 88.2,
"qKtok": 1.61,
"priceEffect": 0.2,
"intensityEffect": -0.4,
"mixEffect": null,
"computedAt": "2026-07-14T00:00:00.000Z"
}
]
}{
"error": "Bad request",
"message": "Invalid GPU type. Allowed: H100 SXM, H200, A100 SXM4, RTX 5090, B200, RTX PRO 6000 WS"
}{
"error": "Unauthorized",
"message": "API key required. Use Authorization: Bearer YOUR_API_KEY"
}{
"error": "No data available",
"message": "No daily index data found for H100 SXM"
}Overview
The Workload Cost Index: daily settled cents per request, a mix-purged like-for-like index, and tokens per request for each closed-lab provider (anthropic, openai, google). Floats are rounded on the wire: cCents, qKtok, priceEffect, intensityEffect, and mixEffect to 6 decimal places, lfl to 4. With no startDate or endDate this returns the entire settled history for every provider and model family, so pass a range unless you actually want the full series - the unfiltered payload grows with every settlement day. Use lab to filter to a single provider. Requires an API key - unlike the GPU and token indices, the Workload Cost Index has no free tier.Authorizations
API key passed as a Bearer token. Create one in the dashboard.
Query Parameters
Inclusive start of a settlement-date range in YYYY-MM-DD. Use with endDate to pull a history window.
"2026-06-11"
Inclusive end of a settlement-date range in YYYY-MM-DD. Use with startDate to pull a history window.
"2026-07-13"
Filter to a single provider.
anthropic, openai, google Response
Daily Workload Cost Index rows for the requested provider(s) and window.

