Developer Reference

API Documentation

Complete reference for accessing NBA, MLB, NFL, FIFA World Cup 2026, and NCAAB analytics data programmatically. Build custom integrations, mobile apps, and automated workflows with SportsFBI's powerful multi-sport REST API.

Getting Started

Prerequisites

To use the SportsFBI API, you need:

  • ELITE subscription (or Admin) - direct API access is limited to ELITE and Admin accounts; PRO accounts can use Pro-tier features inside the SportsFBI app but cannot generate an API key
  • API Key - Generate from your API Keys page
  • HTTPS support - All API requests must use HTTPS

Base URL

https://app.sportsfbi.com/api

Quick Start

Make your first API request in under 60 seconds:

# Get today's NBA games curl -X GET "https://app.sportsfbi.com/api/nba/games/today" \ -H "Authorization: Bearer YOUR_API_KEY"

Authentication

All API requests require authentication using Bearer tokens. Include your API key in the Authorization header:

Authorization: Bearer sfbi_abc123...

Getting Your API Key

  1. Sign in to your SportsFBI account
  2. Navigate to API Keys
  3. Click "Generate New API Key"
  4. Copy and securely store your key (shown only once)

⚠️ Security Best Practices

  • Never commit API keys to version control
  • Use environment variables to store keys
  • Rotate keys regularly (at least every 90 days)
  • Revoke compromised keys immediately
  • Use different keys for development and production

Rate Limits

API access requires an ELITE subscription. Elite API keys are limited to 600 requests per minute and enforce fair usage across all users.

Rate Limit Headers

Every API response includes rate limit information in headers:

RateLimit-Limit: 600 RateLimit-Remaining: 587 RateLimit-Reset: 1672531200

Handling Rate Limits

When you exceed your rate limit, the API returns a 429 Too Many Requests status. Implement exponential backoff:

// Example: Exponential backoff in JavaScript async function fetchWithRetry(url, retries = 3) { for (let i = 0; i < retries; i++) { const response = await fetch(url); if (response.status !== 429) return response; const delay = Math.pow(2, i) * 1000; // 1s, 2s, 4s await new Promise(resolve => setTimeout(resolve, delay)); } throw new Error('Max retries exceeded'); }

API Endpoints

All endpoints are served from: https://app.sportsfbi.com

Every endpoint below is callable with no authentication unless marked ELITE β€” those require a valid API key. Since keys are only issued to ELITE and Admin accounts, this covers every endpoint that needs any form of sign-in or subscription tier, not just ones restricted to ELITE inside the app.

Games

GET /api/nba/games/today

Today's (or a given date's) NBA games with quality ratings, betting odds, team standings, and injuries.

Query Parameters

ParameterTypeRequiredDescription
datestringOptionalYYYY-MM-DD (defaults to today)
tzOffsetMinintegerOptionalTimezone offset in minutes, βˆ’720 to 720 (e.g. βˆ’300 for EST)
vendorstringOptionaldraftkings or fanduel (default: fanduel)
GET /api/nba/games/upcoming

Games for the next date that has non-final games after today, reusing the today endpoint's shape.

GET /api/nba/games/{nbaGameId}/lineups

Confirmed or predicted starting lineups, bench, injuries, and team standings for a specific game.

GET /api/nba/plays/{nbaGameId}

Play-by-play data grouped by quarter, plus live score, period, and clock.

GET /api/nba/betting-odds

Spreads, moneylines, and totals for up to 20 games at once.

Query Parameters

ParameterTypeRequiredDescription
gameIdsstringRequiredComma-separated NBA game IDs, max 20
vendorstringRequiredOne of fanduel, draftkings, betmgm, betrivers, caesars, fanatics, prizepicks
GET /api/nba/games/{nbaGameId}/key-suspects

Key Suspects analysis β€” players likely to exceed prop projections based on matchup, role, and usage trends.

Query Parameters

ParameterTypeRequiredDescription
modestringOptionaldfs or props (default: dfs)
vendorstringOptionalSportsbook vendor (default: fanduel)
GET /api/nba/games/{nbaGameId}/streaks

Notable consecutive-game stat streaks (30+ pts, double-double, triple-double, etc.) for starters, plus each team's win/loss streak.

GET /api/nba/games/{nbaGameId}/team-trends

Team points-for/points-against trend over the last 10 games vs. season averages, for both teams.

GET /api/nba/games/{nbaGameId}/ou-history

Historical Over/Under hit-rate splits (home/road) for both teams against a given odds vendor.

Query Parameters

ParameterTypeRequiredDescription
vendorstringOptionalOdds vendor (default: draftkings)
GET /api/nba/games/{nbaGameId}/four-factors

Team Four Factors comparison (eFG%, TOV%, OREB%, FTA rate β€” offensive and defensive) plus league averages.

GET /api/nba/games/{nbaGameId}/player/{playerId}/box-score

A single player's box score for a specific game.

GET /api/nba/games/{nbaGameId}/box-score

Every player's box score for a game in one request, keyed by player ID.

Slate & DFS

GET /api/nba/slate/dfs-ranking

Precomputed DFS score ranking for today's slate, refreshed every 5 minutes.

Query Parameters

ParameterTypeRequiredDescription
vendorstringOptionaldraftkings (default) or fanduel
GET /api/nba/slate/streak-board ELITE

Players on today's slate on an active consecutive-over prop streak (minimum streak of 2), sorted by streak length.

Query Parameters

ParameterTypeRequiredDescription
propTypestringOptionalpoints_rebounds_assists (default) or another combo stat
GET /api/nba/slate/summary

Full slate analysis β€” game environment, spreads/totals, rest days, injuries, and blowout-risk classification. Elite accounts additionally receive playerTags and slateEdge fields in the same response.

GET /api/nba/slate/value-plays ELITE

Slate players whose recent average for a stat meets or exceeds today's prop line (ratio β‰₯ 1.0).

Query Parameters

