puckapi-com Basic lookup API
The Basic lookup API from puckapi-com — 3 operation(s) for basic lookup.
The Basic lookup API from puckapi-com — 3 operation(s) for basic lookup.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/puckapi-com:puckapi-com-basic-lookup-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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: 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