Skip to main content

nflmeta

Current-season helpers

client.teams.cap_space(season=2026, team_abbr="NE")
client.games.inactives(22773)
client.injuries.list(season=2026, week=1)
client.teams.injuries("NE", season=2026, week=1)
client.players.injuries("player-key", season=2026)
client.teams.roster("NE", year=2026, count=True)

Use an initialized server-side client. Cap space is a daily estimate; inspect response.meta["observed_at"] and response.meta["stale"]. Inactive status not_available does not mean everyone is active. Injury response.meta["current_reserves"] is current, not historical; distinguish reported_pending from confirmed and report_status from game_status. List totals may be None or absent. Request count=True where supported, or use returned/has_more. Existing live and historical analytics methods are unchanged.

Official Python SDK for the NFLMeta API.

Install

pip install nflmeta

Quickstart

from nflmeta import NFLMetaClient

client = NFLMetaClient(api_key="YOUR_KEY")

team = client.teams.get("PIT", season=2025)
player = client.players.identity("josh-allen-1996")
usage = client.usage.get()
live = client.live_scores.get()

print(team.data["displayName"])
print(player.data["display_name"])
print(usage.data["quota_remaining"])

What The SDK Does

  • sends X-NFLMeta-Key automatically when you provide api_key
  • preserves the API envelope shape: data, optional meta, plus parsed rate-limit headers
  • throws typed HTTP errors for common failure cases
  • exposes the main public API surfaces as resource clients instead of forcing raw URL construction
  • still gives you a low-level client.get(path, query={...}) escape hatch for any route not wrapped yet

Configuration

client = NFLMetaClient(
    api_key="YOUR_KEY",
    base_url="https://nflmeta.org",
    timeout=10.0,
)

You can also pass default headers or a custom transport(url, headers, timeout) callable if you want the SDK to run through your own HTTP layer in tests or internal tooling.

Resource Coverage

The Python SDK wraps the same main surfaces as the TypeScript package:

  • health
  • live_scores
  • usage
  • metadata
  • seasons
  • teams
  • players
  • games
  • plays
  • playoff_games
  • standings
  • playoffs
  • super_bowls
  • history
  • hall_of_fame
  • contributors
  • executives
  • staff
  • coaches
  • assets
  • all_star_games
  • stats.players
  • reference
client.live_scores.get()
client.plays.summary(season=2024, group_by="team")
client.plays.leaders(season=2024, role="passer")
client.plays.list(game_id=21390, skip_markers=True)

plays.list is metered per play and the API refuses an unnarrowed request with 400 invalid_request: pass game_id, or player, or season together with one of week, team or opponent. plays.summary and plays.leaders answer season-wide questions server-side in tens of rows.

Errors

  • NFLMetaBadRequestError
  • NFLMetaUnauthorizedError
  • NFLMetaNotFoundError
  • NFLMetaRateLimitError
  • NFLMetaTimeoutError
  • NFLMetaError

Escape Hatch

raw = client.get("/api/v1/reference/team-colors", query={"limit": 10})
print(raw.data)

The path is resolved against base_url and has to stay there. A URL on another origin is refused with NFLMetaInvalidUrlError before any header is built, and a redirect that would leave the origin is refused rather than followed — your API key travels in the X-NFLMeta-Key header, and urllib forwards every request header across a cross-origin redirect. Same-origin absolute URLs still work.

Selective live-score polling

client.live_scores.get(phase="in")  # Includes halftime and overtime
client.live_scores.get(game_id=12345)
client.live_scores.get(game_ids="12345,12346")  # Comma-separated string

Filters select the current live-score window, not historical games. Only returned games count toward row usage; empty results cost zero rows. Request limits still apply. Poll IDs without phase="in" to receive final scores. These optional arguments require an SDK release containing this change; existing SDK clients can call the filtered REST URL directly.

0.2.0: selected events, historical practice and identity-aware depth charts

Keep returned metadata: unknown distance or attribution is not zero; historical records are not certified pre-kickoff snapshots. Depth-chart identity_status describes identity, not vacancy. Player lookup resolves retained aliases; preserve your own player/Favorites IDs. A one-time Sleeper crosswalk can be requested through support; no public external-ID lookup is provided.

events = client.games.defense_special_teams(11565, limit=100, offset=0)
chart = client.teams.depth_chart("NE")
league_charts = client.depth_charts.list(season=2026, limit=100)
changes = client.depth_charts.changes(team="NE", days=7)
history = client.rosters.list(season=2020, week=2)
practice = client.injuries.list(season=2020, date="2020-09-16")
scores = client.live_scores.get(phase="in", game_ids="22834,22835")

Metadata

Release files for nflmeta 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for nflmeta 0.2.0
File Size Uploaded Provenance
nflmeta-0.2.0.tar.gz 18.2 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for nflmeta 0.2.0
File Interpreter ABI Platform
nflmeta-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 31.3 kB

Release files / nflmeta-0.2.0.tar.gz

Download URL nflmeta-0.2.0.tar.gz
Size 18.2 kB
Tags Source
SHA-256 checksum
How to use checksums
240efb06948db01a3d5fe784fa91583a92c5fc1a13a5d81301bc8a1742130d4d
BLAKE2b-256 checksum
How to use checksums
2b7ef0346dc005b1a80f340176fc9b8d587021259f618e288147fa3c5d9dc3b2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release files / nflmeta-0.2.0-py3-none-any.whl

Download URL nflmeta-0.2.0-py3-none-any.whl
Size 13.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f5429e78064a1da6340c3a7df439de9cb67eac22fc9e5d32e50ac4f8200d5317
BLAKE2b-256 checksum
How to use checksums
431bd2e8e08f6ea8ddf1eed70939e85c86afe145bab2a119172ea3dae987f0fe
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Security for nflmeta 0.2.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page