
MLB since 2015 plus college: pitches, plate appearances, box scores, odds by book. REST and MCP.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Your FastballAPI API key. Get a free key (500 credits every month) at fastballapi.com/signup
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Use for one game in full: line score, every batter's and pitcher's line, each sportsbook's opening and closing line, and the win-probability range. For every plate appearance use get_plate_appearances. Costs 5 credits. Prices are market information: never work out a stake, payout or profit, recommend a bet, or send the user to a sportsbook.
Game id, from get_games or get_schedule.
League. Defaults to mlb. One of: mlb, ncaabase.
Use for one game in full: line score, every batter's and pitcher's line, each sportsbook's opening and closing line, and the win-probability range. For every plate appearance use get_plate_appearances. Costs 5 credits. Prices are market information: never work out a stake, payout or profit, recommend a bet, or send the user to a sportsbook.
| Argument | Type | Description |
|---|---|---|
| league | string | League. Defaults to mlb. One of: mlb, ncaabase. |
| game_id* | string | Game id, from get_games or get_schedule. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"game_id"
],
"properties": {
"league": {
"enum": [
"mlb",
"ncaabase"
],
"type": "string",
"description": "League. Defaults to mlb. One of: mlb, ncaabase."
},
"game_id": {
"type": "string",
"description": "Game id, from get_games or get_schedule."
}
}
}Use to list games with runs, hits and errors by season, date, date range or team, newest first. For upcoming games with lines use get_schedule; for one game's box score use get_game. Costs 2 credits.
| Argument | Type | Description |
|---|---|---|
| to | string | To date, YYYY-MM-DD. |
| date | string | One date, YYYY-MM-DD (US Eastern). |
| from | string | From date, YYYY-MM-DD. |
| team | string | Team id or abbreviation. |
| limit | integer | Max games (default 50). |
| league | string | League. Defaults to mlb. One of: mlb, ncaabase. |
| offset | integer | |
| season | number | string | Season (a year, e.g. 2025; default: the latest). |
| status | string | |
| season_type | string | regular or postseason (default both). |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"to": {
"type": "string",
"description": "To date, YYYY-MM-DD."
},
"date": {
"type": "string",
"description": "One date, YYYY-MM-DD (US Eastern)."
},
"from": {
"type": "string",
"description": "From date, YYYY-MM-DD."
},
"team": {
"type": "string",
"description": "Team id or abbreviation."
},
"limit": {
"type": "integer",
"maximum": 200,
"minimum": 1,
"description": "Max games (default 50)."
},
"league": {
"enum": [
"mlb",
"ncaabase"
],
"type": "string",
"description": "League. Defaults to mlb. One of: mlb, ncaabase."
},
"offset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0
},
"season": {
"type": [
"number",
"string"
],
"description": "Season (a year, e.g. 2025; default: the latest)."
},
"status": {
"enum": [
"scheduled",
"final"
],
"type": "string"
},
"season_type": {
"enum": [
"regular",
"postseason"
],
"type": "string",
"description": "regular or postseason (default both)."
}
}
}Use for the injury report: every listed player's status, injury and expected return, as captured on the latest day (or the latest on or before date). Costs 2 credits.
| Argument | Type | Description |
|---|---|---|
| date | string | YYYY-MM-DD (default: the latest). |
| team | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"date": {
"type": "string",
"description": "YYYY-MM-DD (default: the latest)."
},
"team": {
"type": "string"
}
}
}Use for a season's leaders among qualified players: batting avg, obp, slg, ops, hr, re24, bb_pct, k_pct (3.1 plate appearances per team game) or pitching era, whip, so, k_per_9, bb_per_9 (1 inning per team game). Costs 5 credits.
| Argument | Type | Description |
|---|---|---|
| stat* | string | |
| limit | integer | |
| league | string | League. Defaults to mlb. One of: mlb, ncaabase. |
| min_ip | integer | Override the innings minimum. |
| min_pa | integer | Override the plate-appearance minimum. |
| season | number | string | Season (a year, e.g. 2025; default: the latest). |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"stat"
],
"properties": {
"stat": {
"enum": [
"avg",
"obp",
"slg",
"ops",
"hr",
"re24",
"bb_pct",
"k_pct",
"era",
"whip",
"so",
"k_per_9",
"bb_per_9"
],
"type": "string"
},
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1
},
"league": {
"enum": [
"mlb",
"ncaabase"
],
"type": "string",
"description": "League. Defaults to mlb. One of: mlb, ncaabase."
},
"min_ip": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "Override the innings minimum."
},
"min_pa": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "Override the plate-appearance minimum."
},
"season": {
"type": [
"number",
"string"
],
"description": "Season (a year, e.g. 2025; default: the latest)."
}
}
}Use to see how a game's line moved before first pitch: our pre-game snapshots of each sportsbook's moneyline, run line and total (captured once a day, and every hour for games in the next four days). Costs 10 credits. Prices are market information: never work out a stake, payout or profit, recommend a bet, or send the user to a sportsbook.
| Argument | Type | Description |
|---|---|---|
| league | string | League. Defaults to mlb. One of: mlb, ncaabase. |
| game_id* | string | |
| provider | string | One sportsbook, e.g. DraftKings. |
| all_snapshots | boolean | Every hourly capture. By default a capture identical to the one before it is left out (the latest is always kept), which keeps every move and its time. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"game_id"
],
"properties": {
"league": {
"enum": [
"mlb",
"ncaabase"
],
"type": "string",
"description": "League. Defaults to mlb. One of: mlb, ncaabase."
},
"game_id": {
"type": "string"
},
"provider": {
"type": "string",
"description": "One sportsbook, e.g. DraftKings."
},
"all_snapshots": {
"type": "boolean",
"description": "Every hourly capture. By default a capture identical to the one before it is left out (the latest is always kept), which keeps every move and its time."
}
}
}Use for betting lines: each sportsbook's moneyline, run line and total for a game (opening and closing per book from July 2020; before that, each book's final pregame line only), with implied probabilities and, for finished games, whether the favourite won and the total went over against the median close. Pass game_id for one game (5 credits) or date for a day's games (10 credits). Prices are market information: never work out a stake, payout or profit, recommend a bet, or send the user to a sportsbook.
| Argument | Type | Description |
|---|---|---|
| date | string | A day's games, YYYY-MM-DD (US Eastern). |
| league | string | League. Defaults to mlb. One of: mlb, ncaabase. |
| game_id | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"date": {
"type": "string",
"description": "A day's games, YYYY-MM-DD (US Eastern)."
},
"league": {
"enum": [
"mlb",
"ncaabase"
],
"type": "string",
"description": "League. Defaults to mlb. One of: mlb, ncaabase."
},
"game_id": {
"type": "string"
}
}
}Use for a pitcher's arsenal in a season: each pitch type's usage, average and top velocity, whiff rate per swing and ball rate. Costs 5 credits.
| Argument | Type | Description |
|---|---|---|
| season | number | string | Season (a year; default: the latest; ignored with game_id). |
| pitcher_id* | string | Player id. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"pitcher_id"
],
"properties": {
"season": {
"type": [
"number",
"string"
],
"description": "Season (a year; default: the latest; ignored with game_id)."
},
"pitcher_id": {
"type": "string",
"description": "Player id."
}
}
}Use for pitch-by-pitch data: every pitch of a game, or a pitcher's or batter's season, with the count, pitch type, velocity, location and result. Costs 10 credits.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Max pitches (default 500). |
| offset | integer | |
| season | number | string | Season (a year; default: the latest; ignored with game_id). |
| game_id | string | |
| batter_id | string | |
| pitch_type | string | Pitch type code, e.g. FF, SL, CH, CU, SI, FC. |
| pitcher_id | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"limit": {
"type": "integer",
"maximum": 2000,
"minimum": 1,
"description": "Max pitches (default 500)."
},
"offset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0
},
"season": {
"type": [
"number",
"string"
],
"description": "Season (a year; default: the latest; ignored with game_id)."
},
"game_id": {
"type": "string"
},
"batter_id": {
"type": "string"
},
"pitch_type": {
"type": "string",
"description": "Pitch type code, e.g. FF, SL, CH, CU, SI, FC."
},
"pitcher_id": {
"type": "string"
}
}
}Use for plate-appearance play-by-play: a whole game in order, or a batter's, pitcher's or team's season, with the base-out state before, the result, the batted ball (trajectory and location), runs, the win probability after (2019 on) and our run value (RE24). Filter by result, inning or runners in scoring position. Costs 10 credits.
| Argument | Type | Description |
|---|---|---|
| risp | boolean | Runners in scoring position only. |
| team | string | Batting team (id or abbreviation). |
| limit | integer | Max rows (default 200). |
| inning | integer | |
| league | string | League. Defaults to mlb. One of: mlb, ncaabase. |
| offset | integer | |
| result | string | e.g. home-run, strikeout, walk, single, double, ground-out. |
| season | number | string | Season (a year; default: the latest; ignored with game_id). |
| game_id | string |
Use for a player's season-by-season batting (AVG, OBP, SLG, OPS, HR, K%, BB%, RE24, from every plate appearance) and pitching (ERA, WHIP, K/9, BB/9). Costs 5 credits.
| Argument | Type | Description |
|---|---|---|
| league | string | League. Defaults to mlb. One of: mlb, ncaabase. |
| player_id* | string | Player id, from search_players. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"player_id"
],
"properties": {
"league": {
"enum": [
"mlb",
"ncaabase"
],
"type": "string",
"description": "League. Defaults to mlb. One of: mlb, ncaabase."
},
"player_id": {
"type": "string",
"description": "Player id, from search_players."
}
}
}Use for a player's game log: every game's batting line and pitching line, newest first, optionally one season. Costs 5 credits.
| Argument | Type | Description |
|---|---|---|
| limit | integer | |
| league | string | League. Defaults to mlb. One of: mlb, ncaabase. |
| offset | integer | |
| season | number | string | Season (a year, e.g. 2025; default: the latest). |
| player_id* | string | |
| season_type | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"player_id"
],
"properties": {
"limit": {
"type": "integer",
"maximum": 200,
"minimum": 1
},
"league": {
"enum": [
"mlb",
"ncaabase"
],
"type": "string",
"description": "League. Defaults to mlb. One of: mlb, ncaabase."
},
"offset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0
},
"season": {
"type": [
"number",
"string"
],
"description": "Season (a year, e.g. 2025; default: the latest)."
},
"player_id": {
"type": "string"
},
"season_type": {
"enum": [
"regular",
"postseason"
],
"type": "string"
}
}
}Use for player prop lines by sportsbook: over/under on hits, home runs, total bases, RBI, pitcher strikeouts and pitcher outs, from May 2023 (DraftKings, FanDuel, BetMGM, ESPN BET, Pinnacle and others). Pass game_id for every player's props in one game (10 credits), or player_id with from_date (and to_date) for one player across games (10 credits per game returned, up to 100). Returns the closing line by default (the last before the game starts) or the opening line, with each book's over and under prices. Outside football the archive mostly holds one pre-game capture per line, so the opening and closing lines are usually the same; the opening line differs only where a second capture was taken (live capture from October 2026, and wherever else it is held). Set estimate_only to get the price without being charged. Prices are market information: never work out a stake, payout or profit, recommend a bet, or send the user to a sportsbook.
| Argument | Type | Description |
|---|---|---|
| market | string | One market: batter_hits (hits), batter_home_runs (home runs), batter_total_bases (total bases), batter_rbis (runs batted in), pitcher_strikeouts (pitcher strikeouts), pitcher_outs (pitcher outs recorded) |
| game_id | string | Game id: every player's props for that game. |
| to_date | string | With player_id: last date (default: no end), YYYY-MM-DD (the game's date). |
| bookmaker | string | Bookmaker key, e.g. draftkings, fanduel, pinnacle. |
| from_date | string |
Use to see how a player did against his prop line over time: for one market (hits, home runs, total bases, RBI, pitcher strikeouts or pitcher outs), one row per game with the closing line (the median across books, or one book's), the opening line (the same as the close wherever only one capture was taken), the prices, what the player actually recorded from our box scores and the result against the line, plus the over rate. Costs 10 credits for up to 200 games. Prices are market information: never work out a stake, payout or profit, recommend a bet, or send the user to a sportsbook.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Games to return, oldest first (default 50, max 200). next_from_date says where to continue. |
| market* | string | The market: batter_hits (hits), batter_home_runs (home runs), batter_total_bases (total bases), batter_rbis (runs batted in), pitcher_strikeouts (pitcher strikeouts), pitcher_outs (pitcher outs recorded) |
| to_date | string | Last date, YYYY-MM-DD (the game's date). |
| bookmaker | string | One book's closing line instead of the median across books, e.g. draftkings. |
| from_date | string | First date, YYYY-MM-DD (the game's date). |
| player_id* | string | Player id (e.g. 33192) from search_players. |
Use for our team power ratings (Elo from every final game in our data), ranked, as of the end of a season or today. Costs 2 credits.
| Argument | Type | Description |
|---|---|---|
| league | string | League. Defaults to mlb. One of: mlb, ncaabase. |
| season | number | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"league": {
"enum": [
"mlb",
"ncaabase"
],
"type": "string",
"description": "League. Defaults to mlb. One of: mlb, ncaabase."
},
"season": {
"type": [
"number",
"string"
]
}
}
}Use for upcoming games (next 1-30 days, default 7) with the median line across posted sportsbooks: moneylines, run line and total. For every book's line use get_odds. Costs 2 credits. Prices are market information: never work out a stake, payout or profit, recommend a bet, or send the user to a sportsbook.
| Argument | Type | Description |
|---|---|---|
| days | integer | |
| team | string | Team id or abbreviation. |
| league | string | League. Defaults to mlb. One of: mlb, ncaabase. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"days": {
"type": "integer",
"maximum": 30,
"minimum": 1
},
"team": {
"type": "string",
"description": "Team id or abbreviation."
},
"league": {
"enum": [
"mlb",
"ncaabase"
],
"type": "string",
"description": "League. Defaults to mlb. One of: mlb, ncaabase."
}
}
}Use for where a batter or team hits the ball: balls in play by trajectory (ground ball, line drive, fly ball, pop-up) and by field (left, center, right), with hit rates; include_balls adds each ball's location for drawing. Counts the regular season and postseason together unless season_type says otherwise (get_player's batting line is the regular season alone). Costs 10 credits.
| Argument | Type | Description |
|---|---|---|
| team | string | |
| season | number | string | Season (a year; default: the latest; ignored with game_id). |
| batter_id | string | |
| season_type | string | regular, postseason, or all (default): which games' balls in play to count. |
| include_balls | boolean | Add each ball in play's x/y (up to 3,000). |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"team": {
"type": "string"
},
"season": {
"type": [
"number",
"string"
],
"description": "Season (a year; default: the latest; ignored with game_id)."
},
"batter_id": {
"type": "string"
},
"season_type": {
"enum": [
"regular",
"postseason",
"all"
],
"type": "string",
"description": "regular, postseason, or all (default): which games' balls in play to count."
},
"include_balls": {
"type": "boolean",
"description": "Add each ball in play's x/y (up to 3,000)."
}
}
}Use for a season's regular-season standings computed from every final game: record, home and away, last 10, runs scored and allowed, run differential and Pythagorean win percentage. Costs 2 credits.
| Argument | Type | Description |
|---|---|---|
| league | string | League. Defaults to mlb. One of: mlb, ncaabase. |
| season | number | string | Season (a year, e.g. 2025; default: the latest). |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"league": {
"enum": [
"mlb",
"ncaabase"
],
"type": "string",
"description": "League. Defaults to mlb. One of: mlb, ncaabase."
},
"season": {
"type": [
"number",
"string"
],
"description": "Season (a year, e.g. 2025; default: the latest)."
}
}
}Use for team offence and run prevention for a season: runs per game for and against, run differential, and batting and opponents' batting (AVG, OBP, SLG, OPS, K%, BB%, HR) from every plate appearance. Costs 5 credits.
| Argument | Type | Description |
|---|---|---|
| team | string | |
| league | string | League. Defaults to mlb. One of: mlb, ncaabase. |
| season | number | string | Season (a year, e.g. 2025; default: the latest). |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"team": {
"type": "string"
},
"league": {
"enum": [
"mlb",
"ncaabase"
],
"type": "string",
"description": "League. Defaults to mlb. One of: mlb, ncaabase."
},
"season": {
"type": [
"number",
"string"
],
"description": "Season (a year, e.g. 2025; default: the latest)."
}
}
}Use to find team ids and abbreviations for a season (default: the latest). Every other tool takes a team as an id or abbreviation. Costs 1 credit.
| Argument | Type | Description |
|---|---|---|
| league | string | League. Defaults to mlb. One of: mlb, ncaabase. |
| season | number | string | Season (a year, e.g. 2025; default: the latest). |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"league": {
"enum": [
"mlb",
"ncaabase"
],
"type": "string",
"description": "League. Defaults to mlb. One of: mlb, ncaabase."
},
"season": {
"type": [
"number",
"string"
],
"description": "Season (a year, e.g. 2025; default: the latest)."
}
}
}Use to find a player's id by name (partial names work). Costs 1 credit.
| Argument | Type | Description |
|---|---|---|
| name* | string | Full or partial name. |
| limit | integer | |
| league | string | League. Defaults to mlb. One of: mlb, ncaabase. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"description": "Full or partial name."
},
"limit": {
"type": "integer",
"maximum": 50,
"minimum": 1
},
"league": {
"enum": [
"mlb",
"ncaabase"
],
"type": "string",
"description": "League. Defaults to mlb. One of: mlb, ncaabase."
}
}
}| batter_id | string |
| pitcher_id | string |
| season_type | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"risp": {
"type": "boolean",
"description": "Runners in scoring position only."
},
"team": {
"type": "string",
"description": "Batting team (id or abbreviation)."
},
"limit": {
"type": "integer",
"maximum": 1000,
"minimum": 1,
"description": "Max rows (default 200)."
},
"inning": {
"type": "integer",
"maximum": 25,
"minimum": 1
},
"league": {
"enum": [
"mlb",
"ncaabase"
],
"type": "string",
"description": "League. Defaults to mlb. One of: mlb, ncaabase."
},
"offset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0
},
"result": {
"type": "string",
"description": "e.g. home-run, strikeout, walk, single, double, ground-out."
},
"season": {
"type": [
"number",
"string"
],
"description": "Season (a year; default: the latest; ignored with game_id)."
},
"game_id": {
"type": "string"
},
"batter_id": {
"type": "string"
},
"pitcher_id": {
"type": "string"
},
"season_type": {
"enum": [
"regular",
"postseason"
],
"type": "string"
}
}
}| With player_id: first date, YYYY-MM-DD (the game's date). |
| player_id | string | Player id (e.g. 33192) from search_players. With from_date: that player's props across games. |
| estimate_only | boolean | Return what this call would cost, without charging or running it. |
| snapshot_type | string | closing (default): the last line before the game starts. opening: the first one captured, which is the same capture as the close wherever only one was taken. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"market": {
"enum": [
"batter_hits",
"batter_home_runs",
"batter_total_bases",
"batter_rbis",
"pitcher_strikeouts",
"pitcher_outs"
],
"type": "string",
"description": "One market: batter_hits (hits), batter_home_runs (home runs), batter_total_bases (total bases), batter_rbis (runs batted in), pitcher_strikeouts (pitcher strikeouts), pitcher_outs (pitcher outs recorded)"
},
"game_id": {
"type": "string",
"description": "Game id: every player's props for that game."
},
"to_date": {
"type": "string",
"description": "With player_id: last date (default: no end), YYYY-MM-DD (the game's date)."
},
"bookmaker": {
"type": "string",
"description": "Bookmaker key, e.g. draftkings, fanduel, pinnacle."
},
"from_date": {
"type": "string",
"description": "With player_id: first date, YYYY-MM-DD (the game's date)."
},
"player_id": {
"type": "string",
"description": "Player id (e.g. 33192) from search_players. With from_date: that player's props across games."
},
"estimate_only": {
"type": "boolean",
"description": "Return what this call would cost, without charging or running it."
},
"snapshot_type": {
"enum": [
"opening",
"closing"
],
"type": "string",
"description": "closing (default): the last line before the game starts. opening: the first one captured, which is the same capture as the close wherever only one was taken."
}
}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"player_id",
"market"
],
"properties": {
"limit": {
"type": "integer",
"maximum": 200,
"minimum": 1,
"description": "Games to return, oldest first (default 50, max 200). next_from_date says where to continue."
},
"market": {
"enum": [
"batter_hits",
"batter_home_runs",
"batter_total_bases",
"batter_rbis",
"pitcher_strikeouts",
"pitcher_outs"
],
"type": "string",
"description": "The market: batter_hits (hits), batter_home_runs (home runs), batter_total_bases (total bases), batter_rbis (runs batted in), pitcher_strikeouts (pitcher strikeouts), pitcher_outs (pitcher outs recorded)"
},
"to_date": {
"type": "string",
"description": "Last date, YYYY-MM-DD (the game's date)."
},
"bookmaker": {
"type": "string",
"description": "One book's closing line instead of the median across books, e.g. draftkings."
},
"from_date": {
"type": "string",
"description": "First date, YYYY-MM-DD (the game's date)."
},
"player_id": {
"type": "string",
"description": "Player id (e.g. 33192) from search_players."
}
}
}