API reference

The index, as data

Everything on the Discover page is served by a public JSON API. No key, no account, CORS open, cached five minutes. Field names are a stable contract. Machine-readable spec: openapi.json.

Endpoints

GET /api/v1/services

List services. Filters: rail (x402|mpp|acp), chain, asset, live=true, q (free text), limit (max 500), offset.

GET /api/v1/services/:id

One service plus its last 20 liveness probes.

GET /api/v1/stats

Census counts: total, live, probed, dual-rail, rails.

POST /api/v1/submit

Submit a service: {"endpoint", "name", "contact"}. We probe before listing.

GET /ask?query=...

Natural-language questions, e.g. /ask?query=live gpu compute on solana. Returns schema.org-shaped results; streaming=true for SSE.

Example

curl "https://www.superstables.com/api/v1/services?rail=x402&live=true&q=compute&limit=20"
{
  "generated_at": "2026-09-04T12:00:00.000Z",
  "counts": { "total": 1913, "live": 390, "dual_rail": 10 },
  "services": [
    {
      "id": "api.nosana.io",
      "name": "Nosana GPU compute",
      "description": "GPU jobs paid per second over x402.",
      "rails": ["x402"],
      "chains": ["solana"],
      "assets": ["USDC"],
      "price": { "display": "$0.001 / call", "usd": 0.001 },
      "endpoint": "https://api.nosana.io/v1/jobs",
      "live": true,
      "last_seen_live": "2026-09-04T11:40:12.000Z",
      "sources": ["x402-bazaar"]
    }
  ]
}

MCP server

Claude, Codex and other MCP clients can use the index as native tools: find_services, get_service and get_stats. Add it with:

{
  "mcpServers": {
    "superstables": {
      "url": "https://www.superstables.com/api/mcp"
    }
  }
}

What "live" means

We GET every listed HTTP endpoint on a rolling schedule. A service is live when it answers with HTTP 402, a payment-challenge response header (x402 v2 style), or a challenge body. Non-HTTP entries (acp://) are listed but never marked dead. Probe history is kept forever and exposed per service.