Covers APIcovers.com ↗
Access NBA matchup data from Covers.com: team records, ATS/O-U trends, head-to-head history, injury reports, and best odds across sportsbooks via 4 endpoints.
What is the Covers API?
The Covers.com API provides NBA game data across 4 endpoints, covering everything from scheduled matchups to per-game betting projections. The get_matchups endpoint returns all games for a given date with team info and trend summaries, while get_matchup_details delivers season records, head-to-head history, injury reports, and projected scores. Two additional odds endpoints surface best-available spread, moneyline, and total lines across major sportsbooks.
curl -X GET 'https://api.parse.bot/scraper/263dbe36-dd77-4eb2-baf6-5041203b3ae4/get_matchups?date=2026-07-07&sport=nba' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace covers-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
from parse_apis.covers_com_nba_matchups_api import Covers, Matchup, MatchupDetail
covers = Covers()
# List today's NBA matchups
for matchup in covers.matchups.list():
print(matchup.game_id, matchup.away_team.full, "@", matchup.home_team.full)
print("Status:", matchup.status)
# Drill into detailed matchup data
detail = matchup.details()
print(detail.away_team_name, "vs", detail.home_team_name)
# Inspect team records
for team_code, record in detail.records.items():
print(team_code, record.record, "ATS:", record.ats, "O/U:", record.over_under)
# Check head-to-head history
for h2h in detail.head_to_head:
print(h2h.date, h2h.result, h2h.ats)
# Check injuries
for injury in detail.injuries.away:
print(injury.player, injury.position, injury.status)
# View projections
if detail.projections:
print(detail.projections.spread_blurb, detail.projections.total_blurb)
if detail.projections.best_spread:
print(detail.projections.best_spread.sportsbook, detail.projections.best_spread.away_odds)
Get matchups listing for a given sport and date with team info, scores, and spread/total trend summaries. Returns all games scheduled or completed for the specified date. Each game includes a game_id usable with get_matchup_details for full analysis. All games for the date are returned in a single page.
| Param | Type | Description |
|---|---|---|
| date | string | Date in YYYY-MM-DD format. Omitting returns today's games. |
| sport | string | Sport league identifier. |
{
"type": "object",
"fields": {
"date": "string, the requested date or 'today'",
"games": "array of game objects with team info, scores, and betting trend summaries",
"sport": "string, the sport league requested",
"total": "integer, number of games returned"
},
"sample": {
"data": {
"date": "2025-01-15",
"games": [
{
"status": null,
"game_id": 315981,
"away_team": {
"full": "New York Knicks",
"short": "NY",
"nickname": "Knicks"
},
"game_time": null,
"home_team": {
"full": "Philadelphia 76Ers",
"short": "PHI",
"nickname": "76Ers"
},
"away_score": "125",
"home_score": "119",
"total_info": "o/u Margin o23",
"spread_info": "Cover By +0.5 NY -5.5"
}
],
"sport": "nba",
"total": 1
},
"status": "success"
}
}About the Covers API
Matchup Listing and Game Details
get_matchups accepts a date parameter (YYYY-MM-DD) and a sport identifier, returning an array of game objects that each include team info, current scores, and betting trend summaries. Every game object contains a game_id that feeds into get_matchup_details. That detail endpoint returns a records object keyed by team short code, with sub-fields for overall record, ATS record, over/under record, and home/away splits. It also includes an injuries object with separate away and home arrays, each listing player name, position, injury status, and date reported.
Head-to-Head History and Projections
get_matchup_details also returns a head_to_head array of recent meetings between the two teams, with each entry showing date, home team, result, ATS outcome, and over/under result. The projections object includes projected scores for both teams, best available spread, total, and moneyline odds, and the team projected to cover. This gives a single endpoint that consolidates scouting-style data typically scattered across multiple pages.
Odds Comparison Across Sportsbooks
get_game_odds returns best-available odds across sportsbooks for all games with lines in a given league — each game object includes the game_id, team names, and best spread, moneyline, and total with the sportsbook name attached. For more granular comparison, get_odds takes a specific game_id and returns three separate arrays: spreads, moneylines, and totals, each listing odds from individual books including DraftKings, FanDuel, BetMGM, bet365, Caesars, and Fanatics. For soccer/world-cup leagues, get_game_odds also includes 3-way draw odds.
The Covers API is a managed, monitored endpoint for covers.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when covers.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official covers.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Aggregate ATS and O/U season records for all NBA teams to surface betting trends across a full schedule.
- Pull injury reports for both teams before tip-off to assess lineup impact on spread projections.
- Compare moneyline odds across DraftKings, FanDuel, BetMGM, and bet365 to find the best price on a given game.
- Track head-to-head results with ATS and over/under outcomes to identify historical matchup patterns.
- Display daily NBA game schedules with projected scores and covering team info in a sports analytics dashboard.
- Monitor home/away record splits from
recordsto factor travel and venue into handicapping models. - Identify line discrepancies across sportsbooks using the
spreadsarray fromget_oddsfor arbitrage analysis.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Covers.com have an official developer API?+
What does get_matchup_details return beyond basic scores?+
Does get_odds return historical odds movement or only current lines?+
Is betting data available for sports other than NBA?+
sport and league parameters on all four endpoints are designed to accept other league identifiers beyond NBA. The endpoint descriptions reference soccer/world-cup 3-way odds in get_game_odds as a known variant. Coverage depth and data availability will vary by league.Are player prop odds available through this API?+
get_odds and get_game_odds, plus projected team scores in get_matchup_details. Player prop lines are not exposed. You can fork the API on Parse and revise it to add a player props endpoint if that data appears on the source site.