Docs
The panel has two read surfaces: aggregate JSON (provider rollup and collector status, cached at the edge) and an MCP server (row-level answers, computed per call). Both are free, read-only, keyless, and CORS-open to every origin. Same rule as the site: every number carries its receipt - the source it was read from and the time it was observed. The full row-level table and the daily price-history series are published as plain JSON (below); the MCP tools answer bounded row-level questions with receipts.
JSON API
Base URL www.compute.cafe. Plain GET, no auth, no rate limit beyond ordinary CDN caching.
Provider rollup, as returned (shape):
$ curl -s https://www.compute.cafe/data/providers.json
[
{
"slug": "lambda-labs",
"name": "Lambda",
"listing_count": 41,
"min_price": 1.29,
"max_price": 27.92
},
...
]MCP server
www.compute.cafe/mcp - streamable HTTP, no auth, read-only. POST speaks JSON-RPC 2.0 (SSE streams are not supported); a GET in a browser returns a human-readable page. Five tools:
A real call and its answer (observed 2026-09-17):
$ curl -s https://www.compute.cafe/mcp \
-H 'Content-Type: application/json' \
-H 'Accept: application/json, text/event-stream' \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/call",
"params":{"name":"cheapest","arguments":{"gpu_model":"H100"}}}'
{
"matched": 29,
"cheapest": {
"provider": "Lium",
"gpu_model": "H100 PCIe",
"gpu_count": 1,
"price_usd_hr": 1.25,
"availability": "available",
"receipt": {
"source_type": "catalog",
"source_url": "https://lium.io/pricing",
"observed_at": "2026-09-17T19:26:28Z"
}
}
}For agents
Rules
Live-API providers refresh hourly; the full panel refreshes every two hours. Cache accordingly. Prices are observed facts, not offers - availability labels distinguish live marketplaces (AVAILABLE) from published rate cards (CATALOG), rows carried over from a stale source say so, and prices marked "(from)" are floors, not quotes. The data is CC-BY 4.0: cite it, link it, build on it. If you build on it, keep the receipts attached: source and observed_at are part of the data, not decoration. History snapshots live in the public repo under data/history/.