cURL
curl "https://api.ornnai.com/api/gpu/H100%20SXM/index-history?startDate=2026-05-01&endDate=2026-05-31"import requests
resp = requests.get(
"https://api.ornnai.com/api/gpu/H100 SXM/index-history",
params={"startDate": "2026-05-01", "endDate": "2026-05-31"},
)
const res = await fetch(
"https://api.ornnai.com/api/gpu/H100 SXM/index-history?startDate=2026-05-01&endDate=2026-05-31",
);
const data = await res.json();
<?php
$url = "https://api.ornnai.com/api/gpu/" . rawurlencode("H100 SXM")
. "/index-history?startDate=2026-05-01&endDate=2026-05-31";
$ch = curl_init($url);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
]);
$data = json_decode(curl_exec($ch), true);
package main
import (
"io"
"net/http"
"net/url"
)
func main() {
endpoint := "https://api.ornnai.com/api/gpu/" + url.PathEscape("H100 SXM") +
"/index-history?startDate=2026-05-01&endDate=2026-05-31"
req, _ := http.NewRequest("GET", endpoint, 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/gpu/H100%20SXM/index-history?startDate=2026-05-01&endDate=2026-05-31"))
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
require "net/http"
require "json"
uri = URI("https://api.ornnai.com/api/gpu/H100%20SXM/index-history?startDate=2026-05-01&endDate=2026-05-31")
res = Net::HTTP.get_response(uri)
data = JSON.parse(res.body)
{
"success": true,
"gpu_type": "H100 SXM",
"access": "public-3mo",
"data": [
{
"timestamp": "2026-01-01T00:00:00.000Z",
"index_value": 2
},
{
"timestamp": "2026-01-02T00:00:00.000Z",
"index_value": 2
}
]
}{
"error": "Bad request",
"message": "Invalid GPU type. Allowed: H100 SXM, H200, A100 SXM4, RTX 5090, B200, RTX PRO 6000 WS"
}Get a public daily series
Daily index series for a public GPU. Without a key, the free tier covers 5 GPUs — H100 SXM, H200, B200, A100 SXM4, RTX 5090 — for the trailing 3 months (the same window charted for free on index.ornn.com); any other GPU (e.g. RTX PRO 6000 WS) requires a key. Pass your API key to unlock the full history back to the earliest available data. The response includes access: "public-3mo" | "premium" | "full". Rate-limited per IP for anonymous callers.
GET
/
api
/
gpu
/
{gpuName}
/
index-history
cURL
curl "https://api.ornnai.com/api/gpu/H100%20SXM/index-history?startDate=2026-05-01&endDate=2026-05-31"import requests
resp = requests.get(
"https://api.ornnai.com/api/gpu/H100 SXM/index-history",
params={"startDate": "2026-05-01", "endDate": "2026-05-31"},
)
const res = await fetch(
"https://api.ornnai.com/api/gpu/H100 SXM/index-history?startDate=2026-05-01&endDate=2026-05-31",
);
const data = await res.json();
<?php
$url = "https://api.ornnai.com/api/gpu/" . rawurlencode("H100 SXM")
. "/index-history?startDate=2026-05-01&endDate=2026-05-31";
$ch = curl_init($url);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
]);
$data = json_decode(curl_exec($ch), true);
package main
import (
"io"
"net/http"
"net/url"
)
func main() {
endpoint := "https://api.ornnai.com/api/gpu/" + url.PathEscape("H100 SXM") +
"/index-history?startDate=2026-05-01&endDate=2026-05-31"
req, _ := http.NewRequest("GET", endpoint, 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/gpu/H100%20SXM/index-history?startDate=2026-05-01&endDate=2026-05-31"))
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
require "net/http"
require "json"
uri = URI("https://api.ornnai.com/api/gpu/H100%20SXM/index-history?startDate=2026-05-01&endDate=2026-05-31")
res = Net::HTTP.get_response(uri)
data = JSON.parse(res.body)
{
"success": true,
"gpu_type": "H100 SXM",
"access": "public-3mo",
"data": [
{
"timestamp": "2026-01-01T00:00:00.000Z",
"index_value": 2
},
{
"timestamp": "2026-01-02T00:00:00.000Z",
"index_value": 2
}
]
}{
"error": "Bad request",
"message": "Invalid GPU type. Allowed: H100 SXM, H200, A100 SXM4, RTX 5090, B200, RTX PRO 6000 WS"
}Overview
Daily index series for a public GPU. Without a key, the free tier covers 5 GPUs -H100 SXM, H200, B200, A100 SXM4, RTX 5090 - for the trailing 3 months (the same window charted for free on index.ornn.com); any other GPU (e.g. RTX PRO 6000 WS) requires a key. Pass your API key to unlock the full history back to the earliest available data. The response includes access: "public-3mo" | "premium" | "full". Rate-limited per IP for anonymous callers.Path Parameters
A supported GPU model. URL-encode spaces.
Available options:
H100 SXM, H200, A100 SXM4, B200, RTX 5090, RTX PRO 6000 WS Example:
"H100 SXM"
Query Parameters
ISO 8601. Anonymous callers are clamped to 3 months ago; an API key lets startDate reach as far back as data exists.
Example:
"2026-05-01"
ISO 8601. Defaults to now.
Example:
"2026-05-31"
Response
Daily series.

