</> GPUs.io API

Cloud GPU prices,
ready for your code

One REST call returns clean, normalized on-demand & spot prices across 3,508 GPU configurations from 16+ clouds β€” current, historical, and dependable. Stop scraping pricing pages and ship the feature instead.

3,508 configurations tracked16+ cloudsΒ· spot & on-demand
NVIDIA H100 Β· on-demand, cheapest first live
Vast.aiUnited States$1.33/hr
Thunder Computemulti-region$1.38/hr
HyperstackCanada$1.90/hr
RuncrateUnited States +3$2.09/hr
Sesterce CloudCanada$2.15/hr
GET /v1/prices?gpu=h100updated <1h ago

The endpoints

Four endpoints. The whole GPU market.

Every route returns the same predictable JSON shape. Pick one to see a real request and response.

/v1/prices 200 OK
Request
curl -G https://api.gpus.io/v1/prices \
  -H "Authorization: Bearer $GPUS_API_KEY" \
  --data-urlencode gpu=h100 \
  --data-urlencode rentalType=on_demand \
  --data-urlencode limit=2
Response
{
  "data": [
    {
      "gpu": {
        "key": "h100",
        "name": "NVIDIA H100",
        "vramGb": 80
      },
      "provider": {
        "id": "lambda",
        "name": "Lambda",
        "website": "https://lambda.ai/"
      },
      "rentalType": "on_demand",
      "commitmentTermMonths": null,
      "gpuCount": 8,
      "pricePerGpuHourUsd": 1.99,
      "totalPricePerHourUsd": 15.92,
      "specs": {
        "vcpu": 208,
        "ramGb": 1800,
        "bootDiskGb": 1024,
        "scratchDiskGb": 22000
      },
      "regions": [
        "us"
      ],
      "available": true,
      "lastUpdated": "2026-06-03T08:12:04Z"
    },
    {
      "gpu": {
        "key": "h100",
        "name": "NVIDIA H100",
        "vramGb": 80
      },
      "provider": {
        "id": "runpod",
        "name": "RunPod",
        "website": "https://runpod.io"
      },
      "rentalType": "on_demand",
      "commitmentTermMonths": null,
      "gpuCount": 1,
      "pricePerGpuHourUsd": 2.49,
      "totalPricePerHourUsd": 2.49,
      "specs": {
        "vcpu": 24,
        "ramGb": 125,
        "bootDiskGb": 80,
        "scratchDiskGb": 1024
      },
      "regions": [
        "us",
        "nl"
      ],
      "available": true,
      "lastUpdated": "2026-06-03T08:12:04Z"
    }
  ],
  "pagination": {
    "nextCursor": "eyJpZCI6MTQ4Mn0",
    "limit": 2
  }
}

Build vs. buy

You could scrape it yourself

But every cloud changes its pricing page on its own schedule, and your scrapers don’t.

Roll your own scrapers
GPUs.io API
Coverage
One cloud per scraper you write
16+ clouds out of the box
Breadth
Only the configs you have time to scrape
3,508 configurations, all normalized
Freshness
Breaks the day a page changes
Refreshed every few hours
Normalization
Each cloud bills differently β€” you reconcile it
Every price in $/GPU-hour
Historical data
Only what you've been logging
Price history for any GPU (Pro)
Time to first call
Days of scraping & cleanup
About five minutes

Pricing

Simple, usage-honest pricing

Subscribe by card, get your key instantly, cancel anytime.

Developer

Live GPU pricing for your app, in one call.

$49/ month
billed monthly Β· or save with annual
Live on-demand & spot prices across 16+ clouds
Complete GPU & provider catalogue, always current
Filter by GPU, region, rental type & specs
250 requests / day

Secure checkout by Polar. Pay by card, cancel anytime. Prices exclude any applicable taxes, calculated at checkout. By subscribing you agree to our Terms of Service and Privacy Policy.

FAQ

Questions, answered

Normalized $/GPU-hour for on-demand, spot, and reserved, one row per provider and configuration, with regions, specs, availability, and a lastUpdated timestamp. The same JSON shape for every cloud β€” see the response sample above.
We re-poll every tracked provider on a rolling schedule, every few hours. Each row carries a lastUpdated timestamp so you always know exactly how recent a number is.
16+ clouds and the full catalogue of GPUs we track today β€” the major hyperscalers plus the specialist GPU clouds β€” and we add providers continuously. The /v1/providers and /v1/gpus endpoints always return the current list.
Yes. GET /v1/gpus/{key}/price-history returns a daily, weekly, or monthly price series for any GPU β€” the global median, a per-provider summary, and the cheapest provider at each point β€” on the Pro plan.
No β€” there's nothing to install. It's a plain REST endpoint: one Bearer token, predictable JSON, and it works with any HTTP client (cURL, fetch, requests, net/http, anything).
Developer includes 250 requests/day, Pro 1,000/day. Checkout and billing run through Polar β€” pay by card, cancel anytime, invoices included.

Pull live GPU prices in the next five minutes

Subscribe, get your key instantly, and make your first call before your coffee’s cold.

GET /v1/prices?gpu=h1003,508 configurations, one call away