BotsRated

What We Check For

Before your agent pays a service, these are the problems worth knowing about. We test 4,514 pay-per-call services without paying, have checked 33,147 MCP servers (33,622 listed), and publish what we find.

Is It Up?

We call each pay-per-call service about every 30 minutes: busy or recently changed ones every few minutes, quiet ones once a day, without paying. A working one answers with a proper payment request (in the x402 standard, that is a “402 Payment Required” reply). No answer, an error or a timeout counts as offline.

Is The Payment Address The Same?

Every payment request names the wallet to pay (the “payTo” address). We compare it with the same service's previous request. A sudden change can be a planned rotation, or a sign that something is wrong. The free payment guard (@botsrated/x402-preflight / botsrated 0.2.1) warns by default when the payTo is one we have never seen for that service, or stops the payment if you choose — install from the home page snippets.

Is The Price What It Says?

We compare the price in each payment request with the price in the directory listing. Some differences are normal, like prices that depend on the request.

How Fast Does It Answer?

We record how long every test call takes, and show the typical (median) time and the slow end.

Does A Real Purchase Work?

We also buy from services with a capped wallet and publish each result with its blockchain transaction. A failed purchase is held privately and published only after the service has had at least 72 hours' notice.

Resent Payment Check

This check is not offered. A settled x402 payment can't be charged twice.

MCP Servers

For MCP servers (tool servers that AI assistants connect to) we connect without logging in and ask for the list of tools. We're still working through the official registry, so not every listed server has been checked yet. We never pay or send credentials, and we call only tools that state a price (at most 2 unpaid calls, to read the payment request).

What We Found

What We MeasuredShareOut Of
Test calls that found a working service offline or not ready to take payment1.26%523,572 test calls
Payment requests with a changed payment address (payTo)0.52%504,902 payment requests
Payment requests asking for a different price than the listing20.3%81,018 payment requests

Across services that asked for payment correctly at least once on a given day, over our most recent completed days (UTC). Raw data: /v1/rates.

How This Is Calculated

  • What We Count. Our own unpaid test calls to the main route of each pay-per-call service, on our most recent completed UTC days (up to the last 7), for services that asked for payment correctly at least once on a given day (so services that are simply gone don't inflate the numbers). The address and price shares use services whose checks on a given day were all on their main route. The figures come from our signed daily summaries.
  • Offline = a test call that got no proper payment request: an error, a timeout or another status. Changed payment address = a proper payment request whose payTo differs from that service's previous one. Different price = a payment request whose price differs from the listing.
  • What We Don't Count. We don't count time saved, and we don't turn these rates into dollars lost. A failed call usually isn't charged, and some address and price changes are legitimate. We only show a share when it rests on at least 1,000 test calls (or payment requests) across at least 100 services.
  • Full details: Methodology. Numbers are recomputed from our database every few minutes (computed 2026-10-27T04:04:13Z).