Documentation
18 baseball data endpoints over REST and MCP. One key, credits per call.
Your first call
Sign up for a free key (500 credits, no card), swap it in for YOUR_API_KEY, and send this. get_standings costs 2 credits.
Request
curl -X POST https://mcp.fastballapi.com/v1/get_standings \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_API_KEY" \
-d '{
"season": 2024
}'Response
{
"season": 2024,
"standings": [
{
"team_id": "19",
"abbrev": "LAD",
"display_name": "Los Angeles Dodgers",
"wins": 98,
"losses": 64,
"home_wins": 52,
"home_losses": 29,
"away_wins": 46,
"away_losses": 35,
"runs_scored": 842,
...First 14 lines. Full response and every field
REST / cURL
POST to /v1/{tool_name} with your params as JSON body. No MCP client needed:
curl -X POST https://mcp.fastballapi.com/v1/list_teams \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_API_KEY"With parameters:
curl -X POST https://mcp.fastballapi.com/v1/get_standings \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_API_KEY" \
-d '{"season":2024}'Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"fastballapi": {
"url": "https://mcp.fastballapi.com/mcp?key=YOUR_API_KEY"
}
}
}Claude Code
One command:
claude mcp add fastballapi https://mcp.fastballapi.com/mcp?key=YOUR_API_KEY --transport streamable-httpFind the right call
All 18 questionsEndpoints
18 endpoints by category. Each page has parameters, requests in three formats, a full example response and every response field.
Static reference1 credit/call
Basic lookup2 credits/call
- get_games2 creditsGames with runs, hits and errors by season, date, range or team
- get_schedule2 creditsUpcoming games with the median line across sportsbooks
- get_standings2 creditsStandings from every final game, with run differential and Pythagorean record
- get_injuries2 creditsThe latest injury report
- get_ratings2 creditsOur team Elo ratings, ranked
Stats + aggregation5 credits/call
- get_game5 creditsOne game: every batting and pitching line, each book's line, win probability
- get_player5 creditsSeason batting (AVG, OBP, SLG, OPS, RE24) and pitching (ERA, WHIP, K/9)
- get_player_games5 creditsA player's full batting and pitching game log
- get_leaders5 creditsSeason leaders among qualified batters and pitchers
- get_team_stats5 creditsRuns for and against, team batting and opponents' batting
- get_pitch_mix5 creditsA pitcher's arsenal: usage, velocity, whiff rate per pitch type
- get_odds5 creditsEvery sportsbook's moneyline, run line and total for a game (5) or a day (10)
Multi-table10 credits/call
Time-series10 credits/call
Reference
Authentication
Every request requires an API key. Pass it via header or query parameter:
x-api-key: YOUR_API_KEY
# or
Authorization: Bearer YOUR_API_KEY
# or (MCP only)
?key=YOUR_API_KEYVerify your email, then create an API key from the dashboard. Free accounts get 500 credits.
Base URL
https://mcp.fastballapi.comREST API: POST /v1/{tool} with JSON body. Works with cURL, Python, any HTTP client.
MCP: POST /mcp via Streamable HTTP. Works with Claude Desktop, Claude Code, Cursor, and any MCP client.
Rate limits
| Credit balance | Rate limit |
|---|---|
| 100 credits or more | 60 req/min |
| Under 100 credits | 10 req/min |
The limit is the same on every plan. It is burst protection, not the spend boundary; credits are that, and they are enforced per request. Running low slows you down so you notice before the balance reaches zero.
Error handling
| Code | Meaning | What to do |
|---|---|---|
| 400 | Invalid parameters | Check required fields and value types |
| 401 | Invalid or missing API key | Check your x-api-key header |
| 402 | Insufficient credits | Top up your wallet or upgrade your plan |
| 429 | Rate limit exceeded | Wait and retry (see limits above) |
| 500 | Server error | Retry with idempotency key. Credits auto-refund on server errors. |
Pass x-idempotency-key or x-request-id headers to make retries duplicate-safe.
Data coverage
NCAA Division I baseball (NCAA)
FastballAPI also serves the NCAA. Pass "league": "ncaabase" to any tool that lists it, or connect to https://mcp.fastballapi.com/mcp/ncaabase. What the NCAA data covers.
| Data | Status | Coverage | Volume |
|---|---|---|---|
Games and box scores Line scores and every batter's and pitcher's line. | Available | See the season table | Every game, every player |
Pitch-by-pitch Count, pitch type, velocity, location and result for every pitch. Pitch type and velocity are on 96% or more of each season's pitches, and 99.8% or more from 2020. Automatic balls and strikes are not pitches. | Available | See the season table | About 295 pitches per game |
Plate appearances Base-out state, result, batted-ball trajectory and location, runs, RE24. | Available | See the season table | About 76 per game |
Win probability The home team's win probability after each plate appearance, as ESPN computes it. From 2019 only. | Partial | 2019 to current | After every plate appearance |
Odds Moneyline, run line and total by sportsbook; opening and closing from 2024, the final pregame line before that. Mostly one book per game since 2024; no player props. | Partial | 2015 to current | 4 to 13 books per game to 2023, usually one since |
Ratings Our Elo, before and after every game. | Available | Every season loaded | Every team, every game |
College baseball NCAA Division I games with league=ncaabase: the tournament by round since 2010, scores since 2015, box scores and plate appearances (from the scorer's text) for part of each season since 2020, ratings, lines from 2023 (4.7 books a game in 2023 and 4.2 in 2024, one since). Not every Division I game, and box scores and play-by-play for part of each season only (the college page shows each season). No pitch rows or batted-ball locations. | Partial | 2010 to current | The Division I games ESPN carries |
Injury report Each listed player's status, injury and expected return, captured daily. Daily captures from launch; no history before that. | Partial | From launch | Daily |
Coverage describes the datasets FastballAPI supports. Freshness and operational health are tracked separately.
Odds snapshot definitions
opening: The first line a sportsbook posted for the game, as ESPN reports it (from 2024).
closing: The sportsbook's last line before first pitch.
Odds coverage currently documents the books ESPN reports: 4 to 13 books per game from 2015 to 2023, then usually ESPN BET or DraftKings alone. Most games since 2024 have one book. Before 2024, ESPN keeps each sportsbook's final pregame line, stored as the close. From 2024 there are opening and closing lines, usually from one book (ESPN BET, later DraftKings). Daily snapshots before each game from launch.
Response format
REST API
All successful REST responses wrap the result in a data key:
{ "data": { "teams": [...], "count": 30 } }Error responses return:
{ "error": "Insufficient credits", "message": "This tool costs 5 credits, you have 2" }MCP Protocol
MCP responses follow the standard MCP tool result format. The data is returned directly (no data wrapper). Both access methods return identical data, just different envelopes.
Conventions
Seasons: a 4-digit year. Example: 2025.
Game IDs: an ESPN game id, e.g. 401569531 (an ESPN game id; find them with get_games). Get them from get_games or get_schedule.
Team abbreviations: Standard codes (NYY, LAD, BOS (or an ESPN team id); list_teams has them). Use list_teams if unsure.
Pagination: Endpoints use a limit parameter. No cursor or offset. Narrow your filters to get different slices of data.
Credits: Deducted before the request executes. Automatically refunded on server errors. Monthly credits are used first, then wallet balance.