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.

www.compute.cafe/data/providers.json
Provider-level rollup: panel membership, listing counts, lowest price, connector type.
www.compute.cafe/data/meta.json
Collector status: last refresh time, per-provider connector status (live / carried over / failed), the run mode (full / live-only), and the FX receipt. Check here first for freshness.
www.compute.cafe/data/listings-full.json
The full row-level table: every current listing with provider, GPU model and count, price, currency, location, availability, and its receipt (source URL + observed time). /data/listings-essential.json is a byte-identical compatibility alias.
www.compute.cafe/data/history-index.json
Daily USD price series per listing, folded from the collector's own snapshots. The raw snapshots also live in the public repo under data/history/.

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:

list_providers
none
Panel membership, listing counts, price ranges per provider.
search_listings
gpu_model, gpu_count, min_vram_gb, max_price_usd, availability, provider_slug, location (all optional)
Matching rows, up to 50, each with its full receipt.
cheapest
gpu_model (required), gpu_count, availability
The lowest-priced matching row, how many matched, and which rows were excluded - so the answer is auditable.
get_meta
none
Collector status, per-provider connector state, FX receipt.
get_history
listing_id (required)
The listing's daily USD price series, folded from the collector's own snapshots.

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

www.compute.cafe/llms.txt
The manifest: what the panel is, the endpoints, the label system, and the reuse rules, in the llms.txt convention.
www.compute.cafe/openapi.json
OpenAPI 3.1 contract for every data endpoint and the MCP server. Point a tool-using agent at it directly.
www.compute.cafe/changelog
What changed: new providers, connectors, and site features. The panel itself refreshes hourly; data runs log here.

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/.