ParameterTypeRequiredDescription
propTypestringOptionalCombo stat, default points_rebounds_assists
vendorstringOptionalSportsbook vendor (default: draftkings)
GET /api/nba/slate/first-team-scorers ELITE

Slate players who scored within the first 3 minutes of Q1 in at least one recent game.

Query Parameters

ParameterTypeRequiredDescription
windowintegerOptionalGames to look back: 0 (season), 5, 10, 15, or 20 (default: 5)
GET /api/nba/slate/quarter-scorers ELITE

Slate players who scored 3+ points in every quarter in at least one recent game.

Query Parameters

ParameterTypeRequiredDescription
windowintegerOptionalGames to look back: 0 (season), 5, 10, 15, or 20 (default: 5)
GET /api/nba/slate/hit-rate ELITE

Historical Key Suspects hit/miss results for a given (or most recent completed) slate date.

Query Parameters

ParameterTypeRequiredDescription
modestringOptionaldfs or props
datestringOptionalYYYY-MM-DD, defaults to most recent completed date

Signals

GET /api/nba/slate/signals ELITE

Projected stat leaders for the next slate date, with a 5-game sparkline, opponent matchup rating, trend %, and a signal badge (elite_spot, rising, risky, consistent, value, blowout_risk).

Query Parameters

ParameterTypeRequiredDescription
statstringOptionalOne of pts, ast, reb, blk, stl, fg3m, min (default: pts)

Players β€” Free Tier

GET /api/nba/players/{playerId}

Player profile (name, position, height, weight, team).

GET /api/nba/players/{playerId}/seasons

List of seasons the player has box-score data for.

GET /api/nba/players/{playerId}/vs-opponent

The player's last 20 games (min β‰₯5 minutes) against a specific team, with a per-game log and averages.

Query Parameters

ParameterTypeRequiredDescription
teamAbbrstringRequiredTeam abbreviation (e.g. LAL)
GET /api/nba/players/{playerId}/game-log

Game-by-game statistics for a season.

Query Parameters

ParameterTypeRequiredDescription
seasonintegerRequiredSeason start year (e.g. 2025)
GET /api/nba/players/{playerId}/advanced-stats

Game-by-game advanced metrics: PIE, pace, usage%, ORtg, DRtg, TS%, and more.

Query Parameters

ParameterTypeRequiredDescription
seasonintegerRequiredSeason start year
GET /api/nba/players/{playerId}/stats

Season averages (pts, reb, ast, etc.) and games-played count.

Query Parameters

ParameterTypeRequiredDescription
seasonintegerRequiredSeason start year
GET /api/nba/players/{playerId}/injuries

Current injury status and history for a player.

GET /api/nba/players/{playerId}/contracts

Player contract details by season (cap hit, total cash, base salary, rank).

GET /api/nba/players/{playerId}/role-breakdown

Detailed 18-role archetype breakdown with scores and probabilities for the player's current classification.

GET /api/nba/players/{playerId}/role-analysis

Condensed role analysis: primary role and top-3 role distribution, with generated insight text.

GET /api/nba/players/{playerId}/matchup-analysis/{opponentTeamAbbr}

Comprehensive matchup analysis: player archetype, opponent defensive profile, usage trends, zone data, and a projected score delta.

GET /api/nba/players/{playerId}/shot-chart

Shot chart data β€” FGA/FGM/FG% across 7 distance zones plus rim/midrange/three frequencies and pull-up vs. catch-and-shoot splits.

Query Parameters

ParameterTypeRequiredDescription
seasonintegerRequiredSeason start year
GET /api/nba/players/{playerId}/shot-profile

Shot-selection shift detector comparing last-10-games shot selection to season norms, flagging shifts of 12+ percentage points.

Query Parameters

ParameterTypeRequiredDescription
seasonintegerRequiredSeason start year
GET /api/nba/players/{playerId}/defender-matchup

How opponents have performed when guarded by this player, plus a computed 0–100 defense score.

Query Parameters

ParameterTypeRequiredDescription
seasonintegerRequiredSeason start year
opponentTeamIdintegerOptionalFilter to a single opponent team
GET /api/nba/players/{playerId}/clutch-stats

Clutch performance (final margin ≀5) vs. overall season averages, plus a computed 0–100 clutch score.

Query Parameters

ParameterTypeRequiredDescription
seasonintegerRequiredSeason start year
GET /api/nba/players/{playerId}/hustle-stats

Hustle Index β€” a 0–100 composite of deflections, contested shots, charges, screen assists, loose balls, and box-outs vs. league average.

Query Parameters

ParameterTypeRequiredDescription
seasonintegerRequiredSeason start year
GET /api/nba/players/{playerId}/quarter-stats

Quarter-by-quarter (Q1–Q4) performance breakdown with a "closer" or "fast starter" trend tag.

Query Parameters

ParameterTypeRequiredDescription
seasonintegerRequiredSeason start year
GET /api/nba/players/{playerId}/scoring-sources

Season averages for scoring source breakdown (paint, fast break, second chance, off turnovers) and shot-location scoring %.

Query Parameters

ParameterTypeRequiredDescription
seasonintegerRequiredSeason start year
GET /api/nba/players/{playerId}/ball-movement

Touches, passes, secondary/FT assists, speed, and distance, plus a computed touch-based opportunity score.

Query Parameters

ParameterTypeRequiredDescription
seasonintegerRequiredSeason start year
GET /api/nba/players/{playerId}/schedule-difficulty

Upcoming schedule with a per-game opponent difficulty score based on defensive rating and opponent shooting.

Query Parameters

ParameterTypeRequiredDescription
daysintegerOptional1–14 days ahead (default: 7)
GET /api/player-injuries

All current player injuries across the league.

Query Parameters

ParameterTypeRequiredDescription
teamIdintegerOptionalFilter by team ID
statusstringOptionalout, doubtful, questionable, dtd, probable, out for season

Players β€” Elite

GET /api/nba/players/{playerId}/matchup-stats ELITE

Last-5-games averaged advanced stats with archetype/role detection and generated insights.

GET /api/nba/players/{playerId}/props ELITE

