Agent402 bestsellers
GET /api/bestsellersWhat agents actually pay for on a 500+ tool x402 catalog — the paid intelligence layer over Agent402's own sales ledger, the one demand signal that never reaches the chain (settlements are on-chain; WHICH tool was bought is not). The raw merchant feed stays free at /api/sales; this adds the analysis it doesn't have: pick the window (days 1-90) and the ranking lens with sort: 'buyers' (distinct paying wallets, default — the whale/wash-resistant read), 'sales' (volume), 'usd' (revenue), or 'organic' (buyers-per-sale diversity grade, same metric as x402-trending); every row carries all lenses plus organicScore, avgTicketUsd, revenueShare, and a trend vs the previous same-length window (deltaSales + rising/flat/cooling/new — never faked: a row with no prior-window sales says 'new'). Canary/burner/heartbeat traffic is excluded at the source, and if this tool ranks in its own chart the row is flagged isSelf:true rather than hidden — buying the chart puts you on the chart. ?sort=buyers&days=30&limit=10
Input
| Field | Type | Description |
|---|---|---|
days | integer | Aggregation window in days, 1-90 (default 30). The trend compares against the same-length window immediately before it. |
sort | string | Ranking lens: buyers=distinct paying wallets (default, whale-resistant), sales=volume, usd=revenue, organic=organicScore (buyer diversity) |
limit | integer | How many tools to return (1-50, default 10) |
Example output
{
"days": 30,
"sort": "buyers",
"limit": 10,
"recordingSince": "2026-07-04T00:00:00.000Z",
"persistent": true,
"totals": {
"sales": 63,
"revenueUsd": 0.58,
"distinctTools": 12
},
"bestsellers": [
{
"rank": 1,
"slug": "vin-decode",
"sales": 14,
"revenueUsd": 0.056,
"revenueShare": 0.0966,
"buyers": 6,
"organicScore": 0.4286,
"avgTicketUsd": 0.004,
"firstAt": "2026-07-05T11:00:00.000Z",
"lastAt": "2026-07-14T09:30:00.000Z",
"prevSales": 3,
"deltaSales": 11,
"trend": "rising"
}
],
"note": "External paid demand only — canary/burner/heartbeat traffic excluded at the source.",
"generatedAt": "2026-07-16T00:00:05.000Z"
}
Try it — see the 402 challenge (free)
curl -i "https://agent402.tools/api/bestsellers?days=30&sort=buyers&limit=10"
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";
const client = new x402Client();
registerExactEvmScheme(client, { signer: privateKeyToAccount(KEY) });
const payFetch = wrapFetchWithPayment(fetch, client);
const res = await payFetch("https://agent402.tools/api/bestsellers?days=30&sort=buyers&limit=10");
Related tools
agent demand radar
GET /api/demand-radarWhat agents want that no one is serving yet — the paid intelligence layer over Agent402's agent-demand board, for x402 s…
Company research dossier
GET /api/research-companyOne-shot company research dossier for a US-listed ticker: recent 10-K / 10-Q / 8-K filings, Form 4 insider trades (last …