Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/danielsl4/TFG_DAM_2526/llms.txt

Use this file to discover all available pages before exploring further.

The /matches/:id endpoint returns all data for a single match, extending the fields available from the list endpoint with a full chronological events array. This is the primary source of truth for match scorecards and live event feeds. Authentication is optional. When a valid JWT is provided, the userVote field reflects the authenticated user’s vote for that match. Response is cached in Redis per match and per user. The cache is invalidated whenever the match is modified.

Request

Method: GET
Path: /matches/:id

Path parameters

id
number
required
Unique identifier of the match to retrieve.

Headers

Authorization
string
Optional. Bearer <token> — include to receive the userVote field populated for the authenticated user.

Response

200 OK

A single match object. All fields from the list endpoint are present, plus the events array below.
id
number
Unique match identifier.
date
string
Match date and time in ISO 8601 format.
homeTeam
object | null
awayTeam
object | null
homeTeamPlaceholder
string | null
Label for an unresolved home team slot.
awayTeamPlaceholder
string | null
Label for an unresolved away team slot.
homeGoals
number | null
Goals scored by the home team.
awayGoals
number | null
Goals scored by the away team.
homePenaltyGoals
number | null
Home team penalty shootout goals.
awayPenaltyGoals
number | null
Away team penalty shootout goals.
field
object
status
string
"pendiente", "en_curso", or "finalizado".
phase
string
Competition phase.
groupName
string | null
Group name, or null for knockout stages.
observations
string | null
Referee notes.
userVote
string | null
Authenticated user’s vote, or null.
votingStats
object
events
object[]
Ordered list of in-match events, from first to last recorded.

Errors

StatusCondition
404 Not FoundNo match exists for the given id.
500 Internal Server ErrorDatabase or cache error.

Example

curl --request GET \
  --url https://api.futsalmanager.example/matches/17
200 response
{
  "id": 17,
  "date": "2026-05-15T19:00:00",
  "homeTeam": { "id": 4, "name": "Atlético Norte", "logoUrl": "https://..." },
  "awayTeam": { "id": 7, "name": "Real Sur FC", "logoUrl": "https://..." },
  "homeTeamPlaceholder": null,
  "awayTeamPlaceholder": null,
  "homeGoals": 3,
  "awayGoals": 2,
  "homePenaltyGoals": null,
  "awayPenaltyGoals": null,
  "field": { "id": 2, "name": "Pabellón Municipal", "location": "Calle Mayor 1" },
  "status": "finalizado",
  "phase": "fase_de_grupos",
  "groupName": "Grupo A",
  "observations": "Match completed without incidents.",
  "userVote": "local",
  "votingStats": { "local": 12, "draw": 4, "away": 8, "total": 24 },
  "events": [
    {
      "id": 101,
      "type": "goal",
      "player": { "id": 9, "name": "Carlos Ruiz" },
      "team": "home"
    },
    {
      "id": 102,
      "type": "yellow_card",
      "player": { "id": 15, "name": "Luis Gómez" },
      "team": "away"
    }
  ]
}

Build docs developers (and LLMs) love