birdieapi-com Stats + aggregation API

The Stats + aggregation API from birdieapi-com — 6 operation(s) for stats + aggregation.

Operations 6

POST /v1/get_player Player #
POST /v1/get_player_results Player results #
POST /v1/get_player_stats Player stats #
POST /v1/get_course_history Course history #
POST /v1/get_head_to_head Head to head #
POST /v1/get_leaders Leaders #

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/birdieapi-com:birdieapi-com-stats-aggregation-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

birdieapi-com-stats-aggregation-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: BirdieAPI Stats + aggregation API
  version: 1.0.0
  description: BirdieAPI golf 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.birdieapi.com/mcp and free accounts get credits every month at https://birdieapi.com/signup
  termsOfService: https://birdieapi.com/terms
  contact:
    name: BirdieAPI support
    email: support@birdieapi.com
    url: https://birdieapi.com/docs
servers:
- url: https://mcp.birdieapi.com
security:
- apiKey: []
- bearer: []
tags:
- name: Stats + aggregation
paths:
  /v1/get_player:
    post:
      operationId: get_player
      summary: Player
      description: 'Use for a player''s overview: profile, career totals (starts, wins, top tens, cuts, money, scoring average, strokes versus the field), our current rating, a line per season and the last ten results. Costs 5 credits.'
      tags:
      - Stats + aggregation
      x-credits: 5
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                player_id:
                  type: string
                  description: Player id from search_players or get_leaderboard.
                league:
                  description: 'League. Defaults to golf. One of: golf, lpga, liv, dpwt, kornferry.'
                  type: string
                  enum:
                  - golf
                  - lpga
                  - liv
                  - dpwt
                  - kornferry
              required:
              - player_id
              additionalProperties: false
      responses:
        '200':
          description: The result, wrapped in data.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      player:
                        type: object
                        propertyNames:
                          type: string
                        additionalProperties: {}
                      career:
                        type: object
                        propertyNames:
                          type: string
                        additionalProperties: {}
                      rating:
                        anyOf:
                        - type: object
                          propertyNames:
                            type: string
                          additionalProperties: {}
                        - type: 'null'
                      seasons:
                        type: array
                        items:
                          type: object
                          propertyNames:
                            type: string
                          additionalProperties: {}
                      recent_results:
                        type: array
                        items:
                          type: object
                          propertyNames:
                            type: string
                          additionalProperties: {}
                    required:
                    - player
                    - career
                    - rating
                    - seasons
                    - recent_results
                    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_results:
    post:
      operationId: get_player_results
      summary: Player results
      description: 'Use for a player''s tournament-by-tournament record: finish, score, earnings and each round with the field''s average and strokes versus the field (raw and field-strength adjusted). Newest first; filter by season. Costs 5 credits.'
      tags:
      - Stats + aggregation
      x-credits: 5
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                player_id:
                  type: string
                  description: Player id from search_players.
                season:
                  description: Season year, e.g. 2025.
                  type:
                  - string
                  - number
                limit:
                  description: Max tournaments (default 50).
                  type: integer
                  minimum: 1
                  maximum: 200
                offset:
                  description: Page offset; use next_offset.
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                league:
                  description: 'League. Defaults to golf. One of: golf, lpga, liv, dpwt, kornferry.'
                  type: string
                  enum:
                  - golf
                  - lpga
                  - liv
                  - dpwt
                  - kornferry
              required:
              - player_id
              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
                      results:
                        type: array
                        items:
                          type: object
                          propertyNames:
                            type: string
                          additionalProperties: {}
                      count:
                        type: number
                      next_offset:
                        type:
                        - number
                        - 'null'
                    required:
                    - player_id
                    - results
                    - 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_player_stats:
    post:
      operationId: get_player_stats
      summary: Player stats
      description: 'Use for a player''s season in numbers: results (starts, wins, top tens, cuts, money), scoring average and strokes versus the field, hole scoring from every hole played (birdies and bogeys per round, par 3/4/5 averages) and, for the PGA Tour and Korn Ferry Tour, strokes versus the field by hole type (sg_par3, sg_par4, sg_par5; score-based, not shot data) and, where they exist, driving distance and accuracy, greens in regulation and putts per green. Costs 5 credits.'
      tags:
      - Stats + aggregation
      x-credits: 5
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                player_id:
                  type: string
                  description: Player id from search_players.
                season:
                  description: Season year, e.g. 2025.
                  type:
                  - string
                  - number
                league:
                  description: 'League. Defaults to golf. One of: golf, lpga, liv, dpwt, kornferry.'
                  type: string
                  enum:
                  - golf
                  - lpga
                  - liv
                  - dpwt
                  - kornferry
              required:
              - player_id
              - season
              additionalProperties: false
      responses:
        '200':
          description: The result, wrapped in data.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      player:
                        type: object
                        propertyNames:
                          type: string
                        additionalProperties: {}
                      season:
                        type: number
                      results:
                        type: object
                        propertyNames:
                          type: string
                        additionalProperties: {}
                      hole_scoring:
                        anyOf:
                        - type: object
                          propertyNames:
                            type: string
                          additionalProperties: {}
                        - type: 'null'
                      ball_striking:
                        anyOf:
                        - type: object
                          propertyNames:
                            type: string
                          additionalProperties: {}
                        - type: 'null'
                      published_season:
                        anyOf:
                        - type: object
                          propertyNames:
                            type: string
                          additionalProperties: {}
                        - type: 'null'
                      note:
                        type: string
                    required:
                    - player
                    - season
                    - results
                    - hole_scoring
                    - ball_striking
                    - published_season
                    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_course_history:
    post:
      operationId: get_course_history
      summary: Course history
      description: 'Use for course or event form: a player''s record at one tournament across every year (pass any edition''s tournament_id) or at one course across every tournament played there (course_id), with finishes, rounds and strokes versus the field, and a summary. Costs 5 credits.'
      tags:
      - Stats + aggregation
      x-credits: 5
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                player_id:
                  type: string
                  description: Player id from search_players.
                tournament_id:
                  description: Any year's id of the tournament; every edition is returned.
                  type: string
                course_id:
                  description: A course id (list_tournaments lists each tournament's courses).
                  type: string
                league:
                  description: 'League. Defaults to golf. One of: golf, lpga, liv, dpwt, kornferry.'
                  type: string
                  enum:
                  - golf
                  - lpga
                  - liv
                  - dpwt
                  - kornferry
              required:
              - player_id
              additionalProperties: false
      responses:
        '200':
          description: The result, wrapped in data.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      player:
                        type: object
                        propertyNames:
                          type: string
                        additionalProperties: {}
                      course:
                        type: object
                        propertyNames:
                          type: string
                        additionalProperties: {}
                      tournament:
                        type: string
                      summary:
                        type: object
                        propertyNames:
                          type: string
                        additionalProperties: {}
                      rounds:
                        type: array
                        items:
                          type: object
                          propertyNames:
                            type: string
                          additionalProperties: {}
                      editions:
                        type: array
                        items:
                          type: object
                          propertyNames:
                            type: string
                          additionalProperties: {}
                      count:
                        type: number
                    required:
                    - player
                    - summary
                    - 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_head_to_head:
    post:
      operationId: get_head_to_head
      summary: Head to head
      description: 'Use to compare two players: every tournament both played with each one''s finish, who finished ahead (making the cut beats missing it), round-by-round strokes on the same course, and a summary. Filter by season. Costs 5 credits.'
      tags:
      - Stats + aggregation
      x-credits: 5
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                player_a:
                  type: string
                  description: First player id.
                player_b:
                  type: string
                  description: Second player id.
                season:
                  description: Season year, e.g. 2025.
                  type:
                  - string
                  - number
                league:
                  description: 'League. Defaults to golf. One of: golf, lpga, liv, dpwt, kornferry.'
                  type: string
                  enum:
                  - golf
                  - lpga
                  - liv
                  - dpwt
                  - kornferry
              required:
              - player_a
              - player_b
              additionalProperties: false
      responses:
        '200':
          description: The result, wrapped in data.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      player_a:
                        type: object
                        propertyNames:
                          type: string
                        additionalProperties: {}
                      player_b:
                        type: object
                        propertyNames:
                          type: string
                        additionalProperties: {}
                      summary:
                        type: object
                        propertyNames:
                          type: string
                        additionalProperties: {}
                      meetings:
                        type: array
                        items:
                          type: object
                          propertyNames:
                            type: string
                          additionalProperties: {}
                      count:
                        type: number
                    required:
                    - player_a
                    - player_b
                    - summary
                    - meetings
                    - 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_leaders:
    post:
      operationId: get_leaders
      summary: Leaders
      description: 'Use for a season''s leaders in one stat, with each player''s sample. Stats from rounds and holes: scoring_average, vs_field, adj_vs_field, birdies_per_round, bogey_avoidance, par3_average, par4_average, par5_average, and sg_par3, sg_par4, sg_par5 (strokes versus the field on par 3, 4 or 5 holes, field-strength adjusted; PGA Tour and Korn Ferry Tour only, score-based, not shot data). From results: earnings (empty for the DP World Tour and LIV), cup_points (FedEx Cup points, PGA Tour only: no Race to Dubai or CME Globe points), wins, top_tens. From tournament stat lines (PGA Tour from 2011): driving_distance, driving_accuracy, greens_in_regulation, putts_per_gir. Costs 5 credits.'
      tags:
      - Stats + aggregation
      x-credits: 5
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                stat:
                  type: string
                  enum:
                  - scoring_average
                  - adj_vs_field
                  - vs_field
                  - birdies_per_round
                  - bogey_avoidance
                  - par3_average
                  - par4_average
                  - par5_average
                  - sg_par3
                  - sg_par4
                  - sg_par5
                  - earnings
                  - cup_points
                  - wins
                  - top_tens
                  - driving_distance
                  - driving_accuracy
                  - greens_in_regulation
                  - putts_per_gir
                  description: The stat to rank.
                season:
                  description: Season year, e.g. 2025.
                  type:
                  - string
                  - number
                min:
                  description: 'Minimum sample: rounds (default 40), starts (1) or tournaments with a stat line (8).'
                  type: integer
                  minimum: 1
                  maximum: 9007199254740991
                limit:
                  description: Max players (default 25).
                  type: integer
                  minimum: 1
                  maximum: 200
                league:
                  description: 'League. Defaults to golf. One of: golf, lpga, liv, dpwt, kornferry.'
                  type: string
                  enum:
                  - golf
                  - lpga
                  - liv
                  - dpwt
                  - kornferry
              required:
              - stat
              - season
              additionalProperties: false
      responses:
        '200':
          description: The result, wrapped in data.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      stat:
                        type: string
                      label:
                        type: string
                      season:
                        type: number
                      minimum:
                        type: number
                      minimum_of:
                        type: string
                      leaders:
                        type: array
                        items:
                          type: object
                          propertyNames:
                            type: string
                          additionalProperties: {}
                      count:
                        type: number
                      note:
                        type: string
                    required:
                    - stat
                    - label
                    - season
                    - minimum
                    - minimum_of
                    - leaders
                    - 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
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://birdieapi.com/docs