Skip to content
StrikerAPI

Documentation

17 soccer data endpoints over REST and MCP. One key, credits per call.

Your first call

Sign up for a free key (500 credits, no card), swap it in for YOUR_API_KEY, and send this. get_standings costs 2 credits.

Request

curl -X POST https://mcp.strikerapi.com/v1/get_standings \
  -H "Content-Type: application/json" \
  -H "x-api-key: YOUR_API_KEY" \
  -d '{
  "season": 2025
}'

Response

json
{
  "season": 2025,
  "source": "espn_table",
  "standings": [
    {
      "group_name": "English Premier League 2025-2026",
      "rank": 1,
      "team_id": "359",
      "abbrev": "ARS",
      "display_name": "Arsenal",
      "played": 38,
      "wins": 26,
      "draws": 7,
      "losses": 5,
  ...

First 14 lines. Full response and every field

REST / cURL

POST to /v1/{tool_name} with your params as JSON body. No MCP client needed:

bash
curl -X POST https://mcp.strikerapi.com/v1/list_teams \
  -H "Content-Type: application/json" \
  -H "x-api-key: YOUR_API_KEY"

With parameters:

bash
curl -X POST https://mcp.strikerapi.com/v1/get_standings \
  -H "Content-Type: application/json" \
  -H "x-api-key: YOUR_API_KEY" \
  -d '{"season":2025}'

Claude Desktop

Add to your claude_desktop_config.json:

json
{
  "mcpServers": {
    "strikerapi": {
      "url": "https://mcp.strikerapi.com/mcp?key=YOUR_API_KEY"
    }
  }
}

Claude Code

One command:

bash
claude mcp add strikerapi https://mcp.strikerapi.com/mcp?key=YOUR_API_KEY --transport streamable-http

Find the right call

All 17 questions

Endpoints

17 endpoints by category. Each page has parameters, requests in three formats, a full example response and every response field.

Reference

Authentication

Every request requires an API key. Pass it via header or query parameter:

bash
x-api-key: YOUR_API_KEY
# or
Authorization: Bearer YOUR_API_KEY
# or (MCP only)
?key=YOUR_API_KEY

Verify your email, then create an API key from the dashboard. Free accounts get 500 credits.

Base URL

text
https://mcp.strikerapi.com

REST API: POST /v1/{tool} with JSON body. Works with cURL, Python, any HTTP client.

MCP: POST /mcp via Streamable HTTP. Works with Claude Desktop, Claude Code, Cursor, and any MCP client.

Rate limits

Credit balanceRate limit
100 credits or more60 req/min
Under 100 credits10 req/min

The limit is the same on every plan. It is burst protection, not the spend boundary; credits are that, and they are enforced per request. Running low slows you down so you notice before the balance reaches zero.

Error handling

CodeMeaningWhat to do
400Invalid parametersCheck required fields and value types
401Invalid or missing API keyCheck your x-api-key header
402Insufficient creditsTop up your wallet or upgrade your plan
429Rate limit exceededWait and retry (see limits above)
500Server errorRetry with idempotency key. Credits auto-refund on server errors.

Pass x-idempotency-key or x-request-id headers to make retries duplicate-safe.

Data coverage

Major League Soccer (MLS)

StrikerAPI also serves the MLS. Pass "league": "mls" to any tool that lists it, or connect to https://mcp.strikerapi.com/mcp/mls. What the MLS data covers.

Spanish La Liga (Primera Division) (La Liga)

StrikerAPI also serves the La Liga. Pass "league": "laliga" to any tool that lists it, or connect to https://mcp.strikerapi.com/mcp/laliga. What the La Liga data covers.

Italian Serie A (Serie A)

StrikerAPI also serves the Serie A. Pass "league": "seriea" to any tool that lists it, or connect to https://mcp.strikerapi.com/mcp/seriea. What the Serie A data covers.

German Bundesliga (Bundesliga)

StrikerAPI also serves the Bundesliga. Pass "league": "bundesliga" to any tool that lists it, or connect to https://mcp.strikerapi.com/mcp/bundesliga. What the Bundesliga data covers.

French Ligue 1 (Ligue 1)

StrikerAPI also serves the Ligue 1. Pass "league": "ligue1" to any tool that lists it, or connect to https://mcp.strikerapi.com/mcp/ligue1. What the Ligue 1 data covers.

UEFA Champions League (Champions League)

StrikerAPI also serves the Champions League. Pass "league": "ucl" to any tool that lists it, or connect to https://mcp.strikerapi.com/mcp/ucl. What the Champions League data covers.

DataStatusCoverageVolume
Fixtures and results
Date, stage, score, extra time and shootout, venue and attendance.
Available2001-02 to currentEvery match ESPN lists
Lineups and box scores
Formations, starting XIs, substitutions with minutes, and each player's goals, assists, shots, fouls, cards and saves; each club's possession, shots, passing, tackles and discipline.
Lineups from 2001-02 (MLS 2004). Full box scores from 2001-02 in the Premier League, 2005-06 to 2007-08 in the other European leagues and 2008 in MLS; before that goals, assists and cards are counted from the match events and the rest is null.
Partial2001-02 to currentEvery player in every squad
Match events
Goals with the scorer and assister, substitutions and, from 2011-12, cards, for every match; from 2012-13 every shot, foul, corner and offside too.
Cards from 2011-12. Before 2012-13 only goals, cards and substitutions.
Partial2001-02 to currentAbout 100 events per match from 2012-13
Shot locations and xG
Each shot's x/y, end point, outcome, body part and our expected goals.
Before 2012-13 only goals carry a location (about 1,000 a season), so a shot map of an earlier season shows goals, not shots.
PartialComplete from 2012-13About 25 shots per match
League tables
ESPN's published table: official points with deductions, goal difference and qualification notes.
Available2002-03 to currentEvery season
Odds
Home, draw and away moneylines, goal handicap and total by sportsbook; opening and closing from 2024, the final pre-match line before that.
No lines before 2017-18; two books in 2017-18 and 2018-19, six to eight in 2019-20 and 2020-21, one or two since 2024-25; no player props.
Partial2017-18 to currentAbout ten books per match 2021-22 to 2023-24, one or two since
Ratings
Our Elo per competition, before and after every match.
Available2001-02 to currentEvery club, every match

Coverage describes the datasets StrikerAPI supports. Freshness and operational health are tracked separately.

Odds snapshot definitions

opening: The first line a sportsbook posted for the match, as ESPN reports it (from 2024).

closing: The sportsbook's last line before kick-off.

Odds coverage currently documents the books ESPN reports: about ten per match from 2021-22 to 2023-24 (DraftKings, Caesars, BetMGM, Bet365, PointsBet and Unibet among them), then Bet365 with ESPN BET or DraftKings. No lines before 2017-18, and one or two books per match since 2024-25. Before 2024, ESPN keeps each sportsbook's final pre-match line, stored as the close: from 2017-18, about ten books per match from 2021-22 to 2023-24, fewer before. From 2024 there are opening and closing lines from one or two books. Daily snapshots before each match from launch.

Response format

REST API

All successful REST responses wrap the result in a data key:

json
{ "data": { "teams": [...], "count": 20 } }

Error responses return:

json
{ "error": "Insufficient credits", "message": "This tool costs 5 credits, you have 2" }

MCP Protocol

MCP responses follow the standard MCP tool result format. The data is returned directly (no data wrapper). Both access methods return identical data, just different envelopes.

Conventions

Seasons: the year the season starts (2025 = 2025-26); MLS: the calendar year. Example: 2025.

Game IDs: an ESPN match id, e.g. 704345 (an ESPN match id; find them with list_games). Get them from get_games or get_schedule.

Team abbreviations: Standard codes (ARS, LIV, MNC (or an ESPN team id); list_teams has them). Use list_teams if unsure.

Pagination: Endpoints use a limit parameter. No cursor or offset. Narrow your filters to get different slices of data.

Credits: Deducted before the request executes. Automatically refunded on server errors. Monthly credits are used first, then wallet balance.

Ready to start?

500 free credits on signup. No credit card required.

Get a free key