API
Every price on this site as JSON or CSV. Free, no sign-up needed to start.
Try it
curl "https://prices.cloudadapt.io/api/v1/compute?provider=aws,gcp&vcpu=4&memory=16&limit=5"
GET/api/v1/compute
Instance prices across providers, filtered and sorted.
| Parameter | In | Type | Description |
|---|---|---|---|
| provider | query | string | Comma-separated providers: aws, azure, gcp, oci, digitalocean, linode, vultr, scaleway, ovh, hetzner, exoscale. |
| region | query | string | Region ids (us-east-1), provider:region pairs (aws:us-east-1), a group (europe, us, asia, americas, middle-east, africa), all, or cheapest (cheapest region per type). Default: each provider's main region. |
| vcpu | query | string | Exact (4) or range (4-8, 4-, -8). |
| memory | query | string | GiB, exact or range. |
| arch | query | x86_64 | arm64 | — |
| gpu | query | string | none, any, or a GPU model (H100, A100-80GB, L4…). |
| price | query | on_demand | spot | reserved_1y | reserved_3y | — |
| os | query | linux | windows | rhel | sles | ubuntu_pro | — |
| max_hourly | query | number | Upper bound in USD per hour. |
| q | query | string | Instance type contains. |
| sort | query | price | -price | vcpu | -vcpu | memory | -memory | per_vcpu | spot_saving | name | regions | — |
| limit | query | integer | 1 to 500, default 50. |
| cursor | query | string | next_cursor from the previous page. |
| format | query | json | csv | json (default) or csv. |
GET/api/v1/compute/{provider}/{type}
One instance type in every region, every OS and price type.
| Parameter | In | Type | Description |
|---|---|---|---|
| provider required | path | string | — |
| type required | path | string | — |
GET/api/v1/compute/{provider}/{type}/history
Price changes for one instance type.
| Parameter | In | Type | Description |
|---|---|---|---|
| provider required | path | string | — |
| type required | path | string | — |
| region | query | string | — |
| days | query | integer | 1 to 3650, default 30. |
| price_type | query | string | ondemand, spot. |
| format | query | json | csv | json (default) or csv. |
GET/api/v1/gpus
Best price per GPU-hour by GPU model; ?model= lists every offer.
| Parameter | In | Type | Description |
|---|---|---|---|
| model | query | string | A GPU model to list every offer for. |
| scope | query | all | hyperscalers | gpu-clouds | — |
| provider | query | string | Comma-separated providers: aws, azure, gcp, oci, digitalocean, linode, vultr, scaleway, ovh, hetzner, exoscale. |
| format | query | json | csv | json (default) or csv. |
GET/api/v1/gpus/stats
Min, median, average and p90 per GPU-hour, with daily history.
| Parameter | In | Type | Description |
|---|---|---|---|
| model | query | string | — |
| days | query | integer | — |
GET/api/v1/storage
Block, file and object storage prices.
| Parameter | In | Type | Description |
|---|---|---|---|
| provider | query | string | Comma-separated providers: aws, azure, gcp, oci, digitalocean, linode, vultr, scaleway, ovh, hetzner, exoscale. |
| region | query | string | Region ids (us-east-1), provider:region pairs (aws:us-east-1), a group (europe, us, asia, americas, middle-east, africa), all, or cheapest (cheapest region per type). Default: each provider's main region. |
| type | query | string | — |
| format | query | json | csv | json (default) or csv. |
GET/api/v1/network/egress
Internet egress ladders and the monthly cost for a volume.
| Parameter | In | Type | Description |
|---|---|---|---|
| tb | query | number | TB a month to the internet, default 10. |
| region | query | string | provider:region pairs. |
GET/api/v1/kubernetes
Managed Kubernetes control-plane fees.
| Parameter | In | Type | Description |
|---|---|---|---|
| format | query | json | csv | json (default) or csv. |
GET/api/v1/regions
Regions with a price index and grid carbon.
| Parameter | In | Type | Description |
|---|---|---|---|
| provider | query | string | Comma-separated providers: aws, azure, gcp, oci, digitalocean, linode, vultr, scaleway, ovh, hetzner, exoscale. |
| format | query | json | csv | json (default) or csv. |
GET/api/v1/changes
Price changes and new instance types, newest first.
| Parameter | In | Type | Description |
|---|---|---|---|
| days | query | integer | — |
| provider | query | string | Comma-separated providers: aws, azure, gcp, oci, digitalocean, linode, vultr, scaleway, ovh, hetzner, exoscale. |
| kind | query | string | down, up, new, retired. |
| price_type | query | string | ondemand (default), spot. |
| limit | query | integer | — |
| offset | query | integer | — |
| format | query | json | csv | json (default) or csv. |
GET/api/v1/sources
Each source we read, how often, and when it last succeeded.
No parameters.
GET/api/v1/stats
Catalog counts and freshness.
No parameters.
GET/api/v1/search
Instance types matching a name.
| Parameter | In | Type | Description |
|---|---|---|---|
| q required | query | string | — |
POST/api/v1/keys
Create a free API key.
Send {"email": "[email protected]"}. The key is returned once; send it as Authorization: Bearer cap_….
No parameters.
Rate limits
60 requests a minute per IP without a key, 1,000 with a free key. Every response carries these headers:
| X-RateLimit-Limit | Requests allowed per minute for this client. |
| X-RateLimit-Remaining | Requests left in the current minute. |
| X-RateLimit-Reset | Unix time when the oldest request leaves the window. |
| Retry-After | On 429 only: seconds to wait before retrying. |
Errors
Errors are JSON: {"error": {"code": "rate_limited", "message": "…"}}
| Status | Code | Meaning |
|---|---|---|
| 400 | bad_parameter | A parameter is missing or out of range. |
| 400 | bad_request | The key request body is not JSON with an email. |
| 400 | bad_email | The email address is not valid. |
| 401 | invalid_key | The API key is unknown or revoked. |
| 404 | not_found | No such instance type or route. |
| 429 | rate_limited | Too many requests this minute. |
| 429 | too_many_keys | Several keys were created for this email today. |
| 503 | unavailable | Prices are briefly unavailable; retry shortly. |
Prices are list prices in US dollars, before discounts, credits and taxes. Responses are cached for up to five minutes. The data is free to reuse under CC BY 4.0 with a link to prices.cloudadapt.io.