Tracking the Draft
The NFL Draft is an annual event where teams select eligible college players, shaping their rosters and providing a spectacle for fans. The draft feeds cover the prospect pool, the pick order and live selections, in-draft trades, and per-team summaries, with Push variants for picks and trades. This scenario loads the pool before the draft, follows picks and trades live over draft weekend, and carries drafted players into the core NFL feeds.
This scenario is commonly used to:
- Publish the prospect pool and a top-prospect board before the draft
- Follow picks live, round by round, on draft weekend
- Track in-draft trades and the picks that change hands
- Build a team-by-team draft view
- Connect drafted players to their NFL team and player records
Relevant Feeds
| Feed | Scope | Use |
|---|---|---|
| Prospects | {draft_year} | The full draftable pool with college team, conference, and measurements |
| Top Prospects | {draft_year} | The higher-tier subset flagged top_prospect |
| Draft Summary | {draft_year} | Pre-draft pick order, then live selections by round |
| Team Draft Summary | {draft_year} + team ID | One team's pick order and selections |
| Trades | {draft_year} | Every in-draft trade with its transactions and items |
The draft feeds take a draft year (2019 onward) rather than a season, and are served under https://api.sportradar.com/draft/nfl/{access_level}/v1/{language_code}/{draft_year}/ rather than the core NFL API base URL. Real-time push delivery of the same picks and trades is available through the Push Draft Picks and Push Draft Trades feeds; step 5 covers the draft connection workflow, and the Push Feeds page covers push integration in general.
High-Level Workflow
Integration Steps
1. Load the prospect pool
Prospects are college football players who are eligible for, and considered potential selections in, the NFL Draft. The Prospects feed lists the upcoming or historical prospects for a draft year. The pool is seeded from the NCAAFB player database and assembled from a range of sources into a list of players expected to be drafted, typically 500 or more. Prospects are added after the NCAA football season concludes and following their declarations by March; pull the feed as needed before, during, and after the draft, and keep pulling it during the draft itself, since new players can be created while the draft is under way.
When Is the Draft Made Available in the API?Draft data becomes available in the API once the entire draft order has been set by the NFL. NFL prospect information is typically available from mid to late March to early April each year. The Prospects feed includes a list of all known draftable players, with each player's source ID matching their college player ID.
Each prospect carries its own id, a source_id matching the player's college player ID, and, once drafted, a league_id, alongside the name, position, height and weight, birth_place, and the college team, conference, and division. The 2026 pool includes Connor Tollison, a center from Missouri (SEC, FBS), and Angel Johnson, a running back from Washington State (Pac-12):
GET https://api.sportradar.com/draft/nfl/trial/v1/en/2026/prospects.json
x-api-key: YOUR_API_KEY{
"draft": {
"id": "96bf210c-7bfb-4c0f-9b5b-a1e658163939",
"year": 2026,
"start_date": "2026-04-23",
"end_date": "2026-04-25",
"status": "closed"
},
"prospects": [
{
"id": "95624bf8-9b6e-4a0d-be0d-7634629b1df9",
"source_id": "756e7b73-bf37-42b7-9c22-ff90558f3132",
"first_name": "Connor",
"last_name": "Tollison",
"name": "Connor Tollison",
"position": "C",
"height": 76,
"weight": 285,
"birth_place": "Jackson, MO, USA",
"team_name": "Missouri",
"conference": {
"id": "c7a491c8-d0f2-4ca1-9403-f82db4452dd1",
"name": "Southeastern",
"alias": "SEC"
},
"division": {
"id": "43d3cede-6b8f-4158-bc7f-c3c7365e5b32",
"name": "I-A",
"alias": "FBS"
},
"team": {
"id": "772536c7-c3e8-40d1-ac6e-232d719dc052",
"name": "Tigers",
"market": "Missouri",
"alias": "MIZZ"
}
},
{
"id": "ae6a897f-281f-4662-9bd3-371f3fba1396",
"source_id": "7dad2720-09f5-11ec-a5ce-f3e0258d11e1",
"first_name": "Angel",
"last_name": "Johnson",
"name": "Angel Johnson",
"position": "RB",
"height": 69,
"weight": 192,
"birth_place": "Viborg, SD, USA",
"team_name": "Washington State",
"conference": {
"id": "e36e74d3-fe2d-4379-a283-4eafa01202f4",
"name": "Pac-12",
"alias": "PAC-12"
},
"division": {
"id": "43d3cede-6b8f-4158-bc7f-c3c7365e5b32",
"name": "I-A",
"alias": "FBS"
},
"team": {
"id": "1ff5428d-2e8c-4b0f-a5a6-ebff126111a2",
"name": "Cougars",
"market": "Washington State",
"alias": "WSU"
}
}
]
}The response is shown trimmed to two prospects. Neither entry carries a league_id; compare the Top Prospects entries below, which do.
When Do Prospects Receive Their League ID?The
league_idwill appear once the player has been drafted and exported to the NFL API. Typically, it happens the day after they are drafted.
Three identifiers run through the draft feeds: a player ID (a unique identifier for the player across the API), a team ID (the NFL team that selects the player), and a draft ID (the draft event itself, the draft.id at the top of every response). An NCAAFB player's ID does not follow them when they are drafted to the NFL; the source_id is the bridge back to the college record, and the ID Handling page covers the ID model in detail.
The Top Prospects feed returns the higher-tier subset of the same pool for a draft year: players identified as having exceptional potential and performance in college football, making them highly anticipated selections. It follows the same availability and pull guidance as Prospects.
What Is the Difference Between Top Prospects and Prospects?Top Prospects is a higher-tier subset of Prospects, representing the most highly regarded or anticipated players expected to be drafted early. The use case for this is to allow users or applications to focus on the most notable players in the draft, offering more detailed scouting and tracking for these key athletes.
How is an NFL prospect specified as a top prospect?
Top prospects are subjective. We use the same sources for top prospects as we do when creating the initial draft pool.
Each entry is flagged top_prospect: true. The 2026 board includes Kamari Ramsey (USC) and Zakee Wheatley (Penn State), both safeties from the Big Ten, and both already carrying a league_id:
GET https://api.sportradar.com/draft/nfl/trial/v1/en/2026/top_prospects.json
x-api-key: YOUR_API_KEY{
"draft": {
"id": "96bf210c-7bfb-4c0f-9b5b-a1e658163939",
"year": 2026,
"start_date": "2026-04-23",
"end_date": "2026-04-25",
"status": "closed"
},
"prospects": [
{
"id": "a647d7ce-04a4-48aa-b5c7-1d947312c874",
"source_id": "0c56f1f0-89c5-11ec-ae8d-95dc1507d3b4",
"league_id": "0946cbee-dffc-4c74-93e5-e57393055807",
"first_name": "Kamari",
"last_name": "Ramsey",
"name": "Kamari Ramsey",
"position": "SAF",
"team_name": "USC",
"height": 72,
"weight": 205,
"birth_place": "Palmdale, CA, USA",
"top_prospect": true,
"conference": {
"id": "cddff7c9-65e1-4fe0-b052-87fd4213fbfe",
"name": "Big Ten",
"alias": "BIG-TEN"
},
"division": {
"id": "43d3cede-6b8f-4158-bc7f-c3c7365e5b32",
"name": "I-A",
"alias": "FBS"
},
"team": {
"id": "8f496f34-14e3-4ca7-958b-53f6da0b74d6",
"name": "Trojans",
"market": "USC",
"alias": "USC"
}
},
{
"id": "b7d693e0-e130-430a-b1b3-d1e8ba481431",
"source_id": "ba42e16f-f43a-458a-bd12-eb793174075d",
"league_id": "c03e3030-aaac-4ebd-a784-84d4ea00a709",
"first_name": "Zakee",
"last_name": "Wheatley",
"name": "Zakee Wheatley",
"position": "SAF",
"team_name": "Penn State",
"height": 74,
"weight": 202,
"birth_place": "Crofton, MD, USA",
"top_prospect": true,
"conference": {
"id": "cddff7c9-65e1-4fe0-b052-87fd4213fbfe",
"name": "Big Ten",
"alias": "BIG-TEN"
},
"division": {
"id": "43d3cede-6b8f-4158-bc7f-c3c7365e5b32",
"name": "I-A",
"alias": "FBS"
},
"team": {
"id": "eeb3ce19-6ddd-4c91-afab-811c6cc81974",
"name": "Nittany Lions",
"market": "Penn State",
"alias": "PSU"
}
}
]
}The response is shown trimmed to two prospects.
2. Follow picks on draft day
The Draft Summary feed carries the pre-draft pick order and then the live selections during the draft, for a given draft year. The draft header carries the dates, status, league, broadcast, and venue; rounds[] carry a number, dates, a start_time, and a status; and each entry in picks[] carries a number within the round, an overall number, the selecting team, and the prospect once the selection is made. The draft order becomes available in the API once it is fully established. How a team's set of picks comes together:
- Standard picks: each team typically starts with seven picks, one for each round
- Compensatory picks: awarded to teams, typically before the official draft order is set, as compensation for losing free agents during the previous offseason; pick objects in the Trades feed carry
compensatoryandsupplementalflags - Draft order: initially set from the previous season's standings, with the team holding the worst record picking first in each round
- Trading: teams frequently trade picks for other picks, players, or future draft considerations; a trade can bundle several picks or combine picks and players, so the final order is dynamic and often differs from the initial setup. Trading up spends existing picks or future choices to move earlier and secure a higher-ranked player; trading down exchanges a higher pick for several lower picks to fill more roster spots or address a wider set of needs
Updates land in real time as selections are made. The feed carries a 2-second cache TTL; request it as fast as every two seconds while the draft is live, and begin requesting the Draft Summary and Trades feeds 10 minutes before the scheduled start. The 2026 draft ran April 23 to 25 at Acrisure Stadium in Pittsburgh, with round 1 on the first evening, rounds 2 and 3 on the second, and rounds 4 through 7 on the third day, the split the rounds[] dates carry; round 1 opened with the Las Vegas Raiders selecting Fernando Mendoza (QB, Indiana) first overall and the New York Jets selecting David Bailey (OLB, Texas Tech) second, both flagged top_prospect and both already carrying a league_id:
GET https://api.sportradar.com/draft/nfl/trial/v1/en/2026/draft.json
x-api-key: YOUR_API_KEY{
"draft": {
"id": "96bf210c-7bfb-4c0f-9b5b-a1e658163939",
"year": 2026,
"start_date": "2026-04-23",
"end_date": "2026-04-25",
"status": "closed",
"league": {
"id": "3c6d318a-6164-4290-9bbc-bf9bb21cc4b8",
"name": "National Football League",
"alias": "NFL"
},
"broadcast": {
"channel": "206",
"network": "ABC, ESPN, NFL Network"
},
"venue": {
"name": "Acrisure Stadium",
"address": "100 Art Rooney Avenue",
"city": "Pittsburgh",
"state": "PA",
"country": "USA"
}
},
"rounds": [
{
"id": "eb9ae32d-fe7f-4bae-91e7-14df75e203d2",
"number": 1,
"start_date": "2026-04-23",
"end_date": "2026-04-23",
"start_time": "2026-04-24T00:06:00+00:00",
"status": "closed",
"picks": [
{
"id": "8851a6cd-8ef3-4683-b6be-8302dc6e9fb3",
"number": 1,
"overall": 1,
"team": {
"id": "7d4fcc64-9cb5-4d1b-8e75-8a906d1e1576",
"name": "Raiders",
"market": "Las Vegas",
"alias": "LV"
},
"prospect": {
"id": "032815f9-6118-45c4-aff0-a639eca99027",
"source_id": "e41043f0-8946-11ec-b2b8-adecafc94fa4",
"league_id": "b1ded115-092a-4199-9a55-cab9f4b5bb18",
"first_name": "Fernando",
"last_name": "Mendoza",
"name": "Fernando Mendoza",
"position": "QB",
"team_name": "Indiana",
"height": 77,
"weight": 225,
"birth_place": "Miami, FL, USA",
"top_prospect": true
}
},
{
"id": "083c2cb2-dd48-49fa-9edf-357e5b9ad5d7",
"number": 2,
"overall": 2,
"team": {
"id": "5fee86ae-74ab-4bdd-8416-42a9dd9964f3",
"name": "Jets",
"market": "New York",
"alias": "NYJ"
},
"prospect": {
"id": "227df909-4357-4a8b-8f7e-e92828062e5f",
"source_id": "7f5e7f00-8949-11ec-b2b8-adecafc94fa4",
"league_id": "cb62f97b-0ce4-4bed-ba62-fead97c0ea11",
"first_name": "David",
"last_name": "Bailey",
"name": "David Bailey",
"position": "OLB",
"team_name": "Texas Tech",
"height": 75,
"weight": 250,
"birth_place": "Irvine, CA, USA",
"top_prospect": true
}
}
]
}
]
}The response is shown trimmed to the first two picks of round 1. Drafted players are added to their NFL team's Team Profile after each completed round (step 6).
3. Read trades
The Trades feed carries detailed summaries of every in-draft trade for the draft year, live as trades are made and afterwards as a record, so an application can show the shifts in team strategy as they happen. Each trade carries an id, a sequence, and a complete flag, and lists its transactions: one per receiving side, with to_team, from_team, and the items that side received. A pick item (type: "pick") carries the pick's number, overall, supplemental and compensatory flags, and its round. The same cadence applies as for the Draft Summary: real-time updates, a 2-second TTL, requests as fast as every two seconds while the draft is live, starting 10 minutes before the scheduled start. In the 2026 draft, one trade sent pick 24 overall in round 1 from the Jacksonville Jaguars to the Cleveland Browns; each side of the trade is its own transaction, with the Jaguars' side listed first:
GET https://api.sportradar.com/draft/nfl/trial/v1/en/2026/trades.json
x-api-key: YOUR_API_KEY{
"draft": {
"id": "96bf210c-7bfb-4c0f-9b5b-a1e658163939",
"year": 2026,
"start_date": "2026-04-23",
"end_date": "2026-04-25",
"status": "closed"
},
"trades": [
{
"id": "6b52f7de-b25d-45b4-90c4-863f72790fd3",
"sequence": 1771870584909,
"complete": true,
"transactions": [
{
"id": "5dde4f91-a603-47a8-85cc-f667e61cbebc",
"to_team": {
"id": "f7ddd7fa-0bae-4f90-bc8e-669e4d6cf2de",
"name": "Jaguars",
"market": "Jacksonville",
"alias": "JAC"
},
"from_team": {
"id": "d5a2eb42-8065-4174-ab79-0a6fa820e35e",
"name": "Browns",
"market": "Cleveland",
"alias": "CLE"
},
"items": []
},
{
"id": "d87fc8f9-7d3a-407a-a8fa-1afe0ff37744",
"to_team": {
"id": "d5a2eb42-8065-4174-ab79-0a6fa820e35e",
"name": "Browns",
"market": "Cleveland",
"alias": "CLE"
},
"from_team": {
"id": "f7ddd7fa-0bae-4f90-bc8e-669e4d6cf2de",
"name": "Jaguars",
"market": "Jacksonville",
"alias": "JAC"
},
"items": [
{
"id": "0826c42b-571e-4a8c-bee7-e6c92214e006",
"type": "pick",
"pick": {
"id": "e533b2bd-5712-47dc-bb0a-8f07961db233",
"number": 24,
"overall": 24,
"supplemental": false,
"compensatory": false,
"round": {
"id": "eb9ae32d-fe7f-4bae-91e7-14df75e203d2",
"number": 1,
"start_date": "2026-04-23",
"end_date": "2026-04-23"
}
}
}
]
}
]
}
]
}Picks in the Draft Summary and Team Draft Summary carry traded: true and a trades[] list of trade IDs when they changed hands; join those IDs to this feed for the trade detail.
4. Read a team's draft
The Team Draft Summary feed shows the preset draft order and live selections for one team, useful for tracking a team's draft strategy and the changes to its lineup in real time. Take the team ID from the Teams feed, which lists every active NFL team, then call the Team Draft Summary for that team and draft year. It updates in real time with the same 2-second TTL and the same draft-day cadence as the Draft Summary. The Chicago Bears' 2024 draft opened with the first overall pick, Caleb Williams (QB, USC), a pick flagged traded: true with one trade ID, followed by pick 9, Rome Odunze (WR, Washington); their fifth-round selection, Austin Booker (DL, Kansas), came with a pick that carries two trade IDs, so a pick can change hands more than once before it is used:
GET https://api.sportradar.com/draft/nfl/trial/v1/en/2024/teams/7b112545-38e6-483c-a55c-96cf6ee49cb8/draft.json
x-api-key: YOUR_API_KEY{
"draft": {
"id": "2dc77141-fc00-4003-b4f1-525db827ddf4",
"year": 2024,
"start_date": "2024-04-25",
"end_date": "2024-04-27",
"status": "closed",
"league": {
"id": "3c6d318a-6164-4290-9bbc-bf9bb21cc4b8",
"name": "National Football League",
"alias": "NFL"
},
"broadcast": {
"channel": "206",
"network": "ABC, ESPN, NFL Network"
},
"venue": {
"name": "Campus Martius Park",
"address": "800 Woodward Ave",
"city": "Detroit",
"state": "MI",
"country": "USA"
}
},
"team": {
"id": "7b112545-38e6-483c-a55c-96cf6ee49cb8",
"name": "Bears",
"market": "Chicago",
"alias": "CHI"
},
"rounds": [
{
"id": "5cf0e822-cc30-413c-9845-4da898c92392",
"number": 1,
"start_date": "2024-04-25",
"end_date": "2024-04-25",
"status": "closed",
"picks": [
{
"id": "7efecd77-7159-4861-a3f2-72368103b95a",
"number": 1,
"overall": 1,
"traded": true,
"team": {
"id": "7b112545-38e6-483c-a55c-96cf6ee49cb8",
"name": "Bears",
"market": "Chicago",
"alias": "CHI"
},
"prospect": {
"id": "7e4a90d9-e19b-48f6-9978-5a3ada3b71c0",
"source_id": "8a3303bd-5625-4840-a539-3be7299339ae",
"league_id": "49d4b627-3f19-49a8-ae33-f539e0fb1f88",
"first_name": "Caleb",
"last_name": "Williams",
"name": "Caleb Williams",
"position": "QB",
"team_name": "USC",
"height": 73,
"weight": 215,
"experience": "JR",
"birth_place": "Washington, DC, USA",
"top_prospect": true
},
"trades": [
{
"id": "a1723613-b48a-4d49-92e0-aea830892874"
}
]
},
{
"id": "6e3f55df-9526-4b0f-be83-4d73a1c6d308",
"number": 9,
"overall": 9,
"team": {
"id": "7b112545-38e6-483c-a55c-96cf6ee49cb8",
"name": "Bears",
"market": "Chicago",
"alias": "CHI"
},
"prospect": {
"id": "d2a67700-4c6d-4c4e-a24d-adada7b622d2",
"source_id": "515ec194-a753-4a35-bfe7-cc1e0611226b",
"league_id": "f64694e0-0381-11ef-973d-5176a0ecbee4",
"first_name": "Rome",
"last_name": "Odunze",
"name": "Rome Odunze",
"position": "WR",
"team_name": "Washington",
"height": 75,
"weight": 212,
"experience": "JR",
"birth_place": "Las Vegas, NV, USA",
"top_prospect": true
}
}
]
},
{
"id": "b66e9687-2792-4d78-8b6d-15306ab4f49f",
"number": 5,
"start_date": "2024-04-27",
"end_date": "2024-04-27",
"status": "closed",
"picks": [
{
"id": "e29e1579-c6e4-4ab0-a420-f3f945ed3312",
"number": 9,
"overall": 144,
"traded": true,
"team": {
"id": "7b112545-38e6-483c-a55c-96cf6ee49cb8",
"name": "Bears",
"market": "Chicago",
"alias": "CHI"
},
"prospect": {
"id": "7640979d-7608-43d5-ace1-354b2304b17f",
"source_id": "acf2f2af-c799-4ccf-988c-98033ac2967e",
"league_id": "e062739b-9948-47aa-aa50-604483c45b8b",
"first_name": "Austin",
"last_name": "Booker",
"name": "Austin Booker",
"position": "DL",
"team_name": "Kansas",
"height": 77,
"weight": 240,
"experience": "SO",
"birth_place": "Greenwood, IN, USA",
"top_prospect": true
},
"trades": [
{
"id": "58fdfc3f-4e15-4be7-976f-a7db9ba8b6ac"
},
{
"id": "935ba62c-5a36-4fec-a341-bb77f6ca50ae"
}
]
}
]
}
]
}The response is shown trimmed to rounds 1 and 5; the 2024 entries also carry experience, the prospect's class year.
5. Stream picks and trades over Push
The Push Draft Picks feed delivers the same information as the Draft Summary, and Push Draft Trades the same as the Trades feed, as live updates over a single long-lived call, reducing the number of requests needed during the draft:
- A few minutes before the draft starts, open a connection with a single call to each stream:
https://api.sportradar.com/draft/nfl/{access_level}/stream/{language_code}/picks/subscribefor picks andhttps://api.sportradar.com/draft/nfl/{access_level}/stream/{language_code}/trades/subscribefor trades; an optionaldraftquery parameter filters the stream to a single draft - The push service delivers JSON payloads automatically as picks and trades are entered, minimizing the number of calls required
- A dropped connection cannot resume where it left off. For continuous coverage, run more than one push connection and keep the Draft Summary and Trades feeds as the fallback that fills in anything missed during the draft
The Push Feeds page covers push integration in general.
6. Reconcile after the draft
Drafted players appear on their NFL team's Team Profile after each completed round, so team pages stay current as the draft progresses, and the prospect's league_id typically appears the day after the selection, once the player has been exported to the NFL API. That league_id is the player's ID in the core feeds, where the Player Profile records the selection under draft (year, round, number, and team). Two situations are handled as they arise:
- A player drafted who is not in the Prospects feed is added to the feed as soon as possible, often immediately after being drafted, so every drafted player is included in the API
- A player drafted who is not listed in the NCAAFB API is added to the API after being drafted, following the same workflow, so data on every player entering the NFL is maintained regardless of prior listing status
While uncommon, a player can refuse to join the team that drafted them, though this can negatively affect their reputation and future opportunities within the NFL. After the draft weekend, undrafted players sign as free agents and arrive through Daily Transactions as SGN entries from the day after the draft closes, and all team rosters are updated by the end of the week; the Retrieving Rosters and Players page covers the roster feeds.
Common Use Cases
- Live draft tracker: Draft Summary polled every two seconds, or Push Draft Picks, with Trades or Push Draft Trades for the picks changing hands
- Prospect scouting and analysis: Prospects for profiles, measurements, and college context on every player in the pool, enriching news and app content on each player's background and physical stats
- Fantasy football: prospect and pick data for deeper insights and analytics during fantasy draft seasons
- Recruitment and player tracking:
source_idandleague_idto follow a player from the college record through the draft into the NFL, and onward through the Player Profile - Media and strategy tools: Top Prospects for profiles and analytics on the highest-profile players, whether for fan-facing apps or for coaching and analyst tools assessing the strengths and weaknesses of the top picks
- Draft-related betting content: prospect detail behind draft markets
- Team draft pages: Team Draft Summary for a fan view of each pick a team makes, with the traded picks and the trade detail behind them
- Trade analysis, live and historical: the Trades feed's transactions and items, for the current draft and for past draft years
- Draft history timelines: round
start_date,end_date, andstart_timewith pick order across draft years from 2019 onward
Best Practices
- Store each prospect's
id,source_id, andleague_idtogether; the college ID does not carry into the NFL API, and theleague_idis the bridge to the NFL Player Profile - Key picks by pick
idand update them in place as theprospectfills in;traded: trueandtrades[]point to the Trades feed for the detail - Open push connections a few minutes before the draft, run more than one for redundancy, and keep the REST feeds polling as the recovery path
- Keep pulling the Prospects feed during the draft; players created while the draft is under way appear there, and a player drafted without a prospect entry is added right after the selection
- Refresh the Team Profile after each completed round to pick up drafted players, and expect the prospect's
league_idthe day after selection - The draft feeds carry a 2-second cache TTL: request the Draft Summary, Team Draft Summary, and Trades feeds as fast as every two seconds while the draft is live, starting 10 minutes before the scheduled start, and pull Prospects and Top Prospects as needed; the Update Frequencies chart carries the full cadence guidance
Updated 17 days ago
