openapi: 3.0.0
info:
  title: API Documentation
  version: 2.0.7
servers:
  - url: https://api.goalise.com/api/v2
    description: Goalise API Server
paths:
  /countries:
    get:
      tags:
        - Countries
      summary: Get countries
      description: Returns a list of countries
      operationId: getCountries
      parameters:
        - name: has_leagues
          in: query
          description: Filter by countries which has available leagues
          required: false
          schema:
            type: boolean
            example: true
      responses:
        '200':
          description: Successful response with a list of available countries
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ApiResponse'
                  - properties:
                      response:
                        type: array
                        items:
                          $ref: '#/components/schemas/Country'
                    type: object
        '400':
          description: Validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorApiResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorApiResponse'
      security:
        - bearerAuth: []
  /league:
    get:
      tags:
        - Leagues
      summary: Get league
      operationId: getLeague
      parameters:
        - name: id
          in: query
          description: The unique identifier of the league
          required: true
          schema:
            type: integer
            example: 618
      responses:
        '200':
          description: Successful response with a league object
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ApiSingleResponse'
                  - properties:
                      response:
                        $ref: '#/components/schemas/League'
                    type: object
        '400':
          description: Validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorApiResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorApiResponse'
      security:
        - bearerAuth: []
  /leagues:
    get:
      tags:
        - Leagues
      summary: Get leagues
      operationId: getLeagues
      parameters:
        - name: country_id
          in: query
          description: Filter leagues by Country ID
          required: false
          schema:
            type: integer
            example: 20
        - name: page
          in: query
          description: Page number
          required: false
          schema:
            type: integer
            example: 1
      responses:
        '200':
          description: Successful response with a list of leagues
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ApiResponse'
                  - properties:
                      response:
                        type: array
                        items:
                          $ref: '#/components/schemas/League'
                      pagination:
                        $ref: '#/components/schemas/Pagination'
                    type: object
        '400':
          description: Validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorApiResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorApiResponse'
      security:
        - bearerAuth: []
  /league-seasons:
    get:
      tags:
        - Leagues
      summary: Get league seasons
      description: Returns a list of seasons for a specific league based on the league ID
      operationId: getLeagueSeasons
      parameters:
        - name: id
          in: query
          description: The unique identifier of the league
          required: true
          schema:
            type: integer
            example: 618
      responses:
        '200':
          description: List of seasons for the league
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ApiResponse'
                  - properties:
                      response:
                        type: array
                        items:
                          type: integer
                          example: 2025
                    type: object
        '400':
          description: Validation error response
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ErrorApiResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorApiResponse'
      security:
        - bearerAuth: []
  /league-rounds:
    get:
      tags:
        - Leagues
      summary: Get league rounds
      description: Returns a list of rounds for a specific league and season
      operationId: getLeagueRounds
      parameters:
        - name: league_id
          in: query
          description: League ID
          required: false
          schema:
            type: integer
            example: 618
        - name: season
          in: query
          description: Season
          required: false
          schema:
            type: integer
            example: 2024
      responses:
        '200':
          description: List of rounds for the league and season
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ApiResponse'
                  - properties:
                      response:
                        type: array
                        items:
                          type: string
                          example: Regular Season - 1
                    type: object
        '400':
          description: Validation error response
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ErrorApiResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorApiResponse'
      security:
        - bearerAuth: []
  /league-standing:
    get:
      tags:
        - Leagues
      summary: Get league standings
      description: >-
        Returns grouped league standings for a given league. If no season is
        provided, current season will be used.
      operationId: getLeagueStanding
      parameters:
        - name: id
          in: query
          description: League ID
          required: true
          schema:
            type: integer
            example: 618
        - name: season
          in: query
          description: Season year (optional, defaults to current)
          required: false
          schema:
            type: integer
            example: 2024
      responses:
        '200':
          description: Grouped standings for the given league and season
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ApiMultipleResponse'
                  - properties:
                      response:
                        $ref: '#/components/schemas/StandingList'
                    type: object
        '400':
          description: Validation error response
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ErrorApiResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorApiResponse'
      security:
        - bearerAuth: []
  /match:
    get:
      tags:
        - Matches
      summary: Get match
      description: Returns full information for a single match by its ID.
      operationId: getMatchById
      parameters:
        - name: id
          in: query
          description: Match ID
          required: true
          schema:
            type: integer
            example: 372452
      responses:
        '200':
          description: Detailed match data
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ApiSingleResponse'
                  - properties:
                      response:
                        $ref: '#/components/schemas/Match'
                    type: object
        '400':
          description: Validation error response
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ErrorApiResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorApiResponse'
      security:
        - bearerAuth: []
  /matches:
    get:
      tags:
        - Matches
      summary: Get matches
      description: Returns a paginated list of matches based on filters
      operationId: getMatches
      parameters:
        - name: league_id
          in: query
          description: ID of the league
          required: false
          schema:
            type: integer
            example: 618
        - name: season
          in: query
          description: Season
          required: false
          schema:
            type: integer
            example: 2024
        - name: team_id
          in: query
          description: ID of the team
          required: false
          schema:
            type: integer
        - name: date
          in: query
          description: Exact match date (YYYY-MM-DD)
          required: false
          schema:
            type: string
            maxLength: 10
        - name: date_from
          in: query
          description: Start date for match range (YYYY-MM-DD)
          required: false
          schema:
            type: string
            maxLength: 10
        - name: date_to
          in: query
          description: End date for match range (YYYY-MM-DD)
          required: false
          schema:
            type: string
            maxLength: 10
        - name: live
          in: query
          description: >-
            Filter by live matches, all or several leagues ids: example of
            values ('all', '1-2-3')
          required: false
          schema:
            type: string
        - name: status
          in: query
          description: |-
            Short match status code. Possible values:
                 *   - `TBD`: Scheduled but date and time are not known
                 *   - `NS`: Match is scheduled and has not started
                 *   - `1H`: First half is in progress
                 *   - `HT`: Match is at halftime
                 *   - `2H`: Second half is in progress
                 *   - `ET`: Extra time is being played
                 *   - `BT`: Break during extra time
                 *   - `P`: Penalty shootout is in progress
                 *   - `SUSP`: Suspended by referee’s decision, may be rescheduled
                 *   - `INT`: Match interrupted temporarily, should resume shortly
                 *   - `FT`: Match finished in regular time
                 *   - `AET`: Match finished after extra time
                 *   - `PEN`: Match finished after penalties
                 *   - `PST`: Postponed to a later date
                 *   - `CANC`: Cancelled and will not be played
                 *   - `ABD`: Abandoned before completion (e.g., weather, safety)
                 *   - `AWD`: Technical loss awarded (not played)
                 *   - `WO`: WalkOver — opponent forfeited
                 *   - `LIVE`: In progress but detailed timing not available
          required: false
          schema:
            type: string
            enum:
              - TBD
              - NS
              - 1H
              - HT
              - 2H
              - ET
              - BT
              - P
              - SUSP
              - INT
              - FT
              - AET
              - PEN
              - PST
              - CANC
              - ABD
              - AWD
              - WO
              - LIVE
            example: FT
          example: FT
        - name: id_list
          in: query
          description: Comma-separated list of match IDs
          required: false
          schema:
            type: string
        - name: page
          in: query
          description: Page number
          required: false
          schema:
            type: integer
            example: 1
      responses:
        '200':
          description: Paginated response with Match items
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ApiResponse'
                  - properties:
                      pagination:
                        $ref: '#/components/schemas/Pagination'
                      response:
                        type: array
                        items:
                          $ref: '#/components/schemas/Match'
                    type: object
        '400':
          description: Validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorApiResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorApiResponse'
      security:
        - bearerAuth: []
  /match-events:
    get:
      tags:
        - Matches
      summary: Get match events
      description: >-
        Returns a list of events (goals, cards, substitutions, etc.) for a given
        match.
      operationId: getMatchEvents
      parameters:
        - name: id
          in: query
          description: Match ID
          required: true
          schema:
            type: integer
            example: 372452
      responses:
        '200':
          description: List of match events
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ApiResponse'
                  - properties:
                      response:
                        type: array
                        items:
                          $ref: '#/components/schemas/MatchEvent'
                    type: object
        '400':
          description: Validation error response
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ErrorApiResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorApiResponse'
      security:
        - bearerAuth: []
  /match-statistics:
    get:
      tags:
        - Matches
      summary: Get match statistics
      description: >-
        Returns match statistics (shots, possession, fouls, etc.) for a given
        match.
      operationId: getMatchStatistics
      parameters:
        - name: id
          in: query
          description: Match ID
          required: true
          schema:
            type: integer
            example: 372452
      responses:
        '200':
          description: List of match statistics
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ApiSingleResponse'
                  - properties:
                      response:
                        $ref: '#/components/schemas/MatchStatistics'
                    type: object
        '400':
          description: Validation error response
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ErrorApiResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorApiResponse'
      security:
        - bearerAuth: []
  /match-lineup:
    get:
      tags:
        - Matches
      summary: Get match lineup
      description: >-
        Returns the full lineup for both teams in a given match, including
        starters, substitutes, and coaches.
      operationId: getMatchLineup
      parameters:
        - name: id
          in: query
          description: Match ID
          required: true
          schema:
            type: integer
            example: 372452
      responses:
        '200':
          description: Lineup data for the match
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ApiResponse'
                  - properties:
                      response:
                        description: Lineup for both teams
                        type: array
                        items:
                          $ref: '#/components/schemas/LineUp'
                    type: object
        '400':
          description: Validation error response
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ErrorApiResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorApiResponse'
      security:
        - bearerAuth: []
  /head-to-head:
    get:
      tags:
        - Matches
      summary: Get head-to-head
      description: >-
        Returns a list of past matches between two teams, optionally filtered by
        league and season.
      operationId: getHeadToHeadMatches
      parameters:
        - name: team_id1
          in: query
          description: First team ID
          required: true
          schema:
            type: integer
            example: 60
        - name: team_id2
          in: query
          description: Second team ID
          required: true
          schema:
            type: integer
            example: 69
        - name: league_id
          in: query
          description: Optional league ID filter
          required: false
          schema:
            type: integer
            example: 618
        - name: season
          in: query
          description: Optional season filter
          required: false
          schema:
            type: integer
      responses:
        '200':
          description: List of head-to-head matches
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ApiResponse'
                  - properties:
                      response:
                        type: array
                        items:
                          $ref: '#/components/schemas/Match'
                    type: object
        '400':
          description: Validation error response
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ErrorApiResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorApiResponse'
      security:
        - bearerAuth: []
  /team:
    get:
      tags:
        - Teams
      summary: Get team
      description: Returns a single team by its ID
      operationId: getTeamById
      parameters:
        - name: id
          in: query
          description: ID of the team to retrieve
          required: true
          schema:
            type: integer
            example: 60
      responses:
        '200':
          description: Team object returned successfully
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ApiSingleResponse'
                  - properties:
                      response:
                        $ref: '#/components/schemas/Team'
                    type: object
        '400':
          description: Validation error
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ErrorApiResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorApiResponse'
      security:
        - bearerAuth: []
  /teams-by-league:
    get:
      tags:
        - Teams
      summary: Get teams by league
      description: Returns a list of teams for the specified league ID
      operationId: getTeamsByLeague
      parameters:
        - name: league_id
          in: query
          description: The ID of the league
          required: true
          schema:
            type: integer
            example: 621
        - name: season
          in: query
          description: Season
          required: true
          schema:
            type: integer
            example: 2024
      responses:
        '200':
          description: Successful response with a list of teams
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ApiResponse'
                  - properties:
                      response:
                        type: array
                        items:
                          $ref: '#/components/schemas/Team'
                    type: object
        '400':
          description: Validation error
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ErrorApiResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorApiResponse'
      security:
        - bearerAuth: []
  /team-statistics:
    get:
      tags:
        - Teams
      summary: Get team statistics
      description: Returns detailed team statistics for the specified league and season
      operationId: getTeamStatistics
      parameters:
        - name: league_id
          in: query
          description: League ID
          required: true
          schema:
            type: integer
            example: 621
        - name: team_id
          in: query
          description: Team ID
          required: true
          schema:
            type: integer
            example: 60
        - name: season
          in: query
          description: Season year
          required: true
          schema:
            type: integer
            example: 2024
      responses:
        '200':
          description: Successful team statistics response
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ApiSingleResponse'
                  - properties:
                      response:
                        $ref: '#/components/schemas/LeagueTeamStatistics'
                    type: object
        '400':
          description: Validation error response
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ErrorApiResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorApiResponse'
      security:
        - bearerAuth: []
  /player:
    get:
      tags:
        - Players
      summary: Get player
      description: Returns detailed information about a specific player
      operationId: getPlayer
      parameters:
        - name: id
          in: query
          description: ID of the player
          required: true
          schema:
            type: integer
            example: 8
      responses:
        '200':
          description: Player details response
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ApiSingleResponse'
                  - properties:
                      response:
                        $ref: '#/components/schemas/Player'
                    type: object
        '400':
          description: Validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorApiResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorApiResponse'
      security:
        - bearerAuth: []
  /team-players:
    get:
      tags:
        - Players
      summary: Get team players
      description: Returns a list of players associated with a specific team
      operationId: getTeamPlayers
      parameters:
        - name: id
          in: query
          description: ID of the team
          required: true
          schema:
            type: integer
            example: 69
      responses:
        '200':
          description: List of players for the given team
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ApiResponse'
                  - properties:
                      response:
                        type: array
                        items:
                          $ref: '#/components/schemas/Player'
                    type: object
        '400':
          description: Validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorApiResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorApiResponse'
      security:
        - bearerAuth: []
  /teams-by-player:
    get:
      tags:
        - Players
      summary: Get player teams
      description: Returns a list of teams a player is part of
      operationId: getTeamsByPlayer
      parameters:
        - name: id
          in: query
          description: ID of the player
          required: true
          schema:
            type: integer
            example: 8
      responses:
        '200':
          description: List of teams a player is part of
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ApiResponse'
                  - properties:
                      response:
                        type: array
                        items:
                          $ref: '#/components/schemas/Team'
                    type: object
        '400':
          description: Validation error response
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ErrorApiResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorApiResponse'
      security:
        - bearerAuth: []
  /player-statistics:
    get:
      tags:
        - Players
      summary: Get player league statistics
      description: >-
        Returns a paginated list of player statistics in a league for a given
        season and team
      operationId: playerStatistics
      parameters:
        - name: league_id
          in: query
          description: ID of the league
          required: true
          schema:
            type: integer
            example: 621
        - name: player_id
          in: query
          description: Filter by ID of the player
          required: false
          schema:
            type: integer
        - name: team_id
          in: query
          description: ID of the team
          required: true
          schema:
            type: integer
            example: 69
        - name: season
          in: query
          description: Season year
          required: true
          schema:
            type: integer
            example: 2024
      responses:
        '200':
          description: Paginated response with PlayerLeagueStatisticsDetails items
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ApiResponse'
                  - properties:
                      response:
                        type: array
                        items:
                          $ref: '#/components/schemas/PlayerLeagueStatistics'
                    type: object
        '400':
          description: Validation error response
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ErrorApiResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorApiResponse'
      security:
        - bearerAuth: []
  /player-match-statistics:
    get:
      tags:
        - Players
      summary: Get player match statistics
      description: Returns detailed statistics for a player in a given match
      operationId: getPlayerMatchStatistics
      parameters:
        - name: match_id
          in: query
          description: Match ID
          required: true
          schema:
            type: integer
            example: 367878
        - name: player_id
          in: query
          description: Player ID
          required: true
          schema:
            type: integer
            example: 7939
      responses:
        '200':
          description: Player match statistics
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ApiSingleResponse'
                  - properties:
                      response:
                        $ref: '#/components/schemas/PlayerMatchStatistics'
                    type: object
        '400':
          description: Validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorApiResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorApiResponse'
      security:
        - bearerAuth: []
  /team-transfers:
    get:
      tags:
        - Transfers
      summary: Get team transfers
      description: Returns a paginated list of transfers by team
      operationId: teamTransfers
      parameters:
        - name: id
          in: query
          description: Filter transfers by team ID
          required: true
          schema:
            type: integer
            example: 69
        - name: page
          in: query
          description: Page number
          required: false
          schema:
            type: integer
            example: 1
      responses:
        '200':
          description: Paginated response with transfer items
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ApiResponse'
                  - properties:
                      pagination:
                        $ref: '#/components/schemas/Pagination'
                      response:
                        type: array
                        items:
                          $ref: '#/components/schemas/Transfer'
                    type: object
        '400':
          description: Validation error response
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ErrorApiResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorApiResponse'
      security:
        - bearerAuth: []
  /player-transfers:
    get:
      tags:
        - Transfers
      summary: Get player transfers
      description: Returns a paginated list of transfers for a player
      operationId: playerTransfers
      parameters:
        - name: id
          in: query
          description: Filter transfers by player ID
          required: true
          schema:
            type: integer
            example: 8
        - name: page
          in: query
          description: Page number
          required: false
          schema:
            type: integer
            example: 1
      responses:
        '200':
          description: Paginated response with transfer items
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ApiResponse'
                  - properties:
                      pagination:
                        $ref: '#/components/schemas/Pagination'
                      response:
                        type: array
                        items:
                          $ref: '#/components/schemas/Transfer'
                    type: object
        '400':
          description: Validation error response
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ErrorApiResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorApiResponse'
      security:
        - bearerAuth: []
  /top-scorers:
    get:
      tags:
        - Players
      summary: Get top scorers
      description: Returns a list of top scoring players for a given league and season
      operationId: getTopScorers
      parameters:
        - name: league_id
          in: query
          description: League ID
          required: true
          schema:
            type: integer
            example: 621
        - name: season
          in: query
          description: Season
          required: true
          schema:
            type: integer
            example: 2024
      responses:
        '200':
          description: List of top scorers
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ApiResponse'
                  - properties:
                      response:
                        type: array
                        items:
                          $ref: '#/components/schemas/TopScorer'
                    type: object
        '400':
          description: Validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorApiResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorApiResponse'
      security:
        - bearerAuth: []
  /top-assists:
    get:
      tags:
        - Players
      summary: Get top assists
      description: Returns a list of top assisting players for a given league and season
      operationId: getTopAssists
      parameters:
        - name: league_id
          in: query
          description: League ID
          required: true
          schema:
            type: integer
            example: 621
        - name: season
          in: query
          description: Season year
          required: true
          schema:
            type: integer
            example: 2024
      responses:
        '200':
          description: List of top assists
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ApiResponse'
                  - properties:
                      response:
                        type: array
                        items:
                          $ref: '#/components/schemas/TopAssist'
                    type: object
        '400':
          description: Validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorApiResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorApiResponse'
      security:
        - bearerAuth: []
  /top-red-cards:
    get:
      tags:
        - Players
      summary: Get top red cards
      description: >-
        Returns a list of players who received the most red cards in a given
        league and season
      operationId: getTopRedCards
      parameters:
        - name: league_id
          in: query
          description: League ID
          required: true
          schema:
            type: integer
            example: 621
        - name: season
          in: query
          description: Season year
          required: true
          schema:
            type: integer
            example: 2024
      responses:
        '200':
          description: List of players with the most red cards
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ApiResponse'
                  - properties:
                      response:
                        type: array
                        items:
                          $ref: '#/components/schemas/TopCard'
                    type: object
        '400':
          description: Validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorApiResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorApiResponse'
      security:
        - bearerAuth: []
  /top-yellow-cards:
    get:
      tags:
        - Players
      summary: Get top yellow cards
      description: >-
        Returns a list of players who received the most yellow cards in a given
        league and season
      operationId: getTopYellowCards
      parameters:
        - name: league_id
          in: query
          description: League ID
          required: true
          schema:
            type: integer
            example: 621
        - name: season
          in: query
          description: Season year
          required: true
          schema:
            type: integer
            example: 2024
      responses:
        '200':
          description: List of players with the most yellow cards
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ApiResponse'
                  - properties:
                      response:
                        type: array
                        items:
                          $ref: '#/components/schemas/TopCard'
                    type: object
        '400':
          description: Validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorApiResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorApiResponse'
      security:
        - bearerAuth: []
  /venues:
    get:
      tags:
        - Venues
      summary: Get venues
      description: Returns a paginated list of venues
      operationId: getVenues
      parameters:
        - name: id
          in: query
          description: Filter by venue ID (at least one of country_id or id is required)
          required: false
          schema:
            type: integer
        - name: country_id
          in: query
          description: Filter by country ID (at least one of country_id or id is required)
          required: false
          schema:
            type: integer
            example: 20
        - name: page
          in: query
          description: Page number
          required: false
          schema:
            type: integer
            example: 1
      responses:
        '200':
          description: List of venues
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ApiResponse'
                  - properties:
                      pagination:
                        $ref: '#/components/schemas/Pagination'
                      response:
                        type: array
                        items:
                          $ref: '#/components/schemas/Venue'
                    type: object
        '400':
          description: Validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorApiResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorApiResponse'
      security:
        - bearerAuth: []
  /predictions:
    get:
      tags:
        - Predictions
      summary: Get predictions
      description: Returns a predictions for a match
      operationId: getPredictions
      parameters:
        - name: id
          in: query
          description: ID of the match to get predictions for
          required: true
          schema:
            type: integer
            example: 372452
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ApiSingleResponse'
                  - properties:
                      response:
                        $ref: '#/components/schemas/Prediction'
                    type: object
        '400':
          description: Validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorApiResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorApiResponse'
      security:
        - bearerAuth: []
  /news-categories:
    get:
      tags:
        - News
      summary: Get news categories
      operationId: getNewsCategories
      responses:
        '200':
          description: List of news categories
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ApiResponse'
                  - properties:
                      response:
                        type: array
                        items:
                          $ref: '#/components/schemas/NewsCategory'
                    type: object
        '400':
          description: Validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorApiResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorApiResponse'
      security:
        - bearerAuth: []
  /news-by-category:
    get:
      tags:
        - News
      summary: Get news by category
      description: Returns a paginated list of news by category id
      operationId: getNewsByCategory
      parameters:
        - name: id
          in: query
          description: Filter by category ID
          required: true
          schema:
            type: integer
            example: 3
        - name: page
          in: query
          description: Page number
          required: false
          schema:
            type: integer
            example: 1
      responses:
        '200':
          description: List of news
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ApiResponse'
                  - properties:
                      pagination:
                        $ref: '#/components/schemas/Pagination'
                      response:
                        type: array
                        items:
                          $ref: '#/components/schemas/News'
                    type: object
        '400':
          description: Validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorApiResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorApiResponse'
      security:
        - bearerAuth: []
  /news-by-league:
    get:
      tags:
        - News
      summary: Get news by league
      description: Returns a paginated list of news by league id
      operationId: getNewsByLeague
      parameters:
        - name: id
          in: query
          description: Filter by league ID
          required: true
          schema:
            type: integer
            example: 618
        - name: page
          in: query
          description: Page number
          required: false
          schema:
            type: integer
            example: 1
      responses:
        '200':
          description: List of news
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ApiResponse'
                  - properties:
                      pagination:
                        $ref: '#/components/schemas/Pagination'
                      response:
                        type: array
                        items:
                          $ref: '#/components/schemas/News'
                    type: object
        '400':
          description: Validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorApiResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorApiResponse'
      security:
        - bearerAuth: []
  /news-by-team:
    get:
      tags:
        - News
      summary: Get news by team
      description: Returns a paginated list of news by team id
      operationId: getNewsByTeam
      parameters:
        - name: id
          in: query
          description: Filter by team ID
          required: true
          schema:
            type: integer
            example: 69
        - name: page
          in: query
          description: Page number
          required: false
          schema:
            type: integer
            example: 1
      responses:
        '200':
          description: List of news
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ApiResponse'
                  - properties:
                      pagination:
                        $ref: '#/components/schemas/Pagination'
                      response:
                        type: array
                        items:
                          $ref: '#/components/schemas/News'
                    type: object
        '400':
          description: Validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorApiResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorApiResponse'
      security:
        - bearerAuth: []
  /news-by-date:
    get:
      tags:
        - News
      summary: Get news by date
      description: Returns a paginated list of news by date
      operationId: getNewsByDate
      parameters:
        - name: date
          in: query
          description: 'Date (format: Y-m-d)'
          required: true
          schema:
            type: string
            example: '2025-03-01'
        - name: page
          in: query
          description: Page number
          required: false
          schema:
            type: integer
            example: 1
      responses:
        '200':
          description: List of news
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ApiResponse'
                  - properties:
                      pagination:
                        $ref: '#/components/schemas/Pagination'
                      response:
                        type: array
                        items:
                          $ref: '#/components/schemas/News'
                    type: object
        '400':
          description: Validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorApiResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorApiResponse'
      security:
        - bearerAuth: []
  /news-content:
    get:
      tags:
        - News
      summary: Get news html content
      description: Returns news html content by id
      operationId: getNewsContent
      parameters:
        - name: id
          in: query
          description: News id
          required: true
          schema:
            type: integer
            example: '275071'
      responses:
        '200':
          description: News html content response
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ApiSingleResponse'
                  - properties:
                      response:
                        $ref: '#/components/schemas/NewsContent'
                    type: object
        '400':
          description: Validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorApiResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorApiResponse'
      security:
        - bearerAuth: []
  /bookmakers:
    get:
      tags:
        - Odds
      summary: Get bookmakers
      description: Returns a list of available bookmakers
      operationId: getBookmakers
      responses:
        '200':
          description: List of bookmakers
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ApiResponse'
                  - properties:
                      response:
                        type: array
                        items:
                          $ref: '#/components/schemas/Bookmaker'
                    type: object
        '400':
          description: Validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorApiResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorApiResponse'
      security:
        - bearerAuth: []
  /bets:
    get:
      tags:
        - Odds
      summary: Get bets
      description: Returns a list of available bets for matches
      operationId: getBets
      responses:
        '200':
          description: List of available bets
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ApiResponse'
                  - properties:
                      response:
                        type: array
                        items:
                          $ref: '#/components/schemas/Bet'
                    type: object
        '400':
          description: Validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorApiResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorApiResponse'
      security:
        - bearerAuth: []
  /live-bets:
    get:
      tags:
        - Odds
      summary: Get live bets
      description: Returns a list of available live-bets for matches
      operationId: getLiveBets
      responses:
        '200':
          description: List of available live-bets
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ApiResponse'
                  - properties:
                      response:
                        type: array
                        items:
                          $ref: '#/components/schemas/LiveBet'
                    type: object
        '400':
          description: Validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorApiResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorApiResponse'
      security:
        - bearerAuth: []
  /odds:
    get:
      tags:
        - Odds
      summary: Get pre-match odds
      description: Returns odds information for matches
      operationId: getMatchOdds
      parameters:
        - name: id
          in: query
          description: Match ID
          required: false
          schema:
            type: integer
        - name: league_id
          in: query
          description: League ID
          required: false
          schema:
            type: integer
        - name: date
          in: query
          description: Date (Y-m-d)
          required: false
          schema:
            type: string
            example: '2025-06-18'
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ApiResponse'
                  - properties:
                      response:
                        type: array
                        items:
                          $ref: '#/components/schemas/MatchOddsMap'
                    type: object
        '400':
          description: Validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorApiResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorApiResponse'
      security:
        - bearerAuth: []
  /live-odds:
    get:
      tags:
        - Odds
      summary: Get live odds
      description: Returns live odds information for live matches
      operationId: getLiveMatchOdds
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ApiResponse'
                  - properties:
                      response:
                        type: array
                        items:
                          $ref: '#/components/schemas/MatchLiveOddMap'
                    type: object
        '400':
          description: Validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorApiResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorApiResponse'
      security:
        - bearerAuth: []
