---
title: "Full EuroLeague match payload (game-level + per-player projections incl. PIR)"
method: GET
path: "/v1/predictions/euroleague/{match_id}"
tags: ["predictions"]
---

# Full EuroLeague match payload (game-level + per-player projections incl. PIR)

`GET /v1/predictions/euroleague/{match_id}`

## Request

- Base URL: `https://api.predixsport.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.predixsport.com/v1/predictions/euroleague/{match_id}`
- Auth: none declared

Returns the full payload for a single EuroLeague match identified by ``match_id`` (the ``file_name`` column on ``euroleague_predictions``, e.g. ``E2025_61`` — discoverable via the ``search`` endpoint). Includes winner probabilities, ``predicted_point_diff`` (spread) and ``predicted_total_points``, the full calibrated ``distributions`` (spread + total PMFs), and a ``players`` array carrying expected points/rebounds/assists/3PM and **PIR** (the EuroLeague signature stat) with the full PMF for each. The sub-models are independent — small cross-metric mismatches are by design. Returns **404** if the ``match_id`` is unknown. Use ``GET /v1/predictions/euroleague/{match_id}/players`` for the player layer only.

## Path parameters

- `match_id` string, required

## Headers

- `authorization` string, nullable

## Response `200`

Successful Response

- EuroLeagueMatchDetail
  - `match_id` string, required
  - `sport` 'euroleague'
  - `prediction_date` string, date, required
  - `season` string, required
  - `produced_by` string: Serving provenance. `cold_start_rating_prior_v1` is the disclosed early-season fallback (Rounds 1 to 6) built on team ratings and last season's scoring profile. Its accuracy is reported separately from the full-season model.
  - `home_team` TeamStats, required: Win-side projection for an NBA team.
    - `name` string, required
    - `win_probability` number, nullable: Probability of this team winning, in [0, 1]. Null when the winner classifier has not been run for this match yet.
  - `away_team` TeamStats, required: Win-side projection for an NBA team.
    - `name` string, required
    - `win_probability` number, nullable: Probability of this team winning, in [0, 1]. Null when the winner classifier has not been run for this match yet.
  - `predicted_point_diff` number, nullable: Expected (home_points - away_points) from the dedicated spread regressor.
  - `predicted_total_points` number, nullable: Expected sum of points scored by both teams (dedicated total regressor).
  - `distributions` EuroLeagueDistributions: Game-level probability mass functions (the platform's differentiator).
    - `spread` object, nullable: PMF over (home_points - away_points). Signed keys — negative means an away-favoured margin.
    - `total` object, nullable: PMF over the combined total points scored by both teams.
  - `players` EuroLeaguePlayerProjection[]: Per-player projections (points/rebounds/assists/3PM/PIR + PMFs). Empty when no player rows exist.
    - `name` string, required
    - `team` string, required
    - `is_home` boolean, required
    - `position` integer, nullable: Projected-starter slot, 1-5, used internally by the model. This is a rank, NOT a basketball position: it does not encode guard / forward / center. For a player's role see /v1/players/euroleague/{player}/prediction-performance.
    - `expected_points` number, nullable
    - `expected_rebounds` number, nullable
    - `expected_assists` number, nullable
    - `expected_three_pointers_made` number, nullable: Expected three-pointers made.
    - `expected_pir` number, nullable: Expected Performance Index Rating (PIR) — EuroLeague's composite box-score metric: (points + rebounds + assists + steals + blocks + fouls drawn) − (missed FG + missed FT + turnovers + shots rejected + fouls committed). Can be negative.
    - `points_distribution` object, nullable
    - `rebounds_distribution` object, nullable
    - `assists_distribution` object, nullable
    - `three_pointers_made_distribution` object, nullable
    - `pir_distribution` object, nullable: Full PMF over PIR outcomes (signed — PIR can be negative).
  - `key_factors` KeyFactors: Concept-level attribution of the winner prediction. Computed with gradient-based attribution on the production neural network and aggregated into human concepts; the factors approximately sum to the gap between the served win probability and an even matchup. For football the factors compare the two sides directly (the draw probability is modelled separately). Absent on rows predicted before the explainability rollout (June 2026).
    - `schema_version` integer: Contract version of this payload.
    - `baseline_probability` number, nullable: Model probability for an average matchup — the reference point the factors move the prediction away from.
    - `factors` KeyFactor[]: Factors sorted by absolute impact (largest first).
      - `key` string, required: Stable identifier of the factor (e.g. 'surface', 'starting_five', 'attack').
      - `label` string, required: Human-readable factor name, as shown on predixsport.com.
      - `prob_points` number, required: How many win-probability percentage points this factor moves the prediction. Positive values favour the first side (player one / home team), negative values the second side.
      - `direction` string, required: What the factor favours: 'player_one'/'player_two' for tennis, 'home'/'away' for NBA and football winner attributions, 'under'/'over' for the football under/over 2.5 attribution.
      - `stable` boolean, required: True when the attribution sign is consistent across independent estimator runs. Treat unstable factors as indicative, not decisive.
      - `display` boolean: False for internal context buckets not shown on predixsport.com.
      - `share` number, nullable: This factor's share of the total absolute attribution (0-1).
      - `synthetic` boolean, nullable: True for fixed baseline terms (home advantage, league scoring environment) that reflect league-wide tendencies rather than this specific matchup.
      - `side` string, nullable: For per-team factors on outcome attributions (football under/over): which team the factor describes ('home'/'away'). Surfaces can substitute the actual team name into the label.
  - `actual` EuroLeagueActual: Realized box-score result once the match has been played and reconciled (``euroleague_in_season_performance``). Absent until the game is played.
    - `home_points` number, nullable: Points scored by the home team.
    - `away_points` number, nullable: Points scored by the away team.
    - `point_diff` number, nullable: Realized (home_points - away_points). Compare with predicted_point_diff.
    - `total_points` number, nullable: Realized combined points scored by both teams. Compare with predicted_total_points.
    - `result` string, nullable: Which side won: 'Home_Win' or 'Away_Win'.

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/predixsport/apis/predixsport-api.md) · [All operations](https://skmtc.dev/predixsport/apis/predixsport-api/llms.txt) · [OpenAPI document](https://skmtc.dev/predixsport/apis/predixsport-api/revisions/02014aee733d?raw)
