get_head_to_head
Matchup history between two teams with win/loss records.
When to use it
You're previewing a matchup and want to know the rivalry history -- who has the edge, recent results, and head-to-head record for a specific season or all-time.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| team1 | string | yes | First team abbreviation |
| team2 | string | yes | Second team abbreviation |
| season | string | no | Filter to specific season |
| limit | integer | no | Max games (1-100, default 20) |
Request
curl -X POST https://mcp.puckapi.com/v1/get_head_to_head \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_API_KEY" \
-d '{
"team1": "BUF",
"team2": "TOR",
"season": "20252026"
}'Over MCP, ask for it in plain English and the client calls get_head_to_head itself. Point any MCP client at https://mcp.puckapi.com/mcp?key=YOUR_API_KEY.
Response
{
"team1": "BUF",
"team2": "TOR",
"record": {
"BUF": 2,
"TOR": 1
},
"total_games": 3,
"games": [
{
"id": "2025020412",
"season": "20252026",
"gameDate": "2025-12-14",
"homeTeam": "TOR",
"awayTeam": "BUF",
"homeScore": 3,
"awayScore": 4,
"gameState": "FINAL",
"venue": "Scotiabank Arena"
},
{
"id": "2025020623",
"season": "20252026",
"gameDate": "2026-01-28",
"homeTeam": "BUF",
"awayTeam": "TOR",
"homeScore": 2,
"awayScore": 5,
"gameState": "FINAL",
"venue": "KeyBank Center"
}
]
}Response fields
| Field | Type | Description |
|---|---|---|
| team1 | string | First team abbreviation |
| team2 | string | Second team abbreviation |
| record | object | Win counts keyed by team abbreviation |
| record.[TEAM] | integer | Wins for that team |
| total_games | integer | Total games in range |
| games[].id | string | Game ID |
| games[].gameDate | string | Date |
| games[].homeTeam | string | Home team abbreviation |
| games[].awayTeam | string | Away team abbreviation |
| games[].homeScore | integer | Home team score |
| games[].awayScore | integer | Away team score |
Related endpoints
Takes the game_id this one returns.
Odds for a specific game with optional bookmaker and snapshot type filters.
Takes the game_id this one returns.
Full game detail including odds snapshots and the goalies who started, with time on ice.
Filters by the same limit.
Find players by name, team, or position.
Filters by the same season.
Current standings with points, point pace, goal differential, and 5v5 possession: Corsi%, Fenwick% and expected goals.
Try it
500 credits free on signup — 50 calls to get_head_to_head — and no card.