components:
  schemas:
    MatchOddsMap:
      description: Contains odds information for a specific match
      required:
        - match_id
        - bookmakers
      properties:
        match_id:
          description: Unique identifier of the match
          type: integer
        bookmakers:
          description: List of bookmakers providing odds for this match
          type: array
          items:
            $ref: '#/components/schemas/BookmakerMap'
      type: object
    BookmakerMap:
      description: Information about a bookmaker and their betting offers
      required:
        - id
        - name
        - bets
      properties:
        id:
          description: Unique identifier of the bookmaker
          type: integer
        name:
          description: Name of the bookmaker
          type: string
        bets:
          description: List of available bets from this bookmaker
          type: array
          items:
            $ref: '#/components/schemas/BetMap'
      type: object
    BetMap:
      description: Details of a specific bet type
      required:
        - id
        - name
        - values
      properties:
        id:
          description: Unique identifier of the bet type
          type: integer
        name:
          description: Name or description of the bet type
          type: string
        values:
          description: List of odds values for this bet type
          type: array
          items:
            $ref: '#/components/schemas/Odds'
      type: object
    Odds:
      description: Individual odd value and its descriptor
      required:
        - value
        - odd
      properties:
        value:
          description: Description of the betting option (e.g. 'Home Win', 'Draw')
          type: string
        odd:
          description: Numerical value of the odd
          type: string
      type: object
    LiveBetMap:
      description: Details of a live bet type
      required:
        - id
        - name
        - values
      properties:
        id:
          description: Unique identifier of the bet type
          type: integer
        name:
          description: Name or description of the bet type
          type: string
        values:
          description: List of odds values for this bet type
          type: array
          items:
            $ref: '#/components/schemas/Odds'
      type: object
    MatchLiveOddMap:
      description: Contains live odds information for a specific match
      required:
        - match_id
        - bets
      properties:
        match_id:
          description: Unique identifier of the match
          type: integer
        bets:
          description: List of available live bets for this match
          type: array
          items:
            $ref: '#/components/schemas/LiveBetMap'
      type: object
    Country:
      description: Country object with details
      properties:
        id:
          description: The unique identifier for the country
          type: integer
          example: 1
        name:
          description: The name of the country
          type: string
          example: Italy
        code:
          description: >-
            The country ISO 3166-1 alpha-2 code, for regions the format will be
            custom
          type: string
          example: IT
          nullable: true
        type:
          description: Type of location, possible values (country, region)
          type: string
          example: country
        continent:
          description: Continent name
          type: string
          example: Europe
          nullable: true
        flag:
          description: The URL to the country's flag image
          type: string
          example: https://api.goalise.com/logos/countries/IT.svg
          nullable: true
        available_leagues:
          description: Number of available leagues from country
          type: integer
          example: '4'
      type: object
    League:
      description: Represents a football league with relevant information.
      properties:
        id:
          description: Unique identifier of the league.
          type: integer
          example: 1
        name:
          description: Name of the league.
          type: string
          example: Premier League
        type:
          description: Type of the competition (e.g., league, cup).
          type: string
          example: league
        current_season:
          description: Year of the current season.
          type: string
          example: '2025'
        current_round:
          description: Current round or stage of the competition.
          type: string
          example: Round 1
        country:
          $ref: '#/components/schemas/Country'
        coverage:
          $ref: '#/components/schemas/LeagueCoverage'
      type: object
    LeagueCoverage:
      description: Indicates which data features are covered for a given league.
      properties:
        standings:
          description: Indicates if league standings are available.
          type: boolean
          example: true
        fixture_events:
          description: >-
            Indicates if fixture events (goals, cards, substitutions) are
            covered.
          type: boolean
          example: true
        fixture_lineup:
          description: Indicates if fixture starting lineups and formations are provided.
          type: boolean
          example: true
        fixture_statistics:
          description: Indicates if team statistics for each fixture are available.
          type: boolean
          example: true
        fixture_player_statistics:
          description: Indicates if detailed player statistics for fixtures are available.
          type: boolean
          example: true
        players:
          description: Indicates if player profiles and data are included.
          type: boolean
          example: true
        top_scorers:
          description: Indicates if top goal scorers are tracked for the league.
          type: boolean
          example: true
        top_assists:
          description: Indicates if top assist providers are tracked for the league.
          type: boolean
          example: true
        top_cards:
          description: Indicates if players with the most cards (yellow/red) are tracked.
          type: boolean
          example: true
        news:
          description: Indicates if league-related news is provided.
          type: boolean
          example: false
      type: object
    MatchEvent:
      title: Match Event
      description: Schema for a fixture event entry
      properties:
        type:
          description: The type of event (e.g., Goal, Card, Substitution)
          type: string
          example: Goal
        team_id:
          description: ID of the team associated with the event
          type: integer
          example: 12
        team_name:
          description: Name of the team associated with the event
          type: string
          example: Manchester United
        assist:
          description: Name of the player who assisted the goal, if applicable
          type: string
          example: Bruno Fernandes
          nullable: true
        player_name:
          description: Name of the player directly involved in the event
          type: string
          example: Marcus Rashford
          nullable: true
        player_id:
          description: Unique id of the player directly involved in the event
          type: integer
          example: 139345
          nullable: true
        assist_player_id:
          description: ID of the player who assisted the goal, if applicable
          type: integer
          example: 128233
          nullable: true
        detail:
          description: >-
            Detailed type of the event (e.g., Normal Goal, Own Goal, Penalty
            Missed)
          type: string
          example: Normal Goal
          nullable: true
        elapsed_plus:
          description: Additional time beyond the regular minute (e.g., 1 for 45+1)
          type: integer
          example: 1
          nullable: true
        elapsed:
          description: Minute of the match when the event occurred
          type: integer
          example: 45
          nullable: true
        comments:
          description: Optional comment describing the event in more detail
          type: string
          example: Scored from outside the box
          nullable: true
      type: object
    MatchEventList:
      description: List of fixture events
      type: array
      items:
        $ref: '#/components/schemas/MatchEvent'
    Match:
      description: Detailed information about a match
      properties:
        id:
          description: Unique ID of the match
          type: integer
          example: 1234
        league_id:
          description: ID of the league
          type: integer
          example: 5
        home_team_id:
          description: ID of the home team
          type: integer
          example: 10
        away_team_id:
          description: ID of the away team
          type: integer
          example: 12
        timestamp:
          description: UNIX timestamp of the match start time
          type: integer
          example: 1713261600
        timezone:
          description: Timezone of the match
          type: string
          example: UTC
        start_date:
          description: Formatted date and time of the match start
          type: string
          example: '2025-04-16 17:00:00'
        referee:
          description: Name of the referee
          type: string
          example: John Doe
          nullable: true
        venue_id:
          description: ID of the venue where the match is played
          type: integer
          example: 3
          nullable: true
        round:
          description: Round of the match
          type: string
          example: Round 5
          nullable: true
        group:
          description: Group of the match (if applicable)
          type: string
          example: Group A
          nullable: true
        season:
          description: Season of the match
          type: integer
          example: 2025
        periods:
          description: Start times for match periods
          properties:
            first:
              description: Start time of the first half (UNIX timestamp)
              type: integer
              example: 1713261600
              nullable: true
            second:
              description: Start time of the second half (UNIX timestamp)
              type: integer
              example: 1713265200
              nullable: true
          type: object
        status:
          description: Match status details
          properties:
            short:
              description: |-
                Short match status code. Possible values:
                     *  - `TBD`: Scheduled but date and time are not known
                     *  - `NS`: Match is scheduled and has not started
                     *  - `1H`: First half is in progress
                     *  - `HT`: Match is at halftime
                     *  - `2H`: Second half is in progress
                     *  - `ET`: Extra time is being played
                     *  - `BT`: Break during extra time
                     *  - `P`: Penalty shootout is in progress
                     *  - `SUSP`: Suspended by referee’s decision, may be rescheduled
                     *  - `INT`: Match interrupted temporarily, should resume shortly
                     *  - `FT`: Match finished in regular time
                     *  - `AET`: Match finished after extra time
                     *  - `PEN`: Match finished after penalties
                     *  - `PST`: Postponed to a later date
                     *  - `CANC`: Cancelled and will not be played
                     *  - `ABD`: Abandoned before completion (e.g., weather, safety)
                     *  - `AWD`: Technical loss awarded (not played)
                     *  - `WO`: WalkOver — opponent forfeited
                     *  - `LIVE`: In progress but detailed timing not available
              type: string
              enum:
                - TBD
                - NS
                - 1H
                - HT
                - 2H
                - ET
                - BT
                - P
                - SUSP
                - INT
                - FT
                - AET
                - PEN
                - PST
                - CANC
                - ABD
                - AWD
                - WO
                - LIVE
              example: FT
            long:
              description: |-
                Full textual label of the match status. Descriptions:
                     *  - `Time To Be Defined`: Match scheduled but exact time unknown
                     *  - `Not Started`: Match has not kicked off yet
                     *  - `First Half`: First 45 minutes are being played
                     *  - `Halftime`: Break between first and second half
                     *  - `Second Half`: Second 45 minutes are being played
                     *  - `Extra Time`: Additional time is being played after regular time
                     *  - `Break Time`: Pause between extra time halves
                     *  - `Penalty In Progress`: Penalty shootout is ongoing
                     *  - `Suspended`: Match stopped by referee and may be rescheduled
                     *  - `Interrupted`: Match temporarily paused, to resume soon
                     *  - `Match Finished`: Ended in regular time
                     *  - `After Extra Time`: Ended after extra time (no penalties)
                     *  - `Penalties`: Ended after penalty shootout
                     *  - `Postponed`: Delayed to another date
                     *  - `Cancelled`: Match will not take place
                     *  - `Abandoned`: Match stopped permanently due to incidents
                     *  - `Technical Loss`: Forfeited due to technical decision
                     *  - `WalkOver`: One team wins by default (no opponent)
                     *  - `In Progress`: Match is ongoing (rare case, exact phase unknown)
              type: string
              example: Match Finished
            elapsed:
              description: Minutes elapsed
              type: integer
              example: 90
              nullable: true
          type: object
        score:
          description: Score details of the match
          properties:
            home:
              description: Home team score
              type: integer
              example: 2
              nullable: true
            away:
              description: Away team score
              type: integer
              example: 1
              nullable: true
            detailed:
              description: Detailed scoring breakdown
              properties:
                half_time:
                  description: Score at half time
                  type: string
                  example: 1-1
                full_time:
                  description: Final score at full time
                  type: string
                  example: 2-1
                extra_time:
                  description: Score during extra time
                  type: string
                  example: ''
                penalty:
                  description: Score during penalty shootout
                  type: string
                  example: ''
              type: object
          type: object
        events:
          oneOf:
            - $ref: '#/components/schemas/MatchEventList'
          nullable: true
          description: List of match events (goals, cards, substitutions, etc.)
          type: object
        statistics:
          oneOf:
            - $ref: '#/components/schemas/MatchStatistics'
          nullable: true
          description: List of team statistics
          type: object
      type: object
    MatchStatistics:
      description: Match statistics broken down by home and away teams
      properties:
        shots_on_goal:
          description: Shots on target by each team
          properties:
            home:
              type: integer
              example: 4
            away:
              type: integer
              example: 6
          type: object
        shots_off_goal:
          description: Shots off target by each team
          properties:
            home:
              type: integer
              example: 8
            away:
              type: integer
              example: 6
          type: object
        total_shots:
          description: Total number of shots by each team
          properties:
            home:
              type: integer
              example: 17
            away:
              type: integer
              example: 16
          type: object
        blocked_shots:
          description: Blocked shots by each team
          properties:
            home:
              type: integer
              example: 5
            away:
              type: integer
              example: 4
          type: object
        shots_inside_box:
          description: Shots taken inside the penalty box
          properties:
            home:
              type: integer
              example: 9
            away:
              type: integer
              example: 12
          type: object
        shots_outside_box:
          description: Shots taken from outside the penalty box
          properties:
            home:
              type: integer
              example: 8
            away:
              type: integer
              example: 4
          type: object
        fouls:
          description: Number of fouls committed
          properties:
            home:
              type: integer
              example: 13
            away:
              type: integer
              example: 10
          type: object
        corner_kicks:
          description: Corner kicks awarded
          properties:
            home:
              type: integer
              example: 5
            away:
              type: integer
              example: 8
          type: object
        offsides:
          description: Offsides committed
          properties:
            home:
              type: integer
              example: 2
            away:
              type: integer
              example: 3
          type: object
        ball_possession:
          description: Ball possession percentage
          properties:
            home:
              type: string
              example: 62%
            away:
              type: string
              example: 38%
          type: object
        yellow_cards:
          description: Number of yellow cards received
          properties:
            home:
              type: integer
              example: 4
            away:
              type: integer
              example: 3
          type: object
        red_cards:
          description: Number of red cards received
          properties:
            home:
              type: integer
              example: 1
            away:
              type: integer
              example: 0
          type: object
        goalkeeper_saves:
          description: Saves made by the goalkeepers
          properties:
            home:
              type: integer
              example: 6
            away:
              type: integer
              example: 4
          type: object
        total_passes:
          description: Total passes completed
          properties:
            home:
              type: integer
              example: 504
            away:
              type: integer
              example: 315
          type: object
        passes_accurate:
          description: Number of accurate passes
          properties:
            home:
              type: integer
              example: 426
            away:
              type: integer
              example: 236
          type: object
        passes_percentage:
          description: Pass accuracy percentage
          properties:
            home:
              type: string
              example: 85%
            away:
              type: string
              example: 75%
          type: object
        expected_goals:
          description: Expected goals (xG) metric
          properties:
            home:
              type: string
              example: '1.5'
              nullable: true
            away:
              type: string
              example: '1.5'
              nullable: true
          type: object
        goals_prevented:
          description: Estimated goals prevented by goalkeepers
          properties:
            home:
              type: number
              example: -1
              nullable: true
            away:
              type: number
              example: -2
              nullable: true
          type: object
      type: object
    LineUp:
      description: Schema representing the line-up information for a team
      properties:
        team_id:
          description: The ID of the team
          type: integer
          example: 33
        coach:
          description: Name of the team's coach
          type: string
          example: Pep Guardiola
        coach_photo:
          description: URL of the coach's photo
          type: string
          example: https://cdn.goalise.com/images/coaches/1.png
          nullable: true
        player_colors:
          description: Jersey colors of the players
          properties:
            border:
              type: string
              example: '232325'
            number:
              type: string
              example: '050505'
            primary:
              type: string
              example: dc2c36
          type: object
        goal_keeper_colors:
          description: Jersey colors of the goal keeper
          properties:
            border:
              type: string
              example: '232325'
            number:
              type: string
              example: '050505'
            primary:
              type: string
              example: dc2c36
          type: object
        formation:
          description: Formation used by the team
          type: string
          example: 4-3-3
        startXI:
          $ref: '#/components/schemas/LineUpPlayerList'
        substitutes:
          $ref: '#/components/schemas/LineUpPlayerList'
      type: object
    PlayerMatchStatistics:
      title: Player Match Statistics
      description: Represents a player's performance statistics in a match
      properties:
        cards:
          description: Player's card statistics (yellow and red cards)
          properties:
            red:
              description: Number of red cards
              type: integer
              example: 0
              nullable: true
            yellow:
              description: Number of yellow cards
              type: integer
              example: 0
              nullable: true
          type: object
        duels:
          description: Player's duel statistics (won and total duels)
          properties:
            won:
              description: Number of duels won
              type: integer
              example: null
              nullable: true
            total:
              description: Total number of duels contested
              type: integer
              example: null
              nullable: true
          type: object
        fouls:
          description: Player's foul statistics (drawn and committed fouls)
          properties:
            drawn:
              description: Number of fouls drawn by the player
              type: integer
              example: null
              nullable: true
            committed:
              description: Number of fouls committed by the player
              type: integer
              example: null
              nullable: true
          type: object
        games:
          description: Player's game statistics
          properties:
            number:
              description: Number of games played
              type: integer
              example: 1
              nullable: true
            rating:
              description: Player's performance rating
              type: string
              example: '7'
              nullable: true
            captain:
              description: Indicates if the player was the captain
              type: boolean
              example: false
            minutes:
              description: Total minutes played in the match
              type: integer
              example: 95
              nullable: true
            position:
              description: Player's position on the field
              type: string
              example: G
              nullable: true
            substitute:
              description: Indicates if the player was substituted
              type: boolean
              example: false
          type: object
        goals:
          description: Player's goal-related statistics
          properties:
            saves:
              description: Number of saves made (for goalkeepers)
              type: integer
              example: 3
              nullable: true
            total:
              description: Total number of goals scored
              type: integer
              example: null
              nullable: true
            assists:
              description: Number of assists made
              type: integer
              example: null
              nullable: true
            conceded:
              description: Number of goals conceded (for goalkeepers)
              type: integer
              example: 0
              nullable: true
          type: object
        shots:
          description: Player's shot statistics
          properties:
            'on':
              description: Number of shots on target
              type: integer
              example: null
              nullable: true
            total:
              description: Total number of shots taken
              type: integer
              example: null
              nullable: true
          type: object
        passes:
          description: Player's pass statistics
          properties:
            key:
              description: Number of key passes
              type: integer
              example: null
              nullable: true
            total:
              description: Total number of passes made
              type: integer
              example: 27
              nullable: true
            accuracy:
              description: Pass accuracy percentage
              type: string
              example: '15'
              nullable: true
          type: object
        penalty:
          description: Player's penalty statistics
          properties:
            won:
              description: Number of penalties won by the player
              type: integer
              example: null
              nullable: true
            saved:
              description: Number of penalties saved (for goalkeepers)
              type: integer
              example: 0
              nullable: true
            missed:
              description: Number of penalties missed
              type: integer
              example: 0
              nullable: true
            scored:
              description: Number of penalties scored
              type: integer
              example: 0
              nullable: true
            commited:
              description: Number of penalties committed by the player
              type: integer
              example: null
              nullable: true
          type: object
        tackles:
          description: Player's tackle statistics
          properties:
            total:
              description: Total number of tackles made
              type: integer
              example: null
              nullable: true
            blocks:
              description: Number of tackles that were blocks
              type: integer
              example: null
              nullable: true
            interceptions:
              description: Number of interceptions made
              type: integer
              example: null
              nullable: true
          type: object
        dribbles:
          description: Player's dribble statistics
          properties:
            past:
              description: Number of dribbles past opponents
              type: integer
              example: null
              nullable: true
            success:
              description: Number of successful dribbles
              type: integer
              example: null
              nullable: true
            attempts:
              description: Number of dribble attempts
              type: integer
              example: null
              nullable: true
          type: object
        offsides:
          description: Number of offsides the player was involved in
          type: integer
          example: null
          nullable: true
      type: object
    LineUpPlayer:
      title: Lineup Player
      description: Represents a player listed in the match lineup
      properties:
        player_id:
          description: The ID of the player from the main player table, if available
          type: integer
          example: 123
          nullable: true
        name:
          description: The full name of the player as listed in the lineup
          type: string
          example: Lionel Messi
        number:
          description: Jersey number of the player
          type: integer
          example: 10
          nullable: true
        position:
          description: Position of the player on the field
          type: string
          example: Forward
          nullable: true
        composition:
          description: Player's role in the lineup (e.g., Starting XI, Substitute)
          type: string
          example: Starting XI
        grid:
          description: Player's position in the grid formation
          type: string
          example: '4:3'
          nullable: true
        photo:
          description: URL to the player's photo
          type: string
          example: https://example.com/images/players/player.png
          nullable: true
        statistics:
          description: Detailed match statistics for the player
          nullable: true
          allOf:
            - $ref: '#/components/schemas/PlayerMatchStatistics'
      type: object
    LineUpPlayerList:
      description: List of LineUpPlayer
      type: array
      items:
        $ref: '#/components/schemas/LineUpPlayer'
    Team:
      description: Detailed information about a football team
      properties:
        id:
          description: Unique identifier for the team
          type: integer
          example: 33
        name:
          description: Name of the team
          type: string
          example: Manchester United
        logo:
          description: URL or path to the team's logo image
          type: string
          example: https://example.com/logos/teams/manutd.png
          nullable: true
        founded:
          description: Year the team was founded
          type: string
          example: '1878'
          nullable: true
        venue:
          oneOf:
            - $ref: '#/components/schemas/Venue'
          nullable: true
          description: Details about the home venue of the team
        country:
          oneOf:
            - $ref: '#/components/schemas/Country'
          nullable: true
          description: Country the team is based in
      type: object
    Standing:
      description: >-
        League table standing for a team, including overall, home, and away
        stats
      properties:
        rank:
          description: Current position of the team in the standings
          type: integer
          example: 1
        league_id:
          description: ID of the league
          type: integer
          example: 12
        season:
          description: Season year
          type: integer
          example: 2024
        group:
          description: Group name
          type: string
          example: Group A
        team_id:
          description: ID of the team
          type: integer
          example: 305
        form:
          description: Recent form of the team, represented by W/D/L
          type: string
          example: WDLWW
        status:
          description: Current status in the league (e.g., promoted, relegated)
          type: string
          example: same
        description:
          description: Extra description about the team’s standing
          type: string
          example: Champions League
          nullable: true
        goals_diff:
          description: Goal difference (goals for - goals against)
          type: integer
          example: 25
        points:
          description: Total points earned
          type: integer
          example: 65
        all:
          $ref: '#/components/schemas/StandingInfo'
        home:
          $ref: '#/components/schemas/StandingInfo'
        away:
          $ref: '#/components/schemas/StandingInfo'
        last_update:
          description: Last time the data was updated
          type: string
          example: '2025-03-29 18:45:00'
      type: object
    StandingInfo:
      description: Basic standing statistics for a team in the league
      properties:
        matches_played:
          description: Total number of matches played
          type: integer
          example: 30
        win:
          description: Number of matches won
          type: integer
          example: 18
        draw:
          description: Number of matches drawn
          type: integer
          example: 6
        lose:
          description: Number of matches lost
          type: integer
          example: 6
        goals_for:
          description: Goals scored by the team
          type: integer
          example: 55
        goals_against:
          description: Goals conceded by the team
          type: integer
          example: 30
      type: object
    Player:
      description: Detailed information about a football player
      properties:
        id:
          description: Unique identifier of the player
          type: integer
          example: 101
        name:
          description: Full display name of the player
          type: string
          example: Lionel Messi
        first_name:
          description: First name of the player
          type: string
          example: Lionel
        last_name:
          description: Last name of the player
          type: string
          example: Messi
        position:
          description: Playing position of the player
          type: string
          example: Forward
        number:
          description: Shirt number
          type: integer
          example: 10
        nationality:
          description: Nationality of the player
          type: string
          example: Argentina
        photo:
          description: URL to the player's photo
          type: string
          example: https://example.com/photos/messi.png
        age:
          description: Age of the player
          type: integer
          example: 36
        birth_date:
          description: Birthdate of the player
          type: string
          format: date
          example: '1987-06-24'
        birth_place:
          description: City of birth
          type: string
          example: Rosario
        birth_country:
          description: Country of birth
          type: string
          example: Argentina
        height:
          description: Player height in centimeters or meters
          type: string
          example: 170 cm
        weight:
          description: Player weight in kilograms
          type: string
          example: 72 kg
        injured:
          description: Injury status
          type: boolean
          example: false
      type: object
    PlayerLeagueStatisticsDetails:
      description: Detailed player league performance statistics.
      properties:
        cards:
          description: Card statistics
          properties:
            red:
              description: Number of red cards
              type: integer
              example: 0
            yellow:
              description: Number of yellow cards
              type: integer
              example: 1
            yellowred:
              description: Number of second yellow cards resulting in red
              type: integer
              example: 0
          type: object
        duels:
          description: Duels statistics
          properties:
            won:
              description: Number of duels won
              type: integer
              example: 9
            total:
              description: Total number of duels
              type: integer
              example: 18
          type: object
        fouls:
          description: Fouls statistics
          properties:
            drawn:
              description: Number of fouls drawn
              type: integer
              example: 1
            committed:
              description: Number of fouls committed
              type: integer
              example: 2
          type: object
        games:
          description: Game appearance and participation data
          properties:
            number:
              description: Game number
              type: integer
              example: null
              nullable: true
            rating:
              description: Average match rating
              type: string
              example: '6.833333'
            captain:
              description: Whether the player was captain
              type: boolean
              example: false
            lineups:
              description: Number of times included in starting lineup
              type: integer
              example: 3
            minutes:
              description: Total minutes played
              type: integer
              example: 216
            position:
              description: Playing position
              type: string
              example: Midfielder
            appearences:
              description: Number of appearances
              type: integer
              example: 3
          type: object
        goals:
          description: Goal-related statistics
          properties:
            saves:
              description: Number of saves (for goalkeepers)
              type: integer
              example: null
              nullable: true
            total:
              description: Total goals scored
              type: integer
              example: 0
            assists:
              description: Number of assists
              type: integer
              example: null
              nullable: true
            conceded:
              description: Goals conceded (for goalkeepers)
              type: integer
              example: 0
          type: object
        shots:
          description: Shooting statistics
          properties:
            'on':
              description: Shots on target
              type: integer
              example: 1
            total:
              description: Total shots
              type: integer
              example: 1
          type: object
        passes:
          description: Passing statistics
          properties:
            key:
              description: Number of key passes
              type: integer
              example: null
              nullable: true
            total:
              description: Total passes attempted
              type: integer
              example: 150
            accuracy:
              description: Pass accuracy percentage
              type: integer
              example: 49
          type: object
        penalty:
          description: Penalty statistics
          properties:
            won:
              description: Penalties won
              type: integer
              example: null
              nullable: true
            saved:
              description: Penalties saved by player (goalkeeper)
              type: integer
              example: null
              nullable: true
            missed:
              description: Penalties missed
              type: integer
              example: 0
            scored:
              description: Penalties scored
              type: integer
              example: 0
            commited:
              description: Penalties conceded
              type: integer
              example: null
              nullable: true
          type: object
        tackles:
          description: Tackling statistics
          properties:
            total:
              description: Total tackles
              type: integer
              example: 2
            blocks:
              description: Number of blocks
              type: integer
              example: 2
            interceptions:
              description: Number of interceptions
              type: integer
              example: 2
          type: object
        dribbles:
          description: Dribbling statistics
          properties:
            past:
              description: Times dribbled past by opponents
              type: integer
              example: null
              nullable: true
            success:
              description: Successful dribbles
              type: integer
              example: 4
            attempts:
              description: Dribble attempts
              type: integer
              example: 4
          type: object
        substitutes:
          description: Substitution details
          properties:
            in:
              description: Times substituted in
              type: integer
              example: 0
            out:
              description: Times substituted out
              type: integer
              example: 2
            bench:
              description: Times on the bench
              type: integer
              example: 0
          type: object
      type: object
    PlayerLeagueStatistics:
      description: Aggregated statistics for a player in a specific league and season.
      properties:
        player_id:
          description: Unique identifier of the player
          type: integer
          example: 123
        team_id:
          description: Unique identifier of the team the player belongs to
          type: integer
          example: 45
        league_id:
          description: Unique identifier of the league
          type: integer
          example: 10
        season:
          description: The season in which the statistics were recorded
          type: integer
          example: 2025
        statistics:
          $ref: '#/components/schemas/PlayerLeagueStatisticsDetails'
      type: object
    Transfer:
      title: Transfer
      description: Represents a football player transfer between teams
      properties:
        transfer_id:
          description: Unique identifier for the transfer
          type: integer
          example: 123
        player_id:
          description: Unique identifier of the player being transferred
          type: integer
          example: 456
        in_team_id:
          description: ID of the team the player is transferring to
          type: integer
          example: 789
          nullable: true
        out_team_id:
          description: ID of the team the player is transferring from
          type: integer
          example: 321
          nullable: true
        date:
          description: The official date of the transfer (YYYY-MM-DD format)
          type: string
          format: date
          example: '2025-04-02'
        type:
          description: Type of transfer (e.g., Loan, Permanent, Free Transfer)
          type: string
          example: Loan
          nullable: true
        update_date:
          description: Timestamp of the last update for this transfer
          type: string
          example: '2025-04-02 12:34:56'
      type: object
    TopScorer:
      description: Top scorer information for a player, including performance statistics
      properties:
        league_id:
          description: ID of the league
          type: integer
          example: 45
        player_id:
          description: ID of the player
          type: integer
          example: 1098
        rank:
          description: Player's rank in the goal scoring leaderboard
          type: integer
          example: 1
        season:
          description: Season year
          type: integer
          example: 2024
        statistics:
          $ref: '#/components/schemas/PlayerScoreInfoList'
      type: object
    TopAssist:
      description: Top assist information for a player, including performance statistics
      properties:
        league_id:
          description: ID of the league
          type: integer
          example: 45
        player_id:
          description: ID of the player
          type: integer
          example: 1101
        rank:
          description: Player's rank in the assists leaderboard
          type: integer
          example: 1
        season:
          description: Season year
          type: integer
          example: 2024
        statistics:
          $ref: '#/components/schemas/PlayerScoreInfoList'
      type: object
    TopCard:
      description: Top card information for a player, including player statistics
      properties:
        league_id:
          description: ID of the league
          type: integer
          example: 45
        player_id:
          description: ID of the player
          type: integer
          example: 1209
        rank:
          description: Player's rank in the leaderboard
          type: integer
          example: 1
        season:
          description: Season year
          type: integer
          example: 2024
        type:
          description: Type of the card (e.g., yellow, red)
          type: string
          example: red
        statistics:
          $ref: '#/components/schemas/PlayerScoreInfoList'
      type: object
    PlayerScoreInfo:
      description: Detailed statistics for a player's performance
      properties:
        games:
          properties:
            appearences:
              description: Number of games played
              type: integer
              example: 25
            minutes_played:
              description: Total minutes played
              type: integer
              example: 2100
          type: object
        goals:
          properties:
            total:
              description: Total goals scored
              type: integer
              example: 10
            assists:
              description: Total assists made
              type: integer
              example: 5
            canceled:
              description: Goals conceded or canceled
              type: integer
              example: 1
          type: object
        shots:
          properties:
            total:
              description: Total shots taken
              type: integer
              example: 30
            'on':
              description: Shots on target
              type: integer
              example: 15
          type: object
        penalty:
          properties:
            won:
              description: Penalties won
              type: integer
              example: 2
            commited:
              description: Penalties committed
              type: integer
              example: 1
            success:
              description: Successful penalty goals
              type: integer
              example: 1
            missed:
              description: Missed penalties
              type: integer
              example: 1
            saved:
              description: Penalties saved by goalkeeper
              type: integer
              example: 0
          type: object
        cards:
          properties:
            yellow:
              description: Yellow cards received
              type: integer
              example: 3
            red:
              description: Red cards received
              type: integer
              example: 1
            second_yellow:
              description: Second yellow cards
              type: integer
              example: 0
          type: object
      type: object
    PlayerScoreInfoList:
      type: array
      items:
        $ref: '#/components/schemas/PlayerScoreInfo'
    Venue:
      description: Venue object with detailed information including country
      properties:
        id:
          description: Unique identifier for the venue
          type: integer
          example: 101
        name:
          description: Name of the venue
          type: string
          example: Stadio Olimpico
        country:
          description: Country where the venue is located
          type: string
          example: Italy
          nullable: true
        city:
          description: City where the venue is located
          type: string
          example: Rome
          nullable: true
        address:
          description: Street address of the venue
          type: string
          example: Viale dei Gladiatori, 00135 Roma RM, Italy
          nullable: true
        capacity:
          description: Seating capacity of the venue
          type: integer
          example: 72698
          nullable: true
        surface:
          description: Type of surface (e.g., grass, turf)
          type: string
          example: Grass
          nullable: true
        image:
          description: Image file URL of the venue
          type: string
          example: https://api.goalise.com/logos/venue/101.png
          nullable: true
      type: object
    LeagueTeamStatistics:
      properties:
        form:
          type: string
          example: WWWWWWWDDDDWW
        fixtures:
          properties:
            played:
              properties:
                home:
                  type: integer
                  example: 6
                away:
                  type: integer
                  example: 7
                total:
                  type: integer
                  example: 13
              type: object
            wins:
              properties:
                home:
                  type: integer
                  example: 4
                away:
                  type: integer
                  example: 5
                total:
                  type: integer
                  example: 9
              type: object
            draws:
              properties:
                home:
                  type: integer
                  example: 2
                away:
                  type: integer
                  example: 2
                total:
                  type: integer
                  example: 4
              type: object
            loses:
              properties:
                home:
                  type: integer
                  example: 0
                away:
                  type: integer
                  example: 0
                total:
                  type: integer
                  example: 0
              type: object
          type: object
        goals:
          properties:
            for:
              properties:
                total:
                  properties:
                    home:
                      type: integer
                      example: 14
                    away:
                      type: integer
                      example: 14
                    total:
                      type: integer
                      example: 28
                  type: object
                average:
                  properties:
                    home:
                      type: string
                      example: '2.3'
                    away:
                      type: string
                      example: '2.0'
                    total:
                      type: string
                      example: '2.2'
                  type: object
              type: object
            against:
              properties:
                total:
                  properties:
                    home:
                      type: integer
                      example: 7
                    away:
                      type: integer
                      example: 8
                    total:
                      type: integer
                      example: 15
                  type: object
                average:
                  properties:
                    home:
                      type: string
                      example: '1.2'
                    away:
                      type: string
                      example: '1.1'
                    total:
                      type: string
                      example: '1.2'
                  type: object
              type: object
          type: object
        biggest:
          properties:
            streak:
              properties:
                wins:
                  type: integer
                  example: 7
                draws:
                  type: integer
                  example: 4
                loses:
                  type: integer
                  example: 0
              type: object
            wins:
              properties:
                home:
                  type: string
                  example: 3-0
                away:
                  type: string
                  example: 0-2
              type: object
            loses:
              properties:
                home:
                  type: string
                  example: null
                  nullable: true
                away:
                  type: string
                  example: null
                  nullable: true
              type: object
          type: object
        clean_sheet:
          properties:
            home:
              type: integer
              example: 2
            away:
              type: integer
              example: 2
            total:
              type: integer
              example: 4
          type: object
        failed_to_score:
          properties:
            home:
              type: integer
              example: 0
            away:
              type: integer
              example: 0
            total:
              type: integer
              example: 0
          type: object
        lineups:
          type: array
          items:
            properties:
              formation:
                type: string
                example: 4-3-1-2
              played:
                type: integer
                example: 6
            type: object
        penalty:
          properties:
            scored:
              properties:
                total:
                  type: integer
                  example: 5
                percentage:
                  type: string
                  example: 83.33%
              type: object
            missed:
              properties:
                total:
                  type: integer
                  example: 1
                percentage:
                  type: string
                  example: 16.67%
              type: object
            total:
              type: integer
              example: 6
          type: object
        cards:
          properties:
            yellow:
              properties:
                0-15:
                  properties:
                    total:
                      type: integer
                      example: 2
                    percentage:
                      type: string
                      example: 9.09%
                  type: object
                16-30:
                  properties:
                    total:
                      type: integer
                      example: 1
                    percentage:
                      type: string
                      example: 4.55%
                  type: object
                31-45:
                  properties:
                    total:
                      type: integer
                      example: 4
                    percentage:
                      type: string
                      example: 18.18%
                  type: object
                46-60:
                  properties:
                    total:
                      type: integer
                      example: 2
                    percentage:
                      type: string
                      example: 9.09%
                  type: object
                61-75:
                  properties:
                    total:
                      type: integer
                      example: 6
                    percentage:
                      type: string
                      example: 27.27%
                  type: object
                76-90:
                  properties:
                    total:
                      type: integer
                      example: 3
                    percentage:
                      type: string
                      example: 13.64%
                  type: object
              type: object
            red:
              properties:
                0-15:
                  properties:
                    total:
                      type: integer
                      example: null
                      nullable: true
                    percentage:
                      type: string
                      example: null
                      nullable: true
                  type: object
                16-30:
                  properties:
                    total:
                      type: integer
                      example: null
                      nullable: true
                    percentage:
                      type: string
                      example: null
                      nullable: true
                  type: object
                31-45:
                  properties:
                    total:
                      type: integer
                      example: null
                      nullable: true
                    percentage:
                      type: string
                      example: null
                      nullable: true
                  type: object
                46-60:
                  properties:
                    total:
                      type: integer
                      example: null
                      nullable: true
                    percentage:
                      type: string
                      example: null
                      nullable: true
                  type: object
                61-75:
                  properties:
                    total:
                      type: integer
                      example: null
                      nullable: true
                    percentage:
                      type: string
                      example: null
                      nullable: true
                  type: object
                76-90:
                  properties:
                    total:
                      type: integer
                      example: null
                      nullable: true
                    percentage:
                      type: string
                      example: null
                      nullable: true
                  type: object
              type: object
          type: object
      type: object
    Prediction:
      properties:
        predictions:
          properties:
            winner:
              properties:
                id:
                  description: ID of the predicted winner team
                  type: integer
                  example: 834
                name:
                  description: Name of the predicted winner team
                  type: string
                  example: Real Madrid
                comment:
                  description: Comment or advice about the predicted outcome
                  type: string
                  example: Win or draw
              type: object
            win_or_draw:
              description: Indicates whether the prediction is for win or draw
              type: boolean
              example: true
            under_over:
              description: Predicted under/over value for total goals
              type: string
              example: '-3.5'
            goals:
              properties:
                home:
                  description: Predicted goals under/over for the home team
                  type: string
                  example: '-2.5'
                away:
                  description: Predicted goals under/over for the away team
                  type: string
                  example: '-1.5'
              type: object
            advice:
              description: General advice based on predictions
              type: string
              example: 'Combo Double chance : Real Madrid or draw and -3.5 goals'
            percent:
              properties:
                home:
                  description: Win probability for the home team
                  type: string
                  example: 45%
                draw:
                  description: Probability of a draw
                  type: string
                  example: 45%
                away:
                  description: Win probability for the away team
                  type: string
                  example: 10%
              type: object
          type: object
        teams:
          properties:
            home:
              properties:
                id:
                  description: Home team ID
                  type: integer
                  example: 834
                last_5:
                  properties:
                    form:
                      description: Recent form performance
                      type: string
                      example: 60%
                    att:
                      description: Attack strength percentage
                      type: string
                      example: 60%
                    def:
                      description: Defense strength percentage
                      type: string
                      example: 0%
                    goals:
                      properties:
                        for:
                          properties:
                            total:
                              description: Total goals scored
                              type: integer
                              example: 3
                            average:
                              description: Average goals scored
                              type: number
                              format: float
                              example: 0.6
                          type: object
                        against:
                          properties:
                            total:
                              description: Total goals conceded
                              type: integer
                              example: 5
                            average:
                              description: Average goals conceded
                              type: number
                              format: float
                              example: 1
                          type: object
                      type: object
                  type: object
              type: object
            away:
              properties:
                id:
                  description: Home team ID
                  type: integer
                  example: 931
                last_5:
                  properties:
                    form:
                      description: Recent form performance
                      type: string
                      example: 60%
                    att:
                      description: Attack strength percentage
                      type: string
                      example: 60%
                    def:
                      description: Defense strength percentage
                      type: string
                      example: 0%
                    goals:
                      properties:
                        for:
                          properties:
                            total:
                              description: Total goals scored
                              type: integer
                              example: 3
                            average:
                              description: Average goals scored
                              type: number
                              format: float
                              example: 0.6
                          type: object
                        against:
                          properties:
                            total:
                              description: Total goals conceded
                              type: integer
                              example: 5
                            average:
                              description: Average goals conceded
                              type: number
                              format: float
                              example: 1
                          type: object
                      type: object
                  type: object
              type: object
          type: object
        comparison:
          properties:
            form:
              properties:
                home:
                  description: Form rating of the home team
                  type: string
                  example: 60%
                away:
                  description: Form rating of the away team
                  type: string
                  example: 40%
              type: object
            att:
              properties:
                home:
                  description: Attack comparison
                  type: string
                  example: 43%
                away:
                  description: Attack comparison
                  type: string
                  example: 57%
              type: object
            def:
              properties:
                home:
                  description: Defense comparison
                  type: string
                  example: 62%
                away:
                  description: Defense comparison
                  type: string
                  example: 38%
              type: object
            poisson_distribution:
              properties:
                home:
                  description: Poisson distribution home value
                  type: string
                  example: 75%
                away:
                  description: Poisson distribution away value
                  type: string
                  example: 25%
              type: object
            h2h:
              properties:
                home:
                  description: Head-to-head win chance for home
                  type: string
                  example: 29%
                away:
                  description: Head-to-head win chance for away
                  type: string
                  example: 71%
              type: object
            goals:
              properties:
                home:
                  description: Goal scoring comparison for home
                  type: string
                  example: 40%
                away:
                  description: Goal scoring comparison for away
                  type: string
                  example: 60%
              type: object
            total:
              properties:
                home:
                  description: Overall strength score for home
                  type: string
                  example: 51.5%
                away:
                  description: Overall strength score for away
                  type: string
                  example: 48.5%
              type: object
          type: object
      type: object
    Bet:
      description: Basic bet information
      properties:
        id:
          description: Unique identifier for the bet
          type: integer
          example: 123
        name:
          description: Name of the bet
          type: string
          example: Match Winner
      type: object
    Bookmaker:
      description: Basic bookmaker information
      properties:
        id:
          description: Unique identifier for the bookmaker
          type: integer
          example: 45
        name:
          description: Name of the bookmaker
          type: string
          example: Bet365
      type: object
    LiveBet:
      description: Basic live-bet information
      properties:
        id:
          description: Unique identifier for the live-bet
          type: integer
          example: 123
        name:
          description: Name of the live-bet
          type: string
          example: Match Winner
      type: object
    ApiResponse:
      properties:
        status:
          type: string
          example: success
        pagination:
          description: Pagination info if applicable
          type: object
          nullable: true
        errors:
          type: object
          example: null
          nullable: true
        response:
          type: array
          items:
            type: object
          nullable: true
      type: object
    ApiSingleResponse:
      properties:
        status:
          type: string
          example: success
        pagination:
          description: Pagination info if applicable
          type: object
          example: null
          nullable: true
        errors:
          type: object
          example: null
          nullable: true
        response:
          type: object
          nullable: true
      type: object
    ApiMultipleResponse:
      properties:
        status:
          type: string
          example: success
        pagination:
          description: Pagination info if applicable
          type: object
          example: null
          nullable: true
        errors:
          type: object
          example: null
          nullable: true
        response:
          type: array
          items:
            type: array
            items:
              type: object
          nullable: true
      type: object
    ErrorApiResponse:
      properties:
        status:
          type: string
          example: error
        pagination:
          type: object
          example: null
          nullable: true
        errors:
          type: array
          items:
            $ref: '#/components/schemas/ErrorDetails'
          nullable: true
        response:
          type: object
          example: null
          nullable: true
      type: object
    ErrorDetails:
      properties:
        type:
          type: string
          example: validation_error
        data:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
              example: Id is invalid.
      type: object
    Pagination:
      description: Pagination details for paginated responses
      properties:
        total_count:
          description: Total number of items across all pages
          type: integer
          example: 10
        page_size:
          description: Number of items per page
          type: integer
          example: 10
        page_count:
          description: Total number of pages available
          type: integer
          example: 1
        current_page:
          description: Current page number (1-based index)
          type: integer
          example: 1
      type: object
    StandingList:
      description: >-
        Array of standing groups, where each group contains multiple standing
        entries
      type: array
      items:
        $ref: '#/components/schemas/StandingGroup'
    StandingGroup:
      description: Array of standings from one group
      type: array
      items:
        $ref: '#/components/schemas/Standing'
    NewsCategory:
      description: News category object
      properties:
        id:
          description: Unique id of category
          type: integer
          example: 3
        name:
          description: Name of category
          type: string
          example: Transfers
      type: object
    News:
      title: News
      description: Schema for a news article
      properties:
        id:
          type: integer
          example: 177544
        title:
          type: string
          example: >-
            Barcelona sensation Lamine Yamal to take next step forward in injury
            recovery
        image:
          type: string
          example: >-
            https://people-api.pro/uploads/01-01-2025/6526bcca719e3296421afca86a478292.jpg
        alias:
          type: string
          example: >-
            2025-01-01-barcelona-sensation-lamine-yamal-to-take-next-step-forward-in-injury-recovery
        original_url:
          type: string
          format: uri
          example: >-
            https://www.football-espana.net/2025/01/01/barcelona-sensation-lamine-yamal-to-take-next-step-forward-in-injury-recovery
        lang:
          type: string
          example: en
        published_at:
          type: string
          example: 01-01-2025 23:17:12
        categories:
          description: List of category IDs
          type: array
          items:
            type: integer
          example:
            - 3
        leagues:
          description: List of league IDs
          type: array
          items:
            type: integer
          example:
            - 52
        teams:
          description: List of team IDs
          type: array
          items:
            type: integer
          example:
            - 820
      type: object
    NewsContent:
      title: NewsContent
      description: Schema for a news article content
      properties:
        id:
          type: integer
          example: 177544
        title:
          type: string
          example: >-
            Barcelona sensation Lamine Yamal to take next step forward in injury
            recovery
        image:
          type: string
          example: >-
            https://cdn.goalise.com/news/uploads/01-01-2025/6526bcca719e3296421afca86a478292.jpg
        alias:
          type: string
          example: >-
            2025-01-01-barcelona-sensation-lamine-yamal-to-take-next-step-forward-in-injury-recovery
        original_url:
          type: string
          format: uri
          example: >-
            https://www.football-espana.net/2025/01/01/barcelona-sensation-lamine-yamal-to-take-next-step-forward-in-injury-recovery
        lang:
          type: string
          example: en
        published_at:
          type: string
          example: 01-01-2025 23:17:12
        categories:
          description: List of category IDs
          type: array
          items:
            type: integer
          example:
            - 3
        leagues:
          description: List of league IDs
          type: array
          items:
            type: integer
          example:
            - 52
        teams:
          description: List of team IDs
          type: array
          items:
            type: integer
          example:
            - 820
        html_content:
          description: Article content in HTML format
          type: string
          example: <body>html of article here</body>
        html_content_scripts:
          description: >-
            Scripts to be added to the article content in HTML format to show
            Twitter widgets or other widgets related to images.
          type: string
          example: <script></script>
      type: object
  securitySchemes:
    bearerAuth:
      type: http
      description: Use your authentication token to make requests
      scheme: bearer
tags:
  - name: Countries
    description: Countries
  - name: Leagues
    description: Leagues
  - name: Matches
    description: Matches
  - name: Teams
    description: Teams
  - name: Players
    description: Players
  - name: Transfers
    description: Transfers
  - name: Venues
    description: Venues
  - name: Predictions
    description: Predictions
  - name: News
    description: News
  - name: Odds
    description: Odds
