Football Performance API Documentation — Futrix Metrics

Complete reference guide for the Futrix Metrics Football Performance API. Score and predict football player performance, query player ratings, generate scouting reports, and access role-cluster analytics.

Football Performance API Documentation

Futrix Metrics — Intelligent football analytics at scale. Learn more about us · Get API Access

The Futrix Metrics Football Performance API gives you programmatic access to football player ratings, performance predictions, role-cluster analytics, scouting reports, and model visualisation charts — all through a single REST interface.

Built for analysts, scouts, and developers who need reliable, model-driven football data. See how it’s used in our Player Rating & Cluster project and development notes.


Table of Contents


Overview

The Futrix Metrics Football Performance API is a RESTful API that returns JSON responses (or HTML for the /report endpoint). All requests are authenticated and rate-limited based on your subscription plan.

PropertyValue
API Version1.0.0
ProtocolHTTPS
Request formatapplication/json
Response formatapplication/json (HTML for /report)
AuthenticationAPI Key (X-API-Key header)

Want to understand the models powering this API? Read about the Player Rating & Cluster methodology and explore the full development background.


Base URL

https://footballperformanceapi.site

All endpoint paths in this documentation are relative to the base URL. For example:

GET https://footballperformanceapi.site/database/ratings

Authentication

All API endpoints (except GET /health) require an API key passed via the X-API-Key request header.

X-API-Key: <your_api_key>

Example:

curl -H "X-API-Key: <your_api_key>" \
  https://footballperformanceapi.site/database/ratings

Your API key is issued when you subscribe to a plan. Keep it private and never expose it in client-side code or public repositories.


Get API Access

To obtain an API key, visit www.futrixmetrics.com/services to explore available plans, try the API, or request access.

Not sure which plan fits your use case? Learn more about Futrix Metrics or browse our open projects to see the API in action.


Pagination

All Database endpoints support offset-based pagination via limit and offset query parameters.

ParameterTypeDefaultMaxDescription
limitinteger2005000Maximum rows to return
offsetinteger0Number of rows to skip

Example — page 2 with 100 rows per page:

GET /database/ratings?limit=100&offset=100

For large datasets, iterate through pages by incrementing offset by limit until fewer rows than limit are returned.


Endpoints


Database

The Database endpoints expose raw access to the Futrix Metrics player ratings and role-clustering tables. All database endpoints use GET and support filtering by multiple parameters.

To understand what these ratings represent, see the Player Rating & Cluster project.


GET /database/ratings

Retrieve player ratings records. Supports filtering by player, season, league, and team.

Authentication: X-API-Keysee Authentication

Query Parameters

ParameterTypeRequiredDescription
player_idintegerNoFilter by numeric player ID
full_namestringNoFilter by player full name (exact match)
seasonstringNoFilter by season string, e.g. 2024/2025
leaguestringNoFilter by league name (exact match)
teamstringNoFilter by team name (exact match)
limitintegerNoMax rows to return (1–5000, default 200)
offsetintegerNoRow offset for pagination (default 0)

Example Request

curl -H "X-API-Key: <your_key>" \
  "https://footballperformanceapi.site/database/ratings?league=Premier%20League&season=2024%2F2025&limit=50"

Response

200 OK
Content-Type: application/json

{
  "data": [ ... ]
}

Related: Role Cluster Results · Player Report · Rating methodology


GET /database/role-cluster-results

Retrieve role-cluster classification results for individual players. Each record maps a player to a cluster identity across one or more clustering dimensions.

Authentication: X-API-Keysee Authentication

Query Parameters

ParameterTypeRequiredDescription
player_idintegerNoFilter by numeric player ID
player_namestringNoFilter by player name (exact match)
seasonstringNoFilter by season (exact match)
leaguestringNoFilter by league (exact match)
clubstringNoFilter by club name (exact match)
positionstringNoFilter by position (exact match)
sourcestringNoFilter by data source (exact match)
cluster_idintegerNoFilter by numeric cluster ID
cluster_groupstringNoFilter by cluster group label
cluster_localstringNoFilter by local cluster label
cluster_namestringNoFilter by cluster display name
limitintegerNoMax rows (1–5000, default 200)
offsetintegerNoRow offset (default 0)

Example Request

curl -H "X-API-Key: <your_key>" \
  "https://footballperformanceapi.site/database/role-cluster-results?position=midfielder&season=2024%2F2025"

Response

200 OK
Content-Type: application/json

{
  "data": [ ... ]
}

Related: Role Cluster Summary · Ratings · Cluster methodology


GET /database/role-cluster-summary