Player prop betting lines (line, over/under odds, per vendor and prop type) for a specific game.

Query Parameters

ParameterTypeRequiredDescription
game_idstringRequiredNBA game ID
GET /api/nba/players/{playerId}/props/hit-rate ELITE

Historical over/under hit rates by prop type.

Query Parameters

ParameterTypeRequiredDescription
limitintegerOptionalRecent games to analyze, 1–50 (default: 25)
prop_typestringOptionalFilter to one prop category
vendorstringOptionalFilter to one vendor
GET /api/nba/players/{playerId}/props/line-movement ELITE

Intraday prop line-movement history for a game. Elite/Admin accounts additionally see cross-vendor consensus-shift detection.

Query Parameters

ParameterTypeRequiredDescription
game_idstringRequiredNBA game ID
GET /api/nba/players/{playerId}/matchup-verdict/{opponentTeamAbbr} ELITE

Lightweight verdict-only endpoint (favorable/neutral/unfavorable) for icon color-coding in lineup cards, skipping the full projection engine.

POST /api/nba/matchup-verdicts/batch ELITE

Batch version of matchup-verdict for up to 30 player/opponent pairs in one request.

Body Parameters

FieldTypeRequiredDescription
requestsarrayRequired1–30 items, each { playerId, opponentTeamAbbr }

Leaderboards

GET /api/nba/leaderboard/{category}

Statistical leaderboards for live, daily, or full-season stats.

Query Parameters

ParameterTypeRequiredDescription
modestringOptionaltoday (live), daily (completed games), or season β€” default: today
limitintegerOptionalMax results (default: 10)
seasonYearintegerOptionalSeason year for season mode
datestringOptionalYYYY-MM-DD for daily mode
tzOffsetMinintegerOptionalTimezone offset in minutes
onlyTodayPlayersbooleanOptionalSeason mode β€” restrict to players in today's games
GET /api/nba/rules

DFS scoring rules reference (DraftKings and FanDuel point values).

GET /api/nba/league-averages

Current cached league averages (pace, defensive rating, etc.) used by the matchup engine. Force-recalculation via refresh=true is admin-only.

Teams

GET /api/nba/teams/{teamAbbr}/defensive-stats ELITE

Detailed defensive statistics: season averages, rim protection, paint defense, pace, and positional matchup breakdowns.

GET /api/nba/team/{teamId}/predicted-lineup

Predicted starting lineup based on the last 15 games of player usage.

GET /api/nba/team/{teamId}/schedule

Team schedule with results and upcoming games.

GET /api/nba/team/{teamId}/roster

Full team roster with positions, jersey numbers, and contract status.

GET /api/nba/team/{teamId}/season-stats

Team season averages β€” PPG, PAPG, pace, offensive and defensive ratings.

DFS Lineup Projections

POST /api/nba/lineup/projections ELITE

DFS lineup projection engine β€” per-player projections, lineup synergy scoring, opponent defensive profile, and role compatibility for a 2–5 player lineup.

Body Parameters

FieldTypeRequiredDescription
playerIdsarrayRequiredArray of 2–5 internal player IDs
opponentTeamAbbrstringRequiredOpponent team abbreviation (e.g. GSW)

Games

GET /api/mlb/games/today

Today's MLB schedule with betting odds and heavy matchup context β€” rest days, injuries, probable-pitcher ERA/WHIP/FIP, team OPS/wOBA, bullpen quality, and recent run differential.

Query Parameters

ParameterTypeRequiredDescription
datestringOptionalYYYY-MM-DD (defaults to today)
vendorstringOptionalOdds vendor (default: draftkings)
GET /api/mlb/games/{gameId}

Single game detail β€” full box score, odds from every vendor, pre-game lineup, and the last 50 plays.

GET /api/mlb/betting-odds

Spreads, moneylines, and totals for one or more games.

Query Parameters

ParameterTypeRequiredDescription
gameIdsstringOptionalComma-separated MLB game IDs (one of gameIds or date required)
datestringOptionalYYYY-MM-DD β€” fetches odds for every game that day
vendorstringOptionalFilter to one vendor
GET /api/mlb/games/{mlbGameId}/analysis

Game-level matchup analysis β€” run-environment/stack recommendation and pitcher-vs-lineup breakdown for both sides.

Query Parameters

ParameterTypeRequiredDescription
langstringOptionalen or es (default: en)
GET /api/mlb/games/{gameId}/player/{playerId}/box-score

A single player's batting or pitching box score line for a specific game.

GET /api/mlb/games/{gameId}/lineups

Batting lineup and probable pitchers for both teams, with standings, injuries, and predicted lineups for games without a confirmed one yet.

GET /api/mlb/plays/{mlbGameId}

Full play-by-play, grouped by inning (top/bottom), including pitch type, velocity, and trajectory where available.

GET /api/mlb/games/{gameId}/recap

AI-generated prose recap of a completed game, cached permanently once generated. Returns 400 if the game isn't final yet, 202 if a recap is already being generated.

GET /api/mlb/games/{gameId}/preview

AI-generated pregame preview with narrative, outlook, and quick facts. Generated as soon as both teams' official starting lineups post, or an hour before first pitch at the latest; falls back to an algorithmic narrative until then.

GET /api/mlb/games/{gameId}/weather

Weather and wind intelligence for the ballpark at first pitch β€” wind speed/direction, temperature, home-run boost rating, and run-environment impact.

GET /api/mlb/games/{gameId}/odds-history

Current line from every vendor plus a historical line-movement timeline for one vendor.

Query Parameters

ParameterTypeRequiredDescription
vendorstringOptionalSportsbook vendor (default: fanduel)
GET /api/mlb/games/{mlbGameId}/head-to-head

Win-count record between the two teams over their last 10 meetings.

GET /api/mlb/games/{gameId}/odds-markets

Team/game-level betting markets β€” run line, first-5-innings, correct score, team totals, and more (excludes player props; see the player-level odds-markets endpoint under Players).

Query Parameters

