GRIDCOMPUTE

Developers

Free API and price badges.

Hourly GPU rental prices and grid power data as JSON and CSV. No key, no sign-up, CORS open. Free to use under CC BY 4.0: credit “GridCompute GPU Price Index” with a link to gridcompute.ai.

Embed a live price badge

An image that updates by itself. Works in READMEs, blogs and newsletters, with no script.

H100 SXM rental price on gridcompute.ai
HTML

      
Markdown

    

The badge shows the median Vast.ai asking price this hour. GPUs not on the marketplace show the lowest published rate card, marked “from”. Images refresh about every 15 minutes.

API reference

Base URL https://gridcompute.ai. All endpoints are GET. Prices are in USD per GPU-hour, asking prices, not offers. Timestamps are Unix seconds at the start of the UTC hour. Missing values are null, never estimated.

Data updates once an hour, a few minutes past the hour, and responses are cached for 5 minutes. There is no hard rate limit; please cache on your side rather than polling more than hourly. New fields may be added; existing fields will not be renamed or removed without notice on this page.

Market prices come from public Vast.ai listings. Rate cards: RunPod (Secure Cloud on-demand), Verda (on-demand, 1-GPU instance), Azure (pay-as-you-go Linux VM, East US 2, per GPU). Full method on the homepage.

GET /api/latest

Every tracked GPU: the current marketplace snapshot, each rate card, 24h and 7d change, and the last 7 days of hourly medians.

meta.first, meta.last
Unix seconds (UTC) of the first and latest hourly snapshot
meta.snapshots
Number of hourly snapshots stored
lists[]
The rate cards tracked: key, name, note
gpus[].key, name, mem, tier
GPU id, display name, memory in GB, family
gpus[].market
Vast.ai marketplace asking prices this hour: offers, gpus, min, p25, median, p75. null when not listed this hour
gpus[].lists
Rate card price per GPU-hour this hour, keyed by rate card. null when not published
gpus[].change24h, change7d
Fractional change of the market median (0.012 = +1.2%). null until enough history exists
gpus[].spark
[ts, median] pairs for the last 7 days
gpus[].list
Deprecated alias of lists.runpod
GET /api/history?gpu=h100-sxm&days=30

One GPU over time. Hourly rows up to 21 days, daily averages beyond that (days 1–365, default 30).

resolution
hourly or daily average
vast[]
Objects with ts, min, p25, median, p75, offers
runpod, verda, azure
[ts, price] pairs for each rate card
GET /api/export.csv?gpu=all&days=90

Raw stored rows as CSV. gpu is a GPU id or all.

columns
timestamp_utc, gpu, source, offers, gpus, min, p25, median, p75. Rate card rows repeat the price in every stat column and leave offers and gpus empty
GET /api/gpus

The tracked GPU ids, names, memory and family.

GET /api/power/latest

Each grid region: latest hourly price and load, 24h average and range, and 7-day series.

regions[].price
ts, value, avg24h, high24h, low24h, in the region currency per MWh. null where no price is published
regions[].load
ts, value, peak24h in MW
GET /api/power/history?region=ercot&days=30

Hourly price and load for one region (ercot, pjm, ontario, quebec).

GET /api/power/export.csv?region=all&days=90

Raw hourly power rows as CSV.

GET /api/health

Time and outcome of the last collection run. ok is false if no run in the last 3 hours.