Retrieve aggregated summary data for each role cluster. Use this endpoint to understand the characteristics and metadata of each cluster group without fetching individual player records.

Authentication: X-API-Keysee Authentication

Query Parameters

ParameterTypeRequiredDescription
cluster_idintegerNoFilter by numeric cluster ID
cluster_groupstringNoFilter by cluster group label
cluster_localstringNoFilter by local cluster label
cluster_namestringNoFilter by cluster display name
limitintegerNoMax rows (1–5000, default 200)
offsetintegerNoRow offset (default 0)

Example Request

curl -H "X-API-Key: <your_key>" \
  "https://footballperformanceapi.site/database/role-cluster-summary?cluster_group=attacker"

Response

200 OK
Content-Type: application/json

{
  "data": [ ... ]
}

Related: Role Cluster Results · Cluster project overview


Score & Prediction

The Score endpoints expose the Futrix Metrics machine-learning prediction models. Submit a player’s raw statistics as a feature vector and receive a predicted performance score in return.

Read about how the scoring models were built at futrixmetrics.com/project/develop.

See the PredictRequest schema for the full list of supported feature fields.


GET /score/

Health and status check for the Score service. Returns service metadata.

Authentication: X-API-Keysee Authentication

Example Request

curl -H "X-API-Key: <your_key>" \
  https://footballperformanceapi.site/score/

Response

200 OK
Content-Type: application/json

{ ... }

POST /score/predict

Submit a player’s statistics and receive a Pro model performance score prediction. This endpoint uses the full Futrix Metrics model ensemble.

Authentication: X-API-Keysee Authentication

Request Bodyapplication/jsonPredictRequest

FieldTypeRequiredDescription
featuresobjectYesKey/value map of player statistics — see feature list

Example Request

curl -X POST \
  -H "X-API-Key: <your_key>" \
  -H "Content-Type: application/json" \
  -d '{
    "features": {
      "player_name": "Example Player",
      "position": "defender",
      "league": "Premier League",
      "club": "Example FC",
      "season": "2024/2025",
      "minutes": 1980,
      "goals": 3,
      "assists": 5,
      "passes_attempted": 1900,
      "passes_completed": 1650,
      "tackles": 68,
      "tackles_won": 45,
      "interceptions": 52,
      "clearances": 140,
      "blocks": 35,
      "shots": 28,
      "shots_on_target": 10,
      "dribbles": 42,
      "dribbles_successful": 23,
      "aerials": 90,
      "aerials_won": 56,
      "fouls_committed": 22,
      "fouls_drawn": 18,
      "yellow_cards": 4,
      "red_cards": 0
    }
  }' \
  https://footballperformanceapi.site/score/predict

Response

200 OK
Content-Type: application/json

{ ... }

Related: Predict Base · PredictRequest Schema · Pro Model Charts · Model development


POST /score/predict-base

Submit a player’s statistics and receive a Base model performance score prediction. Useful for comparing predictions against the full Pro model from POST /score/predict.

Authentication: X-API-Keysee Authentication

Request Bodyapplication/jsonPredictRequest

Identical request body to POST /score/predict. See the PredictRequest schema for the full field list.

Example Request

curl -X POST \
  -H "X-API-Key: <your_key>" \
  -H "Content-Type: application/json" \
  -d '{ "features": { ... } }' \
  https://footballperformanceapi.site/score/predict-base

Response

200 OK
Content-Type: application/json

{ ... }

Related: Predict (Pro) · Base Model Charts · PredictRequest Schema


Charts & Visualisation

The Charts endpoints return data for visualising model performance, feature importance, position distributions, and league coverage. These are ideal for building internal dashboards or embedding analytics in your application.


GET /charts/overview

Returns a high-level overview of model coverage and performance statistics.

Authentication: X-API-Keysee Authentication

Example Request

curl -H "X-API-Key: <your_key>" \
  https://footballperformanceapi.site/charts/overview

Related: Positions chart · Leagues chart · Feature chart


GET /charts/positions

Returns distribution data for the top N player positions in the dataset. Use this to understand model coverage across positions.

Authentication: X-API-Keysee Authentication

Query Parameters

ParameterTypeRequiredDefaultMaxDescription
limitintegerNo20100Top N positions to return

Example Request

curl -H "X-API-Key: <your_key>" \
  "https://footballperformanceapi.site/charts/positions?limit=10"

Related: Leagues chart · Overview chart


GET /charts/leagues

Returns distribution data for the top N leagues in the dataset. Use this to understand the geographic and competition-level coverage of the model.

Authentication: X-API-Keysee Authentication

Query Parameters

ParameterTypeRequiredDefaultMaxDescription
limitintegerNo20100Top N leagues to return

