HTTP/1.1 402 PAYMENT REQUIRED agent402.base.eth · BASE · SOLANA · POLYGON · ARBITRUM · MONAD · STELLAR · ALGORAND · ROBINHOOD · USDC · USDG
Agent402 / tools / bestsellers

Agent402 bestsellers

$0.005 per call · USDC via x402 · GET /api/bestsellers

What 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

FieldTypeDescription
daysintegerAggregation window in days, 1-90 (default 30). The trend compares against the same-length window immediately before it.
sortstringRanking lens: buyers=distinct paying wallets (default, whale-resistant), sales=volume, usd=revenue, organic=organicScore (buyer diversity)
limitintegerHow 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");
Wallet-only. This tool reaches the network/browser/storage, so it is paid in USDC via x402 (no proof-of-work tier).

Related tools

agent demand radar

$0.005 · GET /api/demand-radar

What agents want that no one is serving yet — the paid intelligence layer over Agent402's agent-demand board, for x402 s…

Company research dossier

$0.10 · GET /api/research-company

One-shot company research dossier for a US-listed ticker: recent 10-K / 10-Q / 8-K filings, Form 4 insider trades (last …