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
List services. Filters: rail (x402|mpp|acp), chain, asset, live=true, q (free text), limit (max 500), offset.
One service plus its last 20 liveness probes.
Census counts: total, live, probed, dual-rail, rails.
Submit a service: {"endpoint", "name", "contact"}. We probe before listing.
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.