cURL
curl "https://api.ornnai.com/api/gpu/H100%20SXM/volatility?startDate=2026-03-01&endDate=2026-05-31" \
-H "Authorization: Bearer YOUR_API_KEY"
import requests
resp = requests.get(
"https://api.ornnai.com/api/gpu/H100 SXM/volatility",
params={"startDate": "2026-03-01", "endDate": "2026-05-31", "windowDays": 30},
headers={"Authorization": "Bearer YOUR_API_KEY"},
)
data = resp.json()
const res = await fetch(
"https://api.ornnai.com/api/gpu/H100 SXM/volatility?startDate=2026-03-01&endDate=2026-05-31",
{ headers: { Authorization: "Bearer YOUR_API_KEY" } },
);
const data = await res.json();
<?php
$ch = curl_init("https://api.ornnai.com/api/gpu/" . rawurlencode("H100 SXM") . "/volatility?startDate=2026-03-01&endDate=2026-05-31");
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"
"net/url"
)
func main() {
endpoint := "https://api.ornnai.com/api/gpu/" + url.PathEscape("H100 SXM") + "/volatility?startDate=2026-03-01&endDate=2026-05-31"
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/gpu/H100%20SXM/volatility?startDate=2026-03-01&endDate=2026-05-31"))
.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/gpu/H100%20SXM/volatility?startDate=2026-03-01&endDate=2026-05-31")
req = Net::HTTP::Get.new(uri)
req["Authorization"] = "Bearer YOUR_API_KEY"
res = Net::HTTP.start(uri.host, uri.port, use_ssl: true) { |http| http.request(req) }
data = JSON.parse(res.body)
{
"success": true,
"query": {
"gpu_name": "H100 SXM",
"region": "",
"start_date": "2026-01-01T00:00:00.000Z",
"end_date": "2026-01-31T00:00:00.000Z",
"records_found": 91,
"window_days": 30,
"data_granularity": "daily"
},
"data": [
{
"recorded_at": "2026-01-01T00:00:00.000Z",
"gpu_type": "H100 SXM",
"region": "global",
"index_value": 2,
"rolling_volatility": 0.2,
"window_days": 30
}
]
}{
"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"
}Get annualized price volatility
Standard deviation of daily log returns over a rolling window, annualized. Results are most-recent-first.
GET
/
api
/
gpu
/
{gpuName}
/
volatility
cURL
curl "https://api.ornnai.com/api/gpu/H100%20SXM/volatility?startDate=2026-03-01&endDate=2026-05-31" \
-H "Authorization: Bearer YOUR_API_KEY"
import requests
resp = requests.get(
"https://api.ornnai.com/api/gpu/H100 SXM/volatility",
params={"startDate": "2026-03-01", "endDate": "2026-05-31", "windowDays": 30},
headers={"Authorization": "Bearer YOUR_API_KEY"},
)
data = resp.json()
const res = await fetch(
"https://api.ornnai.com/api/gpu/H100 SXM/volatility?startDate=2026-03-01&endDate=2026-05-31",
{ headers: { Authorization: "Bearer YOUR_API_KEY" } },
);
const data = await res.json();
<?php
$ch = curl_init("https://api.ornnai.com/api/gpu/" . rawurlencode("H100 SXM") . "/volatility?startDate=2026-03-01&endDate=2026-05-31");
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"
"net/url"
)
func main() {
endpoint := "https://api.ornnai.com/api/gpu/" + url.PathEscape("H100 SXM") + "/volatility?startDate=2026-03-01&endDate=2026-05-31"
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/gpu/H100%20SXM/volatility?startDate=2026-03-01&endDate=2026-05-31"))
.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/gpu/H100%20SXM/volatility?startDate=2026-03-01&endDate=2026-05-31")
req = Net::HTTP::Get.new(uri)
req["Authorization"] = "Bearer YOUR_API_KEY"
res = Net::HTTP.start(uri.host, uri.port, use_ssl: true) { |http| http.request(req) }
data = JSON.parse(res.body)
{
"success": true,
"query": {
"gpu_name": "H100 SXM",
"region": "",
"start_date": "2026-01-01T00:00:00.000Z",
"end_date": "2026-01-31T00:00:00.000Z",
"records_found": 91,
"window_days": 30,
"data_granularity": "daily"
},
"data": [
{
"recorded_at": "2026-01-01T00:00:00.000Z",
"gpu_type": "H100 SXM",
"region": "global",
"index_value": 2,
"rolling_volatility": 0.2,
"window_days": 30
}
]
}{
"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"
}Overview
Standard deviation of daily log returns over a rolling window, annualized. Results are most-recent-first.Authorizations
API key passed as a Bearer token. Create one in the dashboard.
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
Example:
"2026-03-01"
Example:
"2026-05-31"
Rolling window size, 1-365.
Response
Volatility series.
⌘I

