puckapi-com Basic lookup API

The Basic lookup API from puckapi-com — 3 operation(s) for basic lookup.

Operations 3

POST /v1/get_standings Standings #
POST /v1/get_schedule Schedule #
POST /v1/search_players Search players #

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/puckapi-com:puckapi-com-basic-lookup-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

puckapi-com-basic-lookup-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: PuckAPI Basic lookup API
  version: 1.0.0
  description: PuckAPI hockey 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.puckapi.com/mcp and free accounts get credits every month at https://puckapi.com/signup
  termsOfService: https://puckapi.com/terms
  contact:
    name: PuckAPI support
    email: support@puckapi.com
    url: https://puckapi.com/docs
servers:
- url: https://mcp.puckapi.com
security:
- apiKey: []
- bearer: []
tags:
- name: Basic lookup
paths:
  /v1/get_standings:
    post:
      operationId: get_standings
      summary: Standings
      description: 'Use when checking where teams rank in their division or conference. Returns points, wins, losses, OT losses, point%, goal differential, goals for/against per game, and 5v5 possession: Corsi%, Fenwick% and expected goals for and against. The possession columns are 5v5 only, so they will not match a goalie''s expected goals against, which covers every strength. Defaults to the most recent season with standings. Costs 2 credits.'
      tags:
      - Basic lookup
      x-credits: 2
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                conference:
                  description: Filter by conference
                  type: string
                  enum:
                  - Eastern
                  - Western
                division:
                  description: Filter by division (e.g. Atlantic, Metropolitan, Central, Pacific)
                  type: string
                season:
                  description: Season ID, 8-digit (e.g. 20242025 for 2024-25). 2024-25 and 2024-2025 also accepted. Defaults to current season.
                  type: string
                league:
                  description: 'League. Defaults to nhl. One of: nhl, pwhl, ohl, whl, qmjhl, echl, ahl, ushl.'
                  type: string
                  enum:
                  - nhl
                  - pwhl
                  - ohl
                  - whl
                  - qmjhl
                  - echl
                  - ahl
                  - ushl
              additionalProperties: false
      responses:
        '200':
          description: The result, wrapped in data.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      standings:
                        type: array
                        items:
                          type: object
                          properties:
                            teamAbbrev:
                              type: string
                            teamName:
                              type: string
                            conference:
                              type: string
                            division:
                              type: string
                            rank:
                              type:
                              - number
                              - 'null'
                            points:
                              type:
                              - number
                              - 'null'
                            gamesPlayed:
                              type:
                              - number
                              - 'null'
                            wins:
                              type:
                              - number
                              - 'null'
                            losses:
                              type:
                              - number
                              - 'null'
                            otLosses:
                              type:
                              - number
                              - 'null'
                            pointPct:
                              type:
                              - number
                              - 'null'
                            goalDiff:
                              type:
                              - number
                              - 'null'
                            goalsForPerGame:
                              type:
                              - number
                              - 'null'
                            goalsAgainstPerGame:
                              type:
                              - number
                              - 'null'
                            corsiPct:
                              type:
                              - number
                              - 'null'
                            fenwickPct:
                              type:
                              - number
                              - 'null'
                            expectedGoalsFor:
                              type:
                              - number
                              - 'null'
                            expectedGoalsAgainst:
                              type:
                              - number
                              - 'null'
                            snapshotDate:
                              type:
                              - string
                              - 'null'
                          required:
                          - teamAbbrev
                          - teamName
                          - conference
                          - division
                          - rank
                          - points
                          - gamesPlayed
                          - wins
                          - losses
                          - otLosses
                          - pointPct
                          - goalDiff
                          - goalsForPerGame
                          - goalsAgainstPerGame
                          - corsiPct
                          - fenwickPct
                          - expectedGoalsFor
                          - expectedGoalsAgainst
                          - snapshotDate
                          additionalProperties: false
                      snapshot_date:
                        type:
                        - string
                        - 'null'
                      count:
                        type: number
                    required:
                    - standings
                    - snapshot_date
                    - 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_schedule:
    post:
      operationId: get_schedule
      summary: Schedule
      description: Use when checking what games are coming up. Returns only unplayed future games for the next N days (default 7). For past games, use get_games instead. Costs 2 credits.
      tags:
      - Basic lookup
      x-credits: 2
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                team:
                  description: Team abbreviation to filter
                  type: string
                days:
                  description: Number of days ahead to look (default 7)
                  type: integer
                  minimum: 1
                  maximum: 30
                league:
                  description: 'League. Defaults to nhl. One of: nhl, pwhl, ohl, whl, qmjhl, echl, ahl, ushl.'
                  type: string
                  enum:
                  - nhl
                  - pwhl
                  - ohl
                  - whl
                  - qmjhl
                  - echl
                  - ahl
                  - ushl
              additionalProperties: false
      responses:
        '200':
          description: The result, wrapped in data.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      upcoming_games:
                        type: array
                        items:
                          type: object
                          properties:
                            id:
                              type: string
                            gameDate:
                              type:
                              - string
                              - 'null'
                            startTime:
                              type:
                              - string
                              - 'null'
                            homeTeam:
                              type: string
                            awayTeam:
                              type: string
                            homeTeamName:
                              type:
                              - string
                              - 'null'
                            awayTeamName:
                              type:
                              - string
                              - 'null'
                            venue:
                              type:
                              - string
                              - 'null'
                            gameType:
                              type:
                              - string
                              - 'null'
                          required:
                          - id
                          - gameDate
                          - startTime
                          - homeTeam
                          - awayTeam
                          - homeTeamName
                          - awayTeamName
                          - venue
                          - gameType
                          additionalProperties: false
                      count:
                        type: number
                    required:
                    - upcoming_games
                    - 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/search_players:
    post:
      operationId: search_players
      summary: Search players
      description: Use when looking up a player by name. Searches 4,900+ players across every season since 2010-11. Returns active players by default; set active=false for retired/historical. Use the returned player ID with get_player_stats for full details. Costs 2 credits.
      tags:
      - Basic lookup
      x-credits: 2
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                query:
                  type: string
                  minLength: 1
                  description: Player name to search for (partial match supported)
                team:
                  description: Filter by team abbreviation
                  type: string
                position:
                  description: Filter by position
                  type: string
                  enum:
                  - G
                  - D
                  - C
                  - LW
                  - RW
                active:
                  description: 'Filter by active status (default: true). Set false to search active plus retired/historical players.'
                  type: boolean
                limit:
                  description: Max results (default 10)
                  type: integer
                  minimum: 1
                  maximum: 50
                league:
                  description: 'League. Defaults to nhl. One of: nhl, pwhl, ohl, whl, qmjhl, echl, ahl, ushl.'
                  type: string
                  enum:
                  - nhl
                  - pwhl
                  - ohl
                  - whl
                  - qmjhl
                  - echl
                  - ahl
                  - ushl
              required:
              - query
              additionalProperties: false
      responses:
        '200':
          description: The result, wrapped in data.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      players:
                        type: array
                        items:
                          type: object
                          properties:
                            id:
                              type: number
                            name:
                              type: string
                            firstName:
                              type:
                              - string
                              - 'null'
                            lastName:
                              type:
                              - string
                              - 'null'
                            team:
                              type:
                              - string
                              - 'null'
                            teamName:
                              type:
                              - string
                              - 'null'
                            position:
                              type:
                              - string
                              - 'null'
                            positionType:
                              type:
                              - string
                              - 'null'
                            jerseyNumber:
                              type:
                              - number
                              - 'null'
                            birthCountry:
                              type:
                              - string
                              - 'null'
                            active:
                              type:
                              - boolean
                              - 'null'
                          required:
                          - id
                          - name
                          - firstName
                          - lastName
                          - team
                          - teamName
                          - position
                          - positionType
                          - jerseyNumber
                          - birthCountry
                          - active
                          additionalProperties: false
                      count:
                        type: number
                      included_inactive:
                        type: boolean
                      note:
                        type: string
                    required:
                    - players
                    - count
                    - included_inactive
                    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://puckapi.com/docs