{"openapi":"3.1.0","info":{"title":"Cloudadapt Prices API","version":"1.0.0","description":"Free, live list prices for every major cloud. 60 requests a minute without a key; 1,000 a minute and 100,000 a day with a free key sent as Authorization: Bearer <key>. Prices are USD list prices before discounts, credits and taxes. Data licence: CC BY 4.0, credit \"Prices from Cloudadapt\" with a link to prices.cloudadapt.io.","contact":{"url":"https://prices.cloudadapt.io/api"},"license":{"name":"CC BY 4.0 (data)","url":"https://creativecommons.org/licenses/by/4.0/"}},"servers":[{"url":"https://prices.cloudadapt.io/api/v1"}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. Free keys raise the limit to 1,000 requests a minute."}},"schemas":{"ComputeItem":{"type":"object","properties":{"provider":{"type":"string"},"region":{"type":"string"},"instance_type":{"type":"string"},"family":{"type":["string","null"]},"vcpu":{"type":["number","null"]},"memory_gib":{"type":["number","null"]},"arch":{"type":["string","null"],"enum":["x86_64","arm64",null]},"cpu":{"type":["string","null"]},"gpu_count":{"type":"integer"},"gpu_model":{"type":["string","null"]},"price_hourly":{"type":["number","null"]},"price_monthly":{"type":["number","null"]},"on_demand_hourly":{"type":["number","null"]},"spot_hourly":{"type":["number","null"]},"reserved_1y_hourly":{"type":["number","null"]},"reserved_3y_hourly":{"type":["number","null"]},"per_vcpu_hourly":{"type":["number","null"]},"per_gib_hourly":{"type":["number","null"]},"regions_offered":{"type":"integer"},"list_checked_at":{"type":["string","null"],"format":"date-time"},"spot_read_at":{"type":["string","null"],"format":"date-time"},"url":{"type":"string"}}}}},"security":[{},{"bearer":[]}],"paths":{"/compute":{"get":{"summary":"Instance prices across providers, filtered and sorted","parameters":[{"name":"provider","in":"query","description":"Comma-separated providers: aws, azure, gcp, oci, digitalocean, linode, vultr, scaleway, ovh, hetzner, exoscale.","schema":{"type":"string"}},{"name":"region","in":"query","description":"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.","schema":{"type":"string"}},{"name":"vcpu","in":"query","description":"Exact (4) or range (4-8, 4-, -8).","schema":{"type":"string"}},{"name":"memory","in":"query","description":"GiB, exact or range.","schema":{"type":"string"}},{"name":"arch","in":"query","schema":{"type":"string","enum":["x86_64","arm64"]}},{"name":"gpu","in":"query","description":"none, any, or a GPU model (H100, A100-80GB, L4…).","schema":{"type":"string"}},{"name":"price","in":"query","schema":{"type":"string","enum":["on_demand","spot","reserved_1y","reserved_3y"]}},{"name":"os","in":"query","schema":{"type":"string","enum":["linux","windows","rhel","sles","ubuntu_pro"]}},{"name":"max_hourly","in":"query","description":"Upper bound in USD per hour.","schema":{"type":"number"}},{"name":"q","in":"query","description":"Instance type contains.","schema":{"type":"string"}},{"name":"sort","in":"query","schema":{"type":"string","enum":["price","-price","vcpu","-vcpu","memory","-memory","per_vcpu","spot_saving","name","regions"]}},{"name":"limit","in":"query","description":"1 to 500, default 50.","schema":{"type":"integer"}},{"name":"cursor","in":"query","description":"next_cursor from the previous page.","schema":{"type":"string"}},{"name":"format","in":"query","description":"json (default) or csv.","schema":{"type":"string","enum":["json","csv"]}}],"responses":{"200":{"description":"Matching instance prices","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer"},"currency":{"type":"string"},"unit":{"type":"string"},"next_cursor":{"type":["string","null"]},"items":{"type":"array","items":{"$ref":"#/components/schemas/ComputeItem"}}}}}}},"429":{"description":"Rate limited. Retry after the number of seconds in Retry-After."}}}},"/compute/{provider}/{type}":{"get":{"summary":"One instance type in every region, every OS and price type","parameters":[{"name":"provider","in":"path","required":true,"schema":{"type":"string"}},{"name":"type","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Instance with prices per region","content":{"application/json":{"schema":{"type":"object"}}}},"404":{"description":"No current prices for this type."},"429":{"description":"Rate limited. Retry after the number of seconds in Retry-After."}}}},"/compute/{provider}/{type}/history":{"get":{"summary":"Price changes for one instance type","parameters":[{"name":"provider","in":"path","required":true,"schema":{"type":"string"}},{"name":"type","in":"path","required":true,"schema":{"type":"string"}},{"name":"region","in":"query","schema":{"type":"string"}},{"name":"days","in":"query","description":"1 to 3650, default 30.","schema":{"type":"integer"}},{"name":"price_type","in":"query","description":"ondemand, spot.","schema":{"type":"string"}},{"name":"format","in":"query","description":"json (default) or csv.","schema":{"type":"string","enum":["json","csv"]}}],"responses":{"200":{"description":"Price changes, oldest first","content":{"application/json":{"schema":{"type":"object"}}}},"429":{"description":"Rate limited. Retry after the number of seconds in Retry-After."}}}},"/gpus":{"get":{"summary":"Best price per GPU-hour by GPU model; ?model= lists every offer","parameters":[{"name":"model","in":"query","description":"A GPU model to list every offer for.","schema":{"type":"string"}},{"name":"scope","in":"query","schema":{"type":"string","enum":["all","hyperscalers","gpu-clouds"]}},{"name":"provider","in":"query","description":"Comma-separated providers: aws, azure, gcp, oci, digitalocean, linode, vultr, scaleway, ovh, hetzner, exoscale.","schema":{"type":"string"}},{"name":"format","in":"query","description":"json (default) or csv.","schema":{"type":"string","enum":["json","csv"]}}],"responses":{"200":{"description":"GPU models or offers","content":{"application/json":{"schema":{"type":"object"}}}},"429":{"description":"Rate limited. Retry after the number of seconds in Retry-After."}}}},"/gpus/stats":{"get":{"summary":"Min, median, average and p90 per GPU-hour, with daily history","parameters":[{"name":"model","in":"query","schema":{"type":"string"}},{"name":"days","in":"query","schema":{"type":"integer"}}],"responses":{"200":{"description":"Statistics per GPU model","content":{"application/json":{"schema":{"type":"object"}}}},"429":{"description":"Rate limited. Retry after the number of seconds in Retry-After."}}}},"/storage":{"get":{"summary":"Block, file and object storage prices","parameters":[{"name":"provider","in":"query","description":"Comma-separated providers: aws, azure, gcp, oci, digitalocean, linode, vultr, scaleway, ovh, hetzner, exoscale.","schema":{"type":"string"}},{"name":"region","in":"query","description":"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.","schema":{"type":"string"}},{"name":"type","in":"query","schema":{"type":"string"}},{"name":"format","in":"query","description":"json (default) or csv.","schema":{"type":"string","enum":["json","csv"]}}],"responses":{"200":{"description":"Storage prices","content":{"application/json":{"schema":{"type":"object"}}}},"429":{"description":"Rate limited. Retry after the number of seconds in Retry-After."}}}},"/network/egress":{"get":{"summary":"Internet egress ladders and the monthly cost for a volume","parameters":[{"name":"tb","in":"query","description":"TB a month to the internet, default 10.","schema":{"type":"number"}},{"name":"region","in":"query","description":"provider:region pairs.","schema":{"type":"string"}}],"responses":{"200":{"description":"Egress ladders, cheapest first","content":{"application/json":{"schema":{"type":"object"}}}},"429":{"description":"Rate limited. Retry after the number of seconds in Retry-After."}}}},"/kubernetes":{"get":{"summary":"Managed Kubernetes control-plane fees","parameters":[{"name":"format","in":"query","description":"json (default) or csv.","schema":{"type":"string","enum":["json","csv"]}}],"responses":{"200":{"description":"Control-plane fees","content":{"application/json":{"schema":{"type":"object"}}}},"429":{"description":"Rate limited. Retry after the number of seconds in Retry-After."}}}},"/regions":{"get":{"summary":"Regions with a price index and grid carbon","parameters":[{"name":"provider","in":"query","description":"Comma-separated providers: aws, azure, gcp, oci, digitalocean, linode, vultr, scaleway, ovh, hetzner, exoscale.","schema":{"type":"string"}},{"name":"format","in":"query","description":"json (default) or csv.","schema":{"type":"string","enum":["json","csv"]}}],"responses":{"200":{"description":"Regions","content":{"application/json":{"schema":{"type":"object"}}}},"429":{"description":"Rate limited. Retry after the number of seconds in Retry-After."}}}},"/changes":{"get":{"summary":"Price changes and new instance types, newest first","parameters":[{"name":"days","in":"query","schema":{"type":"integer"}},{"name":"provider","in":"query","description":"Comma-separated providers: aws, azure, gcp, oci, digitalocean, linode, vultr, scaleway, ovh, hetzner, exoscale.","schema":{"type":"string"}},{"name":"kind","in":"query","description":"down, up, new, retired.","schema":{"type":"string"}},{"name":"price_type","in":"query","description":"ondemand (default), spot.","schema":{"type":"string"}},{"name":"limit","in":"query","schema":{"type":"integer"}},{"name":"offset","in":"query","schema":{"type":"integer"}},{"name":"format","in":"query","description":"json (default) or csv.","schema":{"type":"string","enum":["json","csv"]}}],"responses":{"200":{"description":"Changes","content":{"application/json":{"schema":{"type":"object"}}}},"429":{"description":"Rate limited. Retry after the number of seconds in Retry-After."}}}},"/sources":{"get":{"summary":"Each source we read, how often, and when it last succeeded","responses":{"200":{"description":"Sources","content":{"application/json":{"schema":{"type":"object"}}}},"429":{"description":"Rate limited. Retry after the number of seconds in Retry-After."}}}},"/stats":{"get":{"summary":"Catalog counts and freshness","responses":{"200":{"description":"Catalog statistics","content":{"application/json":{"schema":{"type":"object"}}}},"429":{"description":"Rate limited. Retry after the number of seconds in Retry-After."}}}},"/search":{"get":{"summary":"Instance types matching a name","parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Matches","content":{"application/json":{"schema":{"type":"object"}}}},"429":{"description":"Rate limited. Retry after the number of seconds in Retry-After."}}}},"/keys":{"post":{"summary":"Create a free API key","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["email"],"properties":{"email":{"type":"string","format":"email"}}}}}},"responses":{"200":{"description":"The key, shown once."},"400":{"description":"Invalid email."},"429":{"description":"Too many keys today."}}}}}}