Cloud GPU Pricing API
Every price on this site is available as free JSON. No API key, no signup: the same live offers we compare, refreshed from each provider's own API on a rolling schedule.
Endpoint
GET https://gpuhour.com/api/v1/offers/
Returns live offers sorted by price, cheapest first, plus a per-provider freshness block so you can tell a live price from one that has been ageing.
Query parameters
| Parameter | Values | Description |
|---|---|---|
gpu |
h100-sxm, rtx-4090, … |
Filter to one GPU model. Slugs are the URL segments on the GPUs page. /gpus/ |
provider |
vast, runpod, … |
Filter to one provider. Slugs are the URL segments on the Providers page. /providers/ |
kind |
ondemand · spot · reserved · all |
Pricing type. Defaults to on-demand. |
limit |
1-500 |
Maximum offers returned. Defaults to 100. |
offset |
0, 100, … |
Number of offers to skip, for paging. Defaults to 0. |
Example
curl "https://gpuhour.com/api/v1/offers/?gpu=h100-sxm&kind=ondemand&limit=2"
{
"count": 2,
"total": 41,
"limit": 2,
"offset": 0,
"has_more": true,
"next_offset": 2,
"as_of": {
"vast": {"last_updated": "2026-08-10T14:25:07+00:00", "age_minutes": 12, "stale": false}
},
"offers": [
{
"gpu": "H100 SXM",
"gpu_slug": "h100-sxm",
"vram_gb": 80,
"provider": "Vast.ai",
"provider_slug": "vast",
"gpu_count": 1,
"price_hour_usd": 1.65,
"price_per_gpu_hour_usd": 1.65,
"price_kind": "ondemand",
"vcpus": 24,
"ram_gb": 128,
"storage_gb": 500,
"region": "US",
"region_name": "United States",
"country": "US",
"last_seen": "2026-08-10T14:25:07+00:00"
}
]
}
Paging and complete results
count is the number of offers in this response; total is the number that match your filters. When has_more is true the response is truncated: request again with offset set to next_offset until has_more is false. Offers are ordered by price, then by a stable id, so pages do not overlap.
curl "https://gpuhour.com/api/v1/offers/?kind=all&limit=500&offset=500"
Freshness
The as_of block reports, per provider, when its prices were last refreshed and whether they are considered stale. A provider is marked stale when its feed has not refreshed within four hours. Its offers keep serving so you can still see them, but check the provider before relying on the number.
Missing a provider or GPU?
If a cloud you use is not in the data, tell us and we will add it, especially if it has a public pricing API. Submit a Provider
Fair use
The API is free for reasonable use: cache responses rather than polling in a tight loop; our data only changes every few hours. A link back to this site is appreciated. If you need higher volume or a data export, get in touch via the contact page. Contact Us