Docs
19:16 UTC | 19:16 UTCPower your products with real-time GPU compute pricing and memory spot price data. Access the Ornn GPU Price Index and Memory Pricing through our simple REST API.
curl "https://api.ornnai.com/api/daily-index-simple" \
-H "Authorization: Bearer YOUR_API_KEY"Authentication
All API requests require authentication using a Bearer token in the Authorization header.
Authorization: Bearer YOUR_API_KEYGetting an API Key
- Sign up or log in to your Ornn account
- Navigate to the Data page
- Click "Create New Key" in the API Keys section
- Copy and securely store your API key
Quick Start
Make your first API call in under a minute.
1. Get Your API Key
Create an API key from the data dashboard.
2. Make Your First Request
curl "https://api.ornnai.com/api/daily-index-simple" \
-H "Authorization: Bearer YOUR_API_KEY"3. Parse the Response
{
"success": true,
"data": {
"gpu_type": "H100 SXM",
"index_value": 1.66,
"date": "2026-02-26"
}
}API Reference
/healthNo AuthCheck API availability and database connectivity. No authentication required.
Response
{
"status": "healthy",
"timestamp": "2024-12-11T18:04:42.484Z",
"database": "connected"
}/api/gpu-typesRetrieve a list of all GPU types currently tracked by Ornn Data.
Response
{
"success": true,
"data": [
{"gpu_name": "A100 SXM4", "region": ""},
{"gpu_name": "B200", "region": ""},
{"gpu_name": "H100 SXM", "region": ""},
{"gpu_name": "H200", "region": ""},
{"gpu_name": "RTX 5090", "region": ""},
{"gpu_name": "RTX PRO 6000 WS", "region": ""}
]
}/api/daily-index-simpleGet the latest daily index value. Returns only gpu_type, index_value, and date. Query for a specific GPU or get all GPUs at once.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| gpuType | string | No | GPU model name. If not specified, returns all GPUs. |
Example Request
# Get specific GPU
curl "https://api.ornnai.com/api/daily-index-simple?gpuType=H100%20SXM" \
-H "Authorization: Bearer YOUR_API_KEY"
# Get all GPUs
curl "https://api.ornnai.com/api/daily-index-simple" \
-H "Authorization: Bearer YOUR_API_KEY"Response (Single GPU)
{
"success": true,
"data": {
"gpu_type": "H100 SXM",
"index_value": 1.89,
"date": "2024-12-11"
}
}Response (All GPUs)
{
"success": true,
"date": "2026-02-26",
"data": [
{ "gpu_type": "A100 SXM4", "index_value": 0.833, "date": "2026-02-26" },
{ "gpu_type": "B200", "index_value": 3.001, "date": "2026-02-26" },
{ "gpu_type": "H100 SXM", "index_value": 1.657, "date": "2026-02-26" },
{ "gpu_type": "H200", "index_value": 2.282, "date": "2026-02-26" },
{ "gpu_type": "RTX 5090", "index_value": 0.476, "date": "2026-02-26" },
{ "gpu_type": "RTX PRO 6000 WS", "index_value": 0.89, "date": "2026-02-26" }
],
"count": 6
}/api/gpu/:gpuName/history-simpleRetrieve historical GPU price index values.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| gpuName | string | Yes | GPU model name (path parameter, URL encoded) |
| startDate | string | Yes | Start date (YYYY-MM-DD or ISO 8601) |
| endDate | string | Yes | End date (YYYY-MM-DD or ISO 8601) |
| region | string | No | Region name (default: "") |
| limit | number | No | Maximum records to return (default: 100, max: 1000) |
Example Request
curl "https://api.ornnai.com/api/gpu/H100%20SXM/history-simple?startDate=2024-11-14&endDate=2024-11-21&granularity=daily" \
-H "Authorization: Bearer YOUR_API_KEY"Response
{
"success": true,
"query": {
"gpu_name": "H100 SXM",
"start_date": "2024-11-14T00:00:00.000Z",
"end_date": "2024-11-21T00:00:00.000Z",
"records_found": 7,
"limit_applied": 100
},
"data": [
{
"timestamp": "2024-11-20T21:00:00.000Z",
"index_value": 2.409
},
{
"timestamp": "2024-11-19T21:00:00.000Z",
"index_value": 2.387
}
]
}/api/gpu/:gpuName/volatilityRetrieve rolling volatility of log returns for a GPU over a specified date range. Volatility is calculated as the standard deviation of daily log returns over a rolling window, annualized by multiplying by √365.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| gpuName | string | Yes | GPU model name (path parameter, URL encoded) |
| startDate | string | Yes | Start date (YYYY-MM-DD or ISO 8601) |
| endDate | string | Yes | End date (YYYY-MM-DD or ISO 8601) |
| region | string | No | Region name (default: "") |
| windowDays | number | No | Rolling window size in days (default: 30, range: 1-365) |
Example Request
curl "https://api.ornnai.com/api/gpu/H100%20SXM/volatility?startDate=2024-01-01&endDate=2024-12-31&windowDays=30" \
-H "Authorization: Bearer YOUR_API_KEY"Response
{
"success": true,
"query": {
"gpu_name": "H100 SXM",
"region": "",
"start_date": "2024-01-01T00:00:00.000Z",
"end_date": "2024-12-31T00:00:00.000Z",
"records_found": 365,
"window_days": 30,
"data_granularity": "daily"
},
"data": [
{
"recorded_at": "2024-12-31T20:00:00.000Z",
"exact_timestamp": "2024-12-31T20:00:00.000Z",
"gpu_type": "H100 SXM",
"region": "global",
"index_value": 4.7,
"rolling_volatility": 0.15,
"window_days": 30
},
{
"recorded_at": "2024-12-30T20:00:00.000Z",
"exact_timestamp": "2024-12-30T20:00:00.000Z",
"gpu_type": "H100 SXM",
"region": "global",
"index_value": 4.72,
"rolling_volatility": 0.14,
"window_days": 30
}
]
}/api/gpu/:gpuName/volume-metricsRetrieve historical GPU utilization ratios. Utilization ratio represents the percentage of GPUs that are currently rented (rented_quantity / (rented_quantity + available_quantity)).
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| gpuName | string | Yes | GPU model name (path parameter, URL encoded) |
| startDate | string | Yes | Start date (YYYY-MM-DD or ISO 8601) |
| endDate | string | Yes | End date (YYYY-MM-DD or ISO 8601) |
| region | string | No | Region name (default: "") |
| limit | number | No | Maximum records to return (default: 10000) |
Example Request
curl "https://api.ornnai.com/api/gpu/H100%20SXM/volume-metrics?startDate=2024-11-14&endDate=2024-11-21&granularity=daily" \
-H "Authorization: Bearer YOUR_API_KEY"Response
{
"success": true,
"query": {
"gpu_name": "H100 SXM",
"region": "",
"start_date": "2024-11-14T00:00:00.000Z",
"end_date": "2024-11-21T00:00:00.000Z",
"records_found": 8,
"limit_applied": 10000,
"data_granularity": "daily"
},
"data": [
{
"recorded_at": "2024-11-21T00:00:00.000Z",
"exact_timestamp": "2024-11-21T00:00:00.000Z",
"utilization_ratio": 0.71
},
{
"recorded_at": "2024-11-20T00:00:00.000Z",
"exact_timestamp": "2024-11-20T00:00:00.000Z",
"utilization_ratio": 0.68
}
]
}Memory API Reference
Access DRAM, Flash, and Module spot prices from DRAMeXchange. Memory prices are updated daily at 9:00 AM ET.
/api/memory-typesRetrieve a list of all memory types currently tracked, organized by category (dram, flash, module).
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| category | string | No | Filter by category: "dram", "flash", or "module" |
Example Request
curl "https://api.ornnai.com/api/memory-types" \
-H "Authorization: Bearer YOUR_API_KEY"Response
{
"success": true,
"data": [
{ "memory_type": "DDR5 16Gb (2Gx8) 4800/5600", "category": "dram" },
{ "memory_type": "DDR4 16Gb (2Gx8) 3200", "category": "dram" },
{ "memory_type": "MLC 64Gb 8GBx8", "category": "flash" },
{ "memory_type": "SLC 2Gb 256MBx8", "category": "flash" },
{ "memory_type": "DDR5 UDIMM 16GB 4800/5600", "category": "module" },
{ "memory_type": "DDR5 RDIMM 32GB 4800/5600", "category": "module" }
]
}/api/memory-indexGet current spot prices for memory types. Returns the latest daily prices with change percentages and weekly high/low values.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| type | string | No | Specific memory type name (URL encoded) |
| category | string | No | Filter by category: "dram", "flash", or "module" |
Example Request
curl "https://api.ornnai.com/api/memory-index?category=dram" \
-H "Authorization: Bearer YOUR_API_KEY"Response
{
"success": true,
"date": "2026-02-19T00:00:00.000Z",
"data": [
{
"memoryType": "DDR5 16Gb (2Gx8) 4800/5600",
"category": "dram",
"price": 38.067,
"changePct": 0.09,
"weeklyHigh": 53,
"weeklyLow": 25,
"sourceUpdatedAt": "Feb.13 2026 18:10 (GMT+8)",
"date": "2026-02-19T00:00:00.000Z",
"updatedAt": "2026-02-19T14:03:01.304Z"
},
{
"memoryType": "DDR4 16Gb (2Gx8) 3200",
"category": "dram",
"price": 78.409,
"changePct": 0.82,
"weeklyHigh": 91.5,
"weeklyLow": 25,
"sourceUpdatedAt": "Feb.13 2026 18:10 (GMT+8)",
"date": "2026-02-19T00:00:00.000Z",
"updatedAt": "2026-02-19T14:03:01.304Z"
}
],
"count": 7
}/api/memory/:memoryType/historyRetrieve historical price data for a specific memory type. Data is ordered chronologically (oldest first).
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| memoryType | string | Yes | Memory type name (path parameter, URL encoded) |
| startDate | string | No | Start date (YYYY-MM-DD or ISO 8601) |
| endDate | string | No | End date (YYYY-MM-DD or ISO 8601) |
| limit | number | No | Maximum records to return (default: 1000) |
Example Request
curl "https://api.ornnai.com/api/memory/DDR5%2016Gb%20(2Gx8)%204800%2F5600/history?startDate=2026-01-01&endDate=2026-02-19&limit=30" \
-H "Authorization: Bearer YOUR_API_KEY"Response
{
"success": true,
"memoryType": "DDR5 16Gb (2Gx8) 4800/5600",
"count": 3,
"data": [
{
"date": "2026-01-27T00:00:00.000Z",
"memoryType": "DDR5 16Gb (2Gx8) 4800/5600",
"category": "dram",
"price": 36.6,
"weeklyHigh": 55,
"weeklyLow": 26,
"changePct": -0.18,
"sourceUpdatedAt": "Jan.27 2026 18:10 (GMT+8)",
"timestamp": "2026-01-27T14:01:56.839Z"
},
{
"date": "2026-01-28T00:00:00.000Z",
"memoryType": "DDR5 16Gb (2Gx8) 4800/5600",
"category": "dram",
"price": 36.6,
"weeklyHigh": 55,
"weeklyLow": 26,
"changePct": 0,
"sourceUpdatedAt": "Jan.28 2026 18:10 (GMT+8)",
"timestamp": "2026-01-28T14:03:03.538Z"
}
]
}Error Handling
The API uses standard HTTP status codes and returns structured error responses.
| Status | Meaning |
|---|---|
| 200 | Success |
| 400 | Bad Request - Invalid parameters |
| 401 | Unauthorized - Invalid or missing API key |
| 404 | Not Found - GPU or data not available |
| 500 | Internal Server Error |
Error Response Format
{
"error": "Unauthorized",
"message": "Invalid API key"
}Rate Limits
API requests are limited to 10,000 requests per hour per API key.
Best Practices
Store API keys securely
Never commit keys to version control or expose in client-side code
Cache responses
The index updates daily. Cache responses to reduce API calls
Handle errors gracefully
Implement proper error handling and retry logic with exponential backoff
Use appropriate endpoints
Use the daily-index-simple endpoint for current values, historical endpoints for trends
Support
Need help? We're here to assist you.