The Pattern Is Clear: Depth Wins Titles
Nick Foles is not even the only backup quarterback to prove this point. Tom Brady was a sixth-round pick riding the bench behind Drew Bledsoe in 2001 when Bledsoe took a devastating hit in Week 2. Brady stepped in - and the Patriots won three Super Bowls in his first four seasons as starter.
Kurt Warner was stocking grocery shelves before getting his shot as a backup with the Rams in 1999 - he led the "Greatest Show on Turf" to a championship that same season. The teams that built depth won titles. The ones that relied on a single player and hoped for the best? They went home early.
Your data infrastructure works the same way. Make DataFeeds the Nick Foles on your roster - a proven, reliable second source that is ready to perform when it matters most.
What a Second Source Actually Gets You
You do not need to switch providers. You need to stop running your product without a fallback. Here is what a trusted second source delivers:
Validation and Accuracy
Cross-reference your primary feed against ours. When two sources agree, you ship with confidence. When they disagree, you catch errors before your users do.
Redundancy When It Counts
Game day, draft night, free agency - these are the moments where a data outage costs real money. A secondary feed means your product stays live even if your primary provider stumbles.
Negotiating Leverage
Organizations locked into a single vendor have no leverage on pricing, SLAs, or feature requests. A credible second source changes that dynamic entirely.
Expanded Coverage
Fill gaps your primary provider does not cover. Additional statistical splits, faster offseason transaction data, deeper draft profiles - a second source is not just insurance, it is an upgrade.
Your Window to Build
The Super Bowl may be over, but the NFL never stops. Interest does not disappear in February - it shifts. Fans follow free agency signings. They dissect mock drafts. They track every roster move and depth chart update. They consume breaking news at scale.
Just as NFL teams use the offseason to construct their rosters and build depth, product teams should use this window to develop, test, and integrate a secondary data source before the pressure of Week 1 arrives.
DataFeeds NFL API gives platforms, media teams, fantasy operators, and analytics builders a clean, reliable way to power offseason coverage and prepare for kickoff - without building and maintaining a data pipeline from scratch.
What Our NFL Data Covers
Our feeds capture the full NFL lifecycle, from the final whistle of the Super Bowl through the draft and into the regular season.
Game and Schedule Data
- Full regular season and postseason coverage
- Historical results and game statistics
- Future schedules and matchup data
- Venue information and kickoff times
Team and Roster Information
- Active rosters and depth charts
- Free agency transactions and player movement
- Injury reports and status updates
- Coaching changes and team metadata
Draft and Offseason Coverage
- Draft order and selections
- Player draft profiles and pick details
- Trade activity and compensatory picks
- Ongoing roster construction updates
Player and Statistical Data
- Player profiles and unique identifiers
- Game-by-game statistics
- Season aggregates and historical performance
- Advanced metrics and situational splits
Live and In-Game Updates
- Real-time scoring updates
- Play-by-play: event-level detail per game (sequence, quarter, down, distance, yard line, clock, possession)
- Player involvement on each play - roles, actions, positions, and structured event details
- Game flow analysis and full reconstruction from kickoff through the final whistle
- Drive summaries and possession tracking
- Timely delivery optimized for live betting, broadcasts, and digital applications
NFL API Pricing
Choose the tier that matches your needs. All plans include access to our full NFL API documentation (REST and GraphQL) and developer support.
Pre Game
Billed monthly
- Season Schedules
- Team & Player Info
- Team & Player Stats
- Depth Charts
- Injuries
Post Game
Billed monthly
- Everything included in Pre Game
- Final Scores
- Final Box scores
- Historical player game by game data
- Historical team game by game data
- Final play-by-play (event-level) for completed games
- Available within minutes of game completion
Live Feed
Billed monthly
- Everything included in Pre Game & Post Game
- Live Scores
- Live Box Scores
- Live play-by-play updates during games
- Live player game by game data
- Live team game by game data
Integrate in Minutes
Integrate NFL data with the DataFeeds REST API (v1) or GraphQL. For REST, pass your RSC_token as a query parameter on each request - the same token from your API Locker. The REST examples below match the official NFL API documentation. For GraphQL, use OAuth-style client credentials and a single POST endpoint (see How to access the GraphQL API).
GraphQL API
NFL (and other league) data is also available over GraphQL at https://datafeeds.rolling-insights.com/graphql. GraphQL uses one endpoint for all reads: you POST a query in the request body instead of calling many REST paths. Authenticate with POST https://datafeeds.rolling-insights.com/auth/token using client_id and client_secret in the body as application/x-www-form-urlencoded; the response returns an access_token (with expiry) that you send on later requests in the Authorization header. From there you can request NFL resources in one round trip - for example nflSchedules - and select only the fields you need.
Step-by-step queries, variables, and headers are in How to access the GraphQL API .
Season Schedule
Retrieve the full NFL season schedule for a given year. Optional: filter with &team_id=<TEAM_ID>.
curl "http://rest.datafeeds.rolling-insights.com/api/v1/schedule-season/2025/NFL?RSC_token=<YOUR_RSC_TOKEN_HERE>"
Team Depth Charts
Retrieve depth charts by position for each team. Optional: filter with &team_id=<TEAM_ID>.
curl "http://rest.datafeeds.rolling-insights.com/api/v1/depth-charts/NFL?RSC_token=<YOUR_RSC_TOKEN_HERE>"
Live Feed
Retrieve live or final box scores and player stats for games on a calendar date (YYYY-MM-DD). Optional: &team_id=<TEAM_ID> or &game_id=<GAME_ID>.
curl "http://rest.datafeeds.rolling-insights.com/api/v1/live/2023-08-11/NFL?RSC_token=<YOUR_RSC_TOKEN_HERE>"
Play-by-Play
The play-by-play endpoint returns detailed, event-level data for one NFL game. Each play includes sequence order, event type, quarter, down, yards to go, yard line, game clock, team in possession, flags for scoring and special situations, structured details, a text description, and all players involved - each with id, name, role, action, and position - so you can analyze flow and reconstruct the game from kickoff to the final whistle.
Required query parameters: RSC_token and game_id (a valid game id for the contest, e.g. 20251009-32-21).
curl "http://rest.datafeeds.rolling-insights.com/api/v1/play-by-play/NFL?RSC_token=<YOUR_RSC_TOKEN_HERE>&game_id=20251009-32-21"
{
"sport": "NFL",
"game_status": "Final",
"status": "completed",
"away_team_name": "Seattle Seahawks",
"home_team_name": "San Francisco 49ers",
"game_ID": "20260103-24-30",
"full_box": {
"current": {
"poss": "",
"field": "",
"TimeRemaining": null,
"Possession": null,
"Down": null,
"Distance": null,
"YardLine": null,
"YardLineTerritory": null,
"RedZone": null,
"Quarter": "F"
},
"away_team": {
"quarter_scores": {
"1": 7,
"2": 3,
"3": 0,
"4": 3,
"T": 13
},
"score": 13,
"team_stats": {
"first_downs": 23,
"passing_yards": 181,
"penalties": {
"total": 5,
"yards": 25
},
"rushing_yards": 180,
"total_plays": 67,
"total_yards": 361,
"safeties": 0,
"sacks": 3,
"kicks_blocked": 0,
"punts_blocked": 0,
"defense_interceptions": 1,
"interception_touchdowns": 0,
"defense_touchdowns": 0,
"defense_fumble_recoveries": 0,
"two_point_conversion_attempts": 0,
"two_point_conversion_succeeded": 0,
"two_point_conversion_returns": 0,
"fumble_return_touchdowns": 0,
"kick_return_touchdowns": 0,
"punt_return_touchdowns": 0,
"offense_touchdowns": 1,
"rushing_touchdowns": 1,
"passing_touchdowns": 0,
"special_team_touchdowns": 0,
"total_rushing_yards_allowed": 53,
"total_passing_yards_allowed": 127,
"blocked_kick_touchdowns": 0,
"field_goal_return_touchdowns": 0,
"turnovers": 0,
"blocked_punt_touchdowns": 0,
"points_against_defense_special_teams": 3,
"blocked_kicks": 0,
"blocked_punts": 0,
"forced_fumbles": 0
},
"team_id": 24,
"abbrv": "SEA"
},
"home_team": {
"quarter_scores": {
"1": 0,
"2": 3,
"3": 0,
"4": 0,
"T": 3
},
"score": 3,
"team_stats": {
"first_downs": 9,
"passing_yards": 120,
"penalties": {
"total": 3,
"yards": 31
},
"rushing_yards": 53,
"total_plays": 42,
"total_yards": 173,
"safeties": 0,
"sacks": 2,
"kicks_blocked": 0,
"punts_blocked": 0,
"defense_fumble_recoveries": 0,
"two_point_conversion_attempts": 0,
"two_point_conversion_succeeded": 0,
"two_point_conversion_returns": 0,
"defense_interceptions": 0,
"interception_touchdowns": 0,
"defense_touchdowns": 0,
"fumble_return_touchdowns": 0,
"kick_return_touchdowns": 0,
"punt_return_touchdowns": 0,
"offense_touchdowns": 0,
"rushing_touchdowns": 0,
"passing_touchdowns": 0,
"special_team_touchdowns": 0,
"total_rushing_yards_allowed": 180,
"total_passing_yards_allowed": 198,
"blocked_kick_touchdowns": 0,
"field_goal_return_touchdowns": 0,
"turnovers": 1,
"blocked_punt_touchdowns": 0,
"points_against_defense_special_teams": 13,
"blocked_kicks": 0,
"blocked_punts": 0,
"forced_fumbles": 1
},
"team_id": 30,
"abbrv": "SF"
}
},
"player_box": {
"away_team": {
"1025": {
"player": "Jason Myers",
"position": "K",
"position_category": "ST",
"status": "ACT",
"field_goal_distances": [
45,
31
],
"field_goals_made": 2,
"field_goals_attempted": 4,
"field_goals_long": 45,
"extra_points_made": 1,
"extra_points_attempted": 1
},
"1719": {
"player": "Jarran Reed",
"position": "DT",
"position_category": "DEF",
"status": "ACT",
"tackles": 2,
"sacks": 1
},
"1913": {
"player": "Demarcus Lawrence",
"position": "DE",
"position_category": "DEF",
"status": "ACT",
"tackles": 1,
"sacks": 0
},
"2640": {
"player": "Eric Saubert",
"position": "TE",
"position_category": "OFF",
"status": "ACT",
"fumbles_lost": 0,
"receptions": 2,
"receiving_yards": 10,
"receiving_touchdowns": 0,
"receiving_long": 9,
"targets": 3
},
"3150": {
"player": "Cooper Kupp",
"position": "WR",
"position_category": "OFF",
"status": "ACT",
"fumbles_lost": 0,
"receptions": 2,
"receiving_yards": 29,
"receiving_touchdowns": 0,
"receiving_long": 24,
"targets": 3
},
"3748": {
"player": "Uchenna Nwosu",
"position": "LB",
"position_category": "DEF",
"status": "ACT",
"tackles": 1,
"sacks": 1
},
"3871": {
"player": "Sam Darnold",
"position": "QB",
"position_category": "OFF",
"status": "ACT",
"fumbles_lost": 0,
"completions": 20,
"passing_attempts": 26,
"passing_yards": 198,
"sacks": 2,
"passing_touchdowns": 0,
"passing_interceptions": 0,
"passer_rating": 97.9,
"rushing_attempts": 6,
"rushing_yards": 9,
"rushing_touchdowns": 0,
"rushing_long": 6,
"fumbles": 1
},
"3979": {
"player": "Michael Dickson",
"position": "P",
"position_category": "ST",
"status": "ACT",
"punts": 1,
"punting_yards": 36,
"inside_20": 1,
"punts_long": 36
},
"6271": {
"player": "Ernest Jones",
"position": "LB",
"position_category": "DEF",
"status": "ACT",
"tackles": 5,
"sacks": 0
},
"6937": {
"player": "Boye Mafe",
"position": "LB",
"position_category": "DEF",
"status": "ACT",
"tackles": 3,
"sacks": 0
},
"6943": {
"player": "Kenneth Walker III",
"position": "RB",
"position_category": "OFF",
"status": "ACT",
"fumbles_lost": 0,
"rushing_attempts": 16,
"rushing_yards": 97,
"rushing_touchdowns": 0,
"rushing_long": 20,
"receptions": 4,
"receiving_yards": 36,
"receiving_touchdowns": 0,
"receiving_long": 20,
"targets": 4
},
"7238": {
"player": "Rashid Shaheed",
"position": "WR",
"position_category": "OFF",
"status": "ACT",
"fumbles_lost": 0,
"receptions": 1,
"receiving_yards": 2,
"receiving_touchdowns": 0,
"receiving_long": 2,
"targets": 1,
"kick_returns": 1,
"kick_return_yards": 34,
"kick_return_touchdowns": 0,
"kick_return_long": 34,
"punt_returns": 2,
"punt_return_yards": 30,
"punt_return_touchdowns": 0,
"punt_return_long": 19
},
"7301": {
"player": "Josh Jobe",
"position": "CB",
"position_category": "DEF",
"status": "ACT",
"tackles": 2,
"sacks": 0
},
"7354": {
"player": "Zach Charbonnet",
"position": "RB",
"position_category": "OFF",
"status": "ACT",
"fumbles_lost": 0,
"rushing_attempts": 17,
"rushing_yards": 74,
"rushing_touchdowns": 1,
"rushing_long": 27,
"receptions": 3,
"receiving_yards": 23,
"receiving_touchdowns": 0,
"receiving_long": 12,
"targets": 4,
"fumbles_recoveries": 1
},
"7724": {
"player": "Jaxon Smith-njigba",
"position": "WR",
"position_category": "OFF",
"status": "ACT",
"fumbles_lost": 0,
"receptions": 6,
"receiving_yards": 84,
"receiving_touchdowns": 0,
"receiving_long": 19,
"targets": 8
},
"7732": {
"player": "Brandon Pili",
"position": "DT",
"position_category": "DEF",
"status": "ACT",
"tackles": 2,
"sacks": 0
},
"7850": {
"player": "Drake Thomas",
"position": "LB",
"position_category": "DEF",
"status": "ACT",
"tackles": 5,
"sacks": 0,
"interceptions": 1
},
"7851": {
"player": "Mike Morris",
"position": "DL",
"position_category": "DEF",
"status": "ACT",
"tackles": 1,
"sacks": 0
},
"7909": {
"player": "Derick Hall",
"position": "LB",
"position_category": "DEF",
"status": "ACT",
"tackles": 1,
"sacks": 1
},
"7920": {
"player": "Patrick O'connell",
"position": "LB",
"position_category": "DEF",
"status": "ACT",
"tackles": 1,
"sacks": 0
},
"7946": {
"player": "Devon Witherspoon",
"position": "DB",
"position_category": "DEF",
"status": "ACT",
"tackles": 4,
"sacks": 0
},
"7954": {
"player": "Riq Woolen",
"position": "DB",
"position_category": "DEF",
"status": "ACT",
"tackles": 2,
"sacks": 0
},
"7955": {
"player": "Ty Okada",
"position": "DB",
"position_category": "DEF",
"status": "ACT",
"tackles": 3,
"sacks": 0
},
"8628": {
"player": "Aj Barner",
"position": "TE",
"position_category": "OFF",
"status": "ACT",
"fumbles_lost": 0,
"receptions": 2,
"receiving_yards": 14,
"receiving_touchdowns": 0,
"receiving_long": 9,
"targets": 3
},
"8637": {
"player": "Byron Murphy Ii",
"position": "DL",
"position_category": "DEF",
"status": "ACT",
"tackles": 4,
"sacks": 0
},
"9028": {
"player": "Nick Emmanwori",
"position": "S",
"position_category": "DEF",
"status": "ACT",
"tackles": 7,
"sacks": 0
}
},
"home_team": {
"474": {
"player": "Kyle Juszczyk",
"position": "FB",
"position_category": "OFF",
"status": "ACT",
"fumbles_lost": 0,
"receptions": 1,
"receiving_yards": 5,
"receiving_touchdowns": 0,
"receiving_long": 5,
"targets": 2
},
"852": {
"player": "Eric Kendricks",
"position": "LB",
"position_category": "DEF",
"status": "ACT",
"tackles": 4,
"sacks": 0
},
"930": {
"player": "Jon Weeks",
"position": "LS",
"position_category": "ST",
"status": "ACT",
"tackles": 1,
"sacks": 0
},
"1241": {
"player": "Thomas Morstead",
"position": "P",
"position_category": "ST",
"status": "ACT",
"punts": 4,
"punting_yards": 181,
"inside_20": 1,
"punts_long": 50
},
"1390": {
"player": "Demarcus Robinson",
"position": "WR",
"position_category": "OFF",
"status": "ACT",
"fumbles_lost": 0,
"receptions": 3,
"receiving_yards": 24,
"receiving_touchdowns": 0,
"receiving_long": 13,
"targets": 4
},
"2661": {
"player": "Christian McCaffrey",
"position": "RB",
"position_category": "OFF",
"status": "ACT",
"fumbles_lost": 0,
"rushing_attempts": 8,
"rushing_yards": 23,
"rushing_touchdowns": 0,
"rushing_long": 5,
"receptions": 6,
"receiving_yards": 34,
"receiving_touchdowns": 0,
"receiving_long": 9,
"targets": 7,
"tackles": 1,
"sacks": 0
},
"3167": {
"player": "Kendrick Bourne",
"position": "WR",
"position_category": "OFF",
"status": "ACT",
"fumbles_lost": 0,
"receptions": 0,
"receiving_yards": 0,
"receiving_touchdowns": 0,
"receiving_long": 0,
"targets": 1
},
"3180": {
"player": "George Kittle",
"position": "TE",
"position_category": "OFF",
"status": "ACT",
"fumbles_lost": 0,
"receptions": 5,
"receiving_yards": 29,
"receiving_touchdowns": 0,
"receiving_long": 20,
"targets": 7
},
"3359": {
"player": "Siran Neal",
"position": "CB",
"position_category": "DEF",
"status": "ACT",
"tackles": 2,
"sacks": 0
},
"3899": {
"player": "Eddy Pineiro",
"position": "PK",
"position_category": "ST",
"status": "ACT",
"field_goal_distances": [
48
],
"field_goals_made": 1,
"field_goals_attempted": 1,
"field_goals_long": 48,
"extra_points_made": 0,
"extra_points_attempted": 0
},
"4758": {
"player": "Clelin Ferrell",
"position": "DL",
"position_category": "DEF",
"status": "ACT",
"tackles": 3,
"sacks": 0
},
"5312": {
"player": "Jordan Elliott",
"position": "DL",
"position_category": "DEF",
"status": "ACT",
"tackles": 2,
"sacks": 0
},
"5408": {
"player": "Yetur Gross-Matos",
"position": "DL",
"position_category": "DEF",
"status": "ACT",
"tackles": 3,
"sacks": 0
},
"5733": {
"player": "Jauan Jennings",
"position": "WR",
"position_category": "OFF",
"status": "ACT",
"fumbles_lost": 0,
"receptions": 4,
"receiving_yards": 35,
"receiving_touchdowns": 0,
"receiving_long": 16,
"targets": 6
},
"6175": {
"player": "Garret Wallow",
"position": "LB",
"position_category": "DEF",
"status": "ACT",
"tackles": 2,
"sacks": 0
},
"6354": {
"player": "Jason Pinnock",
"position": "S",
"position_category": "DEF",
"status": "ACT",
"tackles": 4,
"sacks": 0
},
"6404": {
"player": "Deommodore Lenoir",
"position": "CB",
"position_category": "DEF",
"status": "ACT",
"tackles": 3,
"sacks": 0
},
"6858": {
"player": "Brian Robinson",
"position": "RB",
"position_category": "OFF",
"status": "ACT",
"fumbles_lost": 0,
"rushing_attempts": 2,
"rushing_yards": 9,
"rushing_touchdowns": 0,
"rushing_long": 6,
"kick_returns": 2,
"kick_return_yards": 36,
"kick_return_touchdowns": 0,
"kick_return_long": 28
},
"6934": {
"player": "Brock Purdy",
"position": "QB",
"position_category": "OFF",
"status": "ACT",
"fumbles_lost": 0,
"completions": 19,
"passing_attempts": 27,
"passing_yards": 127,
"sacks": 3,
"passing_touchdowns": 0,
"passing_interceptions": 1,
"passer_rating": 64.9,
"rushing_attempts": 2,
"rushing_yards": 21,
"rushing_touchdowns": 0,
"rushing_long": 11
},
"7044": {
"player": "Sam Okuayinonu",
"position": "DL",
"position_category": "DEF",
"status": "ACT",
"tackles": 4,
"sacks": 1
},
"7753": {
"player": "Dee Winters",
"position": "LB",
"position_category": "DEF",
"status": "ACT",
"tackles": 2,
"sacks": 0
},
"7809": {
"player": "Ji'ayir Brown",
"position": "DB",
"position_category": "DEF",
"status": "ACT",
"tackles": 8,
"sacks": 0
},
"8050": {
"player": "Keion White",
"position": "DL",
"position_category": "DEF",
"status": "ACT",
"tackles": 1,
"sacks": 0
},
"8620": {
"player": "Tatum Bethune",
"position": "LB",
"position_category": "DEF",
"status": "ACT",
"tackles": 7,
"sacks": 1
},
"8621": {
"player": "Renardo Green",
"position": "CB",
"position_category": "DEF",
"status": "ACT",
"tackles": 8,
"sacks": 0
},
"8623": {
"player": "Malik Mustapha",
"position": "S",
"position_category": "DEF",
"status": "ACT",
"tackles": 5,
"sacks": 0
},
"9013": {
"player": "Alfred Collins",
"position": "DL",
"position_category": "DEF",
"status": "ACT",
"tackles": 3,
"sacks": 0
},
"9014": {
"player": "Cj West",
"position": "DT",
"position_category": "DEF",
"status": "ACT",
"tackles": 3,
"sacks": 0
},
"9016": {
"player": "Upton Stout",
"position": "CB",
"position_category": "DEF",
"status": "ACT",
"tackles": 6,
"sacks": 0
}
}
},
"game_time": "Sun, 04 Jan 2026 01:00:00 GMT",
"season_type": "Regular Season"
}
For REST endpoints, request/response schemas, and field definitions, see the NFL API Documentation . For GraphQL authentication, queries, and variables, see How to access the GraphQL API .