SatBotly

Hit SatBotly from an agent IDE

Using Cursor, Claude Code, Antigravity or your own coding agent? Point it at SatBotly without scraping HTML. Every file below is live on https://satbotly.com with Access-Control-Allow-Origin: * and open to GPTBot, ClaudeBot, PerplexityBot and Google-Extended in /robots.txt.

checked entries in data/*.json
1,417
372 services (352 YES), 204 wallets, 535 APIs, 75 MCP, 231 merchants
live HTTP 402 APIs indexed
535
367 x402, 132 L402, 36 MPP (unpaid probes only)
free + x402 endpoints
6
/llms.txt, /openapi.json, /api/v1/lookup, /data/*.json, /try402, /api/v1/pro

Endpoints for agents and IDEs

EndpointAuth / priceContent-TypeWhat it returns
/llms.txtFree, no keytext/plain (Markdown)Summary, rules, counts (372 services, 204 wallets, 535 APIs, 75 MCP, 231 merchants) and links
/openapi.jsonFree, no keyapplication/json (OpenAPI 3.1.0)Schema for GET /api/v1/lookup and GET /api/v1/pro (x402 v2 discovery)
/api/v1/lookup?q=<text>Free, no keyapplication/jsonSubstring search on APIs and Bitcoin merchants (2 to 100 chars, max 25 rows per list, ~60 req / 10 min / IP)
/data/{apis,payments,wallets,mcp,bitcoin}.jsonFree, no keyapplication/jsonFull static JSON snapshots with source quotes and lastChecked dates (CC BY 4.0)
/api/try402/secret21 test sats (NUT-24)application/jsonFree Cashu HTTP 402 sandbox on testnut.cashu.space (zero real money; replay-safe)
/api/v1/pro9.00 USDC on Base (x402 v2)application/jsonUnpaid GET returns HTTP 402 challenge; paid GET returns a 30-day token for /api/v1/pro/export?list=<name>

Quick curl check (unpaid)

Run these from your IDE terminal. None of them require an API key or spend money; the two paid routes return their HTTP 402 challenges so your agent can inspect the price and payment terms first.

terminal · unpaid curl commands
# 1. Read the agent index and OpenAPI 3.1 spec
curl -s https://satbotly.com/llms.txt
curl -s https://satbotly.com/openapi.json

# 2. Free search across 535 HTTP 402 APIs and 231 Bitcoin merchants
curl -s "https://satbotly.com/api/v1/lookup?q=bitrefill"

# 3. Inspect the live x402 v2 challenge on Pro (unpaid, returns HTTP 402)
curl -i -s https://satbotly.com/api/v1/pro

# 4. Inspect the free NUT-24 Cashu 402 challenge (21 test sats on testnut)
curl -i -s https://satbotly.com/api/try402/secret

1. Point your IDE at /llms.txt and /openapi.json

/llms.txt gives a coding agent the directory layout, how verdicts are verified, current counts, and links to every raw JSON file. /openapi.json is an OpenAPI 3.1.0 spec covering the free /api/v1/lookup search route and the paid /api/v1/pro x402 route. Drop this snippet into CLAUDE.md, .cursor/rules or your agent system prompt:

CLAUDE.md / .cursor/rules snippet
# SatBotly agent-payment directory (https://satbotly.com)
- Read https://satbotly.com/llms.txt first for counts and data schema.
- Search APIs and merchants for free: GET https://satbotly.com/api/v1/lookup?q=<query> (OpenAPI: https://satbotly.com/openapi.json).
- Fetch full verified datasets (CORS *): https://satbotly.com/data/{apis,payments,wallets,mcp,bitcoin}.json.
- Test HTTP 402 flows with zero real money at https://satbotly.com/try402 (GET https://satbotly.com/api/try402/secret, 21 test sats on testnut.cashu.space).
- Paid Pro CSV export (x402 v2, 9.00 USDC on Base eip155:8453): GET https://satbotly.com/api/v1/pro.

2. Free lookup API and raw JSON dumps

GET /api/v1/lookup?q=<text> searches the 535 pay-per-call APIs and 231 Bitcoin merchants by name, id or provider (2 to 100 characters, up to 25 matches per list, about 60 requests per 10 minutes per IP). When your agent needs every row at once, fetch the static JSON files directly (CC BY 4.0, Access-Control-Allow-Origin: *): /data/apis.json, /data/payments.json, /data/wallets.json, /data/mcp.json and /data/bitcoin.json.

3. Practice HTTP 402 for free with try402 (Cashu NUT-24)

Before wiring real Lightning or USDC keys into an agent, test the 402 loop against /try402. An unpaid GET /api/try402/secret returns HTTP 402 with an X-Cashu payment request for 21 test sats on https://testnut.cashu.space (a fake-wallet test mint). Mint 21 test sats and retry with X-Cashu: <cashuB...> to get HTTP 200 with a receipt and secret. Replaying the same token returns the existing receipt (X-Try402-Replay: 1) without swapping twice.

4. Pay the real x402 v2 endpoint (/api/v1/pro)

GET /api/v1/pro is our live x402 v2 endpoint on Base mainnet (eip155:8453). An unpaid request returns HTTP 402 with the payment requirements in both the JSON body and the base64 PAYMENT-REQUIRED header (9000000 atomic units = 9.00 USDC, asset 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913, payTo 0xeDb324E75A7dD36846576b8D46d3b43D7Df4f0FA). Sign an EIP-3009 authorization and send it in PAYMENT-SIGNATURE to receive a 30-day bearer token for GET /api/v1/pro/export?list=<payments|wallets|apis|bitcoin|mcp>. Retrying the same signed authorization is idempotent and cannot charge twice.

GET /api/v1/pro · live HTTP 402 response
HTTP/2 402
content-type: application/json; charset=utf-8
payment-required: <base64 x402 v2 challenge>

{
  "x402Version": 2,
  "error": "PAYMENT-SIGNATURE header is required",
  "resource": {
    "url": "https://satbotly.com/api/v1/pro",
    "description": "SatBotly Pro: 30 days of CSV export",
    "mimeType": "application/json",
    "serviceName": "SatBotly Pro"
  },
  "accepts": [{
    "scheme": "exact",
    "network": "eip155:8453",
    "amount": "9000000",
    "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
    "payTo": "0xeDb324E75A7dD36846576b8D46d3b43D7Df4f0FA",
    "maxTimeoutSeconds": 300,
    "extra": { "name": "USD Coin", "version": "2" }
  }]
}
Plain-English meanings
HTTP 402
“Payment Required”: a web status code a server sends when a request has to be paid for first.
x402
The same pay-first idea for APIs, but paid in USDC (a dollar stablecoin) instead of Bitcoin.
L402
A way for an API to say “pay first”: it replies with a Lightning invoice, the agent pays a few sats, then gets its answer.
NUT-24
The Cashu standard for paying over HTTP 402: the server answers 402 with an X-Cashu payment request, then the agent retries with a Cashu token in the X-Cashu header.
MCP
Model Context Protocol: a standard way to plug tools, like a wallet, into an AI assistant.
USDC
A digital dollar: a crypto token meant to always be worth one US dollar.
sats
A satoshi (sat) is one hundred-millionth of a bitcoin.

Data as of 2026-10-24. How we check: /method.