ParameterTypeRequiredDescription
vendorstringOptionalSportsbook vendor (default: fanduel)

Slate & DFS

GET /api/mlb/slate/summary

Today's slate overview β€” spread/total/win probability per game, run-environment classification, key injuries, probable pitchers, and per-game player tags (core/value/fade batters).

Query Parameters

ParameterTypeRequiredDescription
datestringOptionalYYYY-MM-DD (defaults to today)
GET /api/mlb/slate/hit-rate ELITE

Historical hit/miss results for the Key Suspects engine on a completed slate date (backtesting view).

Query Parameters

ParameterTypeRequiredDescription
modestringOptionaldfs or props (default: dfs)
vendorstringOptionalSportsbook vendor (default: fanduel)
datestringOptionalYYYY-MM-DD, defaults to most recent completed date
GET /api/mlb/slate/value-plays ELITE

Batters and pitchers whose recent average for a stat meets or exceeds today's live prop line.

Query Parameters

ParameterTypeRequiredDescription
propTypestringOptionalhits, total_bases, home_runs, rbis, strikeouts, runs_scored, pitcher_strikeouts (default: hits)
vendorstringOptionalSportsbook vendor (default: draftkings)
lookbackstringOptional5, 10, 20, or season (default: 5)
GET /api/mlb/slate/batting-signals ELITE

Today's projected batting-stat leaders with a sparkline, trend %, opposing-pitcher matchup rating, pitcher fatigue, and a signal badge (elite_spot, rising, risky, and more).

Query Parameters

ParameterTypeRequiredDescription
statstringOptionalhits, hr, rbi, runs, sb, tb, walks, strikeouts (default: hits)
GET /api/mlb/slate/pitching-signals ELITE

Today's projected strikeout leaders among probable starters, with recent form, opponent-lineup matchup context, and signal badges.

Query Parameters

ParameterTypeRequiredDescription
datestringOptionalYYYY-MM-DD (defaults to today)
GET /api/mlb/slate/stacks

Today's games ranked by DFS/props stack attractiveness β€” run environment, favored stack side, pitcher-vs-lineup matchup, and top recommended batters to stack.

GET /api/mlb/slate/case-builder ELITE

Auto-built parlay "cases" assembled from the Key Suspects engine across the slate, scored by suspicion score, hit rate, and odds value.

Query Parameters

ParameterTypeRequiredDescription
legsintegerOptional2–10 legs per case (default: 4)
minOddsintegerOptionalAmerican-odds floor (default: -150)
gamesstringOptionalComma-separated game IDs or all
vendorstringOptionalSportsbook vendor (default: fanduel)
GET /api/mlb/slate/ev ELITE

EV Finder β€” every vendor's game odds, plus player props with at least a +3% edge against the offered odds based on recent hit rate.

GET /api/mlb/dfs ELITE

DFS slate data β€” slates, games in the slate, roster-slot definitions, and draftable players with salary, position, and eligibility.

Query Parameters

ParameterTypeRequiredDescription
datestringRequiredYYYY-MM-DD
slateIdstringOptionalFilter to one slate
gameIdstringOptionalFilter to one game

Key Suspects

GET /api/mlb/games/{mlbGameId}/key-suspects

Ranked list of a game's most notable player-prop/DFS suspects. Free/Pro/Elite see 1/3/7 of the same curated list.

Query Parameters

ParameterTypeRequiredDescription
modestringOptionaldfs or props (default: dfs)
vendorstringOptionalSportsbook vendor (default: fanduel)
POST /api/mlb/matchup-verdicts/batch ELITE

Batch-computes a cached matchup verdict (favorable/unfavorable) for up to 30 players at once.

Body Parameters

FieldTypeRequiredDescription
gameIdstringRequiredMLB game ID
requestsarrayRequiredUp to 30 items, each { playerId }
GET /api/mlb/games/{mlbGameId}/suspects/votes ELITE

Aggregate upvote/downvote counts per suspect for a game, plus the caller's own current vote.

POST /api/mlb/games/{mlbGameId}/suspects/{playerId}/vote ELITE

Casts or toggles a vote on a suspect. Voting the same direction twice cancels it back to neutral. Returns the suspect's updated aggregate counts.

Body Parameters

FieldTypeRequiredDescription
propTypestringRequiredWhich prop the suspect refers to
voteintegerRequired1 (up) or -1 (down)

Players

GET /api/mlb/players

Player search by name β€” returns id, full name, position, and team for matches.

Query Parameters

ParameterTypeRequiredDescription
qstringRequiredName search, minimum 2 characters
GET /api/mlb/players/{playerId}

Player profile β€” name, position, jersey, bats/throws, physicals, birthplace, debut year, draft info, and current team.

GET /api/mlb/players/{playerId}/stats

Season totals and rate stats (batting and/or pitching) for one player-season.

Query Parameters

ParameterTypeRequiredDescription
seasonintegerOptionalDefaults to current year
season_typestringOptionalregular or postseason (default: regular)
GET /api/mlb/players/{playerId}/splits

Split-stat breakdown by arena, pitcher hand, day/night, month, opponent, situation, batting order, count, and position.

Query Parameters

ParameterTypeRequiredDescription
seasonintegerOptionalDefaults to current year
categorystringOptionalbatting or pitching (default: both)
GET /api/mlb/players/{playerId}/handedness-splits

AVG/OBP/SLG/OPS split vs. left- and right-handed opponents (pitchers for a batter, batters for a pitcher), with a league percentile rank.

GET /api/mlb/players/{playerId}/game-log

Per-game batting and pitching stat lines for the current season, most recent first.

Query Parameters

ParameterTypeRequiredDescription
seasonintegerOptionalDefaults to current year
limitintegerOptionalMax games (default: 30, max: 162)
GET /api/mlb/players/{playerId}/props

Player prop lines across all prop types and vendors for a specific game.

Query Parameters

ParameterTypeRequiredDescription
game_idstringRequiredMLB game ID (mlb_game_id or internal ID)
vendorstringOptionalFilter to one vendor
GET /api/mlb/players/{playerId}/odds-markets

