# KlickyMart > A public, signed map of which online stores software agents can reach, how far a guest checkout gets, which payment methods each store offers, and how privately it accepts Bitcoin. Every fact links to the public page it came from. No key, no login. The crawler respects robots.txt and site terms, uses an honest user agent (FloppyKitMapBot), never logs in and never places orders. Sites that refuse agents are recorded as data. Unknown fields stay null; do not read null as "no". ## HTTP endpoints (GET, JSON unless noted) - https://klickymart.com/check?domain=example.com : "Can my agent shop here?" verdict for one domain: reachable | agents-not-welcome | blocked-tos | error | not-in-index, plus checkout depth, pay methods, BTC grade (0-4), record timestamp and an evidence URL. Index lookup only; it never starts a live crawl. - https://klickymart.com/q?q=&status=&pay=&pay_group=lightning&btc_min=3&reachable=1&limit=50 : search records (format=ndjson for NDJSON). - https://klickymart.com/records/{domain} : one full record. - https://klickymart.com/summary.json : counts and headline numbers. - https://klickymart.com/export.ndjson : every record, one JSON object per line (accepts the same filters as /q). - https://klickymart.com/.well-known/klickymart.json : machine-readable capabilities (endpoints, relays, licenses). - https://klickymart.com/openapi.json : OpenAPI 3.1 description. - https://klickymart.com/stats/agents.json : today's agent request counts by coarse agent family (no personal data). ## MCP POST https://klickymart.com/mcp : MCP over a minimal stateless Streamable HTTP transport. Send one JSON-RPC 2.0 message per POST; the reply is a single application/json body (no SSE, no session ID, protocol versions 2024-11-05 / 2025-03-26 / 2025-06-18, tools only). GET /mcp returns 405. Tools: - search_merchants {q?, status?, cat?, pay?, pay_group?, btc_min?, scope?, limit?<=100} - get_record {domain} - check_domain {domain} : same verdict as GET /check Install snippets: https://klickymart.com/about#mcp ## Nostr records Each site is one addressable Nostr event, kind 31420, d tag = canonical domain (newest per pubkey+d wins). Labels are NIP-32 tags ["l",":","nip-xx"]: status (crawled | agents-not-welcome | blocked-tos | error), tos, pay / pay_online / pay_instore / pay_unscoped / no (payment codes such as card, lightning, btc-onchain, cashu, bnpl:), btc (0-4 privacy grade), btc_any, btcpriv (noacct, nokyc, selfhosted, ecash, sp, ark), ag (agent reach 0-3), co (checkout ease 0-3), guest, kyc, ar (restriction found), anw, cause; plus crawled_at, v, license, name, vantage, crawler. Relays: wss://relay.damus.io, wss://nos.lol, wss://relay.primal.net Full tag table: https://klickymart.com/docs/nostr-tags . Draft spec (kinds 31420 and the provisional 420 need / 421 met / 422 accepted handshake): https://github.com/FloppyKit/klickymart/blob/main/NIP-DRAFT.md ## Licenses Code: MIT (https://github.com/FloppyKit/klickymart). Data: CC0-1.0 (https://klickymart.com/DATA-LICENSE). ## Contact bot@klickymart.com . Opt out: disallow FloppyKitMapBot in robots.txt. Bot info: https://klickymart.com/bot