API Documentation
Complete reference for accessing NBA, MLB, 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
- Sign in to your SportsFBI account
- Navigate to API Keys
- Click "Generate New API Key"
- 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
Free endpoints require no authentication and can be called directly. Elite endpoints require a valid API key — since API 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
Today's (or a given date's) NBA games with quality ratings, betting odds, team standings, and injuries.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| date | string | Optional | YYYY-MM-DD (defaults to today) |
| tzOffsetMin | integer | Optional | Timezone offset in minutes, −720 to 720 (e.g. −300 for EST) |
| vendor | string | Optional | draftkings or fanduel (default: fanduel) |
Games for the next date that has non-final games after today, reusing the today endpoint's shape.
Confirmed or predicted starting lineups, bench, injuries, and team standings for a specific game.
Play-by-play data grouped by quarter, plus live score, period, and clock.
Spreads, moneylines, and totals for up to 20 games at once.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| gameIds | string | Required | Comma-separated NBA game IDs, max 20 |
| vendor | string | Required | One of fanduel, draftkings, betmgm, betrivers, caesars, fanatics, prizepicks |
Key Suspects analysis — players likely to exceed prop projections based on matchup, role, and usage trends.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| mode | string | Optional | dfs or props (default: dfs) |
| vendor | string | Optional | Sportsbook vendor (default: fanduel) |
Notable consecutive-game stat streaks (30+ pts, double-double, triple-double, etc.) for starters, plus each team's win/loss streak.
Team points-for/points-against trend over the last 10 games vs. season averages, for both teams.
Historical Over/Under hit-rate splits (home/road) for both teams against a given odds vendor.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| vendor | string | Optional | Odds vendor (default: draftkings) |
Team Four Factors comparison (eFG%, TOV%, OREB%, FTA rate — offensive and defensive) plus league averages.
A single player's box score for a specific game.
Every player's box score for a game in one request, keyed by player ID.
Slate & DFS
Precomputed DFS score ranking for today's slate, refreshed every 5 minutes.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| vendor | string | Optional | draftkings (default) or fanduel |
Players on today's slate on an active consecutive-over prop streak (minimum streak of 2), sorted by streak length.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| propType | string | Optional | points_rebounds_assists (default) or another combo stat |
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.
Slate players whose recent average for a stat meets or exceeds today's prop line (ratio ≥ 1.0).
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| propType | string | Optional | Combo stat, default points_rebounds_assists |
| vendor | string | Optional | Sportsbook vendor (default: draftkings) |
Slate players who scored within the first 3 minutes of Q1 in at least one recent game.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| window | integer | Optional | Games to look back: 0 (season), 5, 10, 15, or 20 (default: 5) |
Slate players who scored 3+ points in every quarter in at least one recent game.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| window | integer | Optional | Games to look back: 0 (season), 5, 10, 15, or 20 (default: 5) |
Historical Key Suspects hit/miss results for a given (or most recent completed) slate date.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| mode | string | Optional | dfs or props |
| date | string | Optional | YYYY-MM-DD, defaults to most recent completed date |
Signals
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
| Parameter | Type | Required | Description |
|---|---|---|---|
| stat | string | Optional | One of pts, ast, reb, blk, stl, fg3m, min (default: pts) |
Players — Free Tier
Player profile (name, position, height, weight, team).
List of seasons the player has box-score data for.
The player's last 20 games (min ≥5 minutes) against a specific team, with a per-game log and averages.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| teamAbbr | string | Required | Team abbreviation (e.g. LAL) |
Game-by-game statistics for a season.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| season | integer | Required | Season start year (e.g. 2025) |
Game-by-game advanced metrics: PIE, pace, usage%, ORtg, DRtg, TS%, and more.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| season | integer | Required | Season start year |
Season averages (pts, reb, ast, etc.) and games-played count.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| season | integer | Required | Season start year |
Current injury status and history for a player.
Player contract details by season (cap hit, total cash, base salary, rank).
Detailed 18-role archetype breakdown with scores and probabilities for the player's current classification.
Condensed role analysis: primary role and top-3 role distribution, with generated insight text.
Comprehensive matchup analysis: player archetype, opponent defensive profile, usage trends, zone data, and a projected score delta.
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
| Parameter | Type | Required | Description |
|---|---|---|---|
| season | integer | Required | Season start year |
Shot-selection shift detector comparing last-10-games shot selection to season norms, flagging shifts of 12+ percentage points.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| season | integer | Required | Season start year |
How opponents have performed when guarded by this player, plus a computed 0–100 defense score.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| season | integer | Required | Season start year |
| opponentTeamId | integer | Optional | Filter to a single opponent team |
Clutch performance (final margin ≤5) vs. overall season averages, plus a computed 0–100 clutch score.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| season | integer | Required | Season start year |
Hustle Index — a 0–100 composite of deflections, contested shots, charges, screen assists, loose balls, and box-outs vs. league average.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| season | integer | Required | Season start year |
Quarter-by-quarter (Q1–Q4) performance breakdown with a "closer" or "fast starter" trend tag.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| season | integer | Required | Season start year |
Season averages for scoring source breakdown (paint, fast break, second chance, off turnovers) and shot-location scoring %.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| season | integer | Required | Season start year |
Touches, passes, secondary/FT assists, speed, and distance, plus a computed touch-based opportunity score.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| season | integer | Required | Season start year |
Upcoming schedule with a per-game opponent difficulty score based on defensive rating and opponent shooting.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| days | integer | Optional | 1–14 days ahead (default: 7) |
All current player injuries across the league.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| teamId | integer | Optional | Filter by team ID |
| status | string | Optional | out, doubtful, questionable, dtd, probable, out for season |
Players — Elite
Last-5-games averaged advanced stats with archetype/role detection and generated insights.
Player prop betting lines (line, over/under odds, per vendor and prop type) for a specific game.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| game_id | string | Required | NBA game ID |
Historical over/under hit rates by prop type.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| limit | integer | Optional | Recent games to analyze, 1–50 (default: 25) |
| prop_type | string | Optional | Filter to one prop category |
| vendor | string | Optional | Filter to one vendor |
Intraday prop line-movement history for a game. Elite/Admin accounts additionally see cross-vendor consensus-shift detection.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| game_id | string | Required | NBA game ID |
Lightweight verdict-only endpoint (favorable/neutral/unfavorable) for icon color-coding in lineup cards, skipping the full projection engine.
Batch version of matchup-verdict for up to 30 player/opponent pairs in one request.
Body Parameters
| Field | Type | Required | Description |
|---|---|---|---|
| requests | array | Required | 1–30 items, each { playerId, opponentTeamAbbr } |
Leaderboards
Statistical leaderboards for live, daily, or full-season stats.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| mode | string | Optional | today (live), daily (completed games), or season — default: today |
| limit | integer | Optional | Max results (default: 10) |
| seasonYear | integer | Optional | Season year for season mode |
| date | string | Optional | YYYY-MM-DD for daily mode |
| tzOffsetMin | integer | Optional | Timezone offset in minutes |
| onlyTodayPlayers | boolean | Optional | Season mode — restrict to players in today's games |
DFS scoring rules reference (DraftKings and FanDuel point values).
Current cached league averages (pace, defensive rating, etc.) used by the matchup engine. Force-recalculation via refresh=true is admin-only.
Teams
Detailed defensive statistics: season averages, rim protection, paint defense, pace, and positional matchup breakdowns.
Predicted starting lineup based on the last 15 games of player usage.
Team schedule with results and upcoming games.
Full team roster with positions, jersey numbers, and contract status.
Team season averages — PPG, PAPG, pace, offensive and defensive ratings.
DFS Lineup Projections
DFS lineup projection engine — per-player projections, lineup synergy scoring, opponent defensive profile, and role compatibility for a 2–5 player lineup.
Body Parameters
| Field | Type | Required | Description |
|---|---|---|---|
| playerIds | array | Required | Array of 2–5 internal player IDs |
| opponentTeamAbbr | string | Required | Opponent team abbreviation (e.g. GSW) |
Games
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
| Parameter | Type | Required | Description |
|---|---|---|---|
| date | string | Optional | YYYY-MM-DD (defaults to today) |
| vendor | string | Optional | Odds vendor (default: draftkings) |
Single game detail — full box score, odds from every vendor, pre-game lineup, and the last 50 plays.
Spreads, moneylines, and totals for one or more games.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| gameIds | string | Optional | Comma-separated MLB game IDs (one of gameIds or date required) |
| date | string | Optional | YYYY-MM-DD — fetches odds for every game that day |
| vendor | string | Optional | Filter to one vendor |
Game-level matchup analysis — run-environment/stack recommendation and pitcher-vs-lineup breakdown for both sides.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| lang | string | Optional | en or es (default: en) |
A single player's batting or pitching box score line for a specific game.
Batting lineup and probable pitchers for both teams, with standings, injuries, and predicted lineups for games without a confirmed one yet.
Full play-by-play, grouped by inning (top/bottom), including pitch type, velocity, and trajectory where available.
Slate & DFS
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
| Parameter | Type | Required | Description |
|---|---|---|---|
| date | string | Optional | YYYY-MM-DD (defaults to today) |
Historical hit/miss results for the Key Suspects engine on a completed slate date (backtesting view).
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| mode | string | Optional | dfs or props (default: dfs) |
| vendor | string | Optional | Sportsbook vendor (default: fanduel) |
| date | string | Optional | YYYY-MM-DD, defaults to most recent completed date |
Batters and pitchers whose recent average for a stat meets or exceeds today's live prop line.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| propType | string | Optional | hits, total_bases, home_runs, rbis, strikeouts, runs_scored, pitcher_strikeouts (default: hits) |
| vendor | string | Optional | Sportsbook vendor (default: draftkings) |
| lookback | string | Optional | 5, 10, 20, or season (default: 5) |
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
| Parameter | Type | Required | Description |
|---|---|---|---|
| stat | string | Optional | hits, hr, rbi, runs, sb, tb, walks, strikeouts (default: hits) |
Today's games ranked by DFS/props stack attractiveness — run environment, favored stack side, pitcher-vs-lineup matchup, and top recommended batters to stack.
Auto-built parlay "cases" assembled from the Key Suspects engine across the slate, scored by suspicion score, hit rate, and odds value.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| legs | integer | Optional | 2–10 legs per case (default: 4) |
| minOdds | integer | Optional | American-odds floor (default: -150) |
| games | string | Optional | Comma-separated game IDs or all |
| vendor | string | Optional | Sportsbook vendor (default: fanduel) |
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.
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
| Parameter | Type | Required | Description |
|---|---|---|---|
| mode | string | Optional | dfs or props (default: dfs) |
| vendor | string | Optional | Sportsbook vendor (default: fanduel) |
Batch-computes a cached matchup verdict (favorable/unfavorable) for up to 30 players at once.
Body Parameters
| Field | Type | Required | Description |
|---|---|---|---|
| gameId | string | Required | MLB game ID |
| requests | array | Required | Up to 30 items, each { playerId } |
Players
Player profile — name, position, jersey, bats/throws, physicals, birthplace, debut year, draft info, and current team.
Season totals and rate stats (batting and/or pitching) for one player-season.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| season | integer | Optional | Defaults to current year |
| season_type | string | Optional | regular or postseason (default: regular) |
Split-stat breakdown by arena, pitcher hand, day/night, month, opponent, situation, batting order, count, and position.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| season | integer | Optional | Defaults to current year |
| category | string | Optional | batting or pitching (default: both) |
Per-game batting and pitching stat lines for the current season, most recent first.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| season | integer | Optional | Defaults to current year |
| limit | integer | Optional | Max games (default: 30, max: 162) |
Player prop lines across all prop types and vendors for a specific game.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| game_id | string | Required | MLB game ID (mlb_game_id or internal ID) |
| vendor | string | Optional | Filter to one vendor |
Historical hit-rate tracker — how often the player's actual result beat the line, all-time and over the last 10 games.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| limit | integer | Optional | Games considered per prop type (default: 25, max: 50) |
Intraday line movement per prop type and vendor. Elite/Admin accounts also see cross-book consensus-shift detection.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| game_id | string | Required | MLB game ID |
A pitcher's per-pitch-type arsenal — usage%, zone%, chase%, whiff%, contact%, and results allowed by pitch type.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| season | integer | Optional | Defaults to current year |
Statcast-derived pitch movement — average velocity, spin rate, induced vertical break, horizontal break, and release extension per pitch type.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| season | integer | Optional | Defaults to current year |
A hitter's performance against each pitch type — whiff/chase/contact/zone %, BA/SLG/wOBA, and outcome counts.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| season | integer | Optional | Defaults to current year |
Current injury status, return date, and description for a player.
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
| Parameter | Type | Required | Description |
|---|---|---|---|
| game_id | string | Required | MLB game ID |
Leaderboards
Ranked season leaderboard for one batting or pitching stat category, with a 5-game sparkline.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| season | integer | Optional | Defaults to current year |
| season_type | string | Optional | regular or postseason (default: regular) |
| limit | integer | Optional | Max results (default: 25, max: 100) |
| onlyTodayPlayers | boolean | Optional | Restrict to players in today's lineups |
| date | string | Optional | YYYY-MM-DD, used only with onlyTodayPlayers |
Teams
All MLB teams — ID, abbreviation, names, league, and division.
Full season schedule for a team with scores, status, and opponent info.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| season | integer | Optional | Defaults to current year |
Current active roster with each player's current-season batting/pitching stat line attached.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| season | integer | Optional | Defaults to current year |
A team's standings row (wins, losses, streak) for a season.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| season | integer | Optional | Defaults to current year |
Matches
List of matches for a given date, each with team info, stadium, and primary-vendor odds attached.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| date | string | Optional | YYYY-MM-DD (defaults to today) |
| season | integer | Optional | Defaults to 2026 |
| vendor | string | Optional | Sportsbook vendor (default: fanduel) |
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
Tournament and group winner futures odds, grouped by market.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| vendor | string | Optional | Sportsbook vendor |
| market_type | string | Optional | e.g. tournament_winner |
Full match odds — 3-way moneyline, spread, and total per vendor, plus exotic markets and their outcomes.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| vendor | string | Optional | Filter to one vendor |
Player prop odds (milestone/over/under) for a single match.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| vendor | string | Optional | Filter to one vendor |
Teams
All teams with their current group-stage standing for the season.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| season | integer | Optional | Defaults to 2026 |
Team detail — group standing, full roster with aggregated tournament stats, all matches, average team stats, and current manager.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| season | integer | Optional | Defaults to 2026 |
Players
Search or list players by name, team, or position.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| q | string | Optional | Name substring search, min 2 characters |
| team_id | integer | Optional | Filter by team |
| position | string | Optional | Exact match, e.g. Forward |
| season | integer | Optional | Defaults to 2026 |
Player detail (bio, team) plus every match's stat line for the player this season.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| season | integer | Optional | Defaults to 2026 |
Standings
Group-stage standings grouped by group letter.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| season | integer | Optional | Defaults to 2026 |
| group | string | Optional | Single letter, e.g. A, filters to one group |
Bracket
Knockout-stage bracket, grouped by round (Round of 32 through Final) in bracket order.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| season | integer | Optional | Defaults to 2026 |
Leaderboards
Tournament-wide statistical leaderboard for a chosen stat, top 100.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| season | integer | Optional | Defaults to 2026 |
| stat | string | Optional | goals, assists, xg, rating, shots, or saves (default: goals) |
Signals
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
| Parameter | Type | Required | Description |
|---|---|---|---|
| season | integer | Optional | Defaults to 2026 |
| date | string | Optional | YYYY-MM-DD (defaults to today) |
Key Suspects
Weighted 0–100 Suspicion Score per player prop for a match, with an evidence breakdown, trend, and sparkline.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| season | integer | Optional | Defaults to 2026 |
| vendor | string | Optional | Filter to one vendor |
Value Plays
Player prop value plays for upcoming matches — players whose season hit rate/average beats the prop line, sorted by ratio.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| propType | string | Required | anytime_goal, first_goal, shots_on_target, assists, goal_or_assist, saves, or tackles |
| season | integer | Optional | Defaults to 2026 |
| vendor | string | Optional | Filter to one vendor |
Streak Board
Players currently on active consecutive-match statistical streaks (minimum length 2).
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| season | integer | Optional | Defaults to 2026 |
| streakType | string | Optional | goal, shot, rating, or clean_sheet (omit for all four) |
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
| Parameter | Type | Required | Description |
|---|---|---|---|
| season | integer | Optional | Defaults to 2026 |
Hit Rate
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
| Parameter | Type | Required | Description |
|---|---|---|---|
| date | string | Optional | YYYY-MM-DD, defaults to most recent completed date |
| vendor | string | Optional | Sportsbook vendor (default: fanduel) |
| season | integer | Optional | Defaults to 2026 |
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
| Parameter | Type | Required | Description |
|---|---|---|---|
| season | integer | Optional | Defaults to 2026 |
Games
Today's NCAAB games with team info, scores, status, and game quality ratings.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| date | string | Optional | YYYY-MM-DD (defaults to today) |
| tzOffsetMin | integer | Optional | Timezone offset in minutes, −720 to 720 |
Spreads, moneylines, and totals for NCAAB games.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| gameIds | string | Required | Comma-separated NCAAB game IDs, max 100 |
| vendor | string | Required | Sportsbook vendor name |
Starting lineups, bench players, injuries, and team standings for a specific game.
A single player's box score for a specific game.
Play-by-play data organized by half.
Key Suspects analysis for NCAAB — college players likely to exceed projections based on matchup and usage context.
Players
Player profile (name, position, height, weight, team, jersey number).
List of seasons the player has box-score data for.
Game-by-game statistics for a NCAAB season.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| season | integer | Optional | Defaults to current calendar year |
Season averages for a NCAAB player.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| season | integer | Optional | Defaults to current calendar year |
A player's last-10-game averages compared against an opponent's defensive profile, with generated insight strings and an overall verdict.
Teams
NCAAB team schedule with results and upcoming games.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| season | integer | Optional | Defaults to current calendar year |
Full team roster with player positions, jersey numbers, and current-season per-game averages.
Team's individual per-game box scores for a season, newest first.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| season | integer | Optional | Defaults to the current NCAAB season-start year |
Team statistics including PPG, PAPG, pace, and offensive/defensive breakdowns.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| season | integer | Optional | Defaults to the current NCAAB season-start year |
Leaderboards
Statistical leaderboards for NCAAB — live, daily, or season modes.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| mode | string | Optional | today, daily, or season (default: today) |
| limit | integer | Optional | Max results, 5–50 (default: 20) |
| seasonYear | integer | Optional | Season year for season mode |
| date | string | Optional | YYYY-MM-DD for daily mode |
| onlyTodayPlayers | boolean | Optional | Season mode — restrict to players whose team plays on date |
System & Utilities
System health check. Reports database connectivity, Redis status, and feature store pipeline freshness (gameFeatures and playerFeatures staleness flags).
Your current rate-limit usage and remaining quota for the active window.
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:
- API Keys: Manage your API keys
- Profile: View subscription and rate limits
- Upgrade: Increase your rate limits
📧 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.