This player's betting markets and outcomes for one game, across all vendors.

Query Parameters

ParameterTypeRequiredDescription
game_idstringRequiredMLB game ID (mlb_game_id or internal ID)
vendorstringOptionalFilter to one vendor
GET /api/mlb/players/{playerId}/props/hit-rate ELITE

Historical hit-rate tracker β€” how often the player's actual result beat the line, all-time and over the last 10 games.

Query Parameters

ParameterTypeRequiredDescription
limitintegerOptionalGames considered per prop type (default: 25, max: 50)
GET /api/mlb/players/{playerId}/props/line-movement ELITE

Intraday line movement per prop type and vendor. Elite/Admin accounts also see cross-book consensus-shift detection.

Query Parameters

ParameterTypeRequiredDescription
game_idstringRequiredMLB game ID
GET /api/mlb/players/{playerId}/pitch-type/arsenal

A pitcher's per-pitch-type arsenal β€” usage%, zone%, chase%, whiff%, contact%, and results allowed by pitch type.

Query Parameters

ParameterTypeRequiredDescription
seasonintegerOptionalDefaults to current year
GET /api/mlb/players/{playerId}/pitch-type/movement

Statcast-derived pitch movement β€” average velocity, spin rate, induced vertical break, horizontal break, and release extension per pitch type.

Query Parameters

ParameterTypeRequiredDescription
seasonintegerOptionalDefaults to current year
GET /api/mlb/players/{playerId}/pitch-type/splits

A hitter's performance against each pitch type β€” whiff/chase/contact/zone %, BA/SLG/wOBA, and outcome counts.

Query Parameters

ParameterTypeRequiredDescription
seasonintegerOptionalDefaults to current year
GET /api/mlb/players/{playerId}/injuries

Current injury status, return date, and description for a player.

GET /api/mlb/players/{playerId}/batter-matchup

Pre-game matchup packet β€” the batter's season stats and splits against the opposing probable pitcher's profile, plus career stats vs. that opponent.

Query Parameters

ParameterTypeRequiredDescription
game_idstringRequiredMLB game ID

Leaderboards

GET /api/mlb/leaderboard/{category}

Ranked season leaderboard for one batting or pitching stat category, with a 5-game sparkline.

Query Parameters

ParameterTypeRequiredDescription
seasonintegerOptionalDefaults to current year
season_typestringOptionalregular or postseason (default: regular)
limitintegerOptionalMax results (default: 25, max: 100)
onlyTodayPlayersbooleanOptionalRestrict to players in today's lineups
datestringOptionalYYYY-MM-DD, used only with onlyTodayPlayers

Teams

GET /api/mlb/teams

All MLB teams β€” ID, abbreviation, names, league, and division.

GET /api/mlb/team/{teamId}/schedule

Full season schedule for a team with scores, status, and opponent info.

Query Parameters

ParameterTypeRequiredDescription
seasonintegerOptionalDefaults to current year
GET /api/mlb/team/{teamId}/roster

Current active roster with each player's current-season batting/pitching stat line attached.

Query Parameters

ParameterTypeRequiredDescription
seasonintegerOptionalDefaults to current year
GET /api/mlb/team/{teamId}/standings

A team's standings row (wins, losses, streak) for a season.

Query Parameters

ParameterTypeRequiredDescription
seasonintegerOptionalDefaults to current year
GET /api/mlb/team/{teamId}/injuries

Team's current injury report β€” player, status, return date, and description.

GET /api/mlb/team/{teamId}/season-stats

Team batting, pitching, and fielding season totals (regular season only).

Query Parameters

ParameterTypeRequiredDescription
seasonintegerOptionalDefaults to current year
GET /api/mlb/team/{teamId}/batting-vs-hand

Team-level batting AVG/OPS vs. left- and right-handed pitching for the current season, with league rank.

Prediction Accuracy

GET /api/mlb/stats/predictions

All-time SportsFBI prediction-accuracy stats β€” predictions made/graded/hit, hit rate, key suspects surfaced, and props currently tracked.

GET /api/mlb/stats/latest-slate

Same grading methodology scoped to the single most recent fully-graded slate date.

GET /api/mlb/stats/slate-recap

Full result ledger for one date's slate β€” every game's prediction vs. actual outcome graded hit/miss/pending, plus navigable previous/next dates.

Query Parameters

ParameterTypeRequiredDescription
datestringRequiredYYYY-MM-DD
GET /api/mlb/stats/slate-recap-dates

List of the last 90 days' fully-completed slate-recap dates.

Games

GET /api/nfl/games/today

Games on a given local calendar day, with odds, a derived win/loss record, and the SportsFBI edge projection per game. NFL's slate clusters on Thu/Sun/Mon, so fallback=last walks forward to the next date with real games instead of backward.

Query Parameters

ParameterTypeRequiredDescription
datestringOptionalYYYY-MM-DD (defaults to today)
vendorstringOptionalOdds vendor (default: draftkings)
tzOffsetMinintegerOptionalClient timezone offset in minutes
fallbackstringOptionallast β€” walk forward to the next date with games if none on date
GET /api/nfl/games/{gameId}

Single game detail β€” quarter-by-quarter score, all-vendor odds comparison, frozen opening moneyline, full box score, derived team records, and the SportsFBI edge engine output.

Query Parameters

ParameterTypeRequiredDescription
vendorstringOptionalOdds vendor (default: draftkings)
GET /api/nfl/betting-odds

Spreads, moneylines, and totals for one or more games.

Query Parameters

ParameterTypeRequiredDescription
gameIdsstringOptionalComma-separated NFL game IDs (one of gameIds or date required)
datestringOptionalYYYY-MM-DD β€” fetches odds for every game that day
vendorstringOptionalFilter to one vendor
tzOffsetMinintegerOptionalClient timezone offset in minutes
GET /api/nfl/games/{gameId}/preview

AI-generated pregame preview, gated to within an hour of kickoff.

GET /api/nfl/games/{gameId}/recap

