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). Send GET /api/bestsellers with no required fields (3 optional) and pay $0.005 per call over x402 or MPP (there is no free tier). It returns a JSON object with days, sort, limit, recordingSince, persistent and 4 more.

Aggregate sales totals are free at /api/sales; this adds the per-tool layer they deliberately omit: 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

Category: Market & demand research · Tags: bestsellers demand market-intelligence sales x402 catalog trending discovery

TRY IN PLAYGROUND →

Parameters

NameTypeRequiredDescription
daysintegernoAggregation window in days, 1-90 (default 30). The trend compares against the same-length window immediately before it.
sortstring (one of: buyers, sales, usd, organic)noRanking lens: buyers=distinct paying wallets (default, whale-resistant), sales=volume, usd=revenue, organic=organicScore (buyer diversity)
limitintegernoHow many tools to return (1-50, default 10)

Example request

curl -i "https://agent402.tools/api/bestsellers?days=30&sort=buyers&limit=10"

Without payment this returns HTTP 402 Payment Required with the exact price for bestsellers; any x402 v2 or MPP client pays it and retries.

Example response

{
  "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"
}
FieldTypeAlways presentIn the example
daysnumberyes30
sortstringyesbuyers
limitnumberyes10
recordingSincestringyes2026-07-04T00:00:00.000Z
persistentbooleanyestrue
totalsobjectyes3 fields: sales, revenueUsd, distinctTools
bestsellersarray of objectsyes1 item in the example
notestringyesExternal paid demand only - canary/burner/heartbeat traffic excluded at the s...
generatedAtstringyes2026-07-16T00:00:05.000Z

From an MCP client

catalog.call {
  "slug": "bestsellers",
  "params": {
    "days": 30,
    "sort": "buyers",
    "limit": 10
  }
}

The hosted connector at https://agent402.tools/mcp needs a payment for bestsellers; the stdio package pays it from a wallet or from AGENT402_CREDITS_KEY. Local install: npx -y agent402-mcp.

Errors and behavior

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();
client.setSpendControls?.(false); // keep your own spending ceiling in code
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

$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…

x402 trending sellers

$0.005 · GET /api/x402-trending

Momentum radar for the x402 seller ecosystem - which sellers are heating up, graded for wash-trade resistance. Reads the…

Crypto trending

$0.001 · GET /api/crypto-trending

Trending coins on CoinGecko in the last 24 hours, ranked by user search activity on the site (currently ~15 results). In…

Decide: tool plan for a task

$0.005 · POST /api/decide

Describe a job and get a call-ready plan: which tools, across this catalog and outside x402 sellers with a recently veri…

Farcaster trending channels

$0.004 · POST /api/fc-trending

Trending Farcaster channels ranked by casting activity over 1d, 7d or 30d, with cast counts for all three windows, follo…

x402 seller dossier

$0.05 · POST /api/seller-dossier

Everything Agent402 knows about one x402 seller origin, in one read: identity and crawl history, the catalog with the pr…