Example Request

curl -H "X-API-Key: <your_key>" \
  "https://footballperformanceapi.site/charts/leagues?limit=30"

Related: Positions chart · Ratings database


GET /charts/models/base

Returns performance metrics and chart data for the Base prediction model.

Authentication: X-API-Keysee Authentication

Example Request

curl -H "X-API-Key: <your_key>" \
  https://footballperformanceapi.site/charts/models/base

Related: Pro model charts · Predict Base · Model development


GET /charts/models/pro

Returns performance metrics and chart data for the Pro prediction model.

Authentication: X-API-Keysee Authentication

Example Request

curl -H "X-API-Key: <your_key>" \
  https://footballperformanceapi.site/charts/models/pro

Related: Base model charts · Predict (Pro) · Model development


GET /charts/features

Returns the top N features by usage difference between the Base and Pro models. Use this to understand which statistics drive the most differentiation in the Pro model.

Authentication: X-API-Keysee Authentication

Query Parameters

ParameterTypeRequiredDefaultMaxDescription
topintegerNo30200Top N features to return by usage difference

Example Request

curl -H "X-API-Key: <your_key>" \
  "https://footballperformanceapi.site/charts/features?top=50"

Related: PredictRequest feature list · Base model · Pro model


Reports


GET /report

Generate a full HTML scouting report for a player. This endpoint returns a rendered HTML document rather than JSON, making it suitable for embedding in web pages or saving as a standalone report file.

Authentication: X-API-Keysee Authentication

Query Parameters

ParameterTypeRequiredDescription
player_idintegerNoLookup player by numeric ID
namestringNoLookup player by name
seasonstringNoFilter report to a specific season
leaguestringNoFilter report to a specific league
teamstringNoFilter report to a specific team

Provide at least one of player_id or name to identify the player.

Response Content Type

text/html

Example Request

curl -H "X-API-Key: <your_key>" \
  "https://footballperformanceapi.site/report?name=Example%20Player&season=2024%2F2025" \
  -o player_report.html

Related: Ratings database · Predict (Pro) · Player Rating project


System


GET /health

Check the operational status of the API. This endpoint does not require authentication and can be used for uptime monitoring.

Authentication: None required

Example Request

curl https://footballperformanceapi.site/health

Response

200 OK
Content-Type: application/json

{ ... }

Data Models & Schemas


PredictRequest

Used by POST /score/predict and POST /score/predict-base.

{
  "features": {
    "<feature_name>": <value>,
    ...
  }
}

The features object accepts any key/value pairs. The table below lists all recognised statistical fields with their expected types. For definitions of each metric, see the Feature Reference section.

Recognised Feature Fields

FieldTypeDescription
player_namestringPlayer full name
positionstringPlayer position (e.g. defender, midfielder, forward)
leaguestringCompetition name (e.g. Premier League)
clubstringClub name
seasonstringSeason string (e.g. 2024/2025)
minutesintegerTotal minutes played
goalsintegerGoals scored
assistsintegerAssists
shotsintegerTotal shots
shots_on_targetintegerShots on target
passes_attemptedintegerTotal passes attempted
passes_completedintegerPasses completed
tacklesintegerTotal tackles
tackles_wonintegerTackles won
interceptionsintegerInterceptions
clearancesintegerClearances
blocksintegerBlocks
dribblesintegerDribble attempts
dribbles_successfulintegerSuccessful dribbles
aerialsintegerAerial duels contested
aerials_wonintegerAerial duels won
fouls_committedintegerFouls committed
fouls_drawnintegerFouls drawn
yellow_cardsintegerYellow cards received
red_cardsintegerRed cards received

Full Example Payload

{
  "features": {
    "player_name": "Example Player",
    "position": "defender",
    "league": "Premier League",
    "club": "Example FC",
    "season": "2024/2025",
    "minutes": 1980,
    "goals": 3,
    "assists": 5,
    "shots": 28,
    "shots_on_target": 10,
    "passes_attempted": 1900,
    "passes_completed": 1650,
    "tackles": 68,
    "tackles_won": 45,
    "interceptions": 52,
    "clearances": 140,
    "blocks": 35,
    "dribbles": 42,
    "dribbles_successful": 23,
    "aerials": 90,
    "aerials_won": 56,
    "fouls_committed": 22,
    "fouls_drawn": 18,
    "yellow_cards": 4,
    "red_cards": 0
  }
}

Related: POST /score/predict · POST /score/predict-base · Feature chart · Feature Reference


HTTPValidationError

Returned on 422 Unprocessable Entity responses when request validation fails.