AI-generated prose recap of a completed game, cached permanently once generated. Returns 400 if the game isn't final yet, 202 if a recap is already being generated.

GET /api/nfl/games/{gameId}/odds-history

Authoritative opening line, intraday movement snapshots, and the latest quote per vendor.

Query Parameters

ParameterTypeRequiredDescription
vendorstringOptionalOne of betmgm, betrivers, caesars, draftkings, fanatics, fanduel, kalshi, polymarket (default: draftkings)
GET /api/nfl/plays/{gameId}

Full play-by-play grouped by quarter/OT, with team stats, top player-stat leaders, and a computed live-game-center overlay (win-probability deltas, event markers).

Key Suspects & Slate

GET /api/nfl/games/{gameId}/key-suspects

Ranked list of a game's most notable player-prop suspects with suspicion scores and evidence factors.

Query Parameters

ParameterTypeRequiredDescription
modestringOptionalprops (default; dfs is accepted but not yet supported for NFL)
vendorstringOptionalOne of draftkings, fanduel, betmgm, betrivers, caesars, fanatics, prizepicks
GET /api/nfl/slate/hit-rate ELITE

Historical hit/miss results for the Key Suspects engine on a completed slate date (backtesting view).

Query Parameters

ParameterTypeRequiredDescription
vendorstringOptionalSportsbook vendor (default: fanduel)
datestringOptionalYYYY-MM-DD, defaults to most recent completed date
GET /api/nfl/slate/ev ELITE

EV Finder β€” every vendor's game odds, plus player props (Pro/Elite/Admin in the app; Elite API key required for direct access) with an edge against the offered odds based on a no-vig consensus across other books.

Query Parameters

ParameterTypeRequiredDescription
datestringOptionalYYYY-MM-DD (defaults to the next scheduled game date within 21 days)
GET /api/nfl/slate/case-builder ELITE

Auto-built parlay "case" cards assembled from that day's scheduled games' Key Suspects picks, with combined American odds.

Query Parameters

ParameterTypeRequiredDescription
legsintegerOptional2–10 legs per case (default: 4)
minOddsintegerOptionalAmerican-odds floor (default: -150)
gamesstringOptionalComma-separated game IDs or all
vendorstringOptionalOne of draftkings, fanduel, betmgm, betrivers, caesars, fanatics, prizepicks
datestringOptionalYYYY-MM-DD (default: today)

Players

GET /api/nfl/players

Player search by name β€” returns id, full name, position, and team for matches.

Query Parameters

ParameterTypeRequiredDescription
qstringRequiredName search, minimum 2 characters
GET /api/nfl/players/{playerId}

Player profile β€” identity, position, physicals, team, plus most recent injury status.

GET /api/nfl/players/{playerId}/seasons

Distinct list of seasons for which this player has any game or season stats.

GET /api/nfl/players/{playerId}/stats

Season totals for one player-season.

Query Parameters

ParameterTypeRequiredDescription
seasonintegerOptionalDefaults to current year
postseasonbooleanOptionaltrue for postseason stats (default: regular season)
GET /api/nfl/players/{playerId}/game-log

Per-game box-score log, newest first, joined to opponent/date/result context.

Query Parameters

ParameterTypeRequiredDescription
seasonintegerOptionalDefaults to current year
limitintegerOptionalMax games (default: 10, max: 50)
GET /api/nfl/players/{playerId}/props

Player prop lines (line, over/under/milestone odds, market type) for a specific game.

Query Parameters

ParameterTypeRequiredDescription
game_idstringRequiredNFL game ID (nfl_game_id or internal ID)
vendorstringOptionalFilter to one vendor
GET /api/nfl/players/{playerId}/props/hit-rate ELITE

Historical hit-rate tracker β€” how often the player's actual result beat the line.

Query Parameters

ParameterTypeRequiredDescription
limitintegerOptionalGames considered (default: 25, max: 50)
GET /api/nfl/players/{playerId}/props/line-movement ELITE

Per-prop-type/vendor line-movement timeline for a player in one game, opening line through subsequent moves.

Query Parameters

ParameterTypeRequiredDescription
game_idstringRequiredNFL game ID (nfl_game_id or internal ID)

Teams

GET /api/nfl/teams

All NFL teams β€” ID, abbreviation, name, conference, and division.

GET /api/nfl/team/{teamId}/roster

Full roster with depth-chart position, injury status, and nested per-player season stats where available.

Query Parameters

ParameterTypeRequiredDescription
seasonintegerOptionalDefaults to current year
GET /api/nfl/team/{teamId}/injuries

Team's current injury report β€” player, status, comment, and injury date.

GET /api/nfl/team/{teamId}/standings

Derived win/loss/tie record, points for/against, point differential, and win streak, computed from completed games.

Query Parameters

ParameterTypeRequiredDescription
seasonintegerOptionalDefaults to current year
seasonTypeintegerOptional1=preseason, 2=regular, 3=postseason (default: 2)
GET /api/nfl/team/{teamId}/schedule

Every game the team plays that season across all season types (preseason included), with score/status/home-away.

Query Parameters

ParameterTypeRequiredDescription
seasonintegerOptionalDefaults to current year
GET /api/nfl/team/{teamId}/season-stats

Team offense/defense/special-teams season totals, including opponent-mirror fields.

Query Parameters

ParameterTypeRequiredDescription
seasonintegerOptionalDefaults to current year
seasonTypeintegerOptional1=preseason, 2=regular, 3=postseason (default: 2)

Prediction Accuracy

GET /api/nfl/stats/week-recap

Weekly result ledger β€” every game in that week graded hit/miss/pending against its frozen pregame prediction, plus previous/next graded-week navigation.

Query Parameters

ParameterTypeRequiredDescription
seasonintegerRequirede.g. 2026
weekintegerRequired1–22
seasonTypeintegerOptional1=preseason, 2=regular, 3=postseason (default: 2)
GET /api/nfl/stats/week-recap-periods

