fastballapi-com Multi Table API

The Multi-table API from fastballapi-com — 5 operation(s) for multi-table.

Operations 5

POST /v1/get_plate_appearances Plate appearances #
POST /v1/get_pitches Pitches #
POST /v1/get_spray_chart Spray chart #
POST /v1/get_player_props Player props #
POST /v1/get_prop_history Prop history #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/fastballapi-com:fastballapi-com-multi-table-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

fastballapi-com-multi-table-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: FastballAPI Multi Table API
  version: 1.0.0
  description: FastballAPI baseball data. Every tool is a POST to /v1/{tool} with a JSON body of its arguments and costs the credits in x-credits. The same tools are an MCP server at https://mcp.fastballapi.com/mcp and free accounts get credits every month at https://fastballapi.com/signup
  termsOfService: https://fastballapi.com/terms
  contact:
    name: FastballAPI support
    email: support@fastballapi.com
    url: https://fastballapi.com/docs
servers:
- url: https://mcp.fastballapi.com
security:
- apiKey: []
- bearer: []
tags:
- name: Multi-table
paths:
  /v1/get_plate_appearances:
    post:
      operationId: get_plate_appearances
      summary: Plate appearances
      description: '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.'
      tags:
      - Multi-table
      x-credits: 10
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                game_id:
                  type: string
                batter_id:
                  type: string
                pitcher_id:
                  type: string
                team:
                  description: Batting team (id or abbreviation).
                  type: string
                season:
                  description: 'Season (a year; default: the latest; ignored with game_id).'
                  type:
                  - number
                  - string
                season_type:
                  type: string
                  enum:
                  - regular
                  - postseason
                result:
                  description: e.g. home-run, strikeout, walk, single, double, ground-out.
                  type: string
                inning:
                  type: integer
                  minimum: 1
                  maximum: 25
                risp:
                  description: Runners in scoring position only.
                  type: boolean
                limit:
                  description: Max rows (default 200).
                  type: integer
                  minimum: 1
                  maximum: 1000
                offset:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                league:
                  description: 'League. Defaults to mlb. One of: mlb, ncaabase.'
                  type: string
                  enum:
                  - mlb
                  - ncaabase
              additionalProperties: false
      responses:
        '200':
          description: The result, wrapped in data.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      plate_appearances:
                        type: array
                        items:
                          type: object
                          propertyNames:
                            type: string
                          additionalProperties: {}
                      count:
                        type: number
                      next_offset:
                        type:
                        - number
                        - 'null'
                    required:
                    - plate_appearances
                    - count
                    additionalProperties: false
                required:
                - data
        '400':
          description: Invalid arguments.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                - error
        '401':
          description: Missing or invalid API key.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                - error
        '402':
          description: Not enough credits.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                - error
        '429':
          description: Rate limited.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                - error
  /v1/get_pitches:
    post:
      operationId: get_pitches
      summary: Pitches
      description: '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.'
      tags:
      - Multi-table
      x-credits: 10
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                game_id:
                  type: string
                pitcher_id:
                  type: string
                batter_id:
                  type: string
                season:
                  description: 'Season (a year; default: the latest; ignored with game_id).'
                  type:
                  - number
                  - string
                pitch_type:
                  description: Pitch type code, e.g. FF, SL, CH, CU, SI, FC.
                  type: string
                limit:
                  description: Max pitches (default 500).
                  type: integer
                  minimum: 1
                  maximum: 2000
                offset:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
              additionalProperties: false
      responses:
        '200':
          description: The result, wrapped in data.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      pitches:
                        type: array
                        items:
                          type: object
                          propertyNames:
                            type: string
                          additionalProperties: {}
                      count:
                        type: number
                      next_offset:
                        type:
                        - number
                        - 'null'
                      note:
                        type: string
                    required:
                    - pitches
                    - count
                    - note
                    additionalProperties: false
                required:
                - data
        '400':
          description: Invalid arguments.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                - error
        '401':
          description: Missing or invalid API key.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                - error
        '402':
          description: Not enough credits.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                - error
        '429':
          description: Rate limited.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                - error
  /v1/get_spray_chart:
    post:
      operationId: get_spray_chart
      summary: Spray chart
      description: '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.'
      tags:
      - Multi-table
      x-credits: 10
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                batter_id:
                  type: string
                team:
                  type: string
                season:
                  description: 'Season (a year; default: the latest; ignored with game_id).'
                  type:
                  - number
                  - string
                include_balls:
                  description: Add each ball in play's x/y (up to 3,000).
                  type: boolean
                season_type:
                  description: 'regular, postseason, or all (default): which games'' balls in play to count.'
                  type: string
                  enum:
                  - regular
                  - postseason
                  - all
              additionalProperties: false
      responses:
        '200':
          description: The result, wrapped in data.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      season:
                        type:
                        - number
                        - 'null'
                      balls_in_play:
                        type: number
                      by_trajectory:
                        type: array
                        items:
                          type: object
                          propertyNames:
                            type: string
                          additionalProperties: {}
                      by_field:
                        type: array
                        items:
                          type: object
                          propertyNames:
                            type: string
                          additionalProperties: {}
                      balls:
                        type: array
                        items:
                          type: object
                          propertyNames:
                            type: string
                          additionalProperties: {}
                      balls_note:
                        type: string
                    required:
                    - season
                    - balls_in_play
                    - by_trajectory
                    - by_field
                    additionalProperties: false
                required:
                - data
        '400':
          description: Invalid arguments.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                - error
        '401':
          description: Missing or invalid API key.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                - error
        '402':
          description: Not enough credits.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                - error
        '429':
          description: Rate limited.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                - error
  /v1/get_player_props:
    post:
      operationId: get_player_props
      summary: Player props
      description: '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, or player_id with from_date (and to_date) for one player across games (up to 100). A game costs 10 credits before it starts and 20 once it has (accounts opened before October 30 2026 pay 10 for every game). Returns the closing line by default (the last before the game starts) or the opening line, with each book''s over and under prices. Each row has captured_at, scheduled_start and minutes_before_scheduled_start (negative when captured after the scheduled start); a row is kept when it was captured before the sportsbooks'' listed start, which in the NBA is usually about 10 minutes after the scheduled one, so filter on minutes_before_scheduled_start > 0 for a strictly before-schedule backtest. 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.'
      tags:
      - Multi-table
      x-credits: 10
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                game_id:
                  description: 'Game id: every player''s props for that game.'
                  type: string
                player_id:
                  description: 'Player id (e.g. 33192) from search_players. With from_date: that player''s props across games.'
                  type: string
                from_date:
                  description: 'With player_id: first date, YYYY-MM-DD (the game''s date).'
                  type: string
                to_date:
                  description: 'With player_id: last date (default: no end), YYYY-MM-DD (the game''s date).'
                  type: string
                market:
                  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)'
                  type: string
                  enum:
                  - batter_hits
                  - batter_home_runs
                  - batter_total_bases
                  - batter_rbis
                  - pitcher_strikeouts
                  - pitcher_outs
                bookmaker:
                  description: Bookmaker key, e.g. draftkings, fanduel, pinnacle.
                  type: string
                snapshot_type:
                  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: string
                  enum:
                  - opening
                  - closing
                estimate_only:
                  description: Return what this call would cost, without charging or running it.
                  type: boolean
              additionalProperties: false
      responses:
        '200':
          description: The result, wrapped in data.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      snapshot_type:
                        type: string
                      games:
                        type: number
                      props:
                        type: array
                        items:
                          type: object
                          properties:
                            game_id:
                              type: string
                            game_date:
                              type:
                              - string
                              - 'null'
                            player_name:
                              type: string
                            player_id:
                              type:
                              - string
                              - number
                              - 'null'
                            market:
                              type: string
                            bookmaker:
                              type: string
                            line:
                              type:
                              - number
                              - 'null'
                            over_odds:
                              type:
                              - number
                              - 'null'
                            under_odds:
                              type:
                              - number
                              - 'null'
                            captured_at:
                              type: string
                            scheduled_start:
                              type:
                              - string
                              - 'null'
                            minutes_before_scheduled_start:
                              type:
                              - number
                              - 'null'
                            source:
                              type: string
                          required:
                          - game_id
                          - game_date
                          - player_name
                          - player_id
                          - market
                          - bookmaker
                          - line
                          - over_odds
                          - under_odds
                          - captured_at
                          - source
                          additionalProperties: false
                      count:
                        type: number
                      credits_per_game:
                        type: number
                      next_from_date:
                        type:
                        - string
                        - 'null'
                      note:
                        type: string
                      estimate_only:
                        type: boolean
                      tool:
                        type: string
                      credits:
                        type: number
                    additionalProperties: false
                required:
                - data
        '400':
          description: Invalid arguments.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                - error
        '401':
          description: Missing or invalid API key.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                - error
        '402':
          description: Not enough credits.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                - error
        '429':
          description: Rate limited.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                - error
  /v1/get_prop_history:
    post:
      operationId: get_prop_history
      summary: Prop history
      description: '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.'
      tags:
      - Multi-table
      x-credits: 10
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                player_id:
                  type: string
                  description: Player id (e.g. 33192) from search_players.
                market:
                  type: string
                  enum:
                  - batter_hits
                  - batter_home_runs
                  - batter_total_bases
                  - batter_rbis
                  - pitcher_strikeouts
                  - pitcher_outs
                  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)'
                from_date:
                  description: First date, YYYY-MM-DD (the game's date).
                  type: string
                to_date:
                  description: Last date, YYYY-MM-DD (the game's date).
                  type: string
                bookmaker:
                  description: One book's closing line instead of the median across books, e.g. draftkings.
                  type: string
                limit:
                  description: Games to return, oldest first (default 50, max 200). next_from_date says where to continue.
                  type: integer
                  minimum: 1
                  maximum: 200
              required:
              - player_id
              - market
              additionalProperties: false
      responses:
        '200':
          description: The result, wrapped in data.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      player_id:
                        type:
                        - string
                        - number
                      player_name:
                        type:
                        - string
                        - 'null'
                      market:
                        type: string
                      stat:
                        type: string
                      bookmaker:
                        type:
                        - string
                        - 'null'
                      games:
                        type: array
                        items:
                          type: object
                          properties:
                            game_id:
                              type: string
                            game_date:
                              type:
                              - string
                              - 'null'
                            line:
                              type:
                              - number
                              - 'null'
                            open_line:
                              type:
                              - number
                              - 'null'
                            over_odds:
                              type:
                              - number
                              - 'null'
                            under_odds:
                              type:
                              - number
                              - 'null'
                            books:
                              type: number
                            actual:
                              type:
                              - number
                              - 'null'
                            result:
                              anyOf:
                              - type: string
                                enum:
                                - over
                                - under
                                - push
                              - type: 'null'
                            margin:
                              type:
                              - number
                              - 'null'
                          required:
                          - game_id
                          - game_date
                          - line
                          - open_line
                          - over_odds
                          - under_odds
                          - books
                          - actual
                          - result
                          - margin
                          additionalProperties: false
                      count:
                        type: number
                      summary:
                        type: object
                        properties:
                          games:
                            type: number
                          graded:
                            type: number
                          overs:
                            type: number
                          unders:
                            type: number
                          pushes:
                            type: number
                          over_rate:
                            type:
                            - number
                            - 'null'
                          avg_line:
                            type:
                            - number
                            - 'null'
                          avg_actual:
                            type:
                            - number
                            - 'null'
                        required:
                        - games
                        - graded
                        - overs
                        - unders
                        - pushes
                        - over_rate
                        - avg_line
                        - avg_actual
                        additionalProperties: false
                      truncated:
                        type: boolean
                      next_from_date:
                        type:
                        - string
                        - 'null'
                      note:
                        type: string
                      estimate_only:
                        type: boolean
                      tool:
                        type: string
                      credits:
                        type: number
                    required:
                    - player_id
                    - player_name
                    - market
                    - stat
                    - bookmaker
                    - games
                    - count
                    - summary
                    additionalProperties: false
                required:
                - data
        '400':
          description: Invalid arguments.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                - error
        '401':
          description: Missing or invalid API key.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                - error
        '402':
          description: Not enough credits.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                - error
        '429':
          description: Rate limited.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                - error
components:
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: x-api-key
    bearer:
      type: http
      scheme: bearer
      description: The same API key as a bearer token.
externalDocs:
  description: Documentation
  url: https://fastballapi.com/docs