Frequently asked questions
Short answers about the data, plans, billing, your license, DFS data and NFL projections.
Records & limits
What counts as a record?
A record is one row of data that the API returns. On Starter, every record counts, up to 5 million a month. On Pro and Elite, only slate & contest records count, 1 record per row, up to 10 million a month on Pro and 50 million on Elite. A slate & contest record is one row of contest lineups (the contest download, the contest lineups and a user's lineups), one row of slates, or one row of slate players (the player salaries). A call to the contest ownership table of one contest costs 1 record for every 100 lineups of the contest, at least 5 records, whatever the number of rows it returns. Every other Pro or Elite request, such as stats, odds, play-by-play, projections and contest standings, costs no records.
How are slates and slate players counted?
One row is one record. A page of 100 slates costs 100 records. A page of 100 slate players costs 100 records. The other routes of a slate, such as projections, odds, weather, injuries and news, cost no records. The same rows count when you read them through GraphQL or the MCP server.
How is a CSV download counted?
Each line of the CSV is one record. A line is never split into more records, even when it holds many columns. The header line is free.
How is a contest download counted?
In CSV, one entry is one line and one record. The players of the lineup are columns on that line, not separate records. A contest with 100,000 entries of nine players each costs 100,000 records, not 900,000. An entry with no lineup still has its line and counts as 1. enrich=dfs.player_stats adds no records. The JSON format also returns the player pool, so it costs one record per entry plus one per pool row (a Showdown player has a captain row and a FLEX row).
How do I see how much quota I used?
Every paid response carries the headers X-Quota-Limit, X-Quota-Used and X-Quota-Remaining. Your account page shows your usage for the month.
What happens when I reach my monthly quota?
Requests return HTTP 429 with the error quota_exhausted and your reset time (resets_at). The quota resets at 00:00 UTC on the 1st of each month, or at once when you upgrade. We never bill an overage.
Is there a rate limit beyond the monthly quota?
Yes: 600 requests per minute for each API key. A request over the limit returns HTTP 429 with a Retry-After header that gives the number of seconds to wait. A rate-limited request costs no records.
What can I see without a paid plan?
A free API key returns up to 5 records from each list. A capped answer carries a _metadata block with required_tier, message and total_actual_records (the number of rows that a paid plan gets). The lists of DFS slates and contests are open in full. The top 100 entries of the marquee contests are free for everyone, with each of those users' lineups: each week's DraftKings Millionaire and FanDuel Sunday Million, the biggest DraftKings pre-game Showdown of each Thursday and Monday night game, and each NBA night's biggest DraftKings and FanDuel contests. Row 101 and later, and contest lineup downloads, need Pro.
Still have a question? Send us the endpoint, the slate or contest ID, and the time (UTC). We reply by email, usually within one business day. Contact support →