{"beta":true,"service":"BotsRated","start_here":"alerts-50: $29 USDC per 30 days, up to 50 seller hosts. Signed webhook on payTo, quoted price, valid 402 (lost/regained), delisted/relisted or stale; the same token reads /v1/check and /v1/report for those hosts (60 requests/min). alerts-10 ($9, 10 hosts) is the same plan for a smaller list.","same_price_note":"Two plans cost $49 and do different jobs: data-starter = BotsRated data token for /v1/check and /v1/report on all hosts without per-call payment (60 requests/min); botpulse-business = BotPulse infra digest delivery to up to 5 endpoints incl. Discord. Neither includes the other.","webhook_only_note":"Alerts are webhook only (no email) on purpose: made for bots and servers, and every message is signed.","data_starter_note":"$49 = 49,000 checks at $0.001 or 24,500 reports at $0.002 (after the free daily allowance). Above that many paid calls in 30 days, data-starter costs less than per call.","currency":"USDC","network_note":"x402 v2, exact scheme, Base USDC; charged only on a 2xx answer","routes":{"preflight":{"url":"https://botsrated.com/v1/preflight?url=<host>","price_usd":"0","note":"free, no key (normal per-IP rate limits apply)"},"find":{"url":"https://botsrated.com/v1/find?q=<need>","price_usd":"0","note":"search; each call uses 1 of the 25 free daily checks (shared with /v1/check); 429 free_quota_used after that"},"check":{"url":"https://botsrated.com/v1/check?host=<host>","price_usd":"0.001","amount_atomic":"1000","free_per_day":25},"report":{"url":"https://botsrated.com/v1/report/<host>","price_usd":"0.002","amount_atomic":"2000","free_per_day":3},"best":{"url":"https://botsrated.com/v1/best?task=<keywords>","price_usd":"0.01","amount_atomic":"10000","free_per_day":0}},"free_quota":{"per":"client IP address (IPv6: /48 prefix)","day":"UTC","check":25,"report":3,"overall_daily_limit":15000,"overall_daily_limit_note":"free checks (including searches) and reports served per UTC day across all clients; after that every client gets the normal x402 402 until the next UTC day","exhausted":"normal x402 402 payment requirement","opt_out_header":"X-BotsRated-Free-Quota: off","response_fields":"free_quota {route, used, limit, remaining, resets_at}; headers X-BotsRated-Free-Quota-Remaining / -Limit / -Reset","not_applied_to":"blockrun.ai (the advertised example that x402 scanners probe); use /v1/sample/* for a free example"},"volume_tiers":"none yet (planned: automatic per-wallet monthly tiers; never prepaid balances or stored credit)","no_custody":"No accounts, prepaid balances, stored credit or refunds held. Each paid call is one x402 payment for that call.","badge":"Free and earned from measurements; never sold. Paying BotsRated never buys a better result, rank or badge. Paid alert plans make us check the hosts they cover more often; those checks use the same method and are published the same way.","free_data":{"dataset":"https://botsrated.com/dataset.json","signature":"https://botsrated.com/dataset.sig.json"},"pricing_page":"https://botsrated.com/pricing","plans":{"rules":"One x402 USDC payment on Base buys one 30-day period and grants access immediately after settlement. No accounts, balances, stored credit, top-ups or refunds held. Cancelling stops delivery; payments are final except when a fault on our side meant the plan wasn't delivered (see https://botsrated.com/terms). The dataset (dataset.json) stays free; history and archives will be free too when they open.","free_alert_limits":{"per_client":3,"total":1000,"note":"Free alerts (alerts-free): up to 3 active free alert subscriptions per client (IP address), and up to 1,000 across all users."},"alerts":[{"plan":"alerts-free","price_usd_per_30_days":"0","amount_atomic":"0","hosts":1,"delivery":"daily digest","includes":"1 host; one signed webhook digest per UTC day when its facts changed. Renew for free every 30 days.","subscribe":"POST https://botsrated.com/v1/alerts/subscribe (free)"},{"plan":"alerts-10","price_usd_per_30_days":"9","amount_atomic":"9000000","hosts":10,"delivery":"a few minutes after the check that sees a change; each host on the plan is checked every few minutes","includes":"Up to 10 hosts; a signed webhook a few minutes after the check that sees a change (payTo, quoted price, valid 402 lost/regained, delisted/relisted, stale). Each host on the plan is checked every few minutes. The same bearer token also reads /v1/check and /v1/report for the hosts on the plan without per-call payment (60 requests/min): for hosts we have test-bought, that includes our own paid test-buy receipts with delivered, non_empty and schema_valid (stall is a receipt field only, recorded from the next test-buy round; it is never an alert). Most hosts have no paid test-buy yet, and delivery outcomes are read on request; they are not alert events.","subscribe":"POST https://botsrated.com/v1/subscribe/alerts-10 (x402)"},{"plan":"alerts-50","price_usd_per_30_days":"29","amount_atomic":"29000000","hosts":50,"delivery":"a few minutes after the check that sees a change; each host on the plan is checked every few minutes","includes":"Up to 50 hosts; same events and timing as alerts-10 (payTo, quoted price, valid 402 lost/regained, delisted/relisted, stale). The same bearer token also reads /v1/check and /v1/report for the hosts on the plan without per-call payment (60 requests/min): for hosts we have test-bought, that includes our own paid test-buy receipts with delivered, non_empty and schema_valid (stall is a receipt field only, recorded from the next test-buy round; it is never an alert). Most hosts have no paid test-buy yet, and delivery outcomes are read on request; they are not alert events.","subscribe":"POST https://botsrated.com/v1/subscribe/alerts-50 (x402)"}],"botpulse":[{"plan":"botpulse-indie","price_usd_per_30_days":"5","amount_atomic":"5000000","endpoints":1,"discord_webhooks":false,"history_rate_per_min":30,"delivery":"each published digest, right after it is published (event-style: a digest is published when a watchlist item changes, not on a fixed weekday schedule)","includes":"BotPulse digests (MCP, x402, Base/CDP, agent framework changes) pushed to 1 signed webhook (ed25519, key botsrated-botpulse-1) right after each digest is published (the watchlist is scanned several times a day; a digest is published only when something on it changes), plus a bearer token for the full digest history (GET /v1/botpulse/history; the free feed shows only the latest 4 digests). 30 requests/min.","subscribe":"POST https://botsrated.com/v1/subscribe/botpulse-indie (x402) {\"webhook_urls\":[\"https://you.example/hook\"]}","history":"GET https://botsrated.com/v1/botpulse/history (Authorization: Bearer <token>)","free":"https://botsrated.com/v1/botpulse/latest and https://botsrated.com/v1/botpulse/feed.json (latest 4 digests) stay free","about":"https://botsrated.com/botpulse","note":"Infra change feed (MCP, x402, Base/CDP, framework adapters). Not seller monitoring and not a score: to watch sellers you pay, use alerts-50."},{"plan":"botpulse-business","price_usd_per_30_days":"49","amount_atomic":"49000000","endpoints":5,"discord_webhooks":true,"history_rate_per_min":300,"delivery":"each published digest, right after it is published (event-style: a digest is published when a watchlist item changes, not on a fixed weekday schedule)","includes":"Everything in botpulse-indie, delivered to up to 5 endpoints: signed webhooks and/or Discord channel webhooks (posted as a formatted message, so your team channel gets each digest), plus the full digest history at 300 requests/min. Telegram: point a signed webhook at your own bot or relay.","subscribe":"POST https://botsrated.com/v1/subscribe/botpulse-business (x402) {\"webhook_urls\":[\"https://you.example/hook\"]}","history":"GET https://botsrated.com/v1/botpulse/history (Authorization: Bearer <token>)","free":"https://botsrated.com/v1/botpulse/latest and https://botsrated.com/v1/botpulse/feed.json (latest 4 digests) stay free","about":"https://botsrated.com/botpulse","note":"Infra change feed (MCP, x402, Base/CDP, framework adapters). Not seller monitoring and not a score: to watch sellers you pay, use alerts-50."}],"data":[{"plan":"data-starter","price_usd_per_30_days":"49","amount_atomic":"49000000","includes":"Bearer token: /v1/check, /v1/report and /v1/best without per-call payment for 30 days (fair use, 60 requests/min).","subscribe":"POST https://botsrated.com/v1/subscribe/data-starter (x402)"},{"plan":"data-pro","price_usd_per_30_days":"199","amount_atomic":"199000000","includes":"Bearer token: /v1/check, /v1/report and /v1/best without per-call payment for 30 days (600 requests/min). Planned: signed change feed for all hosts.","subscribe":"POST https://botsrated.com/v1/subscribe/data-pro (x402)"},{"plan":"custom","price_usd_per_30_days":"499+","includes":"Custom volume or bulk delivery, with support terms agreed per contract. Write to botsrated@gmail.com.","contact":"botsrated@gmail.com"}],"webhooks":{"delivery":"POST JSON to your webhook_url; no email.","signature":"Headers X-BotsRated-Key-Id (botsrated-prober-1), X-BotsRated-Timestamp, X-BotsRated-Signature: base64 ed25519 signature over the canonical JSON {\"m\":\"<timestamp>.<raw body>\"} (that is, JSON.stringify({ m: timestamp + \".\" + rawBody })). The X-BotsRated-Signed header repeats this rule. Public key: /.well-known/botsrated-key. Reject timestamps older than 5 minutes.","verification":"At subscribe time we POST {type:'botsrated.verify', challenge}; answer 2xx with the challenge in the body. https on a public DNS name only, no redirects."},"client_note":"x402 client libraries cap single payments by default (for example @x402/fetch spendControls.maxAmountPerPayment is $1). Raise that cap to the plan price ($29 for alerts-50) for the subscribe call only, before the 402, or your client refuses it. The webhook is verified on the unpaid request, before any 402.","start_here":"alerts-50: $29 USDC per 30 days, up to 50 seller hosts. Signed webhook on payTo, quoted price, valid 402 (lost/regained), delisted/relisted or stale; the same token reads /v1/check and /v1/report for those hosts (60 requests/min). alerts-10 ($9, 10 hosts) is the same plan for a smaller list.","same_price_note":"Two plans cost $49 and do different jobs: data-starter = BotsRated data token for /v1/check and /v1/report on all hosts without per-call payment (60 requests/min); botpulse-business = BotPulse infra digest delivery to up to 5 endpoints incl. Discord. Neither includes the other.","webhook_only_note":"Alerts are webhook only (no email) on purpose: made for bots and servers, and every message is signed.","data_starter_note":"$49 = 49,000 checks at $0.001 or 24,500 reports at $0.002 (after the free daily allowance). Above that many paid calls in 30 days, data-starter costs less than per call.","manage":{"status":"GET https://botsrated.com/v1/subscription (Authorization: Bearer <token>)","update":"POST https://botsrated.com/v1/subscription/update {hosts, webhook_url} (BotPulse: {webhook_urls})","cancel":"POST https://botsrated.com/v1/subscription/cancel"}}}