data·vault_
← Catalog

Free sports data CSV: what you can download, and what you can't

Survey of free sports statistics sources · checked 2026-09-09 · covers the NFL Games & Betting Lines 1999-2026 pack, with the full schema in the games.csv column guide

Free sports statistics exist, but the format surprises people. The big leagues sell their feeds, and most of what you find labeled "free sports data" is an API with rate limits, not a file. The sources below are the exception: they publish results you can download and keep, under licenses that permit commercial work. Every fact on this page was verified on 2026-09-09, license and all.

The deepest CSV of the group is NFL games: a free 22-row sample with betting lines downloads here with no signup, the full 7,548-row file queries free over MCP, and the complete pack is a one-time purchase.

Verified free sources, league by league

Each row below was checked the day this page was published: the endpoint responded, and the license is stated by the source itself.

SourceSportFormatLicense / termsVerified
nflverse-dataNFL games, 1999-2026CSV, one row per game, direct downloadCC BY 4.0, commercial use with attribution2026-09-09
openfootball/football.jsonSoccer, English Premier League, Bundesliga, Serie A, and moreJSON files, one per seasonCC0, public domain2026-09-09
MLB Stats APIMLB teams, players, schedules, game feedsJSON over HTTP, no keyFree to query; content copyright MLB Advanced Media, terms posted with responses2026-09-09
balldontlieNBA, MLB, NFL and 20+ leaguesJSON API, OpenAPI specs, MCP serverFree tier at 5 requests per minute; paid tiers above that2026-09-09

Two notes on that table. First, openfootball ships JSON, not CSV; it converts to CSV in one spreadsheet import if you need the flat format. Second, the MLB Stats API has no formal reuse license beyond its copyright notice, so treat it as fine for personal analysis and check the posted terms before redistributing. nflverse and openfootball are the two with clean commercial licenses. For what those licenses let you do with the rows, the public domain datasets guide maps commercial use and credit lines pack by pack.

Sports Reference sites (Pro-Football-Reference and siblings) come up in every search for sports statistics. They are excellent for reading a stat in a browser, but their terms do not permit bulk scraping or redistribution, so they are not a dataset download. We left them out of the table for that reason.

The ESPN endpoints sit in the same free-but-undocumented category as the MLB Stats API, and the ESPN API in Python guide walks through them with requests examples checked live.

CSV download vs API: what each format buys you

The choice is less about preference and more about what the source publishes. nflverse releases CSV files weekly through GitHub Actions; openfootball commits JSON per season; MLB and balldontlie serve queries only. When a CSV exists, it tends to win for analysis work:

CSV fileAPI
AccessOne download, then offlineNetwork call per query, rate limits apply
SchemaFixed and inspectable in a spreadsheetRead from docs or OpenAPI spec
FreshnessAs current as the last releaseLive, best for scores in progress
Best forSeason-level analysis, models, joins across erasDashboards, live scores, single lookups
ReproducibilityPin a version, rerun foreverResponses can change under you

A concrete example of the reproducibility point: the nflverse games file on 2026-09-06 carries 7,548 rows and 46 columns, and a checksum recorded in the pack proves the copy never changed. Six months from now, that same file from the live repo will have moved on. An API response cannot offer you that anchor.

The NFL games CSV in detail

The nflverse games file is the one source in the table that covers a whole league's history in a single flat file: 7,548 games, 1999 through the full 2026 schedule, 46 columns per row. Final scores sit next to the closing spread and total (from 1999), American-odds moneylines and spread/total odds (from 2006), rest days, starting quarterbacks, coaches, referee, stadium, roof, surface, and kickoff weather.

The Data Vault pack ships those rows as a checksummed copy plus two derived tables and a data dictionary. The games.csv column guide defines every column, including the spread sign convention (stored relative to the home team) and the push rules. For a worked read of the condition columns, NFL stadium weather runs dome vs outdoor scoring and the hottest kickoffs on the real 22-row sample. If you are weighing the raw nflverse download against the preprocessed pack, that comparison is spelled out honestly, including the cases where raw is enough.

The two derived tables: team-records-by-season.csv, 861 rows covering wins, losses, points, against-the-spread records with pushes broken out, and over/under records per team per season; and season-summaries.csv, 27 rows, one per season 1999-2025, free to download in full.

Query the full file over MCP, free, no key

You can filter the full 7,548-row file without downloading it. The dataset-mcp server queries the released files directly: 100 rows per call, filters on any column, no API key, no cost. Start it with:

npx --allow-git=all -y github:jayjex/dataset-mcp
# plain form works on npm 10/11: npx -y github:jayjex/dataset-mcp

Example query, every 2025-season game, first page:

query_dataset("nfl-games", {where: [{column: "season", op: "=", value: "2025"}], limit: 10})

total_matched: 285 | next_offset: 10
2025_01_DAL_PHI  2025-09-04  DAL@PHI  20-24  spread=8.5  total=47.5
2025_01_KC_LAC   2025-09-05  KC@LAC   21-27  spread=-3   total=47.5
...

The season filter returns 285 games for 2025: 272 regular-season games plus the 13 playoff games. Filter operators are =, contains (case-insensitive), gt, and lt (numeric-aware, with date handling for gameday). columns picks a subset, offset pages through large results, and get_stats returns row counts, numeric min/max/mean, and top-N values for any column. Setup details live on the for agents page, and other free datasets for agent pipelines are listed on the free API datasets page.

Free sample vs full pack

FreeFull pack
games.csv22-row sample, 14 of 46 columnsall 7,548 rows, 46 columns
team-records-by-season.csvnot included861 rows
season-summaries.csvall 27 rowsall 27 rows
data dictionarythis page and the column guidefull dictionary + source checksums
MCP queriesfull file, free, 100 rows/call, no key

Checkout and download run through Getly. The full pack is 3 CSVs (7,548 + 861 + 27 rows), data dictionary, source SHA-256 checksums.

What this data is not

Everything on this page is historical record: final results and the closing lines as they stood at each game. There are no picks, no predictions, no betting advice, and no model outputs anywhere in the pack or in these guides. Lines and odds are included as facts about each game, the way a box score reports the weather. Nothing here tells you what to wager on, and nothing here updates live; for current odds you would need a live feed, which none of these sources are.

What the data is good for: research and analysis of what already happened. Home win rates by decade, scoring trends across eras, how often favorites covered, weather effects on totals, training and testing models on a 27-season split. Analysts and fantasy players make up most of the audience for this kind of file, and none of those questions need a prediction engine.

FAQ

Where can I download free sports data as CSV?

For NFL games, nflverse-data publishes one row per game since 1999 as a direct CSV download under CC BY 4.0. For soccer, openfootball publishes league results as CC0 JSON files. Here, a 22-row NFL games sample and the complete season-summaries.csv are free downloads with no signup. Most other sports sources are APIs, not files.

Can I use free NFL game data commercially?

Yes, with attribution. nflverse-data is licensed CC BY 4.0, which permits commercial use when you credit the source, for example: "Data from nflverse, CC BY 4.0". openfootball is CC0, which needs no credit at all. The Data Vault pack carries the same CC BY 4.0 terms on its source rows and derived tables.

Can I query sports statistics without an API key?

Yes. nflverse files and openfootball JSON are plain downloads, and the MLB Stats API answers without any key. The dataset-mcp server also queries the full 7,548-row NFL games file for free with no key, 100 rows per call, filtering on any column.