{
  "detail": [
    {
      "loc": ["body", "features"],
      "msg": "field required",
      "type": "value_error.missing"
    }
  ]
}
FieldTypeDescription
detailarrayList of ValidationError objects

ValidationError

FieldTypeDescription
locarray of string/integerLocation path of the error (e.g. ["body", "features"])
msgstringHuman-readable error message
typestringMachine-readable error type

Error Reference

HTTP StatusMeaningCommon Causes
200 OKSuccessRequest was valid and processed
401 UnauthorizedAuth failedMissing, invalid, or expired API key
403 ForbiddenAccess deniedValid key but insufficient plan permissions
404 Not FoundNot foundInvalid endpoint path
422 Unprocessable EntityValidation errorMissing required fields, wrong types — see HTTPValidationError
429 Too Many RequestsRate limitedExceeded request quota for your plan
500 Internal Server ErrorServer errorUnexpected error on the API side

For persistent errors, check the health endpoint first, then reach out via www.futrixmetrics.com.


Quick Start Examples

Don’t have an API key yet? Request access at www.futrixmetrics.com/services.


1. Query player ratings for a specific league

curl -H "X-API-Key: <your_key>" \
  "https://footballperformanceapi.site/database/ratings?league=Premier%20League&season=2024%2F2025&limit=20"

2. Score a player using the Pro model

curl -X POST \
  -H "X-API-Key: <your_key>" \
  -H "Content-Type: application/json" \
  -d '{
    "features": {
      "player_name": "Example Player",
      "position": "midfielder",
      "league": "La Liga",
      "club": "Example FC",
      "season": "2024/2025",
      "minutes": 2340,
      "goals": 12,
      "assists": 8,
      "passes_attempted": 2100,
      "passes_completed": 1850,
      "tackles": 55,
      "tackles_won": 38,
      "interceptions": 40,
      "clearances": 30,
      "blocks": 20,
      "shots": 60,
      "shots_on_target": 25,
      "dribbles": 80,
      "dribbles_successful": 55,
      "aerials": 50,
      "aerials_won": 28,
      "fouls_committed": 30,
      "fouls_drawn": 45,
      "yellow_cards": 3,
      "red_cards": 0
    }
  }' \
  https://footballperformanceapi.site/score/predict

3. Compare Base vs Pro model scores for the same player

# Pro model
curl -X POST \
  -H "X-API-Key: <your_key>" \
  -H "Content-Type: application/json" \
  -d '{ "features": { ... } }' \
  https://footballperformanceapi.site/score/predict

# Base model
curl -X POST \
  -H "X-API-Key: <your_key>" \
  -H "Content-Type: application/json" \
  -d '{ "features": { ... } }' \
  https://footballperformanceapi.site/score/predict-base

4. Fetch a player scouting report and save to file

curl -H "X-API-Key: <your_key>" \
  "https://footballperformanceapi.site/report?name=Example%20Player&season=2024%2F2025" \
  -o scouting_report.html

5. Find all midfielders in a role cluster

curl -H "X-API-Key: <your_key>" \
  "https://footballperformanceapi.site/database/role-cluster-results?position=midfielder&cluster_group=box-to-box&limit=50"

6. Check API health (no key required)

curl https://footballperformanceapi.site/health

Feature Reference

The table below maps every PredictRequest feature field to its football analytics definition. Use this as a guide when preparing player data before calling POST /score/predict.

For full methodology behind how these features are weighted in the model, visit futrixmetrics.com/project/develop.

FeatureFootball Definition
minutesTotal minutes the player appeared on the pitch across all matches in the season
goalsTotal goals scored (excluding own goals)
assistsFinal passes directly leading to a goal
shotsAll shot attempts (on target + off target + blocked)
shots_on_targetShots requiring a save or resulting in a goal
passes_attemptedAll passes attempted, including set pieces
passes_completedPasses that reached a teammate
tacklesAttempts to dispossess an opposing player
tackles_wonSuccessful tackles resulting in possession recovery
interceptionsActions preventing an opposition pass from reaching its target
clearancesActions clearing the ball from a defensive situation
blocksShots or crosses blocked by the player’s body
dribblesAttempts to take on an opposing player with the ball
dribbles_successfulDribble attempts that successfully beat the opponent
aerialsAerial duels contested (headers and shoulder challenges)
aerials_wonAerial duels won
fouls_committedInfringements conceded by the player
fouls_drawnInfringements drawn by the player against opponents
yellow_cardsYellow cards received in the season
red_cardsRed cards received in the season

Football Performance API v1.0.0 — Futrix Metrics

Home · About · Services & API Access · Player Rating Project · Development