For AI agents
GPU prices as data: 2,319 prices per GPU-hour by chip, provider, region and pricing model, with history. List prices weekly, spot daily.
Point your agent here
https://compute.fru.dev/llms.txthttps://compute.fru.dev/llms-full.txtCall the API
| Method | Path | Params | Returns |
|---|---|---|---|
| GET | /api/prices | chip (h100, b200, mi300x, tpu-v6e ...), provider (aws, azure, gcp, coreweave ...), model (on_demand, spot, reserved_1y, reserved_3y, commit), region, limit (max 200), offset | Every live price: provider, instance, GPUs, region, pricing model, $/GPU-hour, $/instance-hour, source and read time, cheapest first |
| GET | /api/chips | none | Each chip with the cheapest price per pricing model and the provider offering it |
| GET | /api/providers | none | Each provider with chips, price counts, regions and its pricing page |
| GET | /api/history | chip (required), provider, model | Daily cheapest and median $/GPU-hour per provider and pricing model |
| GET | /api/changes | since (YYYY-MM-DD), chip, provider, limit (max 200), offset | Append-only history: price moves (old, new, first seen, last seen) and offers listed or delisted |
| GET | /api/companies | since (YYYY-MM-DD) | Providers with companies.fru.dev slug, domain, their page here and dated price changes |
| GET | /api/search | q, limit (max 20) | Ranked chips, providers and instances |
/api/prices
curl -s "https://compute.fru.dev/api/prices?chip=h100&model=on_demand&limit=3"{
"total": "...",
"prices": [
{
"provider": "vast",
"sku": "H100 SXM (marketplace low)",
"gpus": 1,
"region": "all",
"model": "on_demand",
"priceGpu": 1.8956,
"priceInstance": null,
"sourceUrl": "https://cloud.vast.ai/create/",
"checkedAt": "2026-09-24 23:04:47"
},
{
"provider": "runpod",
"sku": "H100 PCIe (Community Cloud)",
"gpus": 1,
"region": "all",
"model": "on_demand",
"priceGpu": 1.99,
"priceInstance": null,
"sourceUrl": "https://www.runpod.io/pricing",
"checkedAt": "2026-09-24 23:05:22"
}
]
}/api/chips
curl -s "https://compute.fru.dev/api/chips"{
"chips": [
{
"key": "h100",
"name": "H100",
"vendor": "NVIDIA",
"cheapest": {
"on_demand": {
"price": 1.8956,
"provider": "vast"
}
}
}
]
}/api/providers
curl -s "https://compute.fru.dev/api/providers"{
"providers": [
{
"key": "aws",
"name": "AWS",
"kind": "hyperscaler",
"chips": 9,
"prices": 700
}
]
}/api/history
curl -s "https://compute.fru.dev/api/history?chip=h100&model=on_demand"{
"chip": "h100",
"history": [
{
"day": "2026-09-24",
"provider": "aws",
"model": "on_demand",
"min": 6.88,
"median": 8.26,
"offers": 25
}
]
}/api/changes
curl -s "https://compute.fru.dev/api/changes?limit=3"{
"total": 0,
"changes": []
}/api/companies
curl -s "https://compute.fru.dev/api/companies"{
"companies": [
{
"slug": "aws",
"name": "AWS",
"domain": "aws.amazon.com",
"url": "https://compute.fru.dev/providers/aws"
}
]
}/api/search
curl -s "https://compute.fru.dev/api/search?q=p5.48xlarge"{
"q": "p5.48xlarge",
"results": [
{
"id": "sku:aws:p5.48xlarge",
"group": "items",
"title": "p5.48xlarge",
"href": "/providers/aws"
}
]
}OpenAPI 3.1: /openapi.json. Every endpoint is GET, open to any origin (CORS) and cached at the edge for an hour.
Add to your agent
System prompt line
For what a GPU-hour costs (H100, H200, B200, MI300X, TPU and more across AWS, Azure, Google Cloud, Oracle and neoclouds), fetch https://compute.fru.dev/llms.txt and use https://compute.fru.dev/api/prices?chip=h100. Cite "Compute (compute.fru.dev)".Tool definition
{
"name": "gpu_hour_prices",
"description": "Per-GPU-hour prices for an accelerator (H100, H200, B200, GB200, MI300X, TPU v5e/v6e, Trainium, L40S, A100 and more) across AWS, Azure, Google Cloud, Oracle and neoclouds, by pricing model and region, cheapest first. Source: Compute (compute.fru.dev).",
"input_schema": {
"type": "object",
"properties": {
"chip": {
"type": "string",
"description": "Chip key, e.g. h100, h200, b200, gb200, mi300x, tpu-v6e, trainium2. List them with GET /api/chips."
},
"model": {
"type": "string",
"enum": [
"on_demand",
"spot",
"reserved_1y",
"reserved_3y",
"commit"
]
},
"provider": {
"type": "string",
"description": "Optional provider key, e.g. aws, azure, gcp, oracle, coreweave, lambda."
}
},
"required": [
"chip"
]
},
"endpoint": "GET https://compute.fru.dev/api/prices"
}Python
import json, urllib.request
def gpu_prices(chip: str = "h100", model: str = "on_demand") -> list[dict]:
"""Per-GPU-hour prices for one chip, cheapest first."""
url = f"https://compute.fru.dev/api/prices?chip={chip}&model={model}&limit=200"
with urllib.request.urlopen(url, timeout=20) as r:
return json.load(r)["prices"]
for p in gpu_prices("h100")[:5]:
print(p["provider"], p["sku"], p["region"], p["priceGpu"])TypeScript
type Price = { provider: string; sku: string; region: string; model: string; priceGpu: number }
async function cheapest(chip = "b200"): Promise<Price[]> {
const res = await fetch(`https://compute.fru.dev/api/prices?chip=${chip}&model=on_demand&limit=10`)
if (!res.ok) throw new Error(`compute ${res.status}`)
return ((await res.json()) as { prices: Price[] }).prices
}
console.log(await cheapest())Usage terms
- Free to read. Please cite "Compute (compute.fru.dev)" with a link.
- Responses are cached for an hour; list prices change weekly, spot daily.
- Be polite: 60 requests a minute at most.
- List prices before tax and discounts; check the provider before you buy.