SportStatsAPI Golf API

The golf API from SportStatsAPI — 5 operation(s) for golf.

GitHub OpenAPI

Operations 5

GET /golf/money Get a golf money list #
GET /golf/players Find golfers #
GET /golf/players/{id} Get a golfer #
GET /golf/tournaments List golf tournaments #
GET /golf/tournaments/{id} Get a golf tournament's leaderboard #

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/sportstatsapi:sportstatsapi-golf-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

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

sportstatsapi-golf-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  contact:
    name: SportStatsAPI
    url: https://sportstatsapi.com
  description: 'Every public endpoint of SportStatsAPI. Endpoints marked with x-x402 can also be paid per call by an AI agent; the curated list of those is https://api.sportstatsapi.com/api/openapi.agents.json.


    Authentication: an API key (header X-API-Key, or Authorization: Bearer ), or without a key an x402 payment (header PAYMENT-SIGNATURE, USDC on Base). Prices and payment offers: https://api.sportstatsapi.com/.well-known/x402. Docs for AI models: https://api.sportstatsapi.com/llms.txt. MCP server: https://mcp.sportstatsapi.com/mcp.'
  summary: Sports data API and x402 pay-per-call endpoints
  title: SportStats Golf API
  version: '1.0'
servers:
- url: https://api.sportstatsapi.com/api/v1
tags:
- name: golf
paths:
  /golf/money:
    get:
      description: 'A tour''s season money list (rank, earnings, events, wins, top 10s, cuts made) computed from the final leaderboards we hold; the provider''s own money list stopped in 2011. LPGA Tour leaderboards are partial (Wikipedia). earnings_complete is false when a finished tournament of the season lacks earnings (listed in incomplete_events; a player''s line says whether it includes one): totals are then short, not wrong.'
      operationId: getGolfMoney
      parameters:
      - description: pga (default) or lpga
        in: query
        name: tour
        schema:
          type: string
      - description: 'Season (default: the latest with a finished tournament)'
        in: query
        name: season
        schema:
          type: integer
      - description: Maximum results (1-100)
        in: query
        name: limit
        schema:
          default: 50
          type: integer
      - description: Results to skip
        in: query
        name: offset
        schema:
          default: 0
          type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/middleware.Response'
                - properties:
                    data:
                      $ref: '#/components/schemas/dto.GolfMoneyResponse'
                    meta:
                      $ref: '#/components/schemas/middleware.MetaInfo'
                  type: object
          description: OK
        '400':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/middleware.Response'
                - properties:
                    error:
                      $ref: '#/components/schemas/middleware.ErrorInfo'
                  type: object
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/middleware.Response'
                - properties:
                    error:
                      $ref: '#/components/schemas/middleware.ErrorInfo'
                  type: object
          description: Unauthorized
        '500':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/middleware.Response'
                - properties:
                    error:
                      $ref: '#/components/schemas/middleware.ErrorInfo'
                  type: object
          description: Internal Server Error
      security:
      - ApiKeyAuth: []
      - BearerAuth: []
      summary: Get a golf money list
      tags:
      - golf
  /golf/players:
    get:
      description: Golfers whose name contains q (PGA Tour players and everyone on our leaderboards), those with the most tournaments first
      operationId: getGolfPlayers
      parameters:
      - description: Part of the name (2+ characters)
        in: query
        name: q
        required: true
        schema:
          type: string
      - description: Maximum results (1-100)
        in: query
        name: limit
        schema:
          default: 50
          type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/middleware.Response'
                - properties:
                    data:
                      items:
                        $ref: '#/components/schemas/dto.GolfPlayerHit'
                      type: array
                  type: object
          description: OK
        '400':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/middleware.Response'
                - properties:
                    error:
                      $ref: '#/components/schemas/middleware.ErrorInfo'
                  type: object
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/middleware.Response'
                - properties:
                    error:
                      $ref: '#/components/schemas/middleware.ErrorInfo'
                  type: object
          description: Unauthorized
        '500':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/middleware.Response'
                - properties:
                    error:
                      $ref: '#/components/schemas/middleware.ErrorInfo'
                  type: object
          description: Internal Server Error
      security:
      - ApiKeyAuth: []
      - BearerAuth: []
      summary: Find golfers
      tags:
      - golf
  /golf/players/{id}:
    get:
      description: Profile (country, birth date and place, PGA Tour rank and the provider's season earnings) and the season's tournaments from our leaderboards with a summary (events, wins, top 10s, cuts made, earnings)
      operationId: getGolfPlayersById
      parameters:
      - description: Player ID
        in: path
        name: id
        required: true
        schema:
          type: integer
      - description: 'Season (default: the latest the player has results in)'
        in: query
        name: season
        schema:
          type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/middleware.Response'
                - properties:
                    data:
                      $ref: '#/components/schemas/dto.GolfPlayerResponse'
                  type: object
          description: OK
        '400':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/middleware.Response'
                - properties:
                    error:
                      $ref: '#/components/schemas/middleware.ErrorInfo'
                  type: object
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/middleware.Response'
                - properties:
                    error:
                      $ref: '#/components/schemas/middleware.ErrorInfo'
                  type: object
          description: Unauthorized
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '404':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/middleware.Response'
                - properties:
                    error:
                      $ref: '#/components/schemas/middleware.ErrorInfo'
                  type: object
          description: Not Found
      security:
      - ApiKeyAuth: []
      - BearerAuth: []
      - x402: []
      summary: Get a golfer
      tags:
      - golf
      x-x402:
        asset: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
        currency: USDC
        discovery: https://api.sportstatsapi.com/.well-known/x402
        minSinglePayment: '0.01'
        network: eip155:8453
        price: '0.005'
  /golf/tournaments:
    get:
      description: 'PGA Tour and LPGA tournaments by start date, with the leader or winner from our leaderboards. Only PGA Tour tournaments have leaderboards (the data provider has none for the LPGA: status no_results once over; incomplete: never final upstream).'
      operationId: getGolfTournaments
      parameters:
      - description: pga or lpga
        in: query
        name: tour
        schema:
          type: string
      - description: Season (year)
        in: query
        name: season
        schema:
          type: integer
      - description: scheduled, live, finished, no_results or incomplete
        in: query
        name: status
        schema:
          type: string
      - description: Tournaments ending on or after this date (YYYY-MM-DD)
        in: query
        name: date_from
        schema:
          type: string
      - description: Tournaments starting on or before this date (YYYY-MM-DD)
        in: query
        name: date_to
        schema:
          type: string
      - description: Maximum results (1-100)
        in: query
        name: limit
        schema:
          default: 50
          type: integer
      - description: Results to skip
        in: query
        name: offset
        schema:
          default: 0
          type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/middleware.Response'
                - properties:
                    data:
                      items:
                        $ref: '#/components/schemas/dto.GolfTournamentResponse'
                      type: array
                    meta:
                      $ref: '#/components/schemas/middleware.MetaInfo'
                  type: object
          description: OK
        '400':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/middleware.Response'
                - properties:
                    error:
                      $ref: '#/components/schemas/middleware.ErrorInfo'
                  type: object
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/middleware.Response'
                - properties:
                    error:
                      $ref: '#/components/schemas/middleware.ErrorInfo'
                  type: object
          description: Unauthorized
        '500':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/middleware.Response'
                - properties:
                    error:
                      $ref: '#/components/schemas/middleware.ErrorInfo'
                  type: object
          description: Internal Server Error
      security:
      - ApiKeyAuth: []
      - BearerAuth: []
      summary: List golf tournaments
      tags:
      - golf
  /golf/tournaments/{id}:
    get:
      description: 'A tournament with its leaderboard: position (tied), to par, strokes per round, thru and today while live, earnings, and per-player stats (birdies, eagles, driving distance and accuracy, greens in regulation, putts); hole-by-hole scores with holes=true'
      operationId: getGolfTournamentsById
      parameters:
      - description: Tournament ID
        in: path
        name: id
        required: true
        schema:
          type: integer
      - description: Include each player's hole-by-hole scores
        in: query
        name: holes
        schema:
          type: boolean
      responses:
        '200':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/middleware.Response'
                - properties:
                    data:
                      $ref: '#/components/schemas/dto.GolfTournamentResponse'
                  type: object
          description: OK
        '400':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/middleware.Response'
                - properties:
                    error:
                      $ref: '#/components/schemas/middleware.ErrorInfo'
                  type: object
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/middleware.Response'
                - properties:
                    error:
                      $ref: '#/components/schemas/middleware.ErrorInfo'
                  type: object
          description: Unauthorized
        '404':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/middleware.Response'
                - properties:
                    error:
                      $ref: '#/components/schemas/middleware.ErrorInfo'
                  type: object
          description: Not Found
      security:
      - ApiKeyAuth: []
      - BearerAuth: []
      summary: Get a golf tournament's leaderboard
      tags:
      - golf
components:
  schemas:
    dto.GolfSeasonSummary:
      properties:
        cuts_made:
          type: integer
        earnings:
          type: integer
        events:
          type: integer
        top10s:
          type: integer
        wins:
          type: integer
      type: object
    dto.GolfMoneyLine:
      properties:
        cuts_made:
          type: integer
        earnings:
          type: integer
        earnings_complete:
          description: 'EarningsComplete: false when the player played a tournament of

            incomplete_events (the total may be short).'
          type: boolean
        events:
          type: integer
        player:
          $ref: '#/components/schemas/dto.GolfPlayerRef'
        rank:
          type: integer
        top10s:
          type: integer
        wins:
          type: integer
      type: object
    dto.GolfMoneyResponse:
      properties:
        earnings_complete:
          type: boolean
        incomplete_events:
          items:
            $ref: '#/components/schemas/dto.GolfTournamentName'
          type: array
        players:
          items:
            $ref: '#/components/schemas/dto.GolfMoneyLine'
          type: array
        season:
          type: integer
        source:
          type: string
        tour:
          type: string
      type: object
    dto.GolfTournamentName:
      properties:
        id:
          type: integer
        name:
          type: string
      type: object
    middleware.Response:
      properties:
        data: {}
        error:
          $ref: '#/components/schemas/middleware.ErrorInfo'
        meta:
          $ref: '#/components/schemas/middleware.MetaInfo'
        success:
          type: boolean
      type: object
    dto.GolfLineResponse:
      properties:
        earnings:
          type: integer
        holes:
          items:
            type: integer
          type: array
        player:
          $ref: '#/components/schemas/dto.GolfPlayerRef'
        position:
          type: integer
        rounds:
          items:
            type: integer
          type: array
        stats:
          description: birdies, eagles, pars, bogeys, double_bogeys, driving_distance, driving_accuracy_pct, gir_pct, putts_per_gir, saves_pct
          items:
            type: integer
          type: array
        status:
          description: active, finished, cut, wd
          type: string
        thru:
          type: string
        tied:
          type: boolean
        to_par:
          type: integer
        today:
          type: integer
        total:
          type: integer
        tournament:
          $ref: '#/components/schemas/dto.GolfTournamentResponse'
      type: object
    dto.GolfPlayerResponse:
      properties:
        birth_date:
          type: string
        birth_place:
          type: string
        country:
          type: string
        id:
          type: integer
        name:
          type: string
        pga_rank:
          type: integer
        profile_earnings:
          description: The provider's figure
          type: integer
        results:
          items:
            $ref: '#/components/schemas/dto.GolfLineResponse'
          type: array
        season:
          type: integer
        season_summary:
          $ref: '#/components/schemas/dto.GolfSeasonSummary'
      type: object
    middleware.SourceInfo:
      properties:
        attribution:
          description: show it with the data
          example: 'Data: nflverse (CC-BY 4.0)'
          type: string
        licence:
          description: the licence or terms the data is served under
          example: CC-BY-4.0
          type: string
        name:
          description: provider = our main licensed feed
          example: nflverse
          type: string
      type: object
    middleware.MetaInfo:
      properties:
        attribution:
          description: Attribution a data source's licence asks for (Cricsheet's history).
          type: string
        has_more:
          description: 'HasMore: the cursor-paged list has more rows now (ask again at once).'
          type: boolean
        limit:
          type: integer
        live:
          description: 'Live: the answer is the live feed''s, kept while the match is played

            (cricket ball by ball before Cricsheet''s file replaces it).'
          type: boolean
        next_cursor:
          description: NextCursor continues a cursor-paged list (GET /changes).
          type: string
        offset:
          type: integer
        sources:
          description: 'Sources: where the answer''s data came from, with each source''s licence

            and the attribution it asks for (docs/source-licences.md).'
          items:
            $ref: '#/components/schemas/middleware.SourceInfo'
          type: array
        total:
          type: integer
        warnings:
          description: 'Warnings: query parameters ignored or changed (a limit above the

            maximum is clamped to it; a from/to that is not a date is ignored).'
          items:
            type: string
          type: array
      type: object
    dto.GolfPlayerRef:
      properties:
        id:
          type: integer
        name:
          type: string
      type: object
    middleware.ErrorInfo:
      properties:
        code:
          type: string
        message:
          type: string
      type: object
    dto.GolfTournamentResponse:
      properties:
        attribution:
          type: string
        country:
          type: string
        course:
          type: string
        current_round:
          type: integer
        earnings_complete:
          description: 'EarningsComplete (finished only): every top-3 line has earnings and

            they add up to 90 % of the purse; false: some are missing upstream.'
          type: boolean
        end_date:
          type: string
        id:
          type: integer
        leaderboard:
          items:
            $ref: '#/components/schemas/dto.GolfLineResponse'
          type: array
        leaders:
          items:
            $ref: '#/components/schemas/dto.GolfPlayerRef'
          type: array
        location:
          type: string
        name:
          type: string
        par:
          type: integer
        par_source:
          description: 'Sources of values not from the data provider: par_source wikipedia (the

            event''s course) or leaderboard (our totals minus to-par), purse_source

            wikipedia, result_source wikipedia (a playoff winner the data provider never

            posted, an LPGA leaderboard, earnings the data provider left empty);

            Attribution is set when one is wikipedia.'
          type: string
        players:
          type: integer
        purse:
          type: integer
        purse_source:
          type: string
        result_source:
          type: string
        rounds:
          type: integer
        season:
          type: integer
        start_date:
          type: string
        status:
          type: string
        status_detail:
          description: '"Round 3 - In Progress"'
          type: string
        tour:
          description: pga, lpga
          type: string
        updated_at:
          type: string
      type: object
    dto.GolfPlayerHit:
      properties:
        country:
          type: string
        events:
          type: integer
        id:
          type: integer
        name:
          type: string
      type: object
  responses:
    PaymentRequired:
      content:
        application/json:
          schema:
            properties:
              accepts:
                items:
                  additionalProperties: true
                  type: object
                type: array
              error:
                type: string
              resource:
                properties:
                  mimeType:
                    type: string
                  url:
                    type: string
                type: object
              x402Version:
                example: 2
                type: integer
            required:
            - x402Version
            - accepts
            type: object
      description: 'Payment Required: no API key and no valid payment. The body and the PAYMENT-REQUIRED header (base64 JSON) carry the x402 offers; pay one and repeat the request with PAYMENT-SIGNATURE. Only a 200 answer is charged.'
      headers:
        PAYMENT-REQUIRED:
          description: Base64 JSON of the x402 offers
          schema:
            type: string
  securitySchemes:
    ApiKeyAuth:
      description: API key
      in: header
      name: X-API-Key
      type: apiKey
    BearerAuth:
      description: The same API key as a bearer token
      scheme: bearer
      type: http
    x402:
      description: x402 v2 payment (USDC on Base, eip155:8453) built from the offers of a 402 answer; see https://api.sportstatsapi.com/.well-known/x402
      in: header
      name: PAYMENT-SIGNATURE
      type: apiKey
externalDocs:
  description: x402 payment offers and prices
  url: https://api.sportstatsapi.com/.well-known/x402