Completed, prediction-bearing NFL weeks eligible for public recap discovery and sitemap inclusion. Includes the prediction-history start date and each week's last game date.

Matches

GET /api/fifa/matches

List of matches for a given date, each with team info, stadium, and primary-vendor odds attached.

Query Parameters

ParameterTypeRequiredDescription
datestringOptionalYYYY-MM-DD (defaults to today)
seasonintegerOptionalDefaults to 2026
vendorstringOptionalSportsbook vendor (default: fanduel)
GET /api/fifa/matches/{matchId}

Full match detail β€” events, lineups, team stats, best players, odds from every vendor, shot map (xG/xGOT), per-minute momentum, and head-to-head history.

Odds

GET /api/fifa/odds/futures

Tournament and group winner futures odds, grouped by market.

Query Parameters

ParameterTypeRequiredDescription
vendorstringOptionalSportsbook vendor
market_typestringOptionale.g. tournament_winner
GET /api/fifa/odds/match/{matchId}

Full match odds β€” 3-way moneyline, spread, and total per vendor, plus exotic markets and their outcomes.

Query Parameters

ParameterTypeRequiredDescription
vendorstringOptionalFilter to one vendor
GET /api/fifa/odds/match/{matchId}/props

Player prop odds (milestone/over/under) for a single match.

Query Parameters

ParameterTypeRequiredDescription
vendorstringOptionalFilter to one vendor

Teams

GET /api/fifa/teams

All teams with their current group-stage standing for the season.

Query Parameters

ParameterTypeRequiredDescription
seasonintegerOptionalDefaults to 2026
GET /api/fifa/teams/{teamId}

Team detail β€” group standing, full roster with aggregated tournament stats, all matches, average team stats, and current manager.

Query Parameters

ParameterTypeRequiredDescription
seasonintegerOptionalDefaults to 2026

Players

GET /api/fifa/players

Search or list players by name, team, or position.

Query Parameters

ParameterTypeRequiredDescription
qstringOptionalName substring search, min 2 characters
team_idintegerOptionalFilter by team
positionstringOptionalExact match, e.g. Forward
seasonintegerOptionalDefaults to 2026
GET /api/fifa/players/{playerId}

Player detail (bio, team) plus every match's stat line for the player this season.

Query Parameters

ParameterTypeRequiredDescription
seasonintegerOptionalDefaults to 2026

Standings

GET /api/fifa/standings

Group-stage standings grouped by group letter.

Query Parameters

ParameterTypeRequiredDescription
seasonintegerOptionalDefaults to 2026
groupstringOptionalSingle letter, e.g. A, filters to one group

Bracket

GET /api/fifa/bracket ELITE

Knockout-stage bracket, grouped by round (Round of 32 through Final) in bracket order.

Query Parameters

ParameterTypeRequiredDescription
seasonintegerOptionalDefaults to 2026

Leaderboards

GET /api/fifa/leaderboards ELITE

Tournament-wide statistical leaderboard for a chosen stat, top 100.

Query Parameters

ParameterTypeRequiredDescription
seasonintegerOptionalDefaults to 2026
statstringOptionalgoals, assists, xg, rating, shots, or saves (default: goals)

Signals

GET /api/fifa/signals ELITE

Six pre-match betting-edge signals per upcoming match β€” xG Edge, Possession, Set Piece, Press Intensity, Form, and Late Momentum β€” each with a winner, tag, and implication.

Query Parameters

ParameterTypeRequiredDescription
seasonintegerOptionalDefaults to 2026
datestringOptionalYYYY-MM-DD (defaults to today)

Key Suspects

GET /api/fifa/matches/{matchId}/suspects

Weighted 0–100 Suspicion Score per player prop for a match, with an evidence breakdown, trend, and sparkline.

Query Parameters

ParameterTypeRequiredDescription
seasonintegerOptionalDefaults to 2026
vendorstringOptionalFilter to one vendor

Value Plays

GET /api/fifa/value-plays ELITE

Player prop value plays for upcoming matches β€” players whose season hit rate/average beats the prop line, sorted by ratio.

Query Parameters

ParameterTypeRequiredDescription
propTypestringRequiredanytime_goal, first_goal, shots_on_target, assists, goal_or_assist, saves, or tackles
seasonintegerOptionalDefaults to 2026
vendorstringOptionalFilter to one vendor

Streak Board

GET /api/fifa/streak-board ELITE

Players currently on active consecutive-match statistical streaks (minimum length 2).

Query Parameters

ParameterTypeRequiredDescription
seasonintegerOptionalDefaults to 2026
streakTypestringOptionalgoal, shot, rating, or clean_sheet (omit for all four)

Expected Lineup

GET /api/fifa/matches/{matchId}/expected-lineup

Projected starting XI and bench for both teams based on this season's formation and starter frequency, with tournament-average stats per player.

Query Parameters

ParameterTypeRequiredDescription
seasonintegerOptionalDefaults to 2026

Hit Rate

GET /api/fifa/slate/hit-rate ELITE

For all completed matches on a target date, compares each player prop line to the actual result and returns HIT/MISS per player.

Query Parameters

ParameterTypeRequiredDescription
datestringOptionalYYYY-MM-DD, defaults to most recent completed date
vendorstringOptionalSportsbook vendor (default: fanduel)
seasonintegerOptionalDefaults to 2026

Case Preview

GET /api/fifa/matches/{matchId}/case-preview

Pre-match context for both teams β€” last-5-match form, season momentum profile, top-3 key players per side, and head-to-head history.

Query Parameters

ParameterTypeRequiredDescription
seasonintegerOptionalDefaults to 2026

Games

GET /api/ncaab/games/today

Today's NCAAB games with team info, scores, status, and game quality ratings.

Query Parameters

ParameterTypeRequiredDescription
datestringOptionalYYYY-MM-DD (defaults to today)
tzOffsetMinintegerOptionalTimezone offset in minutes, βˆ’720 to 720
GET /api/ncaab/betting-odds

Spreads, moneylines, and totals for NCAAB games.

Query Parameters

