Bleacher Report APIbleacherreport.com ↗
Access Bleacher Report sports news, live scores, and NBA box scores via 4 endpoints. Retrieve full article content, game stats, and player statistics by sport and date.
What is the Bleacher Report API?
The Bleacher Report API provides 4 endpoints covering sports news articles, live scores, and detailed box-score data across major North American leagues. get_news returns article slugs and URLs for NBA, NFL, MLB, and NHL coverage, while get_game_stats delivers per-player statistics, quarter-by-quarter linescores, and team stat comparisons using a gamecast slug from get_scores.
curl -X GET 'https://api.parse.bot/scraper/756c7a01-682b-4984-aa15-851584e21385/get_news?limit=5&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 bleacherreport-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.bleacher_report_api import BleacherReport, SportSlug
br = BleacherReport()
# Get NBA news articles
nba = br.sport(name=SportSlug.NBA)
for article in nba.news():
print(article.slug, article.url)
# Drill into article details
full = article.details()
print(full.title, full.author)
for paragraph in full.content:
print(paragraph)
break
# Get scores for a specific date
for game in nba.scores(date="2025-06-09"):
print(game.gamecast_slug, game.status, game.summary)
print(game.team_one.name, game.team_one.score)
print(game.team_two.name, game.team_two.score)
print(game.location.city, game.location.venue)
# Drill into game stats
stats = game.stats()
print(stats.display_name, stats.game_state)
if stats.comparison:
for comp in stats.comparison:
print(comp.stat, comp.team_one, comp.team_two)
break
Get current news articles for a specific sport. Returns article slugs and URLs that can be used with get_article to fetch full content. Each article includes an id, slug, and URL.
| Param | Type | Description |
|---|---|---|
| limit | integer | Maximum number of articles to return. |
| sport | string | Sport slug: 'nba', 'nfl', 'mlb', 'nhl'. |
{
"type": "object",
"fields": {
"sport": "string - the sport queried",
"articles": "array of article summary objects with id, slug, and url"
},
"sample": {
"data": {
"sport": "nba",
"articles": [
{
"id": "25435775",
"url": "https://bleacherreport.com/articles/25435775-jose-alvarado-sends-message-wemby-after-controversial-jalen-brunson-shove-nba-finals-g3",
"slug": "25435775-jose-alvarado-sends-message-wemby-after-controversial-jalen-brunson-shove-nba-finals-g3"
}
]
},
"status": "success"
}
}About the Bleacher Report API
News and Article Endpoints
get_news accepts a sport parameter (nba, nfl, mlb, nhl) and an optional limit to control how many results come back. It returns an array of article objects, each containing an id, slug, and url. Those slugs feed directly into get_article, which returns the full article: title, author, published_at as an ISO timestamp, and content as an array of paragraph strings. The published_at field may be empty for some articles.
Scores and Game Statistics
get_scores takes a sport and an optional date in YYYY-MM-DD format, defaulting to today. It returns an array of game objects that include team scores, game status, gamecast_slug, and location. NBA is the confirmed working sport; NFL, MLB, and NHL results depend on season availability and may return empty or time out. The gamecast_slug from each game object is the required input for get_game_stats.
Box Score Detail
get_game_stats returns a full game record keyed by gamecast_slug. Response fields include linescore (period-by-period scores), scoreboard (team_one and team_two totals with progress), player_stats (starters and bench grouped by team), stat_leaders (present on some games), comparison (team-level stat contrasts), display_name, status, and game_state (e.g., PostGame, InProgress). This endpoint covers the same game scope as the Bleacher Report Gamecast experience.
The Bleacher Report API is a managed, monitored endpoint for bleacherreport.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when bleacherreport.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 bleacherreport.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?+
- Display NBA box scores with per-player statistics and bench/starter splits in a sports dashboard
- Aggregate Bleacher Report articles by sport tag for a news digest or newsletter
- Track live game status and score progression using the
game_stateandlinescorefields - Build a game recap tool that links article content from
get_articleto box-score data fromget_game_stats - Monitor stat leaders across NBA games by extracting the
stat_leadersobject from box score responses - Pull
gamecast_slugvalues fromget_scoresto build a historical game index for a specific date range - Compare team-level stats from the
comparisonarray to support pre- or post-game analysis features
| 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 Bleacher Report have an official developer API?+
Which sports are supported by get_scores, and what happens with non-NBA sports?+
get_scores. The nfl, mlb, and nhl values are accepted parameters, but results depend on whether games are in season and on upstream data availability. Requests for those sports may return empty game arrays or time out. NBA box scores via get_game_stats are the most reliable use of the scores workflow.What player-level data does get_game_stats return?+
get_game_stats returns player_stats grouped into starters and bench for each team, alongside stat_leaders for notable individual performances (present on some but not all games). The comparison array holds aggregate team-level stat contrasts. Individual historical player season stats or career averages are not included in any endpoint. The API covers game-level and match-level data only. You can fork it on Parse and revise to add an endpoint targeting player profile or season stats pages.Are schedules or upcoming game data available?+
get_scores endpoint returns results for a specific date (defaulting to today) and reflects completed or in-progress games. Forward-looking schedules are not a returned field in any endpoint. You can fork it on Parse and revise to add an endpoint that targets Bleacher Report schedule pages for a given team or league.Can get_article retrieve opinion columns and analysis pieces, or only news reports?+
get_article works with any slug returned by get_news, which covers articles indexed under the specified sport on Bleacher Report. That includes news reports, analysis, and opinion pieces — whatever appears in the sport's feed. The content field returns the full body as an array of paragraph strings, and author identifies the byline. There is no filter parameter to restrict by article type within the endpoint.