Draftanomics
Public API · v0

Build on the board.

Consensus boards, mock-draft ADP, tier predictions, sealed pre-draft ledgers and hindsight re-grades — the kind of data that usually sits behind a four-figure annual paywall, served free over JSON. No key, no signup, no delay. One condition: if you publish with it, link back to the page you pulled it from.

01

The deal

Free for any use, with a visible link

Everything on this page is free for any use — newsletters, Discord bots, research papers, models trained on top of ours — with one requirement: visible attribution. A link to the Draftanomics page the data came from (the consensus board, a ledger snapshot, a re-grade) wherever the numbers appear. “Data: Draftanomics” with a link is enough.

Every public response carries a reminder in its headers:

X-Draftanomics-Attribution: required - free with a visible link; see https://draftanomics.com/developers

If you are citing a pre-draft claim, cite the ledger. Snapshots are sealed before the draft and shipped with a content hash, so “here is what the model said in February” is verifiable — by you and by anyone checking your work.

Quick start — no key, works from a browser, a bot or a notebook:

curl "https://draftiqapi.onrender.com/api/consensus-board?year=2026&limit=5"
02

The endpoints

The v0 public subset — read-only, no auth, no user data

Base URL: https://draftiqapi.onrender.com. All endpoints return JSON. Paths not listed here — anything under auth, user state or admin — are not part of the public API and can change or disappear without notice.

  • GET /api/consensus-board

    The consensus big board — every comprehensive analyst board we ingest, weighted by a decade of hindsight (2015–2024), with the model's grade laid over the top. Filter with ?year, ?position, ?verdict, ?limit.

    curl "https://draftiqapi.onrender.com/api/consensus-board?year=2026&position=QB&limit=10"
  • GET /api/prospects/{player_id}/consensus

    One prospect's consensus detail: the aggregated rollup plus every raw per-source mention — which analyst had him where.

    curl "https://draftiqapi.onrender.com/api/prospects/{player_id}/consensus"
  • GET /api/ledger

    The ledger index: every draft year with sealed pre-draft snapshots. Add /{year} for the snapshot list, /{year}/latest for the newest, or /{year}/{snapshot_id} for one frozen board with its hash.

    curl "https://draftiqapi.onrender.com/api/ledger/2026/latest"
  • GET /api/regrade/{year}

    A past class re-graded against real careers: round 1 versus career value, the redraft top 32, steals, busts and consensus misses. /api/regrade/years is the index; add /{team} for one franchise.

    curl "https://draftiqapi.onrender.com/api/regrade/2020/KC"
  • GET /api/years/{year}/mock-consensus

    Mock-draft ADP: where the mock-draft industry has each prospect going, rolled up across outlets. Sub-routes: /sources, /disagreements (mock ADP versus board rank) and /movers (risers and fallers).

    curl "https://draftiqapi.onrender.com/api/years/2026/mock-consensus/movers"
  • GET /api/prospects/{player_id}/mock-consensus

    One prospect's mock-draft view: the aggregated pick-ADP plus every raw per-source projection.

    curl "https://draftiqapi.onrender.com/api/prospects/{player_id}/mock-consensus"
  • GET /api/years/{year}/tier-predictions

    The model's four-tier outcome predictions — bust, role player, starter, elite — with 95 percent confidence intervals, from the latest prediction run.

    curl "https://draftiqapi.onrender.com/api/years/2026/tier-predictions?limit=32"
  • GET /api/sleepers

    Where the model and the consensus disagree most. ?direction=bullish for prospects the model likes better than the room; bearish for the reverse. ?year is required.

    curl "https://draftiqapi.onrender.com/api/sleepers?year=2026&direction=bullish"
  • GET /api/way-too-early

    Transparent recruiting-composite boards for classes too young to have a consensus (2028 and later). Filter with ?year, ?position_group, ?limit.

    curl "https://draftiqapi.onrender.com/api/way-too-early?year=2028&limit=25"
  • GET /api/slot-baseline

    What a typical pick at each draft slot actually returns: expected career-value percentile for picks 1 through 260, fit as a monotone curve on real careers. The baseline our re-grades measure against.

    curl "https://draftiqapi.onrender.com/api/slot-baseline"
  • GET /api/trade-charts/{chart}

    A full pick-value table, picks 1 through 260, for one trade chart: chase_stuart, jimmy_johnson, fitzgerald, pff or rich_hill. Static — cache it hard.

    curl "https://draftiqapi.onrender.com/api/trade-charts/rich_hill"
03

The model, honestly

What the numbers are, and what they are not

If you republish our grades, describe them the way we do. Out of sample, against real NFL career value, Draftanomics's board holds a rank correlation of 0.55. The analyst consensus sits at 0.45. Actual NFL draft position — the teams themselves — sits at 0.58.

So: the model beats the consensus and does not beat the teams. Teams hold private medicals, interviews and a thousand scouts; a public model that closes most of that gap from public data is the product. Please do not caption our numbers “better than NFL teams” — it isn't true, and we would rather you trust the numbers that are. Full validation, backtests and known failure modes live on the methodology page and the track record.

04

Limits and stability

Rate limits, CORS, and the v0 promise

Rate limits. 60 requests a minute per IP across the public subset, enforced softly: past the limit you get a 429 with a Retry-After header telling you how long to wait — usually a second. That is generous enough for any bot or notebook; if you need sustained volume, email christopher.gardella@gmail.com and we will work something out.

CORS. The public subset is open to every origin (Access-Control-Allow-Origin: *, no credentials), so you can call it straight from a browser app — no proxy needed.

Stability. Consider the endpoints above v0 of the public API. There is no /v0/ in the URL and there will not be — the paths stay where they are. The promise: paths and existing response fields on this page are stable; new fields may be added at any time; anything breaking is announced on /whats-new before it ships. Build parsers that tolerate new keys and you will not be surprised.

Data freshness: consensus and mock-ADP sources refresh on a rolling cadence during the draft cycle; ledger snapshots are immutable once sealed. Every response includes its own dating fields where freshness matters.