DEVELOPER DOCS
NOPUNT API
Everything we publish is also exposed as JSON. Permissive CORS so you can call it from any frontend. Use it for dashboards, Discord bots, Twitter automation, fantasy-league widgets, whatever you build, ship it.
⚠JSON endpoints need no authentication. /api/picks.json returns the full analytical read for every game, pick side, tier, confidence, predicted margin, spread, and moneylines. Pro sessions additionally receive the Edge fields. CSV data exports are Pro only and require an active session.
# Quick start
curl https://www.nopunt.com/api/picks.json
curl "https://www.nopunt.com/api/players.json?pos=RB&limit=10"
curl https://www.nopunt.com/api/power-rankings.json
curl "https://www.nopunt.com/api/fantasy.json?pos=RB" # Pro only
curl https://www.nopunt.com/api/player-props.json # Pro only
PICKS
Current and historical game picksGET/api/picks.jsonCACHE 5 MINUTESTry it → The most recently published slate, confidence tiers, spreads, model moneylines, and predicted margins. Read slate_state before treating these as upcoming: it is "upcoming" before the first kickoff, "in_progress" during the week, and "final" once the last game has been played. Between the end of one week and Wednesday's new picks, the newest slate is a completed one.
EXAMPLE RESPONSE
{
"season": 2024,
"week": 12,
"generated_at": "2024-11-19T14:00:00.000Z",
"slate_state": "upcoming",
"picks": [
{
"game_id": "2024_12_SF_GB",
"away_team": "SF",
"home_team": "GB",
"pick_team": "SF",
"pick_side": "AWAY",
"tier": "S",
"confidence": 0.83,
"predicted_margin": -11.5,
"spread": -8,
"model_ml": -320,
"live_ml": -310,
"kickoff_at": "2024-11-24T18:25:00Z"
}
]
}GET/api/picks/{season}/{week}.jsonCACHE 24 HOURS
Any historical week with picks and final results joined. Returns 404 if the week has no picks on file.
EXAMPLE RESPONSE
{
"season": 2024,
"week": 5,
"generated_at": "2024-10-09T12:00:00.000Z",
"slate_state": "final",
"picks": [
{
"game_id": "2024_05_ARI_SF",
"away_team": "ARI",
"home_team": "SF",
"pick_team": "SF",
"pick_side": "HOME",
"tier": "A+",
"confidence": 0.733997,
"predicted_margin": 8.4,
"spread": 7,
"model_ml": -274,
"live_ml": null,
"kickoff_at": "2024-10-06T20:05:00+00:00",
"result": {
"away_score": 24,
"home_score": 23,
"correct": false,
"profit": -1
}
}
]
}ANALYTICS
Performance stats, team records, rankings, and player dataGET/api/stats.jsonCACHE 10 MINUTESTry it → All-time record + per-tier hit rates + per-season breakdown. The single endpoint for embedding NoPunt performance in dashboards.
EXAMPLE RESPONSE
{
"generated_at": "2024-11-19T14:00:00.000Z",
"all_time": {
"total_games": 1615,
"decided_games": 1610,
"correct": 1070,
"accuracy": 0.6645962732919255,
"total_profit": 102.32
},
"by_tier": {
"S": { "total": 86, "wins": 72, "accuracy": 0.8372, "profit": 0.0072 },
"A+": { "total": 201, "wins": 151, "accuracy": 0.7512, "profit": -2.1298 }
},
"by_season": [
{ "season": 2025, "total": 271, "wins": 185, "accuracy": 0.6827, "profit": 25.8468 }
],
"weeks_with_picks": 107
}GET/api/teams.jsonCACHE 10 MINUTESTry it → 32-team list with NoPunt's pick history per franchise: when we picked them, when we picked against them, combined accuracy.
EXAMPLE RESPONSE
{
"generated_at": "2024-11-19T14:00:00.000Z",
"teams": [
{
"abbr": "KC",
"slug": "kc",
"picks_for": 42,
"picks_for_wins": 28,
"picks_for_pct": 0.667,
"picks_against": 18,
"picks_against_wins": 10,
"picks_against_pct": 0.556,
"combined_accuracy": 0.633,
"last_kickoff": "2024-11-17T20:25:00Z"
}
]
}GET/api/team/{abbr}CACHE 10 MINUTES
Comprehensive per-team analytics hub: EPA performance, coaching tendencies, playoff simulation odds, and NoPunt pick history.
EXAMPLE RESPONSE
{
"season": 2024,
"team": { "abbr": "KC", "slug": "kc", "power_rank": 3 },
"picks": { "for_record": "28-14", "for_pct": 0.667, "total_games": 60 },
"epa": { "net_epa_play": 0.098, "off_epa_play": 0.065, "def_epa_play": -0.033 },
"coaching": { "pass_rate": 0.617, "fourth_down_go_rate": 0.167, "red_zone_td_rate": 0.792 },
"playoffs": { "playoff_pct": 0.942, "super_bowl_pct": 0.187 }
}GET/api/power-rankings.jsonCACHE 1 HOURTry it → 32 teams ranked by composite EPA. Each row includes off_epa_play, def_epa_play, net_epa_play, success rates, and PPG.
EXAMPLE RESPONSE
{
"season": 2024,
"generated_at": "2024-11-19T14:00:00.000Z",
"rankings": [
{
"rank": 1,
"team": "BAL",
"slug": "bal",
"net_epa_play": 0.142,
"off_epa_play": 0.098,
"def_epa_play": -0.044,
"off_success": 0.48,
"def_success": 0.38,
"points_for": 312,
"points_against": 218,
"games_played": 11
}
]
}GET/api/players.jsonCACHE 10 MINUTESTry it → Top N stat leaders by position for the current season (or a specified week). Supports passing/rushing/receiving/PPR.
EXAMPLE RESPONSE
{
"season": 2024,
"view": "season",
"pos": "QB",
"stat": "passing_yards",
"limit": 3,
"leaders": [
{
"player_name": "Joe Burrow",
"team": "CIN",
"position": "QB",
"stat_total": 4918,
"games_played": 17,
"passing_yards": null,
"passing_tds": null,
"fantasy_points_ppr": null
}
]
}GET/api/nextgen.jsonCACHE 10 MINUTESTry it → Next Gen Stats leaderboard (public, CORS-enabled). Passing/rushing/receiving process metrics. week=0 (default) is the season aggregate; pass a week for a weekly board.
EXAMPLE RESPONSE
{
"season": 2025,
"week": 0,
"stat_type": "passing",
"metric": "avg_time_to_throw",
"count": 20,
"leaders": [
{ "player_name": "J.Goff", "team": "det", "position": "QB", "avg_time_to_throw": 2.61 }
]
}GET/api/advanced-stats.jsonCACHE 10 MINUTESTry it → Pro-Football-Reference advanced-stat leaderboard (public, CORS-enabled). Season-level leaders for a chosen advanced metric (pressure, drops, YBC/YAC, coverage, ...).
EXAMPLE RESPONSE
{
"season": 2025,
"stat_type": "receiving",
"metric": "yards_per_target",
"label": "Yards / Target",
"count": 20,
"leaders": [
{ "player_name": "N.Collins", "team": "hou", "games": 12, "value": 11.4 }
]
}GET/api/game-wp.jsonCACHE 1 HOURTry it → In-game win-probability data (public, CORS-enabled). Two modes: pass game_id for a single game's WP curve; omit it (optionally with season) for that season's most dramatic games. SOURCE: the curve is nflfastR's play-by-play home_wp, not a NoPunt model output. Our own numbers are the pregame ones on /api/picks.json.
EXAMPLE RESPONSE
{
"season": 2025,
"count": 12,
"games": [
{ "game_id": "2025_04_BUF_NE", "matchup": "BUF @ NE", "week": 4, "drama_score": 88, "wp_swings": 6 }
]
}GET/api/fantasy.jsonCACHE NOT CACHED (PRO-GATED, PER-REQUEST)Try it → PRO ONLY (403 without an active subscription). PPR fantasy projections for a week: projected points, position rank, the player's 4-week rolling average, the opponent's defensive rank against the position, and a confidence grade. Defaults to the latest week with projections.
EXAMPLE RESPONSE
{
"season": 2025,
"week": 18,
"pos": "RB",
"count": 140,
"projections": [
{
"id": 48211,
"season": 2025,
"week": 18,
"player_id": "00-0038542",
"player_name": "B.Robinson",
"position": "RB",
"team": "atl",
"opponent": "no",
"projected_points": 30.78,
"position_rank": 1,
"rolling_avg_4": 21.4,
"opponent_def_rank": 27,
"confidence": "A"
}
]
}GET/api/player-props.jsonCACHE NOT CACHED (PRO-GATED, PER-REQUEST)Try it → PRO ONLY (403 without an active subscription). Player prop projections with floor/ceiling and matchup context. Default view returns the top high-confidence model edges; view=all returns every projection grouped by player.
EXAMPLE RESPONSE
{
"season": 2025,
"week": 18,
"view": "edges",
"count": 20,
"edges": [
{
"player_name": "N.Collins",
"position": "WR",
"team": "hou",
"opponent": "ind",
"stat_type": "receptions",
"projected": 3.7,
"floor": 2.5,
"ceiling": 4.9,
"confidence": "A"
}
]
}DATA EXPORTS
Downloadable CSV files for offline analysisGET/api/exports/predictions.csvCACHE 24 HOURSPRO
Full pick history with joined results as a downloadable CSV. Includes every pick, tier, confidence, spread, moneyline, final score, and W/L outcome. Pro only, requires an active Pro session.
EXAMPLE RESPONSE
game_id,season,week,home_team,away_team,pick_team,...,home_score,away_score,correct,profit,spread_implied_ml
2024_12_SF_GB,2024,12,GB,SF,GB,...,38,10,true,0.3922,-290
GET/api/exports/player-stats.csvCACHE 24 HOURSPRO
Per-player weekly stat lines, passing, rushing, receiving, and fantasy points. 2020-present. Pro only, requires an active Pro session.
EXAMPLE RESPONSE
player_id,player_name,position,team,season,week,...,fantasy_points_ppr
00-0034844,S.Barkley,RB,phi,2024,12,...,46.2
GET/api/exports/team-stats.csvCACHE 24 HOURSPRO
Per-team season EPA composites, offensive, defensive, net EPA per play, pass/rush splits, and point totals. Pro only, requires an active Pro session.
EXAMPLE RESPONSE
team,season,games_played,off_epa_play,def_epa_play,net_epa_play,...
KC,2024,17,0.07,0.0112,0.0588,...
META
Health checks and feedsHealth check pinging Supabase. HTTP 200 when status is "ok" or "ok_offseason_empty"; HTTP 503 when "degraded" or "stale". Anonymous callers get the status only; the detailed freshness payload (per-table staleness, latency) requires an authorized token.
EXAMPLE RESPONSE
{
"status": "ok"
}RSS 2.0 feed of the latest 50 completed games. Each item includes our pick, the spread, the final score, and the outcome. Tier, confidence, predicted margin and the Edge flag are deliberately omitted from the public feed.
EXAMPLE RESPONSE
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title>NoPunt Picks</title>
<link>https://www.nopunt.com</link>
<item>
<title>SF 27 - GB 20 (Picked SF ✓)</title>
<description>Tier S | Conf 0.78 | Spread -1.5</description>
<pubDate>Sun, 24 Nov 2024 18:25:00 GMT</pubDate>
<guid>2024_12_SF_GB</guid>
</item>
</channel>
</rss>ATTRIBUTION
The underlying play-by-play, schedules, rosters and injuries come from nflverse, released under CC BY 4.0. Reuse of that data requires the same attribution. If you build something fun on top of this API, also credit nopunt.com and link back. If you push it to production, ping us. We will link to the cool stuff in the footer.