ParameterTypeRequiredDescription
gameIdsstringRequiredComma-separated NCAAB game IDs, max 100
vendorstringRequiredSportsbook vendor name
GET /api/ncaab/games/{ncaabGameId}/lineups

Starting lineups, bench players, injuries, and team standings for a specific game.

GET /api/ncaab/games/{ncaabGameId}/player/{playerId}/box-score

A single player's box score for a specific game.

GET /api/ncaab/plays/{ncaabGameId}

Play-by-play data organized by half.

GET /api/ncaab/games/{ncaabGameId}/key-suspects

Key Suspects analysis for NCAAB β€” college players likely to exceed projections based on matchup and usage context.

Players

GET /api/ncaab/players/{playerId}

Player profile (name, position, height, weight, team, jersey number).

GET /api/ncaab/players/{playerId}/seasons

List of seasons the player has box-score data for.

GET /api/ncaab/players/{playerId}/game-log

Game-by-game statistics for a NCAAB season.

Query Parameters

ParameterTypeRequiredDescription
seasonintegerOptionalDefaults to current calendar year
GET /api/ncaab/players/{playerId}/stats

Season averages for a NCAAB player.

Query Parameters

ParameterTypeRequiredDescription
seasonintegerOptionalDefaults to current calendar year
GET /api/ncaab/players/{playerId}/matchup-analysis/{opponentTeamAbbr}

A player's last-10-game averages compared against an opponent's defensive profile, with generated insight strings and an overall verdict.

Teams

GET /api/ncaab/team/{teamId}/schedule

NCAAB team schedule with results and upcoming games.

Query Parameters

ParameterTypeRequiredDescription
seasonintegerOptionalDefaults to current calendar year
GET /api/ncaab/team/{teamId}/roster

Full team roster with player positions, jersey numbers, and current-season per-game averages.

GET /api/ncaab/team/{teamId}/stats

Team's individual per-game box scores for a season, newest first.

Query Parameters

ParameterTypeRequiredDescription
seasonintegerOptionalDefaults to the current NCAAB season-start year
GET /api/ncaab/team/{teamId}/season-stats

Team statistics including PPG, PAPG, pace, and offensive/defensive breakdowns.

Query Parameters

ParameterTypeRequiredDescription
seasonintegerOptionalDefaults to the current NCAAB season-start year

Leaderboards

GET /api/ncaab/leaderboard/{category}

Statistical leaderboards for NCAAB β€” live, daily, or season modes.

Query Parameters

ParameterTypeRequiredDescription
modestringOptionaltoday, daily, or season (default: today)
limitintegerOptionalMax results, 5–50 (default: 20)
seasonYearintegerOptionalSeason year for season mode
datestringOptionalYYYY-MM-DD for daily mode
onlyTodayPlayersbooleanOptionalSeason mode β€” restrict to players whose team plays on date

System & Utilities

GET /api/health Free

System health check. Reports database connectivity, Redis status, and feature store pipeline freshness (gameFeatures and playerFeatures staleness flags).

GET /rate-limit-status Free

Your current rate-limit usage and remaining quota for the active window.

GET /auth/status Free

Current authentication status β€” tier, subscription state, and API key validity.

Error Handling

The API uses standard HTTP status codes and returns errors in JSON format:

HTTP Status Codes

Status Code Meaning Description
200 OK Request successful
400 Bad Request Invalid request parameters
401 Unauthorized Missing or invalid API key
403 Forbidden Insufficient subscription tier
404 Not Found Resource doesn't exist
429 Too Many Requests Rate limit exceeded
500 Internal Server Error Server error

Error Response Format

{ "error": "Invalid API key", "statusCode": 401, "timestamp": "2026-02-09T12:34:56.789Z" }

Code Examples

JavaScript (Node.js)

const fetch = require('node-fetch'); const API_KEY = process.env.SPORTSFBI_API_KEY; const BASE_URL = 'https://app.sportsfbi.com/api'; async function getTodayGames() { const response = await fetch(`${BASE_URL}/nba/games/today`, { headers: { 'Authorization': `Bearer ${API_KEY}` } }); if (!response.ok) { throw new Error(`API error: ${response.status}`); } return await response.json(); } getTodayGames() .then(games => console.log(games)) .catch(err => console.error(err));

Python

import requests import os API_KEY = os.environ['SPORTSFBI_API_KEY'] BASE_URL = 'https://app.sportsfbi.com/api' def get_today_games(): headers = { 'Authorization': f'Bearer {API_KEY}' } response = requests.get( f'{BASE_URL}/nba/games/today', headers=headers ) response.raise_for_status() return response.json() try: games = get_today_games() print(games) except requests.exceptions.RequestException as e: print(f'Error: {e}')

cURL

# Get today's games curl -X GET "https://app.sportsfbi.com/api/nba/games/today" \ -H "Authorization: Bearer YOUR_API_KEY" # Get player profile curl -X GET "https://app.sportsfbi.com/api/nba/players/123" \ -H "Authorization: Bearer YOUR_API_KEY" # Get leaderboard curl -X GET "https://app.sportsfbi.com/api/nba/leaderboard/pts?mode=today&limit=10" \ -H "Authorization: Bearer YOUR_API_KEY" # Get matchup analysis curl -X GET "https://app.sportsfbi.com/api/nba/players/123/matchup-analysis/LAL" \ -H "Authorization: Bearer YOUR_API_KEY"

Response Example

{ "success": true, "data": [ { "id": 1234, "nbaGameId": "0022600789", "status": "live", "homeTeam": { "id": 5, "name": "Lakers", "abbreviation": "LAL", "score": 98 }, "awayTeam": { "id": 10, "name": "Warriors", "abbreviation": "GSW", "score": 95 }, "period": 3, "gameClock": "5:23", "startTime": "2026-02-09T19:30:00Z" } ] }

Support & Resources

Need help with the API? We're here to assist:

πŸ“§ Contact Support

For API-specific questions or issues, please contact our support team with your API key ID (not the full key) and a description of your issue.