#Overview
Base URL: https://cryptgpu.com/api/v1. Every endpoint answers GET requests with JSON. Prices are in US dollars per month, prepaid; meta.market_checked is the date of the market check the prices come from.
The API returns the prices published on this website. Placing an order is not possible through the API.
#List GPUs
GET/api/v1/gpusOpen
Returns every GPU model with its specifications, server sizes, price per GPU per month, resources per GPU and market reference.
curl https://cryptgpu.com/api/v1/gpus
Response (first item shown):
{
"meta": {
"api_version": "v1",
"currency": "USD",
"prices": "per month, prepaid",
"market_checked": "2026-09-23"
},
"data": [
{
"id": "b300",
"name": "NVIDIA B300",
"vendor": "NVIDIA",
"architecture": "Blackwell Ultra",
"family": "flagship",
"memory_gb": 288,
"memory_type": "HBM3e",
"memory_bandwidth": "8 TB/s",
"interconnect": "NVLink 5 · 1.8 TB/s",
"precisions": ["FP4", "FP8", "BF16"],
"server_sizes": [1, 2, 4, 8],
"price_per_gpu_month": 4019,
"resources_per_gpu": {
"vcpu": 32,
"ram_gb": 384,
"nvme_tb": 3.84
},
"market": {
"median_per_gpu_month": 5745,
"lowest_per_gpu_month": 4818,
"highest_per_gpu_month": 6278,
"quotes": 8,
"indicative": false
},
"savings_vs_median_pct": 30,
"url": "https://cryptgpu.com/gpus/b300/"
}
]
}
Fields
| Field | Description |
|---|---|
id | Identifier used in URLs and quotes: b300, b200, mi355x, h200, h100, rtx-pro-6000, l40s, rtx-5090, rtx-4090, rtx-5080. |
family | flagship, pro or consumer. |
server_sizes | Numbers of GPUs a server of this model can have. |
price_per_gpu_month | Our price per GPU per month in USD. A server of n GPUs costs n times this price. |
resources_per_gpu | vCPU, DDR5 RAM (GB) and NVMe (TB) that come with each GPU. |
market | Lowest, median and highest on-demand list prices per GPU per month in our market check, the number of quotes, and whether the reference is indicative. |
savings_vs_median_pct | Our price against the market median, in percent. |
#Get a GPU
GET/api/v1/gpus/{id}Open
Returns one GPU, with the same fields as the list. An unknown id returns 404 with the list of valid ids.
curl https://cryptgpu.com/api/v1/gpus/h200
{
"meta": {
"api_version": "v1",
"currency": "USD",
"prices": "per month, prepaid",
"market_checked": "2026-09-23"
},
"data": {
"id": "h200",
"name": "NVIDIA H200",
"vendor": "NVIDIA",
"architecture": "Hopper",
"family": "flagship",
"memory_gb": 141,
"memory_type": "HBM3e",
"memory_bandwidth": "4.8 TB/s",
"interconnect": "NVLink 4 · 900 GB/s",
"precisions": ["FP8", "BF16", "FP64"],
"server_sizes": [1, 2, 4, 8],
"price_per_gpu_month": 2279,
"resources_per_gpu": {
"vcpu": 24,
"ram_gb": 256,
"nvme_tb": 3.84
},
"market": {
"median_per_gpu_month": 3259,
"lowest_per_gpu_month": 2548,
"highest_per_gpu_month": 4606,
"quotes": 12,
"indicative": false
},
"savings_vs_median_pct": 30,
"url": "https://cryptgpu.com/gpus/h200/"
}
}
#Quote a server
GET/api/v1/quote?gpu={id}&n={gpus}Open
Returns the monthly price and resources of a server.
| Parameter | Required | Description |
|---|---|---|
gpu | Yes | A GPU id, for example h200. |
n | No, default 1 | Number of GPUs: 1, 2, 4 or 8 (1, 2 or 4 for GeForce cards). |
curl "https://cryptgpu.com/api/v1/quote?gpu=h200&n=4"
{
"meta": {
"api_version": "v1",
"currency": "USD",
"prices": "per month, prepaid",
"market_checked": "2026-09-23"
},
"data": {
"gpu": "h200",
"gpu_name": "NVIDIA H200",
"gpus": 4,
"currency": "USD",
"price_month": 9116,
"price_per_gpu_month": 2279,
"hourly_equivalent": 12.49,
"market_median_month": 13036,
"savings_month": 3920,
"savings_year": 47040,
"server": {
"gpu_memory_gb": 564,
"vcpu": 96,
"ram_gb": 1024,
"nvme_tb": 15.36,
"interconnect": "NVLink 4 · 900 GB/s"
},
"billing": "monthly, prepaid",
"configure_url": "https://cryptgpu.com/configure/?gpu=h200&n=4"
}
}
In JavaScript:
const res = await fetch('https://cryptgpu.com/api/v1/quote?gpu=h200&n=4');
const { data } = await res.json();
console.log(`${data.gpus}× ${data.gpu_name}: $${data.price_month}/month`);
#Errors
Errors return a JSON body with an error object and the matching HTTP status.
{
"error": {
"status": 400,
"code": "invalid_size",
"message": "The NVIDIA RTX 5090 comes in servers of 1, 2 or 4 GPUs.",
"valid_sizes": [1, 2, 4]
}
}
| Status | Code | When |
|---|---|---|
| 400 | missing_parameter | gpu is missing from a quote. |
| 400 | invalid_size | n is not a server size of that GPU. |
| 404 | gpu_not_found | Unknown GPU id; the response lists valid ids. |
| 404 | not_found | Unknown endpoint. |
| 405 | method_not_allowed | Any method other than GET, HEAD or OPTIONS. |
| 429 | rate_limited | More than 120 requests in a minute; see Retry-After. |
#Rate limits and caching
- Up to 120 requests per minute per IP address. Every response carries
X-RateLimit-LimitandX-RateLimit-Remaining. - Successful responses can be cached for 5 minutes (
Cache-Control: public, max-age=300) and carry anETag: send it back inIf-None-Matchto get a304 Not Modified. - CORS is open (
Access-Control-Allow-Origin: *): you can call the API from a browser. - Prices change only when we publish a new market check. Polling more than once an hour brings nothing new.
#Changelog
v1 — 23 September 2026. First release: /gpus, /gpus/{id} and /quote. New fields may be added to v1 responses; existing fields will not change meaning within v1.
