RotoWire APIrotowire.com ↗
Access MLB player news, season stats, weekly lineup predictions, and betting props from RotoWire via 6 structured endpoints. Filter by position, season, or player name.
What is the RotoWire API?
The RotoWire API exposes 6 endpoints covering MLB player news, season statistics, projected weekly lineups, and betting props. The get_player_props endpoint returns moneyline odds across multiple sportsbooks for hits, home runs, RBIs, stolen bases, and pitcher wins, while get_player_stats supports filtering by season year and position (batters or pitchers) to return per-player averages, games, at-bats, and more.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/baf3df9c-7ce2-4173-957c-3c7ffab5cd0e/get_baseball_news' \ -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 rotowire-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.rotowire_mlb_api import RotoWire, Position, Season, PlayerNotFound
rw = RotoWire()
# List latest baseball news
for item in rw.newsitems.list():
print(item.player_name, item.headline, item.is_injury_report)
break
# Get weekly lineups
for day in rw.dailylineups.list():
print(day.date, day.count)
for game in day.games:
print(game.away.team, "vs", game.home.team)
for player in game.away.lineup:
print(player.name, player.position)
break
break
break
# Get player stats using Season and Position enums
for stat in rw.playerstats.list(season=Season.Y2025, position=Position.BATTERS):
print(stat.player, stat.team, stat.hr, stat.avg, stat.ops)
break
# Get player props
for prop in rw.playerprops.list(player_name="Judge"):
print(prop.name, prop.team, prop.opp)
break
# Search players and navigate to details
for match in rw.playermatches.search(query="Ohtani"):
print(match.name, match.span, match.text)
details = match.details.get()
print(details.name, details.date_of_birth, details.url)
break
# Direct player lookup by id
player = rw.players.get(player_id="aaron-judge-12959")
print(player.name, player.date_of_birth)
Extract the latest baseball player news from RotoWire including real-time updates, injury reports, and lineup changes. Returns up to ~25 news items per call with player names, teams, headlines, body text, and injury status. No input parameters; always returns the current news feed.
No input parameters required.
{
"type": "object",
"fields": {
"news": "array of news item objects",
"count": "integer total number of news items returned"
},
"sample": {
"data": {
"news": [
{
"body": "Tatis went 4-for-6 with a double and one run scored in Tuesday's 5-3 extra-innings loss to the Reds.",
"date": "June 10, 2026",
"team": "OFSan Diego Padres",
"injury": null,
"headline": "Four knocks in loss",
"player_url": "https://www.rotowire.com/baseball/player/fernando-tatis-14469",
"player_name": "Fernando Tatis",
"is_injury_report": false
}
],
"count": 25
},
"status": "success"
}
}About the RotoWire API
News and Injury Updates
The get_baseball_news endpoint returns an array of news items, each containing player_name, team, headline, body, date, injury, and an is_injury_report boolean. This makes it straightforward to build a filtered injury feed or alert system that distinguishes routine lineup notes from actual injury reports without any additional parsing.
Season Stats and Lineup Projections
get_player_stats accepts two optional parameters: season (e.g. '2025', '2026') and position ('B' for batters, 'P' for pitchers). The response includes per-player fields for games, at-bats, runs, hits, doubles, home runs, RBIs, and more. get_weekly_lineups returns 7 daily objects, each with a games array listing away and home team lineups by player name, position, and profile URL — useful for daily fantasy lineup construction.
Player Search and Profiles
search_players takes a query string (minimum 2 characters) and returns matching players with their rotoPlayerID, team abbreviation, position, and a link slug such as aaron-judge-12959. That slug feeds directly into get_player_details, which returns the player's full name, date of birth, team, and profile URL. The two endpoints are designed to be chained: search first, then retrieve details.
Betting Props
get_player_props returns all currently available MLB player props from RotoWire's betting page, including gameID, playerID, name, team, opponent (opp), and odds columns keyed by sportsbook (e.g. mgm, dr). An optional player_name parameter supports case-insensitive partial matching to narrow results to a specific player across all available markets.
The RotoWire API is a managed, monitored endpoint for rotowire.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when rotowire.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 rotowire.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?+
- Build a daily fantasy baseball lineup tool using
get_weekly_lineupsposition and player data. - Track MLB injury status in real time using the
is_injury_reportandinjuryfields fromget_baseball_news. - Compare sportsbook odds for player props like home runs and RBIs across multiple books via
get_player_props. - Pull season batting or pitching projections by filtering
get_player_statswithseasonandpositionparameters. - Chain
search_playersandget_player_detailsto resolve a player name to structured profile data including date of birth. - Alert users to lineup changes for a specific team by parsing the
gamesarray inget_weekly_lineups. - Aggregate player prop lines across sportsbooks to identify line discrepancies for a given player using
get_player_props.
| 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 RotoWire have an official developer API?+
What does `get_player_props` actually return, and can I filter by sport or market type?+
gameID, playerID, name, team, opp, playerLink, and per-sportsbook odds columns. You can filter by player name using the optional player_name parameter. Filtering by market type (e.g. only home run props) is not exposed as a parameter. You can fork this API on Parse and revise it to add a market-type filter endpoint.How fresh is the data from `get_baseball_news`?+
Does the API cover other sports beyond MLB?+
Does `get_player_stats` return historical season data or only current-season projections?+
season parameter accepts a year string such as '2025' or '2026', allowing retrieval of stats for different seasons including projection years. Coverage of specific historical seasons depends on what RotoWire publishes. The API currently does not expose a game-log or game-by-game breakdown — only aggregated season-level stats. You can fork this API on Parse and revise it to add a game-log endpoint.