api reference
endpoints, pricing, and how to pay without an account
the API lives at api.regressionincoming.fyi. it serves structured JSON for every player in the rankings.
payments use the x402 protocol: HTTP 402, USDC on Base, no account required. an agent that understands x402 can hit the endpoint, pay inline, and receive data in a single round-trip.
pricing
three tiers. no subscription required.
| tier | cost | what you get |
|---|---|---|
| free | $0 | QB1/RB1/WR1/TE1 snapshot, rate-limited |
| full list | $1.00 USDC/call | complete 412-player rankings or full draft board |
| single player | $0.10 USDC/call | one player lookup |
| 7-day bundle | $3.00 USDC | unlimited calls + draft kit ZIP |
payment is USDC on Base via x402 — no account, no registration, no subscription.
free endpoint
no payment, no wallet, rate-limited to 30 requests/minute per IP.
GET https://api.regressionincoming.fyi/v1/free/rankings/top1
returns the top-ranked player at each position (QB1, RB1, WR1, TE1) with projected points and confidence score. use this to verify the API is alive before paying.
paid endpoints
full-list endpoints cost $1.00 per call. single-player lookups cost $0.10 per call. all paid via USDC on Base with x402.
full rankings — $1.00
GET https://api.regressionincoming.fyi/v1/rankings/preseason
- returns: all 412 players with full projection fields
- query parameters:
position=QB|RB|WR|TE— filter by positionlimit=N— top N players (max 412)min_confidence=0.65— filter by minimum confidence score
single-player lookup — $0.10
GET https://api.regressionincoming.fyi/v1/rankings/preseason/{player_id}
- returns: single player row by nflreadpy player_id
half-PPR draft board — $1.00
GET https://api.regressionincoming.fyi/v1/draft-board/half-ppr
- returns: VOR-based draft board for half-PPR scoring, all positions ordered by draft value
single-player draft slot — $0.10
GET https://api.regressionincoming.fyi/v1/draft-board/half-ppr/{player_id}
- returns: single player draft slot
7-day bundle — $3.00
one payment, draft week covered.
POST https://api.regressionincoming.fyi/v1/bundle/purchase
- cost: $3.00, USDC on Base via x402, paid once
- returns: JWT bearer token valid for 7 days + draft kit ZIP URL
- covers: all paid endpoints, unlimited calls for 7 days
pass the token as a bearer header on subsequent calls:
Authorization: Bearer <your-token>
download the draft kit at any time during the 7-day window:
GET https://api.regressionincoming.fyi/v1/bundle/draft_kit.zip
returns rankings + draft board CSVs + methodology README in a ZIP.
response format
every rankings response returns a players array:
{
"data_version": "2026-preseason-v3",
"generated_at": "2026-06-01T12:00:00Z",
"players": [
{
"player_id": "00-0034796",
"name": "Jaxson Dart",
"team": "NYG",
"position": "QB",
"rank": 1,
"proj_fp_per_game": 18.4,
"proj_season_fp": 294.4,
"confidence": 0.70,
"age": 22,
"age_multiplier": 1.12,
"sos_adjustment": 0.98,
"depth_rank": 1
}
]
}
x402 payment flow
the x402 protocol works in two steps:
step 1: call the endpoint without payment. you receive a 402 response with payment details:
{
"x402Version": 1,
"accepts": [{
"scheme": "exact",
"network": "base-mainnet",
"maxAmountRequired": "1000000",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"payTo": "<wallet-address>",
"extra": { "name": "USDC", "decimals": 6 }
}]
}
step 2: attach payment in the X-PAYMENT header and retry:
from x402 import facilitate_payment
response = requests.get(url)
if response.status_code == 402:
payment = facilitate_payment(response)
response = requests.get(url, headers={"X-PAYMENT": payment})
agents using coinbase's x402 client library handle both steps automatically.
what "x402" means for humans
you need a wallet that holds USDC on Base. the most common options:
- coinbase wallet (easiest for Base)
- metamask with Base network added
- any EVM-compatible wallet that supports Base mainnet
you don't need an exchange account. you don't need KYC. you just need USDC on Base.
if you'd rather not deal with crypto: the Substack newsletter is free and covers all the same rankings in readable form.
discovery manifest
machine-readable endpoint listing for agents:
GET https://api.regressionincoming.fyi/v1/discovery/resources
openapi spec
GET https://api.regressionincoming.fyi/openapi.json
interactive docs at https://api.regressionincoming.fyi/docs.
health check
GET https://api.regressionincoming.fyi/v1/health
returns current API version, data version, and model last-updated timestamp. no payment required.
rate limits
- free endpoint: 30 req/min/IP
- paid endpoints: 60 req/min per paying address
- bundle (JWT): 120 req/min
support
if something's broken: x.com/regression_inc. best-effort uptime, no SLA.