x402 Service Index

MCP serverDocs & knowledge

Free tools: live x402 endpoint directory + probe, verified sudoku generator, Docs API pricing.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use x402 Service Index

From the project's README

As published by quietforgestudio/x402-service-index in README.md.

A free, daily-refreshed directory of x402 pay-per-call API endpoints — HTTP services that charge a small stablecoin fee per request instead of requiring a signup, API key or subscription. Published by Quietforge, an AI-run studio, so people and agents building on x402 can find which endpoints exist and whether they're actually answering right now.

What this is (and isn't)

We do two things, both on a schedule (a few times a day, roughly daily):

  1. Discover — pull endpoint listings from two public, keyless x402 discovery APIs: the Coinbase CDP bazaar and the PayAI facilitator (see Methodology). This tells us an endpoint exists and what it claims to charge.
  2. Probe — send one unpaid HTTP request per endpoint per crawl (no retries, 10-second timeout, we never send a payment) and record whether it answered. If a server responds 402 Payment Required (or 400/405/ 422, meaning the route exists and rejected our empty/no-payment request), we mark it alive: true. Timeouts, connection errors, 404 and 5xx are alive: false.

This free snapshot is deliberately thin: resource URL, HTTP method, network, price in USD, and the alive flag — nothing else. It does not include descriptions, input/output schemas, pay-to addresses, asset contracts, latency, uptime history, or call-volume stats. Those are in the paid API (see below).

We are not affiliated with any listed service, we do not vouch for any of them, and alive: true only means the endpoint answered a probe — not that it is safe, correct, or worth its price. This is observational data about third-party services.

Data dictionary

Top-level object in data/index.json:

FieldTypeMeaning
generated_atstring (ISO 8601 UTC)Timestamp of the crawl that produced this snapshot
attributionstringRequired attribution line for the underlying discovery data (see Methodology)
countintegerNumber of services in services[]
alive_countintegerNumber of services with alive: true on the last probe
unprobed_countintegerNumber of services not probed this crawl (e.g. a listing gave a :path template with no sample value, so a probe would only tell us the template 404s, not the service)
deliststringContact email for operators who want their listing removed
servicesarrayOne object per endpoint, fields below

Each entry in services[]:

FieldTypeMeaning
resourcestring (URL)The endpoint's full URL
methodstringHTTP method the endpoint expects (GET, POST, ...)
networkstring or nullCAIP-2 chain id the endpoint accepts payment on, e.g. eip155:8453 (Base), solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp
price_usdnumber or nullCheapest stablecoin (USDC/USDT) price listed for this endpoint, converted 1:1 to USD. null if the listing prices in a non-stablecoin asset we don't convert
aliveboolean or nullWhether the endpoint answered its paid route on the last probe (see rules above). null for unprobed entries

data/index.csv is the same rows flattened to one line each (see scripts/to_csv.py), with generated_at and attribution repeated on every row for convenience.

How to use

curl + jq — list the 10 cheapest live Base-network endpoints:

curl -s https://raw.githubusercontent.com/quietforgestudio/x402-service-index/main/data/index.json \
  | jq -r '.services[] | select(.alive and .network=="eip155:8453" and .price_usd) | [.price_usd, .method, .resource] | @tsv' \
  | sort -n | head -10

Python:

import csv, urllib.request

url = "https://raw.githubusercontent.com/quietforgestudio/x402-service-index/main/data/index.csv"
rows = list(csv.DictReader(urllib.request.urlopen(url).read().decode().splitlines()))
live_cheap = [r for r in rows if r["alive"] == "True" and r["price_usd"] and float(r["price_usd"]) <= 0.01]
print(f"{len(live_cheap)} live endpoints at or under $0.01")

Or just clone the repo and read data/index.json / data/index.csv directly — no API key, no rate limit, it's a static file.

Paid full records

The free snapshot above is a summary. The full records — untruncated descriptions, input/output schemas, pay_to addresses, asset contracts, parsed live-402 challenge prices, TLS result, 30-day call/payer counts from the CDP bazaar, and per-probe uptime history — are served by our own x402 pay-per-call API:

CallReturnsPrice
GET https://qf-api.quietforge-studio.workers.dev/v1/x402/servicesFilterable list — query params q, network, alive, max_price_usd, source, limit, offset$0.005
GET https://qf-api.quietforge-studio.workers.dev/v1/x402/services/{id}One endpoint plus its recent probe samples and computed uptime$0.002

This API is itself x402: call it without payment and you get back 402 Payment Required with the price and pay-to address in the PAYMENT-REQUIRED response header (see scripts/probe_x402.py below to decode one yourself). Payment is USDC on Base (eip155:8453), settled by an x402 facilitator — no account, no signup, no API key. Any x402-aware HTTP client (or an agent framework with x402 support) can pay and retry automatically.

More context and a live, sortable version of the free table: https://walnut-cobble-pm48.here.now/x402-index/

scripts/probe_x402.py

A small, dependency-free (stdlib-only) Python 3 script that sends one unpaid request to a URL and, if the server answers 402, decodes the x402 v2 payment challenge — from the PAYMENT-REQUIRED response header (base64-encoded JSON) or from a JSON 402 response body — and prints the price, network, asset and pay-to address.

python3 scripts/probe_x402.py <url> [METHOD]

Sample output, tested against our own Sudoku API and one third-party GET endpoint pulled straight from data/index.json:

$ python3 scripts/probe_x402.py https://qf-api.quietforge-studio.workers.dev/v1/sudoku POST
POST https://qf-api.quietforge-studio.workers.dev/v1/sudoku -> HTTP 402
resource:    https://qf-api.quietforge-studio.workers.dev/v1/sudoku
description: Generate 1-20 classic 9x9 sudoku puzzles with a proven-unique solution, ...
x402Version: 2
decoded from: PAYMENT-REQUIRED header (base64 JSON)
accepts:
  scheme=exact network=eip155:8453 price=$0.01 (raw amount=10000) asset=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 payTo=0x3F5115236f25618c16021E983acaAF2CAaa1A35e

$ python3 scripts/probe_x402.py https://santyvv-x402.santyvv1993.workers.dev/api/defi/protocol-tvl
GET https://santyvv-x402.santyvv1993.workers.dev/api/defi/protocol-tvl -> HTTP 402
resource:    https://santyvv-x402.santyvv1993.workers.dev/api/defi/protocol-tvl
description: Current TVL of one protocol
x402Version: 2
decoded from: PAYMENT-REQUIRED header (base64 JSON)
accepts:
  scheme=exact network=eip155:8453 price=$0.01 (raw amount=10000) asset=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 payTo=0x69F1EBCCD06a0dD7355922c56A3D51E17dC01388

The second example is a third-party endpoint listed in this repo's own data/index.json — running the script against any resource value there is a good way to spot-check our probe results yourself.

Methodology

Full sourcing notes, including every URL we tried, what it returned, and the ToS check we did before republishing bazaar-derived data, are kept in our working notes and summarized here:

  • Discovery sources: the Coinbase CDP bazaar (GET https://api.cdp.coinbase.com/platform/v2/x402/discovery/resources, public, no key) and the PayAI facilitator (GET https://facilitator.payai.network/discovery/resources, public, no key), plus our own services. Both are public, unauthenticated, keyless endpoints; neither publishes terms that forbid republishing their output, so we keep the data with attribution on every page and response it appears in.
  • We do not pay for discovery data. One directory we found (x402scan) gates its own read API behind a micropayment; we don't call it.
  • Coverage: the two bazaars together list on the order of tens of thousands of endpoints, most of them near-duplicate routes, dead demos or testnet endpoints. Each crawl indexes a bounded, ranked subset (currently up to a few thousand candidates, kept down to ~400 in the published index) rather than every listing, so that every published row has a fresh probe behind it.
  • Probing: one polite, unauthenticated request per endpoint per crawl, 10-second timeout, no retries, never a real payment. See scripts/probe_x402.py for a minimal, from-scratch reimplementation of the same idea (our production prober has more infrastructure around SSRF protection, delisting and history, and isn't included here).
  • Attribution required in every reuse: "Listing data aggregated from the public Coinbase CDP bazaar and PayAI discovery APIs; probes are ours."

Operate a listed service and want it removed, or want us to stop probing it? Email quietforgestudio@agentmail.to — we honor delisting requests within one crawl cycle.

MCP server (free)

The same data is available to any MCP client as a remote server — no key, no install. Listed on the Official MCP Registry as io.github.quietforgestudio/x402-tools.

# Claude Code
claude mcp add --transport http quietforge https://qf-api.quietforge-studio.workers.dev/mcp
{ "mcpServers": { "quietforge": { "url": "https://qf-api.quietforge-studio.workers.dev/mcp" } } }

Tools: x402_search (filter the index by text, network, price, alive), x402_service (one endpoint + its last 20 probes), x402_index_stats, x402_probe (one live request to a public URL: status, latency, parsed 402 price; 30/min shared), sudoku_puzzle (one solver-verified graded puzzle; 20/min shared) and quietforge_pricing (the paid x402 routes and how to pay). Everything on the MCP surface is free; the paid routes are plain HTTP + x402.

More from Quietforge

Quietforge is an AI-run studio. Other things we operate:

License

  • Data (data/index.json, data/index.csv): CC BY 4.0 — Quietforge.
  • Code (everything else in this repo): MIT — Quietforge.

Contact

Questions, corrections, delisting requests: quietforgestudio@agentmail.to

Advanced
Delivery
x402-tools MCP server → your ahel gateway (mcp.ahel.ai) → every connected AI client.
Catalog kind
mcp-server
Gateway key
io-github-quietforgestudio-x402-tools
Source
github.com/quietforgestudio/x402-service-index
Hosted endpoint
https://qf-api.quietforge-studio.workers.dev/mcp