Nerf Radar › API

Nerf Radar API for agents

Structured, source-linked patch data for AI agents, game-assistant bots and Discord bots. Discovery endpoints are free; full patch data and cross-patch queries are paid per call with x402 (HTTP 402 with USDC). No signup, no API key.

Live payments: paid endpoints accept real USDC on Base mainnet (eip155:8453). Payments settle on-chain through the Coinbase CDP x402 facilitator.

Endpoints

EndpointPriceReturns
GET /api/gamesfreeSupported games, publishers, release status (beta, early access), official patch-notes URLs, patch and change counts, and the newest and oldest tracked patch.
GET /api/patches?game=&limit=freeLatest patches, newest first: id, version, title, publish date, official URL, TL;DR and counts by change type.
GET /api/patch/:id$0.01Full structured patch: TL;DR, who it matters to, and every change with change_type, before and after, a summary and the verbatim source_text.
GET /api/changes?target=&game=&type=&limit=$0.02Change history: every recorded change to a target (class, ability, champion, agent, hero, weapon, item or system) across up to the 10 most recent official patches per game. Target-name matches come first, then other mentions, each newest first; each result carries its patch and official URL, and a history block lists the patches and dates per target. Returns up to 200 results by default (limit up to 500).

Games

Gamegame slugStatusExample target
World of Warcraft: Foreverworld-of-warcraft-foreverBetaDruid, Warrior
Counter-Strike 2counter-strike-2ReleasedRush, Ancient
League of Legendsleague-of-legendsReleasedBel'Veth, Locke
VALORANTvalorantReleasedBucky, Judge
DeadlockdeadlockReleasedCeleste, Viscous
WARDOGSwardogsEarly AccessZ20 Lakota, CIWS

Beta patches carry "channel": "beta" in the API; released builds omit the field. Coverage goes back up to 10 official updates per game (hotfixes and minor updates count when the publisher lists them separately); GET /api/games gives each game's patch count and date range. On the site, every target changed in more than one patch has a change-history page, for example K'Sante.

How payment works

  1. Call a paid endpoint. You get 402 Payment Required with a base64 PAYMENT-REQUIRED header (x402 v2; the JSON body mirrors it): scheme exact, network eip155:8453 (Base), USDC amount in 6-decimal units (10000 = $0.01), payTo.
  2. Sign a USDC transfer authorization with any x402 client (for example @x402/fetch) and retry with the PAYMENT-SIGNATURE header.
  3. Get JSON plus a PAYMENT-RESPONSE settlement header. Unknown ids return 404 before any payment is requested.
curl -i https://nerfradar.com/api/patch/lol-26-20
# HTTP/1.1 402 Payment Required
# PAYMENT-REQUIRED: eyJ4NDAyVmVyc2lvbiI6Mi…

# TypeScript (x402 client with a Base wallet that holds USDC)
import { wrapFetchWithPayment } from "@x402/fetch";
const pay = wrapFetchWithPayment(fetch, client); // client = x402Client with an EVM signer
const patch = await (await pay("https://nerfradar.com/api/patch/lol-26-20")).json();
const ksante = await (await pay("https://nerfradar.com/api/changes?game=league-of-legends&target=K'Sante")).json();
const druid = await (await pay("https://nerfradar.com/api/changes?game=world-of-warcraft-forever&target=Druid")).json();
const wowBeta = await (await pay("https://nerfradar.com/api/patch/wowf-2026-10-06")).json();

Change object

{
  "id": "lol-26-20-012",
  "target": "K'Sante",
  "category": "champion",
  "scope": "Summoner's Rift",
  "ability": "W - Path Maker",
  "stat": "Mana Cost",
  "change_type": "nerf",
  "label_basis": "numbers",
  "before": "40 / 45 / 50 / 55 / 60",
  "after": "45 / 50 / 55 / 60 / 65",
  "summary": "Mana cost on K'Sante's Path Maker (W) increases from 40 / 45 / 50 / 55 / 60 to 45 / 50 / 55 / 60 / 65.",
  "source_text": "Mana Cost: 40 / 45 / 50 / 55 / 60 → 45 / 50 / 55 / 60 / 65"
}

Categories: champion, agent, hero, weapon, item, augment, map, mode, system, client, progression, competitive, class, race, dungeon, quest, profession, pvp. Change types: buff, nerf, adjust, new, removed, fix. label_basis says why a change carries its label: numbers, publisher (the notes say so; see label_note), mechanics (see label_note), explicit (the notes call it new, removed or fixed) or neutral.

Discovery: paid routes carry x402 Bazaar discovery metadata (an input schema and an output example) in their 402 responses so agent marketplaces can index them. Payment address on Base: 0x76f1E6ecBBebd59727F448099D306Ec2ed4906Ea.