Feedback tally by tool
GET /api/feedback/summaryWhat paying buyers said about each tool on this server: good and bad counts and the number of distinct wallets behind them, over a window you choose. Every verdict counted here was written by the wallet that paid for that specific call, one per settlement transaction, so the numbers cannot be inflated by anyone who did not buy. Counts only - no payer addresses and no review text, ever. Bad counts are published beside good ones, including ours.
Input
| Field | Type | Description |
|---|---|---|
days | number | Window in days, 1-3650 (default 90). |
slug | string | Limit the tally to one tool slug. |
Example output
{
"windowDays": 90,
"tools": [
{
"slug": "crypto-price",
"good": 14,
"bad": 1,
"total": 15,
"raters": 9
},
{
"slug": "research",
"good": 3,
"bad": 0,
"total": 3,
"raters": 3
}
],
"totals": {
"good": 17,
"bad": 1,
"total": 18,
"tools": 2
},
"note": "Counts only. Every verdict was written by the wallet that paid for that call, one per settlement transaction. `raters` is distinct wallets: ten verdicts from one wallet is one opinion. Who said what, and their words, are never published."
}
Try it - see the 402 challenge (free)
curl -i "https://agent402.tools/api/feedback/summary?days=90"
The response is HTTP 402 Payment Required with exact payment requirements. Any x402 v2 client pays automatically and retries:
Paid call (JavaScript agent)
import { wrapFetchWithPayment } from "@x402/fetch";
import { x402Client } from "@x402/core/client";
import { registerExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";
import { metaTitle, metaDescription } from "./seo-meta.js";
const client = new x402Client();
registerExactEvmScheme(client, { signer: privateKeyToAccount(KEY) });
const payFetch = wrapFetchWithPayment(fetch, client);
const res = await payFetch("https://agent402.tools/api/feedback/summary?days=90");
No wallet? Pay with compute
This is a pure-CPU tool, so an agent without a wallet can pay with proof-of-work instead of USDC: fetch a challenge, solve the sha256 puzzle (16 leading zero bits - a fraction of a second of CPU, no money, no AI tokens), and resend with the X-Pow-Solution header.
import { createHash } from "node:crypto";
const lz = (b) => { let t = 0; for (const x of b) { if (!x) { t += 8; continue; } t += Math.clz32(x) - 24; break; } return t; };
const c = await (await fetch("https://agent402.tools/api/pow/challenge?slug=feedback-summary")).json();
let n = 0;
while (lz(createHash("sha256").update(c.challenge + ":" + n).digest()) < c.difficulty) n++;
await fetch("https://agent402.tools/api/feedback/summary", { method: "GET", headers: { "X-Pow-Solution": c.token + ":" + n } });
Related tools
x402 market pulse
GET /api/x402-market-pulseLive cross-provider x402 market sentiment. topProviders: the top x402 sellers ecosystem-wide, ranked by REAL on-chain ac…
try in playground →x402 quote
GET /api/x402-quoteProbe any URL and decode its HTTP 402 payment requirements (price, asset, network, pay-to) into clean JSON - what an age…
try in playground →USDC balance
GET /api/usdc-balanceRead the USDC balance of any address on Base, Polygon, Arbitrum, Optimism, Ethereum, Monad, Celo, Avalanche, or Sei. Rea…
try in playground →