openapi: 3.0.3
info:
  title: StatPal API Documentation
  version: 2.0.0
  description: "**StatPal Sports Data API** — centralized documentation for all supported sports.  \n_Soccer endpoints are published at version 2 (v2). All other sports use version 1 (v1)._\n\n## \U0001F4D8 Overview\nWelcome to the **StatPal API documentation**. This reference contains authentication details, versioning guidance, common request patterns, rate-limit guidance, and useful integration tips so you can start pulling live scores, standings, player stats, odds and more quickly.\n\nQuick summary:\n- **Authentication**: API key passed as query parameter `access_key` \n- You will receive your unique `access_key` by email immediately after starting a free trial.\n- Example:\n  curl \"https://statpal.io/api/v2/soccer/matches/live?access_key=YOUR_ACCESS_KEY\"\n- You can **test the API in-browser** using any of the endpoints in this documentation.\n- Soccer: use the _v2 endpoints_ (current soccer feature set).\n- All other sports (_NFL, NBA, MLB, NHL, PGA, Cricket, Esports, F1, Tennis, etc._): use _v1 endpoints_.\n\n## \U0001F3C1 Trying out the API (_interactive docs & browser testing_)\n**The documentation is interactive:** A **demo key** is provided for testing. You can view example responses, inspect response schemas, change parameters, and run requests from your browser. Use the limited demo key or enter your `access_key` in the request controls and test endpoints directly in the docs UI or import the collection into your own tools.\n\nHelpful resources:\n- Use the limited **demo key** for testing endpoints interactively in the documentation: `b5b07a3f-b019-4a18-8969-6045169feda9`\n- Getting Started / Quick Start Guide: https://statpal.io/quick-start-tutorial/\n\n## \U0001F9F0 Cross-Origin Resource Sharing (_CORS_)\n**CORS** is enabled for requests from any origin. You can run example requests from web browsers and execute calls directly from the interactive docs or other browser-based tools.\n\nImportant CORS notes:\n- Your production app should call StatPal from a server where possible to keep your **access key secure**.\n- If you call the API directly from client-side code, contact us to whitelist _ONLY_ your website's domain, to ensure your key usage and billing/limits are appropriate for public exposure.\n\n## \U0001F510 Authentication\n- **Method**: API key (query parameter).\n- **Parameter name**: `access_key`\n- Example:\n  GET https://statpal.io/api/v2/soccer/matches/live?access_key=YOUR_ACCESS_KEY\n- Security note: Avoid embedding production keys in public client-side code. Prefer server-side calls, token exchange, or scoped short-lived keys where possible. If public client-side code is necessary, send us your website domain to whitelist.\n\n## ⚙️ Versioning & Base URLs\nUse the appropriate version path segment in requests:\n- **v2**: primary for Soccer (new features, improved schemas).\n- **v1**: all other sports (and legacy soccer endpoints where applicable).\n\nExample usage:\n  - Soccer (_v2_): https://statpal.io/api/v2/soccer/...\n  - NFL (_v1_):     https://statpal.io/api/v1/nfl/...\n\n## ⏱️ Rate limits, caching & best practices\n- Live/play-by-play endpoints update frequently (_commonly ~15s_). Polling faster than update cadence may cause rate limits to be reached.\n- Use **caching** for endpoints that change infrequently (standings, historical data).\n\n## ⚠️ Image & Trademark Disclaimer\n**Image requests are free** and do not count toward your daily quota, but they are subject to rate limiting.\nFor client-side implementations, we recommend downloading and hosting images on your own server or cdn to avoid exceeding rate limits.\n\nStatPal does not own the intellectual property rights to logos, images, or trademarks provided through the API; these are included solely for identification and illustrative purposes. Some of these visual assets may be protected by trademark or intellectual property rights held by third parties such as leagues, clubs, federations, players, photographers, and others. If you use this content in your websites, applications, or other products, you may need to obtain appropriate licenses or permissions from the original rights holders. Ensuring that your use complies with all applicable legal and licensing obligations is your responsibility. Additionally, **StatPal is not affiliated with, sponsored by, or endorsed by any sports organization, federation, or brand featured in the data.**\n\n## \U0001F6E0️ Error handling & troubleshooting\n- Check HTTP status codes and error payloads for `code`/`error` fields when requests fail.\n- Common responses:\n  - **400**: Invalid Parameters - invalid or missing parameters\n  - **401**: Unauthorized - invalid or missing access_key or invalid sport\n  - **404**: Resource Not Found - could not find resource\n  - **429**: Too many requests - rate limited\n  - **500**: Internal server error - unexpected failure on server\n\n## \U0001F4E3 Support & Contact\n- Support email: **support@statpal.io**\n"
servers:
  - url: 'https://statpal.io/api/v2/'
    description: Production (_v2_) — use for Soccer v2 endpoints
  - url: 'https://statpal.io/api/v1/'
    description: Production (_v1_) — use for other sports and v1 soccer endpoints
security:
  - ApiKeyAuth: []
components:
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: query
      name: access_key
      description: |
        Provide your API key as a query parameter: ?access_key=YOUR_KEY

        Example key format (uuid4): b5b07a3f-b019-4a18-8969-6045169feda9
paths:
  /soccer/leagues:
    get:
      summary: Get Leagues
      description: >
        Returns list of soccer leagues with details including id, country,
        season, and date ranges. This endpoint data is updated every 12 hours.
      tags:
        - ⚽ Soccer (V2)
      servers:
        - url: 'https://statpal.io/api/v2/'
          description: Production (v2)
      security:
        - ApiKeyAuth: []
      x-update-rate: 43200
      responses:
        '200':
          description: Successful response with soccer leagues
          content:
            application/json:
              schema:
                type: object
                properties:
                  leagues:
                    type: object
                    properties:
                      sport:
                        type: string
                        description: 'Sport type, e.g. ''soccer'''
                      league:
                        type: array
                        items:
                          type: object
                          properties:
                            id:
                              type: string
                              description: League unique identifier
                            country:
                              type: string
                              description: Country or region where league takes place
                            name:
                              type: string
                              description: League name
                            season:
                              type: string
                              description: >-
                                Season string, format varies (e.g., '2025',
                                '2025/2026')
                            date_start:
                              type: string
                              description: >-
                                Start date for the league/season (format
                                DD.MM.YYYY)
                            date_end:
                              type: string
                              description: >-
                                End date for the league/season (format
                                DD.MM.YYYY)
                          required:
                            - id
                            - country
                            - name
                            - season
                            - date_start
                            - date_end
                    required:
                      - sport
                      - league
                required:
                  - leagues
              example:
                leagues:
                  sport: soccer
                  league:
                    - id: '3800'
                      country: africa
                      name: CAF African Nations Championship
                      season: '2025'
                      date_start: 02.08.2025
                      date_end: 30.08.2025
                    - id: '3976'
                      country: africa
                      name: CAF Women's Africa Cup of Nations
                      season: '2025'
                      date_start: 05.07.2025
                      date_end: 26.07.2025
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: Unauthorized - invalid or missing access_key or invalid sport
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: Resource Not Found - could not find resource
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  /soccer/leagues/seasons:
    get:
      summary: Get Seasons
      description: >
        Returns available seasons for soccer leagues including historical
        matches and standings seasons. This endpoint data is updated every 12
        hours.
      tags:
        - ⚽ Soccer (V2)
      servers:
        - url: 'https://statpal.io/api/v2/'
          description: Production (v2)
      security:
        - ApiKeyAuth: []
      x-update-rate: 43200
      responses:
        '200':
          description: Successful response with league seasons
          content:
            application/json:
              schema:
                $ref: >-
                  /static/openapi/schemas/soccer/v2/league-seasons-list.yaml#/SoccerLeagueSeasonsResponseV2
              example:
                seasons:
                  sport: soccer
                  league:
                    - id: '3800'
                      country: africa
                      name: CAF African Nations Championship
                      matches:
                        season:
                          - name: '2016'
                          - name: '2018'
                          - name: '2020'
                          - name: '2021'
                          - name: '2025'
                      standings:
                        season:
                          name: '2025'
                    - id: '3976'
                      country: africa
                      name: CAF Women's Africa Cup of Nations
                      matches:
                        season:
                          - name: '2022'
                          - name: '2024'
                          - name: '2025'
                      standings: null
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: Unauthorized - invalid or missing access_key or invalid sport
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: Resource Not Found - could not find resource
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  /soccer/matches/live:
    get:
      summary: Get Matches Today / Live
      description: >
        Returns today’s soccer matches with real-time live scores. This endpoint
        data is updated every 15 seconds.
      tags:
        - ⚽ Soccer (V2)
      servers:
        - url: 'https://statpal.io/api/v2/'
          description: Production (v2)
      security:
        - ApiKeyAuth: []
      x-update-rate: 15
      responses:
        '200':
          description: 'Successful response with live matches, and all matches from today'
          content:
            application/json:
              schema:
                type: object
                properties:
                  live_matches:
                    type: object
                    properties:
                      updated:
                        type: string
                        description: 'Human-readable timestamp (e.g., DD.MM.YYYY HH:MM:SS)'
                      updated_ts:
                        type: integer
                        description: Unix timestamp of last update
                      league:
                        type: array
                        items:
                          type: object
                          properties:
                            id:
                              type: string
                              description: League unique identifier
                            name:
                              type: string
                              description: League name
                            country:
                              type: string
                              description: Country where league is located
                            cup:
                              type: string
                              description: >-
                                'True' or 'False' as string indicating cup
                                competition
                            match:
                              oneOf:
                                - $ref: >-
                                    https://statpal.io/static/openapi/schemas/soccer/v2/matches-live.yaml#/SoccerMatchV2
                                - type: array
                                  items:
                                    type: object
                                    properties:
                                      main_id:
                                        type: string
                                        description: Primary match identifier
                                      fallback_id_1:
                                        type: string
                                        nullable: true
                                        description: Fallback match ID 1
                                      fallback_id_2:
                                        type: string
                                        nullable: true
                                        description: Fallback match ID 2
                                      fallback_id_3:
                                        type: string
                                        nullable: true
                                        description: Fallback match ID 3
                                      status:
                                        type: string
                                        description: >-
                                          Match status text (e.g., FT, live
                                          minute)
                                      date:
                                        type: string
                                        description: Match date
                                      time:
                                        type: string
                                        description: Match time
                                      inj_time:
                                        type: string
                                        nullable: true
                                        description: Injury time (if applicable)
                                      inj_minute:
                                        type: string
                                        nullable: true
                                        description: Minute of injury time
                                      venue:
                                        type: string
                                        nullable: true
                                        description: Venue of the match
                                      home:
                                        type: object
                                        properties:
                                          id:
                                            type: string
                                            description: Team identifier
                                          name:
                                            type: string
                                            description: Team name
                                          goals:
                                            type: string
                                            description: >-
                                              Goals scored; can be numeric or '?' if
                                              unknown
                                          win_on_agg:
                                            type: string
                                            nullable: true
                                            description: >-
                                              String indicating if team won on
                                              aggregate (nullable)
                                        required:
                                          - id
                                          - name
                                          - goals
                                      away:
                                        $ref: >-
                                          #/paths/~1soccer~1matches~1live/get/responses/200/content/application~1json/schema/properties/live_matches/properties/league/items/properties/match/oneOf/1/items/properties/home
                                      events:
                                        type: object
                                        nullable: true
                                        description: Match events (may be null)
                                        properties:
                                          event:
                                            type: array
                                            items:
                                              type: object
                                              properties:
                                                id:
                                                  type: string
                                                  description: Unique event identifier
                                                type:
                                                  type: string
                                                  description: >-
                                                    Type of event (goal, yellow card,
                                                    substitution, etc.)
                                                team:
                                                  type: string
                                                  description: '''home'' or ''away'''
                                                minute:
                                                  type: string
                                                  description: Minute of event
                                                extra_min:
                                                  type: string
                                                  nullable: true
                                                  description: 'Additional minutes (e.g., injury time)'
                                                player:
                                                  type: string
                                                  nullable: true
                                                  description: Player involved in event
                                                player_id:
                                                  type: string
                                                  nullable: true
                                                assist_player:
                                                  type: string
                                                  nullable: true
                                                assist_id:
                                                  type: string
                                                  nullable: true
                                                player_on:
                                                  type: string
                                                  nullable: true
                                                player_on_id:
                                                  type: string
                                                  nullable: true
                                                player_off:
                                                  type: string
                                                  nullable: true
                                                player_off_id:
                                                  type: string
                                                  nullable: true
                                                result:
                                                  type: string
                                                  nullable: true
                                                  description: Resulting status or score after event
                                              required:
                                                - id
                                                - type
                                                - team
                                                - minute
                                      ht:
                                        description: Half time score details
                                        type: object
                                        nullable: true
                                        properties:
                                          home_goals:
                                            type: integer
                                            nullable: true
                                            description: Home team goals
                                          away_goals:
                                            type: integer
                                            nullable: true
                                            description: Away team goals
                                      ft:
                                        $ref: >-
                                          #/paths/~1soccer~1matches~1live/get/responses/200/content/application~1json/schema/properties/live_matches/properties/league/items/properties/match/oneOf/1/items/properties/ht
                                        description: Full time score details
                                      et:
                                        $ref: >-
                                          #/paths/~1soccer~1matches~1live/get/responses/200/content/application~1json/schema/properties/live_matches/properties/league/items/properties/match/oneOf/1/items/properties/ht
                                        description: Extra time score details (if any)
                                      penalties:
                                        description: Penalty shootout score details (if any)
                                        type: object
                                        nullable: true
                                        properties:
                                          home_goals:
                                            type: integer
                                            nullable: true
                                            description: Penalty shootout goals for home
                                          away_goals:
                                            type: integer
                                            nullable: true
                                            description: Penalty shootout goals for away
                                          penalty_events:
                                            type: array
                                            nullable: true
                                            description: >-
                                              List of individual penalty shootout
                                              attempts
                                            items:
                                              type: object
                                              properties:
                                                id:
                                                  type: string
                                                  description: Identifier for the penalty event
                                                penalty_num:
                                                  type: string
                                                  description: Number/index of the penalty kick
                                                team:
                                                  type: string
                                                  description: '''home'' or ''away'' side'
                                                player:
                                                  type: string
                                                  nullable: true
                                                  description: Player taking the penalty
                                                player_id:
                                                  type: string
                                                  nullable: true
                                                type:
                                                  type: string
                                                  description: 'Penalty event type (goal, miss, etc.)'
                                                result:
                                                  type: string
                                                  nullable: true
                                                  description: >-
                                                    Result of the penalty kick (e.g., score
                                                    after event)
                                              required:
                                                - id
                                                - penalty_num
                                                - team
                                                - type
                                      has_live_stats:
                                        type: string
                                        description: >-
                                          'True' or 'False' as string indicating
                                          if live stats are available for this
                                          match.
                                      inplay_odds_running:
                                        type: string
                                        description: >-
                                          'True' or 'False' as string indicating
                                          if inplay odds are currently running for
                                          this match.
                                    required:
                                      - main_id
                                      - status
                                      - date
                                      - time
                                      - home
                                      - away
                          required:
                            - id
                            - name
                            - country
                            - cup
                            - match
                    required:
                      - updated
                      - updated_ts
                      - league
                required:
                  - live_matches
              example:
                live_matches:
                  updated: '26.11.2025 16:54:37'
                  updated_ts: 1764176077
                  league:
                    - id: '2905'
                      name: 'Andorra: Primera Divisió'
                      country: andorra
                      cup: 'False'
                      match:
                        - main_id: '2025112611667'
                          fallback_id_1: '6099244'
                          fallback_id_2: '6606657'
                          fallback_id_3: '8708898'
                          status: FT
                          date: 26.11.2025
                          time: '13:30'
                          inj_time: ''
                          inj_minute: ''
                          venue: Centre d'Entrenament de la FAF 1
                          home:
                            id: '2337666'
                            name: FC Santa Coloma
                            goals: '1'
                            win_on_agg: 'false'
                          away:
                            id: '2337667'
                            name: Inter Escaldes
                            goals: '3'
                            win_on_agg: 'true'
                          events:
                            event:
                              - id: '66102484'
                                type: goal
                                team: away
                                minute: '2'
                                extra_min: ''
                                player: J. Martinez
                                player_id: '3400123'
                                assist_player: L. Gomez
                                assist_id: '3312345'
                                result: '[0 - 1]'
                              - id: '66102485'
                                type: yellowcard
                                team: away
                                minute: '21'
                                extra_min: ''
                                player: C. Lopez
                                player_id: '3398765'
                                assist_player: ''
                                assist_id: ''
                                result: ''
                              - id: '66102486'
                                type: goal
                                team: home
                                minute: '45'
                                extra_min: '2'
                                player: M. Sanchez
                                player_id: '3309987'
                                assist_player: D. Ruiz
                                assist_id: '3322999'
                                result: '[1 - 1]'
                          ht:
                            home_goals: 1
                            away_goals: 1
                          ft:
                            home_goals: 1
                            away_goals: 3
                          et: null
                          penalties:
                            home_pen: 3
                            away_pen: 4
                            penalty_events:
                              - id: '66707336'
                                penalty_num: '1'
                                team: away
                                player: A. Fernandez
                                player_id: '3405001'
                                type: miss
                                result: ''
                              - id: '66707337'
                                penalty_num: '2'
                                team: home
                                player: J. Herrera
                                player_id: '3300123'
                                type: goal
                                result: '[1 - 0]'
                              - id: '66707338'
                                penalty_num: '3'
                                team: away
                                player: L. Rodriguez
                                player_id: '3408754'
                                type: goal
                                result: '[1 - 1]'
                              - id: '66707339'
                                penalty_num: '4'
                                team: home
                                player: S. Mendez
                                player_id: '3305678'
                                type: goal
                                result: '[2 - 1]'
                              - id: '66707340'
                                penalty_num: '5'
                                team: away
                                player: P. Lopez
                                player_id: '3421234'
                                type: goal
                                result: '[2 - 2]'
                              - id: '66707341'
                                penalty_num: '6'
                                team: home
                                player: M. Diaz
                                player_id: '3312345'
                                type: miss
                                result: ''
                              - id: '66707342'
                                penalty_num: '7'
                                team: away
                                player: F. Gomez
                                player_id: '3408765'
                                type: goal
                                result: '[2 - 3]'
                          has_live_stats: 'False'
                          inplay_odds_running: 'True'
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: Unauthorized - invalid or missing access_key or invalid sport
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: Resource Not Found - could not find resource
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  /soccer/matches/daily:
    get:
      summary: Get Matches Recent / Upcoming
      description: >
        Provides recent and upcoming soccer matches within a 7-day range before
        and after the current date. This endpoint data is updated every 12
        hours.
      tags:
        - ⚽ Soccer (V2)
      servers:
        - url: 'https://statpal.io/api/v2/'
          description: Production (v2)
      security:
        - ApiKeyAuth: []
      x-update-rate: 43200
      parameters:
        - name: offset
          in: query
          description: Day offset from today (integer between -7 and 7; required)
          required: true
          schema:
            type: integer
            enum:
              - -1
              - -2
              - -3
              - -4
              - -5
              - -6
              - -7
              - 1
              - 2
              - 3
              - 4
              - 5
              - 6
              - 7
      responses:
        '200':
          description: 'Successful response with live matches, and all matches from today'
          content:
            application/json:
              schema:
                type: object
                properties:
                  matches_DD_MM_YYYY:
                    type: object
                    properties:
                      updated:
                        type: string
                        description: 'Human-readable timestamp (e.g., DD.MM.YYYY HH:MM:SS)'
                      updated_ts:
                        type: integer
                        description: Unix timestamp of last update
                      league:
                        type: array
                        items:
                          type: object
                          properties:
                            id:
                              type: string
                              description: League unique identifier
                            name:
                              type: string
                              description: League name
                            country:
                              type: string
                              description: Country where league is located
                            cup:
                              type: string
                              description: >-
                                'True' or 'False' as string indicating cup
                                competition
                            match:
                              oneOf:
                                - $ref: >-
                                    https://statpal.io/static/openapi/schemas/soccer/v2/matches-daily.yaml#/SoccerMatchV2
                                - type: array
                                  items:
                                    type: object
                                    properties:
                                      main_id:
                                        type: string
                                        description: Primary match identifier
                                      fallback_id_1:
                                        type: string
                                        nullable: true
                                        description: Fallback match ID 1
                                      fallback_id_2:
                                        type: string
                                        nullable: true
                                        description: Fallback match ID 2
                                      fallback_id_3:
                                        type: string
                                        nullable: true
                                        description: Fallback match ID 3
                                      status:
                                        type: string
                                        description: >-
                                          Match status text (e.g., FT, live
                                          minute)
                                      date:
                                        type: string
                                        description: Match date
                                      time:
                                        type: string
                                        description: Match time
                                      inj_time:
                                        type: string
                                        nullable: true
                                        description: Injury time (if applicable)
                                      inj_minute:
                                        type: string
                                        nullable: true
                                        description: Minute of injury time
                                      venue:
                                        type: string
                                        nullable: true
                                        description: Venue of the match
                                      home:
                                        type: object
                                        properties:
                                          id:
                                            type: string
                                            description: Team identifier
                                          name:
                                            type: string
                                            description: Team name
                                          goals:
                                            type: string
                                            description: >-
                                              Goals scored; can be numeric or '?' if
                                              unknown
                                          win_on_agg:
                                            type: string
                                            nullable: true
                                            description: >-
                                              String indicating if team won on
                                              aggregate (nullable)
                                        required:
                                          - id
                                          - name
                                          - goals
                                      away:
                                        $ref: >-
                                          #/paths/~1soccer~1matches~1daily/get/responses/200/content/application~1json/schema/properties/matches_DD_MM_YYYY/properties/league/items/properties/match/oneOf/1/items/properties/home
                                      events:
                                        type: object
                                        nullable: true
                                        description: Match events (may be null)
                                        properties:
                                          event:
                                            type: array
                                            items:
                                              type: object
                                              properties:
                                                id:
                                                  type: string
                                                  description: Unique event identifier
                                                type:
                                                  type: string
                                                  description: >-
                                                    Type of event (goal, yellow card,
                                                    substitution, etc.)
                                                team:
                                                  type: string
                                                  description: '''home'' or ''away'''
                                                minute:
                                                  type: string
                                                  description: Minute of event
                                                extra_min:
                                                  type: string
                                                  nullable: true
                                                  description: 'Additional minutes (e.g., injury time)'
                                                player:
                                                  type: string
                                                  nullable: true
                                                  description: Player involved in event
                                                player_id:
                                                  type: string
                                                  nullable: true
                                                assist_player:
                                                  type: string
                                                  nullable: true
                                                assist_id:
                                                  type: string
                                                  nullable: true
                                                player_on:
                                                  type: string
                                                  nullable: true
                                                player_on_id:
                                                  type: string
                                                  nullable: true
                                                player_off:
                                                  type: string
                                                  nullable: true
                                                player_off_id:
                                                  type: string
                                                  nullable: true
                                                result:
                                                  type: string
                                                  nullable: true
                                                  description: Resulting status or score after event
                                              required:
                                                - id
                                                - type
                                                - team
                                                - minute
                                      ht:
                                        description: Half time score details
                                        type: object
                                        nullable: true
                                        properties:
                                          home_goals:
                                            type: integer
                                            nullable: true
                                            description: Home team goals
                                          away_goals:
                                            type: integer
                                            nullable: true
                                            description: Away team goals
                                      ft:
                                        $ref: >-
                                          #/paths/~1soccer~1matches~1daily/get/responses/200/content/application~1json/schema/properties/matches_DD_MM_YYYY/properties/league/items/properties/match/oneOf/1/items/properties/ht
                                        description: Full time score details
                                      et:
                                        $ref: >-
                                          #/paths/~1soccer~1matches~1daily/get/responses/200/content/application~1json/schema/properties/matches_DD_MM_YYYY/properties/league/items/properties/match/oneOf/1/items/properties/ht
                                        description: Extra time score details (if any)
                                      penalties:
                                        description: Penalty shootout score details (if any)
                                        type: object
                                        nullable: true
                                        properties:
                                          home_goals:
                                            type: integer
                                            nullable: true
                                            description: Penalty shootout goals for home
                                          away_goals:
                                            type: integer
                                            nullable: true
                                            description: Penalty shootout goals for away
                                          penalty_events:
                                            type: array
                                            nullable: true
                                            description: >-
                                              List of individual penalty shootout
                                              attempts
                                            items:
                                              type: object
                                              properties:
                                                id:
                                                  type: string
                                                  description: Identifier for the penalty event
                                                penalty_num:
                                                  type: string
                                                  description: Number/index of the penalty kick
                                                team:
                                                  type: string
                                                  description: '''home'' or ''away'' side'
                                                player:
                                                  type: string
                                                  nullable: true
                                                  description: Player taking the penalty
                                                player_id:
                                                  type: string
                                                  nullable: true
                                                type:
                                                  type: string
                                                  description: 'Penalty event type (goal, miss, etc.)'
                                                result:
                                                  type: string
                                                  nullable: true
                                                  description: >-
                                                    Result of the penalty kick (e.g., score
                                                    after event)
                                              required:
                                                - id
                                                - penalty_num
                                                - team
                                                - type
                                      has_live_stats:
                                        type: string
                                        description: >-
                                          'True' or 'False' as string indicating
                                          if live stats are available for this
                                          match.
                                      inplay_odds_running:
                                        type: string
                                        description: >-
                                          'True' or 'False' as string indicating
                                          if inplay odds are currently running for
                                          this match.
                                    required:
                                      - main_id
                                      - status
                                      - date
                                      - time
                                      - home
                                      - away
                          required:
                            - id
                            - name
                            - country
                            - cup
                            - match
                    required:
                      - updated
                      - updated_ts
                      - league
                required:
                  - matches_DD_MM_YYYY
              example:
                matches_15_12_2025:
                  updated: '26.11.2025 16:54:37'
                  updated_ts: 1764176077
                  league:
                    - id: '2905'
                      name: 'Andorra: Primera Divisió'
                      country: andorra
                      cup: 'False'
                      match:
                        - main_id: '2025112611667'
                          fallback_id_1: '6099244'
                          fallback_id_2: '6606657'
                          fallback_id_3: '8708898'
                          status: FT
                          date: 15.12.2025
                          time: '13:30'
                          inj_time: ''
                          inj_minute: ''
                          venue: Centre d'Entrenament de la FAF 1
                          home:
                            id: '2337666'
                            name: FC Santa Coloma
                            goals: '1'
                            win_on_agg: 'false'
                          away:
                            id: '2337667'
                            name: Inter Escaldes
                            goals: '3'
                            win_on_agg: 'true'
                          events:
                            event:
                              - id: '66102484'
                                type: goal
                                team: away
                                minute: '2'
                                extra_min: ''
                                player: J. Martinez
                                player_id: '3400123'
                                assist_player: L. Gomez
                                assist_id: '3312345'
                                result: '[0 - 1]'
                              - id: '66102485'
                                type: yellowcard
                                team: away
                                minute: '21'
                                extra_min: ''
                                player: C. Lopez
                                player_id: '3398765'
                                assist_player: ''
                                assist_id: ''
                                result: ''
                              - id: '66102486'
                                type: goal
                                team: home
                                minute: '45'
                                extra_min: '2'
                                player: M. Sanchez
                                player_id: '3309987'
                                assist_player: D. Ruiz
                                assist_id: '3322999'
                                result: '[1 - 1]'
                          ht:
                            home_goals: 1
                            away_goals: 1
                          ft:
                            home_goals: 1
                            away_goals: 3
                          et: null
                          penalties:
                            home_pen: 3
                            away_pen: 4
                            penalty_events:
                              - id: '66707336'
                                penalty_num: '1'
                                team: away
                                player: A. Fernandez
                                player_id: '3405001'
                                type: miss
                                result: ''
                              - id: '66707337'
                                penalty_num: '2'
                                team: home
                                player: J. Herrera
                                player_id: '3300123'
                                type: goal
                                result: '[1 - 0]'
                              - id: '66707338'
                                penalty_num: '3'
                                team: away
                                player: L. Rodriguez
                                player_id: '3408754'
                                type: goal
                                result: '[1 - 1]'
                              - id: '66707339'
                                penalty_num: '4'
                                team: home
                                player: S. Mendez
                                player_id: '3305678'
                                type: goal
                                result: '[2 - 1]'
                              - id: '66707340'
                                penalty_num: '5'
                                team: away
                                player: P. Lopez
                                player_id: '3421234'
                                type: goal
                                result: '[2 - 2]'
                              - id: '66707341'
                                penalty_num: '6'
                                team: home
                                player: M. Diaz
                                player_id: '3312345'
                                type: miss
                                result: ''
                              - id: '66707342'
                                penalty_num: '7'
                                team: away
                                player: F. Gomez
                                player_id: '3408765'
                                type: goal
                                result: '[2 - 3]'
                          has_live_stats: 'False'
                          inplay_odds_running: 'True'
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: Unauthorized - invalid or missing access_key or invalid sport
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: Resource Not Found - could not find resource
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  '/soccer/leagues/{league-id}/matches':
    get:
      summary: Get Matches By League / Season
      description: >
        Returns matches for a specific league, including detailed match info.
        Current league endpoint data is updated every 1 hour. Historical league
        endpoint data is updated once after the season has completed.
      tags:
        - ⚽ Soccer (V2)
      servers:
        - url: 'https://statpal.io/api/v2/'
          description: Production (v2)
      security:
        - ApiKeyAuth: []
      x-update-rate: 3600
      parameters:
        - name: league-id
          in: path
          required: true
          description: League ID to retrieve matches for
          schema:
            type: integer
        - name: season
          in: query
          required: false
          description: |
            Season filter, format 'YYYY' or 'YYYY-YYYY' 
            (optional, defaults to current season)
          schema:
            type: string
            pattern: '^\d{4}(-\d{4})?$'
      responses:
        '200':
          description: Successful response with league matches
          content:
            application/json:
              schema:
                type: object
                properties:
                  matches:
                    type: object
                    properties:
                      updated:
                        type: string
                        description: 'Human-readable timestamp (e.g., DD.MM.YYYY HH:MM:SS)'
                      updated_ts:
                        type: integer
                        description: Unix timestamp of last update
                      country:
                        type: string
                        description: Country code or name
                      tournament:
                        oneOf:
                          - title: Single Stage Tournament
                            type: object
                            properties:
                              id:
                                type: string
                                description: Tournament ID
                              league:
                                type: string
                                description: Tournament/League name
                              season:
                                type: string
                                description: 'Season string (e.g., ''2025/2026'')'
                              stage_id:
                                type: string
                                nullable: true
                                description: Main Stage identifier
                              is_current:
                                type: string
                                description: >-
                                  'True' or 'False' as string showing if
                                  tournament stage is current
                            oneOf:
                              - required:
                                  - week
                                title: Tournament with Weeks
                                properties:
                                  week:
                                    type: array
                                    items:
                                      type: object
                                      properties:
                                        number:
                                          type: string
                                          description: Week number of the tournament stage
                                        match:
                                          type: array
                                          items:
                                            $ref: >-
                                              #/paths/~1soccer~1leagues~1%7Bleague-id%7D~1matches/get/responses/200/content/application~1json/schema/properties/matches/properties/tournament/oneOf/0/oneOf/1/properties/match/items
                                      required:
                                        - number
                                        - match
                              - required:
                                  - match
                                title: Tournament with Matches
                                properties:
                                  match:
                                    type: array
                                    items:
                                      type: object
                                      properties:
                                        main_id:
                                          type: string
                                          description: Primary match identifier
                                        fallback_id_1:
                                          type: string
                                          nullable: true
                                          description: Fallback match ID 1
                                        fallback_id_2:
                                          type: string
                                          nullable: true
                                          description: Fallback match ID 2
                                        date:
                                          type: string
                                          description: Match date (DD.MM.YYYY)
                                        time:
                                          type: string
                                          description: 'Match time (HH:MM)'
                                        status:
                                          type: string
                                          description: 'Match status (e.g., FT, NS, live minute)'
                                        venue:
                                          type: string
                                          nullable: true
                                          description: Venue name
                                        venue_id:
                                          type: string
                                          nullable: true
                                          description: Venue identifier if available
                                        venue_city:
                                          type: string
                                          nullable: true
                                          description: Venue city
                                        attendance:
                                          type: string
                                          nullable: true
                                          description: Match attendance as string
                                        home:
                                          type: object
                                          properties:
                                            id:
                                              type: string
                                              nullable: true
                                              description: >-
                                                Team ID (may be null or empty if
                                                unknown)
                                            name:
                                              type: string
                                              description: Team name
                                            score:
                                              type: string
                                              description: >-
                                                Team score as string (may be empty or
                                                '?')
                                          required:
                                            - name
                                            - score
                                        away:
                                          $ref: >-
                                            #/paths/~1soccer~1leagues~1%7Bleague-id%7D~1matches/get/responses/200/content/application~1json/schema/properties/matches/properties/tournament/oneOf/0/oneOf/1/properties/match/items/properties/home
                                        coaches:
                                          type: object
                                          properties:
                                            home:
                                              type: object
                                              properties:
                                                coach:
                                                  type: object
                                                  properties:
                                                    id:
                                                      type: string
                                                      nullable: true
                                                      description: Coach ID
                                                    name:
                                                      type: string
                                                      description: Coach name
                                                  required:
                                                    - name
                                            away:
                                              $ref: >-
                                                #/paths/~1soccer~1leagues~1%7Bleague-id%7D~1matches/get/responses/200/content/application~1json/schema/properties/matches/properties/tournament/oneOf/0/oneOf/1/properties/match/items/properties/coaches/properties/home
                                          nullable: true
                                        referee:
                                          nullable: true
                                          type: object
                                          properties:
                                            id:
                                              type: string
                                              nullable: true
                                              description: Referee ID
                                            name:
                                              type: string
                                              nullable: true
                                              description: Referee name
                                        lineups:
                                          nullable: true
                                          type: object
                                          properties:
                                            home:
                                              nullable: true
                                              type: object
                                              properties:
                                                formation:
                                                  type: string
                                                  nullable: true
                                                  description: 'Team formation (e.g., ''4-2-3-1'')'
                                                player:
                                                  type: array
                                                  items:
                                                    type: object
                                                    properties:
                                                      number:
                                                        type: string
                                                        description: Player jersey number
                                                      name:
                                                        type: string
                                                        description: Player name
                                                      booking:
                                                        type: string
                                                        nullable: true
                                                        description: Booking info (yellow/red card etc)
                                                      id:
                                                        type: string
                                                        description: Player ID
                                                    required:
                                                      - number
                                                      - name
                                                      - id
                                            away:
                                              $ref: >-
                                                #/paths/~1soccer~1leagues~1%7Bleague-id%7D~1matches/get/responses/200/content/application~1json/schema/properties/matches/properties/tournament/oneOf/0/oneOf/0/properties/week/items/properties/match/items/properties/lineups/properties/home
                                              nullable: true
                                        substitutions:
                                          nullable: true
                                          type: object
                                          properties:
                                            home:
                                              nullable: true
                                              type: object
                                              properties:
                                                substitution:
                                                  type: array
                                                  items:
                                                    type: object
                                                    properties:
                                                      player_in_number:
                                                        type: string
                                                      player_in_name:
                                                        type: string
                                                      player_in_booking:
                                                        type: string
                                                        nullable: true
                                                      player_in_id:
                                                        type: string
                                                      player_out_name:
                                                        type: string
                                                        nullable: true
                                                      player_out_id:
                                                        type: string
                                                        nullable: true
                                                      minute:
                                                        type: string
                                                        nullable: true
                                                    required:
                                                      - player_in_number
                                                      - player_in_name
                                                      - player_in_id
                                            away:
                                              $ref: >-
                                                #/paths/~1soccer~1leagues~1%7Bleague-id%7D~1matches/get/responses/200/content/application~1json/schema/properties/matches/properties/tournament/oneOf/0/oneOf/0/properties/week/items/properties/match/items/properties/substitutions/properties/home
                                              nullable: true
                                        goals:
                                          nullable: true
                                          type: object
                                          properties:
                                            goal:
                                              oneOf:
                                                - type: object
                                                  properties:
                                                    team:
                                                      type: string
                                                      description: '''home'' or ''away'''
                                                    minute:
                                                      type: string
                                                      description: Minute the goal was scored
                                                    player:
                                                      type: string
                                                      description: Player name
                                                    score:
                                                      type: string
                                                      description: >-
                                                        Score at the time of goal (e.g., '[1 -
                                                        0]')
                                                    playerid:
                                                      type: string
                                                      description: Player ID
                                                    assist:
                                                      type: string
                                                      nullable: true
                                                      description: Assist player name
                                                    assistid:
                                                      type: string
                                                      nullable: true
                                                      description: Assist player ID
                                                  required:
                                                    - team
                                                    - minute
                                                    - player
                                                    - score
                                                    - playerid
                                                - type: array
                                                  items:
                                                    $ref: >-
                                                      #/paths/~1soccer~1leagues~1%7Bleague-id%7D~1matches/get/responses/200/content/application~1json/schema/properties/matches/properties/tournament/oneOf/0/oneOf/0/properties/week/items/properties/match/items/properties/goals/properties/goal/oneOf/0
                                        ht:
                                          nullable: true
                                          type: object
                                          properties:
                                            home_goals:
                                              type: integer
                                              nullable: true
                                              description: Home team goals
                                            away_goals:
                                              type: integer
                                              nullable: true
                                              description: Away team goals
                                        ft:
                                          $ref: >-
                                            #/paths/~1soccer~1leagues~1%7Bleague-id%7D~1matches/get/responses/200/content/application~1json/schema/properties/matches/properties/tournament/oneOf/0/oneOf/1/properties/match/items/properties/ht
                                          nullable: true
                                        et:
                                          $ref: >-
                                            #/paths/~1soccer~1leagues~1%7Bleague-id%7D~1matches/get/responses/200/content/application~1json/schema/properties/matches/properties/tournament/oneOf/0/oneOf/1/properties/match/items/properties/ht
                                          nullable: true
                                        penalties:
                                          nullable: true
                                          type: object
                                          properties:
                                            home_goals:
                                              type: integer
                                              nullable: true
                                              description: Penalty shootout goals for away
                                            penalty_events:
                                              type: array
                                              nullable: true
                                              description: >-
                                                List of individual penalty shootout
                                                attempts
                                              items:
                                                type: object
                                                properties:
                                                  id:
                                                    type: string
                                                    description: Identifier for the penalty event
                                                  penalty_num:
                                                    type: string
                                                    description: Number/index of the penalty kick
                                                  team:
                                                    type: string
                                                    description: '''home'' or ''away'' side'
                                                  player:
                                                    type: string
                                                    nullable: true
                                                    description: Player taking the penalty
                                                  player_id:
                                                    type: string
                                                    nullable: true
                                                  type:
                                                    type: string
                                                    description: 'Penalty event type (goal, miss, etc.)'
                                                  result:
                                                    type: string
                                                    nullable: true
                                                    description: >-
                                                      Result of the penalty kick (e.g., score
                                                      after event)
                                                required:
                                                  - id
                                                  - penalty_num
                                                  - team
                                                  - type
                                      required:
                                        - main_id
                                        - date
                                        - time
                                        - status
                                        - home
                                        - away
                            required:
                              - id
                              - league
                              - season
                              - is_current
                          - title: Multiple Stage Tournament
                            type: object
                            properties:
                              id:
                                type: string
                                description: Tournament ID
                              league:
                                type: string
                                description: Tournament/League name
                              season:
                                type: string
                                description: 'Season string (e.g., ''2025/2026'')'
                              is_current:
                                type: string
                                description: >-
                                  'True' or 'False' as string showing if
                                  tournament is current
                              stage_id:
                                type: string
                                nullable: true
                                description: Main Stage identifier
                              stage:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    name:
                                      type: string
                                      description: Name of the stage
                                    round:
                                      type: string
                                      description: Round name or description
                                    is_current:
                                      type: string
                                      description: >-
                                        'True' or 'False' as string showing if
                                        this stage is current
                                    stage_id:
                                      type: string
                                      description: Stage identifier
                                  oneOf:
                                    - required:
                                        - week
                                      title: Stage with Weeks
                                      properties:
                                        week:
                                          type: array
                                          items:
                                            $ref: >-
                                              #/paths/~1soccer~1leagues~1%7Bleague-id%7D~1matches/get/responses/200/content/application~1json/schema/properties/matches/properties/tournament/oneOf/0/oneOf/0/properties/week/items
                                    - required:
                                        - match
                                      title: Stage with Matches
                                      properties:
                                        match:
                                          type: array
                                          items:
                                            $ref: >-
                                              #/paths/~1soccer~1leagues~1%7Bleague-id%7D~1matches/get/responses/200/content/application~1json/schema/properties/matches/properties/tournament/oneOf/0/oneOf/1/properties/match/items
                                  required:
                                    - name
                                    - round
                                    - is_current
                                    - stage_id
                            required:
                              - id
                              - league
                              - season
                              - is_current
                              - stage
                    required:
                      - updated
                      - updated_ts
                      - country
                      - tournament
                required:
                  - matches
              example:
                matches:
                  updated: '06.12.2025 15:03:51'
                  updated_ts: 1765033431
                  country: england
                  tournament:
                    id: '3037'
                    league: Premier League
                    season: 2025/2026
                    stage_id: '14372914'
                    is_current: 'True'
                    week:
                      - number: '1'
                        match:
                          - main_id: '2025081518302'
                            fallback_id_1: '6024103'
                            fallback_id_2: '6531486'
                            date: 15.08.2025
                            time: '19:00'
                            status: FT
                            venue: Anfield
                            venue_id: ''
                            venue_city: Liverpool
                            attendance: 60 315
                            home:
                              id: '2341082'
                              name: Liverpool
                              score: '4'
                            away:
                              id: '2340886'
                              name: Bournemouth
                              score: '2'
                            coaches:
                              home:
                                coach:
                                  id: '2334186'
                                  name: Arend Martijn Slot
                              away:
                                coach:
                                  id: '2887252'
                                  name: Andoni Iraola Sagarna
                            referee:
                              id: ''
                              name: ''
                            lineups:
                              home:
                                formation: 4-2-3-1
                                player:
                                  - number: '1'
                                    id: '2434476'
                                    name: Alisson
                                    booking: ''
                              away:
                                formation: 4-2-3-1
                                player:
                                  - number: '1'
                                    id: '2795235'
                                    name: D. Petrovic
                                    booking: ''
                            substitutions:
                              home:
                                substitution:
                                  - player_in_number: '25'
                                    player_in_name: G. Mamardashvili
                                    player_in_booking: ''
                                    player_in_id: '2794974'
                                    player_out_name: ''
                                    player_out_id: ''
                                    minute: ''
                              away:
                                substitution:
                                  - player_in_number: '40'
                                    player_in_name: W. Dennis
                                    player_in_booking: ''
                                    player_in_id: '2861662'
                                    player_out_name: ''
                                    player_out_id: ''
                                    minute: ''
                            goals:
                              goal:
                                - team: home
                                  minute: '37'
                                  player: H. Ekitike
                                  score: '[1 - 0]'
                                  playerid: '2956415'
                                  assist: A. Mac Allister
                                  assistid: '2799893'
                            ht:
                              home_goals: 1
                              away_goals: 0
                            ft:
                              home_goals: 4
                              away_goals: 2
                            et: null
                            penalties: null
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: Unauthorized - invalid or missing access_key or invalid sport
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: Resource Not Found - could not find resource
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  '/soccer/leagues/{league-id}/matches/stats':
    get:
      summary: Get Match Details By League
      description: >
        Returns detailed stats for current matches in a league. Includes
        upcoming, ongoing and finished matches with comprehensive stats,
        lineups, events, and more. Optionally filter for past matches by date
        (format DD.MM.YYYY). This endpoint data is updated every 15 seconds.
      tags:
        - ⚽ Soccer (V2)
      servers:
        - url: 'https://statpal.io/api/v2/'
          description: Production (v2)
      security:
        - ApiKeyAuth: []
      x-update-rate: 15
      parameters:
        - name: league-id
          in: path
          description: League ID (integer)
          required: true
          schema:
            type: integer
            format: int64
        - name: date
          in: query
          description: Filter matches by date (DD.MM.YYYY)
          required: false
          schema:
            type: string
            pattern: '^(0[1-9]|[12][0-9]|3[01])\.(0[1-9]|1[0-2])\.(\d{4})$'
      responses:
        '200':
          description: Successful response with detailed match stats for league matches
          content:
            application/json:
              schema:
                $ref: >-
                  /static/openapi/schemas/soccer/v2/leagues-matches-stats-schema.yaml#/SoccerLeagueMatchStatsResponseV2
              example:
                match-stats:
                  updated: '09.12.2025 04:22:31'
                  updated_ts: 1765254151
                  tournament:
                    id: '3037'
                    name: England - Premier League
                    matches:
                      main_id: '2025120818706'
                      fallback_id_1: '6023967'
                      fallback_id_2: '6531349'
                      date: 08.12.2025
                      time: '20:00'
                      status: Full-time
                      match_info:
                        stadium:
                          name: 'Molineux Stadium, Wolverhampton'
                        time:
                          name: '20:00'
                          added_time_period_1: '2'
                          added_time_period_2: '9'
                        referee:
                          name: 'Michael Salisbury, England'
                      home:
                        id: '2341279'
                        name: Wolverhampton
                        goals: '1'
                      away:
                        id: '2341093'
                        name: Manchester United
                        goals: '4'
                      ht:
                        home_goals: '1'
                        away_goals: '1'
                      ft:
                        home_goals: '1'
                        away_goals: '4'
                      et: null
                      penalties: null
                      lineups:
                        home:
                          player:
                            - id: '2528099'
                              name: Sam Johnstone
                              number: '31'
                              pos: G
                              formation_pos: '1'
                          formation: 3-4-2-1
                        away:
                          player:
                            - id: '2903698'
                              name: Senne Lammens
                              number: '31'
                              pos: G
                              formation_pos: '1'
                          formation: 3-4-2-1
                      bench:
                        home:
                          player:
                            - id: '3204556'
                              name: Fer López
                              number: '28'
                              pos: F
                        away:
                          player:
                            - id: '2803504'
                              name: Lisandro Martínez
                              number: '6'
                              pos: D
                      substitutions:
                        home:
                          substitution:
                            - minute: '86'
                              player_on: Jackson Tchatchoua
                              player_on_id: '3018150'
                              player_off: Ki-Jana Hoever
                              player_off_id: '2857755'
                              injury: 'False'
                        away:
                          substitution:
                            - minute: '85'
                              player_on: Joshua Zirkzee
                              player_on_id: '2848210'
                              player_off: Mason Mount
                              player_off_id: '2708530'
                              injury: 'False'
                      team_colors:
                        home:
                          player:
                            primary:
                              color: fbbd37
                            number:
                              color: '000000'
                            border:
                              color: fbbd37
                          goalkeeper:
                            primary:
                              color: 01010e
                            number:
                              color: ffffff
                            border:
                              color: 01010e
                        away:
                          player:
                            primary:
                              color: 1b1b1d
                            number:
                              color: f6d750
                            border:
                              color: 1b1b1d
                          goalkeeper:
                            primary:
                              color: 1c68a1
                            number:
                              color: ffffff
                            border:
                              color: 1c68a1
                      team_stats:
                        home:
                          corners:
                            total: '1'
                            total_h1: '1'
                            total_h2: '0'
                          expected_goals:
                            total: '0.41'
                            total_h1: '0.29'
                            total_h2: '0.12'
                          fouls:
                            total: '17'
                        away:
                          corners:
                            total: '9'
                            total_h1: '6'
                            total_h2: '3'
                          expected_goals:
                            total: '4.24'
                            total_h1: '1.01'
                            total_h2: '3.23'
                          fouls:
                            total: '12'
                      player_stats:
                        home:
                          player:
                            - id: '2528099'
                              name: Sam Johnstone
                              num: '31'
                              pos: G
                              acc_crosses: ''
                              aerials_won: ''
                              assists: '0'
                        away:
                          player:
                            - id: '2903698'
                              name: Senne Lammens
                              num: '31'
                              pos: G
                      event_summary:
                        home:
                          goals:
                            event:
                              minute: '45'
                              extra_min: '2'
                              player_id: '2752619'
                              player_name: Jean-Ricner Bellegarde
                              assist_player_id: '2935127'
                              assist_player_name: David Möller Wolfe
                              own_goal: 'False'
                              penalty: 'False'
                              penalty_missed: 'False'
                              var_cancelled: 'False'
                          yellowcards:
                            event:
                              - minute: '81'
                                extra_min: ''
                                comment: Handball
                                player_id: '2980333'
                                player_name: Yerson Mosquera
                          redcards: ''
                          var: ''
                        away:
                          goals:
                            event:
                              - minute: '82'
                                extra_min: ''
                                player_id: '2608204'
                                player_name: Bruno Fernandes
                                assist_player_id: ''
                                assist_player_name: ''
                                own_goal: 'False'
                                penalty: 'True'
                                penalty_missed: 'False'
                                var_cancelled: 'False'
                          yellowcards:
                            event:
                              - minute: '90'
                                extra_min: '6'
                                comment: Argument
                                player_id: '2848210'
                                player_name: Joshua Zirkzee
                          redcards: ''
                          var:
                            event:
                              minute: '80'
                              extra_min: ''
                              player_id: '2964802'
                              player_name: Amad Diallo
                              event_type: Penalty confirmed
                              ref_decision: Penalty cancelled
                              var_decision: 'False'
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: Unauthorized - invalid or missing access_key or invalid sport
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: Resource Not Found - could not find resource
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  '/soccer/leagues/{league-id}/standings':
    get:
      summary: Get Standings By League / Season
      description: >
        Returns the standings for a soccer league by league ID, optionally
        filtered by season. Current league endpoint data is updated every 1
        hour. Historical league endpoint data is updated once after the season
        has completed.
      tags:
        - ⚽ Soccer (V2)
      servers:
        - url: 'https://statpal.io/api/v2/'
          description: Production (v2)
      security:
        - ApiKeyAuth: []
      x-update-rate: 3600
      parameters:
        - name: league-id
          in: path
          description: League identifier
          required: true
          schema:
            type: integer
        - name: season
          in: query
          description: Season year or range (e.g. '2025' or '2025-2026')
          required: false
          schema:
            type: string
            pattern: '^(\d{4})(-\d{4})?$'
      responses:
        '200':
          description: Successful response with league standings data
          content:
            application/json:
              schema:
                type: object
                properties:
                  standings:
                    type: object
                    properties:
                      updated:
                        type: string
                        description: 'Human-readable timestamp (e.g., DD.MM.YYYY HH:MM:SS)'
                      updated_ts:
                        oneOf:
                          - type: integer
                          - type: string
                            pattern: ^\d+$
                        description: >-
                          Unix timestamp of last update (integer or numeric
                          string)
                      country:
                        type: string
                        description: Country or region of the league
                      tournament:
                        oneOf:
                          - type: object
                            properties:
                              id:
                                type: string
                                description: Tournament or league unique identifier
                              league:
                                type: string
                                nullable: true
                                description: >-
                                  Name of the league (may be null in grouped
                                  tournaments)
                              season:
                                type: string
                                description: >-
                                  Season of the tournament/league (e.g.
                                  '2025/2026' or '2022')
                              stage_id:
                                type: string
                                description: Stage identifier
                              is_current:
                                type: string
                                description: >-
                                  'True' or 'False' as string indicating if this
                                  is the current season/stage
                              name:
                                type: string
                                nullable: true
                                description: >-
                                  Tournament/group name (used especially when
                                  tournament is an array of grouped stages)
                              date:
                                type: string
                                nullable: true
                                description: Date associated with tournament or group
                              group:
                                type: string
                                nullable: true
                                description: 'Group name, if applicable'
                              group_id:
                                type: string
                                nullable: true
                                description: 'Group identifier, if applicable'
                              team:
                                oneOf:
                                  - type: object
                                    properties:
                                      position:
                                        type: string
                                        description: Position of the team in the standings
                                      name:
                                        type: string
                                        description: Name of the team
                                      id:
                                        type: string
                                        description: Team identifier
                                      status:
                                        type: string
                                        description: 'Status such as ''same'', ''up'', ''down'''
                                      recent_form:
                                        type: string
                                        description: >-
                                          Recent performance form string (e.g.,
                                          'LWWWW')
                                      overall:
                                        $ref: >-
                                          #/paths/~1soccer~1leagues~1%7Bleague-id%7D~1standings/get/responses/200/content/application~1json/schema/properties/standings/properties/tournament/oneOf/0/properties/team/oneOf/0/properties/home
                                      home:
                                        type: object
                                        properties:
                                          games_played:
                                            type: string
                                            nullable: true
                                            description: >-
                                              Number of games played (as string, can
                                              be empty)
                                          wins:
                                            type: string
                                            nullable: true
                                            description: 'Number of wins (as string, can be empty)'
                                          draws:
                                            type: string
                                            nullable: true
                                            description: >-
                                              Number of draws (as string, can be
                                              empty)
                                          losses:
                                            type: string
                                            nullable: true
                                            description: >-
                                              Number of losses (as string, can be
                                              empty)
                                          goals_scored:
                                            type: string
                                            nullable: true
                                            description: 'Goals scored (as string, can be empty)'
                                          goals_allowed:
                                            type: string
                                            nullable: true
                                            description: 'Goals allowed (as string, can be empty)'
                                        required:
                                          - games_played
                                          - wins
                                          - draws
                                          - losses
                                          - goals_scored
                                          - goals_allowed
                                      away:
                                        $ref: >-
                                          #/paths/~1soccer~1leagues~1%7Bleague-id%7D~1standings/get/responses/200/content/application~1json/schema/properties/standings/properties/tournament/oneOf/0/properties/team/oneOf/0/properties/home
                                      total:
                                        type: object
                                        properties:
                                          goal_difference:
                                            type: string
                                            description: >-
                                              Goal difference (can be empty or signed
                                              string like '+4')
                                          points:
                                            type: string
                                            description: Points earned
                                        required:
                                          - goal_difference
                                          - points
                                      description:
                                        type: object
                                        properties:
                                          value:
                                            type: string
                                            description: >-
                                              Description or status notes (may be
                                              empty)
                                        required:
                                          - value
                                    required:
                                      - position
                                      - name
                                      - id
                                      - status
                                      - recent_form
                                      - overall
                                      - home
                                      - away
                                      - total
                                      - description
                                  - type: array
                                    items:
                                      $ref: >-
                                        #/paths/~1soccer~1leagues~1%7Bleague-id%7D~1standings/get/responses/200/content/application~1json/schema/properties/standings/properties/tournament/oneOf/0/properties/team/oneOf/0
                            required:
                              - id
                              - season
                              - stage_id
                              - is_current
                              - team
                          - type: array
                            items:
                              $ref: >-
                                #/paths/~1soccer~1leagues~1%7Bleague-id%7D~1standings/get/responses/200/content/application~1json/schema/properties/standings/properties/tournament/oneOf/0
                    required:
                      - updated
                      - updated_ts
                      - country
                      - tournament
                required:
                  - standings
              examples:
                standingsWithoutGroups:
                  summary: Standings Without Groups
                  value:
                    standings:
                      updated: '09.12.2025 07:14:52'
                      updated_ts: 1765264492
                      country: england
                      tournament:
                        id: '3038'
                        league: Championship
                        season: 2025/2026
                        stage_id: '14382914'
                        is_current: 'True'
                        team:
                          - position: '1'
                            name: Coventry
                            id: '2340949'
                            status: same
                            recent_form: LWWWW
                            overall:
                              games_played: '19'
                              wins: '13'
                              draws: '4'
                              losses: '2'
                              goals_scored: '50'
                              goals_allowed: '21'
                            home:
                              games_played: '9'
                              wins: '7'
                              draws: '2'
                              losses: '0'
                              goals_scored: '25'
                              goals_allowed: '7'
                            away:
                              games_played: '10'
                              wins: '6'
                              draws: '2'
                              losses: '2'
                              goals_scored: '25'
                              goals_allowed: '14'
                            total:
                              goal_difference: '29'
                              points: '43'
                            description:
                              value: Promotion - Premier League
                standingsWithGroups:
                  summary: Standings With Groups
                  value:
                    standings:
                      updated: '12.12.2022 04:40:49'
                      updated_ts: 1670820049
                      country: international
                      tournament:
                        - id: '2889'
                          season: '2022'
                          stage_id: '12892860'
                          is_current: 'False'
                          name: 'FIFA World Cup: Group A'
                          date: 12.12.2022
                          group: Group A
                          group_id: '1989'
                          team:
                            - position: '1'
                              name: Netherlands
                              id: '2345002'
                              status: same
                              recent_form: WDW
                              overall:
                                games_played: '3'
                                wins: '2'
                                draws: '1'
                                losses: '0'
                                goals_scored: '5'
                                goals_allowed: '1'
                              home:
                                games_played: ''
                                wins: ''
                                draws: ''
                                losses: ''
                                goals_scored: ''
                                goals_allowed: ''
                              away:
                                games_played: ''
                                wins: ''
                                draws: ''
                                losses: ''
                                goals_scored: ''
                                goals_allowed: ''
                              total:
                                goal_difference: '+4'
                                points: '7'
                              description:
                                value: Promotion - World Cup (Play Offs)
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: Unauthorized - invalid or missing access_key or invalid sport
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: Resource Not Found - could not find resource
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  '/soccer/leagues/{league-id}/stats':
    get:
      summary: Get League Stats
      description: >
        Returns detailed team and player statistics for a specific soccer
        league. This endpoint data is updated every 4 hours.
      tags:
        - ⚽ Soccer (V2)
      servers:
        - url: 'https://statpal.io/api/v2/'
          description: Production (v2)
      security:
        - ApiKeyAuth: []
      x-update-rate: 14400
      parameters:
        - name: league-id
          in: path
          required: true
          description: League identifier (integer)
          schema:
            type: integer
      responses:
        '200':
          description: Successful response with team and player stats for the league
          content:
            application/json:
              schema:
                type: object
                properties:
                  league_stats:
                    type: object
                    properties:
                      updated:
                        type: string
                        description: 'Human-readable timestamp (e.g., DD.MM.YYYY HH:MM:SS)'
                      updated_ts:
                        type: string
                        description: Timestamp as string
                      league:
                        type: object
                        properties:
                          id:
                            type: string
                            description: League unique identifier
                          name:
                            type: string
                            description: League name
                          country:
                            type: string
                            description: Country where league is located
                          team:
                            type: array
                            items:
                              type: object
                              properties:
                                id:
                                  type: string
                                  description: Team unique identifier
                                name:
                                  type: string
                                  description: Team name
                                venue:
                                  type: object
                                  properties:
                                    id:
                                      type: string
                                      description: Venue id
                                    name:
                                      type: string
                                      description: Venue name
                                  required:
                                    - id
                                    - name
                                squad:
                                  type: object
                                  properties:
                                    player:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          id:
                                            type: string
                                            description: Player identifier
                                          name:
                                            type: string
                                            description: Player name
                                          number:
                                            type: string
                                            description: Player shirt number
                                          age:
                                            type: string
                                            description: Player age
                                          position:
                                            type: string
                                            description: Player position
                                          injured:
                                            type: string
                                            description: >-
                                              Injury status as string, 'True' or
                                              'False'
                                          appearences:
                                            type: string
                                            description: Appearances count as string
                                          assists:
                                            type: string
                                            description: Assists count as string
                                          blocks:
                                            type: string
                                            nullable: true
                                            description: Blocks count
                                          clearances:
                                            type: string
                                            nullable: true
                                          crosses_accurate:
                                            type: string
                                            nullable: true
                                          crosses_total:
                                            type: string
                                            nullable: true
                                          dispossesed:
                                            type: string
                                            nullable: true
                                          dribble_attempts:
                                            type: string
                                            nullable: true
                                          dribble_success:
                                            type: string
                                            nullable: true
                                          duels_total:
                                            type: string
                                            nullable: true
                                          duels_won:
                                            type: string
                                            nullable: true
                                          fouls_committed:
                                            type: string
                                            nullable: true
                                          fouls_drawn:
                                            type: string
                                            nullable: true
                                          goals:
                                            type: string
                                            nullable: true
                                          goals_conceded:
                                            type: string
                                            nullable: true
                                          inside_box_saves:
                                            type: string
                                            nullable: true
                                          interceptions:
                                            type: string
                                            nullable: true
                                          is_captain:
                                            type: string
                                            nullable: true
                                          key_passes:
                                            type: string
                                            nullable: true
                                          lineups:
                                            type: string
                                            nullable: true
                                          minutes_played:
                                            type: string
                                            nullable: true
                                          pass_attempts:
                                            type: string
                                            nullable: true
                                          pass_success:
                                            type: string
                                            nullable: true
                                          penalties_committed:
                                            type: string
                                            nullable: true
                                          penalties_missed:
                                            type: string
                                            nullable: true
                                          penalties_saved:
                                            type: string
                                            nullable: true
                                          penalties_scored:
                                            type: string
                                            nullable: true
                                          penalties_won:
                                            type: string
                                            nullable: true
                                          rating:
                                            type: string
                                            nullable: true
                                          redcards:
                                            type: string
                                            nullable: true
                                          saves:
                                            type: string
                                            nullable: true
                                          shots_on:
                                            type: string
                                            nullable: true
                                          shots_total:
                                            type: string
                                            nullable: true
                                          shots_woodwork:
                                            type: string
                                            nullable: true
                                          substitute_in:
                                            type: string
                                            nullable: true
                                          substitute_out:
                                            type: string
                                            nullable: true
                                          substitutes_on_bench:
                                            type: string
                                            nullable: true
                                          tackles:
                                            type: string
                                            nullable: true
                                          yellowcards:
                                            type: string
                                            nullable: true
                                          yellowred:
                                            type: string
                                            nullable: true
                                        required:
                                          - id
                                          - name
                                          - number
                                          - age
                                          - position
                                          - injured
                                  required:
                                    - player
                                coach:
                                  type: object
                                  properties:
                                    id:
                                      type: string
                                      description: Coach identifier
                                    name:
                                      type: string
                                      description: Coach name
                                  required:
                                    - id
                                    - name
                              required:
                                - id
                                - name
                                - venue
                                - squad
                                - coach
                        required:
                          - id
                          - name
                          - country
                          - team
                    required:
                      - updated
                      - updated_ts
                      - league
                required:
                  - league_stats
              example:
                league_stats:
                  updated: '09.12.2025 17:40:59'
                  updated_ts: '1765302059'
                  league:
                    id: '3037'
                    name: Premier League
                    country: england
                    team:
                      - id: '2340835'
                        name: Arsenal
                        venue:
                          id: '2419812'
                          name: Emirates Stadium
                        squad:
                          player:
                            - id: '2662112'
                              name: David Raya
                              number: '1'
                              age: '30'
                              position: G
                              injured: 'False'
                              appearences: '15'
                              assists: '0'
                              blocks: ''
                              clearances: '11'
                              crosses_accurate: ''
                              crosses_total: ''
                              dispossesed: ''
                              dribble_attempts: ''
                              dribble_success: ''
                              duels_total: '7'
                              duels_won: '7'
                              fouls_committed: ''
                              fouls_drawn: '4'
                              goals: ''
                              goals_conceded: '9'
                              inside_box_saves: '19'
                              interceptions: ''
                              is_captain: 'False'
                              key_passes: '1'
                              lineups: '15'
                              minutes_played: '1350'
                              pass_attempts: '458'
                              pass_success: '301'
                              penalties_committed: ''
                              penalties_missed: '0'
                              penalties_saved: '0'
                              penalties_scored: '0'
                              penalties_won: ''
                              rating: '6.960000'
                              redcards: '0'
                              saves: '25'
                              shots_on: ''
                              shots_total: ''
                              shots_woodwork: ''
                              substitute_in: '0'
                              substitute_out: ''
                              substitutes_on_bench: ''
                              tackles: ''
                              yellowcards: '1'
                              yellowred: ''
                        coach:
                          id: '2334709'
                          name: Mikel Arteta
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: Unauthorized - invalid or missing access_key or invalid sport
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: Resource Not Found - could not find resource
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  /soccer/head-to-head:
    get:
      summary: Get Head To Head Stats
      description: >
        Returns detailed head to head statistics between two soccer teams. This
        endpoint data is updated after a match between two teams.
      tags:
        - ⚽ Soccer (V2)
      servers:
        - url: 'https://statpal.io/api/v2/'
          description: Production (v2)
      security:
        - ApiKeyAuth: []
      parameters:
        - in: query
          name: team1_id
          required: true
          schema:
            type: integer
          description: ID of the first team
        - in: query
          name: team2_id
          required: true
          schema:
            type: integer
          description: ID of the second team
      responses:
        '200':
          description: Successful response with head to head stats data
          content:
            application/json:
              schema:
                type: object
                properties:
                  head-to-head:
                    type: object
                    properties:
                      team1_id:
                        type: string
                        description: ID of the first team
                      team2_id:
                        type: string
                        description: ID of the second team
                      recent_meetings:
                        type: object
                        properties:
                          match:
                            type: array
                            items:
                              type: object
                              properties:
                                main_id:
                                  type: string
                                  description: Primary match identifier
                                fallback_id_1:
                                  type: string
                                  nullable: true
                                  description: Fallback match ID 1
                                country:
                                  type: string
                                  description: Country where match took place
                                league:
                                  type: string
                                  description: League name
                                league_id:
                                  type: string
                                  description: League identifier
                                date:
                                  type: string
                                  description: Date of the match
                                team1_name:
                                  type: string
                                  description: Name of the first team
                                team2_name:
                                  type: string
                                  description: Name of the second team
                                team1_id:
                                  type: string
                                  description: ID of the first team
                                team2_id:
                                  type: string
                                  description: ID of the second team
                                team1_score:
                                  type: string
                                  description: Score of the first team
                                team2_score:
                                  type: string
                                  description: Score of the second team
                              required:
                                - main_id
                                - country
                                - league
                                - league_id
                                - date
                                - team1_name
                                - team2_name
                                - team1_id
                                - team2_id
                                - team1_score
                                - team2_score
                        required:
                          - match
                      overall_record:
                        type: object
                        properties:
                          total:
                            type: object
                            properties:
                              total:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    games:
                                      type: string
                                      nullable: true
                                    team1_won:
                                      type: string
                                      nullable: true
                                    team2_won:
                                      type: string
                                      nullable: true
                                    draws:
                                      type: string
                                      nullable: true
                                  additionalProperties: false
                            required:
                              - total
                          home:
                            type: object
                            properties:
                              team1:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    games:
                                      type: string
                                      nullable: true
                                    won:
                                      type: string
                                      nullable: true
                                    lost:
                                      type: string
                                      nullable: true
                                    draws:
                                      type: string
                                      nullable: true
                                  additionalProperties: false
                              team2:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    games:
                                      type: string
                                      nullable: true
                                    won:
                                      type: string
                                      nullable: true
                                    lost:
                                      type: string
                                      nullable: true
                                    draws:
                                      type: string
                                      nullable: true
                                  additionalProperties: false
                            required:
                              - team1
                              - team2
                          away:
                            $ref: >-
                              #/paths/~1soccer~1head-to-head/get/responses/200/content/application~1json/schema/properties/head-to-head/properties/overall_record/properties/home
                        required:
                          - total
                          - home
                          - away
                      leagues:
                        type: object
                        properties:
                          league:
                            type: array
                            items:
                              type: object
                              properties:
                                name:
                                  type: string
                                  description: League name
                                id:
                                  type: string
                                  description: League ID
                                games:
                                  type: string
                                  description: Number of games played in league
                                team1_won:
                                  type: string
                                  description: Number of games team1 won in league
                                team2_won:
                                  type: string
                                  description: Number of games team2 won in league
                                draw:
                                  type: string
                                  description: Number of draws in league
                              required:
                                - name
                                - id
                                - games
                                - team1_won
                                - team2_won
                                - draw
                        required:
                          - league
                      goals:
                        type: object
                        properties:
                          total:
                            type: object
                            properties:
                              total:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    team1_scored:
                                      type: string
                                      nullable: true
                                    team1_conceded:
                                      type: string
                                      nullable: true
                                    team2_scored:
                                      type: string
                                      nullable: true
                                    team2_conceded:
                                      type: string
                                      nullable: true
                                  additionalProperties: false
                            required:
                              - total
                          home:
                            type: object
                            properties:
                              home:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    team1_scored:
                                      type: string
                                      nullable: true
                                    team1_conceded:
                                      type: string
                                      nullable: true
                                    team2_scored:
                                      type: string
                                      nullable: true
                                    team2_conceded:
                                      type: string
                                      nullable: true
                                  additionalProperties: false
                              away:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    team1_scored:
                                      type: string
                                      nullable: true
                                    team1_conceded:
                                      type: string
                                      nullable: true
                                    team2_scored:
                                      type: string
                                      nullable: true
                                    team2_conceded:
                                      type: string
                                      nullable: true
                                  additionalProperties: false
                            required:
                              - home
                              - away
                          away:
                            $ref: >-
                              #/paths/~1soccer~1head-to-head/get/responses/200/content/application~1json/schema/properties/head-to-head/properties/goals/properties/home
                        required:
                          - total
                          - home
                          - away
                      biggest_victory:
                        type: object
                        properties:
                          team1:
                            $ref: >-
                              #/paths/~1soccer~1head-to-head/get/responses/200/content/application~1json/schema/properties/head-to-head/properties/biggest_defeat/properties/team1
                          team2:
                            $ref: >-
                              #/paths/~1soccer~1head-to-head/get/responses/200/content/application~1json/schema/properties/head-to-head/properties/biggest_defeat/properties/team1
                        required:
                          - team1
                          - team2
                      biggest_defeat:
                        type: object
                        properties:
                          team1:
                            type: object
                            properties:
                              match:
                                $ref: >-
                                  #/paths/~1soccer~1head-to-head/get/responses/200/content/application~1json/schema/properties/head-to-head/properties/recent_meetings/properties/match/items
                            required:
                              - match
                          team2:
                            $ref: >-
                              #/paths/~1soccer~1head-to-head/get/responses/200/content/application~1json/schema/properties/head-to-head/properties/biggest_defeat/properties/team1
                        required:
                          - team1
                          - team2
                      last5_home:
                        type: object
                        properties:
                          team1:
                            type: object
                            properties:
                              match:
                                type: array
                                items:
                                  $ref: >-
                                    #/paths/~1soccer~1head-to-head/get/responses/200/content/application~1json/schema/properties/head-to-head/properties/recent_meetings/properties/match/items
                            required:
                              - match
                          team2:
                            $ref: >-
                              #/paths/~1soccer~1head-to-head/get/responses/200/content/application~1json/schema/properties/head-to-head/properties/last5_home/properties/team1
                        required:
                          - team1
                          - team2
                      last5_away:
                        type: object
                        properties:
                          team1:
                            $ref: >-
                              #/paths/~1soccer~1head-to-head/get/responses/200/content/application~1json/schema/properties/head-to-head/properties/last5_home/properties/team1
                          team2:
                            $ref: >-
                              #/paths/~1soccer~1head-to-head/get/responses/200/content/application~1json/schema/properties/head-to-head/properties/last5_home/properties/team1
                        required:
                          - team1
                          - team2
                    required:
                      - team1_id
                      - team2_id
                      - recent_meetings
                      - overall_record
                      - leagues
                      - goals
                      - biggest_victory
                      - biggest_defeat
                      - last5_home
                      - last5_away
                required:
                  - head-to-head
              example:
                head-to-head:
                  team1_id: '2341082'
                  team2_id: '2341092'
                  recent_meetings:
                    match:
                      - main_id: '2025110918508'
                        fallback_id_1: '6014271'
                        country: england
                        league: Premier League
                        league_id: '3037'
                        date: 09.11.2025
                        team1_name: Manchester City
                        team2_name: Liverpool
                        team1_id: '2341092'
                        team2_id: '2341082'
                        team1_score: '3'
                        team2_score: '0'
                  overall_record:
                    total:
                      total:
                        - games: '180'
                        - team1_won: '83'
                        - team2_won: '48'
                        - draws: '48'
                    home:
                      team1:
                        - games: '90'
                        - won: '52'
                        - lost: '14'
                        - draws: '23'
                      team2:
                        - games: '90'
                        - won: '34'
                        - lost: '31'
                        - draws: '25'
                    away:
                      team1:
                        - games: '90'
                        - won: '31'
                        - lost: '34'
                        - draws: '25'
                      team2:
                        - games: '90'
                        - won: '14'
                        - lost: '52'
                        - draws: '23'
                  leagues:
                    league:
                      - name: UEFA Champions League
                        id: '2838'
                        games: '2'
                        team1_won: '2'
                        team2_won: '0'
                        draw: '0'
                  goals:
                    total:
                      total:
                        - team1_scored: '306'
                        - team1_conceded: '248'
                        - team2_scored: '248'
                        - team2_conceded: '306'
                    home:
                      home:
                        - team1_scored: '176'
                        - team1_conceded: '108'
                        - team2_scored: '140'
                        - team2_conceded: '130'
                    away:
                      away:
                        - team1_scored: '130'
                        - team1_conceded: '140'
                        - team2_scored: '108'
                        - team2_conceded: '176'
                  biggest_victory:
                    team1:
                      match:
                        main_id: '1995102718508'
                        fallback_id_1: '2350096'
                        country: england
                        league: Premier League
                        league_id: '3037'
                        date: 27.10.1995
                        team1_name: Liverpool
                        team2_name: Manchester City
                        team1_id: '2341082'
                        team2_id: '2341092'
                        team1_score: '6'
                        team2_score: '0'
                    team2:
                      match:
                        main_id: '1935091018508'
                        fallback_id_1: '2933802'
                        country: england
                        league: Premier League
                        league_id: '3037'
                        date: 10.09.1935
                        team1_name: Manchester City
                        team2_name: Liverpool
                        team1_id: '2341092'
                        team2_id: '2341082'
                        team1_score: '6'
                        team2_score: '0'
                  biggest_defeat:
                    team1:
                      match:
                        main_id: '1935091018508'
                        fallback_id_1: '2933802'
                        country: england
                        league: Premier League
                        league_id: '3037'
                        date: 10.09.1935
                        team1_name: Manchester City
                        team2_name: Liverpool
                        team1_id: '2341092'
                        team2_id: '2341082'
                        team1_score: '6'
                        team2_score: '0'
                    team2:
                      match:
                        main_id: '1995102718508'
                        fallback_id_1: '2350096'
                        country: england
                        league: Premier League
                        league_id: '3037'
                        date: 27.10.1995
                        team1_name: Liverpool
                        team2_name: Manchester City
                        team1_id: '2341082'
                        team2_id: '2341092'
                        team1_score: '6'
                        team2_score: '0'
                  last5_home:
                    team1:
                      match:
                        - main_id: '2025120318633'
                          fallback_id_1: '6014305'
                          country: england
                          league: Premier League
                          league_id: '3037'
                          date: 03.12.2025
                          team1_name: Liverpool
                          team2_name: Sunderland
                          team1_id: '2341082'
                          team2_id: '2341217'
                          team1_score: '1'
                          team2_score: '1'
                    team2:
                      match:
                        - main_id: '2025120618643'
                          fallback_id_1: '6024479'
                          country: england
                          league: Premier League
                          league_id: '3037'
                          date: 06.12.2025
                          team1_name: Manchester City
                          team2_name: Sunderland
                          team1_id: '2341092'
                          team2_id: '2341217'
                          team1_score: '3'
                          team2_score: '0'
                  last5_away:
                    team1:
                      match:
                        - main_id: '2025120618487'
                          fallback_id_1: '6014311'
                          country: england
                          league: Premier League
                          league_id: '3037'
                          date: 06.12.2025
                          team1_name: Leeds United
                          team2_name: Liverpool
                          team1_id: '2341071'
                          team2_id: '2341082'
                          team1_score: '3'
                          team2_score: '3'
                    team2:
                      match:
                        - main_id: '2025120218434'
                          fallback_id_1: '6014306'
                          country: england
                          league: Premier League
                          league_id: '3037'
                          date: 02.12.2025
                          team1_name: Fulham
                          team2_name: Manchester City
                          team1_id: '2341008'
                          team2_id: '2341092'
                          team1_score: '4'
                          team2_score: '5'
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: Unauthorized - invalid or missing access_key or invalid sport
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: Resource Not Found - could not find resource
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  /soccer/injuries-suspensions:
    get:
      summary: Get Injuries & Suspensions
      description: >
        Provides current information on player injuries and suspensions across
        major soccer leagues, including details on players who are expected to
        miss matches as well as those with questionable status. This endpoint
        data is updated every 1 hour.
      tags:
        - ⚽ Soccer (V2)
      servers:
        - url: 'https://statpal.io/api/v2/'
          description: Production (v2)
      security:
        - ApiKeyAuth: []
      x-update-rate: 3600
      responses:
        '200':
          description: Successful response with injuries and suspensions data
          content:
            application/json:
              schema:
                type: object
                properties:
                  injuries_suspensions:
                    type: object
                    properties:
                      updated:
                        type: string
                        description: 'Human-readable timestamp (e.g., DD.MM.YYYY HH:MM:SS)'
                      updated_ts:
                        type: integer
                        description: Unix timestamp of last update
                      league:
                        type: array
                        items:
                          type: object
                          properties:
                            name:
                              type: string
                              description: League name
                            id:
                              type: string
                              description: League unique identifier
                            sub_id:
                              type: string
                              description: Sub-league identifier (can be empty)
                            match:
                              type: array
                              items:
                                type: object
                                properties:
                                  main_id:
                                    type: string
                                    description: Primary match identifier
                                  fallback_id_1:
                                    type: string
                                    nullable: true
                                    description: Fallback match ID 1
                                  fallback_id_2:
                                    type: string
                                    nullable: true
                                    description: Fallback match ID 2
                                  fallback_id_3:
                                    type: string
                                    nullable: true
                                    description: Fallback match ID 3
                                  date:
                                    type: string
                                    description: Match date
                                  time:
                                    type: string
                                    description: Match time
                                  home:
                                    type: object
                                    properties:
                                      id:
                                        type: string
                                        description: Team identifier
                                      name:
                                        type: string
                                        description: Team name
                                      sidelined:
                                        type: object
                                        properties:
                                          to_miss:
                                            description: Players who will miss the match
                                            nullable: true
                                            oneOf:
                                              - type: object
                                                properties:
                                                  player:
                                                    oneOf:
                                                      - type: object
                                                        properties:
                                                          id:
                                                            type: string
                                                            description: Player identifier
                                                          name:
                                                            type: string
                                                            description: Player name
                                                          status:
                                                            type: string
                                                            description: Injury or suspension status
                                                        required:
                                                          - id
                                                          - name
                                                          - status
                                                      - type: array
                                                        items:
                                                          $ref: >-
                                                            #/paths/~1soccer~1injuries-suspensions/get/responses/200/content/application~1json/schema/properties/injuries_suspensions/properties/league/items/properties/match/items/properties/home/properties/sidelined/properties/to_miss/oneOf/0/properties/player/oneOf/0
                                                required:
                                                  - player
                                              - type: 'null'
                                          questionable:
                                            $ref: >-
                                              #/paths/~1soccer~1injuries-suspensions/get/responses/200/content/application~1json/schema/properties/injuries_suspensions/properties/league/items/properties/match/items/properties/home/properties/sidelined/properties/to_miss
                                            description: Players with questionable status
                                            nullable: true
                                        required:
                                          - to_miss
                                          - questionable
                                    required:
                                      - id
                                      - name
                                      - sidelined
                                  away:
                                    $ref: >-
                                      #/paths/~1soccer~1injuries-suspensions/get/responses/200/content/application~1json/schema/properties/injuries_suspensions/properties/league/items/properties/match/items/properties/home
                                required:
                                  - main_id
                                  - date
                                  - time
                                  - home
                                  - away
                          required:
                            - name
                            - id
                            - sub_id
                            - match
                    required:
                      - updated
                      - updated_ts
                      - league
                required:
                  - injuries_suspensions
              example:
                injuries_suspensions:
                  updated: '26.11.2025 17:01:06'
                  updated_ts: 1764176466
                  league:
                    - id: '2974'
                      name: 'Brazil: Serie A Betano'
                      sub_id: ''
                      match:
                        - main_id: '2025112614481'
                          fallback_id_1: '6111795'
                          fallback_id_2: '6619208'
                          fallback_id_3: '8769818'
                          date: 26.11.2025
                          time: '22:00'
                          home:
                            id: '2339006'
                            name: Bragantino
                            sidelined:
                              to_miss:
                                player:
                                  - id: '2983041'
                                    name: Bruninho
                                    status: Heel Injury
                                  - id: '2901492'
                                    name: Eric Ramires
                                    status: Hamstring Injury
                                  - id: '3002782'
                                    name: Fabinho
                                    status: Inactive
                                  - id: '2857795'
                                    name: Praxedes
                                    status: Yellow Cards
                                  - id: '2965276'
                                    name: G. Rodriguez
                                    status: Knee Injury
                                  - id: '2746355'
                                    name: A. Sant'Anna
                                    status: Hamstring Injury
                              questionable:
                                player:
                                  - id: '3143001'
                                    name: H. Mosquera
                                    status: Hamstring Injury
                                  - id: '3252293'
                                    name: Vinicinho
                                    status: Ankle Injury
                          away:
                            id: '2339141'
                            name: Fortaleza
                            sidelined:
                              to_miss:
                                player:
                                  - id: '2559503'
                                    name: Bruno Pacheco
                                    status: Inactive
                                  - id: '2503339'
                                    name: Joao Ricardo
                                    status: Shoulder Injury
                                  - id: '3160257'
                                    name: Lucca Prior
                                    status: Inactive
                                  - id: '2365059'
                                    name: Marinho
                                    status: Ankle Injury
                                  - id: '3436265'
                                    name: Rodrigo
                                    status: Knee Injury
                              questionable:
                                player:
                                  - id: '2765467'
                                    name: Breno Lopes
                                    status: Injury
                                  - id: '2807098'
                                    name: Weverson
                                    status: Hamstring Injury
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: Unauthorized - invalid or missing access_key or invalid sport
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: Resource Not Found - could not find resource
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  '/soccer/teams/{team_id}':
    get:
      summary: Get Team
      description: >
        Returns detailed information for a specific soccer team by team_id,
        including squad, transfers, trophies, and league stats. This endpoint is
        updated after a match has been completed.
      tags:
        - ⚽ Soccer (V2)
      servers:
        - url: 'https://statpal.io/api/v2/'
          description: Production (v2)
      security:
        - ApiKeyAuth: []
      parameters:
        - name: team_id
          in: path
          description: The unique ID of the soccer team
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Successful response with detailed soccer team information
          content:
            application/json:
              schema:
                type: object
                properties:
                  updated:
                    type: string
                    description: 'Human-readable timestamp (e.g., DD.MM.YYYY HH:MM:SS)'
                  updated_ts:
                    type: integer
                    description: Unix timestamp of last update
                  team:
                    type: object
                    properties:
                      id:
                        type: string
                        description: Team unique identifier
                      name:
                        type: string
                        description: Team name
                      country:
                        type: string
                        description: Country where the team is based
                      founded:
                        type: string
                        description: Year the team was founded
                      is_national_team:
                        type: string
                        description: >-
                          'True' or 'False' as string indicating if the team is
                          a national team
                      is_women:
                        type: string
                        description: >-
                          'True' or 'False' as string indicating if this is a
                          women's team
                      leagues:
                        type: object
                        properties:
                          league_id:
                            type: array
                            items:
                              type: string
                            description: List of league IDs in which the team participates
                        required:
                          - league_id
                      venue_name:
                        type: string
                        description: Name of the team's stadium / venue
                      venue_id:
                        type: string
                        description: Unique identifier of venue
                      venue_surface:
                        type: string
                        description: 'Playing surface of venue (e.g., Grass)'
                      venue_capacity:
                        type: string
                        description: Seating capacity of venue
                      venue_address:
                        type: string
                        description: Venue street address
                      venue_city:
                        type: string
                        description: Venue city
                      coach:
                        type: object
                        properties:
                          name:
                            type: string
                            description: Coach name
                          id:
                            type: string
                            description: Coach identifier
                        required:
                          - name
                          - id
                      squad:
                        type: object
                        properties:
                          player:
                            type: array
                            items:
                              type: object
                              properties:
                                id:
                                  type: string
                                  description: Player unique identifier
                                name:
                                  type: string
                                  description: Player name
                                number:
                                  type: string
                                  nullable: true
                                  description: Squad number of player
                                age:
                                  type: string
                                  nullable: true
                                  description: Player age
                                position:
                                  type: string
                                  description: 'Player position (e.g., G, D, M, A)'
                                is_captain:
                                  type: string
                                  nullable: true
                                  description: >-
                                    'True' or 'False' as string or empty
                                    indicating if player is captain
                                injured:
                                  type: string
                                  description: >-
                                    'True' or 'False' as string indicating if
                                    player is injured
                                minutes_played:
                                  type: string
                                  nullable: true
                                  description: Minutes played
                                starting_lineups:
                                  type: string
                                  nullable: true
                                substitute_in:
                                  type: string
                                  nullable: true
                                substitute_out:
                                  type: string
                                  nullable: true
                                on_bench:
                                  type: string
                                  nullable: true
                                appearences:
                                  type: string
                                  nullable: true
                                assists:
                                  type: string
                                  nullable: true
                                blocks:
                                  type: string
                                  nullable: true
                                clearances:
                                  type: string
                                  nullable: true
                                crosses_accurate:
                                  type: string
                                  nullable: true
                                crosses_total:
                                  type: string
                                  nullable: true
                                dispossesed:
                                  type: string
                                  nullable: true
                                dribble_attempts:
                                  type: string
                                  nullable: true
                                dribble_success:
                                  type: string
                                  nullable: true
                                duels_total:
                                  type: string
                                  nullable: true
                                duels_won:
                                  type: string
                                  nullable: true
                                fouls_committed:
                                  type: string
                                  nullable: true
                                fouls_drawn:
                                  type: string
                                  nullable: true
                                goals:
                                  type: string
                                  nullable: true
                                goals_conceded:
                                  type: string
                                  nullable: true
                                inside_box_saves:
                                  type: string
                                  nullable: true
                                interceptions:
                                  type: string
                                  nullable: true
                                key_passes:
                                  type: string
                                  nullable: true
                                pass_attempts:
                                  type: string
                                  nullable: true
                                pass_success:
                                  type: string
                                  nullable: true
                                pen_committed:
                                  type: string
                                  nullable: true
                                pen_missed:
                                  type: string
                                  nullable: true
                                pen_saved:
                                  type: string
                                  nullable: true
                                pen_scored:
                                  type: string
                                  nullable: true
                                pen_won:
                                  type: string
                                  nullable: true
                                redcards:
                                  type: string
                                  nullable: true
                                saves:
                                  type: string
                                  nullable: true
                                shots_on_target:
                                  type: string
                                  nullable: true
                                shots_total:
                                  type: string
                                  nullable: true
                                shots_woodwork:
                                  type: string
                                  nullable: true
                                tackles:
                                  type: string
                                  nullable: true
                                yellowcards:
                                  type: string
                                  nullable: true
                                yellowred:
                                  type: string
                                  nullable: true
                                rating:
                                  type: string
                                  nullable: true
                              required:
                                - id
                                - name
                                - position
                                - injured
                        required:
                          - player
                      transfers:
                        type: object
                        properties:
                          in:
                            type: object
                            properties:
                              player:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    id:
                                      type: string
                                      description: Player unique identifier for transfer
                                    name:
                                      type: string
                                      description: Player name
                                    date:
                                      type: string
                                      nullable: true
                                      description: 'Date of the transfer (e.g., DD.MM.YYYY)'
                                    age:
                                      type: string
                                      nullable: true
                                    position:
                                      type: string
                                      nullable: true
                                    from:
                                      type: string
                                      nullable: true
                                      description: Origin team in case of 'in' transfers
                                    to:
                                      type: string
                                      nullable: true
                                      description: >-
                                        Destination team in case of 'out'
                                        transfers
                                    team_id:
                                      type: string
                                      nullable: true
                                      description: Origin or destination team ID
                                    type:
                                      type: string
                                      description: >-
                                        Type of transfer (Loan, Free agent,
                                        Transfer, Return from loan)
                                    price:
                                      type: string
                                      nullable: true
                                  required:
                                    - id
                                    - name
                                    - type
                            required:
                              - player
                          out:
                            $ref: >-
                              #/paths/~1soccer~1teams~1%7Bteam_id%7D/get/responses/200/content/application~1json/schema/properties/team/properties/transfers/properties/in
                        required:
                          - in
                          - out
                      trophies:
                        type: object
                        properties:
                          trophy:
                            type: array
                            items:
                              type: object
                              properties:
                                country:
                                  type: string
                                  description: Country of the trophy/league
                                league:
                                  type: string
                                  description: League or trophy name
                                status:
                                  type: string
                                  description: 'Status (Winner, 2nd Place, etc.)'
                                count:
                                  type: string
                                  description: Number of times won or placed
                                seasons:
                                  type: string
                                  description: Comma separated list of seasons
                              required:
                                - country
                                - league
                                - status
                                - count
                                - seasons
                        required:
                          - trophy
                      league_stats:
                        type: object
                        properties:
                          league:
                            type: array
                            items:
                              type: object
                              properties:
                                name:
                                  type: string
                                  description: League name
                                id:
                                  type: string
                                  description: League ID
                                season:
                                  type: string
                                  description: Season for the stats
                                fulltime:
                                  type: object
                                  properties:
                                    win:
                                      type: object
                                      properties:
                                        total:
                                          type: string
                                          nullable: true
                                        home:
                                          type: string
                                          nullable: true
                                        away:
                                          type: string
                                          nullable: true
                                    lost:
                                      $ref: >-
                                        #/paths/~1soccer~1teams~1%7Bteam_id%7D/get/responses/200/content/application~1json/schema/properties/team/properties/league_stats/properties/league/items/properties/fulltime/properties/win
                                    draw:
                                      $ref: >-
                                        #/paths/~1soccer~1teams~1%7Bteam_id%7D/get/responses/200/content/application~1json/schema/properties/team/properties/league_stats/properties/league/items/properties/fulltime/properties/win
                                    win_halftime:
                                      nullable: true
                                      type: object
                                      properties:
                                        ft_win:
                                          type: string
                                          nullable: true
                                        ft_draw:
                                          type: string
                                          nullable: true
                                        ft_lost:
                                          type: string
                                          nullable: true
                                    draw_halftime:
                                      $ref: >-
                                        #/paths/~1soccer~1teams~1%7Bteam_id%7D/get/responses/200/content/application~1json/schema/properties/team/properties/league_stats/properties/league/items/properties/fulltime/properties/win_halftime
                                      nullable: true
                                    lost_halftime:
                                      $ref: >-
                                        #/paths/~1soccer~1teams~1%7Bteam_id%7D/get/responses/200/content/application~1json/schema/properties/team/properties/league_stats/properties/league/items/properties/fulltime/properties/win_halftime
                                      nullable: true
                                    goals_for:
                                      $ref: >-
                                        #/paths/~1soccer~1teams~1%7Bteam_id%7D/get/responses/200/content/application~1json/schema/properties/team/properties/league_stats/properties/league/items/properties/fulltime/properties/fouls
                                      nullable: true
                                    goals_against:
                                      $ref: >-
                                        #/paths/~1soccer~1teams~1%7Bteam_id%7D/get/responses/200/content/application~1json/schema/properties/team/properties/league_stats/properties/league/items/properties/fulltime/properties/fouls
                                      nullable: true
                                    clean_sheet:
                                      $ref: >-
                                        #/paths/~1soccer~1teams~1%7Bteam_id%7D/get/responses/200/content/application~1json/schema/properties/team/properties/league_stats/properties/league/items/properties/fulltime/properties/fouls
                                      nullable: true
                                    avg_goals_per_game_scored:
                                      $ref: >-
                                        #/paths/~1soccer~1teams~1%7Bteam_id%7D/get/responses/200/content/application~1json/schema/properties/team/properties/league_stats/properties/league/items/properties/fulltime/properties/fouls
                                      nullable: true
                                    avg_goals_per_game_conceded:
                                      $ref: >-
                                        #/paths/~1soccer~1teams~1%7Bteam_id%7D/get/responses/200/content/application~1json/schema/properties/team/properties/league_stats/properties/league/items/properties/fulltime/properties/fouls
                                      nullable: true
                                    biggest_victory:
                                      $ref: >-
                                        #/paths/~1soccer~1teams~1%7Bteam_id%7D/get/responses/200/content/application~1json/schema/properties/team/properties/league_stats/properties/league/items/properties/fulltime/properties/biggest_defeat
                                      nullable: true
                                    biggest_defeat:
                                      nullable: true
                                      type: object
                                      properties:
                                        total:
                                          type: string
                                          nullable: true
                                        home:
                                          type: string
                                          nullable: true
                                        away:
                                          type: string
                                          nullable: true
                                    avg_first_goal_scored:
                                      $ref: >-
                                        #/paths/~1soccer~1teams~1%7Bteam_id%7D/get/responses/200/content/application~1json/schema/properties/team/properties/league_stats/properties/league/items/properties/fulltime/properties/fouls
                                      nullable: true
                                    avg_first_goal_conceded:
                                      $ref: >-
                                        #/paths/~1soccer~1teams~1%7Bteam_id%7D/get/responses/200/content/application~1json/schema/properties/team/properties/league_stats/properties/league/items/properties/fulltime/properties/fouls
                                      nullable: true
                                    failed_to_score:
                                      $ref: >-
                                        #/paths/~1soccer~1teams~1%7Bteam_id%7D/get/responses/200/content/application~1json/schema/properties/team/properties/league_stats/properties/league/items/properties/fulltime/properties/fouls
                                      nullable: true
                                    shots_total:
                                      $ref: >-
                                        #/paths/~1soccer~1teams~1%7Bteam_id%7D/get/responses/200/content/application~1json/schema/properties/team/properties/league_stats/properties/league/items/properties/fulltime/properties/fouls
                                      nullable: true
                                    shots_on_goal:
                                      $ref: >-
                                        #/paths/~1soccer~1teams~1%7Bteam_id%7D/get/responses/200/content/application~1json/schema/properties/team/properties/league_stats/properties/league/items/properties/fulltime/properties/fouls
                                      nullable: true
                                    corners:
                                      $ref: >-
                                        #/paths/~1soccer~1teams~1%7Bteam_id%7D/get/responses/200/content/application~1json/schema/properties/team/properties/league_stats/properties/league/items/properties/fulltime/properties/fouls
                                      nullable: true
                                    avg_corners:
                                      $ref: >-
                                        #/paths/~1soccer~1teams~1%7Bteam_id%7D/get/responses/200/content/application~1json/schema/properties/team/properties/league_stats/properties/league/items/properties/fulltime/properties/fouls
                                      nullable: true
                                    offsides:
                                      $ref: >-
                                        #/paths/~1soccer~1teams~1%7Bteam_id%7D/get/responses/200/content/application~1json/schema/properties/team/properties/league_stats/properties/league/items/properties/fulltime/properties/fouls
                                      nullable: true
                                    possession:
                                      $ref: >-
                                        #/paths/~1soccer~1teams~1%7Bteam_id%7D/get/responses/200/content/application~1json/schema/properties/team/properties/league_stats/properties/league/items/properties/fulltime/properties/fouls
                                      nullable: true
                                    fouls:
                                      nullable: true
                                      type: object
                                      properties:
                                        total:
                                          type: string
                                          nullable: true
                                        home:
                                          type: string
                                          nullable: true
                                        away:
                                          type: string
                                          nullable: true
                                    yellowcards:
                                      $ref: >-
                                        #/paths/~1soccer~1teams~1%7Bteam_id%7D/get/responses/200/content/application~1json/schema/properties/team/properties/league_stats/properties/league/items/properties/fulltime/properties/fouls
                                      nullable: true
                                    redcards:
                                      $ref: >-
                                        #/paths/~1soccer~1teams~1%7Bteam_id%7D/get/responses/200/content/application~1json/schema/properties/team/properties/league_stats/properties/league/items/properties/fulltime/properties/fouls
                                      nullable: true
                                    avg_yellowcards:
                                      $ref: >-
                                        #/paths/~1soccer~1teams~1%7Bteam_id%7D/get/responses/200/content/application~1json/schema/properties/team/properties/league_stats/properties/league/items/properties/fulltime/properties/fouls
                                      nullable: true
                                    avg_redcards:
                                      $ref: >-
                                        #/paths/~1soccer~1teams~1%7Bteam_id%7D/get/responses/200/content/application~1json/schema/properties/team/properties/league_stats/properties/league/items/properties/fulltime/properties/fouls
                                      nullable: true
                                firsthalf:
                                  $ref: >-
                                    #/paths/~1soccer~1teams~1%7Bteam_id%7D/get/responses/200/content/application~1json/schema/properties/team/properties/league_stats/properties/league/items/properties/fulltime
                                secondhalf:
                                  $ref: >-
                                    #/paths/~1soccer~1teams~1%7Bteam_id%7D/get/responses/200/content/application~1json/schema/properties/team/properties/league_stats/properties/league/items/properties/fulltime
                                scoring_minutes:
                                  type: object
                                  properties:
                                    period:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          min:
                                            type: string
                                            description: 'Minute range (e.g., 0-15)'
                                          pct:
                                            type: string
                                            description: Percentage of events during this period
                                          count:
                                            type: string
                                            description: Count of events during this period
                                        required:
                                          - min
                                          - pct
                                          - count
                                goals_conceded_minutes:
                                  $ref: >-
                                    #/paths/~1soccer~1teams~1%7Bteam_id%7D/get/responses/200/content/application~1json/schema/properties/team/properties/league_stats/properties/league/items/properties/scoring_minutes
                                yellowcard_minutes:
                                  $ref: >-
                                    #/paths/~1soccer~1teams~1%7Bteam_id%7D/get/responses/200/content/application~1json/schema/properties/team/properties/league_stats/properties/league/items/properties/scoring_minutes
                                redcard_minutes:
                                  $ref: >-
                                    #/paths/~1soccer~1teams~1%7Bteam_id%7D/get/responses/200/content/application~1json/schema/properties/team/properties/league_stats/properties/league/items/properties/scoring_minutes
                              required:
                                - name
                                - id
                                - season
                        required:
                          - league
                    required:
                      - id
                      - name
                required:
                  - updated
                  - updated_ts
                  - team
              example:
                updated: '09.12.2025 19:11:41'
                updated_ts: 1765307501
                team:
                  id: '2340899'
                  name: Bristol City
                  country: England
                  founded: '1894'
                  is_national_team: 'False'
                  is_women: 'False'
                  leagues:
                    league_id:
                      - '3038'
                      - '3367'
                  venue_name: Ashton Gate Stadium
                  venue_id: '2419838'
                  venue_surface: Grass
                  venue_capacity: '27000'
                  venue_address: Ashton Road
                  venue_city: Bristol
                  coach:
                    name: Gerhard Struber
                    id: '2820329'
                  squad:
                    player:
                      - id: '3446137'
                        name: Josey Casa-Grande
                        number: ''
                        age: '20'
                        position: G
                        is_captain: ''
                        injured: 'False'
                        minutes_played: ''
                        starting_lineups: ''
                        substitute_in: ''
                        substitute_out: ''
                        on_bench: ''
                        appearences: ''
                        assists: ''
                        blocks: ''
                        clearances: ''
                        crosses_accurate: ''
                        crosses_total: ''
                        dispossesed: ''
                        dribble_attempts: ''
                        dribble_success: ''
                        duels_total: ''
                        duels_won: ''
                        fouls_committed: ''
                        fouls_drawn: ''
                        goals: ''
                        goals_conceded: ''
                        inside_box_saves: ''
                        interceptions: ''
                        key_passes: ''
                        pass_attempts: ''
                        pass_success: ''
                        pen_committed: ''
                        pen_missed: ''
                        pen_saved: ''
                        pen_scored: ''
                        pen_won: ''
                        redcards: ''
                        saves: ''
                        shots_on_target: ''
                        shots_total: ''
                        shots_woodwork: ''
                        tackles: ''
                        yellowcards: ''
                        yellowred: ''
                        rating: ''
                  transfers:
                    in:
                      player:
                        - id: '2664686'
                          name: Joe Lumley
                          date: 27.10.2025
                          age: ''
                          position: ''
                          from: Sheffield Wed
                          team_id: '2341182'
                          type: Return from loan
                          price: ''
                    out:
                      player:
                        - id: '2664686'
                          name: Joe Lumley
                          date: 20.10.2025
                          age: ''
                          position: ''
                          to: Sheffield Wed
                          team_id: '2341182'
                          type: Loan
                          price: ''
                  trophies:
                    trophy:
                      - country: England
                        league: Championship
                        status: Winner
                        count: '1'
                        seasons: '1905/1906,'
                  league_stats:
                    league:
                      - name: Championship
                        id: '3038'
                        season: 2025/2026
                        fulltime:
                          win:
                            total: '8'
                            home: '4'
                            away: '4'
                          lost:
                            total: '6'
                            home: '4'
                            away: '2'
                          draw:
                            total: '5'
                            home: '2'
                            away: '3'
                        firsthalf:
                          win:
                            total: '9'
                            home: '5'
                            away: '4'
                          lost:
                            total: '4'
                            home: '2'
                            away: '2'
                          draw:
                            total: '6'
                            home: '3'
                            away: '3'
                        secondhalf:
                          win:
                            total: '4'
                            home: '2'
                            away: '2'
                          lost:
                            total: '6'
                            home: '3'
                            away: '2'
                          draw:
                            total: '9'
                            home: '5'
                            away: '4'
                        scoring_minutes:
                          period:
                            - min: 0-15
                              pct: 11%
                              count: '3'
                            - min: 15-30
                              pct: 23%
                              count: '6'
                        goals_conceded_minutes:
                          period:
                            - min: 0-15
                              pct: 19%
                              count: '4'
                        yellowcard_minutes:
                          period:
                            - min: 15-30
                              pct: 7%
                              count: '2'
                        redcard_minutes:
                          period:
                            - min: 0-15
                              pct: '%'
                              count: '0'
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: Unauthorized - invalid or missing access_key or invalid team_id
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: Resource Not Found - could not find team with specified team_id
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  '/soccer/players/{player_id}':
    get:
      summary: Get Player
      description: >
        Returns detailed information about a soccer player including personal
        details, club and national statistics, transfers, trophies, and injury
        history.  This endpoint is updated after a match has been completed.
      tags:
        - ⚽ Soccer (V2)
      servers:
        - url: 'https://statpal.io/api/v2/'
          description: Production (v2)
      security:
        - ApiKeyAuth: []
      parameters:
        - name: player_id
          in: path
          description: Player identifier
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Successful response with detailed player information
          content:
            application/json:
              schema:
                type: object
                properties:
                  updated:
                    type: string
                    description: 'Human-readable timestamp (e.g., DD.MM.YYYY HH:MM:SS)'
                  updated_ts:
                    type: integer
                    description: Unix timestamp of last update
                  player:
                    type: object
                    properties:
                      id:
                        type: string
                        description: Player unique identifier
                      name:
                        type: string
                        description: Full player name
                      firstname:
                        type: string
                        description: Player first name
                      lastname:
                        type: string
                        description: Player last name
                      age:
                        type: string
                        description: Player age as string
                      birthdate:
                        type: string
                        description: Player birthdate in DD.MM.YYYY format
                      nationality:
                        type: string
                        description: Player nationality
                      birthplace:
                        type: string
                        description: Player birthplace
                      birthcountry:
                        type: string
                        description: Player birth country
                      position:
                        type: string
                        description: Player main playing position
                      height:
                        type: string
                        description: Player height in centimeters as string
                      weight:
                        type: string
                        description: Player weight in kilograms as string
                      preferred_foot:
                        type: string
                        description: Player's preferred foot
                      team:
                        type: string
                        description: Player's current team name
                      team_id:
                        type: string
                        description: Current team unique identifier
                      national_team_id:
                        type: string
                        description: National team unique identifier
                      market_value_eur:
                        type: string
                        description: Player's market value in euros as string
                      club_league_statistics:
                        type: object
                        properties:
                          club:
                            type: array
                            items:
                              type: object
                              properties:
                                team_id:
                                  type: string
                                  description: Team identifier
                                team_name:
                                  type: string
                                  description: Team name
                                league_id:
                                  type: string
                                  description: League identifier
                                league:
                                  type: string
                                  description: League name
                                season:
                                  type: string
                                  description: 'Season identifier (e.g., 2025/2026)'
                                is_captain:
                                  type: string
                                  description: >-
                                    '1' if player is captain, '0' or empty
                                    otherwise
                                minutes_played:
                                  type: string
                                  description: Minutes played as string
                                appearances:
                                  type: string
                                  description: Number of appearances
                                starting_lineups:
                                  type: string
                                  description: Number of times in starting lineup
                                substitute_in:
                                  type: string
                                  description: Number of substitute ins
                                substitute_out:
                                  type: string
                                  nullable: true
                                  description: Number of substitute outs
                                on_bench:
                                  type: string
                                  nullable: true
                                  description: Number of times on bench
                                assists:
                                  type: string
                                blocks:
                                  type: string
                                clearances:
                                  type: string
                                crosses_accurate:
                                  type: string
                                crosses_total:
                                  type: string
                                dispossesed:
                                  type: string
                                dribble_attempts:
                                  type: string
                                dribble_success:
                                  type: string
                                duels_total:
                                  type: string
                                duels_won:
                                  type: string
                                fouls_committed:
                                  type: string
                                fouls_drawn:
                                  type: string
                                goals:
                                  type: string
                                goals_conceded:
                                  type: string
                                inside_box_saves:
                                  type: string
                                interceptions:
                                  type: string
                                key_passes:
                                  type: string
                                pass_attempts:
                                  type: string
                                pass_success:
                                  type: string
                                pen_committed:
                                  type: string
                                pen_missed:
                                  type: string
                                pen_saved:
                                  type: string
                                pen_scored:
                                  type: string
                                pen_won:
                                  type: string
                                rating:
                                  type: string
                                redcards:
                                  type: string
                                saves:
                                  type: string
                                shots_on_target:
                                  type: string
                                shots_total:
                                  type: string
                                shots_woodwork:
                                  type: string
                                tackles:
                                  type: string
                                yellowcards:
                                  type: string
                                yellowred:
                                  type: string
                              required:
                                - team_id
                                - team_name
                                - league_id
                                - league
                                - season
                        required:
                          - club
                      club_domestic_cup_statistics:
                        $ref: >-
                          #/paths/~1soccer~1players~1%7Bplayer_id%7D/get/responses/200/content/application~1json/schema/properties/player/properties/club_league_statistics
                      club_intl_cup_statistics:
                        $ref: >-
                          #/paths/~1soccer~1players~1%7Bplayer_id%7D/get/responses/200/content/application~1json/schema/properties/player/properties/club_league_statistics
                      overall_club_statistics:
                        type: object
                        properties:
                          minutes_played:
                            type: string
                          appearances:
                            type: string
                          starting_lineups:
                            type: string
                          substitute_in:
                            type: string
                          assists:
                            type: string
                          blocks:
                            type: string
                          clearances:
                            type: string
                          crosses_accurate:
                            type: string
                          crosses_total:
                            type: string
                          dispossesed:
                            type: string
                          dribble_attempts:
                            type: string
                          dribble_success:
                            type: string
                          duels_total:
                            type: string
                          duels_won:
                            type: string
                          fouls_committed:
                            type: string
                          fouls_drawn:
                            type: string
                          goals_conceded:
                            type: string
                          inside_box_saves:
                            type: string
                          interceptions:
                            type: string
                          key_passes:
                            type: string
                          pass_attempts:
                            type: string
                          pass_success:
                            type: string
                          pen_committed:
                            type: string
                          pen_missed:
                            type: string
                          pen_saved:
                            type: string
                          pen_scored:
                            type: string
                          pen_won:
                            type: string
                          rating:
                            type: string
                          saves:
                            type: string
                          shots_on_target:
                            type: string
                          shots_total:
                            type: string
                          shots_woodwork:
                            type: string
                          tackles:
                            type: string
                      national_team_statistics:
                        type: object
                        properties:
                          leagues:
                            type: array
                            items:
                              $ref: >-
                                #/paths/~1soccer~1players~1%7Bplayer_id%7D/get/responses/200/content/application~1json/schema/properties/player/properties/club_league_statistics/properties/club/items
                        required:
                          - leagues
                      transfers:
                        type: array
                        items:
                          type: object
                          properties:
                            date:
                              type: string
                              description: Transfer date
                            from:
                              type: string
                              description: Previous team name
                            from_id:
                              type: string
                              description: Previous team id
                            to:
                              type: string
                              description: New team name
                            to_id:
                              type: string
                              description: New team id
                            type:
                              type: string
                              description: Transfer type
                            price:
                              type: string
                              description: Transfer price
                          required:
                            - date
                            - from
                            - from_id
                            - to
                            - to_id
                            - type
                            - price
                      trophies:
                        type: object
                        properties:
                          trophy:
                            type: array
                            items:
                              type: object
                              properties:
                                country:
                                  type: string
                                  description: Country of the competition
                                league:
                                  type: string
                                  description: League or competition name
                                status:
                                  type: string
                                  description: >-
                                    Position or result in competition (e.g.
                                    Winner, 2nd Place)
                                count:
                                  type: string
                                  description: Number of times won or placed
                                seasons:
                                  type: string
                                  description: Seasons involved (comma separated)
                              required:
                                - country
                                - league
                                - status
                                - count
                                - seasons
                        required:
                          - trophy
                      sidelined_history:
                        type: array
                        items:
                          type: object
                          properties:
                            type:
                              type: string
                              description: Type of injury or issue causing sidelined
                            date_start:
                              type: string
                              description: Start date of sidelined period
                            date_end:
                              type: string
                              description: End date of sidelined period
                          required:
                            - type
                            - date_start
                            - date_end
                    required:
                      - id
                      - name
                required:
                  - updated
                  - updated_ts
                  - player
              example:
                updated: '09.12.2025 21:45:23'
                updated_ts: 1765316723
                player:
                  id: '2773317'
                  name: Erling Haaland
                  firstname: Erling
                  lastname: Haaland
                  age: '25'
                  birthdate: 21.07.2000
                  nationality: Norway
                  birthplace: Leeds
                  birthcountry: Norway
                  position: Forward
                  height: '195'
                  weight: '88'
                  preferred_foot: Left
                  team: Manchester City
                  team_id: '2341092'
                  national_team_id: '2345515'
                  market_value_eur: '196000000'
                  club_league_statistics:
                    club:
                      - team_id: '2341092'
                        team_name: Manchester City
                        league_id: '3037'
                        league: Premier League
                        season: 2025/2026
                        is_captain: '0'
                        minutes_played: '1287'
                        appearances: '15'
                        starting_lineups: '15'
                        substitute_in: '0'
                        substitute_out: ''
                        on_bench: ''
                        assists: '3'
                        blocks: '1'
                        clearances: '25'
                        crosses_accurate: ''
                        crosses_total: ''
                        dispossesed: '7'
                        dribble_attempts: '15'
                        dribble_success: '6'
                        duels_total: '109'
                        duels_won: '58'
                        fouls_committed: '12'
                        fouls_drawn: '10'
                        goals: '15'
                        goals_conceded: '0'
                        inside_box_saves: ''
                        interceptions: '2'
                        key_passes: '8'
                        pass_attempts: '172'
                        pass_success: '7'
                        pen_committed: ''
                        pen_missed: '1'
                        pen_saved: ''
                        pen_scored: '0'
                        pen_won: ''
                        rating: '7.640000'
                        redcards: '0'
                        saves: ''
                        shots_on_target: '32'
                        shots_total: '52'
                        shots_woodwork: ''
                        tackles: '4'
                        yellowcards: '0'
                        yellowred: ''
                  club_domestic_cup_statistics:
                    club: []
                  club_intl_cup_statistics:
                    club: []
                  overall_club_statistics:
                    minutes_played: '24910'
                    appearances: '336'
                    starting_lineups: '294'
                    substitute_in: '42'
                    assists: '51'
                    blocks: '22'
                    clearances: '183'
                    crosses_accurate: '15'
                    crosses_total: '92'
                    dispossesed: '173'
                    dribble_attempts: '421'
                    dribble_success: '205'
                    duels_total: '1898'
                    duels_won: '836'
                    fouls_committed: '286'
                    fouls_drawn: '205'
                    goals_conceded: '0'
                    inside_box_saves: ''
                    interceptions: '39'
                    key_passes: '264'
                    pass_attempts: '4122'
                    pass_success: '21'
                    pen_committed: ''
                    pen_missed: '7'
                    pen_saved: ''
                    pen_scored: '44'
                    pen_won: '4'
                    rating: '7.345846'
                    saves: ''
                    shots_on_target: '565'
                    shots_total: '938'
                    shots_woodwork: '5'
                    tackles: '61'
                  national_team_statistics:
                    leagues: []
                  transfers: []
                  trophies: {}
                  sidelined_history: []
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: Unauthorized - invalid or missing access_key or invalid sport
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: Resource Not Found - could not find resource/player
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  '/soccer/coaches/{coach_id}':
    get:
      summary: Get Coach
      description: >
        Returns detailed information about a specific soccer coach by coach ID.
        This endpoint is updated every 1 month.
      tags:
        - ⚽ Soccer (V2)
      servers:
        - url: 'https://statpal.io/api/v2/'
          description: Production (v2)
      security:
        - ApiKeyAuth: []
      x-update-rate: 15
      parameters:
        - name: coach_id
          in: path
          required: true
          description: Numeric coach identifier.
          schema:
            type: integer
      responses:
        '200':
          description: Successful response with coach details
          content:
            application/json:
              schema:
                type: object
                properties:
                  updated:
                    type: string
                    description: 'Human-readable timestamp (e.g., DD.MM.YYYY HH:MM:SS)'
                  updated_ts:
                    type: integer
                    description: Unix timestamp of last update
                  coach:
                    type: object
                    properties:
                      id:
                        type: string
                        description: Unique coach identifier
                      name:
                        type: string
                        description: Full name of the coach
                      firstname:
                        type: string
                        description: First name of the coach
                      lastname:
                        type: string
                        description: Last name of the coach
                      team:
                        type: string
                        description: Current team name
                      team_id:
                        type: string
                        description: Current team ID
                      nationality:
                        type: string
                        description: Nationality of the coach
                      birthdate:
                        type: string
                        description: Coach birthdate in DD/MM/YYYY format
                      age:
                        type: string
                        description: Age of the coach as string
                      birthcountry:
                        type: string
                        description: Country of birth
                      birthplace:
                        type: string
                        description: Place of birth
                      height:
                        type: string
                        description: Height with units
                      weight:
                        type: string
                        description: Weight with units
                      trophies:
                        description: List of trophies
                        type: object
                        properties:
                          trophy:
                            type: array
                            items:
                              type: object
                              properties:
                                country:
                                  type: string
                                  description: Country of the competition
                                league:
                                  type: string
                                  description: League or competition name
                                status:
                                  type: string
                                  description: 'Position/status (Winner, 2nd Place, etc.)'
                                count:
                                  type: string
                                  description: Number of times achieved
                                seasons:
                                  type: string
                                  description: Seasons or years
                              required:
                                - country
                                - league
                                - status
                                - count
                                - seasons
                        required:
                          - trophy
                      career_stats:
                        description: Career statistics per team
                        type: object
                        properties:
                          team:
                            type: array
                            items:
                              type: object
                              properties:
                                name:
                                  type: string
                                  description: Team name
                                id:
                                  type: string
                                  description: Team ID
                                from:
                                  type: string
                                  description: Start date/period
                                to:
                                  type: string
                                  description: End date/period (empty if current)
                              required:
                                - name
                                - id
                        required:
                          - team
                    required:
                      - id
                      - name
                      - firstname
                      - lastname
                required:
                  - updated
                  - updated_ts
                  - coach
              example:
                updated: '09.12.2025 20:48:58'
                updated_ts: 1765313338
                coach:
                  id: '2436485'
                  name: Pep Guardiola
                  firstname: Josep
                  lastname: Guardiola i Sala
                  team: Manchester City
                  team_id: '2341092'
                  nationality: Spain
                  birthdate: 18/01/1971
                  age: '54'
                  birthcountry: Spain
                  birthplace: Santpedor
                  height: 180 cm
                  weight: 70 kg
                  trophies:
                    trophy:
                      - country: Spain
                        league: La Liga
                        status: Winner
                        count: '3'
                        seasons: '2010/2011, 2009/2010, 2008/2009'
                      - country: England
                        league: Premier League
                        status: Winner
                        count: '6'
                        seasons: >-
                          2023/2024, 2022/2023, 2021/2022, 2020/2021, 2018/2019,
                          2017/2018
                  career_stats:
                    team:
                      - name: Manchester City
                        id: '2341092'
                        from: July 2016
                        to: ''
                      - name: Bayern Munich
                        id: '2342118'
                        from: June 2013
                        to: June 2016
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: Unauthorized - invalid or missing access_key or invalid sport
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: Resource Not Found - coach not found
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  /soccer/images:
    get:
      summary: Get Image
      description: >
        Retrieves an image associated with a soccer team, venue, player, or
        coach.

        For venue images, please use the corresponding team ID.


        **Example:**
        https://statpal.io/api/v2/soccer/images?type=team&id={team_id}&access_key={your_access_key}


        Requests to this endpoint will redirect to an image link that is valid
        for 5 minutes.


        **Image requests are free** and do not count toward your daily quota,
        but they are subject to rate limiting.

        For client-side implementations, we recommend downloading and hosting
        images on your own server or cdn to avoid exceeding rate limits.


        StatPal does not own the intellectual property rights to logos, images,
        or trademarks provided through the API; these are included for
        identification and illustrative purposes only.

        Some of these visual assets may be protected by trademark or
        intellectual property rights held by third parties such as leagues,
        clubs, federations, players, photographers, and others.

        If you use this content in your websites, applications, or other
        products, you may need to obtain the appropriate licenses or permissions
        from the original rights holders.

        Ensuring that your use complies with all applicable legal and licensing
        obligations is your responsibility.

        Additionally, **StatPal is not affiliated with, sponsored by, or
        endorsed by any sports organization, federation, or brand featured in
        the data.**
      tags:
        - ⚽ Soccer (V2)
      servers:
        - url: 'https://statpal.io/api/v2/'
          description: Production (v2)
      security:
        - ApiKeyAuth: []
      parameters:
        - in: query
          name: type
          required: true
          schema:
            type: string
            enum:
              - team
              - venue
              - player
              - coach
          description: Type of image resource requested.
        - in: query
          name: id
          required: true
          schema:
            type: integer
          description: Unique identifier of the resource.
      responses:
        '200':
          description: Successful response returning the requested image in PNG format.
          content:
            image/png:
              schema:
                type: string
                format: binary
              example: >-
                iVBORw0KGgoAAAANSUhEUgAAAAUA... (binary PNG data truncated for
                brevity)
        '400':
          description: Invalid request due to missing or invalid parameters.
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: >-
            Unauthorized request due to missing or invalid API key or invalid
            resource ID.
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: Resource not found for the specified type and ID.
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Rate limit exceeded due to too many requests.
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error encountered while processing the request.
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  '/soccer/leagues/{league-id}/odds/prematch':
    get:
      summary: Get Pre-Match Odds
      description: >
        Returns prematch odds for soccer matches in a specified league. This
        endpoint data is updated every 30 minutes.
      tags:
        - ⚽ Soccer (V2)
      servers:
        - url: 'https://statpal.io/api/v2/'
          description: Production (v2)
      security:
        - ApiKeyAuth: []
      x-update-rate: 1800
      parameters:
        - in: path
          name: league-id
          schema:
            type: integer
          required: true
          description: Numeric ID of the soccer league
      responses:
        '200':
          description: Successful response with prematch odds for the league matches
          content:
            application/json:
              schema:
                type: object
                properties:
                  prematch_odds:
                    type: object
                    properties:
                      updated:
                        type: string
                        description: 'Human-readable timestamp (e.g., DD.MM.YYYY HH:MM:SS)'
                      updated_ts:
                        type: integer
                        description: Unix timestamp of last update
                      league:
                        type: object
                        properties:
                          id:
                            type: string
                            description: League unique identifier
                          name:
                            type: string
                            description: League name
                          country:
                            type: string
                            description: Country where league is located
                          match:
                            type: array
                            items:
                              type: object
                              properties:
                                main_id:
                                  type: string
                                  description: Primary match identifier
                                fallback_id_1:
                                  type: string
                                  nullable: true
                                  description: Fallback match ID 1
                                fallback_id_2:
                                  type: string
                                  nullable: true
                                  description: Fallback match ID 2
                                fallback_id_3:
                                  type: string
                                  nullable: true
                                  description: Fallback match ID 3
                                date:
                                  type: string
                                  description: Match date
                                time:
                                  type: string
                                  description: Match time
                                home:
                                  type: object
                                  properties:
                                    id:
                                      type: string
                                      description: Team identifier
                                    name:
                                      type: string
                                      description: Team name
                                  required:
                                    - id
                                    - name
                                away:
                                  $ref: >-
                                    #/paths/~1soccer~1leagues~1%7Bleague-id%7D~1odds~1prematch/get/responses/200/content/application~1json/schema/properties/prematch_odds/properties/league/properties/match/items/properties/home
                                odds:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      id:
                                        type: string
                                        description: Odds market identifier
                                      name:
                                        type: string
                                        description: >-
                                          Name of the odds market (e.g., 1x2,
                                          Asian Handicap)
                                      stop:
                                        type: string
                                        description: >-
                                          'True' or 'False' as string indicating
                                          if betting is stopped for this market
                                      bookmaker:
                                        oneOf:
                                          - type: array
                                            items:
                                              $ref: >-
                                                #/paths/~1soccer~1leagues~1%7Bleague-id%7D~1odds~1prematch/get/responses/200/content/application~1json/schema/properties/prematch_odds/properties/league/properties/match/items/properties/odds/items/properties/bookmaker/oneOf/1
                                          - type: object
                                            properties:
                                              id:
                                                type: string
                                                description: Bookmaker identifier
                                              name:
                                                type: string
                                                description: Bookmaker name
                                              timestamp:
                                                type: integer
                                                description: >-
                                                  Unix timestamp when odds were last
                                                  updated
                                              odd:
                                                type: array
                                                nullable: true
                                                description: >-
                                                  List of simple odds for this bookmaker
                                                  and market
                                                items:
                                                  type: object
                                                  properties:
                                                    name:
                                                      type: string
                                                      description: >-
                                                        Name or outcome for the odd (e.g., Home,
                                                        Draw, Over)
                                                    value:
                                                      type: string
                                                      description: Odds value as string
                                                  required:
                                                    - name
                                                    - value
                                              handicap:
                                                oneOf:
                                                  - type: array
                                                    nullable: true
                                                    description: List of handicaps with respective odds
                                                    items:
                                                      $ref: >-
                                                        #/paths/~1soccer~1leagues~1%7Bleague-id%7D~1odds~1prematch/get/responses/200/content/application~1json/schema/properties/prematch_odds/properties/league/properties/match/items/properties/odds/items/properties/bookmaker/oneOf/1/properties/handicap/oneOf/1
                                                  - type: object
                                                    properties:
                                                      name:
                                                        type: string
                                                        description: 'Handicap value (e.g., -1, +0.5)'
                                                      stop:
                                                        type: string
                                                        description: >-
                                                          'True' or 'False' indicating if betting
                                                          stopped for this handicap
                                                      odd:
                                                        type: array
                                                        items:
                                                          $ref: >-
                                                            #/paths/~1soccer~1leagues~1%7Bleague-id%7D~1odds~1prematch/get/responses/200/content/application~1json/schema/properties/prematch_odds/properties/league/properties/match/items/properties/odds/items/properties/bookmaker/oneOf/1/properties/odd/items
                                                      is_main:
                                                        type: string
                                                        description: >-
                                                          'True' or 'False' indicating if this is
                                                          the main handicap for the market
                                                    required:
                                                      - name
                                                      - stop
                                                      - odd
                                                  - type: 'null'
                                              total:
                                                oneOf:
                                                  - type: array
                                                    nullable: true
                                                    description: >-
                                                      List of total goals or points lines with
                                                      odds
                                                    items:
                                                      $ref: >-
                                                        #/paths/~1soccer~1leagues~1%7Bleague-id%7D~1odds~1prematch/get/responses/200/content/application~1json/schema/properties/prematch_odds/properties/league/properties/match/items/properties/odds/items/properties/bookmaker/oneOf/1/properties/total/oneOf/1
                                                  - type: object
                                                    properties:
                                                      name:
                                                        type: string
                                                        description: 'Total line (e.g., 2.5 goals)'
                                                      stop:
                                                        type: string
                                                        description: >-
                                                          'True' or 'False' indicating if betting
                                                          stopped for this total line
                                                      odd:
                                                        type: array
                                                        items:
                                                          $ref: >-
                                                            #/paths/~1soccer~1leagues~1%7Bleague-id%7D~1odds~1prematch/get/responses/200/content/application~1json/schema/properties/prematch_odds/properties/league/properties/match/items/properties/odds/items/properties/bookmaker/oneOf/1/properties/odd/items
                                                      is_main:
                                                        type: string
                                                        nullable: true
                                                        description: >-
                                                          'True' or 'False' indicating if this is
                                                          the main total line (nullable when
                                                          absent)
                                                    required:
                                                      - name
                                                      - stop
                                                      - odd
                                                  - type: 'null'
                                            required:
                                              - id
                                              - name
                                              - timestamp
                                    required:
                                      - id
                                      - name
                                      - stop
                                      - bookmaker
                              required:
                                - main_id
                                - date
                                - time
                                - home
                                - away
                        required:
                          - id
                          - name
                          - country
                          - match
                    required:
                      - updated
                      - updated_ts
                      - league
                required:
                  - prematch_odds
              example:
                prematch_odds:
                  updated: '09.12.2025 17:15:44'
                  updated_ts: 1765300544
                  league:
                    id: '3037'
                    name: 'England: Premier League'
                    country: england
                    match:
                      - main_id: '2025121318250'
                        fallback_id_1: '6014320'
                        fallback_id_2: '6521701'
                        fallback_id_3: '8800931'
                        date: 13.12.2025
                        time: '15:00'
                        home:
                          id: '2340925'
                          name: Chelsea
                        away:
                          id: '2340991'
                          name: Everton
                        odds:
                          - id: '1834'
                            name: 1x2
                            stop: 'False'
                            bookmaker:
                              - id: '1847'
                                name: 10Bet
                                timestamp: '1765252069'
                                odd:
                                  - name: Home
                                    value: '1.64'
                                  - name: Draw
                                    value: '3.75'
                                  - name: Away
                                    value: '5.10'
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: Unauthorized - invalid or missing access_key or invalid sport
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: Resource Not Found - could not find resource
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  /soccer/odds/live:
    get:
      summary: Get Live Odds
      description: |
        Returns live odds for today’s soccer matches in real-time. 

        Optionally filter by **match_id** to get odds for a specific match. 

        Live Odds Results and Events are stored for 3 days after the match.

        This endpoint is updated every 5 seconds.
      tags:
        - ⚽ Soccer (V2)
      servers:
        - url: 'https://statpal.io/api/v2/'
          description: Production (v2)
      security:
        - ApiKeyAuth: []
      x-update-rate: 5
      parameters:
        - name: match_id
          in: query
          description: >-
            Optional match identifier to filter for specific matches (results
            are available for 3 days after the match).
          required: false
          schema:
            type: integer
      responses:
        '200':
          description: Successful response with live odds data
          content:
            application/json:
              schema:
                oneOf:
                  - type: object
                    properties:
                      updated:
                        type: string
                        description: 'Human-readable timestamp (e.g., DD.MM.YYYY HH:MM:SS)'
                      updated_ts:
                        type: integer
                        description: Unix timestamp of last update
                      live_matches:
                        type: array
                        items:
                          $ref: >-
                            #/paths/~1soccer~1odds~1live/get/responses/200/content/application~1json/schema/oneOf/1/properties/live_match
                    required:
                      - updated
                      - updated_ts
                      - live_matches
                  - type: object
                    properties:
                      updated:
                        type: string
                        description: 'Human-readable timestamp (e.g., DD.MM.YYYY HH:MM:SS)'
                      updated_ts:
                        type: integer
                        description: Unix timestamp of last update
                      live_match:
                        type: object
                        properties:
                          match_info:
                            type: object
                            properties:
                              name:
                                type: string
                                description: Match name
                              main_id:
                                type: string
                                description: Primary match identifier
                              fallback_id_1:
                                type: string
                                nullable: true
                                description: Fallback match ID 1
                              fallback_id_2:
                                type: string
                                nullable: true
                                description: Fallback match ID 2
                              fallback_id_3:
                                type: string
                                nullable: true
                                description: Fallback match ID 3
                              league_id:
                                type: string
                                description: League ID
                              league:
                                type: string
                                description: League name
                              start_date:
                                type: string
                                description: Match start date
                              start_time:
                                type: string
                                description: Match start time
                              start_ts:
                                type: integer
                                description: Match start timestamp
                              start_ts_utc:
                                type: integer
                                description: Match start timestamp in UTC
                              score:
                                type: string
                                description: 'Current score as string ''Home:Away'''
                              period:
                                type: string
                                description: 'Current period e.g., 2nd Half'
                              minute:
                                type: string
                                description: Current minute in match
                              seconds:
                                type: string
                                description: 'Current seconds in match e.g., 67:23'
                              state_code:
                                type: string
                                description: Current state code
                              state_name:
                                type: string
                                description: Description of current state
                              state_details:
                                type: string
                                nullable: true
                                description: Additional details about state
                              ball_pos:
                                type: string
                                nullable: true
                                description: 'Ball position as coordinates e.g., ''0.38,0.25'''
                            required:
                              - name
                              - main_id
                              - league_id
                              - league
                              - start_date
                              - start_time
                              - start_ts
                              - start_ts_utc
                              - score
                              - period
                              - minute
                              - seconds
                              - state_code
                              - state_name
                          status:
                            type: object
                            properties:
                              stopped:
                                type: string
                                description: '''0'' or ''1'' indicating if match is stopped'
                              blocked:
                                type: string
                                description: '''0'' or ''1'' indicating if match is blocked'
                              finished:
                                type: string
                                description: '''0'' or ''1'' indicating if match is finished'
                              updated:
                                type: string
                                description: Human-readable timestamp of status update
                              updated_ts:
                                type: string
                                description: Timestamp of status update
                            required:
                              - stopped
                              - blocked
                              - finished
                              - updated
                              - updated_ts
                          team_info:
                            type: object
                            properties:
                              home:
                                type: object
                                properties:
                                  name:
                                    type: string
                                    description: Team name
                                  id:
                                    type: string
                                    description: Team identifier
                                  score:
                                    type: string
                                    description: Current score for the team
                                  kit_color:
                                    type: string
                                    description: Comma separated kit colors
                                required:
                                  - name
                                  - id
                                  - score
                                  - kit_color
                              away:
                                $ref: >-
                                  #/paths/~1soccer~1odds~1live/get/responses/200/content/application~1json/schema/oneOf/0/properties/live_matches/items/properties/team_info/properties/home
                            required:
                              - home
                              - away
                          stats:
                            type: object
                            additionalProperties:
                              type: object
                              properties:
                                name:
                                  type: string
                                  description: 'Name of the stat (Goal, Corner, etc.)'
                                home:
                                  type: string
                                  description: Home team stat value
                                away:
                                  type: string
                                  description: Away team stat value
                              required:
                                - name
                                - home
                                - away
                          match_events:
                            type: array
                            items:
                              type: object
                              properties:
                                minute:
                                  type: string
                                  description: Minute of the event
                                event:
                                  type: string
                                  description: Description of the event
                              required:
                                - minute
                                - event
                            nullable: true
                          odds:
                            type: array
                            items:
                              type: object
                              properties:
                                market_id:
                                  type: string
                                  description: Identifier for the betting market
                                market_name:
                                  type: string
                                  description: Name of the betting market
                                suspended:
                                  type: string
                                  description: '''0'' or ''1'' indicating if market is suspended'
                                lines:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      id:
                                        type: string
                                        description: Identifier for the betting line
                                      name:
                                        type: string
                                        description: Name/label of the betting line
                                      odd:
                                        type: string
                                        description: Odds value
                                      suspended:
                                        type: string
                                        description: >-
                                          '0' or '1' indicating if line is
                                          suspended
                                      handicap:
                                        type: string
                                        nullable: true
                                        description: Handicap value if applicable
                                      is_main:
                                        type: string
                                        nullable: true
                                        description: >-
                                          '0' or '1' indicating if this is a main
                                          line
                                    required:
                                      - id
                                      - name
                                      - odd
                                      - suspended
                              required:
                                - market_id
                                - market_name
                                - suspended
                                - lines
                        required:
                          - match_info
                          - status
                          - team_info
                          - odds
                    required:
                      - updated
                      - updated_ts
                      - live_match
              examples:
                all_live_odds:
                  summary: Example response with all live odds (minimal with real data)
                  value:
                    updated: '12.09.2025 19:11:15'
                    updated_ts: 1765307475079
                    live_matches:
                      - match_info:
                          name: Bayern Munich vs Sporting
                          main_id: '2025120924733'
                          fallback_id_1: '6081404'
                          fallback_id_2: '6588817'
                          fallback_id_3: '8673516'
                          league_id: '2838'
                          league: UEFA Champions League
                          start_date: 09.12.2025
                          start_time: '17:45'
                          start_ts: 1765302300
                          start_ts_utc: 1765302300
                          score: '1:1'
                          period: 2nd Half
                          minute: '67'
                          seconds: '67:23'
                          state_code: '12835'
                          state_name: Home Team In Possession
                          state_details: J Tah
                          ball_pos: '0.38,0.25'
                        status:
                          stopped: '0'
                          blocked: '0'
                          finished: '0'
                          updated: '09.12.2025 19:11:13'
                          updated_ts: '1765307473170'
                        team_info:
                          home:
                            name: Bayern Munich
                            id: '2342118'
                            score: '1'
                            kit_color: >-
                              #C40010,#C40010,#C40010,#C40010,#C40010,#0046A8,#022857,#451021,#451021,#C40010,#F0F0F0
                          away:
                            name: Sporting
                            id: '2346281'
                            score: '1'
                            kit_color: >-
                              #0A0A0A,#0A0A0A,#0A0A0A,#0A0A0A,#C40010,#0046A8,#0A0A0A,#F0F0F0,#F0F0F0,#F0F0F0,#F0F0F0
                        stats:
                          '0':
                            name: Team
                            home: Bayern Munich
                            away: Sporting
                        match_events: []
                        odds: []
                single_match_odds:
                  summary: >-
                    Example response with single match odds (minimal with real
                    data)
                  value:
                    updated: '12.09.2025 19:13:33'
                    updated_ts: 1765307613446
                    live_match:
                      match_info:
                        name: SKN St Polten (W) vs Juventus (W)
                        main_id: '2025120959069'
                        fallback_id_1: '6103258'
                        fallback_id_2: '6610671'
                        fallback_id_3: '8739619'
                        league_id: '2836'
                        league: UEFA Women's Champions League
                        start_date: 09.12.2025
                        start_time: '17:45'
                        start_ts: 1765302300
                        start_ts_utc: 1765302300
                        score: '0:4'
                        period: 2nd Half
                        minute: '69'
                        seconds: '69:01'
                        state_code: '23134'
                        state_name: Away Takeonattack
                        state_details: C Beccari
                        ball_pos: '0.3,0.93'
                      status:
                        stopped: '0'
                        blocked: '0'
                        finished: '0'
                        updated: '09.12.2025 19:13:31'
                        updated_ts: '1765307611890'
                      team_info:
                        home:
                          name: SKN St Polten (W)
                          id: '2360609'
                          score: '0'
                          kit_color: >-
                            #2B72DE,#2B72DE,#FF00FF,#00FFFF,#FF0000,#0000FF,#0A0A0A,#FBED32,#FBED32,#FBED32,#FBED32
                        away:
                          name: Juventus (W)
                          id: '2362126'
                          score: '4'
                          kit_color: >-
                            #0A0A0A,#F0F0F0,#0A0A0A,#F0F0F0,#5C8FAE,#FFDF1B,#F0F0F0,#0A0A0A,#F0F0F0,#FFDF1B,#0A0A0A
                      stats:
                        '0':
                          name: Team
                          home: SKN St Polten (W)
                          away: Juventus (W)
                      match_events:
                        - minute: '3'
                          event: >-
                            3' - 1st Shot Off Target - (Juventus (W) - Estela
                            Carbonell
                      odds:
                        - market_id: '1835'
                          market_name: Away Team Goals
                          suspended: '0'
                          lines:
                            - id: '12730483153'
                              name: Over
                              odd: '1.5'
                              suspended: '0'
                              handicap: '4.5'
                              is_main: null
                            - id: '12730483154'
                              name: Under
                              odd: '2.5'
                              suspended: '0'
                              handicap: '4.5'
                              is_main: null
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: Unauthorized - invalid or missing access_key or invalid sport
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: Resource Not Found - could not find resource
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  /soccer/odds/live/markets:
    get:
      summary: Get Live Odds Markets
      description: >
        Returns the list of live odds markets available in soccer. This endpoint
        is updated every 12 hours.
      tags:
        - ⚽ Soccer (V2)
      servers:
        - url: 'https://statpal.io/api/v2/'
          description: Production (v2)
      security:
        - ApiKeyAuth: []
      x-update-rate: 43200
      responses:
        '200':
          description: Successful response with list of live odds markets
          content:
            application/json:
              schema:
                type: array
                description: List of live odds markets for soccer.
                items:
                  type: object
                  properties:
                    id:
                      type: integer
                      description: Unique identifier for the odds market
                      example: 1845
                    name:
                      type: string
                      description: Name of the odds market
                      example: Asian Handicap
                  required:
                    - id
                    - name
              example:
                - id: 1845
                  name: Asian Handicap
                - id: 1844
                  name: 3-Way Handicap
                - id: 3610
                  name: Fulltime Result
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: Unauthorized - invalid or missing access_key or invalid sport
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: Resource Not Found - could not find resource
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  /soccer/odds/live/match-states:
    get:
      summary: Get Live Odds Match States
      description: >
        Returns the list of live odds match states such as current match phase
        or key events. This endpoint is updated every 12 hours.
      tags:
        - ⚽ Soccer (V2)
      servers:
        - url: 'https://statpal.io/api/v2/'
          description: Production (v2)
      security:
        - ApiKeyAuth: []
      x-update-rate: 43200
      responses:
        '200':
          description: Successful response with the list of live odds match states
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: integer
                      description: Unique identifier of the live odds match state
                    name:
                      type: string
                      description: Name/description of the live odds match state
                  required:
                    - id
                    - name
              example:
                - id: 12833
                  name: Home Team Dangerous Attack
                - id: 22833
                  name: Away Team Dangerous Attack
                - id: 12834
                  name: Home Team Attack
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: Unauthorized - invalid or missing access_key or invalid sport
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: Resource Not Found - could not find resource
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  /nhl/livescores:
    get:
      summary: Get Live Scores
      description: >
        Returns NHL live scores with detailed period events. This endpoint data
        is updated every 15 seconds.
      tags:
        - "\U0001F3D2 NHL (V1)"
      servers:
        - url: 'https://statpal.io/api/v1/'
          description: Production (v1)
      security:
        - ApiKeyAuth: []
      x-update-rate: 15
      responses:
        '200':
          description: Successful response with NHL live scores and events by period
          content:
            application/json:
              schema:
                type: object
                properties:
                  livescores:
                    type: object
                    properties:
                      sport:
                        type: string
                        description: Sport name
                      tournament:
                        type: object
                        properties:
                          country:
                            type: string
                            description: Country of the tournament
                          gid:
                            type: string
                            description: Global tournament ID
                          id:
                            type: string
                            description: Tournament ID
                          league:
                            type: string
                            description: Tournament league name
                          match:
                            type: array
                            items:
                              type: object
                              properties:
                                date:
                                  type: string
                                  description: Date of the match (DD.MM.YYYY)
                                fix_id:
                                  type: string
                                  description: Fix ID for the match
                                id:
                                  type: string
                                  description: Match unique ID
                                status:
                                  type: string
                                  description: >-
                                    Current status of the match (e.g., Finished,
                                    After Penalties)
                                time:
                                  type: string
                                  description: Scheduled or actual time
                                timer:
                                  type: string
                                  description: Timer info if available
                                home:
                                  type: object
                                  properties:
                                    id:
                                      type: string
                                      description: Team ID
                                    name:
                                      type: string
                                      description: Team name
                                    totalscore:
                                      type: string
                                      description: >-
                                        Total score of the team (string to allow
                                        empty)
                                  required:
                                    - id
                                    - name
                                    - totalscore
                                away:
                                  $ref: >-
                                    #/paths/~1nhl~1livescores/get/responses/200/content/application~1json/schema/properties/livescores/properties/tournament/properties/match/items/properties/home
                                events:
                                  type: object
                                  properties:
                                    firstperiod:
                                      $ref: >-
                                        #/paths/~1nhl~1livescores/get/responses/200/content/application~1json/schema/properties/livescores/properties/tournament/properties/match/items/properties/events/properties/overtime
                                    secondperiod:
                                      $ref: >-
                                        #/paths/~1nhl~1livescores/get/responses/200/content/application~1json/schema/properties/livescores/properties/tournament/properties/match/items/properties/events/properties/overtime
                                    thirdperiod:
                                      $ref: >-
                                        #/paths/~1nhl~1livescores/get/responses/200/content/application~1json/schema/properties/livescores/properties/tournament/properties/match/items/properties/events/properties/overtime
                                    overtime:
                                      type: object
                                      properties:
                                        score:
                                          type: string
                                          description: >-
                                            Score summary for the period (e.g., '1 -
                                            2')
                                        event:
                                          oneOf:
                                            - type: array
                                              items:
                                                type: object
                                                properties:
                                                  assist:
                                                    type: string
                                                    description: Assist players separated by commas
                                                    nullable: true
                                                  assistid:
                                                    type: string
                                                    description: Assist player IDs separated by commas
                                                    nullable: true
                                                  comment:
                                                    type: string
                                                    description: Additional comments about the event
                                                    nullable: true
                                                  min:
                                                    type: string
                                                    description: Minute of event
                                                  player:
                                                    type: string
                                                    description: Player name
                                                  playerid:
                                                    type: string
                                                    description: Player ID
                                                  result:
                                                    type: string
                                                    description: Score or result after event
                                                    nullable: true
                                                  team:
                                                    type: string
                                                    description: '''localteam'' or ''visitorteam'''
                                                  type:
                                                    type: string
                                                    description: >-
                                                      Event type such as 'goal', 'penalty',
                                                      etc.
                                                required:
                                                  - min
                                                  - player
                                                  - playerid
                                                  - team
                                                  - type
                                            - type: object
                                              description: >-
                                                Single event object for when only one
                                                event present
                                              properties:
                                                assist:
                                                  type: string
                                                  description: Assist players
                                                  nullable: true
                                                assistid:
                                                  type: string
                                                  description: Assist player IDs
                                                  nullable: true
                                                comment:
                                                  type: string
                                                  description: Additional comment
                                                  nullable: true
                                                min:
                                                  type: string
                                                  description: Minute of the event
                                                player:
                                                  type: string
                                                  description: Player involved
                                                playerid:
                                                  type: string
                                                  description: Player ID
                                                result:
                                                  type: string
                                                  description: Score/result after event
                                                  nullable: true
                                                team:
                                                  type: string
                                                  description: '''localteam'' or ''visitorteam'''
                                                type:
                                                  type: string
                                                  description: 'Event type (goal, penalty, etc.)'
                                              required:
                                                - min
                                                - player
                                                - playerid
                                                - team
                                                - type
                                              additionalProperties: false
                                          nullable: true
                                      required:
                                        - score
                                    penalties:
                                      $ref: >-
                                        #/paths/~1nhl~1livescores/get/responses/200/content/application~1json/schema/properties/livescores/properties/tournament/properties/match/items/properties/events/properties/overtime
                                  required:
                                    - firstperiod
                                    - secondperiod
                                    - thirdperiod
                                    - overtime
                                    - penalties
                              required:
                                - date
                                - fix_id
                                - id
                                - status
                                - time
                                - home
                                - away
                                - events
                        required:
                          - country
                          - gid
                          - id
                          - league
                          - match
                    required:
                      - sport
                      - tournament
                required:
                  - livescores
              example:
                livescores:
                  sport: hockey
                  tournament:
                    country: usa
                    gid: '2506'
                    id: '2506'
                    league: 'Usa: Nhl'
                    match:
                      - date: 10.12.2025
                        fix_id: '915351'
                        id: '626422'
                        status: Finished
                        time: '00:00'
                        timer: ''
                        home:
                          id: '2614'
                          name: Montreal Canadiens
                          totalscore: '1'
                        away:
                          id: '2656'
                          name: Tampa Bay Lightning
                          totalscore: '6'
                        events:
                          firstperiod:
                            score: 0 - 3
                            event:
                              - assist: 'J. Guentzel,O. Bjorkstrand'
                                assistid: '16569,5415'
                                comment: ''
                                min: '02'
                                player: B. Point
                                playerid: '7998'
                                result: '[0 - 1]'
                                team: visitorteam
                                type: goal
                              - assist: ''
                                assistid: ''
                                comment: Roughing
                                min: '03'
                                player: B. Gallagher
                                playerid: '10918'
                                result: ''
                                team: localteam
                                type: penalty
                          secondperiod:
                            score: 1 - 1
                            event:
                              - assist: N. Kucherov
                                assistid: '2895'
                                comment: ''
                                min: '02'
                                player: C. D'Astous
                                playerid: '65686'
                                result: '[0 - 4]'
                                team: visitorteam
                                type: goal
                          thirdperiod:
                            score: 0 - 2
                            event:
                              - assist: A. Cirelli
                                assistid: '2844'
                                comment: ''
                                min: '01'
                                player: D. Raddysh
                                playerid: '5416'
                                result: '[1 - 5]'
                                team: visitorteam
                                type: goal
                          overtime:
                            score: ''
                          penalties:
                            score: ''
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: Unauthorized - invalid or missing access_key or invalid sport
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: Resource Not Found - could not find resource
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  '/nhl/daily/{day_offset_token}':
    get:
      summary: Get Games Recent / Upcoming
      description: >
        Returns NHL games for the specified daily offset token with detailed
        period events. This endpoint data is updated every 12 hours.
      tags:
        - "\U0001F3D2 NHL (V1)"
      servers:
        - url: 'https://statpal.io/api/v1/'
          description: Production (v1)
      security:
        - ApiKeyAuth: []
      parameters:
        - name: day_offset_token
          in: path
          description: >
            Offset token relative to today to fetch games. Valid values are from
            "d-7" to "d7" (e.g., "d-1", "d1").
          required: true
          schema:
            type: string
            enum:
              - d-1
              - d-2
              - d-3
              - d-4
              - d-5
              - d-6
              - d-7
              - d1
              - d2
              - d3
              - d4
              - d5
              - d6
              - d7
      x-update-rate: 43200
      responses:
        '200':
          description: Successful response with NHL games recent or upcoming by date offset
          content:
            application/json:
              schema:
                $ref: >-
                  /static/openapi/schemas/nhl/v1/nhlaily_dailygames.yaml#/NHLailyDailyGamesResponseV1
              example:
                scores:
                  sport: hockey
                  tournament:
                    country: usa
                    id: '2506'
                    league: 'Usa: Nhl'
                    match:
                      - date: 05.01.2025
                        fix_id: '868488'
                        id: '588230'
                        status: Finished
                        time: '00:00'
                        timer: ''
                        home:
                          id: '2625'
                          name: Carolina Hurricanes
                          totalscore: '0'
                        away:
                          id: '2624'
                          name: Minnesota Wild
                          totalscore: '4'
                        events:
                          firstperiod:
                            score: 0 - 1
                            event:
                              - assist: J. Eriksson
                                assistid: '2017'
                                comment: High sticking
                                min: '01'
                                player: J. Eriksson
                                playerid: '2017'
                                result: ''
                                team: visitorteam
                                type: penalty
                          secondperiod:
                            score: 0 - 1
                            event:
                              - assist: ''
                                assistid: ''
                                comment: Tripping
                                min: '04'
                                player: M. Zuccarello
                                playerid: '4504'
                                result: ''
                                team: visitorteam
                                type: penalty
                          thirdperiod:
                            score: 0 - 2
                            event: []
                          overtime:
                            score: ''
                          penalties:
                            score: ''
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: Unauthorized - invalid or missing access_key or invalid sport
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: Resource Not Found - could not find resource
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  /nhl/season-schedule:
    get:
      summary: Get Full Schedule / Results
      description: >
        Returns the full NHL season schedule and results, including detailed
        match events, team stats, and goalkeeper stats.  Data is updated every 1
        hour.
      tags:
        - "\U0001F3D2 NHL (V1)"
      servers:
        - url: 'https://statpal.io/api/v1/'
          description: Production (v1)
      security:
        - ApiKeyAuth: []
      x-update-rate: 3600
      responses:
        '200':
          description: >-
            Successful response with full NHL season schedule and detailed match
            results
          content:
            application/json:
              schema:
                type: object
                properties:
                  scores:
                    type: object
                    properties:
                      sport:
                        type: string
                        description: Sport name
                      tournament:
                        type: object
                        properties:
                          country:
                            type: string
                            description: Country of the tournament
                          id:
                            type: string
                            description: Tournament ID
                          league:
                            type: string
                            description: Tournament league name
                          season:
                            type: string
                            description: 'Season string (e.g., ''2025/2026'')'
                          match:
                            type: array
                            items:
                              type: object
                              properties:
                                date:
                                  type: string
                                  description: Date of the match (DD.MM.YYYY)
                                id:
                                  type: string
                                  description: Match unique ID
                                stats_id:
                                  type: string
                                  description: Stats ID for detailed statistics
                                status:
                                  type: string
                                  description: >-
                                    Current status of the match (e.g., Finished,
                                    After Penalties)
                                time:
                                  type: string
                                  description: Scheduled or actual time
                                venue:
                                  type: string
                                  description: Name of the venue or stadium
                                home:
                                  type: object
                                  properties:
                                    id:
                                      type: string
                                      description: Team ID
                                    name:
                                      type: string
                                      description: Team name
                                    totalscore:
                                      type: string
                                      description: >-
                                        Total score of the team (string to allow
                                        empty)
                                  required:
                                    - id
                                    - name
                                    - totalscore
                                away:
                                  $ref: >-
                                    #/paths/~1nhl~1season-schedule/get/responses/200/content/application~1json/schema/properties/scores/properties/tournament/properties/match/items/properties/home
                                events:
                                  type: object
                                  properties:
                                    firstperiod:
                                      $ref: >-
                                        #/paths/~1nhl~1season-schedule/get/responses/200/content/application~1json/schema/properties/scores/properties/tournament/properties/match/items/properties/events/properties/overtime
                                    secondperiod:
                                      $ref: >-
                                        #/paths/~1nhl~1season-schedule/get/responses/200/content/application~1json/schema/properties/scores/properties/tournament/properties/match/items/properties/events/properties/overtime
                                    thirdperiod:
                                      $ref: >-
                                        #/paths/~1nhl~1season-schedule/get/responses/200/content/application~1json/schema/properties/scores/properties/tournament/properties/match/items/properties/events/properties/overtime
                                    overtime:
                                      type: object
                                      properties:
                                        score:
                                          type: string
                                          description: >-
                                            Score summary for the period (e.g., '1 -
                                            2')
                                        event:
                                          oneOf:
                                            - type: array
                                              items:
                                                type: object
                                                properties:
                                                  assist:
                                                    type: string
                                                    description: Assist players separated by commas
                                                    nullable: true
                                                  assistid:
                                                    type: string
                                                    description: Assist player IDs separated by commas
                                                    nullable: true
                                                  comment:
                                                    type: string
                                                    description: Additional comments about the event
                                                    nullable: true
                                                  min:
                                                    type: string
                                                    description: Minute of event
                                                  player:
                                                    type: string
                                                    description: Player name
                                                  playerid:
                                                    type: string
                                                    description: Player ID
                                                  result:
                                                    type: string
                                                    description: Score or result after event
                                                    nullable: true
                                                  team:
                                                    type: string
                                                    description: '''localteam'' or ''visitorteam'''
                                                  type:
                                                    type: string
                                                    description: >-
                                                      Event type such as 'goal', 'penalty',
                                                      etc.
                                                required:
                                                  - min
                                                  - player
                                                  - playerid
                                                  - team
                                                  - type
                                            - type: object
                                              description: >-
                                                Single event object for when only one
                                                event present
                                              properties:
                                                assist:
                                                  type: string
                                                  description: Assist players
                                                  nullable: true
                                                assistid:
                                                  type: string
                                                  description: Assist player IDs
                                                  nullable: true
                                                comment:
                                                  type: string
                                                  description: Additional comment
                                                  nullable: true
                                                min:
                                                  type: string
                                                  description: Minute of the event
                                                player:
                                                  type: string
                                                  description: Player involved
                                                playerid:
                                                  type: string
                                                  description: Player ID
                                                result:
                                                  type: string
                                                  description: Score/result after event
                                                  nullable: true
                                                team:
                                                  type: string
                                                  description: '''localteam'' or ''visitorteam'''
                                                type:
                                                  type: string
                                                  description: 'Event type (goal, penalty, etc.)'
                                              required:
                                                - min
                                                - player
                                                - playerid
                                                - team
                                                - type
                                              additionalProperties: false
                                          nullable: true
                                      required:
                                        - score
                                    penalties:
                                      $ref: >-
                                        #/paths/~1nhl~1season-schedule/get/responses/200/content/application~1json/schema/properties/scores/properties/tournament/properties/match/items/properties/events/properties/overtime
                                  required:
                                    - firstperiod
                                    - secondperiod
                                    - thirdperiod
                                    - overtime
                                    - penalties
                                team_stats:
                                  type: object
                                  properties:
                                    home:
                                      type: object
                                      properties:
                                        shots:
                                          type: object
                                          properties:
                                            bocked_shots:
                                              type: string
                                              description: Blocked shots
                                              nullable: true
                                            offgoal:
                                              type: string
                                              description: Shots off goal
                                              nullable: true
                                            ongoal:
                                              type: string
                                              description: Shots on goal
                                              nullable: true
                                            shots_pct:
                                              type: string
                                              description: Shots percentage
                                              nullable: true
                                          required:
                                            - bocked_shots
                                            - offgoal
                                            - ongoal
                                            - shots_pct
                                        saves:
                                          type: object
                                          properties:
                                            saves_pct:
                                              type: string
                                              description: Save percentage
                                              nullable: true
                                            total:
                                              type: string
                                              description: Total saves
                                              nullable: true
                                          required:
                                            - saves_pct
                                            - total
                                        penalties:
                                          type: object
                                          properties:
                                            minutes:
                                              type: string
                                              description: Penalty minutes
                                              nullable: true
                                            penalties:
                                              type: string
                                              description: Number of penalties
                                              nullable: true
                                          required:
                                            - minutes
                                            - penalties
                                        goals:
                                          type: object
                                          properties:
                                            empty_net_goals:
                                              type: string
                                              description: Empty net goals
                                              nullable: true
                                            pen_kill_pct:
                                              type: string
                                              description: Penalty kill percentage
                                              nullable: true
                                            pp_goals:
                                              type: string
                                              description: Power-play goals
                                              nullable: true
                                            pp_pct:
                                              type: string
                                              description: Power-play percentage
                                              nullable: true
                                            sh_goals:
                                              type: string
                                              description: Shorthanded goals
                                              nullable: true
                                          required:
                                            - empty_net_goals
                                            - pen_kill_pct
                                            - pp_goals
                                            - pp_pct
                                            - sh_goals
                                        faceoffs:
                                          type: object
                                          properties:
                                            pct:
                                              type: string
                                              description: Faceoffs percentage
                                              nullable: true
                                            won:
                                              type: string
                                              description: Number of faceoffs won
                                              nullable: true
                                          required:
                                            - pct
                                            - won
                                      required:
                                        - shots
                                        - saves
                                        - penalties
                                        - goals
                                        - faceoffs
                                    away:
                                      $ref: >-
                                        #/paths/~1nhl~1season-schedule/get/responses/200/content/application~1json/schema/properties/scores/properties/tournament/properties/match/items/properties/team_stats/properties/home
                                  required:
                                    - home
                                    - away
                                player_stats:
                                  type: object
                                  description: Player stats (nullable or undefined)
                                  nullable: true
                                  additionalProperties: true
                                goalkeeper_stats:
                                  type: object
                                  properties:
                                    home:
                                      nullable: true
                                      type: object
                                      properties:
                                        player:
                                          oneOf:
                                            - type: array
                                              items:
                                                type: object
                                                properties:
                                                  credit:
                                                    type: string
                                                    description: 'Win credit, e.g., ''W'''
                                                    nullable: true
                                                  goals_against:
                                                    type: string
                                                    description: Goals against
                                                    nullable: true
                                                  id:
                                                    type: string
                                                    description: Player ID
                                                  name:
                                                    type: string
                                                    description: Player name
                                                  penalty_minutes:
                                                    type: string
                                                    description: Penalty minutes
                                                    nullable: true
                                                  saves:
                                                    type: string
                                                    description: Number of saves
                                                  saves_pct:
                                                    type: string
                                                    description: Save percentage
                                                  shots_against:
                                                    type: string
                                                    description: Shots against
                                                  time_on_ice:
                                                    type: string
                                                    description: Time on ice
                                                required:
                                                  - id
                                                  - name
                                                  - saves
                                                  - saves_pct
                                                  - time_on_ice
                                            - type: object
                                              additionalProperties: false
                                              properties:
                                                credit:
                                                  type: string
                                                  nullable: true
                                                goals_against:
                                                  type: string
                                                  nullable: true
                                                id:
                                                  type: string
                                                name:
                                                  type: string
                                                penalty_minutes:
                                                  type: string
                                                  nullable: true
                                                saves:
                                                  type: string
                                                saves_pct:
                                                  type: string
                                                shots_against:
                                                  type: string
                                                time_on_ice:
                                                  type: string
                                              required:
                                                - id
                                                - name
                                                - saves
                                                - saves_pct
                                                - time_on_ice
                                          nullable: true
                                      required:
                                        - player
                                    away:
                                      $ref: >-
                                        #/paths/~1nhl~1season-schedule/get/responses/200/content/application~1json/schema/properties/scores/properties/tournament/properties/match/items/properties/goalkeeper_stats/properties/home
                                      nullable: true
                                  required:
                                    - home
                                    - away
                              required:
                                - date
                                - id
                                - stats_id
                                - status
                                - time
                                - venue
                                - home
                                - away
                                - events
                                - team_stats
                                - player_stats
                                - goalkeeper_stats
                        required:
                          - country
                          - id
                          - league
                          - season
                          - match
                    required:
                      - sport
                      - tournament
                required:
                  - scores
              example:
                scores:
                  sport: hockey
                  tournament:
                    country: usa
                    id: '2506'
                    league: NHL
                    season: 2025/2026
                    match:
                      - date: 20.09.2025
                        id: '615674'
                        stats_id: '66885'
                        status: After Penalties
                        time: '23:00'
                        venue: American Airlines Center
                        home:
                          id: '2645'
                          name: Dallas Stars
                          totalscore: '2'
                        away:
                          id: '2787'
                          name: St. Louis Blues
                          totalscore: '1'
                        events:
                          firstperiod:
                            score: 0 - 0
                            event:
                              - assist: ''
                                assistid: ''
                                comment: Fighting
                                min: '04'
                                player: J. Hryckowian
                                playerid: '99052'
                                result: ''
                                team: localteam
                                type: penalty
                              - assist: ''
                                assistid: ''
                                comment: Fighting
                                min: '04'
                                player: N. Walker
                                playerid: '97717'
                                result: ''
                                team: visitorteam
                                type: penalty
                          secondperiod:
                            score: 1 - 1
                            event:
                              - assist: 'L. Mailloux,D. Holloway'
                                assistid: '98668,98392'
                                comment: Power-play
                                min: '00'
                                player: J. Carbonneau
                                playerid: '83146'
                                result: '[0 - 1]'
                                team: visitorteam
                                type: goal
                          thirdperiod:
                            score: 0 - 0
                            event:
                              assist: ''
                              assistid: ''
                              comment: High sticking
                              min: '14'
                              player: J. Hryckowian
                              playerid: '99052'
                              result: ''
                              team: localteam
                              type: penalty
                          overtime:
                            score: 0 - 0
                            event:
                              assist: ''
                              assistid: ''
                              comment: Tripping
                              min: '01'
                              player: J. Carbonneau
                              playerid: '83146'
                              result: ''
                              team: visitorteam
                              type: penalty
                          penalties:
                            score: 1 - 0
                        team_stats:
                          home:
                            shots:
                              bocked_shots: '18'
                              offgoal: ''
                              ongoal: '34'
                              shots_pct: '2'
                            saves:
                              saves_pct: '93'
                              total: '14'
                            penalties:
                              minutes: '9'
                              penalties: '3'
                            goals:
                              empty_net_goals: '0'
                              pen_kill_pct: '66'
                              pp_goals: '0'
                              pp_pct: '0'
                              sh_goals: '0'
                            faceoffs:
                              pct: '31'
                              won: '31'
                          away:
                            shots:
                              bocked_shots: '11'
                              offgoal: ''
                              ongoal: '15'
                              shots_pct: '6'
                            saves:
                              saves_pct: '97'
                              total: '33'
                            penalties:
                              minutes: '9'
                              penalties: '3'
                            goals:
                              empty_net_goals: '0'
                              pen_kill_pct: '100'
                              pp_goals: '1'
                              pp_pct: '33'
                              sh_goals: '0'
                            faceoffs:
                              pct: '15'
                              won: '15'
                        player_stats:
                          home: null
                          away: null
                        goalkeeper_stats:
                          home:
                            player:
                              - credit: W
                                goals_against: '1'
                                id: '100614'
                                name: R. Poirier
                                penalty_minutes: ''
                                saves: '11'
                                saves_pct: 91.66%
                                shots_against: 11-
                                time_on_ice: '35:19'
                          away:
                            player:
                              - credit: ''
                                goals_against: '2'
                                id: '99670'
                                name: J. Binnington
                                penalty_minutes: ''
                                saves: '20'
                                saves_pct: 95.23%
                                shots_against: 20-
                                time_on_ice: '36:23'
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: Unauthorized - invalid or missing access_key or invalid sport
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: Resource Not Found - could not find resource
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  /nhl/standings:
    get:
      summary: Get Standings
      description: >
        Returns NHL standings with detailed stats by conference, division, and
        team. This endpoint data is updated every 1 hour.
      tags:
        - "\U0001F3D2 NHL (V1)"
      servers:
        - url: 'https://statpal.io/api/v1/'
          description: Production (v1)
      security:
        - ApiKeyAuth: []
      x-update-rate: 3600
      responses:
        '200':
          description: Successful response with NHL standings data
          content:
            application/json:
              schema:
                type: object
                properties:
                  standings:
                    type: object
                    properties:
                      sport:
                        type: string
                        description: Sport name
                      tournament:
                        type: object
                        properties:
                          country:
                            type: string
                            description: Country of the tournament
                          id:
                            type: string
                            description: Tournament ID
                          name:
                            type: string
                            description: Tournament name
                          season:
                            type: string
                            description: Season for the tournament
                          league:
                            type: array
                            items:
                              type: object
                              properties:
                                name:
                                  type: string
                                  description: >-
                                    League name or conference (e.g., Eastern
                                    Conference)
                                division:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      name:
                                        type: string
                                        description: 'Division name (e.g., Atlantic Division)'
                                      team:
                                        type: array
                                        items:
                                          type: object
                                          properties:
                                            difference:
                                              type: string
                                              description: 'Goal difference (e.g., "+18")'
                                            games_played:
                                              type: string
                                              description: Number of games played
                                            goals_against:
                                              type: string
                                              description: Goals against
                                            goals_for:
                                              type: string
                                              description: Goals scored for
                                            home_record:
                                              type: string
                                              description: Home games record (win-loss-overtime)
                                            id:
                                              type: string
                                              description: Team ID
                                            last_ten:
                                              type: string
                                              description: Record in the last ten games
                                            lost:
                                              type: string
                                              description: Number of lost games
                                            name:
                                              type: string
                                              description: Team name
                                            ot_losses:
                                              type: string
                                              description: Overtime losses
                                            points:
                                              type: string
                                              description: Total points
                                            position:
                                              type: string
                                              description: Team position in standings
                                            regular_ot_wins:
                                              type: string
                                              description: Regular overtime wins
                                            road_record:
                                              type: string
                                              description: Road games record (win-loss-overtime)
                                            shootout_losses:
                                              type: string
                                              description: Shootout losses
                                            shootout_wins:
                                              type: string
                                              description: Shootout wins
                                            streak:
                                              type: string
                                              description: Current winning/losing streak
                                            won:
                                              type: string
                                              description: Number of won games
                                          required:
                                            - difference
                                            - games_played
                                            - goals_against
                                            - goals_for
                                            - home_record
                                            - id
                                            - last_ten
                                            - lost
                                            - name
                                            - ot_losses
                                            - points
                                            - position
                                            - regular_ot_wins
                                            - road_record
                                            - shootout_losses
                                            - shootout_wins
                                            - streak
                                            - won
                                    required:
                                      - name
                                      - team
                              required:
                                - name
                                - division
                        required:
                          - country
                          - id
                          - name
                          - season
                          - league
                    required:
                      - sport
                      - tournament
                required:
                  - standings
              example:
                standings:
                  sport: hockey
                  tournament:
                    country: usa
                    id: '2506'
                    name: 'USA: NHL'
                    season: 2025/2026
                    league:
                      - name: Eastern Conference
                        division:
                          - name: Atlantic Division
                            team:
                              - difference: '+18'
                                games_played: '30'
                                goals_against: '76'
                                goals_for: '94'
                                home_record: 8-7-0
                                id: '2656'
                                last_ten: '6-4-0, 0 PTS'
                                lost: '11'
                                name: Tampa Bay Lightning
                                ot_losses: '2'
                                points: '36'
                                position: '1'
                                regular_ot_wins: '17'
                                road_record: 9-4-2
                                shootout_losses: '0'
                                shootout_wins: '0'
                                streak: W1
                                won: '17'
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: Unauthorized - invalid or missing access_key or invalid sport
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: Resource Not Found - could not find resource
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  '/nhl/rosters/{team_abbreviation}':
    get:
      summary: Get Team Roster
      description: >
        Returns detailed NHL team roster information by team abbreviation. This
        endpoint data is updated every 1 hour.
      tags:
        - "\U0001F3D2 NHL (V1)"
      servers:
        - url: 'https://statpal.io/api/v1/'
          description: Production (v1)
      security:
        - ApiKeyAuth: []
      x-update-rate: 3600
      parameters:
        - name: team_abbreviation
          in: path
          required: true
          schema:
            type: string
            enum:
              - ana
              - atl
              - bos
              - buf
              - car
              - cbj
              - cgy
              - chi
              - col
              - dal
              - det
              - edm
              - fla
              - la
              - min
              - mtl
              - nj
              - nsh
              - nyi
              - nyr
              - ott
              - phi
              - phx
              - pit
              - sj
              - stl
              - tb
              - tor
              - van
              - wsh
          description: |
            NHL team abbreviation. Examples: 'min', 'nyr', etc.
      responses:
        '200':
          description: Successful response with NHL team roster details
          content:
            application/json:
              schema:
                type: object
                properties:
                  team:
                    type: object
                    properties:
                      abbreviation:
                        type: string
                        description: NHL team abbreviation
                        example: NYR
                      id:
                        type: string
                        description: Team ID
                        example: '2671'
                      name:
                        type: string
                        description: Team full name
                        example: New York Rangers
                      season:
                        type: string
                        description: Season year or range
                        example: 2025/2026
                      position:
                        type: array
                        items:
                          type: object
                          properties:
                            name:
                              type: string
                              description: 'Position group name (e.g., Centers, Left Wings)'
                              example: Centers
                            player:
                              type: array
                              items:
                                type: object
                                properties:
                                  id:
                                    type: string
                                    description: Player ID
                                    example: '3027113'
                                  name:
                                    type: string
                                    description: Player full name
                                    example: Jonny Brodzinski
                                  number:
                                    type: string
                                    description: Jersey number
                                    example: '22'
                                  age:
                                    type: string
                                    description: Player age
                                    example: '32'
                                  birth_place:
                                    type: string
                                    description: Birthplace of the player
                                    example: 'Ham Lake, MN'
                                  height:
                                    type: string
                                    description: Player height
                                    example: 6' 0"
                                  weight:
                                    type: string
                                    description: Player weight
                                    example: 211 lbs
                                  shot:
                                    type: string
                                    description: Shooting handedness ("L" or "R")
                                    example: L
                                  salarycap:
                                    type: string
                                    description: Salary cap hit as a string (can be empty)
                                    example: '$787,500'
                                required:
                                  - id
                                  - name
                                  - number
                                  - age
                                  - birth_place
                                  - height
                                  - weight
                                  - shot
                                  - salarycap
                          required:
                            - name
                            - player
                      image:
                        type: string
                        description: Base64 encoded team image
                    required:
                      - abbreviation
                      - id
                      - name
                      - season
                      - position
                      - image
                required:
                  - team
              example:
                team:
                  abbreviation: NYR
                  id: '2671'
                  name: New York Rangers
                  season: 2025/2026
                  position:
                    - name: Centers
                      player:
                        - id: '3027113'
                          name: Jonny Brodzinski
                          number: '22'
                          age: '32'
                          birth_place: 'Ham Lake, MN'
                          height: 6' 0"
                          weight: 211 lbs
                          shot: L
                          salarycap: '$787,500'
                  image: >-
                    iVBORw0KGgoAAAANSUhEUgAAAJYAAACWCAYAAAA8AXHiAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAADKZSURBVHhe7V0JfE5H97aWLp9/95ZqtXwo1U33TdW+lqq9ilKl2tp9Sq211lqVFZGI2EWQIJbYs9iJCIk9YgmlKNWSmfd/nvveue/ceycRTZDlPb/f08rM3LnLPO+ZM2fOzORzOBxuuJHlUCa64UZmoUx0w43MQpnohhuZhTLRDTcyC2WiG25kFspEN9zILJSJbriRWSgT3XAjs1AmCgydvaMFoX02QDPCfwh4pvRQgaC6Pi...
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: Unauthorized - invalid or missing access_key or invalid sport
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: Resource Not Found - could not find roster for the team abbreviation
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  '/nhl/team-stats/{team_abbreviation}':
    get:
      summary: Get Team Stats
      description: >
        Returns NHL team statistics including player and goalkeeper stats for
        the specified team abbreviation. This endpoint data is updated every 1
        hour.
      tags:
        - "\U0001F3D2 NHL (V1)"
      servers:
        - url: 'https://statpal.io/api/v1/'
          description: Production (v1)
      security:
        - ApiKeyAuth: []
      x-update-rate: 3600
      parameters:
        - name: team_abbreviation
          in: path
          description: 'Team abbreviation (e.g., ''min'', ''nyr'').'
          required: true
          schema:
            type: string
            enum:
              - ana
              - atl
              - bos
              - buf
              - car
              - cbj
              - cgy
              - chi
              - col
              - dal
              - det
              - edm
              - fla
              - la
              - min
              - mtl
              - nj
              - nsh
              - nyi
              - nyr
              - ott
              - phi
              - phx
              - pit
              - sj
              - stl
              - tb
              - tor
              - van
              - wsh
      responses:
        '200':
          description: Successful response with NHL team statistics for the specified team
          content:
            application/json:
              schema:
                type: object
                properties:
                  statistics:
                    type: object
                    properties:
                      id:
                        type: string
                        description: Statistics record ID
                      season:
                        type: string
                        description: 'Season string (e.g., 2025/2026)'
                      team:
                        type: array
                        description: Array with team name as string and player stats object
                        items:
                          oneOf:
                            - type: string
                            - type: object
                              properties:
                                player:
                                  type: array
                                  description: List of player stats
                                  items:
                                    type: object
                                    properties:
                                      assists:
                                        type: string
                                        description: Number of assists
                                      faceoffs_lost:
                                        type: string
                                        description: Number of faceoffs lost
                                      faceoffs_pct:
                                        type: string
                                        description: Faceoff win percentage
                                      faceoffs_won:
                                        type: string
                                        description: Number of faceoffs won
                                      game_winning_goals:
                                        type: string
                                        description: Number of game-winning goals
                                      games_played:
                                        type: string
                                        description: Number of games played
                                      goals:
                                        type: string
                                        description: Number of goals
                                      id:
                                        type: string
                                        description: Player ID
                                      name:
                                        type: string
                                        description: Player name
                                      penalty_minutes:
                                        type: string
                                        description: Penalty minutes
                                      plus_minus:
                                        type: string
                                        description: Plus-minus rating
                                      points:
                                        type: string
                                        description: Points scored
                                      pos:
                                        type: string
                                        description: Player position
                                      pp_assists:
                                        type: string
                                        description: Power play assists
                                      pp_goals:
                                        type: string
                                        description: Power play goals
                                      production_time:
                                        type: string
                                        description: 'Production time on ice (MM:SS)'
                                      rank:
                                        type: string
                                        description: Player rank within team stats
                                      sh_assists:
                                        type: string
                                        description: Short-handed assists
                                      sh_goals:
                                        type: string
                                        description: Short-handed goals
                                      shifts:
                                        type: string
                                        description: Number of shifts
                                      shootout_attempts:
                                        type: string
                                        description: Number of shootout attempts
                                      shootout_goals:
                                        type: string
                                        description: Number of shootout goals
                                      shootout_pct:
                                        type: string
                                        description: Shootout percentage
                                      shots:
                                        type: string
                                        description: Number of shots
                                      toi_per_game:
                                        type: string
                                        description: 'Time on ice per game (MM:SS)'
                                    required:
                                      - assists
                                      - faceoffs_lost
                                      - faceoffs_pct
                                      - faceoffs_won
                                      - game_winning_goals
                                      - games_played
                                      - goals
                                      - id
                                      - name
                                      - penalty_minutes
                                      - plus_minus
                                      - points
                                      - pos
                                      - pp_assists
                                      - pp_goals
                                      - production_time
                                      - rank
                                      - sh_assists
                                      - sh_goals
                                      - shifts
                                      - shootout_attempts
                                      - shootout_goals
                                      - shootout_pct
                                      - shots
                                      - toi_per_game
                              required:
                                - player
                    required:
                      - id
                      - season
                      - team
                required:
                  - statistics
              example:
                statistics:
                  id: '2671'
                  season: 2025/2026
                  team:
                    - New York Rangers
                    - player:
                        - assists: '22'
                          faceoffs_lost: '0'
                          faceoffs_pct: '0.0'
                          faceoffs_won: '0'
                          game_winning_goals: '2'
                          games_played: '31'
                          goals: '10'
                          id: '3893451'
                          name: Artemi Panarin
                          penalty_minutes: '8'
                          plus_minus: '1'
                          points: '32'
                          pos: LW
                          pp_assists: '8'
                          pp_goals: '0'
                          production_time: '19:59'
                          rank: '1'
                          sh_assists: '0'
                          sh_goals: '0'
                          shifts: '705'
                          shootout_attempts: '1'
                          shootout_goals: '0'
                          shootout_pct: '0.0'
                          shots: '83'
                          toi_per_game: '20:38'
                  goalkeepers:
                    player:
                      - empty_net_goals: ''
                        games_played: '24'
                        goals_against_diff: '59'
                        id: '3152796'
                        losses: '9'
                        name: Igor Shesterkin
                        ot_losses: '3'
                        penalty_minutes: '4'
                        rank: '1'
                        saves: '622'
                        saves_pct: '.913'
                        shutouts: ''
                        time_on_ice: '60:03'
                        total_goals_against: '59'
                        total_shots_against: '681'
                        wins: '12'
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: Unauthorized - invalid or missing access_key or invalid sport
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: Resource Not Found - could not find resource
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  '/nhl/injuries/{team_abbreviation}':
    get:
      summary: Get Team Injuries & Suspensions
      description: >
        Returns NHL injuries and suspensions for a specific team using the
        team's abbreviation. This endpoint data is updated every 1 hour.
      tags:
        - "\U0001F3D2 NHL (V1)"
      servers:
        - url: 'https://statpal.io/api/v1/'
          description: Production (v1)
      security:
        - ApiKeyAuth: []
      x-update-rate: 3600
      parameters:
        - name: team_abbreviation
          in: path
          description: 'Team abbreviation (e.g., ''min'', ''nyr'').'
          required: true
          schema:
            type: string
            enum:
              - ana
              - atl
              - bos
              - buf
              - car
              - cbj
              - cgy
              - chi
              - col
              - dal
              - det
              - edm
              - fla
              - la
              - min
              - mtl
              - nj
              - nsh
              - nyi
              - nyr
              - ott
              - phi
              - phx
              - pit
              - sj
              - stl
              - tb
              - tor
              - van
              - wsh
      responses:
        '200':
          description: Successful response with NHL injuries and suspensions for the team
          content:
            application/json:
              schema:
                type: object
                properties:
                  team:
                    type: object
                    properties:
                      id:
                        type: string
                        description: Team ID
                      name:
                        type: string
                        description: Team name
                      report:
                        type: array
                        description: Injuries and suspensions report for players
                        items:
                          type: object
                          properties:
                            date:
                              type: string
                              description: >-
                                Date of the injury or suspension report
                                (DD.MM.YYYY)
                            description:
                              type: string
                              description: Description of the injury or suspension status
                            player_id:
                              type: string
                              description: 'Player ID, empty string if not available'
                              nullable: true
                            player_name:
                              type: string
                              description: Player name
                            status:
                              type: string
                              description: 'Status of the player (e.g., ''Sidelined'', ''I.L.'')'
                          required:
                            - date
                            - description
                            - player_name
                            - status
                          additionalProperties: false
                    required:
                      - id
                      - name
                      - report
                required:
                  - team
              example:
                team:
                  id: '2671'
                  name: New York Rangers
                  report:
                    - date: 09.12.2025
                      description: Lower Body - Expected to be out until at least Dec 13
                      player_id: '4894222'
                      player_name: Adam Edstrom
                      status: Sidelined
                    - date: 30.11.2025
                      description: I.L. - Upper Body
                      player_id: ''
                      player_name: Adam Fox
                      status: I.L.
                    - date: 23.11.2025
                      description: I.L. - Upper Body
                      player_id: ''
                      player_name: Matt Rempe
                      status: I.L.
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: Unauthorized - invalid or missing access_key or invalid sport
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: Resource Not Found - could not find resource
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  /nhl/odds:
    get:
      summary: Get Pre-Game Odds
      description: >
        Returns NHL pre-game odds data including detailed match odds from
        multiple bookmakers. This endpoint data is updated every 30 minutes.
      tags:
        - "\U0001F3D2 NHL (V1)"
      servers:
        - url: 'https://statpal.io/api/v1/'
          description: Production (v1)
      security:
        - ApiKeyAuth: []
      x-update-rate: 1800
      responses:
        '200':
          description: Successful response with NHL odds and matches data
          content:
            application/json:
              schema:
                type: object
                properties:
                  odds:
                    type: object
                    properties:
                      sport:
                        type: string
                        description: Sport name
                      category:
                        type: object
                        properties:
                          gid:
                            type: string
                            description: Global category/tournament ID
                          id:
                            type: string
                            description: Category/tournament ID
                          name:
                            type: string
                            description: Category/tournament name
                          matches:
                            type: object
                            properties:
                              match:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    date:
                                      type: string
                                      description: Date of the match (DD.MM.YYYY)
                                    fix_id:
                                      type: string
                                      description: Fix ID for the match
                                    id:
                                      type: string
                                      description: Match unique ID
                                    status:
                                      type: string
                                      description: Current match status
                                    time:
                                      type: string
                                      description: Scheduled or actual match time
                                    home:
                                      type: object
                                      properties:
                                        id:
                                          type: string
                                          description: Team ID
                                        name:
                                          type: string
                                          description: Team name
                                        totalscore:
                                          type: string
                                          description: >-
                                            Total score of the team (empty if not
                                            started)
                                      required:
                                        - id
                                        - name
                                        - totalscore
                                    away:
                                      $ref: >-
                                        #/paths/~1nhl~1odds/get/responses/200/content/application~1json/schema/properties/odds/properties/category/properties/matches/properties/match/items/properties/home
                                    events:
                                      type: object
                                      properties:
                                        firstperiod:
                                          $ref: >-
                                            #/paths/~1nhl~1odds/get/responses/200/content/application~1json/schema/properties/odds/properties/category/properties/matches/properties/match/items/properties/events/properties/overtime
                                        secondperiod:
                                          $ref: >-
                                            #/paths/~1nhl~1odds/get/responses/200/content/application~1json/schema/properties/odds/properties/category/properties/matches/properties/match/items/properties/events/properties/overtime
                                        thirdperiod:
                                          $ref: >-
                                            #/paths/~1nhl~1odds/get/responses/200/content/application~1json/schema/properties/odds/properties/category/properties/matches/properties/match/items/properties/events/properties/overtime
                                        overtime:
                                          type: object
                                          properties:
                                            score:
                                              type: string
                                              description: Score summary for the period
                                          required:
                                            - score
                                        penalties:
                                          $ref: >-
                                            #/paths/~1nhl~1odds/get/responses/200/content/application~1json/schema/properties/odds/properties/category/properties/matches/properties/match/items/properties/events/properties/overtime
                                      required:
                                        - firstperiod
                                        - secondperiod
                                        - thirdperiod
                                        - overtime
                                        - penalties
                                    odds:
                                      type: object
                                      properties:
                                        ts:
                                          type: integer
                                          description: Timestamp of last odds update
                                        type:
                                          type: array
                                          items:
                                            type: object
                                            properties:
                                              id:
                                                type: string
                                                description: Odds type ID
                                              stop:
                                                type: string
                                                description: >-
                                                  Whether the odds type is stopped
                                                  (True/False as string)
                                              value:
                                                type: string
                                                description: Odds type name
                                              bookmaker:
                                                oneOf:
                                                  - type: array
                                                    items:
                                                      $ref: >-
                                                        #/paths/~1nhl~1odds/get/responses/200/content/application~1json/schema/properties/odds/properties/category/properties/matches/properties/match/items/properties/odds/properties/type/items/properties/bookmaker/oneOf/1
                                                  - type: object
                                                    properties:
                                                      id:
                                                        type: string
                                                        description: Bookmaker ID
                                                      name:
                                                        type: string
                                                        description: Bookmaker name
                                                      ts:
                                                        type: integer
                                                        description: Timestamp of odds
                                                      odd:
                                                        oneOf:
                                                          - type: array
                                                            items:
                                                              $ref: >-
                                                                #/paths/~1nhl~1odds/get/responses/200/content/application~1json/schema/properties/odds/properties/category/properties/matches/properties/match/items/properties/odds/properties/type/items/properties/bookmaker/oneOf/1/properties/odd/oneOf/1
                                                          - type: object
                                                            properties:
                                                              name:
                                                                type: string
                                                                description: 'Name of the odd (e.g., Home, Draw, Away)'
                                                              value:
                                                                type: string
                                                                description: Odd value
                                                            required:
                                                              - name
                                                              - value
                                                        nullable: true
                                                      handicap:
                                                        oneOf:
                                                          - type: object
                                                            properties:
                                                              name:
                                                                type: string
                                                                description: Handicap name
                                                              stop:
                                                                type: string
                                                                description: Whether handicap is stopped
                                                              odd:
                                                                oneOf:
                                                                  - $ref: >-
                                                                      #/paths/~1nhl~1odds/get/responses/200/content/application~1json/schema/properties/odds/properties/category/properties/matches/properties/match/items/properties/odds/properties/type/items/properties/bookmaker/oneOf/1/properties/odd/oneOf/1
                                                                  - type: array
                                                                    items:
                                                                      $ref: >-
                                                                        #/paths/~1nhl~1odds/get/responses/200/content/application~1json/schema/properties/odds/properties/category/properties/matches/properties/match/items/properties/odds/properties/type/items/properties/bookmaker/oneOf/1/properties/odd/oneOf/1
                                                            required:
                                                              - name
                                                              - stop
                                                              - odd
                                                          - type: array
                                                            items:
                                                              $ref: >-
                                                                #/paths/~1nhl~1odds/get/responses/200/content/application~1json/schema/properties/odds/properties/category/properties/matches/properties/match/items/properties/odds/properties/type/items/properties/bookmaker/oneOf/1/properties/handicap/oneOf/0
                                                        nullable: true
                                                      total:
                                                        oneOf:
                                                          - type: object
                                                            properties:
                                                              name:
                                                                type: string
                                                                description: 'Total name (e.g., 4.5, 5.5)'
                                                              stop:
                                                                type: string
                                                                description: Whether total is stopped
                                                              odd:
                                                                oneOf:
                                                                  - $ref: >-
                                                                      #/paths/~1nhl~1odds/get/responses/200/content/application~1json/schema/properties/odds/properties/category/properties/matches/properties/match/items/properties/odds/properties/type/items/properties/bookmaker/oneOf/1/properties/odd/oneOf/1
                                                                  - type: array
                                                                    items:
                                                                      $ref: >-
                                                                        #/paths/~1nhl~1odds/get/responses/200/content/application~1json/schema/properties/odds/properties/category/properties/matches/properties/match/items/properties/odds/properties/type/items/properties/bookmaker/oneOf/1/properties/odd/oneOf/1
                                                            required:
                                                              - name
                                                              - stop
                                                              - odd
                                                          - type: array
                                                            items:
                                                              $ref: >-
                                                                #/paths/~1nhl~1odds/get/responses/200/content/application~1json/schema/properties/odds/properties/category/properties/matches/properties/match/items/properties/odds/properties/type/items/properties/bookmaker/oneOf/1/properties/total/oneOf/0
                                                        nullable: true
                                                    required:
                                                      - id
                                                      - name
                                                      - ts
                                            required:
                                              - id
                                              - stop
                                              - value
                                              - bookmaker
                                      required:
                                        - ts
                                        - type
                                  required:
                                    - date
                                    - fix_id
                                    - id
                                    - status
                                    - time
                                    - home
                                    - away
                                    - events
                                    - odds
                            required:
                              - match
                        required:
                          - gid
                          - id
                          - name
                          - matches
                    required:
                      - sport
                      - category
                required:
                  - odds
              example:
                odds:
                  sport: hockey
                  category:
                    gid: '2506'
                    id: '2506'
                    name: 'Usa: Nhl'
                    matches:
                      match:
                        - date: 11.12.2025
                          fix_id: '244816'
                          id: '626431'
                          status: Not Started
                          time: '00:30'
                          home:
                            id: '2527'
                            name: Chicago Blackhawks
                            totalscore: ''
                          away:
                            id: '2671'
                            name: New York Rangers
                            totalscore: ''
                          events:
                            firstperiod:
                              score: ''
                            secondperiod:
                              score: ''
                            thirdperiod:
                              score: ''
                            overtime:
                              score: ''
                            penalties:
                              score: ''
                          odds:
                            ts: 1765352239
                            type:
                              - id: '1500'
                                stop: 'False'
                                value: 3Way Result
                                bookmaker:
                                  - id: '1513'
                                    name: 10Bet
                                    ts: 1765345535
                                    odd:
                                      - name: Home
                                        value: '2.70'
                                      - name: Draw
                                        value: '3.90'
                                      - name: Away
                                        value: '2.10'
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  code:
                    type: integer
                required:
                  - error
                  - code
              example:
                error: Invalid Request
                code: 400
        '401':
          description: Unauthorized - invalid or missing access_key or invalid sport
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: Resource Not Found - could not find resource
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  /nfl/livescores:
    get:
      summary: Get Live Scores
      description: >
        Returns NFL live scores with detailed period events. This endpoint data
        is updated every 15 seconds.
      tags:
        - "\U0001F3C8 NFL (V1)"
      servers:
        - url: 'https://statpal.io/api/v1/'
          description: Production (v1)
      security:
        - ApiKeyAuth: []
      x-update-rate: 15
      responses:
        '200':
          description: Successful response with NFL live scores and events by quarter
          content:
            application/json:
              schema:
                type: object
                properties:
                  livescores:
                    type: object
                    properties:
                      sport:
                        type: string
                        description: Sport name
                      tournament:
                        type: object
                        properties:
                          country:
                            type: string
                            description: Country of the tournament
                          id:
                            type: string
                            description: Tournament ID
                          league:
                            type: string
                            description: Tournament league name
                          match:
                            type: array
                            items:
                              type: object
                              properties:
                                attendance:
                                  type: string
                                  description: Attendance for the match (may be empty)
                                contestid:
                                  type: string
                                  description: Contest ID
                                date:
                                  type: string
                                  description: Date of the match (DD.MM.YYYY)
                                datetime_utc:
                                  type: string
                                  description: Date and time UTC formatted
                                formatted_date:
                                  type: string
                                  description: Formatted date
                                status:
                                  type: string
                                  description: >-
                                    Current status of the match (e.g., Not
                                    Started, Finished)
                                time:
                                  type: string
                                  description: Scheduled or actual time
                                timer:
                                  type: string
                                  description: Timer info if available
                                timezone:
                                  type: string
                                  description: Timezone abbreviation
                                venue_id:
                                  type: string
                                  description: Venue ID
                                venue_name:
                                  type: string
                                  description: Venue name
                                home:
                                  type: object
                                  properties:
                                    ball_on:
                                      type: string
                                      description: Ball position on field
                                      nullable: true
                                    drive:
                                      type: string
                                      description: Current drive info
                                      nullable: true
                                    id:
                                      type: string
                                      description: Team ID
                                    name:
                                      type: string
                                      description: Team name
                                    number:
                                      type: string
                                      description: Team number (may be empty)
                                      nullable: true
                                    ot:
                                      type: string
                                      description: Overtime score or info
                                      nullable: true
                                    q1:
                                      type: string
                                      description: Quarter 1 score
                                      nullable: true
                                    q2:
                                      type: string
                                      description: Quarter 2 score
                                      nullable: true
                                    q3:
                                      type: string
                                      description: Quarter 3 score
                                      nullable: true
                                    q4:
                                      type: string
                                      description: Quarter 4 score
                                      nullable: true
                                    totalscore:
                                      type: string
                                      description: >-
                                        Total score of the team (string to allow
                                        empty)
                                      nullable: true
                                  required:
                                    - id
                                    - name
                                    - totalscore
                                away:
                                  $ref: >-
                                    #/paths/~1nfl~1livescores/get/responses/200/content/application~1json/schema/properties/livescores/properties/tournament/properties/match/items/properties/home
                                events:
                                  type: object
                                  properties:
                                    firstquarter:
                                      $ref: >-
                                        #/paths/~1nfl~1livescores/get/responses/200/content/application~1json/schema/properties/livescores/properties/tournament/properties/match/items/properties/events/properties/overtime
                                      nullable: true
                                    secondquarter:
                                      $ref: >-
                                        #/paths/~1nfl~1livescores/get/responses/200/content/application~1json/schema/properties/livescores/properties/tournament/properties/match/items/properties/events/properties/overtime
                                      nullable: true
                                    thirdquarter:
                                      $ref: >-
                                        #/paths/~1nfl~1livescores/get/responses/200/content/application~1json/schema/properties/livescores/properties/tournament/properties/match/items/properties/events/properties/overtime
                                      nullable: true
                                    fourthquarter:
                                      $ref: >-
                                        #/paths/~1nfl~1livescores/get/responses/200/content/application~1json/schema/properties/livescores/properties/tournament/properties/match/items/properties/events/properties/overtime
                                      nullable: true
                                    overtime:
                                      nullable: true
                                      type: object
                                      description: >
                                        Events occurring during a specific
                                        quarter. This can be null if no events.
                                      properties: null
                                  required:
                                    - firstquarter
                                    - secondquarter
                                    - thirdquarter
                                    - fourthquarter
                                    - overtime
                                team_stats:
                                  type: object
                                  nullable: true
                                  description: 'Detailed team statistics, may be null'
                                passing:
                                  type: object
                                  nullable: true
                                  description: 'Passing stats, may be null'
                                rushing:
                                  type: object
                                  nullable: true
                                  description: 'Rushing stats, may be null'
                                receiving:
                                  type: object
                                  nullable: true
                                  description: 'Receiving stats, may be null'
                                fumbles:
                                  type: object
                                  nullable: true
                                  description: 'Fumble stats, may be null'
                                interceptions:
                                  type: object
                                  nullable: true
                                  description: 'Interception stats, may be null'
                                defensive:
                                  type: object
                                  nullable: true
                                  description: 'Defensive stats, may be null'
                                kick_returns:
                                  type: object
                                  nullable: true
                                  description: 'Kick returns stats, may be null'
                                punt_returns:
                                  type: object
                                  nullable: true
                                  description: 'Punt returns stats, may be null'
                                kicking:
                                  type: object
                                  nullable: true
                                  description: 'Kicking stats, may be null'
                                punting:
                                  type: object
                                  nullable: true
                                  description: 'Punting stats, may be null'
                              required:
                                - contestid
                                - date
                                - datetime_utc
                                - formatted_date
                                - status
                                - time
                                - timezone
                                - venue_id
                                - venue_name
                                - home
                                - away
                                - events
                        required:
                          - country
                          - id
                          - league
                          - match
                    required:
                      - sport
                      - tournament
                required:
                  - livescores
              example:
                livescores:
                  sport: american_football
                  tournament:
                    country: usa
                    id: '1500'
                    league: 'USA: NFL'
                    match:
                      - attendance: '50000'
                        contestid: '123456'
                        date: 01.01.2025
                        datetime_utc: '01.01.2025 18:00'
                        formatted_date: 01.01.2025
                        status: Final
                        time: '6:00 PM'
                        timer: ''
                        timezone: EST
                        venue_id: '1001'
                        venue_name: Sample Stadium
                        home:
                          ball_on: '20'
                          drive: '3'
                          id: '2001'
                          name: Home Team
                          number: '1'
                          ot: '0'
                          q1: '7'
                          q2: '10'
                          q3: '3'
                          q4: '7'
                          totalscore: '27'
                        away:
                          ball_on: '30'
                          drive: '2'
                          id: '2002'
                          name: Away Team
                          number: '2'
                          ot: '0'
                          q1: '3'
                          q2: '7'
                          q3: '7'
                          q4: '10'
                          totalscore: '27'
                        events:
                          firstquarter:
                            event:
                              - away_score: '0'
                                home_score: '7'
                                id: evt1
                                min: '10:00'
                                player: John Doe 10 Yd Rush (Kicker Kick)
                                player_id: p1
                                team: hometeam
                                type: TD
                          secondquarter: null
                          thirdquarter: null
                          fourthquarter: null
                          overtime: null
                        team_stats:
                          home:
                            first_downs:
                              total: '20'
                              passing: '12'
                              rushing: '8'
                            plays:
                              total: '60'
                            yards:
                              total: '350'
                            passing:
                              comp_att: 20/30
                              total: '250'
                            rushing:
                              attempts: '25'
                              total: '100'
                            turnovers:
                              interceptions: '1'
                              lost_fumbles: '0'
                              total: '1'
                          away:
                            first_downs:
                              total: '20'
                              passing: '15'
                              rushing: '5'
                            plays:
                              total: '58'
                            yards:
                              total: '320'
                            passing:
                              comp_att: 18/28
                              total: '220'
                            rushing:
                              attempts: '20'
                              total: '100'
                            turnovers:
                              interceptions: '0'
                              lost_fumbles: '1'
                              total: '1'
                        passing:
                          home:
                            player:
                              average: '8.3'
                              comp_att: 20/30
                              id: p1
                              interceptions: '1'
                              name: John Doe
                              passing_touch_downs: '2'
                              rating: '85.3'
                              sacks: 3-20
                              two_pt: '0'
                              yards: '250'
                          away:
                            player:
                              average: '7.5'
                              comp_att: 18/28
                              id: p2
                              interceptions: '0'
                              name: Jim Smith
                              passing_touch_downs: '1'
                              rating: '78.2'
                              sacks: 1-7
                              two_pt: '0'
                              yards: '220'
                        rushing:
                          home:
                            player:
                              - average: '4.0'
                                id: r1
                                longest_rush: '20'
                                name: Running Back1
                                rushing_touch_downs: '1'
                                total_rushes: '15'
                                two_pt: '0'
                                yards: '60'
                          away:
                            player:
                              - average: '5.0'
                                id: r2
                                longest_rush: '25'
                                name: Running Back2
                                rushing_touch_downs: '1'
                                total_rushes: '10'
                                two_pt: '0'
                                yards: '50'
                        receiving:
                          home:
                            player:
                              - average: '12.0'
                                id: rec1
                                longest_reception: '35'
                                name: Receiver1
                                receiving_touch_downs: '1'
                                targets: '10'
                                total_receptions: '7'
                                two_pt: '0'
                                yards: '120'
                          away:
                            player:
                              - average: '14.0'
                                id: rec2
                                longest_reception: '30'
                                name: Receiver2
                                receiving_touch_downs: '1'
                                targets: '8'
                                total_receptions: '6'
                                two_pt: '0'
                                yards: '100'
                        fumbles:
                          home:
                            player:
                              id: f1
                              lost: '0'
                              name: Player Fumble Home
                              rec: '0'
                              rec_td: '0'
                              total: '1'
                          away:
                            player:
                              id: f2
                              lost: '1'
                              name: Player Fumble Away
                              rec: '0'
                              rec_td: '0'
                              total: '1'
                        interceptions:
                          home: null
                          away:
                            player:
                              - id: int1
                                intercepted_touch_downs: '0'
                                name: Player Interception Away
                                total_interceptions: '1'
                                yards: '30'
                        defensive:
                          home:
                            player:
                              - blocked_kicks: '0'
                                exp_return_td: '0'
                                ff: '0'
                                id: d1
                                interceptions_for_touch_downs: '0'
                                kick_return_td: '0'
                                name: Defender Home
                                passes_defended: '1'
                                qb_hts: '0'
                                sacks: '2'
                                tackles: '12'
                                tfl: '1'
                                unassisted_tackles: '10'
                          away:
                            player:
                              - blocked_kicks: '0'
                                exp_return_td: '0'
                                ff: '0'
                                id: d2
                                interceptions_for_touch_downs: '0'
                                kick_return_td: '0'
                                name: Defender Away
                                passes_defended: '0'
                                qb_hts: '1'
                                sacks: '1'
                                tackles: '10'
                                tfl: '1'
                                unassisted_tackles: '8'
                        kick_returns:
                          home: null
                          away:
                            player:
                              - average: '22.0'
                                exp_return_td: '0'
                                id: kr1
                                kick_return_td: '0'
                                lg: '30'
                                name: Kick Returner Away
                                td: '0'
                                total: '3'
                                yards: '65'
                        punt_returns:
                          home:
                            player:
                              average: '20.0'
                              exp_return_td: '0'
                              id: pr1
                              kick_return_td: '0'
                              lg: '20'
                              name: Punt Returner Home
                              td: '0'
                              total: '2'
                              yards: '40'
                          away:
                            player:
                              average: '15.0'
                              exp_return_td: '0'
                              id: pr2
                              kick_return_td: '0'
                              lg: '15'
                              name: Punt Returner Away
                              td: '0'
                              total: '1'
                              yards: '15'
                        kicking:
                          home:
                            player:
                              extra_point: 1/1
                              field_goals: 2/3
                              id: k1
                              long: '45'
                              name: Kicker Home
                              pct: '66.7'
                              points: '8'
                              attempt:
                                - result: GOOD
                                  yards: '45'
                                - result: MISS
                                  yards: '52'
                          away:
                            player:
                              extra_point: 3/3
                              field_goals: 3/3
                              id: k2
                              long: '40'
                              name: Kicker Away
                              pct: '100.0'
                              points: '12'
                              attempt:
                                - result: GOOD
                                  yards: '40'
                                - result: GOOD
                                  yards: '38'
                        punting:
                          home:
                            player:
                              average: '44.0'
                              id: pnt1
                              in20: '2'
                              lg: '50'
                              name: Punter Home
                              total: '5'
                              touchbacks: '1'
                              yards: '220'
                          away:
                            player:
                              average: '41.0'
                              id: pnt2
                              in20: '1'
                              lg: '45'
                              name: Punter Away
                              total: '4'
                              touchbacks: '0'
                              yards: '180'
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: Unauthorized - invalid or missing access_key or invalid sport
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: Resource Not Found - could not find resource
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  /nfl/live-plays:
    get:
      summary: Get Live Play By Play
      description: >
        Returns NFL live play by play data. This endpoint data is updated every
        15 seconds.
      tags:
        - "\U0001F3C8 NFL (V1)"
      servers:
        - url: 'https://statpal.io/api/v1/'
          description: Production (v1)
      security:
        - ApiKeyAuth: []
      x-update-rate: 15
      responses:
        '200':
          description: Successful response with NFL live play by play data
          content:
            application/json:
              schema:
                type: object
                properties:
                  liveplays:
                    type: object
                    properties:
                      sport:
                        type: string
                        description: Sport name
                      tournament:
                        type: object
                        properties:
                          country:
                            type: string
                            description: Country of the tournament
                          id:
                            type: string
                            description: Tournament ID
                          league:
                            type: string
                            description: Tournament league name
                          match:
                            type: array
                            items:
                              type: object
                              properties:
                                contestid:
                                  type: string
                                  description: Contest ID
                                date:
                                  type: string
                                  description: Date of the match (DD.MM.YYYY)
                                datetime_utc:
                                  type: string
                                  description: Date and time UTC formatted
                                formatted_date:
                                  type: string
                                  description: Formatted date
                                status:
                                  type: string
                                  description: >-
                                    Current status of the match (e.g., Not
                                    Started, Finished)
                                time:
                                  type: string
                                  description: Scheduled or actual time
                                timer:
                                  type: string
                                  description: Timer info if available
                                timezone:
                                  type: string
                                  description: Timezone abbreviation
                                home:
                                  type: object
                                  properties:
                                    ball_on:
                                      type: string
                                      description: Ball position on field
                                      nullable: true
                                    drive:
                                      type: string
                                      description: Current drive info
                                      nullable: true
                                    id:
                                      type: string
                                      description: Team ID
                                    name:
                                      type: string
                                      description: Team name
                                    number:
                                      type: string
                                      description: Team number (may be empty)
                                      nullable: true
                                    ot:
                                      type: string
                                      description: Overtime score or info
                                      nullable: true
                                    q1:
                                      type: string
                                      description: Quarter 1 score
                                      nullable: true
                                    q2:
                                      type: string
                                      description: Quarter 2 score
                                      nullable: true
                                    q3:
                                      type: string
                                      description: Quarter 3 score
                                      nullable: true
                                    q4:
                                      type: string
                                      description: Quarter 4 score
                                      nullable: true
                                    totalscore:
                                      type: string
                                      description: >-
                                        Total score of the team (string to allow
                                        empty)
                                      nullable: true
                                  required:
                                    - id
                                    - name
                                    - totalscore
                                away:
                                  $ref: >-
                                    #/paths/~1nfl~1live-plays/get/responses/200/content/application~1json/schema/properties/liveplays/properties/tournament/properties/match/items/properties/home
                                playbyplay:
                                  type: object
                                  nullable: true
                                  description: 'Play by play data, may be null'
                              required:
                                - contestid
                                - date
                                - datetime_utc
                                - formatted_date
                                - status
                                - time
                                - timezone
                                - home
                                - away
                                - playbyplay
                        required:
                          - country
                          - id
                          - league
                          - match
                    required:
                      - sport
                      - tournament
                required:
                  - liveplays
              example:
                liveplays:
                  sport: american_football
                  tournament:
                    country: usa
                    id: '1500'
                    league: 'USA: NFL'
                    match:
                      - contestid: '206375'
                        date: 18.12.2025
                        datetime_utc: '19.12.2025 01:15'
                        formatted_date: 18.12.2025
                        status: Final
                        time: '8:15 PM'
                        timer: Final/OT
                        timezone: EST
                        home:
                          ball_on: '35'
                          drive: '7'
                          id: '3203'
                          name: Seattle Seahawks
                          number: '1'
                          ot: '6'
                          q1: '7'
                          q2: '0'
                          q3: '7'
                          q4: '13'
                          totalscore: '33'
                        away:
                          ball_on: '20'
                          drive: '6'
                          id: '6616'
                          name: Los Angeles Rams
                          number: '3'
                          ot: '7'
                          q1: '3'
                          q2: '10'
                          q3: '10'
                          q4: '7'
                          totalscore: '30'
                        playbyplay:
                          drive:
                            - id: '2048760'
                              minute: '3:14'
                              name: Seattle Seahawks
                              team: hometeam
                              totals: '12 plays, 72 yards, 3:14'
                              play:
                                - awayscore: '30'
                                  description: END GAME
                                  down: ''
                                  down_end: ''
                                  down_start: ''
                                  id: '4017729495269'
                                  localscore: '33'
                                  minute: '0:00 - 4th'
                                  penalty: 'False'
                                  pl_id1: ''
                                  pl_id2: ''
                                  pl_id3: ''
                                  pl_id4: ''
                                  possessionteam: hometeam
                                  type: EG
                                  yards: ''
                                - awayscore: '30'
                                  description: >-
                                    S.Darnold pass short right to A.Barner to
                                    SEA 44 for 8 yards.
                                  down: 3rd & 7
                                  down_end: ''
                                  down_start: 2nd & 15
                                  id: '4017729493862'
                                  localscore: '33'
                                  minute: '4:03 - 4th'
                                  penalty: 'False'
                                  pl_id1: '3912547'
                                  pl_id2: '4576297'
                                  pl_id3: ''
                                  pl_id4: ''
                                  possessionteam: hometeam
                                  type: PASS
                                  yards: '8'
                                - awayscore: '30'
                                  description: >-
                                    M.Dickson punts 47 yards to LA 12, Downed by
                                    LA-K.Johnson.
                                  down: ''
                                  down_end: 4th & 7
                                  down_start: ''
                                  id: '4017729493625'
                                  localscore: '33'
                                  minute: '4:50 - 4th'
                                  penalty: 'False'
                                  pl_id1: '3929851'
                                  pl_id2: ''
                                  pl_id3: ''
                                  pl_id4: ''
                                  possessionteam: hometeam
                                  type: PUNT
                                  yards: '47'
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: Unauthorized - invalid or missing access_key or invalid sport
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: Resource Not Found - could not find resource
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  /nfl/season-schedule:
    get:
      summary: Get Full Schedule / Results
      description: >
        Returns the full NFL season schedule and results, including match
        details and individual top performances. This endpoint data is updated
        every 1 hour.
      tags:
        - "\U0001F3C8 NFL (V1)"
      servers:
        - url: 'https://statpal.io/api/v1/'
          description: Production (v1)
      security:
        - ApiKeyAuth: []
      x-update-rate: 3600
      responses:
        '200':
          description: Successful response with full NFL season schedule and results
          content:
            application/json:
              schema:
                type: object
                properties:
                  scores:
                    type: object
                    properties:
                      sport:
                        type: string
                        description: Sport name
                      tournament:
                        type: object
                        properties:
                          name:
                            type: string
                            description: Tournament name
                          stage:
                            type: array
                            items:
                              type: object
                              properties:
                                id:
                                  type: string
                                  description: Stage ID
                                name:
                                  type: string
                                  description: Stage name
                                week:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      name:
                                        type: string
                                        description: Week name
                                      matches:
                                        oneOf:
                                          - type: object
                                            properties:
                                              date:
                                                type: string
                                                description: >-
                                                  Date of the match or group (e.g.
                                                  Thursday, July 31, 2025)
                                              formatted_date:
                                                type: string
                                                description: Formatted date (DD.MM.YYYY)
                                              timezone:
                                                type: string
                                                description: Timezone abbreviation
                                              match:
                                                oneOf:
                                                  - type: object
                                                    properties:
                                                      attendance:
                                                        type: string
                                                        description: Attendance for the match
                                                        nullable: true
                                                      contestid:
                                                        type: string
                                                        description: Contest ID
                                                      datetime_utc:
                                                        type: string
                                                        description: Date and time UTC formatted
                                                      formatted_date:
                                                        type: string
                                                        description: Formatted date
                                                      hipassing:
                                                        type: string
                                                        description: Highest passing player and yards/score
                                                        nullable: true
                                                      hireceiving:
                                                        type: string
                                                        description: Highest receiving player and yards/score
                                                        nullable: true
                                                      hirushing:
                                                        type: string
                                                        description: Highest rushing player and yards/score
                                                        nullable: true
                                                      status:
                                                        type: string
                                                        description: >-
                                                          Current status of the match (e.g.,
                                                          Final)
                                                      time:
                                                        type: string
                                                        description: Scheduled or actual time
                                                      venue:
                                                        type: string
                                                        description: Venue name
                                                      venue_id:
                                                        type: string
                                                        description: Venue ID
                                                      home:
                                                        type: object
                                                        properties:
                                                          id:
                                                            type: string
                                                            description: Team ID
                                                          name:
                                                            type: string
                                                            description: Team name
                                                          ot:
                                                            type: string
                                                            description: Overtime score or info
                                                            nullable: true
                                                          posession:
                                                            type: string
                                                            description: >-
                                                              Team possession status as string
                                                              true/false
                                                            nullable: true
                                                          q1:
                                                            type: string
                                                            description: Quarter 1 score
                                                            nullable: true
                                                          q2:
                                                            type: string
                                                            description: Quarter 2 score
                                                            nullable: true
                                                          q3:
                                                            type: string
                                                            description: Quarter 3 score
                                                            nullable: true
                                                          q4:
                                                            type: string
                                                            description: Quarter 4 score
                                                            nullable: true
                                                          totalscore:
                                                            type: string
                                                            description: >-
                                                              Total score of the team (string to allow
                                                              empty)
                                                            nullable: true
                                                        required:
                                                          - id
                                                          - name
                                                          - totalscore
                                                      away:
                                                        $ref: >-
                                                          #/paths/~1nfl~1season-schedule/get/responses/200/content/application~1json/schema/properties/scores/properties/tournament/properties/stage/items/properties/week/items/properties/matches/oneOf/0/properties/match/oneOf/0/properties/home
                                                      events:
                                                        nullable: true
                                                        type: object
                                                        properties:
                                                          firstquarter:
                                                            $ref: >-
                                                              #/paths/~1nfl~1season-schedule/get/responses/200/content/application~1json/schema/properties/scores/properties/tournament/properties/stage/items/properties/week/items/properties/matches/oneOf/0/properties/match/oneOf/0/properties/events/properties/overtime
                                                            nullable: true
                                                          secondquarter:
                                                            $ref: >-
                                                              #/paths/~1nfl~1season-schedule/get/responses/200/content/application~1json/schema/properties/scores/properties/tournament/properties/stage/items/properties/week/items/properties/matches/oneOf/0/properties/match/oneOf/0/properties/events/properties/overtime
                                                            nullable: true
                                                          thirdquarter:
                                                            $ref: >-
                                                              #/paths/~1nfl~1season-schedule/get/responses/200/content/application~1json/schema/properties/scores/properties/tournament/properties/stage/items/properties/week/items/properties/matches/oneOf/0/properties/match/oneOf/0/properties/events/properties/overtime
                                                            nullable: true
                                                          fourthquarter:
                                                            $ref: >-
                                                              #/paths/~1nfl~1season-schedule/get/responses/200/content/application~1json/schema/properties/scores/properties/tournament/properties/stage/items/properties/week/items/properties/matches/oneOf/0/properties/match/oneOf/0/properties/events/properties/overtime
                                                            nullable: true
                                                          overtime:
                                                            nullable: true
                                                            type: object
                                                            description: >
                                                              Events occurring during a specific
                                                              quarter. This can be null if no events.
                                                            properties: null
                                                        required:
                                                          - firstquarter
                                                          - secondquarter
                                                          - thirdquarter
                                                          - fourthquarter
                                                          - overtime
                                                    required:
                                                      - contestid
                                                      - datetime_utc
                                                      - formatted_date
                                                      - status
                                                      - time
                                                      - venue
                                                      - venue_id
                                                      - home
                                                      - away
                                                      - events
                                                  - type: array
                                                    items:
                                                      $ref: >-
                                                        #/paths/~1nfl~1season-schedule/get/responses/200/content/application~1json/schema/properties/scores/properties/tournament/properties/stage/items/properties/week/items/properties/matches/oneOf/0/properties/match/oneOf/0
                                            required:
                                              - date
                                              - formatted_date
                                              - timezone
                                              - match
                                          - type: array
                                            items:
                                              $ref: >-
                                                #/paths/~1nfl~1season-schedule/get/responses/200/content/application~1json/schema/properties/scores/properties/tournament/properties/stage/items/properties/week/items/properties/matches/oneOf/0
                                    required:
                                      - name
                                      - matches
                              required:
                                - id
                                - name
                                - week
                        required:
                          - name
                          - stage
                    required:
                      - sport
                      - tournament
                required:
                  - scores
              example:
                scores:
                  sport: american_football
                  tournament:
                    name: 'USA: NFL'
                    stage:
                      - id: '1500'
                        name: Pre Season
                        week:
                          - name: Hall of Fame Weekend
                            matches:
                              date: 'Thursday, July 31, 2025'
                              formatted_date: 31.07.2025
                              timezone: EST
                              match:
                                attendance: '18144'
                                contestid: '206228'
                                datetime_utc: '01.08.2025 00:00'
                                formatted_date: 31.07.2025
                                hipassing: Trey Lance 120
                                hireceiving: Isaac TeSlaa 46
                                hirushing: Craig Reynolds 38
                                status: Final
                                time: '7:00 PM'
                                venue: 'Tom Benson Hall of Fame Stadium, Canton'
                                venue_id: '2562'
                                home:
                                  id: '3194'
                                  name: Detroit Lions
                                  ot: ''
                                  posession: 'False'
                                  q1: '0'
                                  q2: '7'
                                  q3: '0'
                                  q4: '0'
                                  totalscore: '7'
                                away:
                                  id: '3201'
                                  name: Los Angeles Chargers
                                  ot: ''
                                  posession: 'False'
                                  q1: '14'
                                  q2: '7'
                                  q3: '6'
                                  q4: '7'
                                  totalscore: '34'
                                events:
                                  firstquarter: null
                                  secondquarter: null
                                  thirdquarter: null
                                  fourthquarter: null
                                  overtime: null
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: Unauthorized - invalid or missing access_key or invalid sport
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: Resource Not Found - could not find resource
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  /nfl/standings:
    get:
      summary: Get Standings
      description: >
        Returns NFL standings data including conference, division, and team
        rankings. This endpoint data is updated every 1 hour.
      tags:
        - "\U0001F3C8 NFL (V1)"
      servers:
        - url: 'https://statpal.io/api/v1/'
          description: Production (v1)
      security:
        - ApiKeyAuth: []
      x-update-rate: 3600
      responses:
        '200':
          description: Successful response with NFL standings data
          content:
            application/json:
              schema:
                type: object
                properties:
                  standings:
                    type: object
                    properties:
                      sport:
                        type: string
                        description: Sport name
                      category:
                        type: object
                        properties:
                          id:
                            type: string
                            description: 'Category ID (e.g., tournament or league ID)'
                          name:
                            type: string
                            description: Category name
                          season:
                            type: string
                            description: Season year
                          league:
                            type: array
                            items:
                              type: object
                              properties:
                                name:
                                  type: string
                                  description: League or conference name
                                division:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      name:
                                        type: string
                                        description: Division name
                                      team:
                                        type: array
                                        items:
                                          type: object
                                          properties:
                                            conference_record:
                                              type: string
                                              description: Team conference record
                                            difference:
                                              type: string
                                              description: Points difference
                                            division_record:
                                              type: string
                                              description: Team division record
                                            home_record:
                                              type: string
                                              description: Team home record
                                            id:
                                              type: string
                                              description: Team ID
                                            lost:
                                              type: string
                                              description: Number of losses
                                            name:
                                              type: string
                                              description: Team name
                                            points_against:
                                              type: string
                                              description: Points against
                                            points_for:
                                              type: string
                                              description: Points for
                                            position:
                                              type: string
                                              description: Standing position in the division
                                            road_record:
                                              type: string
                                              description: Team road record
                                            streak:
                                              type: string
                                              description: Current winning or losing streak
                                            ties:
                                              type: string
                                              description: Number of ties
                                            win_percentage:
                                              type: string
                                              description: Win percentage
                                            won:
                                              type: string
                                              description: Number of wins
                                          required:
                                            - conference_record
                                            - difference
                                            - division_record
                                            - home_record
                                            - id
                                            - lost
                                            - name
                                            - points_against
                                            - points_for
                                            - position
                                            - road_record
                                            - streak
                                            - ties
                                            - win_percentage
                                            - won
                                    required:
                                      - name
                                      - team
                              required:
                                - name
                                - division
                        required:
                          - id
                          - name
                          - season
                          - league
                    required:
                      - sport
                      - category
                required:
                  - standings
              example:
                standings:
                  sport: football
                  category:
                    id: '1500'
                    name: 'USA: NFL'
                    season: '2025'
                    league:
                      - name: American Football Conference
                        division:
                          - name: AFC East
                            team:
                              - conference_record: 6-2
                                difference: '+110'
                                division_record: 3-0
                                home_record: 5-2
                                id: '3180'
                                lost: '2'
                                name: New England Patriots
                                points_against: '241'
                                points_for: '351'
                                position: '1'
                                road_record: 6-0
                                streak: W10
                                ties: '0'
                                win_percentage: '.846'
                                won: '11'
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: Unauthorized - invalid or missing access_key or invalid sport
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: Resource Not Found - could not find resource
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  '/nfl/rosters/{team_abbreviation}':
    get:
      summary: Get Team Rosters
      description: >
        Returns NFL team rosters for the specified team abbreviation. This
        endpoint data is updated every 3 hours.
      tags:
        - "\U0001F3C8 NFL (V1)"
      servers:
        - url: 'https://statpal.io/api/v1/'
          description: Production (v1)
      security:
        - ApiKeyAuth: []
      x-update-rate: 10800
      parameters:
        - in: path
          name: team_abbreviation
          required: true
          schema:
            type: string
            enum:
              - ari
              - atl
              - bal
              - buf
              - car
              - chi
              - cin
              - cle
              - dal
              - den
              - det
              - gb
              - hou
              - ind
              - jac
              - kc
              - mia
              - min
              - 'no'
              - nyg
              - nyj
              - oak
              - phi
              - pit
              - sd
              - sea
              - sf
              - stl
              - tb
              - ten
              - wsh
          description: 'NFL team abbreviation (e.g., ''tb'', ''kc'')'
      responses:
        '200':
          description: Successful response with the team roster details
          content:
            application/json:
              schema:
                type: object
                properties:
                  team:
                    type: object
                    properties:
                      abbreviation:
                        type: string
                        description: NFL team abbreviation
                        example: TB
                      id:
                        type: string
                        description: Team ID
                        example: '3192'
                      name:
                        type: string
                        description: Team full name
                        example: Tampa Bay Buccaneers
                      season:
                        type: string
                        description: Season year
                        example: '2025'
                      position:
                        type: array
                        description: List of positions with players for team roster
                        items:
                          type: object
                          properties:
                            name:
                              type: string
                              description: 'Position group name (e.g. Offense, Defense)'
                            player:
                              type: array
                              description: List of players in this position group
                              items:
                                type: object
                                properties:
                                  age:
                                    type: string
                                    description: Player's age
                                    example: '25'
                                  college:
                                    type: string
                                    description: Player's college
                                    example: Bowling Green
                                  experience_years:
                                    type: string
                                    description: >-
                                      Player's years of experience ("R" for
                                      rookie)
                                    example: R
                                  height:
                                    type: string
                                    description: Player's height
                                    example: 6' 3"
                                  id:
                                    type: string
                                    description: Player ID
                                    example: '4427943'
                                  name:
                                    type: string
                                    description: Player's full name
                                    example: Connor Bazelak
                                  number:
                                    type: string
                                    description: Player jersey number (may be empty)
                                    example: '16'
                                  position:
                                    type: string
                                    description: Player position abbreviation
                                    example: QB
                                  salarycap:
                                    type: string
                                    description: >-
                                      Player salary cap information (may be
                                      empty or "-")
                                    example: '-'
                                  weight:
                                    type: string
                                    description: Player weight
                                    example: 225 lbs
                                required:
                                  - age
                                  - college
                                  - experience_years
                                  - height
                                  - id
                                  - name
                                  - number
                                  - position
                                  - salarycap
                                  - weight
                          required:
                            - name
                            - player
                      image:
                        type: string
                        description: >-
                          Base64 encoded image string representing the team logo
                          or emblem
                        example: >-
                          iVBORw0KGgoAAAANSUhEUgAAAJYAAACWCAYAAAA8AXHiAAAAAXNSR0IArs4c6QAAAAR...
                    required:
                      - abbreviation
                      - id
                      - name
                      - season
                      - position
                      - image
                required:
                  - team
              example:
                team:
                  abbreviation: TB
                  id: '3192'
                  name: Tampa Bay Buccaneers
                  season: '2025'
                  position:
                    - name: Offense
                      player:
                        - age: '25'
                          college: Bowling Green
                          experience_years: R
                          height: 6' 3"
                          id: '4427943'
                          name: Connor Bazelak
                          number: '16'
                          position: QB
                          salarycap: '-'
                          weight: 225 lbs
                    - name: Defense
                      player: null
                    - name: Special Teams
                      player: null
                    - name: Injured Reserve Or Out
                      player: null
                    - name: Practice Squad
                      player: null
                  image: >-
                    iVBORw0KGgoAAAANSUhEUgAAAJYAAACWCAYAAAA8AXHiAAAAAXNSR0IArs4c6QAAAAR...
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: >-
            Unauthorized - invalid or missing access_key or invalid team
            abbreviation
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: >-
            Resource Not Found - could not find roster for specified team
            abbreviation
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  '/nfl/injuries/{team_abbreviation}':
    get:
      summary: Get Team Injuries & Suspensions
      description: >
        Returns NFL team injuries and suspensions including detailed player
        reports. This endpoint data is updated every 3 hours.
      tags:
        - "\U0001F3C8 NFL (V1)"
      servers:
        - url: 'https://statpal.io/api/v1/'
          description: Production (v1)
      security:
        - ApiKeyAuth: []
      x-update-rate: 10800
      parameters:
        - name: team_abbreviation
          in: path
          required: true
          description: >-
            NFL team abbreviation (e.g. 'tb' for Tampa Bay Buccaneers, 'kc' for
            Kansas City Chiefs)
          schema:
            type: string
            enum:
              - ari
              - atl
              - bal
              - buf
              - car
              - chi
              - cin
              - cle
              - dal
              - den
              - det
              - gb
              - hou
              - ind
              - jac
              - kc
              - mia
              - min
              - 'no'
              - nyg
              - nyj
              - oak
              - phi
              - pit
              - sd
              - sea
              - sf
              - stl
              - tb
              - ten
              - wsh
      responses:
        '200':
          description: Successful response with NFL team injuries and suspensions report
          content:
            application/json:
              schema:
                type: object
                properties:
                  team:
                    type: object
                    properties:
                      id:
                        type: string
                        description: Team ID
                      name:
                        type: string
                        description: Team full name
                      report:
                        type: array
                        description: List of injury and suspension reports for players
                        items:
                          type: object
                          properties:
                            date:
                              type: string
                              description: Date of the injury or report (DD.MM.YYYY)
                            description:
                              type: string
                              description: Description of the injury or suspension
                            player_id:
                              type: string
                              description: Player unique ID (may be empty)
                              nullable: true
                            player_name:
                              type: string
                              description: Name of the player
                            status:
                              type: string
                              description: 'Status of the player (e.g., I.L., Questionable)'
                          required:
                            - date
                            - description
                            - player_name
                            - status
                    required:
                      - id
                      - name
                      - report
                required:
                  - team
              example:
                team:
                  id: '3192'
                  name: Tampa Bay Buccaneers
                  report:
                    - date: 09.12.2025
                      description: I.L. - Knee
                      player_id: '4046551'
                      player_name: Ben Bredeson
                      status: I.L.
                    - date: 08.12.2025
                      description: >-
                        Neck - Limited Practice on Tuesday. Questionable for
                        Week 15 vs. Atlanta
                      player_id: '4372459'
                      player_name: Christian Izien
                      status: Questionable
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: >-
            Unauthorized - invalid or missing access_key or invalid team
            abbreviation
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: Resource Not Found - team abbreviation not found
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  '/nfl/team-stats/{team_abbreviation}':
    get:
      summary: Get Team Stats
      description: >
        Returns NFL team statistics for a single team identified by the
        abbreviation. This endpoint data is updated every 3 hours.  
      tags:
        - "\U0001F3C8 NFL (V1)"
      servers:
        - url: 'https://statpal.io/api/v1/'
          description: Production (v1)
      security:
        - ApiKeyAuth: []
      x-update-rate: 10800
      parameters:
        - name: team_abbreviation
          in: path
          required: true
          description: >-
            NFL team abbreviation (e.g. 'tb' for Tampa Bay Buccaneers, 'kc' for
            Kansas City Chiefs)
          schema:
            type: string
            enum:
              - ari
              - atl
              - bal
              - buf
              - car
              - chi
              - cin
              - cle
              - dal
              - den
              - det
              - gb
              - hou
              - ind
              - jac
              - kc
              - mia
              - min
              - 'no'
              - nyg
              - nyj
              - oak
              - phi
              - pit
              - sd
              - sea
              - sf
              - stl
              - tb
              - ten
              - wsh
      responses:
        '200':
          description: Successful response with NFL team statistics
          content:
            application/json:
              schema:
                type: object
                properties:
                  statistics:
                    type: object
                    properties:
                      id:
                        type: string
                        description: Unique team stat record ID
                      season:
                        type: string
                        description: Season year
                      team:
                        type: string
                        description: Full team name
                      category:
                        type: array
                        description: List of statistic categories
                        items:
                          type: object
                          properties:
                            name:
                              type: string
                              description: 'Category name (e.g. Passing, Rushing)'
                            team:
                              type: object
                              description: >-
                                Detailed stats for team or opponents depending
                                on context.
                              additionalProperties:
                                type: string
                            opponents:
                              $ref: >-
                                #/paths/~1nfl~1team-stats~1%7Bteam_abbreviation%7D/get/responses/200/content/application~1json/schema/properties/statistics/properties/category/items/properties/team
                          required:
                            - name
                            - team
                            - opponents
                    required:
                      - id
                      - season
                      - team
                      - category
                required:
                  - statistics
              example:
                statistics:
                  id: '3192'
                  season: '2025'
                  team: Tampa Bay Buccaneers
                  category:
                    - name: Passing
                      team:
                        completion_pct: ''
                        completions: '432'
                        interceptions: '6'
                        interceptions_pct: ''
                        longest_pass: ''
                        passing_attempts: '265'
                        passing_touchdowns: '20'
                        passing_touchdowns_pct: ''
                        quaterback_rating: ''
                        sacked_yards_lost: '186'
                        sacks: '26'
                        yards: '2,598'
                        yards_per_game: '199.8'
                        yards_per_pass_avg: '6.4'
                      opponents:
                        completion_pct: ''
                        completions: '435'
                        interceptions: '12'
                        interceptions_pct: ''
                        longest_pass: ''
                        passing_attempts: '290'
                        passing_touchdowns: '21'
                        passing_touchdowns_pct: ''
                        quaterback_rating: ''
                        sacked_yards_lost: '239'
                        sacks: '32'
                        yards: '3,091'
                        yards_per_game: '237.8'
                        yards_per_pass_avg: '7.6'
                    - name: Rushing
                      team:
                        fumbles: '13'
                        fumbles_lost: '4'
                        longest_rush: ''
                        over_20_yards: ''
                        rushing_attempts: '359'
                        rushing_first_downs: '90'
                        rushing_touchdowns: '11'
                        yards: '1,497'
                        yards_per_game: '115.2'
                        yards_per_rush_avg: '4.2'
                      opponents:
                        fumbles: '14'
                        fumbles_lost: '7'
                        longest_rush: ''
                        over_20_yards: ''
                        rushing_attempts: '311'
                        rushing_first_downs: '65'
                        rushing_touchdowns: '15'
                        yards: '1,308'
                        yards_per_game: '100.6'
                        yards_per_rush_avg: '4.2'
                    - name: Downs
                      team:
                        fourth_downs_attempts: '27'
                        fourth_downs_conversions: '11'
                        fourth_downs_pct: '40.74'
                        passing_first_downs: '123'
                        penalties: '72'
                        penalties_yards: '566'
                        penalty_first_downs: '29'
                        rushing_first_downs: '90'
                        third_downs_attempts: '177'
                        third_downs_conversions: '68'
                        third_downs_pct: '38.42'
                        total_first_downs: '242'
                      opponents:
                        fourth_downs_attempts: '27'
                        fourth_downs_conversions: '11'
                        fourth_downs_pct: '40.74'
                        passing_first_downs: '159'
                        penalties: '89'
                        penalties_yards: '716'
                        penalty_first_downs: '19'
                        rushing_first_downs: '65'
                        third_downs_attempts: '157'
                        third_downs_conversions: '63'
                        third_downs_pct: '40.13'
                        total_first_downs: '243'
                    - name: Returning
                      team:
                        fair_catches: ''
                        kickoff_return_touchdows: ''
                        kickoff_return_yards: '1,143'
                        kickoff_returned_attempts: '47'
                        longes_kickoff_return: ''
                        longest_punt_return: ''
                        punt_return_touchdowns: ''
                        punts_returned: '22'
                        yards_per_kickoff_avg: '24.3'
                        yards_per_punt_avg: '8.8'
                        yards_returned_on_punts: '257'
                      opponents:
                        fair_catches: ''
                        kickoff_return_touchdows: ''
                        kickoff_return_yards: '1,646'
                        kickoff_returned_attempts: '59'
                        longes_kickoff_return: ''
                        longest_punt_return: ''
                        punt_return_touchdowns: ''
                        punts_returned: '17'
                        yards_per_kickoff_avg: '27.9'
                        yards_per_punt_avg: '11.7'
                        yards_returned_on_punts: '149'
                    - name: Kicking
                      team:
                        field_goals_attempts: '28'
                        field_goals_made: '24'
                      opponents:
                        field_goals_attempts: '23'
                        field_goals_made: '18'
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: >-
            Unauthorized - invalid or missing access_key or invalid team
            abbreviation
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: >-
            Resource Not Found - could not find team stats for specified
            abbreviation
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  '/nfl/player-stats/{team_abbreviation}':
    get:
      summary: Get Player Stats
      description: >
        Returns NFL player statistics for a given team abbreviation. This
        endpoint data is updated every 3 hours.
      tags:
        - "\U0001F3C8 NFL (V1)"
      servers:
        - url: 'https://statpal.io/api/v1/'
          description: Production (v1)
      security:
        - ApiKeyAuth: []
      x-update-rate: 10800
      parameters:
        - name: team_abbreviation
          in: path
          required: true
          description: >-
            NFL team abbreviation (e.g. 'tb' for Tampa Bay Buccaneers, 'kc' for
            Kansas City Chiefs)
          schema:
            type: string
            enum:
              - ari
              - atl
              - bal
              - buf
              - car
              - chi
              - cin
              - cle
              - dal
              - den
              - det
              - gb
              - hou
              - ind
              - jac
              - kc
              - mia
              - min
              - 'no'
              - nyg
              - nyj
              - oak
              - phi
              - pit
              - sd
              - sea
              - sf
              - stl
              - tb
              - ten
              - wsh
      responses:
        '200':
          description: Successful response with player statistics for the specified team
          content:
            application/json:
              schema:
                type: object
                properties:
                  statistics:
                    type: object
                    properties:
                      id:
                        type: string
                        description: Statistics record ID
                      season:
                        type: string
                        description: Season year
                      seasontype:
                        type: string
                        description: Season type (e.g. Regular season)
                      team:
                        type: string
                        description: Full team name
                      category:
                        type: array
                        description: List of statistical categories with player stats
                        items:
                          type: object
                          properties:
                            name:
                              type: string
                              description: 'Category name (e.g. Passing, Rushing, Receiving)'
                            player:
                              oneOf:
                                - type: array
                                  items:
                                    $ref: >-
                                      #/paths/~1nfl~1player-stats~1%7Bteam_abbreviation%7D/get/responses/200/content/application~1json/schema/properties/statistics/properties/category/items/properties/player/oneOf/1
                                - type: object
                                  description: >-
                                    Player statistics details. Properties vary
                                    by category. All fields are strings.
                                  properties:
                                    id:
                                      type: string
                                      description: Player ID
                                    name:
                                      type: string
                                      description: Player full name
                                    rank:
                                      type: string
                                      nullable: true
                                    completions:
                                      type: string
                                      nullable: true
                                    completion_pct:
                                      type: string
                                      nullable: true
                                    interceptions:
                                      type: string
                                      nullable: true
                                    interceptions_pct:
                                      type: string
                                      nullable: true
                                    longest_pass:
                                      type: string
                                      nullable: true
                                    passing_attempts:
                                      type: string
                                      nullable: true
                                    passing_touchdowns:
                                      type: string
                                      nullable: true
                                    passing_touchdowns_pct:
                                      type: string
                                      nullable: true
                                    quaterback_rating:
                                      type: string
                                      nullable: true
                                    sacked_yards_lost:
                                      type: string
                                      nullable: true
                                    sacks:
                                      type: string
                                      nullable: true
                                    yards:
                                      type: string
                                      nullable: true
                                    yards_per_game:
                                      type: string
                                      nullable: true
                                    yards_per_pass_avg:
                                      type: string
                                      nullable: true
                                    fumbles:
                                      type: string
                                      nullable: true
                                    fumbles_lost:
                                      type: string
                                      nullable: true
                                    longest_rush:
                                      type: string
                                      nullable: true
                                    over_20_yards:
                                      type: string
                                      nullable: true
                                    rushing_attempts:
                                      type: string
                                      nullable: true
                                    rushing_first_downs:
                                      type: string
                                      nullable: true
                                    rushing_touchdowns:
                                      type: string
                                      nullable: true
                                    yards_per_rush_avg:
                                      type: string
                                      nullable: true
                                    longest_reception:
                                      type: string
                                      nullable: true
                                    receiving_first_downs:
                                      type: string
                                      nullable: true
                                    receiving_targets:
                                      type: string
                                      nullable: true
                                    receiving_touchdowns:
                                      type: string
                                      nullable: true
                                    receiving_yards:
                                      type: string
                                      nullable: true
                                    receptions:
                                      type: string
                                      nullable: true
                                    yards_after_catch:
                                      type: string
                                      nullable: true
                                    yards_per_reception_avg:
                                      type: string
                                      nullable: true
                                    assisted_tackles:
                                      type: string
                                      nullable: true
                                    blocked_kicks:
                                      type: string
                                      nullable: true
                                    forced_fumbles:
                                      type: string
                                      nullable: true
                                    fumbles_recovered:
                                      type: string
                                      nullable: true
                                    fumbles_returned_for_touchdowns:
                                      type: string
                                      nullable: true
                                    intercepted_returned_yards:
                                      type: string
                                      nullable: true
                                    interceptions_returned_for_touchdowns:
                                      type: string
                                      nullable: true
                                    longest_interception_return:
                                      type: string
                                      nullable: true
                                    passes_defended:
                                      type: string
                                      nullable: true
                                    tackles_for_loss:
                                      type: string
                                      nullable: true
                                    total_tackles:
                                      type: string
                                      nullable: true
                                    unassisted_tackles:
                                      type: string
                                      nullable: true
                                    yards_lost_on_sack:
                                      type: string
                                      nullable: true
                                    extra_points:
                                      type: string
                                      nullable: true
                                    field_goals:
                                      type: string
                                      nullable: true
                                    return_touchdowns:
                                      type: string
                                      nullable: true
                                    total_points:
                                      type: string
                                      nullable: true
                                    total_points_per_game:
                                      type: string
                                      nullable: true
                                    total_touchdowns:
                                      type: string
                                      nullable: true
                                    two_point_conversions:
                                      type: string
                                      nullable: true
                                    fair_catches:
                                      type: string
                                      nullable: true
                                    kickoff_return_touchdows:
                                      type: string
                                      nullable: true
                                    kickoff_return_yards:
                                      type: string
                                      nullable: true
                                    kickoff_returned_attempts:
                                      type: string
                                      nullable: true
                                    longes_kickoff_return:
                                      type: string
                                      nullable: true
                                    longest_punt_return:
                                      type: string
                                      nullable: true
                                    punt_return_touchdowns:
                                      type: string
                                      nullable: true
                                    punts_returned:
                                      type: string
                                      nullable: true
                                    yards_per_kickoff_avg:
                                      type: string
                                      nullable: true
                                    yards_per_punt_avg:
                                      type: string
                                      nullable: true
                                    yards_returned_on_punts:
                                      type: string
                                      nullable: true
                                    extra_points_attempts:
                                      type: string
                                      nullable: true
                                    extra_points_made:
                                      type: string
                                      nullable: true
                                    extra_points_made_pct:
                                      type: string
                                      nullable: true
                                    field_goals_attempts:
                                      type: string
                                      nullable: true
                                    field_goals_from_1_19_yards:
                                      type: string
                                      nullable: true
                                    field_goals_from_20_29_yards:
                                      type: string
                                      nullable: true
                                    field_goals_from_30_39_yards:
                                      type: string
                                      nullable: true
                                    field_goals_from_40_49_yards:
                                      type: string
                                      nullable: true
                                    field_goals_from_50_yards:
                                      type: string
                                      nullable: true
                                    field_goals_made:
                                      type: string
                                      nullable: true
                                    field_goals_made_pct:
                                      type: string
                                      nullable: true
                                    longest_goal_made:
                                      type: string
                                      nullable: true
                                    blocked_punts:
                                      type: string
                                      nullable: true
                                    gross_punt_yards:
                                      type: string
                                      nullable: true
                                    gross_punting_avg:
                                      type: string
                                      nullable: true
                                    inside_20_yards_punt:
                                      type: string
                                      nullable: true
                                    longest_punt:
                                      type: string
                                      nullable: true
                                    net_punting_avg:
                                      type: string
                                      nullable: true
                                    punts:
                                      type: string
                                      nullable: true
                                    touchbacks:
                                      type: string
                                      nullable: true
                                    yards_returned_on_punts_avg:
                                      type: string
                                      nullable: true
                                  required:
                                    - id
                                    - name
                          required:
                            - name
                            - player
                    required:
                      - id
                      - season
                      - seasontype
                      - team
                      - category
                required:
                  - statistics
              example:
                statistics:
                  id: '3192'
                  season: '2025'
                  seasontype: Regular season
                  team: Tampa Bay Buccaneers
                  category:
                    - name: Passing
                      player:
                        - id: '3054086'
                          name: Baker Mayfield
                          completions: '257'
                          completion_pct: '61.6'
                          interceptions: '6'
                          interceptions_pct: ''
                          longest_pass: '77'
                          passing_attempts: '417'
                          passing_touchdowns: '20'
                          passing_touchdowns_pct: ''
                          quaterback_rating: '90.6'
                          rank: '1'
                          sacked_yards_lost: '165'
                          sacks: '24'
                          yards: '2,722'
                          yards_per_game: '209.4'
                          yards_per_pass_avg: '6.5'
                        - id: '18227'
                          name: Teddy Bridgewater
                          completions: '8'
                          completion_pct: '53.3'
                          interceptions: '0'
                          interceptions_pct: ''
                          longest_pass: '32'
                          passing_attempts: '15'
                          passing_touchdowns: '0'
                          passing_touchdowns_pct: ''
                          quaterback_rating: '63.8'
                          rank: '2'
                          sacked_yards_lost: '21'
                          sacks: '2'
                          yards: '62'
                          yards_per_game: '15.5'
                          yards_per_pass_avg: '4.1'
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: >-
            Unauthorized - invalid or missing access_key or invalid team
            abbreviation
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: Resource Not Found - could not find player stats for specified team
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  '/nfl/league-stats/{stat_type}':
    get:
      summary: Get League Stats
      description: >
        Returns NFL league career statistics categorized by type. This endpoint
        data is updated every 3 hours.
      tags:
        - "\U0001F3C8 NFL (V1)"
      servers:
        - url: 'https://statpal.io/api/v1/'
          description: Production (v1)
      security:
        - ApiKeyAuth: []
      x-update-rate: 10800
      parameters:
        - name: stat_type
          in: path
          description: Abbreviation of the stats type. Only 'nfl-career' is supported.
          required: true
          schema:
            type: string
            enum:
              - nfl-career
      responses:
        '200':
          description: Successful response with NFL league career statistics
          content:
            application/json:
              schema:
                type: object
                properties:
                  statistics:
                    type: object
                    properties:
                      category:
                        type: array
                        items:
                          type: object
                          properties:
                            name:
                              type: string
                              description: >-
                                Category name of the statistics (e.g.,
                                Touchdowns)
                            player:
                              type: array
                              items:
                                type: object
                                properties:
                                  name:
                                    type: string
                                    description: Player name
                                  rank:
                                    type: string
                                    description: Player's rank in this category
                                  value:
                                    type: string
                                    description: Statistic value for the player
                                required:
                                  - name
                                  - rank
                                  - value
                          required:
                            - name
                            - player
                    required:
                      - category
                required:
                  - statistics
              example:
                statistics:
                  category:
                    - name: Touchdowns
                      player:
                        - name: Jerry Rice
                          rank: '1'
                          value: '208'
                        - name: Emmitt Smith
                          rank: '2'
                          value: '175'
                    - name: Points
                      player:
                        - name: Morten Andersen
                          rank: '1'
                          value: '2,544'
                        - name: Adam Vinatieri
                          rank: '2'
                          value: '2,487'
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: Unauthorized - invalid or missing access_key or invalid stats_type
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: Resource Not Found - could not find resource
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  /nfl/odds:
    get:
      summary: Get Pre-Game Odds
      description: >
        Returns NFL pre-match odds from multiple bookmakers with detailed odds
        types and values. This endpoint data is updated every 30 minutes.
      tags:
        - "\U0001F3C8 NFL (V1)"
      servers:
        - url: 'https://statpal.io/api/v1/'
          description: Production (v1)
      security:
        - ApiKeyAuth: []
      x-update-rate: 1800
      responses:
        '200':
          description: Successful response with NFL pre-match odds details
          content:
            application/json:
              schema:
                type: object
                properties:
                  odds:
                    type: object
                    properties:
                      sport:
                        type: string
                        description: Sport name
                      tournament:
                        type: object
                        properties:
                          country:
                            type: string
                            description: Country of the tournament
                          id:
                            type: string
                            description: Tournament ID
                          league:
                            type: string
                            description: Tournament league name
                          match:
                            type: array
                            items:
                              type: object
                              properties:
                                attendance:
                                  type: string
                                  description: Attendance for the match (may be empty)
                                contestid:
                                  type: string
                                  description: Contest ID
                                datetime_utc:
                                  type: string
                                  description: Date and time UTC formatted
                                formatted_date:
                                  type: string
                                  description: Formatted date
                                status:
                                  type: string
                                  description: >-
                                    Current status of the match (e.g., Not
                                    Started, Finished)
                                time:
                                  type: string
                                  description: Scheduled or actual time
                                venue:
                                  type: string
                                  description: Venue name and location
                                venue_id:
                                  type: string
                                  description: Venue ID
                                home:
                                  type: object
                                  properties:
                                    id:
                                      type: string
                                      description: Team ID
                                    name:
                                      type: string
                                      description: Team name
                                    ot:
                                      type: string
                                      description: Overtime score or info
                                      nullable: true
                                    q1:
                                      type: string
                                      description: Quarter 1 score
                                      nullable: true
                                    q2:
                                      type: string
                                      description: Quarter 2 score
                                      nullable: true
                                    q3:
                                      type: string
                                      description: Quarter 3 score
                                      nullable: true
                                    q4:
                                      type: string
                                      description: Quarter 4 score
                                      nullable: true
                                    totalscore:
                                      type: string
                                      description: >-
                                        Total score of the team (string to allow
                                        empty)
                                      nullable: true
                                  required:
                                    - id
                                    - name
                                    - totalscore
                                away:
                                  $ref: >-
                                    #/paths/~1nfl~1odds/get/responses/200/content/application~1json/schema/properties/odds/properties/tournament/properties/match/items/properties/home
                                odds:
                                  type: object
                                  properties:
                                    rotation_away:
                                      type: string
                                      description: Rotation number for away team
                                    rotation_home:
                                      type: string
                                      description: Rotation number for home team
                                    ts:
                                      type: string
                                      description: >-
                                        Timestamp indicating when the odds were
                                        last updated
                                    type:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          id:
                                            type: string
                                            description: Odds Type ID
                                          value:
                                            type: string
                                            description: Odds Type name
                                          bookmaker:
                                            type: array
                                            items:
                                              type: object
                                              properties:
                                                id:
                                                  type: string
                                                  description: Bookmaker ID (may be empty)
                                                  nullable: true
                                                name:
                                                  type: string
                                                  description: Bookmaker name
                                                o:
                                                  type: string
                                                  description: Odds segment or order
                                                odd:
                                                  type: array
                                                  description: List of odds
                                                  items:
                                                    type: object
                                                    properties:
                                                      dp3:
                                                        type: string
                                                        description: Decimal odds
                                                      id:
                                                        type: string
                                                        description: Odd identifier
                                                      name:
                                                        type: string
                                                        description: Odd name or selection
                                                      us:
                                                        type: string
                                                        description: American odds
                                                      value:
                                                        type: string
                                                        description: Decimal odds value
                                                    required:
                                                      - dp3
                                                      - id
                                                      - name
                                                      - us
                                                      - value
                                                handicap:
                                                  nullable: true
                                                  type: object
                                                  properties:
                                                    main:
                                                      type: string
                                                      description: Main handicap value
                                                    name:
                                                      type: string
                                                      description: Handicap label
                                                    odd:
                                                      type: array
                                                      description: List of handicap odds
                                                      items:
                                                        $ref: >-
                                                          #/paths/~1nfl~1odds/get/responses/200/content/application~1json/schema/properties/odds/properties/tournament/properties/match/items/properties/odds/properties/type/items/properties/bookmaker/items/properties/odd/items
                                                  required:
                                                    - main
                                                    - name
                                                    - odd
                                                total:
                                                  nullable: true
                                                  type: object
                                                  properties:
                                                    main:
                                                      type: string
                                                      description: Main total value
                                                    name:
                                                      type: string
                                                      description: Total label
                                                    odd:
                                                      type: array
                                                      description: List of total odds
                                                      items:
                                                        $ref: >-
                                                          #/paths/~1nfl~1odds/get/responses/200/content/application~1json/schema/properties/odds/properties/tournament/properties/match/items/properties/odds/properties/type/items/properties/bookmaker/items/properties/odd/items
                                                  required:
                                                    - main
                                                    - name
                                                    - odd
                                              required:
                                                - name
                                                - o
                                                - odd
                                        required:
                                          - id
                                          - value
                                          - bookmaker
                                  required:
                                    - rotation_away
                                    - rotation_home
                                    - ts
                                    - type
                              required:
                                - contestid
                                - datetime_utc
                                - formatted_date
                                - status
                                - time
                                - venue
                                - venue_id
                                - home
                                - away
                                - odds
                        required:
                          - country
                          - id
                          - league
                          - match
                    required:
                      - sport
                      - tournament
                required:
                  - odds
              example:
                odds:
                  sport: american_football
                  tournament:
                    country: usa
                    id: '1500'
                    league: 'USA: NFL'
                    match:
                      - attendance: ''
                        contestid: '206359'
                        datetime_utc: '12.12.2025 01:15'
                        formatted_date: 11.12.2025
                        status: Not Started
                        time: '8:15 PM'
                        venue: 'Raymond James Stadium, Tampa, USA'
                        venue_id: '4155'
                        home:
                          id: '3192'
                          name: Tampa Bay Buccaneers
                          ot: ''
                          q1: ''
                          q2: ''
                          q3: ''
                          q4: ''
                          totalscore: ''
                        away:
                          id: '3189'
                          name: Atlanta Falcons
                          ot: ''
                          q1: ''
                          q2: ''
                          q3: ''
                          q4: ''
                          totalscore: ''
                        odds:
                          rotation_away: '451'
                          rotation_home: '452'
                          ts: '1765354472'
                          type:
                            - id: '1501'
                              value: Home/Away
                              bookmaker:
                                - id: ''
                                  name: Rivalry
                                  o: '1'
                                  odd:
                                    - dp3: '1.41'
                                      id: '820:74:2:1567'
                                      name: '1'
                                      us: '-244'
                                      value: '1.41'
                                    - dp3: '2.92'
                                      id: '820:74:2:1570'
                                      name: '2'
                                      us: '192'
                                      value: '2.92'
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: Unauthorized - invalid or missing access_key or invalid sport
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: Resource Not Found - could not find resource
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  /mlb/livescores:
    get:
      summary: Get Live Scores
      description: >
        Returns MLB live scores with detailed match information. This endpoint
        data is updated every 15 seconds.
      tags:
        - ⚾ MLB (V1)
      servers:
        - url: 'https://statpal.io/api/v1/'
          description: Production (v1)
      security:
        - ApiKeyAuth: []
      x-update-rate: 15
      responses:
        '200':
          description: Successful response with MLB live scores and match details
          content:
            application/json:
              schema:
                type: object
                properties:
                  livescores:
                    type: object
                    properties:
                      sport:
                        type: string
                        description: Sport name
                      tournament:
                        type: object
                        properties:
                          country:
                            type: string
                            description: Country of the tournament
                          id:
                            type: string
                            description: Tournament ID
                          league:
                            type: string
                            description: Tournament league name
                          match:
                            type: array
                            items:
                              type: object
                              properties:
                                attendance:
                                  type: string
                                  description: Attendance for the match (may be empty)
                                date:
                                  type: string
                                  description: Date of the match (DD.MM.YYYY)
                                datetime_utc:
                                  type: string
                                  description: Date and time UTC formatted
                                formatted_date:
                                  type: string
                                  description: Formatted date
                                id:
                                  type: string
                                  description: Match ID
                                oddsid:
                                  type: string
                                  description: Odds ID
                                outs:
                                  type: string
                                  description: >-
                                    Number of outs in the current inning (may be
                                    empty)
                                  nullable: true
                                status:
                                  type: string
                                  description: >-
                                    Current status of the match (e.g., Not
                                    Started, Finished)
                                time:
                                  type: string
                                  description: Scheduled or actual time
                                timezone:
                                  type: string
                                  description: Timezone abbreviation
                                venue_id:
                                  type: string
                                  description: Venue ID
                                venue_name:
                                  type: string
                                  description: Venue name
                                home:
                                  type: object
                                  properties:
                                    errors:
                                      type: string
                                      description: Number of errors
                                      nullable: true
                                    hits:
                                      type: string
                                      description: Number of hits
                                      nullable: true
                                    id:
                                      type: string
                                      description: Team ID
                                    in1:
                                      type: string
                                      description: Runs in inning 1
                                      nullable: true
                                    in2:
                                      type: string
                                      description: Runs in inning 2
                                      nullable: true
                                    in3:
                                      type: string
                                      description: Runs in inning 3
                                      nullable: true
                                    in4:
                                      type: string
                                      description: Runs in inning 4
                                      nullable: true
                                    in5:
                                      type: string
                                      description: Runs in inning 5
                                      nullable: true
                                    in6:
                                      type: string
                                      description: Runs in inning 6
                                      nullable: true
                                    in7:
                                      type: string
                                      description: Runs in inning 7
                                      nullable: true
                                    in8:
                                      type: string
                                      description: Runs in inning 8
                                      nullable: true
                                    in9:
                                      type: string
                                      description: Runs in inning 9
                                      nullable: true
                                    name:
                                      type: string
                                      description: Team name
                                    r:
                                      type: string
                                      description: Total runs
                                      nullable: true
                                    totalscore:
                                      type: string
                                      description: Total score of the team
                                      nullable: true
                                  required:
                                    - id
                                    - name
                                    - totalscore
                                away:
                                  $ref: >-
                                    #/paths/~1mlb~1livescores/get/responses/200/content/application~1json/schema/properties/livescores/properties/tournament/properties/match/items/properties/home
                                headline:
                                  type: string
                                  description: Headline or notable info for the match
                                  nullable: true
                                events:
                                  type: object
                                  nullable: true
                                  description: 'Events during the match, may be null'
                                stats:
                                  type: object
                                  nullable: true
                                  description: 'Match stats, may be null'
                                starting_pitchers:
                                  type: object
                                  properties:
                                    home:
                                      type: object
                                      properties:
                                        player:
                                          type: object
                                          properties:
                                            id:
                                              type: string
                                              description: Player ID
                                            name:
                                              type: string
                                              description: Player name
                                          required:
                                            - id
                                            - name
                                      required:
                                        - player
                                    away:
                                      $ref: >-
                                        #/paths/~1mlb~1livescores/get/responses/200/content/application~1json/schema/properties/livescores/properties/tournament/properties/match/items/properties/starting_pitchers/properties/home
                                  required:
                                    - home
                                    - away
                                umpires:
                                  type: object
                                  nullable: true
                                  description: 'Umpires info, may be null'
                              required:
                                - date
                                - datetime_utc
                                - formatted_date
                                - id
                                - oddsid
                                - status
                                - time
                                - timezone
                                - venue_id
                                - venue_name
                                - home
                                - away
                                - starting_pitchers
                        required:
                          - country
                          - id
                          - league
                          - match
                    required:
                      - sport
                      - tournament
                required:
                  - livescores
              example:
                livescores:
                  sport: baseball
                  tournament:
                    country: usa
                    id: '2499'
                    league: 'USA: MLB'
                    match:
                      - attendance: ''
                        date: 21.04.2025
                        datetime_utc: '21.04.2025 15:10'
                        formatted_date: 21.04.2025
                        id: '1329182974'
                        oddsid: '337953'
                        outs: ''
                        status: Not Started
                        time: '11:10'
                        timezone: ET
                        venue_id: '1294'
                        venue_name: 'Fenway Park, Boston, Massachusetts'
                        home:
                          errors: '-'
                          hits: '-'
                          id: '2501'
                          in1: '-'
                          in2: '-'
                          in3: '-'
                          in4: '-'
                          in5: '-'
                          in6: '-'
                          in7: '-'
                          in8: '-'
                          in9: '-'
                          name: Boston Red Sox
                          r: '-'
                          totalscore: '0'
                        away:
                          errors: '-'
                          hits: '-'
                          id: '2510'
                          in1: '-'
                          in2: '-'
                          in3: '-'
                          in4: '-'
                          in5: '-'
                          in6: '-'
                          in7: '-'
                          in8: '-'
                          in9: '-'
                          name: Chicago White Sox
                          r: '-'
                          totalscore: '0'
                        headline: null
                        events: null
                        stats: null
                        starting_pitchers:
                          home:
                            player:
                              id: '40750'
                              name: Walker Buehler
                          away:
                            player:
                              id: '4621897'
                              name: Jonathan Cannon
                        umpires: null
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: Unauthorized - invalid or missing access_key or invalid sport
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: Resource Not Found - could not find resource
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  '/mlb/daily/{day_offset_token}':
    get:
      summary: Get Games Recent / Upcoming
      description: >
        Returns MLB recent and upcoming games by daily offset token. This
        endpoint data is updated every 12 hours.
      tags:
        - ⚾ MLB (V1)
      servers:
        - url: 'https://statpal.io/api/v1/'
          description: Production (v1)
      security:
        - ApiKeyAuth: []
      parameters:
        - name: day_offset_token
          in: path
          description: >
            Offset token relative to today to fetch games. Valid values are from
            "d-7" to "d7" (e.g., "d-1", "d1").
          required: true
          schema:
            type: string
            enum:
              - d-1
              - d-2
              - d-3
              - d-4
              - d-5
              - d-6
              - d-7
              - d1
              - d2
              - d3
              - d4
              - d5
              - d6
              - d7
      x-update-rate: 43200
      responses:
        '200':
          description: Successful response with MLB games for requested day offset
          content:
            application/json:
              schema:
                $ref: >-
                  /static/openapi/schemas/mlb/v1/daily.yaml#/MLBDailyGamesResponseV1
              example:
                scores:
                  sport: baseball
                  tournament:
                    country: usa
                    id: '2499'
                    league: 'Usa: Mlb'
                    match:
                      - date: 19.04.2025
                        extra_inn: ''
                        id: '339429'
                        status: Finished
                        time: '23:10'
                        home:
                          errors: '0'
                          extra: ''
                          hits: '7'
                          id: '2517'
                          in1: '0'
                          in2: '0'
                          in3: '0'
                          in4: '0'
                          in5: '0'
                          in6: '2'
                          in7: '1'
                          in8: '0'
                          in9: ''
                          name: Houston Astros
                          totalscore: '3'
                        away:
                          errors: '0'
                          extra: ''
                          hits: '7'
                          id: '2528'
                          in1: '0'
                          in2: '0'
                          in3: '1'
                          in4: '0'
                          in5: '1'
                          in6: '0'
                          in7: '0'
                          in8: '0'
                          in9: '0'
                          name: San Diego Padres
                          totalscore: '2'
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: Unauthorized - invalid or missing access_key or invalid sport
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: Resource Not Found - could not find resource
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  /mlb/season-schedule:
    get:
      summary: Get Full Schedule / Results
      description: >
        Returns MLB season schedule with detailed match results and events. This
        endpoint data is updated every 1 hour.
      tags:
        - ⚾ MLB (V1)
      servers:
        - url: 'https://statpal.io/api/v1/'
          description: Production (v1)
      security:
        - ApiKeyAuth: []
      x-update-rate: 3600
      responses:
        '200':
          description: >-
            Successful response with MLB season schedule games and detailed
            results
          content:
            application/json:
              schema:
                type: object
                properties:
                  scores:
                    type: object
                    properties:
                      sport:
                        type: string
                        description: Sport name
                      tournament:
                        type: object
                        properties:
                          country:
                            type: string
                            description: Country of the tournament
                          id:
                            type: string
                            description: Tournament ID
                          league:
                            type: string
                            description: Tournament league name
                          season:
                            type: string
                            description: Season identifier
                          match:
                            type: array
                            items:
                              type: object
                              properties:
                                date:
                                  type: string
                                  description: Date of the match (DD.MM.YYYY)
                                id:
                                  type: string
                                  description: Match ID
                                status:
                                  type: string
                                  description: >-
                                    Current status of the match (e.g.,
                                    Scheduled, Finished, In Progress)
                                time:
                                  type: string
                                  description: Scheduled or actual start time
                                venue:
                                  type: string
                                  description: Venue name
                                home:
                                  type: object
                                  properties:
                                    id:
                                      type: string
                                      description: Team ID
                                    name:
                                      type: string
                                      description: Team name
                                    totalscore:
                                      type: string
                                      description: >-
                                        Total score of the team (empty if match
                                        not started)
                                      nullable: true
                                  required:
                                    - id
                                    - name
                                    - totalscore
                                away:
                                  $ref: >-
                                    #/paths/~1mlb~1season-schedule/get/responses/200/content/application~1json/schema/properties/scores/properties/tournament/properties/match/items/properties/home
                                events:
                                  nullable: true
                                  description: Events occurring during the match
                                  type: object
                                  properties:
                                    innings:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          number:
                                            type: integer
                                            description: Inning number
                                          home_score:
                                            type: integer
                                            description: Runs scored by home team in this inning
                                          away_score:
                                            type: integer
                                            description: Runs scored by away team in this inning
                                          events:
                                            type: array
                                            items:
                                              type: object
                                              properties:
                                                type:
                                                  type: string
                                                  description: >-
                                                    Type of event (e.g., 'hit', 'strikeout',
                                                    'home_run', 'error')
                                                description:
                                                  type: string
                                                  description: >-
                                                    Detailed description or comment of the
                                                    event
                                                player_id:
                                                  type: string
                                                  description: Player ID associated with the event
                                                  nullable: true
                                                player_name:
                                                  type: string
                                                  description: Player name associated with the event
                                                  nullable: true
                                                team:
                                                  type: string
                                                  description: Team associated with the event
                                                  nullable: true
                                                inning_minute:
                                                  type: string
                                                  description: >-
                                                    Approximate minute into the inning for
                                                    the event
                                                  nullable: true
                                              required:
                                                - type
                                                - description
                                            nullable: true
                                        required:
                                          - number
                                          - home_score
                                          - away_score
                                      nullable: true
                                team_stats:
                                  type: object
                                  nullable: true
                                  description: >-
                                    Detailed team statistics for the match, may
                                    be null
                                player_stats:
                                  type: object
                                  nullable: true
                                  description: 'Detailed player statistics, may be null'
                              required:
                                - date
                                - id
                                - status
                                - time
                                - venue
                                - home
                                - away
                        required:
                          - country
                          - id
                          - league
                          - season
                          - match
                    required:
                      - sport
                      - tournament
                required:
                  - scores
              example:
                scores:
                  sport: baseball
                  tournament:
                    country: usa
                    id: '3001'
                    league: MLB
                    season: '2025'
                    match:
                      - date: 01.04.2025
                        id: M12345
                        status: Scheduled
                        time: '19:05'
                        venue: Fenway Park
                        home:
                          id: '1001'
                          name: Boston Red Sox
                          totalscore: ''
                        away:
                          id: '1002'
                          name: New York Yankees
                          totalscore: ''
                        events: null
                        team_stats: null
                        player_stats: null
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: Unauthorized - invalid or missing access_key or invalid sport
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: Resource Not Found - could not find resource
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  /mlb/standings:
    get:
      summary: Get Standings
      description: >
        Returns MLB standings data by league, division, and team. This endpoint
        data is updated every 1 hour.
      tags:
        - ⚾ MLB (V1)
      servers:
        - url: 'https://statpal.io/api/v1/'
          description: Production (v1)
      security:
        - ApiKeyAuth: []
      x-update-rate: 3600
      responses:
        '200':
          description: Successful response with MLB standings
          content:
            application/json:
              schema:
                type: object
                properties:
                  standings:
                    type: object
                    properties:
                      sport:
                        type: string
                        description: Sport name
                      category:
                        type: object
                        properties:
                          id:
                            type: string
                            description: Category ID
                          name:
                            type: string
                            description: Category name
                          season:
                            type: string
                            description: Season year
                          league:
                            type: array
                            items:
                              type: object
                              properties:
                                name:
                                  type: string
                                  description: League name
                                division:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      name:
                                        type: string
                                        description: Division name
                                      team:
                                        type: array
                                        items:
                                          type: object
                                          properties:
                                            away_record:
                                              type: string
                                              description: Team away record (W-L)
                                            current_streak:
                                              type: string
                                              description: Current winning/losing streak
                                            games_back:
                                              type: string
                                              description: Games back from first place
                                            home_record:
                                              type: string
                                              description: Team home record (W-L)
                                            id:
                                              type: string
                                              description: Team ID
                                            lost:
                                              type: string
                                              description: Number of games lost
                                            name:
                                              type: string
                                              description: Team name
                                            position:
                                              type: string
                                              description: Team position in division
                                            runs_allowed:
                                              type: string
                                              description: Total runs allowed by the team
                                            runs_diff:
                                              type: string
                                              description: Runs differential
                                            runs_scored:
                                              type: string
                                              description: Total runs scored by the team
                                            won:
                                              type: string
                                              description: Number of games won
                                          required:
                                            - away_record
                                            - current_streak
                                            - games_back
                                            - home_record
                                            - id
                                            - lost
                                            - name
                                            - position
                                            - runs_allowed
                                            - runs_diff
                                            - runs_scored
                                            - won
                                    required:
                                      - name
                                      - team
                              required:
                                - name
                                - division
                        required:
                          - id
                          - name
                          - season
                          - league
                    required:
                      - sport
                      - category
                required:
                  - standings
              example:
                standings:
                  sport: baseball
                  category:
                    id: '2499'
                    name: 'USA: MLB'
                    season: '2025'
                    league:
                      - name: American League
                        division:
                          - name: East
                            team:
                              - away_record: 40-41
                                current_streak: W4
                                games_back: '-'
                                home_record: 54-27
                                id: '2504'
                                lost: '68'
                                name: Toronto Blue Jays
                                position: '1'
                                runs_allowed: '721'
                                runs_diff: '+77'
                                runs_scored: '798'
                                won: '94'
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: Unauthorized - invalid or missing access_key or invalid sport
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: Resource Not Found - could not find resource
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  '/mlb/rosters/{team_abbreviation}':
    get:
      summary: Get Team Roster
      description: >
        Returns the MLB team roster including player details categorized by
        position. This endpoint data is updated every 1 hour.
      tags:
        - ⚾ MLB (V1)
      servers:
        - url: 'https://statpal.io/api/v1/'
          description: Production (v1)
      security:
        - ApiKeyAuth: []
      parameters:
        - name: team_abbreviation
          in: path
          required: true
          description: |
            MLB team abbreviation.
          schema:
            type: string
            enum:
              - ari
              - atl
              - bal
              - bos
              - chc
              - chw
              - cin
              - cle
              - col
              - det
              - fla
              - hou
              - kan
              - laa
              - lad
              - mil
              - min
              - nym
              - nyy
              - oak
              - phi
              - pit
              - sdg
              - sea
              - sfo
              - stl
              - tam
              - tex
              - tor
              - was
      x-update-rate: 3600
      responses:
        '200':
          description: >-
            Successful response with MLB team roster details by position and
            players
          content:
            application/json:
              schema:
                type: object
                properties:
                  team:
                    type: object
                    properties:
                      abbreviation:
                        type: string
                        description: MLB team abbreviation
                      id:
                        type: string
                        description: Team ID
                      name:
                        type: string
                        description: Full team name
                      season:
                        type: string
                        description: Season year
                      position:
                        type: array
                        description: List of positions with players
                        items:
                          type: object
                          properties:
                            name:
                              type: string
                              description: 'Position group name (e.g., Pitchers, Catchers)'
                            player:
                              type: array
                              description: Players in this position group
                              items:
                                type: object
                                properties:
                                  age:
                                    type: string
                                    description: Player age
                                  bats:
                                    type: string
                                    description: Batting handedness
                                  height:
                                    type: string
                                    description: Player height
                                  id:
                                    type: string
                                    description: Player ID
                                  name:
                                    type: string
                                    description: Player name
                                  number:
                                    type: string
                                    description: Player jersey number
                                  position:
                                    type: string
                                    description: 'Player field position (e.g., RP, C)'
                                  salary:
                                    type: string
                                    description: Player salary (may be empty)
                                  throws:
                                    type: string
                                    description: Throwing handedness
                                  weight:
                                    type: string
                                    description: Player weight
                                required:
                                  - age
                                  - bats
                                  - height
                                  - id
                                  - name
                                  - number
                                  - position
                                  - salary
                                  - throws
                                  - weight
                          required:
                            - name
                            - player
                      image:
                        type: string
                        description: Base64 encoded team image
                    required:
                      - abbreviation
                      - id
                      - name
                      - season
                      - position
                required:
                  - team
              example:
                team:
                  abbreviation: ARI
                  id: '2525'
                  name: Arizona Diamondbacks
                  season: '2025'
                  position:
                    - name: Pitchers
                      player:
                        - age: '23'
                          bats: L
                          height: 6' 1"
                          id: '4927794'
                          name: Philip Abner
                          number: '50'
                          position: RP
                          salary: ''
                          throws: L
                          weight: 230 lbs
                        - age: '27'
                          bats: L
                          height: 6' 4"
                          id: '4222612'
                          name: Kyle Backhus
                          number: '43'
                          position: RP
                          salary: ''
                          throws: L
                          weight: 185 lbs
                    - name: Catchers
                      player:
                        - age: '26'
                          bats: L
                          height: 5' 10"
                          id: '42963'
                          name: Adrian Del Castillo
                          number: '25'
                          position: C
                          salary: ''
                          throws: R
                          weight: 208 lbs
                  image: iVBORw0KGgoAAAANSUhEUgAAAJYAAACWCAYAAAA8AXHiAAA...
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: >-
            Unauthorized - invalid or missing access_key or invalid team
            abbreviation
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: Resource Not Found - could not find resource for team abbreviation
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  '/mlb/team-stats/{team_abbreviation}':
    get:
      summary: Get Team Stats
      description: >
        Returns MLB team statistics by category (Batting, Pitching, Fielding)
        for a given team abbreviation. This endpoint data is updated every 1
        hour.
      tags:
        - ⚾ MLB (V1)
      servers:
        - url: 'https://statpal.io/api/v1/'
          description: Production (v1)
      security:
        - ApiKeyAuth: []
      parameters:
        - name: team_abbreviation
          in: path
          required: true
          description: |
            MLB team abbreviation. Examples: 'ari', 'atl'.
          schema:
            type: string
            enum:
              - ari
              - atl
              - bal
              - bos
              - chc
              - chw
              - cin
              - cle
              - col
              - det
              - fla
              - hou
              - kan
              - laa
              - lad
              - mil
              - min
              - nym
              - nyy
              - oak
              - phi
              - pit
              - sdg
              - sea
              - sfo
              - stl
              - tam
              - tex
              - tor
              - was
      x-update-rate: 3600
      responses:
        '200':
          description: Successful response with MLB team statistics
          content:
            application/json:
              schema:
                type: object
                properties:
                  statistics:
                    type: object
                    properties:
                      id:
                        type: string
                        description: Team stats unique ID
                      season:
                        type: string
                        description: Season year
                      team:
                        type: string
                        description: Full team name
                      category:
                        type: array
                        description: >-
                          List of statistical categories (Batting, Pitching,
                          Fielding, etc.)
                        items:
                          type: object
                          properties:
                            name:
                              type: string
                              description: >-
                                Category name (e.g., Batting, Pitching,
                                Fielding)
                            leaders:
                              type: object
                              nullable: true
                              description: 'Leaders data, if available (null if not)'
                            team:
                              type: object
                              properties:
                                player:
                                  type: array
                                  description: >-
                                    List of player statistics objects for this
                                    category
                                  items:
                                    type: object
                                    properties:
                                      id:
                                        type: string
                                        description: Player ID
                                      name:
                                        type: string
                                        description: Player full name
                                      at_bats:
                                        type: string
                                        nullable: true
                                      batting_avg:
                                        type: string
                                        nullable: true
                                      caught_stealing:
                                        type: string
                                        nullable: true
                                      doubles:
                                        type: string
                                        nullable: true
                                      games_played:
                                        type: string
                                        nullable: true
                                      hits:
                                        type: string
                                        nullable: true
                                      home_runs:
                                        type: string
                                        nullable: true
                                      on_base_percentage:
                                        type: string
                                        nullable: true
                                      rank:
                                        type: string
                                        nullable: true
                                      runs:
                                        type: string
                                        nullable: true
                                      runs_batted_in:
                                        type: string
                                        nullable: true
                                      slugging_percentage:
                                        type: string
                                        nullable: true
                                      stolen_bases:
                                        type: string
                                        nullable: true
                                      strikeouts:
                                        type: string
                                        nullable: true
                                      total_bases:
                                        type: string
                                        nullable: true
                                      triples:
                                        type: string
                                        nullable: true
                                      walks:
                                        type: string
                                        nullable: true
                                      earned_run_average:
                                        type: string
                                        nullable: true
                                      earned_runs:
                                        type: string
                                        nullable: true
                                      games_started:
                                        type: string
                                        nullable: true
                                      holds:
                                        type: string
                                        nullable: true
                                      innings_pitched:
                                        type: string
                                        nullable: true
                                      losses:
                                        type: string
                                        nullable: true
                                      pitches_per_start:
                                        type: string
                                        nullable: true
                                      quality_starts:
                                        type: string
                                        nullable: true
                                      saves:
                                        type: string
                                        nullable: true
                                      strikeouts_per_9_innings:
                                        type: string
                                        nullable: true
                                      walk_hits_per_inning_pitched:
                                        type: string
                                        nullable: true
                                      wins:
                                        type: string
                                        nullable: true
                                      assists:
                                        type: string
                                        nullable: true
                                      double_plays:
                                        type: string
                                        nullable: true
                                      errors:
                                        type: string
                                        nullable: true
                                      fielding_percentage:
                                        type: string
                                        nullable: true
                                      full_innings:
                                        type: string
                                        nullable: true
                                      putouts:
                                        type: string
                                        nullable: true
                                      range_factor:
                                        type: string
                                        nullable: true
                                      total_chances:
                                        type: string
                                        nullable: true
                                      zone_rating:
                                        type: string
                                        nullable: true
                                    required:
                                      - id
                                      - name
                              required:
                                - player
                          required:
                            - name
                            - leaders
                            - team
                    required:
                      - id
                      - season
                      - team
                      - category
                required:
                  - statistics
              example:
                statistics:
                  id: '2525'
                  season: '2025'
                  team: Arizona Diamondbacks
                  category:
                    - name: Batting
                      leaders: null
                      team:
                        player:
                          - id: '42854'
                            name: Geraldo Perdomo
                            at_bats: '597'
                            batting_avg: '.290'
                            caught_stealing: ''
                            doubles: '33'
                            games_played: '161'
                            hits: '173'
                            home_runs: '20'
                            on_base_percentage: '.389'
                            rank: '1'
                            runs: '98'
                            runs_batted_in: '100'
                            slugging_percentage: '.462'
                            stolen_bases: '27'
                            strikeouts: '83'
                            total_bases: '276'
                            triples: '5'
                            walks: '94'
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: >-
            Unauthorized - invalid or missing access_key or invalid team
            abbreviation
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: >-
            Resource Not Found - could not find resource for specified team
            abbreviation
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  '/mlb/injuries/{team_abbreviation}':
    get:
      summary: Get Team Injuries
      description: >
        Returns MLB team injury reports for the specified team abbreviation.
        This endpoint data is updated every 1 hour.
      tags:
        - ⚾ MLB (V1)
      servers:
        - url: 'https://statpal.io/api/v1/'
          description: Production (v1)
      security:
        - ApiKeyAuth: []
      parameters:
        - name: team_abbreviation
          in: path
          required: true
          description: |
            MLB team abbreviation. Examples include 'ari', 'atl'.
          schema:
            type: string
            enum:
              - ari
              - atl
              - bal
              - bos
              - chc
              - chw
              - cin
              - cle
              - col
              - det
              - fla
              - hou
              - kan
              - laa
              - lad
              - mil
              - min
              - nym
              - nyy
              - oak
              - phi
              - pit
              - sdg
              - sea
              - sfo
              - stl
              - tam
              - tex
              - tor
              - was
      x-update-rate: 3600
      responses:
        '200':
          description: Successful response with MLB team injury report
          content:
            application/json:
              schema:
                type: object
                properties:
                  team:
                    type: object
                    properties:
                      id:
                        type: string
                        description: MLB team ID
                      name:
                        type: string
                        description: MLB team name
                      report:
                        type: array
                        description: List of injury reports for the team
                        items:
                          type: object
                          properties:
                            date:
                              type: string
                              description: 'Date of the injury report (e.g., ''Aug 2, 2023'')'
                            description:
                              type: string
                              description: >-
                                Description of the injury and expected return
                                (e.g., 'Ankle - 2024')
                            player_id:
                              type: string
                              description: Player ID
                            player_name:
                              type: string
                              description: Player name
                            status:
                              type: string
                              description: 'Injury status (e.g., ''60-Day IL'')'
                          required:
                            - date
                            - description
                            - player_id
                            - player_name
                            - status
                    required:
                      - id
                      - name
                      - report
                required:
                  - team
              example:
                team:
                  id: '2525'
                  name: Arizona Diamondbacks
                  report:
                    - date: 'Aug 2, 2023'
                      description: Ankle - 2024
                      player_id: '36046'
                      player_name: Austin Adams
                      status: 60-Day IL
                    - date: 'Jul 30, 2023'
                      description: Elbow - 2024
                      player_id: '4423337'
                      player_name: Tommy Henry
                      status: 60-Day IL
                    - date: 'Mar 15, 2023'
                      description: Shoulder - 2024
                      player_id: '29446'
                      player_name: Mark Melancon
                      status: 60-Day IL
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: Unauthorized - invalid or missing access_key or invalid sport
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: Resource Not Found - could not find resource
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  '/mlb/league-stats/{stat_type}':
    get:
      summary: Get League Stats
      description: >
        Returns MLB league statistics for players or teams based on the
        stats_type parameter. This endpoint data is updated every 1 hour.
      tags:
        - ⚾ MLB (V1)
      servers:
        - url: 'https://statpal.io/api/v1/'
          description: Production (v1)
      security:
        - ApiKeyAuth: []
      x-update-rate: 3600
      parameters:
        - name: stat_type
          in: path
          required: true
          description: >
            Stats type abbreviation indicating the statistics to return. See
            description for supported values.
          schema:
            type: string
            enum:
              - mlb_player_batting
              - mlb_player_fielding
              - mlb_player_pitching
              - mlb_team_batting
              - mlb_team_fielding
              - mlb_team_pitching
              - nl_player_batting
              - nl_player_fielding
              - nl_player_pitching
              - nl_team_batting
              - nl_team_fielding
              - nl_team_pitching
              - al_player_batting
              - al_player_fielding
              - al_player_pitching
              - al_team_batting
              - al_team_fielding
              - al_team_pitching
      responses:
        '200':
          description: Successful response with requested MLB league statistics
          content:
            application/json:
              schema:
                type: object
                properties:
                  statistics:
                    type: object
                    properties:
                      sport:
                        type: string
                        description: Sport name
                        example: baseball
                      category:
                        type: object
                        properties:
                          name:
                            type: string
                            description: 'Category name, e.g. MLB Player Batting'
                          player:
                            type: array
                            description: List of player statistics
                            items:
                              type: object
                              properties:
                                id:
                                  type: string
                                  description: Unique player ID
                                name:
                                  type: string
                                  description: Player name
                                team:
                                  type: string
                                  description: Player's team name
                                  nullable: true
                                rank:
                                  type: string
                                  description: Player rank in category
                                gp:
                                  type: string
                                  description: Games played
                                  nullable: true
                                at_bats:
                                  type: string
                                  description: At bats
                                  nullable: true
                                hits:
                                  type: string
                                  description: Number of hits
                                  nullable: true
                                doubles:
                                  type: string
                                  description: Number of doubles
                                  nullable: true
                                triples:
                                  type: string
                                  description: Number of triples
                                  nullable: true
                                home_runs:
                                  type: string
                                  description: Number of home runs
                                  nullable: true
                                runs:
                                  type: string
                                  description: Number of runs
                                  nullable: true
                                runs_batted_in:
                                  type: string
                                  description: Runs batted in
                                  nullable: true
                                stolen_bases:
                                  type: string
                                  description: Number of stolen bases
                                  nullable: true
                                caught_stealing:
                                  type: string
                                  description: Times caught stealing
                                  nullable: true
                                walks:
                                  type: string
                                  description: Number of walks
                                  nullable: true
                                strikeouts:
                                  type: string
                                  description: Number of strikeouts
                                  nullable: true
                                batting_avg:
                                  type: string
                                  description: Batting average
                                  nullable: true
                                on_base_percentage:
                                  type: string
                                  description: On-base percentage
                                  nullable: true
                                slugging_percentage:
                                  type: string
                                  description: Slugging percentage
                                  nullable: true
                              required:
                                - id
                                - name
                                - rank
                            nullable: true
                          team:
                            type: array
                            description: List of team statistics
                            items:
                              type: object
                              description: >
                                Team statistics schema will vary depending on
                                stats_type and should be defined similarly as
                                players. For now, properties can be extended as
                                needed.
                              properties:
                                id:
                                  type: string
                                  description: Unique Team ID
                                name:
                                  type: string
                                  description: Team name
                              required:
                                - id
                                - name
                            nullable: true
                        required:
                          - name
                    required:
                      - sport
                      - category
                required:
                  - statistics
              example:
                statistics:
                  sport: baseball
                  category:
                    name: MLB Player Batting
                    player:
                      - id: '34691'
                        name: Aaron Judge
                        team: Yankees
                        rank: '1'
                        gp: '152'
                        at_bats: '541'
                        hits: '179'
                        doubles: '30'
                        triples: '2'
                        home_runs: '53'
                        runs: '137'
                        runs_batted_in: '114'
                        stolen_bases: '12'
                        caught_stealing: ''
                        walks: '124'
                        strikeouts: '160'
                        batting_avg: '.331'
                        on_base_percentage: '.457'
                        slugging_percentage: '.688'
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: Unauthorized - invalid or missing access_key or invalid stats_type
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: Resource Not Found - could not find the requested stats_type data
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  /mlb/odds:
    get:
      summary: Get Pre-Game Odds
      description: >
        Returns pre-match MLB odds data including various bet types and
        bookmakers. This endpoint data is updated every 30 minutes.
      tags:
        - ⚾ MLB (V1)
      servers:
        - url: 'https://statpal.io/api/v1/'
          description: Production (v1)
      security:
        - ApiKeyAuth: []
      x-update-rate: 1800
      responses:
        '200':
          description: Successful response with MLB pre-match odds details
          content:
            application/json:
              schema:
                type: object
                properties:
                  odds:
                    type: object
                    properties:
                      sport:
                        type: string
                        example: baseball
                        description: Sport name
                      category:
                        type: object
                        properties:
                          gid:
                            type: string
                            description: Category/game ID
                          id:
                            type: string
                            description: Category ID
                          name:
                            type: string
                            description: Category name
                          matches:
                            type: object
                            properties:
                              match:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    date:
                                      type: string
                                      description: Date of the match (DD.MM.YYYY)
                                    extra_inn:
                                      type: string
                                      description: 'Extra innings info if any, may be empty'
                                      nullable: true
                                    id:
                                      type: string
                                      description: Match ID
                                    mlbid:
                                      type: string
                                      description: Official MLB ID
                                    status:
                                      type: string
                                      description: >-
                                        Match status (e.g., Not Started,
                                        Finished)
                                    time:
                                      type: string
                                      description: Scheduled or actual time
                                    home:
                                      type: object
                                      properties:
                                        errors:
                                          type: string
                                          description: >-
                                            Error or notes related to the team, if
                                            any
                                          nullable: true
                                        extra:
                                          type: string
                                          description: Extra innings info at team level
                                          nullable: true
                                        hits:
                                          type: string
                                          description: Hits by the team
                                          nullable: true
                                        id:
                                          type: string
                                          description: Team ID
                                        in1:
                                          type: string
                                          description: Score in inning 1
                                          nullable: true
                                        in2:
                                          type: string
                                          description: Score in inning 2
                                          nullable: true
                                        in3:
                                          type: string
                                          description: Score in inning 3
                                          nullable: true
                                        in4:
                                          type: string
                                          description: Score in inning 4
                                          nullable: true
                                        in5:
                                          type: string
                                          description: Score in inning 5
                                          nullable: true
                                        in6:
                                          type: string
                                          description: Score in inning 6
                                          nullable: true
                                        in7:
                                          type: string
                                          description: Score in inning 7
                                          nullable: true
                                        in8:
                                          type: string
                                          description: Score in inning 8
                                          nullable: true
                                        in9:
                                          type: string
                                          description: Score in inning 9
                                          nullable: true
                                        name:
                                          type: string
                                          description: Team name
                                        totalscore:
                                          type: string
                                          description: >-
                                            Total score of the team (empty if
                                            unavailable)
                                          nullable: true
                                      required:
                                        - id
                                        - name
                                    away:
                                      $ref: >-
                                        #/paths/~1mlb~1odds/get/responses/200/content/application~1json/schema/properties/odds/properties/category/properties/matches/properties/match/items/properties/home
                                    odds:
                                      type: object
                                      properties:
                                        rotation_away:
                                          type: string
                                          description: Rotation number for away team
                                          nullable: true
                                        rotation_home:
                                          type: string
                                          description: Rotation number for home team
                                          nullable: true
                                        ts:
                                          type: string
                                          description: Timestamp of odds data
                                        type:
                                          type: array
                                          items:
                                            type: object
                                            properties:
                                              id:
                                                type: string
                                                description: Bet type ID
                                              stop:
                                                type: string
                                                description: Stopped flag (True/False)
                                                nullable: true
                                              value:
                                                type: string
                                                description: >-
                                                  Bet type description (e.g., 3Way Result,
                                                  Asian Handicap)
                                              bookmaker:
                                                oneOf:
                                                  - type: array
                                                    items:
                                                      allOf:
                                                        - $ref: >-
                                                            #/paths/~1mlb~1odds/get/responses/200/content/application~1json/schema/properties/odds/properties/category/properties/matches/properties/match/items/properties/odds/properties/type/items/properties/bookmaker/oneOf/1
                                                      required:
                                                        - id
                                                        - name
                                                  - type: object
                                                    properties:
                                                      id:
                                                        type: string
                                                        description: Bookmaker ID
                                                      name:
                                                        type: string
                                                        description: Bookmaker name
                                                      stop:
                                                        type: string
                                                        description: Stopped flag (True/False)
                                                        nullable: true
                                                      ts:
                                                        type: string
                                                        description: Timestamp of bookmaker odds update
                                                      odd:
                                                        type: array
                                                        items:
                                                          type: object
                                                          properties:
                                                            name:
                                                              type: string
                                                              description: 'Name of the odd (e.g., Home, Draw, Over)'
                                                            us:
                                                              type: string
                                                              description: Odds in US format
                                                              nullable: true
                                                            value:
                                                              type: string
                                                              description: Odds value in decimal format
                                                          required:
                                                            - name
                                                            - value
                                                        nullable: true
                                                      handicap:
                                                        oneOf:
                                                          - type: object
                                                            properties:
                                                              ismain:
                                                                type: string
                                                                description: >-
                                                                  Flag indicating if this is the main
                                                                  handicap (True/False)
                                                                nullable: true
                                                              name:
                                                                type: string
                                                                description: 'Name of the handicap (e.g., -1.5, +0)'
                                                              stop:
                                                                type: string
                                                                description: Stopped flag (True/False)
                                                                nullable: true
                                                              odd:
                                                                type: array
                                                                items:
                                                                  $ref: >-
                                                                    #/paths/~1mlb~1odds/get/responses/200/content/application~1json/schema/properties/odds/properties/category/properties/matches/properties/match/items/properties/odds/properties/type/items/properties/bookmaker/oneOf/1/properties/odd/items
                                                            required:
                                                              - name
                                                              - odd
                                                          - type: array
                                                            items:
                                                              $ref: >-
                                                                #/paths/~1mlb~1odds/get/responses/200/content/application~1json/schema/properties/odds/properties/category/properties/matches/properties/match/items/properties/odds/properties/type/items/properties/bookmaker/oneOf/1/properties/handicap/oneOf/0
                                                        nullable: true
                                                      total:
                                                        oneOf:
                                                          - type: object
                                                            properties:
                                                              ismain:
                                                                type: string
                                                                description: >-
                                                                  Flag indicating if this is the main
                                                                  total (True/False)
                                                                nullable: true
                                                              name:
                                                                type: string
                                                                description: 'Name of the total (e.g., 7.5, 8)'
                                                              stop:
                                                                type: string
                                                                description: Stopped flag (True/False)
                                                                nullable: true
                                                              odd:
                                                                type: array
                                                                items:
                                                                  $ref: >-
                                                                    #/paths/~1mlb~1odds/get/responses/200/content/application~1json/schema/properties/odds/properties/category/properties/matches/properties/match/items/properties/odds/properties/type/items/properties/bookmaker/oneOf/1/properties/odd/items
                                                            required:
                                                              - name
                                                              - odd
                                                          - type: array
                                                            items:
                                                              $ref: >-
                                                                #/paths/~1mlb~1odds/get/responses/200/content/application~1json/schema/properties/odds/properties/category/properties/matches/properties/match/items/properties/odds/properties/type/items/properties/bookmaker/oneOf/1/properties/total/oneOf/0
                                                        nullable: true
                                                    required:
                                                      - id
                                                      - name
                                            required:
                                              - id
                                              - value
                                              - bookmaker
                                      required:
                                        - ts
                                        - type
                                  required:
                                    - date
                                    - id
                                    - mlbid
                                    - status
                                    - time
                                    - home
                                    - away
                                    - odds
                            required:
                              - match
                        required:
                          - gid
                          - id
                          - name
                          - matches
                    required:
                      - sport
                      - category
                required:
                  - odds
              example:
                odds:
                  sport: baseball
                  category:
                    gid: '2499'
                    id: '2499'
                    name: 'Usa: Mlb'
                    matches:
                      match:
                        - date: 21.04.2025
                          id: '339457'
                          mlbid: '1329181478'
                          status: Not Started
                          time: '23:10'
                          home:
                            id: '2507'
                            name: New York Mets
                            totalscore: ''
                          away:
                            id: '2508'
                            name: Philadelphia Phillies
                            totalscore: ''
                          odds:
                            ts: '1745213015'
                            type:
                              - id: '1'
                                value: 3Way Result
                                bookmaker:
                                  - id: '1514'
                                    name: WilliamHill
                                    odd:
                                      - name: Home
                                        us: '-120'
                                        value: '1.83'
                                      - name: Draw
                                        us: '700'
                                        value: '8.00'
                                      - name: Away
                                        us: '120'
                                        value: '2.20'
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: Unauthorized - invalid or missing access_key or invalid sport
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: Resource Not Found - could not find resource
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  /nba/livescores:
    get:
      summary: Get Live Scores
      description: >
        Returns NBA live scores with detailed quarterly scores. This endpoint
        data is updated every 15 seconds.
      tags:
        - "\U0001F3C0 NBA (V1)"
      servers:
        - url: 'https://statpal.io/api/v1/'
          description: Production (v1)
      security:
        - ApiKeyAuth: []
      x-update-rate: 15
      responses:
        '200':
          description: Successful response with NBA live scores and quarterly scores
          content:
            application/json:
              schema:
                type: object
                properties:
                  livescores:
                    type: object
                    properties:
                      sport:
                        type: string
                        description: Sport name
                      tournament:
                        type: object
                        properties:
                          country:
                            type: string
                            description: Country of the tournament
                          gid:
                            type: string
                            description: Tournament Global ID
                          id:
                            type: string
                            description: Tournament ID
                          league:
                            type: string
                            description: Tournament league name
                          match:
                            type: array
                            items:
                              type: object
                              properties:
                                date:
                                  type: string
                                  description: Date of the match (DD.MM.YYYY)
                                id:
                                  type: string
                                  description: Match ID
                                stats_id:
                                  type: string
                                  description: Statistics ID for the match
                                status:
                                  type: string
                                  description: >-
                                    Current status of the match (e.g. Finished,
                                    Not Started)
                                time:
                                  type: string
                                  description: Scheduled or actual time
                                timer:
                                  type: string
                                  description: Timer info if available
                                home:
                                  type: object
                                  properties:
                                    id:
                                      type: string
                                      description: Team ID
                                    name:
                                      type: string
                                      description: Team name
                                    ot:
                                      type: string
                                      description: Overtime score or info
                                      nullable: true
                                    q1:
                                      type: string
                                      description: Quarter 1 score
                                      nullable: true
                                    q2:
                                      type: string
                                      description: Quarter 2 score
                                      nullable: true
                                    q3:
                                      type: string
                                      description: Quarter 3 score
                                      nullable: true
                                    q4:
                                      type: string
                                      description: Quarter 4 score
                                      nullable: true
                                    totalscore:
                                      type: string
                                      description: >-
                                        Total score of the team (string to allow
                                        empty)
                                      nullable: true
                                  required:
                                    - id
                                    - name
                                    - totalscore
                                away:
                                  $ref: >-
                                    #/paths/~1nba~1livescores/get/responses/200/content/application~1json/schema/properties/livescores/properties/tournament/properties/match/items/properties/home
                              required:
                                - date
                                - id
                                - stats_id
                                - status
                                - time
                                - home
                                - away
                        required:
                          - country
                          - gid
                          - id
                          - league
                          - match
                    required:
                      - sport
                      - tournament
                required:
                  - livescores
              example:
                livescores:
                  sport: basketball
                  tournament:
                    country: usa
                    gid: '2545'
                    id: '2545'
                    league: 'Usa: Nba'
                    match:
                      - date: 12.12.2025
                        id: '1012269'
                        stats_id: '322112'
                        status: Finished
                        time: '01:00'
                        timer: ''
                        home:
                          id: '2692'
                          name: Houston Rockets
                          ot: ''
                          q1: '29'
                          q2: '22'
                          q3: '27'
                          q4: '37'
                          totalscore: '115'
                        away:
                          id: '2670'
                          name: Los Angeles Clippers
                          ot: ''
                          q1: '29'
                          q2: '25'
                          q3: '28'
                          q4: '31'
                          totalscore: '113'
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: Unauthorized - invalid or missing access_key or invalid sport
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: Resource Not Found - could not find resource
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  '/nba/daily/{day_offset_token}':
    get:
      summary: Get Games Recent / Upcoming
      description: >
        Returns NBA games for recent and upcoming days with detailed quarterly
        scores. This endpoint data is updated every 12 Hours.
      tags:
        - "\U0001F3C0 NBA (V1)"
      servers:
        - url: 'https://statpal.io/api/v1/'
          description: Production (v1)
      security:
        - ApiKeyAuth: []
      x-update-rate: 43200
      parameters:
        - name: day_offset_token
          in: path
          description: >
            Day offset token indicating the relative day to today, formatted as
            'd-7' to 'd7'. For example, 'd-1' is yesterday, 'd1' is tomorrow.
          required: true
          schema:
            type: string
            enum:
              - d-1
              - d-2
              - d-3
              - d-4
              - d-5
              - d-6
              - d-7
              - d1
              - d2
              - d3
              - d4
              - d5
              - d6
              - d7
      responses:
        '200':
          description: Successful response with NBA games for the given day offset
          content:
            application/json:
              schema:
                type: object
                properties:
                  scores:
                    type: object
                    properties:
                      sport:
                        type: string
                        description: Sport name
                      tournament:
                        type: object
                        properties:
                          country:
                            type: string
                            description: Country of the tournament
                          id:
                            type: string
                            description: Tournament ID
                          league:
                            type: string
                            description: Tournament league name
                          match:
                            type: array
                            items:
                              type: object
                              properties:
                                date:
                                  type: string
                                  description: Date of the match (DD.MM.YYYY)
                                id:
                                  type: string
                                  description: Match ID
                                status:
                                  type: string
                                  description: >-
                                    Current status of the match (e.g. Finished,
                                    Not Started)
                                time:
                                  type: string
                                  description: Scheduled or actual time
                                home:
                                  type: object
                                  properties:
                                    id:
                                      type: string
                                      description: Team ID
                                    name:
                                      type: string
                                      description: Team name
                                    ot:
                                      type: string
                                      description: Overtime score or info
                                      nullable: true
                                    q1:
                                      type: string
                                      description: Quarter 1 score
                                      nullable: true
                                    q2:
                                      type: string
                                      description: Quarter 2 score
                                      nullable: true
                                    q3:
                                      type: string
                                      description: Quarter 3 score
                                      nullable: true
                                    q4:
                                      type: string
                                      description: Quarter 4 score
                                      nullable: true
                                    totalscore:
                                      type: string
                                      description: >-
                                        Total score of the team (string to allow
                                        empty)
                                      nullable: true
                                  required:
                                    - id
                                    - name
                                    - totalscore
                                away:
                                  $ref: >-
                                    #/paths/~1nba~1daily~1%7Bday_offset_token%7D/get/responses/200/content/application~1json/schema/properties/scores/properties/tournament/properties/match/items/properties/home
                              required:
                                - date
                                - id
                                - status
                                - time
                                - home
                                - away
                        required:
                          - country
                          - id
                          - league
                          - match
                    required:
                      - sport
                      - tournament
                required:
                  - scores
              example:
                scores:
                  sport: basketball
                  tournament:
                    country: usa
                    id: '2545'
                    league: 'Usa: Nba'
                    match:
                      - date: 09.12.2025
                        id: '987036'
                        status: Finished
                        time: '00:00'
                        home:
                          id: '2718'
                          name: Indiana Pacers
                          ot: ''
                          q1: '35'
                          q2: '31'
                          q3: '26'
                          q4: '24'
                          totalscore: '116'
                        away:
                          id: '2724'
                          name: Sacramento Kings
                          ot: ''
                          q1: '23'
                          q2: '28'
                          q3: '37'
                          q4: '17'
                          totalscore: '105'
                      - date: 09.12.2025
                        id: '987037'
                        status: Finished
                        time: '00:30'
                        home:
                          id: '2701'
                          name: Minnesota Timberwolves
                          ot: ''
                          q1: '23'
                          q2: '34'
                          q3: '27'
                          q4: '21'
                          totalscore: '105'
                        away:
                          id: '2620'
                          name: Phoenix Suns
                          ot: ''
                          q1: '29'
                          q2: '32'
                          q3: '23'
                          q4: '24'
                          totalscore: '108'
                      - date: 09.12.2025
                        id: '987038'
                        status: Finished
                        time: '01:00'
                        home:
                          id: '2693'
                          name: New Orleans Pelicans
                          ot: ''
                          q1: '25'
                          q2: '32'
                          q3: '45'
                          q4: '30'
                          totalscore: '132'
                        away:
                          id: '2689'
                          name: San Antonio Spurs
                          ot: ''
                          q1: '35'
                          q2: '42'
                          q3: '23'
                          q4: '35'
                          totalscore: '135'
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: Unauthorized - invalid or missing access_key or invalid sport
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: Resource Not Found - could not find resource
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  /nba/season-schedule:
    get:
      summary: Get Full Schedule / Results
      description: >
        Returns NBA full season schedule with detailed results, including player
        and team stats where available. This endpoint data is updated every 1
        Hour.
      tags:
        - "\U0001F3C0 NBA (V1)"
      servers:
        - url: 'https://statpal.io/api/v1/'
          description: Production (v1)
      security:
        - ApiKeyAuth: []
      x-update-rate: 3600
      responses:
        '200':
          description: >-
            Successful response with full NBA season schedule and results
            including stats
          content:
            application/json:
              schema:
                type: object
                properties:
                  scores:
                    type: object
                    properties:
                      sport:
                        type: string
                        description: Sport name
                      tournament:
                        type: object
                        properties:
                          country:
                            type: string
                            description: Country of the tournament
                          id:
                            type: string
                            description: Tournament ID
                          league:
                            type: string
                            description: Tournament league name
                          season:
                            type: string
                            description: Season (e.g. 2025/2026)
                          match:
                            type: array
                            items:
                              type: object
                              properties:
                                date:
                                  type: string
                                  description: Date of the match (DD.MM.YYYY)
                                id:
                                  type: string
                                  description: Match ID
                                stats_id:
                                  type: string
                                  description: Statistics ID for the match
                                status:
                                  type: string
                                  description: >-
                                    Current status of the match (e.g. Finished,
                                    After Over Time)
                                time:
                                  type: string
                                  description: Scheduled or actual time
                                venue:
                                  type: string
                                  description: Venue of the match
                                home:
                                  type: object
                                  properties:
                                    id:
                                      type: string
                                      description: Team ID
                                    name:
                                      type: string
                                      description: Team name
                                    ot:
                                      type: string
                                      description: Overtime score or info
                                      nullable: true
                                    q1:
                                      type: string
                                      description: Quarter 1 score
                                      nullable: true
                                    q2:
                                      type: string
                                      description: Quarter 2 score
                                      nullable: true
                                    q3:
                                      type: string
                                      description: Quarter 3 score
                                      nullable: true
                                    q4:
                                      type: string
                                      description: Quarter 4 score
                                      nullable: true
                                    totalscore:
                                      type: string
                                      description: >-
                                        Total score of the team (string to allow
                                        empty)
                                      nullable: true
                                  required:
                                    - id
                                    - name
                                    - totalscore
                                away:
                                  $ref: >-
                                    #/paths/~1nba~1season-schedule/get/responses/200/content/application~1json/schema/properties/scores/properties/tournament/properties/match/items/properties/home
                                team_stats:
                                  nullable: true
                                  type: object
                                  properties:
                                    home:
                                      type: object
                                      properties:
                                        field_goals_made:
                                          type: object
                                          properties:
                                            attempts:
                                              type: string
                                              description: >-
                                                Number of attempts (string to allow
                                                empty)
                                              nullable: true
                                            pct:
                                              type: string
                                              description: Percentage value as string
                                              nullable: true
                                            total:
                                              type: string
                                              description: Total successful shots/goals as string
                                              nullable: true
                                          required:
                                            - attempts
                                            - pct
                                            - total
                                        threepoint_goals_made:
                                          $ref: >-
                                            #/paths/~1nba~1season-schedule/get/responses/200/content/application~1json/schema/properties/scores/properties/tournament/properties/match/items/properties/team_stats/properties/home/properties/field_goals_made
                                        freethrows_goals_made:
                                          $ref: >-
                                            #/paths/~1nba~1season-schedule/get/responses/200/content/application~1json/schema/properties/scores/properties/tournament/properties/match/items/properties/team_stats/properties/home/properties/field_goals_made
                                        rebounds:
                                          type: object
                                          properties:
                                            defense:
                                              type: string
                                              description: Defensive rebounds count
                                            offence:
                                              type: string
                                              description: Offensive rebounds count
                                            total:
                                              type: string
                                              description: Total rebounds count
                                          required:
                                            - defense
                                            - offence
                                            - total
                                        assists:
                                          $ref: >-
                                            #/paths/~1nba~1season-schedule/get/responses/200/content/application~1json/schema/properties/scores/properties/tournament/properties/match/items/properties/team_stats/properties/home/properties/steals
                                        steals:
                                          type: object
                                          properties:
                                            total:
                                              type: string
                                              description: Total count for the stat
                                          required:
                                            - total
                                        blocks:
                                          $ref: >-
                                            #/paths/~1nba~1season-schedule/get/responses/200/content/application~1json/schema/properties/scores/properties/tournament/properties/match/items/properties/team_stats/properties/home/properties/steals
                                        turnovers:
                                          $ref: >-
                                            #/paths/~1nba~1season-schedule/get/responses/200/content/application~1json/schema/properties/scores/properties/tournament/properties/match/items/properties/team_stats/properties/home/properties/steals
                                        personal_fouls:
                                          $ref: >-
                                            #/paths/~1nba~1season-schedule/get/responses/200/content/application~1json/schema/properties/scores/properties/tournament/properties/match/items/properties/team_stats/properties/home/properties/steals
                                      required:
                                        - field_goals_made
                                        - threepoint_goals_made
                                        - freethrows_goals_made
                                        - rebounds
                                        - assists
                                        - steals
                                        - blocks
                                        - turnovers
                                        - personal_fouls
                                    away:
                                      $ref: >-
                                        #/paths/~1nba~1season-schedule/get/responses/200/content/application~1json/schema/properties/scores/properties/tournament/properties/match/items/properties/team_stats/properties/home
                                  required:
                                    - home
                                    - away
                                player_stats:
                                  nullable: true
                                  type: object
                                  properties:
                                    home:
                                      type: object
                                      properties:
                                        starters:
                                          $ref: >-
                                            #/paths/~1nba~1season-schedule/get/responses/200/content/application~1json/schema/properties/scores/properties/tournament/properties/match/items/properties/player_stats/properties/home/properties/bench
                                        bench:
                                          type: object
                                          properties:
                                            player:
                                              type: array
                                              items:
                                                type: object
                                                properties:
                                                  assists:
                                                    type: string
                                                    nullable: true
                                                  blocks:
                                                    type: string
                                                    nullable: true
                                                  defense_rebounds:
                                                    type: string
                                                    nullable: true
                                                  field_goals_attempts:
                                                    type: string
                                                    nullable: true
                                                  field_goals_made:
                                                    type: string
                                                    nullable: true
                                                  freethrows_goals_attempts:
                                                    type: string
                                                    nullable: true
                                                  freethrows_goals_made:
                                                    type: string
                                                    nullable: true
                                                  id:
                                                    type: string
                                                  minutes:
                                                    type: string
                                                    nullable: true
                                                  name:
                                                    type: string
                                                  offence_rebounds:
                                                    type: string
                                                    nullable: true
                                                  personal_fouls:
                                                    type: string
                                                    nullable: true
                                                  points:
                                                    type: string
                                                    nullable: true
                                                  steals:
                                                    type: string
                                                    nullable: true
                                                  threepoint_goals_attempts:
                                                    type: string
                                                    nullable: true
                                                  threepoint_goals_made:
                                                    type: string
                                                    nullable: true
                                                  total_rebounds:
                                                    type: string
                                                    nullable: true
                                                  turnovers:
                                                    type: string
                                                    nullable: true
                                                required:
                                                  - id
                                                  - name
                                          required:
                                            - player
                                      required:
                                        - starters
                                        - bench
                                    away:
                                      $ref: >-
                                        #/paths/~1nba~1season-schedule/get/responses/200/content/application~1json/schema/properties/scores/properties/tournament/properties/match/items/properties/player_stats/properties/home
                                  required:
                                    - home
                                    - away
                              required:
                                - date
                                - id
                                - stats_id
                                - status
                                - time
                                - venue
                                - home
                                - away
                        required:
                          - country
                          - id
                          - league
                          - season
                          - match
                    required:
                      - sport
                      - tournament
                required:
                  - scores
              example:
                scores:
                  sport: basketball
                  tournament:
                    country: usa
                    id: '2545'
                    league: NBA
                    season: 2025/2026
                    match:
                      - date: 11.10.2025
                        id: '988739'
                        stats_id: '311748'
                        status: After Over Time
                        time: '00:00'
                        venue: Frost Bank Center
                        home:
                          id: '2689'
                          name: San Antonio Spurs
                          ot: '12'
                          q1: '34'
                          q2: '38'
                          q3: '23'
                          q4: '27'
                          totalscore: '134'
                        away:
                          id: '2679'
                          name: Utah Jazz
                          ot: '8'
                          q1: '30'
                          q2: '25'
                          q3: '35'
                          q4: '32'
                          totalscore: '130'
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: Unauthorized - invalid or missing access_key or invalid sport
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: Resource Not Found - could not find resource
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  /nba/standings:
    get:
      summary: Get Standings
      description: >
        Returns NBA standings with detailed statistics by conference, division,
        and team. This endpoint data is updated every 1 Hour.
      tags:
        - "\U0001F3C0 NBA (V1)"
      servers:
        - url: 'https://statpal.io/api/v1/'
          description: Production (v1)
      security:
        - ApiKeyAuth: []
      x-update-rate: 3600
      responses:
        '200':
          description: Successful response with NBA standings data
          content:
            application/json:
              schema:
                type: object
                properties:
                  standings:
                    type: object
                    properties:
                      sport:
                        type: string
                        description: Sport name
                      tournament:
                        type: object
                        properties:
                          country:
                            type: string
                            description: Country of the tournament
                          id:
                            type: string
                            description: Tournament ID
                          name:
                            type: string
                            description: Tournament name
                          season:
                            type: string
                            description: Tournament season
                          league:
                            type: array
                            items:
                              type: object
                              properties:
                                name:
                                  type: string
                                  description: League or conference name
                                division:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      name:
                                        type: string
                                        description: Division name
                                      team:
                                        type: array
                                        items:
                                          type: object
                                          properties:
                                            average_points_agains:
                                              type: string
                                              description: Average points against
                                            average_points_for:
                                              type: string
                                              description: Average points for
                                            difference:
                                              type: string
                                              description: Point difference
                                            gb:
                                              type: string
                                              description: Games behind
                                            home_record:
                                              type: string
                                              description: Home game record (wins-losses)
                                            id:
                                              type: string
                                              description: Team ID
                                            last_10:
                                              type: string
                                              description: Record in last 10 games (wins-losses)
                                            lost:
                                              type: string
                                              description: Total losses
                                            name:
                                              type: string
                                              description: Team name
                                            percentage:
                                              type: string
                                              description: Winning percentage
                                            position:
                                              type: string
                                              description: League position
                                            road_record:
                                              type: string
                                              description: Road game record (wins-losses)
                                            streak:
                                              type: string
                                              description: Current winning/losing streak
                                            won:
                                              type: string
                                              description: Total wins
                                          required:
                                            - average_points_agains
                                            - average_points_for
                                            - difference
                                            - gb
                                            - home_record
                                            - id
                                            - last_10
                                            - lost
                                            - name
                                            - percentage
                                            - position
                                            - road_record
                                            - streak
                                            - won
                                    required:
                                      - name
                                      - team
                              required:
                                - name
                                - division
                        required:
                          - country
                          - id
                          - name
                          - season
                          - league
                    required:
                      - sport
                      - tournament
                required:
                  - standings
              example:
                standings:
                  sport: basketball
                  tournament:
                    country: usa
                    id: '2545'
                    name: 'USA: NBA'
                    season: 2025/2026
                    league:
                      - name: Eastern Conference
                        division:
                          - name: Atlantic
                            team:
                              - average_points_agains: '111.9'
                                average_points_for: '120.5'
                                difference: '+8.6'
                                gb: '-'
                                home_record: 13-1
                                id: '2712'
                                last_10: 8-2
                                lost: '7'
                                name: New York Knicks
                                percentage: '.708'
                                position: '1'
                                road_record: 4-6
                                streak: W4
                                won: '17'
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: Unauthorized - invalid or missing access_key or invalid sport
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: Resource Not Found - could not find resource
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  '/nba/rosters/{team_abbreviation}':
    get:
      summary: Get Team Roster
      description: >
        Returns the roster for an NBA team by abbreviation (e.g. 'min' for
        Minnesota Timberwolves, 'nyr' for New York Knicks). This endpoint data
        is updated every 1 Hour.
      tags:
        - "\U0001F3C0 NBA (V1)"
      servers:
        - url: 'https://statpal.io/api/v1/'
          description: Production (v1)
      security:
        - ApiKeyAuth: []
      parameters:
        - name: team_abbreviation
          in: path
          required: true
          description: |
            NBA team abbreviation.
          schema:
            type: string
            enum:
              - mem
              - mia
              - tor
              - chi
              - utah
              - cha
              - okc
              - ny
              - 'no'
              - det
              - den
              - wsh
              - orl
              - gs
              - sac
              - hou
              - dal
              - por
              - phx
              - lal
              - nj
              - mil
              - lac
              - atl
              - bos
              - cle
              - sa
              - phi
              - min
              - ind
      x-update-rate: 3600
      responses:
        '200':
          description: Successful response with NBA team roster details
          content:
            application/json:
              schema:
                type: object
                properties:
                  team:
                    type: object
                    properties:
                      abbreviation:
                        type: string
                        description: NBA team abbreviation
                      id:
                        type: string
                        description: Team ID
                      name:
                        type: string
                        description: Full team name
                      season:
                        type: string
                        description: Season for the roster (e.g. 2025/2026)
                      player:
                        type: array
                        items:
                          type: object
                          properties:
                            age:
                              type: string
                              description: Player age
                            college:
                              type: string
                              description: Player college or '--' if not applicable
                              nullable: true
                            heigth:
                              type: string
                              description: Player height (e.g. 6' 8")
                            id:
                              type: string
                              description: Player ID
                            name:
                              type: string
                              description: Player name
                            number:
                              type: string
                              description: Player jersey number
                            position:
                              type: string
                              description: 'Player position (e.g. G, F, C)'
                            salary:
                              type: string
                              description: >-
                                Player salary as a formatted string or '--' if
                                not available
                              nullable: true
                            weigth:
                              type: string
                              description: Player weight with unit (e.g. '209 lbs')
                          required:
                            - age
                            - heigth
                            - id
                            - name
                            - number
                            - position
                            - weigth
                        description: List of players in the roster
                      image:
                        type: string
                        description: Team image as a base64 encoded string
                    required:
                      - abbreviation
                      - id
                      - name
                      - season
                      - player
                      - image
                required:
                  - team
              example:
                team:
                  abbreviation: CHI
                  id: '2685'
                  name: Chicago Bulls
                  season: 2025/2026
                  player:
                    - age: '21'
                      college: '--'
                      heigth: 6' 8"
                      id: '4712793'
                      name: Matas Buzelis
                      number: '14'
                      position: F
                      salary: '$5,455,560'
                      weigth: 209 lbs
                    - age: '30'
                      college: West Virginia
                      heigth: 6' 0"
                      id: '3135134'
                      name: Jevon Carter
                      number: '5'
                      position: G
                      salary: '$6,809,524'
                      weigth: 200 lbs
                  image: iVBORw0KGgoAAAANSUhEUgAAAJYAAACWCAYAAAA8AXHiAAAAAXN...
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: Unauthorized - invalid or missing access_key or invalid sport
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: >-
            Resource Not Found - could not find resource or team abbreviation
            invalid
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  '/nba/team-stats/{team_abbreviation}':
    get:
      summary: Get Team Stats
      description: >
        Returns NBA team statistics by player categorized by stat types. This
        endpoint data is updated every 1 Hour.
      tags:
        - "\U0001F3C0 NBA (V1)"
      servers:
        - url: 'https://statpal.io/api/v1/'
          description: Production (v1)
      security:
        - ApiKeyAuth: []
      parameters:
        - name: team_abbreviation
          in: path
          required: true
          description: |
            NBA team abbreviation.
          schema:
            type: string
            enum:
              - mem
              - mia
              - tor
              - chi
              - utah
              - cha
              - okc
              - ny
              - 'no'
              - det
              - den
              - wsh
              - orl
              - gs
              - sac
              - hou
              - dal
              - por
              - phx
              - lal
              - nj
              - mil
              - lac
              - atl
              - bos
              - cle
              - sa
              - phi
              - min
              - ind
      x-update-rate: 3600
      responses:
        '200':
          description: >-
            Successful response with NBA team player statistics grouped by
            category
          content:
            application/json:
              schema:
                type: object
                properties:
                  statistics:
                    type: object
                    properties:
                      id:
                        type: string
                        description: Team statistics ID
                      team:
                        type: string
                        description: Team name
                      category:
                        type: array
                        description: Statistical categories with players' stats
                        items:
                          type: object
                          properties:
                            name:
                              type: string
                              description: 'Category name (e.g. Game, Shooting)'
                            player:
                              type: array
                              description: >-
                                List of players with their statistics for the
                                category
                              items:
                                oneOf:
                                  - type: object
                                    properties:
                                      id:
                                        type: string
                                        description: Player ID
                                      name:
                                        type: string
                                        description: Player name
                                      assists_per_game:
                                        type: string
                                        description: Assists per game
                                      blocks_per_game:
                                        type: string
                                        description: Blocks per game
                                      defensive_rebounds_per_game:
                                        type: string
                                        description: Defensive rebounds per game
                                      efficiency_rating:
                                        type: string
                                        description: Efficiency rating (nullable)
                                        nullable: true
                                      fouls_per_game:
                                        type: string
                                        description: Fouls per game
                                      games_played:
                                        type: string
                                        description: Games played
                                      games_started:
                                        type: string
                                        description: Games started
                                      minutes:
                                        type: string
                                        description: Minutes per game
                                      offensive_rebounds_per_game:
                                        type: string
                                        description: Offensive rebounds per game
                                      points_per_game:
                                        type: string
                                        description: Points per game
                                      rank:
                                        type: string
                                        description: Rank in the category
                                      rebounds_per_game:
                                        type: string
                                        description: Rebounds per game
                                      steals_per_game:
                                        type: string
                                        description: Steals per game
                                      turnovers_per_game:
                                        type: string
                                        description: Turnovers per game
                                    required:
                                      - id
                                      - name
                                      - assists_per_game
                                      - blocks_per_game
                                      - defensive_rebounds_per_game
                                      - fouls_per_game
                                      - games_played
                                      - games_started
                                      - minutes
                                      - offensive_rebounds_per_game
                                      - points_per_game
                                      - rank
                                      - rebounds_per_game
                                      - steals_per_game
                                      - turnovers_per_game
                                  - type: object
                                    properties:
                                      id:
                                        type: string
                                        description: Player ID
                                      name:
                                        type: string
                                        description: Player name
                                      fg_attempts_per_game:
                                        type: string
                                        description: Field goal attempts per game
                                      fg_made_per_game:
                                        type: string
                                        description: Field goals made per game
                                      fg_pct:
                                        type: string
                                        description: Field goal percentage
                                      field_goal_pct_avg:
                                        type: string
                                        description: Average field goal percentage (nullable)
                                        nullable: true
                                      free_throws_attempts_per_game:
                                        type: string
                                        description: Free throws attempts per game
                                      free_throws_made_per_game:
                                        type: string
                                        description: Free throws made per game
                                      free_throws_pct:
                                        type: string
                                        description: Free throw percentage
                                      points_per_shot:
                                        type: string
                                        description: Points per shot
                                      rank:
                                        type: string
                                        description: Rank in the category
                                      three_point_attempts_per_game:
                                        type: string
                                        description: Three point attempts per game
                                      three_point_made_per_game:
                                        type: string
                                        description: Three points made per game
                                      three_point_pct:
                                        type: string
                                        description: Three point percentage
                                      two_point_attemps_per_game:
                                        type: string
                                        description: Two point attempts per game
                                      two_point_made_per_game:
                                        type: string
                                        description: Two points made per game
                                      two_point_pct:
                                        type: string
                                        description: Two point percentage
                                    required:
                                      - id
                                      - name
                                      - fg_attempts_per_game
                                      - fg_made_per_game
                                      - fg_pct
                                      - free_throws_attempts_per_game
                                      - free_throws_made_per_game
                                      - free_throws_pct
                                      - points_per_shot
                                      - rank
                                      - three_point_attempts_per_game
                                      - three_point_made_per_game
                                      - three_point_pct
                                      - two_point_attemps_per_game
                                      - two_point_made_per_game
                                      - two_point_pct
                          required:
                            - name
                            - player
                    required:
                      - id
                      - team
                      - category
                required:
                  - statistics
              example:
                statistics:
                  id: '2685'
                  team: Chicago Bulls
                  category:
                    - name: Game
                      player:
                        - id: '4397150'
                          name: Coby White
                          assists_per_game: '5.4'
                          blocks_per_game: '0.0'
                          defensive_rebounds_per_game: '2.4'
                          efficiency_rating: ''
                          fouls_per_game: '2.1'
                          games_played: '7'
                          games_started: '5'
                          minutes: '29.3'
                          offensive_rebounds_per_game: '0.3'
                          points_per_game: '22.1'
                          rank: '1'
                          rebounds_per_game: '2.7'
                          steals_per_game: '0.6'
                          turnovers_per_game: '3.0'
                    - name: Shooting
                      player:
                        - id: '4397150'
                          name: Coby White
                          fg_attempts_per_game: '0.156'
                          fg_made_per_game: '6.7'
                          fg_pct: '0.431'
                          field_goal_pct_avg: ''
                          free_throws_attempts_per_game: '8.0'
                          free_throws_made_per_game: '6.4'
                          free_throws_pct: '0.804'
                          points_per_shot: '1.422'
                          rank: '1'
                          three_point_attempts_per_game: '7.6'
                          three_point_made_per_game: '2.3'
                          three_point_pct: '0.302'
                          two_point_attemps_per_game: '1.1'
                          two_point_made_per_game: '0.6'
                          two_point_pct: '0.554'
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: Unauthorized - invalid or missing access_key or invalid sport
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: Resource Not Found - could not find resource or team
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  '/nba/injuries/{team_abbreviation}':
    get:
      summary: Get Team Injuries & Suspensions
      description: >
        Returns NBA team injury and suspension reports for the specified team.
        This endpoint data is updated every 1 Hour.
      tags:
        - "\U0001F3C0 NBA (V1)"
      servers:
        - url: 'https://statpal.io/api/v1/'
          description: Production (v1)
      security:
        - ApiKeyAuth: []
      parameters:
        - name: team_abbreviation
          in: path
          required: true
          description: |
            NBA team abbreviation.
          schema:
            type: string
            enum:
              - mem
              - mia
              - tor
              - chi
              - utah
              - cha
              - okc
              - ny
              - 'no'
              - det
              - den
              - wsh
              - orl
              - gs
              - sac
              - hou
              - dal
              - por
              - phx
              - lal
              - nj
              - mil
              - lac
              - atl
              - bos
              - cle
              - sa
              - phi
              - min
              - ind
      x-update-rate: 3600
      responses:
        '200':
          description: Successful response with NBA team injuries and suspensions report
          content:
            application/json:
              schema:
                type: object
                properties:
                  team:
                    type: object
                    properties:
                      id:
                        type: string
                        description: Team ID
                      name:
                        type: string
                        description: Team name
                      report:
                        type: array
                        description: List of injury and suspension reports for players
                        items:
                          type: object
                          properties:
                            date:
                              type: string
                              description: >-
                                Date of the injury/suspension report
                                (DD.MM.YYYY)
                            description:
                              type: string
                              description: Details about the injury or suspension
                            player_id:
                              type: string
                              description: Player ID
                            player_name:
                              type: string
                              description: Player name
                            status:
                              type: string
                              description: Current status related to injury or suspension
                          required:
                            - date
                            - description
                            - player_id
                            - player_name
                            - status
                    required:
                      - id
                      - name
                      - report
                required:
                  - team
              example:
                team:
                  id: '2685'
                  name: Chicago Bulls
                  report:
                    - date: 11.12.2025
                      description: Thumb - Expected to be out until at least Dec 14
                      player_id: '4397002'
                      player_name: Ayo Dosunmu
                      status: Sidelined
                    - date: 11.12.2025
                      description: Game Time Decision
                      player_id: '4395651'
                      player_name: Coby White
                      status: Calf
                    - date: 11.12.2025
                      description: Thigh - Expected to be out until at least Dec 14
                      player_id: '4066372'
                      player_name: Kevin Huerter
                      status: Sidelined
                    - date: 11.12.2025
                      description: Game Time Decision
                      player_id: '4066650'
                      player_name: Zach Collins
                      status: Wrist
                    - date: 08.12.2025
                      description: Game Time Decision
                      player_id: '4432822'
                      player_name: Isaac Okoro
                      status: Back
                    - date: 08.12.2025
                      description: Game Time Decision
                      player_id: '4395626'
                      player_name: Tre Jones
                      status: Ankle
                    - date: 08.12.2025
                      description: Game Time Decision
                      player_id: '4397189'
                      player_name: Jalen Smith
                      status: Hamstring
                    - date: 03.12.2025
                      description: Shoulder - Out for the season
                      player_id: '5242496'
                      player_name: Noa Essengue
                      status: Sidelined
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: Unauthorized - invalid or missing access_key or invalid sport
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: Resource Not Found - could not find resource
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  /nba/odds:
    get:
      summary: Get Pre-Game Odds
      description: >
        Returns NBA pre-game odds including multiple bet types and bookmakers.
        This endpoint data is updated every 30 minutes.
      tags:
        - "\U0001F3C0 NBA (V1)"
      servers:
        - url: 'https://statpal.io/api/v1/'
          description: Production (v1)
      security:
        - ApiKeyAuth: []
      x-update-rate: 1800
      responses:
        '200':
          description: Successful response with NBA pre-game odds data
          content:
            application/json:
              schema:
                type: object
                properties:
                  odds:
                    type: object
                    properties:
                      sport:
                        type: string
                        description: Sport name
                      category:
                        type: object
                        properties:
                          gid:
                            type: string
                            description: Category Global ID
                          id:
                            type: string
                            description: Category ID
                          name:
                            type: string
                            description: Category or league name
                          matches:
                            type: object
                            properties:
                              match:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    date:
                                      type: string
                                      description: Date of the match (DD.MM.YYYY)
                                    time:
                                      type: string
                                      description: Scheduled match time
                                    status:
                                      type: string
                                      description: Match status (e.g. Not Started)
                                    id:
                                      type: string
                                      description: Match ID
                                    home:
                                      type: object
                                      properties:
                                        id:
                                          type: string
                                          description: Team ID
                                        name:
                                          type: string
                                          description: Team name
                                        q1:
                                          type: string
                                          description: Quarter 1 score
                                          nullable: true
                                        q2:
                                          type: string
                                          description: Quarter 2 score
                                          nullable: true
                                        q3:
                                          type: string
                                          description: Quarter 3 score
                                          nullable: true
                                        q4:
                                          type: string
                                          description: Quarter 4 score
                                          nullable: true
                                        ot:
                                          type: string
                                          description: Overtime score or info
                                          nullable: true
                                        totalscore:
                                          type: string
                                          description: Total score (can be empty)
                                          nullable: true
                                      required:
                                        - id
                                        - name
                                        - totalscore
                                    away:
                                      $ref: >-
                                        #/paths/~1nba~1odds/get/responses/200/content/application~1json/schema/properties/odds/properties/category/properties/matches/properties/match/items/properties/home
                                    odds:
                                      type: object
                                      properties:
                                        ts:
                                          type: string
                                          description: Timestamp of the odds data
                                        type:
                                          type: array
                                          items:
                                            type: object
                                            properties:
                                              id:
                                                type: string
                                                description: Odds type ID
                                              value:
                                                type: string
                                                description: Odds type description (e.g. 3Way Result)
                                              stop:
                                                type: string
                                                description: >-
                                                  Whether this odds type is stopped
                                                  (string boolean)
                                              bookmaker:
                                                type: array
                                                items:
                                                  type: object
                                                  properties:
                                                    id:
                                                      type: string
                                                      description: Bookmaker ID
                                                    name:
                                                      type: string
                                                      description: Bookmaker name
                                                    ts:
                                                      type: string
                                                      description: Timestamp for bookmaker odds update
                                                    stop:
                                                      type: string
                                                      description: >-
                                                        Whether bookmaker is stopped (string
                                                        boolean)
                                                    odd:
                                                      type: array
                                                      items:
                                                        oneOf:
                                                          - type: object
                                                            properties:
                                                              id:
                                                                type: string
                                                                description: Odd ID
                                                              name:
                                                                type: string
                                                                description: Name of the odd option (e.g. Home)
                                                              value:
                                                                type: string
                                                                description: Odd value as string
                                                            required:
                                                              - id
                                                              - name
                                                              - value
                                                          - type: object
                                                            properties:
                                                              name:
                                                                type: string
                                                                description: Handicap value
                                                              ismain:
                                                                type: string
                                                                description: >-
                                                                  Whether this is the main handicap
                                                                  (string boolean)
                                                              team:
                                                                type: string
                                                                description: Team associated with the handicap
                                                              stop:
                                                                type: string
                                                                description: >-
                                                                  Whether this handicap is stopped (string
                                                                  boolean)
                                                              odd:
                                                                oneOf:
                                                                  - $ref: >-
                                                                      #/paths/~1nba~1odds/get/responses/200/content/application~1json/schema/properties/odds/properties/category/properties/matches/properties/match/items/properties/odds/properties/type/items/properties/bookmaker/items/properties/odd/items/oneOf/0
                                                                  - type: array
                                                                    items:
                                                                      $ref: >-
                                                                        #/paths/~1nba~1odds/get/responses/200/content/application~1json/schema/properties/odds/properties/category/properties/matches/properties/match/items/properties/odds/properties/type/items/properties/bookmaker/items/properties/odd/items/oneOf/0
                                                            required:
                                                              - name
                                                              - ismain
                                                              - team
                                                              - stop
                                                              - odd
                                                  required:
                                                    - id
                                                    - name
                                                    - ts
                                                    - stop
                                                    - odd
                                            required:
                                              - id
                                              - value
                                              - stop
                                              - bookmaker
                                      required:
                                        - ts
                                        - type
                                  required:
                                    - date
                                    - time
                                    - status
                                    - id
                                    - home
                                    - away
                                    - odds
                            required:
                              - match
                        required:
                          - gid
                          - id
                          - name
                          - matches
                    required:
                      - sport
                      - category
                required:
                  - odds
              example:
                odds:
                  sport: basketball
                  category:
                    gid: '2545'
                    id: '2545'
                    name: 'USA: NBA'
                    matches:
                      match:
                        - date: 12.12.2025
                          time: '01:00'
                          status: Not Started
                          id: '1012269'
                          home:
                            id: '2692'
                            name: Houston Rockets
                            q1: ''
                            q2: ''
                            q3: ''
                            q4: ''
                            ot: ''
                            totalscore: ''
                          away:
                            id: '2670'
                            name: Los Angeles Clippers
                            q1: ''
                            q2: ''
                            q3: ''
                            q4: ''
                            ot: ''
                            totalscore: ''
                          odds:
                            ts: '1765446769'
                            type:
                              - id: '1500'
                                value: 3Way Result
                                stop: 'False'
                                bookmaker:
                                  - id: '1516'
                                    name: Marathon
                                    ts: '1765441940'
                                    stop: 'False'
                                    odd:
                                      - id: '910283517115671567'
                                        name: Home
                                        value: '1.25'
                                      - id: '910283517115691569'
                                        name: Draw
                                        value: '15.25'
                                      - id: '910283517115701570'
                                        name: Away
                                        value: '4.40'
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: Unauthorized - invalid or missing access_key or invalid sport
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: Resource Not Found - could not find resource
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  /esports/livescores:
    get:
      summary: Get Live Scores
      description: >
        Returns esports live scores with detailed match, map, round, player
        stats, and streams information. This endpoint data is updated every 15
        seconds.
      tags:
        - "\U0001F3AE Esports (V1)"
      servers:
        - url: 'https://statpal.io/api/v1/'
          description: Production (v1)
      security:
        - ApiKeyAuth: []
      x-update-rate: 15
      responses:
        '200':
          description: >-
            Successful response with esports live scores including matches,
            maps, stats, and streams
          content:
            application/json:
              schema:
                type: object
                properties:
                  scores:
                    type: object
                    properties:
                      sport:
                        type: string
                        description: Sport name
                      updated:
                        type: string
                        description: Timestamp when data was last updated
                      match:
                        type: array
                        items:
                          type: object
                          properties:
                            date:
                              type: string
                              description: Date of the match (DD.MM.YYYY)
                            id:
                              type: string
                              description: Match ID
                            league:
                              type: string
                              description: League name
                            league_id:
                              type: string
                              description: League ID
                            round:
                              type: string
                              description: Match round info (e.g. BO3)
                            status:
                              type: string
                              description: >-
                                Current status of the match (e.g. Finished,
                                Started)
                            time:
                              type: string
                              description: Scheduled or actual time
                            timer:
                              type: string
                              description: Timer info if available
                            type:
                              type: string
                              description: Game type or variant (e.g. CS GO)
                            home:
                              type: object
                              properties:
                                id:
                                  type: string
                                  description: Team ID
                                name:
                                  type: string
                                  description: Team name
                                score:
                                  type: string
                                  description: Team's current score
                              required:
                                - id
                                - name
                                - score
                            away:
                              $ref: >-
                                #/paths/~1esports~1livescores/get/responses/200/content/application~1json/schema/properties/scores/properties/match/items/properties/home
                            scoreboard:
                              type: object
                              nullable: true
                              description: 'Scoreboard information, if available'
                            lineups:
                              type: object
                              properties:
                                home:
                                  type: object
                                  properties:
                                    player:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          id:
                                            type: string
                                            description: Player ID
                                          name:
                                            type: string
                                            description: Player name
                                        required:
                                          - id
                                          - name
                                  required:
                                    - player
                                away:
                                  $ref: >-
                                    #/paths/~1esports~1livescores/get/responses/200/content/application~1json/schema/properties/scores/properties/match/items/properties/lineups/properties/home
                              required:
                                - home
                                - away
                            maps:
                              type: object
                              properties:
                                map:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      name:
                                        type: string
                                        description: Map name
                                      scores:
                                        type: object
                                        properties:
                                          home:
                                            type: object
                                            properties:
                                              fh:
                                                type: string
                                                description: First half score
                                                nullable: true
                                              ot:
                                                type: string
                                                description: Overtime score
                                                nullable: true
                                              sh:
                                                type: string
                                                description: Second half score
                                                nullable: true
                                              total:
                                                type: string
                                                description: Total score
                                                nullable: true
                                            required:
                                              - total
                                          away:
                                            $ref: >-
                                              #/paths/~1esports~1livescores/get/responses/200/content/application~1json/schema/properties/scores/properties/match/items/properties/maps/properties/map/items/properties/scores/properties/home
                                        required:
                                          - home
                                          - away
                                      rounds:
                                        nullable: true
                                        type: object
                                        properties:
                                          firsthalf:
                                            nullable: true
                                            type: object
                                            properties:
                                              awayteam:
                                                type: string
                                                description: 'Side of the away team (e.g. CT, T)'
                                              localteam:
                                                type: string
                                                description: 'Side of the home team (e.g. T, CT)'
                                              round:
                                                oneOf:
                                                  - type: array
                                                    items:
                                                      type: object
                                                      properties:
                                                        awayteam_score:
                                                          type: string
                                                          description: Score of the away team in this round
                                                        localteam_score:
                                                          type: string
                                                          description: Score of the local team in this round
                                                        number:
                                                          type: string
                                                          description: Round number
                                                        result:
                                                          type: string
                                                          description: 'Result of the round (e.g. TWin, CtWin)'
                                                        winner:
                                                          type: string
                                                          description: Winning side of the round
                                                      required:
                                                        - awayteam_score
                                                        - localteam_score
                                                        - number
                                                        - result
                                                        - winner
                                                  - type: object
                                                    $ref: >-
                                                      #/paths/~1esports~1livescores/get/responses/200/content/application~1json/schema/properties/scores/properties/match/items/properties/maps/properties/map/items/properties/rounds/properties/firsthalf/properties/round/oneOf/0/items
                                            required:
                                              - awayteam
                                              - localteam
                                              - round
                                          secondhalf:
                                            $ref: >-
                                              #/paths/~1esports~1livescores/get/responses/200/content/application~1json/schema/properties/scores/properties/match/items/properties/maps/properties/map/items/properties/rounds/properties/firsthalf
                                            nullable: true
                                          overtime:
                                            type: object
                                            nullable: true
                                            description: 'Overtime round details, if available'
                                        required: []
                                      stats:
                                        nullable: true
                                        type: object
                                        properties:
                                          home:
                                            type: object
                                            properties:
                                              player:
                                                type: array
                                                items:
                                                  type: object
                                                  properties:
                                                    id:
                                                      type: string
                                                      description: Player ID
                                                    name:
                                                      type: string
                                                      description: Player name
                                                    adr:
                                                      type: string
                                                      description: Average Damage per Round
                                                      nullable: true
                                                    assists:
                                                      type: string
                                                      description: Number of assists
                                                      nullable: true
                                                    death:
                                                      type: string
                                                      description: Number of deaths
                                                      nullable: true
                                                    first_kills_diff:
                                                      type: string
                                                      description: First kills difference
                                                      nullable: true
                                                    flash_assists:
                                                      type: string
                                                      description: Flash assists count
                                                      nullable: true
                                                    headshots:
                                                      type: string
                                                      description: Headshots count
                                                      nullable: true
                                                    kast:
                                                      type: string
                                                      description: KAST percentage
                                                      nullable: true
                                                    kills:
                                                      type: string
                                                      description: Number of kills
                                                      nullable: true
                                                    rating_2.0:
                                                      type: string
                                                      description: Rating 2.0
                                                      nullable: true
                                                  required:
                                                    - id
                                                    - name
                                            required:
                                              - player
                                          away:
                                            $ref: >-
                                              #/paths/~1esports~1livescores/get/responses/200/content/application~1json/schema/properties/scores/properties/match/items/properties/maps/properties/map/items/properties/stats/properties/home
                                        required:
                                          - home
                                          - away
                                    required:
                                      - name
                                      - scores
                              required:
                                - map
                            streams:
                              type: object
                              properties:
                                stream:
                                  oneOf:
                                    - type: object
                                      properties:
                                        title:
                                          type: string
                                          description: Stream title
                                        url:
                                          type: string
                                          description: Stream URL
                                      required:
                                        - title
                                        - url
                                    - type: array
                                      items:
                                        type: object
                                        properties:
                                          title:
                                            type: string
                                            description: Stream title
                                          url:
                                            type: string
                                            description: Stream URL
                                        required:
                                          - title
                                          - url
                              required:
                                - stream
                          required:
                            - date
                            - id
                            - league
                            - league_id
                            - round
                            - status
                            - time
                            - home
                            - away
                    required:
                      - sport
                      - updated
                      - match
                required:
                  - scores
              example:
                scores:
                  sport: esports
                  updated: '12.12.2025 16:25:45'
                  match:
                    - date: 12.12.2025
                      id: '374273'
                      league: Dust2.us Group Stage
                      league_id: '9992'
                      round: BO3
                      status: Finished
                      time: '01:20'
                      timer: ''
                      type: CS GO
                      home:
                        id: '7896'
                        name: InControl
                        score: '1'
                      away:
                        id: '24956'
                        name: LAG Gaming
                        score: '2'
                      scoreboard: null
                      lineups:
                        home:
                          player:
                            - id: '1840642'
                              name: Scorchyy
                            - id: '1617785'
                              name: TyRa
                        away:
                          player:
                            - id: '1141221'
                              name: Pluto
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: Unauthorized - invalid or missing access_key or invalid sport
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: Resource Not Found - could not find resource
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  '/esports/daily/{day_offset_token}':
    get:
      summary: Get Games Recent / Upcoming
      description: >
        Returns esports matches for recent and upcoming days with detailed
        match, game, player stats, lineups, maps, and streams information. This
        endpoint data is updated every 12 hours.
      tags:
        - "\U0001F3AE Esports (V1)"
      servers:
        - url: 'https://statpal.io/api/v1/'
          description: Production (v1)
      security:
        - ApiKeyAuth: []
      parameters:
        - name: day_offset_token
          in: path
          description: >
            Day offset token to indicate matches from offset days relative to
            today. Allowed values: d-7, d-6, d-5, d-4, d-3, d-2, d-1, d0, d1,
            d2, d3, d4, d5, d6, d7
          required: true
          schema:
            type: string
            enum:
              - d-7
              - d-6
              - d-5
              - d-4
              - d-3
              - d-2
              - d-1
              - d0
              - d1
              - d2
              - d3
              - d4
              - d5
              - d6
              - d7
      x-update-rate: 43200
      responses:
        '200':
          description: >-
            Successful response with esports matches for the requested day
            offset
          content:
            application/json:
              schema:
                type: object
                properties:
                  scores:
                    type: object
                    properties:
                      sport:
                        type: string
                        description: Sport name
                      match:
                        type: array
                        items:
                          type: object
                          properties:
                            date:
                              type: string
                              description: Date of the match (DD.MM.YYYY)
                            id:
                              type: string
                              description: Match ID
                            league:
                              type: string
                              description: League name
                            league_id:
                              type: string
                              description: League ID
                            round:
                              type: string
                              description: Match round info (e.g. BO3)
                            status:
                              type: string
                              description: >-
                                Current status of the match (e.g. Finished,
                                Started, Walkover)
                            time:
                              type: string
                              description: Scheduled or actual time
                            timer:
                              type: string
                              description: Timer info if available
                            type:
                              type: string
                              description: 'Game type or variant (e.g. CS GO, DOTA 2)'
                            home:
                              type: object
                              properties:
                                id:
                                  type: string
                                  description: Team ID
                                name:
                                  type: string
                                  description: Team name
                                score:
                                  type: string
                                  description: Team's current score
                              required:
                                - id
                                - name
                                - score
                            away:
                              $ref: >-
                                #/paths/~1esports~1daily~1%7Bday_offset_token%7D/get/responses/200/content/application~1json/schema/properties/scores/properties/match/items/properties/home
                            scoreboard:
                              type: object
                              nullable: true
                              description: 'Scoreboard information, if available'
                            lineups:
                              nullable: true
                              type: object
                              properties:
                                home:
                                  oneOf:
                                    - type: 'null'
                                    - type: object
                                      properties:
                                        player:
                                          type: array
                                          items:
                                            type: object
                                            properties:
                                              id:
                                                type: string
                                                description: Player ID
                                              name:
                                                type: string
                                                description: Player name
                                            required:
                                              - id
                                              - name
                                      required:
                                        - player
                                away:
                                  oneOf:
                                    - type: 'null'
                                    - $ref: >-
                                        #/paths/~1esports~1daily~1%7Bday_offset_token%7D/get/responses/200/content/application~1json/schema/properties/scores/properties/match/items/properties/lineups/properties/home/oneOf/1
                              required:
                                - home
                                - away
                            maps:
                              nullable: true
                              type: object
                              properties:
                                map:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      name:
                                        type: string
                                        description: Map name
                                      scores:
                                        type: object
                                        properties:
                                          home:
                                            type: object
                                            properties:
                                              fh:
                                                type: string
                                                nullable: true
                                                description: First half score
                                              ot:
                                                type: string
                                                nullable: true
                                                description: Overtime score
                                              sh:
                                                type: string
                                                nullable: true
                                                description: Second half score
                                              total:
                                                type: string
                                                nullable: true
                                                description: Total score
                                            required:
                                              - total
                                          away:
                                            $ref: >-
                                              #/paths/~1esports~1daily~1%7Bday_offset_token%7D/get/responses/200/content/application~1json/schema/properties/scores/properties/match/items/properties/maps/properties/map/items/properties/scores/properties/home
                                        required:
                                          - home
                                          - away
                                      rounds:
                                        type: object
                                        nullable: true
                                        description: 'Round details, if available'
                                      stats:
                                        type: object
                                        nullable: true
                                        description: 'Statistics, if available'
                                    required:
                                      - name
                                      - scores
                              required:
                                - map
                            streams:
                              nullable: true
                              type: object
                              properties:
                                stream:
                                  oneOf:
                                    - type: 'null'
                                    - type: object
                                      properties:
                                        title:
                                          type: string
                                          description: Stream title
                                        url:
                                          type: string
                                          description: Stream URL
                                      required:
                                        - title
                                        - url
                                    - type: array
                                      items:
                                        type: object
                                        properties:
                                          title:
                                            type: string
                                            description: Stream title
                                          url:
                                            type: string
                                            description: Stream URL
                                        required:
                                          - title
                                          - url
                              required:
                                - stream
                            games:
                              nullable: true
                              type: object
                              properties:
                                game:
                                  oneOf:
                                    - type: 'null'
                                    - type: array
                                      items:
                                        type: object
                                        properties:
                                          'no':
                                            type: string
                                            description: Game number in match
                                          duration:
                                            type: string
                                            description: 'Game duration (HH:MM:SS)'
                                          started_at:
                                            type: string
                                            description: Game start timestamp
                                            nullable: true
                                          radiant:
                                            $ref: >-
                                              #/paths/~1esports~1daily~1%7Bday_offset_token%7D/get/responses/200/content/application~1json/schema/properties/scores/properties/match/items/properties/games/properties/game/oneOf/1/items/properties/dire
                                          dire:
                                            type: object
                                            properties:
                                              team_id:
                                                type: string
                                                description: Team ID
                                              player:
                                                type: array
                                                items:
                                                  type: object
                                                  properties:
                                                    id:
                                                      type: string
                                                      description: Player ID
                                                    name:
                                                      type: string
                                                      nullable: true
                                                      description: 'Player name, if available'
                                                    hero:
                                                      type: string
                                                      nullable: true
                                                      description: >-
                                                        Hero/champion name, if applicable (e.g.
                                                        DOTA2 hero)
                                                    kills:
                                                      type: string
                                                      nullable: true
                                                    deaths:
                                                      type: string
                                                      nullable: true
                                                    assists:
                                                      type: string
                                                      nullable: true
                                                    denies:
                                                      type: string
                                                      nullable: true
                                                    last_hits:
                                                      type: string
                                                      nullable: true
                                                    gold_per_min:
                                                      type: string
                                                      nullable: true
                                                    experience_per_min:
                                                      type: string
                                                      nullable: true
                                                    heals:
                                                      type: string
                                                      nullable: true
                                                    net_worth:
                                                      type: string
                                                      nullable: true
                                                    total_gold_earned:
                                                      type: string
                                                      nullable: true
                                                  required:
                                                    - id
                                            required:
                                              - team_id
                                              - player
                                        required:
                                          - 'no'
                                          - duration
                                          - radiant
                                          - dire
                              required:
                                - game
                          required:
                            - date
                            - id
                            - league
                            - league_id
                            - round
                            - status
                            - time
                            - home
                            - away
                    required:
                      - sport
                      - match
                required:
                  - scores
              example:
                scores:
                  sport: esports
                  match:
                    - date: 11.12.2025
                      id: '374180'
                      league: Dust2.us Group Stage
                      league_id: '9992'
                      round: BO3
                      status: Finished
                      time: '01:20'
                      timer: ''
                      type: CS GO
                      home:
                        id: '7896'
                        name: InControl
                        score: '0'
                      away:
                        id: '27128'
                        name: SkinRave
                        score: '2'
                      scoreboard: null
                      lineups:
                        home: null
                        away: null
                      maps: null
                      streams: null
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: Unauthorized - invalid or missing access_key or invalid sport
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: Resource Not Found - could not find resource
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  /esports/odds:
    get:
      summary: Get Pre-Game Odds
      description: >
        Returns esports pre-game odds with detailed match, league, teams, and
        bookmakers odds information. This endpoint data is updated every 30
        minutes.
      tags:
        - "\U0001F3AE Esports (V1)"
      servers:
        - url: 'https://statpal.io/api/v1/'
          description: Production (v1)
      security:
        - ApiKeyAuth: []
      x-update-rate: 1800
      responses:
        '200':
          description: >-
            Successful response with esports pre-game odds including matches and
            bookmakers
          content:
            application/json:
              schema:
                type: object
                properties:
                  odds:
                    type: object
                    properties:
                      sport:
                        type: string
                        description: Sport name
                      ts:
                        type: string
                        description: Timestamp when data was last updated
                      match:
                        type: array
                        items:
                          type: object
                          properties:
                            date:
                              type: string
                              description: Date of the match (DD.MM.YYYY)
                            id:
                              type: string
                              description: Match ID
                            league:
                              type: string
                              description: League name
                            league_id:
                              type: string
                              description: League ID
                            round:
                              type: string
                              description: Match round info (e.g. BO3)
                            status:
                              type: string
                              description: Current status of the match (e.g. Not Started)
                            time:
                              type: string
                              description: Scheduled time
                            timer:
                              type: string
                              description: Timer info if available
                            type:
                              type: string
                              description: Game type or variant (e.g. CS GO)
                            home:
                              type: object
                              properties:
                                id:
                                  type: string
                                  description: Team ID
                                name:
                                  type: string
                                  description: Team name
                                score:
                                  type: string
                                  description: Team's current score or empty if not started
                              required:
                                - id
                                - name
                                - score
                            away:
                              $ref: >-
                                #/paths/~1esports~1odds/get/responses/200/content/application~1json/schema/properties/odds/properties/match/items/properties/home
                            scoreboard:
                              type: object
                              nullable: true
                              description: 'Scoreboard information, null if not available'
                            odds:
                              type: object
                              properties:
                                rotation_away:
                                  type: string
                                  description: Rotation number for away team
                                  nullable: true
                                rotation_home:
                                  type: string
                                  description: Rotation number for home team
                                  nullable: true
                                ts:
                                  type: string
                                  description: Timestamp of odds data
                                type:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      id:
                                        type: string
                                        description: Odds type ID
                                      stop:
                                        type: string
                                        description: >-
                                          Whether this odds type is stopped
                                          (True/False)
                                      value:
                                        type: string
                                        description: >-
                                          Odds type description (e.g. 'Home/Away',
                                          'Asian Handicap')
                                      bookmaker:
                                        oneOf:
                                          - type: object
                                            properties:
                                              id:
                                                type: string
                                                description: Bookmaker ID
                                              name:
                                                type: string
                                                description: Bookmaker name
                                              stop:
                                                type: string
                                                description: >-
                                                  Whether this bookmaker is stopped
                                                  (True/False)
                                              ts:
                                                type: string
                                                description: Timestamp of bookmaker odds data
                                              odd:
                                                oneOf:
                                                  - type: object
                                                    properties:
                                                      id:
                                                        type: string
                                                        description: Odd ID
                                                      name:
                                                        type: string
                                                        description: >-
                                                          Odd description (e.g. 'Home', 'Away',
                                                          'Over', 'Under')
                                                      us:
                                                        type: string
                                                        description: American style odd value
                                                        nullable: true
                                                      value:
                                                        type: string
                                                        description: Decimal odd value
                                                    required:
                                                      - id
                                                      - name
                                                      - value
                                                  - type: array
                                                    items:
                                                      $ref: >-
                                                        #/paths/~1esports~1odds/get/responses/200/content/application~1json/schema/properties/odds/properties/match/items/properties/odds/properties/type/items/properties/bookmaker/oneOf/0/properties/odd/oneOf/0
                                              handicap:
                                                nullable: true
                                                type: object
                                                properties:
                                                  name:
                                                    type: string
                                                    description: Handicap value (e.g. -6.5)
                                                  stop:
                                                    type: string
                                                    description: >-
                                                      Whether this handicap is stopped
                                                      (True/False)
                                                  odd:
                                                    oneOf:
                                                      - $ref: >-
                                                          #/paths/~1esports~1odds/get/responses/200/content/application~1json/schema/properties/odds/properties/match/items/properties/odds/properties/type/items/properties/bookmaker/oneOf/0/properties/odd/oneOf/0
                                                      - type: array
                                                        items:
                                                          $ref: >-
                                                            #/paths/~1esports~1odds/get/responses/200/content/application~1json/schema/properties/odds/properties/match/items/properties/odds/properties/type/items/properties/bookmaker/oneOf/0/properties/odd/oneOf/0
                                                required:
                                                  - name
                                                  - stop
                                                  - odd
                                              total:
                                                nullable: true
                                                type: object
                                                properties:
                                                  name:
                                                    type: string
                                                    description: Total value (e.g. 51.5)
                                                  stop:
                                                    type: string
                                                    description: >-
                                                      Whether this total is stopped
                                                      (True/False)
                                                  odd:
                                                    oneOf:
                                                      - $ref: >-
                                                          #/paths/~1esports~1odds/get/responses/200/content/application~1json/schema/properties/odds/properties/match/items/properties/odds/properties/type/items/properties/bookmaker/oneOf/0/properties/odd/oneOf/0
                                                      - type: array
                                                        items:
                                                          $ref: >-
                                                            #/paths/~1esports~1odds/get/responses/200/content/application~1json/schema/properties/odds/properties/match/items/properties/odds/properties/type/items/properties/bookmaker/oneOf/0/properties/odd/oneOf/0
                                                required:
                                                  - name
                                                  - stop
                                                  - odd
                                            required:
                                              - id
                                              - name
                                              - stop
                                              - ts
                                          - type: array
                                            items:
                                              $ref: >-
                                                #/paths/~1esports~1odds/get/responses/200/content/application~1json/schema/properties/odds/properties/match/items/properties/odds/properties/type/items/properties/bookmaker/oneOf/0
                                    required:
                                      - id
                                      - stop
                                      - value
                                      - bookmaker
                              required:
                                - ts
                                - type
                          required:
                            - date
                            - id
                            - league
                            - league_id
                            - round
                            - status
                            - time
                            - home
                            - away
                            - odds
                    required:
                      - sport
                      - ts
                      - match
                required:
                  - odds
              example:
                odds:
                  sport: esports
                  ts: '1765526315'
                  match:
                    - date: 13.12.2025
                      id: '374275'
                      league: Dust2.us Group Stage
                      league_id: '9992'
                      round: BO3
                      status: Not Started
                      time: '01:00'
                      timer: ''
                      type: CS GO
                      home:
                        id: '22988'
                        name: Take Flyte
                        score: ''
                      away:
                        id: '26488'
                        name: Straight2Killin
                        score: ''
                      scoreboard: null
                      odds:
                        rotation_away: ''
                        rotation_home: ''
                        ts: '1765511330'
                        type:
                          - id: '1501'
                            stop: 'False'
                            value: Home/Away
                            bookmaker:
                              - id: '1515'
                                name: bet365
                                stop: 'False'
                                ts: '1765492440'
                                odd:
                                  - id: '910602243215671567'
                                    name: Home
                                    us: '-278'
                                    value: '1.36'
                                  - id: '910602243215701570'
                                    name: Away
                                    us: '200'
                                    value: '3.00'
                          - id: '1503'
                            stop: 'False'
                            value: Asian Handicap
                            bookmaker:
                              id: '1516'
                              name: Marathon
                              stop: 'False'
                              ts: '1765507907'
                              handicap:
                                name: '-6.5'
                                stop: 'False'
                                odd:
                                  - id: '910602217418411841'
                                    name: Home
                                    us: '-116'
                                    value: '1.86'
                                  - id: '910602217418431843'
                                    name: Away
                                    us: '-118'
                                    value: '1.85'
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: Unauthorized - invalid or missing access_key or invalid sport
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: Resource Not Found - could not find resource
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  /cricket/livescores:
    get:
      summary: Get Live Scores
      description: >
        Returns live cricket scores with detailed match, inning, player stats,
        and commentary information. This endpoint data is updated every 15
        seconds.
      tags:
        - "\U0001F3CF Cricket (V1)"
      servers:
        - url: 'https://statpal.io/api/v1/'
          description: Production (v1)
      security:
        - ApiKeyAuth: []
      x-update-rate: 15
      responses:
        '200':
          description: >-
            Successful response with cricket live scores including matches,
            innings, player stats, and commentaries
          content:
            application/json:
              schema:
                type: object
                properties:
                  scores:
                    type: object
                    properties:
                      sport:
                        type: string
                        description: Sport name
                        example: cricket
                      updated:
                        type: string
                        description: Timestamp when data was last updated
                        example: '12.12.2025 08:40:18'
                      category:
                        type: array
                        items:
                          type: object
                          properties:
                            id:
                              type: string
                              description: Category ID
                            name:
                              type: string
                              description: Category name
                            match:
                              oneOf:
                                - type: object
                                  properties:
                                    date:
                                      type: string
                                      description: Date of the match
                                      example: 09.12.2025
                                    date_range:
                                      type: string
                                      description: Date range of the match event
                                      example: 09.12.2025-12.12.2025
                                    formatted_date:
                                      type: string
                                      description: Formatted date range
                                      example: 09.12.2025-12.12.2025
                                    id:
                                      type: string
                                      description: Match ID
                                    status:
                                      type: string
                                      description: >-
                                        Status of the match (e.g., Finished, In
                                        Progress)
                                      example: Finished
                                    time:
                                      type: string
                                      description: Scheduled or start time
                                      example: '07:00'
                                    type:
                                      type: string
                                      description: 'Type of match (e.g., TEST, ODI, T20)'
                                      example: TEST
                                    venue:
                                      type: string
                                      description: Venue of the match
                                      example: 'City Oval, Pietermaritzburg'
                                    home:
                                      type: object
                                      properties:
                                        id:
                                          type: string
                                          description: Team ID
                                        name:
                                          type: string
                                          description: Team name
                                        stat:
                                          type: string
                                          description: Score string (e.g. 201/6d)
                                          nullable: true
                                        totalscore:
                                          type: string
                                          description: Total score (runs)
                                          nullable: true
                                        winner:
                                          type: string
                                          description: Winner indicator ('True' or 'False')
                                          nullable: true
                                      required:
                                        - id
                                        - name
                                    away:
                                      $ref: >-
                                        #/paths/~1cricket~1livescores/get/responses/200/content/application~1json/schema/properties/scores/properties/category/items/properties/match/oneOf/0/properties/home
                                    comment:
                                      type: object
                                      properties:
                                        first_batting_teamid:
                                          type: string
                                          description: ID of first batting team
                                          nullable: true
                                        post:
                                          type: string
                                          description: Match status message
                                          nullable: true
                                        toss_winner_teamid:
                                          type: string
                                          description: ID of team that won the toss
                                          nullable: true
                                      required: []
                                    inning:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          inningnum:
                                            type: string
                                            description: Inning number
                                          name:
                                            type: string
                                            description: Inning name
                                          team:
                                            type: string
                                            description: >-
                                              Team designation (localteam or
                                              visitorteam)
                                          batsmanstats:
                                            type: object
                                            properties:
                                              player:
                                                type: array
                                                items:
                                                  type: object
                                                  properties:
                                                    id:
                                                      type: string
                                                      description: Player ID
                                                    batsman:
                                                      type: string
                                                      description: Player name
                                                    b:
                                                      type: string
                                                      description: Balls played
                                                    r:
                                                      type: string
                                                      description: Runs scored
                                                    s4:
                                                      type: string
                                                      description: Number of fours
                                                    s6:
                                                      type: string
                                                      description: Number of sixes
                                                    sr:
                                                      type: string
                                                      description: Strike rate
                                                    bat:
                                                      type: string
                                                      description: >-
                                                        Batting status (True or False for
                                                        currently batting)
                                                    dismissal_type:
                                                      type: string
                                                      description: Type of dismissal
                                                      nullable: true
                                                    dismissal_bowler:
                                                      type: string
                                                      description: Bowler who caused dismissal
                                                      nullable: true
                                                    status:
                                                      type: string
                                                      description: Detailed dismissal status
                                                      nullable: true
                                                    dismissal_fielders:
                                                      type: object
                                                      nullable: true
                                                      properties:
                                                        dismissal_fielder:
                                                          oneOf:
                                                            - type: object
                                                              properties:
                                                                name:
                                                                  type: string
                                                                  description: Fielder name
                                                                profileid:
                                                                  type: string
                                                                  description: Fielder profile ID
                                                              required:
                                                                - name
                                                                - profileid
                                                            - type: array
                                                              items:
                                                                $ref: >-
                                                                  #/paths/~1cricket~1livescores/get/responses/200/content/application~1json/schema/properties/scores/properties/category/items/properties/match/oneOf/0/properties/inning/items/properties/batsmanstats/properties/player/items/properties/dismissal_fielders/properties/dismissal_fielder/oneOf/0
                                                  required:
                                                    - id
                                                    - batsman
                                                    - b
                                                    - r
                                                    - s4
                                                    - s6
                                                    - sr
                                                    - bat
                                            required:
                                              - player
                                          total:
                                            type: object
                                            properties:
                                              b:
                                                type: string
                                                description: Balls total
                                              ext:
                                                type: string
                                                description: Extras
                                              lb:
                                                type: string
                                                description: Leg byes
                                              nb:
                                                type: string
                                                description: No balls
                                              p:
                                                type: string
                                                description: Penalties
                                              rr:
                                                type: string
                                                description: Run rate
                                                nullable: true
                                              tot:
                                                type: string
                                                description: Total runs
                                              wd:
                                                type: string
                                                description: Wides
                                              wickets:
                                                type: string
                                                description: Number of wickets fallen
                                            required:
                                              - b
                                              - ext
                                              - lb
                                              - nb
                                              - p
                                              - tot
                                              - wd
                                              - wickets
                                          bowlers:
                                            type: object
                                            properties:
                                              player:
                                                type: array
                                                items:
                                                  type: object
                                                  properties:
                                                    id:
                                                      type: string
                                                      description: Bowler player ID
                                                    bowler:
                                                      type: string
                                                      description: Bowler name
                                                    ball:
                                                      type: string
                                                      description: 'Ball status (e.g., ''False'' or ''True'')'
                                                    dots:
                                                      type: string
                                                      description: Dot balls
                                                      nullable: true
                                                    er:
                                                      type: string
                                                      description: Economy rate
                                                    m:
                                                      type: string
                                                      description: Maidens
                                                    nb:
                                                      type: string
                                                      description: No balls
                                                    o:
                                                      type: string
                                                      description: Overs bowled
                                                    profileid:
                                                      type: string
                                                      description: Player profile ID
                                                    r:
                                                      type: string
                                                      description: Runs conceded
                                                    w:
                                                      type: string
                                                      description: Wickets taken
                                                    wd:
                                                      type: string
                                                      description: Wides
                                                  required:
                                                    - id
                                                    - bowler
                                                    - ball
                                                    - er
                                                    - m
                                                    - nb
                                                    - o
                                                    - profileid
                                                    - r
                                                    - w
                                                    - wd
                                            required:
                                              - player
                                          partnerships:
                                            type: object
                                            nullable: true
                                            description: Partnership details (optional)
                                        required:
                                          - inningnum
                                          - name
                                          - team
                                          - batsmanstats
                                          - total
                                          - bowlers
                                    commentaries:
                                      type: object
                                      properties:
                                        commentary:
                                          type: array
                                          items:
                                            type: object
                                            properties:
                                              id:
                                                type: string
                                                description: Commentary ID
                                              balls:
                                                type: string
                                                description: Ball number within over
                                              batsman_id:
                                                type: string
                                                description: Batsman player ID
                                              bowler_id:
                                                type: string
                                                description: Bowler player ID
                                              byes:
                                                type: string
                                                description: Byes
                                                nullable: true
                                              isfour:
                                                type: string
                                                description: Is four run shot
                                              issix:
                                                type: string
                                                description: Is six run shot
                                              iswicket:
                                                type: string
                                                description: Is wicket event
                                              legbyes:
                                                type: string
                                                description: Leg byes
                                                nullable: true
                                              noballs:
                                                type: string
                                                description: No balls
                                                nullable: true
                                              over:
                                                type: string
                                                description: Over number
                                              over_ended:
                                                type: string
                                                description: Indicates if over ended
                                              post:
                                                type: string
                                                description: Commentary text
                                              runs:
                                                type: string
                                                description: Runs scored
                                              wides:
                                                type: string
                                                description: Wides
                                            required:
                                              - id
                                              - balls
                                              - batsman_id
                                              - bowler_id
                                              - isfour
                                              - issix
                                              - iswicket
                                              - over
                                              - over_ended
                                              - post
                                              - runs
                                              - wides
                                      required:
                                        - commentary
                                    lineups:
                                      type: object
                                      properties:
                                        home:
                                          type: object
                                          properties:
                                            player:
                                              type: array
                                              items:
                                                type: object
                                                properties:
                                                  name:
                                                    type: string
                                                    description: Player name
                                                  profileid:
                                                    type: string
                                                    description: Player profile ID
                                                  c:
                                                    type: string
                                                    description: Captaincy status (0 or 1)
                                                  is_impact:
                                                    type: string
                                                    description: Impact player flag (True/False)
                                                  ro:
                                                    type: string
                                                    description: Role code
                                                  st:
                                                    type: string
                                                    description: Substitute status
                                                  wickets:
                                                    type: string
                                                    description: Number of wickets
                                                    nullable: true
                                                  wides:
                                                    type: string
                                                    description: Number of wides
                                                    nullable: true
                                                required:
                                                  - name
                                                  - profileid
                                                  - c
                                                  - is_impact
                                                  - ro
                                                  - st
                                          required:
                                            - player
                                        away:
                                          $ref: >-
                                            #/paths/~1cricket~1livescores/get/responses/200/content/application~1json/schema/properties/scores/properties/category/items/properties/match/oneOf/0/properties/lineups/properties/home
                                      required:
                                        - home
                                        - away
                                    matchinfo:
                                      type: object
                                      properties:
                                        info:
                                          type: array
                                          items:
                                            type: object
                                            properties:
                                              id:
                                                type: string
                                                description: Info ID
                                                nullable: true
                                              name:
                                                type: string
                                                description: Info field name
                                              value:
                                                type: string
                                                description: Info field value
                                                nullable: true
                                            required:
                                              - name
                                      required:
                                        - info
                                    replacements:
                                      type: object
                                      properties:
                                        home:
                                          type: object
                                          nullable: true
                                          description: Home team replacements
                                        away:
                                          type: object
                                          nullable: true
                                          description: Away team replacements
                                      required: []
                                  required:
                                    - date
                                    - id
                                    - status
                                    - time
                                    - type
                                    - home
                                    - away
                                - type: array
                                  items:
                                    $ref: >-
                                      #/paths/~1cricket~1livescores/get/responses/200/content/application~1json/schema/properties/scores/properties/category/items/properties/match/oneOf/0
                          required:
                            - id
                            - name
                            - match
                    required:
                      - sport
                      - updated
                      - category
                required:
                  - scores
              example:
                scores:
                  sport: cricket
                  updated: '12.12.2025 08:40:18'
                  category:
                    - id: '6855'
                      name: CSA 4-Day Series Division 1 - Test
                      match:
                        date: 09.12.2025
                        date_range: 09.12.2025-12.12.2025
                        formatted_date: 09.12.2025-12.12.2025
                        id: '13072005739'
                        status: Finished
                        time: '07:00'
                        type: TEST
                        venue: 'City Oval, Pietermaritzburg'
                        home:
                          id: '4066'
                          name: Western Province
                          stat: 201/6d
                          totalscore: '290'
                          winner: 'True'
                        away:
                          id: '4165'
                          name: KwaZulu-Natal Inland
                          stat: '204'
                          totalscore: '148'
                          winner: 'False'
                        comment:
                          first_batting_teamid: '2567'
                          post: W Province won by 139 runs
                          toss_winner_teamid: '2567'
                        inning:
                          - inningnum: '1'
                            name: Western Province 1 INN
                            team: localteam
                            batsmanstats:
                              player:
                                - id: '6749'
                                  batsman: JA Bird
                                  b: '66'
                                  r: '28'
                                  s4: '4'
                                  s6: '0'
                                  sr: '42.42'
                                  bat: 'False'
                                  dismissal_type: caught
                                  dismissal_bowler: ''
                                  status: c du Plessis b Whitehead
                                  dismissal_fielders:
                                    dismissal_fielder:
                                      name: J du Plessis
                                      profileid: '595786'
                            total:
                              b: '5'
                              ext: '12'
                              lb: '2'
                              nb: '3'
                              p: '2'
                              rr: ''
                              tot: 290 ( 77 )
                              wd: '2'
                              wickets: '10'
                            bowlers:
                              player:
                                - id: '9491'
                                  bowler: Daryn Dupavillon
                                  ball: 'False'
                                  dots: ''
                                  er: '3.52'
                                  m: '4'
                                  nb: '3'
                                  o: '17'
                                  profileid: '501907'
                                  r: '60'
                                  w: '0'
                                  wd: '0'
                        commentaries:
                          commentary:
                            - id: '51092033'
                              balls: '7'
                              batsman_id: '51088'
                              bowler_id: '84139'
                              runs: '4'
                              post: Phillip to Williamson
                              isfour: 'True'
                              issix: 'False'
                              iswicket: 'False'
                        lineups:
                          home:
                            player:
                              - id: '696587'
                                name: JA Bird
                                c: '0'
                                is_impact: 'False'
                                ro: '0'
                                st: '0'
                                wickets: ''
                                wides: ''
                          away:
                            player:
                              - id: '333879'
                                name: MN Erlank
                                c: '0'
                                is_impact: 'False'
                                ro: '0'
                                st: '0'
                                wickets: ''
                                wides: ''
                        matchinfo:
                          info:
                            - name: Toss
                              value: 'Western Province, elected to bat first'
                            - id: ''
                              name: Man Of Match
                              value: ''
                            - name: Referee
                              value: ''
                        replacements:
                          home: null
                          away: null
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: Unauthorized - invalid or missing access_key or invalid sport
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: Resource Not Found - could not find resource
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  /cricket/upcoming-schedule:
    get:
      summary: Get Upcoming Schedule
      description: >
        Returns upcoming cricket tournament schedule including fixtures with
        detailed match info such as date, teams, type, venue, and related
        metadata. This endpoint data is updated every 1 hour.
      tags:
        - "\U0001F3CF Cricket (V1)"
      servers:
        - url: 'https://statpal.io/api/v1/'
          description: Production (v1)
      security:
        - ApiKeyAuth: []
      x-update-rate: 3600
      responses:
        '200':
          description: >-
            Successful response with upcoming cricket tournament schedule
            including fixture details and match metadata
          content:
            application/json:
              schema:
                type: object
                properties:
                  fixtures:
                    type: object
                    properties:
                      sport:
                        type: string
                        description: Sport name
                        example: cricket
                      category:
                        type: array
                        items:
                          type: object
                          properties:
                            id:
                              type: string
                              description: Category ID
                            name:
                              type: string
                              description: Category name
                            series_file:
                              type: string
                              description: Path to series file
                              nullable: true
                            squads_file:
                              type: string
                              description: Path to squads file
                              nullable: true
                            match:
                              type: object
                              properties:
                                date:
                                  type: string
                                  description: Date of the match
                                  example: 12.12.2025
                                id:
                                  type: string
                                  description: Match ID
                                match_num:
                                  type: string
                                  description: Match number or designation
                                  nullable: true
                                time:
                                  type: string
                                  description: Scheduled or start time
                                  example: '21:30'
                                  nullable: true
                                type:
                                  type: string
                                  description: 'Type of match (e.g., Test, ODI, T20)'
                                  example: Test
                                  nullable: true
                                home:
                                  type: object
                                  properties:
                                    id:
                                      type: string
                                      description: Team ID
                                    name:
                                      type: string
                                      description: Team name
                                  required:
                                    - id
                                    - name
                                away:
                                  $ref: >-
                                    #/paths/~1cricket~1upcoming-schedule/get/responses/200/content/application~1json/schema/properties/fixtures/properties/category/items/properties/match/properties/home
                                matchinfo:
                                  type: object
                                  properties:
                                    info:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          id:
                                            type: string
                                            description: Info ID
                                            nullable: true
                                          name:
                                            type: string
                                            description: Info field name
                                          value:
                                            type: string
                                            description: Info field value
                                            nullable: true
                                        required:
                                          - name
                                  required:
                                    - info
                              required:
                                - date
                                - id
                                - home
                                - away
                                - matchinfo
                          required:
                            - id
                            - name
                            - match
                    required:
                      - sport
                      - category
                required:
                  - fixtures
              example:
                fixtures:
                  sport: cricket
                  category:
                    - id: '1022'
                      name: Plunket Shield
                      series_file: /intl/1022
                      squads_file: /intl/1022_squads
                      match:
                        date: 12.12.2025
                        id: '13072006686'
                        match_num: 10th Match
                        time: '21:30'
                        type: Test
                        home:
                          id: '3978'
                          name: Northern Districts
                        away:
                          id: '3977'
                          name: Wellington
                        matchinfo:
                          info:
                            - name: Toss
                              value: ''
                            - id: ''
                              name: Man Of Match
                              value: ''
                            - name: Referee
                              value: ''
                            - name: Venue
                              value: 'Cobham Oval, Whangarei'
                            - name: City
                              value: Whangarei
                            - name: Country
                              value: New Zealand
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: Unauthorized - invalid or missing access_key or invalid sport
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: Resource Not Found - could not find resource
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  /cricket/tour-list:
    get:
      summary: Get Tournament List
      description: >
        Returns a list of cricket tournaments with details including tournament
        id, name, season, and related URIs for schedules, squads, and standings.
        This endpoint data is updated every 1 hour.
      tags:
        - "\U0001F3CF Cricket (V1)"
      servers:
        - url: 'https://statpal.io/api/v1/'
          description: Production (v1)
      security:
        - ApiKeyAuth: []
      x-update-rate: 3600
      responses:
        '200':
          description: Successful response with cricket tournament list data
          content:
            application/json:
              schema:
                type: object
                properties:
                  tours:
                    type: object
                    properties:
                      sport:
                        type: string
                        description: Sport name
                        example: cricket
                      category:
                        type: array
                        items:
                          type: object
                          properties:
                            id:
                              type: string
                              description: Tournament ID
                            name:
                              type: string
                              description: Tournament name
                            schedule_uri:
                              type: string
                              description: URI for tournament schedule
                            season:
                              type: string
                              description: Season year or range
                            squad_uri:
                              type: string
                              description: URI for tournament squads
                            standings_uri:
                              type: string
                              description: URI for tournament standings table
                          required:
                            - id
                            - name
                            - schedule_uri
                            - season
                            - squad_uri
                            - standings_uri
                    required:
                      - sport
                      - category
                required:
                  - tours
              example:
                tours:
                  sport: cricket
                  category:
                    - id: '1004'
                      name: Sheffield Shield
                      schedule_uri: /intl/1004
                      season: 2025-26
                      squad_uri: /intl/1004_squads
                      standings_uri: /intl/1004_table
                    - id: '1022'
                      name: Plunket Shield
                      schedule_uri: /intl/1022
                      season: 2025-26
                      squad_uri: /intl/1022_squads
                      standings_uri: /intl/1022_table
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: Unauthorized - invalid or missing access_key or invalid sport
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: Resource Not Found - could not find resource
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  '/cricket/season-schedule/{tournament_type}/{tournament_id}':
    get:
      summary: Get Matches By Tournament
      description: >
        Returns cricket match schedules and results for a specific tournament
        including detailed match information,

        innings, player stats, and commentaries.  


        **tournament_type** and **tournament_id** parameters are found in the
        */upcoming-schedule/* and */tour-list/* endpoints. 


        An example of a qualified url is
        *https://statpal.io/api/v1/cricket/season-schedule/intl/1022*  


        This endpoint data is updated every 1 hour.
      tags:
        - "\U0001F3CF Cricket (V1)"
      servers:
        - url: 'https://statpal.io/api/v1/'
          description: Production (v1)
      security:
        - ApiKeyAuth: []
      x-update-rate: 3600
      parameters:
        - name: tournament_type
          in: path
          description: 'Type of tournament, e.g., tour, intl'
          required: true
          schema:
            type: string
        - name: tournament_id
          in: path
          description: Unique ID of the tournament
          required: true
          schema:
            type: string
      responses:
        '200':
          description: >-
            Successful response with cricket matches by tournament including
            detailed statistics
          content:
            application/json:
              schema:
                type: object
                properties:
                  scores:
                    type: object
                    properties:
                      sport:
                        type: string
                        description: Sport name
                        example: cricket
                      category:
                        type: object
                        properties:
                          id:
                            type: string
                            description: Category ID
                          name:
                            type: string
                            description: Category name
                          season:
                            type: string
                            description: Season of the tournament
                          match:
                            type: array
                            items:
                              type: object
                              properties:
                                date:
                                  type: string
                                  description: Date of the match
                                  example: 17.11.2025
                                date_range:
                                  type: string
                                  description: Date range of the match event
                                  example: 17.11.2025-21.11.2025
                                id:
                                  type: string
                                  description: Match ID
                                local_date:
                                  type: string
                                  description: Local date of the match
                                  nullable: true
                                local_time:
                                  type: string
                                  description: Local time of the match
                                  nullable: true
                                match_num:
                                  type: string
                                  description: Match number or designation
                                  nullable: true
                                status:
                                  type: string
                                  description: >-
                                    Status of the match (e.g., Finished, In
                                    Progress)
                                  example: Finished
                                time:
                                  type: string
                                  description: Scheduled or start time
                                  example: '21:30'
                                type:
                                  type: string
                                  description: 'Type of match (e.g., Test, ODI, T20)'
                                  example: Test
                                home:
                                  type: object
                                  properties:
                                    id:
                                      type: string
                                      description: Team ID
                                    name:
                                      type: string
                                      description: Team name
                                    stat:
                                      type: string
                                      description: Score string (optional)
                                      nullable: true
                                    totalscore:
                                      type: string
                                      description: Total score (runs)
                                      nullable: true
                                    winner:
                                      type: string
                                      description: Winner flag ('True' or 'False')
                                      nullable: true
                                  required:
                                    - id
                                    - name
                                away:
                                  $ref: >-
                                    #/paths/~1cricket~1season-schedule~1%7Btournament_type%7D~1%7Btournament_id%7D/get/responses/200/content/application~1json/schema/properties/scores/properties/category/properties/match/items/properties/home
                                comment:
                                  nullable: true
                                  type: object
                                  properties:
                                    post:
                                      type: string
                                      description: Match status message
                                      nullable: true
                                  required: []
                                inning:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      inningnum:
                                        type: string
                                        description: Inning number
                                      name:
                                        type: string
                                        description: Inning name
                                      team:
                                        type: string
                                        description: >-
                                          Team designation (localteam or
                                          visitorteam)
                                      batsmanstats:
                                        type: object
                                        properties:
                                          player:
                                            type: array
                                            items:
                                              type: object
                                              properties:
                                                id:
                                                  type: string
                                                  description: Player ID
                                                batsman:
                                                  type: string
                                                  description: Player name
                                                b:
                                                  type: string
                                                  description: Balls played
                                                r:
                                                  type: string
                                                  description: Runs scored
                                                s4:
                                                  type: string
                                                  description: Number of fours
                                                s6:
                                                  type: string
                                                  description: Number of sixes
                                                sr:
                                                  type: string
                                                  description: Strike rate
                                                bat:
                                                  type: string
                                                  description: >-
                                                    Batting status (True or False for
                                                    currently batting)
                                                dismissal_type:
                                                  type: string
                                                  description: Type of dismissal
                                                  nullable: true
                                                dismissal_bowler:
                                                  type: string
                                                  description: Bowler who caused dismissal
                                                  nullable: true
                                                status:
                                                  type: string
                                                  description: Detailed dismissal status
                                                  nullable: true
                                                dismissal_fielders:
                                                  type: object
                                                  nullable: true
                                                  properties:
                                                    dismissal_fielder:
                                                      oneOf:
                                                        - type: object
                                                          properties:
                                                            name:
                                                              type: string
                                                              description: Fielder name
                                                            profileid:
                                                              type: string
                                                              description: Fielder profile ID
                                                          required:
                                                            - name
                                                            - profileid
                                                        - type: array
                                                          items:
                                                            $ref: >-
                                                              #/paths/~1cricket~1season-schedule~1%7Btournament_type%7D~1%7Btournament_id%7D/get/responses/200/content/application~1json/schema/properties/scores/properties/category/properties/match/items/properties/inning/items/properties/batsmanstats/properties/player/items/properties/dismissal_fielders/properties/dismissal_fielder/oneOf/0
                                              required:
                                                - id
                                                - batsman
                                                - b
                                                - r
                                                - s4
                                                - s6
                                                - sr
                                                - bat
                                        required:
                                          - player
                                      total:
                                        type: object
                                        properties:
                                          b:
                                            type: string
                                            description: Balls total
                                          ext:
                                            type: string
                                            description: Extras
                                          lb:
                                            type: string
                                            description: Leg byes
                                          nb:
                                            type: string
                                            description: No balls
                                          p:
                                            type: string
                                            description: Penalties
                                          rr:
                                            type: string
                                            description: Run rate
                                            nullable: true
                                          tot:
                                            type: string
                                            description: Total runs
                                          wd:
                                            type: string
                                            description: Wides
                                          wickets:
                                            type: string
                                            description: Number of wickets fallen
                                        required:
                                          - b
                                          - ext
                                          - lb
                                          - nb
                                          - p
                                          - tot
                                          - wd
                                          - wickets
                                      bowlers:
                                        type: object
                                        properties:
                                          player:
                                            type: array
                                            items:
                                              type: object
                                              properties:
                                                id:
                                                  type: string
                                                  description: Bowler player ID
                                                bowler:
                                                  type: string
                                                  description: Bowler name
                                                ball:
                                                  type: string
                                                  description: 'Ball status (e.g., ''False'' or ''True'')'
                                                dots:
                                                  type: string
                                                  description: Dot balls
                                                  nullable: true
                                                er:
                                                  type: string
                                                  description: Economy rate
                                                m:
                                                  type: string
                                                  description: Maidens
                                                nb:
                                                  type: string
                                                  description: No balls
                                                o:
                                                  type: string
                                                  description: Overs bowled
                                                profileid:
                                                  type: string
                                                  description: Player profile ID
                                                r:
                                                  type: string
                                                  description: Runs conceded
                                                w:
                                                  type: string
                                                  description: Wickets taken
                                                wd:
                                                  type: string
                                                  description: Wides
                                              required:
                                                - id
                                                - bowler
                                                - ball
                                                - er
                                                - m
                                                - nb
                                                - o
                                                - profileid
                                                - r
                                                - w
                                                - wd
                                        required:
                                          - player
                                      partnerships:
                                        type: object
                                        nullable: true
                                    required:
                                      - inningnum
                                      - name
                                      - team
                                      - batsmanstats
                                      - total
                                      - bowlers
                                  nullable: true
                                commentaries:
                                  nullable: true
                                  type: object
                                  properties:
                                    commentary:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          id:
                                            type: string
                                            description: Commentary ID
                                          balls:
                                            type: string
                                            description: Ball number within over
                                          byes:
                                            type: string
                                            description: Byes
                                            nullable: true
                                          inning:
                                            type: string
                                            description: Inning number
                                            nullable: true
                                          legbyes:
                                            type: string
                                            description: Leg byes
                                            nullable: true
                                          over:
                                            type: string
                                            description: Over number
                                          over_ended:
                                            type: string
                                            description: Indicates if over ended
                                          post:
                                            type: string
                                            description: Commentary text
                                          runs:
                                            type: string
                                            description: Runs scored
                                          wides:
                                            type: string
                                            description: Wides
                                            nullable: true
                                        required:
                                          - id
                                          - balls
                                          - over
                                          - over_ended
                                          - post
                                          - runs
                                  required:
                                    - commentary
                                partnerships:
                                  type: object
                                  nullable: true
                              required:
                                - date
                                - id
                                - status
                                - time
                                - type
                                - home
                                - away
                        required:
                          - id
                          - name
                          - season
                          - match
                    required:
                      - sport
                      - category
                required:
                  - scores
              example:
                scores:
                  sport: cricket
                  category:
                    id: '1022'
                    name: Plunket Shield
                    season: 2025-26
                    match:
                      - date: 17.11.2025
                        date_range: 17.11.2025-21.11.2025
                        id: '13072006679'
                        local_date: ''
                        local_time: ''
                        match_num: 3rd Match
                        status: Finished
                        time: '21:30'
                        type: Test
                        home:
                          id: '3978'
                          name: Northern Districts
                          stat: ''
                          totalscore: 237 & 380/8d
                          winner: 'False'
                        away:
                          id: '3976'
                          name: Canterbury
                          stat: 'T:370'
                          totalscore: 248 & 371/5
                          winner: 'True'
                        comment:
                          post: Canterbury won by 5 wickets
                        inning: null
                        commentaries:
                          commentary:
                            - balls: '1'
                              byes: '0'
                              id: '50509774'
                              inning: '4'
                              legbyes: '0'
                              over: '93.1'
                              over_ended: 'False'
                              post: Raval to Boyle
                              runs: '4'
                        partnerships: null
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: Unauthorized - invalid or missing access_key or invalid sport
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: Resource Not Found - could not find resource
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  '/cricket/tables/{tournament_type}/{tournament_id}':
    get:
      summary: Get Tables By Tournament
      description: >
        Returns tournament tables including team standings with games played,
        wins, losses, points, and position.


        **tournament_type** and **tournament_id** parameters are found in the
        */upcoming-schedule/* and */tour-list/* endpoints. 


        An example of a qualified url is
        *https://statpal.io/api/v1/cricket/tables/intl/1022*  


        This endpoint data is updated every 1 hour.
      tags:
        - "\U0001F3CF Cricket (V1)"
      servers:
        - url: 'https://statpal.io/api/v1/'
          description: Production (v1)
      security:
        - ApiKeyAuth: []
      x-update-rate: 3600
      parameters:
        - name: tournament_type
          in: path
          required: true
          schema:
            type: string
          description: 'Type of tournament (e.g., tour, intl)'
        - name: tournament_id
          in: path
          required: true
          schema:
            type: string
          description: ID of the tournament
      responses:
        '200':
          description: >-
            Successful response with cricket tournament tables including team
            standings
          content:
            application/json:
              schema:
                type: object
                properties:
                  standings:
                    type: object
                    properties:
                      sport:
                        type: string
                        description: Sport name
                        example: cricket
                      team:
                        type: array
                        items:
                          type: object
                          properties:
                            games:
                              type: string
                              description: Number of games played
                              example: '3'
                            id:
                              type: string
                              description: Team ID
                              example: '3975'
                            lost:
                              type: string
                              description: Number of losses
                              example: '0'
                            name:
                              type: string
                              description: Team name
                              example: Auckland
                            nr:
                              type: string
                              description: Number of no results
                              example: '0'
                            points:
                              type: string
                              description: Points accumulated
                              example: '47'
                            pos:
                              type: string
                              description: Position in the table
                              example: '1'
                            tied:
                              type: string
                              description: Number of tied games
                              example: '0'
                            won:
                              type: string
                              description: Number of wins
                              example: '2'
                          required:
                            - games
                            - id
                            - lost
                            - name
                            - nr
                            - points
                            - pos
                            - tied
                            - won
                    required:
                      - sport
                      - team
                required:
                  - standings
              example:
                standings:
                  sport: cricket
                  team:
                    - games: '3'
                      id: '3975'
                      lost: '0'
                      name: Auckland
                      nr: '0'
                      points: '47'
                      pos: '1'
                      tied: '0'
                      won: '2'
                    - games: '3'
                      id: '3913'
                      lost: '1'
                      name: Central Districts
                      nr: '0'
                      points: '37'
                      pos: '2'
                      tied: '0'
                      won: '2'
                    - games: '3'
                      id: '3979'
                      lost: '1'
                      name: Otago
                      nr: '0'
                      points: '32'
                      pos: '3'
                      tied: '0'
                      won: '1'
                    - games: '3'
                      id: '3976'
                      lost: '1'
                      name: Canterbury
                      nr: '0'
                      points: '28'
                      pos: '4'
                      tied: '0'
                      won: '1'
                    - games: '3'
                      id: '3978'
                      lost: '1'
                      name: Northern Districts
                      nr: '0'
                      points: '28'
                      pos: '5'
                      tied: '0'
                      won: '1'
                    - games: '3'
                      id: '3977'
                      lost: '3'
                      name: Wellington
                      nr: '0'
                      points: '14'
                      pos: '6'
                      tied: '0'
                      won: '0'
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: Unauthorized - invalid or missing access_key or invalid sport
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: Resource Not Found - could not find resource
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  '/cricket/squads/{tournament_type}/{tournament_id}':
    get:
      summary: Get Squads By Tournament
      description: >
        Returns cricket squads grouped by tournament, including team and player
        details.


        **tournament_type** and **tournament_id** parameters are found in the
        */upcoming-schedule/* and */tour-list/* endpoints. 


        An example of a qualified url is
        *https://statpal.io/api/v1/cricket/squads/intl/1022*  


        This endpoint data is updated every 1 hour.
      tags:
        - "\U0001F3CF Cricket (V1)"
      servers:
        - url: 'https://statpal.io/api/v1/'
          description: Production (v1)
      security:
        - ApiKeyAuth: []
      x-update-rate: 3600
      parameters:
        - name: tournament_type
          in: path
          required: true
          schema:
            type: string
          description: 'The type of tournament (e.g., tour, intl)'
        - name: tournament_id
          in: path
          required: true
          schema:
            type: string
          description: The ID of the tournament
      responses:
        '200':
          description: >-
            Successful response with squads data by tournament including teams
            and players
          content:
            application/json:
              schema:
                type: object
                properties:
                  squads:
                    type: object
                    properties:
                      sport:
                        type: string
                        description: Sport name
                        example: cricket
                      category:
                        type: object
                        properties:
                          id:
                            type: string
                            description: Category or tournament ID
                          name:
                            type: string
                            description: Category or tournament name
                          season:
                            type: string
                            description: Season of the tournament
                            nullable: true
                          team:
                            type: array
                            items:
                              type: object
                              properties:
                                id:
                                  type: string
                                  description: Team ID
                                name:
                                  type: string
                                  description: Team name
                                player:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      id:
                                        type: string
                                        description: Player name string or unique identifier
                                      name:
                                        type: string
                                        description: >-
                                          Player ID string (numeric or unique
                                          string)
                                      odi:
                                        type: string
                                        description: ODI participation status
                                        example: 'False'
                                      role:
                                        type: string
                                        description: 'Player role (e.g., Batsman, Bowler)'
                                        nullable: true
                                      t20:
                                        type: string
                                        description: T20 participation status
                                        example: 'False'
                                      test:
                                        type: string
                                        description: Test match participation status
                                        example: 'True'
                                    required:
                                      - id
                                      - name
                                      - odi
                                      - role
                                      - t20
                                      - test
                              required:
                                - id
                                - name
                                - player
                        required:
                          - id
                          - name
                          - team
                    required:
                      - sport
                      - category
                required:
                  - squads
              example:
                squads:
                  sport: cricket
                  category:
                    id: '1022'
                    name: Plunket Shield
                    season: 2025-26
                    team:
                      - id: '3913'
                        name: Central Districts
                        player:
                          - id: Will Young
                            name: '547749'
                            odi: 'False'
                            role: Batsman
                            t20: 'False'
                            test: 'True'
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: Unauthorized - invalid or missing access_key or invalid sport
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: Resource Not Found - could not find resource
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  /cricket/odds:
    get:
      summary: Get Pre-Match Odds
      description: >
        Returns pre-match cricket odds including detailed match, teams, odds
        types, bookmakers, and individual odds. This endpoint data is updated
        every 1 hour.
      tags:
        - "\U0001F3CF Cricket (V1)"
      servers:
        - url: 'https://statpal.io/api/v1/'
          description: Production (v1)
      security:
        - ApiKeyAuth: []
      x-update-rate: 3600
      responses:
        '200':
          description: >-
            Successful response with cricket pre-match odds for matches
            including bookmakers and odds types
          content:
            application/json:
              schema:
                type: object
                properties:
                  odds:
                    type: object
                    properties:
                      sport:
                        type: string
                        description: Sport name
                        example: cricket
                      ts:
                        type: string
                        description: Timestamp when data was last updated
                        example: '1765530201'
                      category:
                        type: array
                        items:
                          type: object
                          properties:
                            gid:
                              type: string
                              description: Group ID
                            id:
                              type: string
                              description: Category ID
                            name:
                              type: string
                              description: Category name
                            matches:
                              type: object
                              properties:
                                match:
                                  oneOf:
                                    - type: object
                                      properties:
                                        date:
                                          type: string
                                          description: Date of the match
                                          example: 12.12.2025
                                        id:
                                          type: string
                                          description: Match ID
                                        match_num:
                                          type: string
                                          description: Match number or identifier
                                          nullable: true
                                        time:
                                          type: string
                                          description: Scheduled or start time
                                          example: '21:30'
                                        type:
                                          type: string
                                          description: 'Type of match (e.g., Test, ODI, T20)'
                                          example: Test
                                        home:
                                          type: object
                                          properties:
                                            id:
                                              type: string
                                              description: Team ID
                                            name:
                                              type: string
                                              description: Team name
                                          required:
                                            - id
                                            - name
                                        away:
                                          $ref: >-
                                            #/paths/~1cricket~1odds/get/responses/200/content/application~1json/schema/properties/odds/properties/category/items/properties/matches/properties/match/oneOf/0/properties/home
                                        matchinfo:
                                          type: object
                                          properties:
                                            info:
                                              type: array
                                              items:
                                                type: object
                                                properties:
                                                  id:
                                                    type: string
                                                    description: Info ID
                                                    nullable: true
                                                  name:
                                                    type: string
                                                    description: Information field name
                                                  value:
                                                    type: string
                                                    description: Information field value
                                                    nullable: true
                                                required:
                                                  - name
                                          required:
                                            - info
                                        odds:
                                          type: object
                                          properties:
                                            ts:
                                              type: string
                                              description: Timestamp of odds data
                                              example: '1765504770'
                                            type:
                                              oneOf:
                                                - type: object
                                                  properties:
                                                    id:
                                                      type: string
                                                      description: Odds type ID
                                                    stop:
                                                      type: string
                                                      description: Stop indicator (True or False)
                                                    value:
                                                      type: string
                                                      description: >-
                                                        Odds type description (e.g., Home/Away,
                                                        3Way Result)
                                                    bookmaker:
                                                      oneOf:
                                                        - type: object
                                                          properties:
                                                            id:
                                                              type: string
                                                              description: Bookmaker ID
                                                            name:
                                                              type: string
                                                              description: Bookmaker name
                                                            ts:
                                                              type: string
                                                              description: Timestamp for this bookmaker's odds
                                                              nullable: true
                                                            odd:
                                                              oneOf:
                                                                - type: object
                                                                  properties:
                                                                    id:
                                                                      type: string
                                                                      description: Odd ID
                                                                    name:
                                                                      type: string
                                                                      description: 'Odd name (e.g., Home, Away, Draw)'
                                                                    us:
                                                                      type: string
                                                                      description: US odds format
                                                                      nullable: true
                                                                    value:
                                                                      type: string
                                                                      description: Decimal odds value
                                                                  required:
                                                                    - id
                                                                    - name
                                                                    - value
                                                                - type: array
                                                                  items:
                                                                    $ref: >-
                                                                      #/paths/~1cricket~1odds/get/responses/200/content/application~1json/schema/properties/odds/properties/category/items/properties/matches/properties/match/oneOf/0/properties/odds/properties/type/oneOf/0/properties/bookmaker/oneOf/0/properties/odd/oneOf/0
                                                          required:
                                                            - id
                                                            - name
                                                            - odd
                                                        - type: array
                                                          items:
                                                            $ref: >-
                                                              #/paths/~1cricket~1odds/get/responses/200/content/application~1json/schema/properties/odds/properties/category/items/properties/matches/properties/match/oneOf/0/properties/odds/properties/type/oneOf/0/properties/bookmaker/oneOf/0
                                                  required:
                                                    - id
                                                    - stop
                                                    - value
                                                    - bookmaker
                                                - type: array
                                                  items:
                                                    $ref: >-
                                                      #/paths/~1cricket~1odds/get/responses/200/content/application~1json/schema/properties/odds/properties/category/items/properties/matches/properties/match/oneOf/0/properties/odds/properties/type/oneOf/0
                                          required:
                                            - ts
                                            - type
                                      required:
                                        - date
                                        - id
                                        - time
                                        - type
                                        - home
                                        - away
                                        - odds
                                    - type: array
                                      items:
                                        $ref: >-
                                          #/paths/~1cricket~1odds/get/responses/200/content/application~1json/schema/properties/odds/properties/category/items/properties/matches/properties/match/oneOf/0
                              required:
                                - match
                          required:
                            - gid
                            - id
                            - name
                            - matches
                    required:
                      - sport
                      - ts
                      - category
                required:
                  - odds
              example:
                odds:
                  sport: cricket
                  ts: '1765530201'
                  category:
                    - gid: '1022'
                      id: '1022'
                      name: Plunket Shield
                      matches:
                        match:
                          date: 12.12.2025
                          id: '13072006686'
                          match_num: 10th Match
                          time: '21:30'
                          type: Test
                          home:
                            id: '3978'
                            name: Northern Districts
                          away:
                            id: '3977'
                            name: Wellington
                          matchinfo:
                            info:
                              - name: Toss
                                value: ''
                              - id: ''
                                name: Man Of Match
                                value: ''
                              - name: Referee
                                value: ''
                              - name: Venue
                                value: 'Cobham Oval, Whangarei'
                              - name: City
                                value: Whangarei
                              - name: Country
                                value: New Zealand
                          odds:
                            ts: '1765504770'
                            type:
                              id: '1501'
                              stop: 'False'
                              value: Home/Away
                              bookmaker:
                                - id: '1516'
                                  name: Marathon
                                  ts: '1765495008'
                                  odd:
                                    - id: '910451117215671567'
                                      name: Home
                                      us: '-149'
                                      value: '1.67'
                                    - id: '910451117215701570'
                                      name: Away
                                      us: '107'
                                      value: '2.07'
                                - id: '1555'
                                  name: 188bet
                                  ts: '1765492439'
                                  odd:
                                    - id: '910451156215671567'
                                      name: Home
                                      us: '-139'
                                      value: '1.72'
                                    - id: '910451156215701570'
                                      name: Away
                                      us: '109'
                                      value: '2.09'
                                - id: '1604'
                                  name: 1xBet
                                  ts: '1765504770'
                                  odd:
                                    - id: '9104511105215671567'
                                      name: Home
                                      us: '-143'
                                      value: '1.70'
                                    - id: '9104511105215701570'
                                      name: Away
                                      us: '117'
                                      value: '2.17'
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: Unauthorized - invalid or missing access_key or invalid sport
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: Resource Not Found - could not find resource
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  /f1/livescores:
    get:
      summary: Get Live Scores
      description: >
        Returns live Formula 1 scores with detailed tournament, race, practice,
        qualification, and results information. This endpoint data is updated
        every 15 seconds.
      tags:
        - "\U0001F3CE Formula 1 (V1)"
      servers:
        - url: 'https://statpal.io/api/v1/'
          description: Production (v1)
      security:
        - ApiKeyAuth: []
      x-update-rate: 15
      responses:
        '200':
          description: >-
            Successful response with Formula 1 live scores including tournament,
            race results, and practice sessions
          content:
            application/json:
              schema:
                type: object
                properties:
                  livescore:
                    type: object
                    properties:
                      sport:
                        type: string
                        description: Sport name
                        example: formula 1
                      tournament:
                        type: object
                        properties:
                          id:
                            type: string
                            description: Tournament ID
                          name:
                            type: string
                            description: Tournament name
                          race:
                            type: object
                            properties:
                              date:
                                type: string
                                description: Race date
                                example: 07.12.2025
                              distance:
                                type: string
                                description: Race distance (km or miles)
                              fastest_lap:
                                type: string
                                description: Fastest lap time
                              fastest_lap_id:
                                type: string
                                description: Fastest lap driver ID
                              laps_running:
                                type: string
                                description: >-
                                  Number of laps currently running or empty if
                                  finished
                                nullable: true
                              status:
                                type: string
                                description: 'Race status (e.g., Finished, In Progress)'
                              time:
                                type: string
                                description: Race start/scheduled time
                              total_laps:
                                type: string
                                description: Total laps for the race
                              track:
                                type: string
                                description: Track name
                              results:
                                type: object
                                properties:
                                  driver:
                                    type: array
                                    items:
                                      type: object
                                      properties:
                                        driver_id:
                                          type: string
                                          description: Driver ID
                                        grid:
                                          type: string
                                          description: Grid position
                                          nullable: true
                                        laps:
                                          type: string
                                          description: Laps completed
                                        name:
                                          type: string
                                          description: Driver name
                                        pit:
                                          type: string
                                          description: Pit stops count
                                          nullable: true
                                        pos:
                                          type: string
                                          description: Finishing position
                                        team:
                                          type: string
                                          description: Team name
                                        team_id:
                                          type: string
                                          description: Team ID
                                        time:
                                          type: string
                                          description: Time or gap from leader
                                          nullable: true
                                      required:
                                        - driver_id
                                        - laps
                                        - name
                                        - pos
                                        - team
                                        - team_id
                                required:
                                  - driver
                            required:
                              - date
                              - status
                              - time
                              - total_laps
                              - track
                              - results
                          qualification:
                            type: array
                            items:
                              $ref: >-
                                #/paths/~1f1~1livescores/get/responses/200/content/application~1json/schema/properties/livescore/properties/tournament/properties/last_practice
                          last_practice:
                            type: object
                            properties:
                              date:
                                type: string
                                description: Session date
                              number:
                                type: string
                                description: Session number
                                nullable: true
                              stage:
                                type: string
                                description: 'Session stage (e.g., F for final)'
                                nullable: true
                              status:
                                type: string
                                description: Session status
                              time:
                                type: string
                                description: Session time
                              track:
                                type: string
                                description: Track name
                              results:
                                $ref: >-
                                  #/paths/~1f1~1livescores/get/responses/200/content/application~1json/schema/properties/livescore/properties/tournament/properties/race/properties/results
                            required:
                              - date
                              - status
                              - time
                              - track
                              - results
                          second_practice:
                            $ref: >-
                              #/paths/~1f1~1livescores/get/responses/200/content/application~1json/schema/properties/livescore/properties/tournament/properties/last_practice
                          first_practice:
                            $ref: >-
                              #/paths/~1f1~1livescores/get/responses/200/content/application~1json/schema/properties/livescore/properties/tournament/properties/last_practice
                        required:
                          - id
                          - name
                          - race
                          - qualification
                          - last_practice
                          - second_practice
                          - first_practice
                    required:
                      - sport
                      - tournament
                required:
                  - livescore
              example:
                livescore:
                  sport: formula 1
                  tournament:
                    id: '821271'
                    name: Abu Dhabi Grand Prix
                    race:
                      date: 07.12.2025
                      distance: '307.6'
                      fastest_lap: '1:26.725'
                      fastest_lap_id: '3009'
                      laps_running: ''
                      status: Finished
                      time: '13:00'
                      total_laps: '55'
                      track: Yas Marina Circuit
                      results:
                        driver:
                          - driver_id: '3790'
                            grid: '1'
                            laps: '58'
                            name: Max Verstappen (NED)
                            pit: '1'
                            pos: '1'
                            team: Red Bull
                            team_id: '1019'
                            time: '1:26:07.469'
                          - driver_id: '5515'
                            grid: '3'
                            laps: '58'
                            name: Oscar Piastri (AUS)
                            pit: '1'
                            pos: '2'
                            team: McLaren
                            team_id: '1024'
                            time: '+12.594'
                    qualification:
                      - date: 06.12.2025
                        number: '1'
                        stage: F
                        status: Finished
                        time: '14:00'
                        track: Yas Marina Circuit
                        results:
                          driver:
                            - driver_id: '3790'
                              grid: ''
                              laps: '18'
                              name: Max Verstappen (NED)
                              pit: ''
                              pos: '1'
                              team: Red Bull
                              team_id: '1019'
                              time: '1:22.207'
                    last_practice:
                      date: 06.12.2025
                      status: Finished
                      time: '10:30'
                      track: Yas Marina Circuit
                      results:
                        driver:
                          - driver_id: '4523'
                            grid: ''
                            laps: '14'
                            name: George Russel (ENG)
                            pit: ''
                            pos: '1'
                            team: Mercedes
                            team_id: '1021'
                            time: '1:23.334'
                    second_practice:
                      date: 05.12.2025
                      status: Finished
                      time: '13:00'
                      track: Yas Marina Circuit
                      results:
                        driver:
                          - driver_id: '4513'
                            grid: ''
                            laps: '28'
                            name: Lando Norris (GBR)
                            pit: ''
                            pos: '1'
                            team: McLaren
                            team_id: '1024'
                            time: '1:23.083'
                    first_practice:
                      date: 05.12.2025
                      status: Finished
                      time: '09:30'
                      track: Yas Marina Circuit
                      results:
                        driver:
                          - driver_id: '4513'
                            grid: ''
                            laps: '27'
                            name: Lando Norris (GBR)
                            pit: ''
                            pos: '1'
                            team: McLaren
                            team_id: '1024'
                            time: '1:24.485'
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: Unauthorized - invalid or missing access_key or invalid sport
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: Resource Not Found - could not find resource
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  /f1/schedule:
    get:
      summary: Get Season Schedule
      description: >
        Returns the Formula 1 season schedule with detailed tournament, race,
        practice, qualification, and session information. This endpoint data is
        updated every 30 minutes.
      tags:
        - "\U0001F3CE Formula 1 (V1)"
      servers:
        - url: 'https://statpal.io/api/v1/'
          description: Production (v1)
      security:
        - ApiKeyAuth: []
      x-update-rate: 1800
      responses:
        '200':
          description: >-
            Successful response with the Formula 1 season schedule including
            tournaments and session details
          content:
            application/json:
              schema:
                type: object
                properties:
                  fixtures:
                    type: object
                    properties:
                      sport:
                        type: string
                        description: Sport name
                        example: formula 1
                      tournament:
                        type: array
                        items:
                          type: object
                          properties:
                            id:
                              type: string
                              description: Tournament ID
                            name:
                              type: string
                              description: Tournament name
                            race:
                              type: object
                              properties:
                                city:
                                  type: string
                                  description: City where the session takes place
                                  nullable: true
                                date:
                                  type: string
                                  description: Session date
                                distance:
                                  type: string
                                  description: Session distance (if applicable)
                                  nullable: true
                                laps_running:
                                  type: string
                                  description: >-
                                    Number of laps currently running or empty
                                    string
                                  nullable: true
                                status:
                                  type: string
                                  description: 'Session status (e.g., Not Started, Finished)'
                                time:
                                  type: string
                                  description: Scheduled session time
                                total_laps:
                                  type: string
                                  description: Total laps for the race (if applicable)
                                  nullable: true
                                track:
                                  type: string
                                  description: Track name
                                track_id:
                                  type: string
                                  description: Track ID
                                  nullable: true
                                results:
                                  nullable: true
                                  description: Session results (if available)
                                  type: object
                              required:
                                - date
                                - status
                                - time
                                - track
                            qualification:
                              oneOf:
                                - $ref: >-
                                    #/paths/~1f1~1schedule/get/responses/200/content/application~1json/schema/properties/fixtures/properties/tournament/items/properties/race
                                - type: array
                                  items:
                                    $ref: >-
                                      #/paths/~1f1~1schedule/get/responses/200/content/application~1json/schema/properties/fixtures/properties/tournament/items/properties/race
                            last_practice:
                              $ref: >-
                                #/paths/~1f1~1schedule/get/responses/200/content/application~1json/schema/properties/fixtures/properties/tournament/items/properties/race
                            second_practice:
                              $ref: >-
                                #/paths/~1f1~1schedule/get/responses/200/content/application~1json/schema/properties/fixtures/properties/tournament/items/properties/race
                            first_practice:
                              $ref: >-
                                #/paths/~1f1~1schedule/get/responses/200/content/application~1json/schema/properties/fixtures/properties/tournament/items/properties/race
                          required:
                            - id
                            - name
                            - race
                            - qualification
                            - last_practice
                            - second_practice
                            - first_practice
                    required:
                      - sport
                      - tournament
                required:
                  - fixtures
              example:
                fixtures:
                  sport: formula 1
                  tournament:
                    - id: '821248'
                      name: Australian Grand Prix
                      race:
                        city: Melbourne
                        date: 16.03.2025
                        distance: '307.6'
                        laps_running: ''
                        status: Not Started
                        time: '04:00'
                        total_laps: '58'
                        track: Albert Park
                        track_id: '2622'
                        results: null
                      qualification:
                        city: Melbourne
                        date: 15.03.2025
                        status: Not Started
                        time: '05:00'
                        track: Albert Park
                        track_id: '2622'
                        results: null
                      last_practice:
                        city: Melbourne
                        date: 15.03.2025
                        status: Not Started
                        time: '01:30'
                        track: Albert Park
                        track_id: '2622'
                        results: null
                      second_practice:
                        city: Melbourne
                        date: 14.03.2025
                        status: Not Started
                        time: '05:00'
                        track: Albert Park
                        track_id: '2622'
                        results: null
                      first_practice:
                        city: Melbourne
                        date: 14.03.2025
                        status: Not Started
                        time: '01:30'
                        track: Albert Park
                        track_id: '2622'
                        results: null
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: Unauthorized - invalid or missing access_key or invalid sport
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: Resource Not Found - could not find resource
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  /f1/results:
    get:
      summary: Get Season Results
      description: >
        Returns Formula 1 season results with detailed tournament, race,
        qualification, and practice session information. This endpoint data is
        updated every 30 minutes.
      tags:
        - "\U0001F3CE Formula 1 (V1)"
      servers:
        - url: 'https://statpal.io/api/v1/'
          description: Production (v1)
      security:
        - ApiKeyAuth: []
      x-update-rate: 1800
      responses:
        '200':
          description: >-
            Successful response with Formula 1 season results including
            tournaments, races, and sessions
          content:
            application/json:
              schema:
                type: object
                properties:
                  results:
                    type: object
                    properties:
                      sport:
                        type: string
                        description: Sport name
                        example: formula 1
                      tournament:
                        type: array
                        items:
                          type: object
                          properties:
                            id:
                              type: string
                              description: Tournament ID
                            name:
                              type: string
                              description: Tournament name
                            race:
                              type: object
                              properties:
                                date:
                                  type: string
                                  description: Race date
                                  example: 16.03.2025
                                distance:
                                  type: string
                                  description: Race distance (km or miles)
                                fastest_lap:
                                  type: string
                                  description: Fastest lap time
                                  nullable: true
                                fastest_lap_id:
                                  type: string
                                  description: Fastest lap driver ID
                                  nullable: true
                                laps_running:
                                  type: string
                                  description: >-
                                    Number of laps currently running or empty if
                                    finished
                                  nullable: true
                                status:
                                  type: string
                                  description: 'Race status (e.g., Finished, In Progress)'
                                time:
                                  type: string
                                  description: Race start/scheduled time
                                total_laps:
                                  type: string
                                  description: Total laps for the race
                                track:
                                  type: string
                                  description: Track name
                                results:
                                  type: object
                                  properties:
                                    driver:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          driver_id:
                                            type: string
                                            description: Driver ID
                                          grid:
                                            type: string
                                            description: Grid position
                                            nullable: true
                                          laps:
                                            type: string
                                            description: Laps completed
                                          name:
                                            type: string
                                            description: Driver name
                                          pit:
                                            type: string
                                            description: Pit stops count
                                            nullable: true
                                          pos:
                                            type: string
                                            description: Finishing position
                                          team:
                                            type: string
                                            description: Team name
                                          team_id:
                                            type: string
                                            description: Team ID
                                          time:
                                            type: string
                                            description: >-
                                              Time or gap from leader or status (e.g.,
                                              DNF, DSQ)
                                            nullable: true
                                        required:
                                          - driver_id
                                          - laps
                                          - name
                                          - pos
                                          - team
                                          - team_id
                                  required:
                                    - driver
                              required:
                                - date
                                - status
                                - time
                                - total_laps
                                - track
                                - results
                            qualification:
                              type: array
                              items:
                                $ref: >-
                                  #/paths/~1f1~1results/get/responses/200/content/application~1json/schema/properties/results/properties/tournament/items/properties/last_practice
                            last_practice:
                              type: object
                              properties:
                                date:
                                  type: string
                                  description: Session date
                                number:
                                  type: string
                                  description: Session number
                                  nullable: true
                                stage:
                                  type: string
                                  description: 'Session stage (e.g., 1, 2, 3)'
                                  nullable: true
                                status:
                                  type: string
                                  description: Session status
                                time:
                                  type: string
                                  description: Session time
                                track:
                                  type: string
                                  description: Track name
                                results:
                                  $ref: >-
                                    #/paths/~1f1~1results/get/responses/200/content/application~1json/schema/properties/results/properties/tournament/items/properties/race/properties/results
                              required:
                                - date
                                - status
                                - time
                                - track
                                - results
                            second_practice:
                              $ref: >-
                                #/paths/~1f1~1results/get/responses/200/content/application~1json/schema/properties/results/properties/tournament/items/properties/last_practice
                            first_practice:
                              $ref: >-
                                #/paths/~1f1~1results/get/responses/200/content/application~1json/schema/properties/results/properties/tournament/items/properties/last_practice
                          required:
                            - id
                            - name
                            - race
                            - qualification
                            - last_practice
                            - second_practice
                            - first_practice
                    required:
                      - sport
                      - tournament
                required:
                  - results
              example:
                results:
                  sport: formula 1
                  tournament:
                    - id: '821248'
                      name: Australian Grand Prix
                      race:
                        date: 16.03.2025
                        distance: '307.6'
                        fastest_lap: '1:22.167'
                        fastest_lap_id: '3014'
                        laps_running: ''
                        status: Finished
                        time: '04:00'
                        total_laps: '55'
                        track: Albert Park Circuit
                        results:
                          driver:
                            - driver_id: '4513'
                              grid: '1'
                              laps: '57'
                              name: Lando Norris (GBR)
                              pit: '5'
                              pos: '1'
                              team: McLaren
                              team_id: '1024'
                              time: '1:42:06.304'
                      qualification:
                        - date: 15.03.2025
                          number: '1'
                          stage: ''
                          status: Finished
                          time: '05:00'
                          track: Albert Park Circuit
                          results:
                            driver:
                              - driver_id: '4513'
                                grid: ''
                                laps: '20'
                                name: Lando Norris (GBR)
                                pit: ''
                                pos: '1'
                                team: McLaren
                                team_id: '1024'
                                time: '1:15.096'
                      last_practice:
                        date: 15.03.2025
                        status: Finished
                        time: '01:30'
                        track: Albert Park Circuit
                        results:
                          driver:
                            - driver_id: '5515'
                              grid: ''
                              laps: '15'
                              name: Oscar Piastri (AUS)
                              pit: ''
                              pos: '1'
                              team: McLaren
                              team_id: '1024'
                              time: '1:15.921'
                      second_practice:
                        date: 14.03.2025
                        status: Finished
                        time: '05:00'
                        track: Albert Park Circuit
                        results:
                          driver:
                            - driver_id: '4508'
                              grid: ''
                              laps: '32'
                              name: Charles Leclerc (MON)
                              pit: ''
                              pos: '1'
                              team: Ferrari
                              team_id: '1011'
                              time: '1:16.439'
                      first_practice:
                        date: 14.03.2025
                        status: Finished
                        time: '01:30'
                        track: Albert Park Circuit
                        results:
                          driver:
                            - driver_id: '4513'
                              grid: ''
                              laps: '21'
                              name: Lando Norris (GBR)
                              pit: ''
                              pos: '1'
                              team: McLaren
                              team_id: '1024'
                              time: '1:17.252'
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: Unauthorized - invalid or missing access_key or invalid sport
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: Resource Not Found - could not find resource
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  /f1/team-standings:
    get:
      summary: Get Team Standings
      description: >
        Returns Formula 1 team standings with detailed points and positions for
        each team. This endpoint data is updated every 1 day.
      tags:
        - "\U0001F3CE Formula 1 (V1)"
      servers:
        - url: 'https://statpal.io/api/v1/'
          description: Production (v1)
      security:
        - ApiKeyAuth: []
      x-update-rate: 84600
      responses:
        '200':
          description: >-
            Successful response with Formula 1 team standings including points
            and positions
          content:
            application/json:
              schema:
                type: object
                properties:
                  standings:
                    type: object
                    properties:
                      sport:
                        type: string
                        description: Sport name
                        example: formula 1
                      teams:
                        type: object
                        properties:
                          team:
                            type: array
                            items:
                              type: object
                              properties:
                                id:
                                  type: string
                                  description: Team ID
                                name:
                                  type: string
                                  description: Team name
                                points:
                                  type: string
                                  description: Team points
                                post:
                                  type: string
                                  description: Team position in the standings
                              required:
                                - id
                                - name
                                - points
                                - post
                        required:
                          - team
                    required:
                      - sport
                      - teams
                required:
                  - standings
              example:
                standings:
                  sport: formula 1
                  teams:
                    team:
                      - id: '2523'
                        name: McLaren
                        points: '833'
                        post: '1'
                      - id: '2520'
                        name: Mercedes
                        points: '469'
                        post: '2'
                      - id: '2518'
                        name: Red Bull
                        points: '451'
                        post: '3'
                      - id: '2510'
                        name: Ferrari
                        points: '398'
                        post: '4'
                      - id: '2509'
                        name: Williams
                        points: '137'
                        post: '5'
                      - id: '3530'
                        name: RacingBulls
                        points: '92'
                        post: '6'
                      - id: '2528'
                        name: Aston Martin
                        points: '89'
                        post: '7'
                      - id: '2533'
                        name: Haas
                        points: '79'
                        post: '8'
                      - id: '2525'
                        name: Kick Sauber
                        points: '70'
                        post: '9'
                      - id: '2515'
                        name: Alpine
                        points: '22'
                        post: '10'
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: Unauthorized - invalid or missing access_key or invalid sport
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: Resource Not Found - could not find resource
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  /f1/driver-standings:
    get:
      summary: Get Driver Standings
      description: >
        Returns Formula 1 driver standings with detailed points, position, and
        team information. This endpoint data is updated every 1 day.
      tags:
        - "\U0001F3CE Formula 1 (V1)"
      servers:
        - url: 'https://statpal.io/api/v1/'
          description: Production (v1)
      security:
        - ApiKeyAuth: []
      x-update-rate: 84600
      responses:
        '200':
          description: >-
            Successful response with Formula 1 driver standings including points
            and positions
          content:
            application/json:
              schema:
                type: object
                properties:
                  standings:
                    type: object
                    properties:
                      sport:
                        type: string
                        description: Sport name
                        example: formula 1
                      drivers:
                        type: object
                        properties:
                          driver:
                            type: array
                            items:
                              type: object
                              properties:
                                driver_id:
                                  type: string
                                  description: Driver ID
                                name:
                                  type: string
                                  description: Driver name with nationality
                                points:
                                  type: string
                                  description: Total points scored by the driver
                                pos:
                                  type: string
                                  description: Position in the driver standings
                                team:
                                  type: string
                                  description: Team name
                                team_id:
                                  type: string
                                  description: Team ID
                              required:
                                - driver_id
                                - name
                                - points
                                - pos
                                - team
                                - team_id
                        required:
                          - driver
                    required:
                      - sport
                      - drivers
                required:
                  - standings
              example:
                standings:
                  sport: formula 1
                  drivers:
                    driver:
                      - driver_id: '4513'
                        name: Lando Norris (GBR)
                        points: '423'
                        pos: '1'
                        team: McLaren
                        team_id: '1024'
                      - driver_id: '3790'
                        name: Max Verstappen (NED)
                        points: '421'
                        pos: '2'
                        team: Red Bull
                        team_id: '1019'
                      - driver_id: '5515'
                        name: Oscar Piastri (AUS)
                        points: '410'
                        pos: '3'
                        team: McLaren
                        team_id: '1024'
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: Unauthorized - invalid or missing access_key or invalid sport
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: Resource Not Found - could not find resource
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  /handball/livescores:
    get:
      summary: Get Live Scores
      description: >
        Returns live Handball scores with detailed tournament, league, and
        matches information. This endpoint data is updated every 15 seconds.
      tags:
        - "\U0001F93E Handball (V1)"
      servers:
        - url: 'https://statpal.io/api/v1/'
          description: Production (v1)
      security:
        - ApiKeyAuth: []
      x-update-rate: 15
      responses:
        '200':
          description: >-
            Successful response with Handball live scores including tournament,
            league, and match details
          content:
            application/json:
              schema:
                type: object
                properties:
                  livescores:
                    type: object
                    properties:
                      sport:
                        type: string
                        description: Sport name
                        example: handball
                      tournament:
                        type: array
                        items:
                          type: object
                          properties:
                            country:
                              type: string
                              description: Country name of the tournament
                            id:
                              type: string
                              description: Tournament ID
                            league:
                              type: string
                              description: League name
                            match:
                              type: array
                              items:
                                type: object
                                properties:
                                  date:
                                    type: string
                                    description: Match date
                                    example: 12.12.2025
                                  id:
                                    type: string
                                    description: Match ID
                                  status:
                                    type: string
                                    description: >-
                                      Match status (e.g., Not Started, Half
                                      Time, 1st Half)
                                  time:
                                    type: string
                                    description: Match start or scheduled time
                                  home:
                                    type: object
                                    properties:
                                      id:
                                        type: string
                                        description: Team ID
                                      name:
                                        type: string
                                        description: Team name
                                      t1:
                                        type: string
                                        description: Score in first half or first period
                                        nullable: true
                                      t2:
                                        type: string
                                        description: Score in second half or second period
                                        nullable: true
                                      totalscore:
                                        type: string
                                        description: Total score for the team
                                        nullable: true
                                    required:
                                      - id
                                      - name
                                  away:
                                    $ref: >-
                                      #/paths/~1handball~1livescores/get/responses/200/content/application~1json/schema/properties/livescores/properties/tournament/items/properties/match/items/properties/home
                                required:
                                  - date
                                  - id
                                  - status
                                  - time
                                  - home
                                  - away
                          required:
                            - country
                            - id
                            - league
                            - match
                    required:
                      - sport
                      - tournament
                required:
                  - livescores
              example:
                livescores:
                  sport: handball
                  tournament:
                    - country: finland
                      id: '5037'
                      league: 'Finland: Aktialiiga'
                      match:
                        - date: 12.12.2025
                          id: '368866'
                          status: Half Time
                          time: '17:00'
                          home:
                            id: '3060'
                            name: AIFK
                            t1: '13'
                            t2: ''
                            totalscore: '13'
                          away:
                            id: '15804'
                            name: EIF
                            t1: '13'
                            t2: ''
                            totalscore: '13'
                        - date: 12.12.2025
                          id: '368867'
                          status: 1st Half
                          time: '17:15'
                          home:
                            id: '2927'
                            name: HIFK
                            t1: '10'
                            t2: ''
                            totalscore: '10'
                          away:
                            id: '3059'
                            name: BK-46
                            t1: '7'
                            t2: ''
                            totalscore: '9'
                    - country: slovakia
                      id: '2509'
                      league: 'Slovakia: Extraliga'
                      match:
                        - date: 12.12.2025
                          id: '373440'
                          status: Not Started
                          time: '17:30'
                          home:
                            id: '15395'
                            name: Bojnice
                            t1: ''
                            t2: ''
                            totalscore: ''
                          away:
                            id: '15396'
                            name: Zahoraci
                            t1: ''
                            t2: ''
                            totalscore: ''
                        - date: 12.12.2025
                          id: '373441'
                          status: Not Started
                          time: '18:00'
                          home:
                            id: '2567'
                            name: Hlohovec
                            t1: ''
                            t2: ''
                            totalscore: ''
                          away:
                            id: '2616'
                            name: SKP Bratislava
                            t1: ''
                            t2: ''
                            totalscore: ''
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: Unauthorized - invalid or missing access_key or invalid sport
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: Resource Not Found - could not find resource
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  '/handball/daily/{day_offset_token}':
    get:
      summary: Get Matches Recent / Upcoming
      description: >
        Returns recent and upcoming Handball matches with detailed tournament,
        league, and match information for a specific day offset. This endpoint
        data is updated every 12 hours.
      tags:
        - "\U0001F93E Handball (V1)"
      servers:
        - url: 'https://statpal.io/api/v1/'
          description: Production (v1)
      security:
        - ApiKeyAuth: []
      parameters:
        - name: day_offset_token
          in: path
          description: >
            Day offset token indicating the date for matches relative to today.
            Accepted values are from d-7 to d7 (e.g. d-1, d1, d2).
          required: true
          schema:
            type: string
            enum:
              - d-1
              - d-2
              - d-3
              - d-4
              - d-5
              - d-6
              - d-7
              - d1
              - d2
              - d3
              - d4
              - d5
              - d6
              - d7
      x-update-rate: 43200
      responses:
        '200':
          description: >-
            Successful response with recent or upcoming Handball matches
            including tournament, league, and match details
          content:
            application/json:
              schema:
                type: object
                properties:
                  livescores:
                    type: object
                    properties:
                      sport:
                        type: string
                        description: Sport name
                        example: handball
                      tournament:
                        type: array
                        items:
                          type: object
                          properties:
                            country:
                              type: string
                              description: Country name of the tournament
                            id:
                              type: string
                              description: Tournament ID
                            league:
                              type: string
                              description: League name
                            match:
                              oneOf:
                                - type: object
                                  properties:
                                    date:
                                      type: string
                                      description: Match date
                                      example: 11.12.2025
                                    id:
                                      type: string
                                      description: Match ID
                                    status:
                                      type: string
                                      description: >-
                                        Match status (e.g., Finished, Not
                                        Started)
                                    time:
                                      type: string
                                      description: Match start or scheduled time
                                    home:
                                      type: object
                                      properties:
                                        id:
                                          type: string
                                          description: Team ID
                                        name:
                                          type: string
                                          description: Team name
                                        t1:
                                          type: string
                                          nullable: true
                                          description: Score in first half or first period
                                        t2:
                                          type: string
                                          nullable: true
                                          description: Score in second half or second period
                                        totalscore:
                                          type: string
                                          nullable: true
                                          description: Total score for the team
                                      required:
                                        - id
                                        - name
                                    away:
                                      $ref: >-
                                        #/paths/~1handball~1daily~1%7Bday_offset_token%7D/get/responses/200/content/application~1json/schema/properties/livescores/properties/tournament/items/properties/match/oneOf/0/properties/home
                                  required:
                                    - date
                                    - id
                                    - status
                                    - time
                                    - home
                                    - away
                                - type: array
                                  items:
                                    $ref: >-
                                      #/paths/~1handball~1daily~1%7Bday_offset_token%7D/get/responses/200/content/application~1json/schema/properties/livescores/properties/tournament/items/properties/match/oneOf/0
                          required:
                            - country
                            - id
                            - league
                            - match
                    required:
                      - sport
                      - tournament
                required:
                  - livescores
              example:
                livescores:
                  sport: handball
                  tournament:
                    - country: denmark
                      id: '4365'
                      league: 'Denmark: Herre Handbold Ligaen'
                      match:
                        date: 11.12.2025
                        id: '369126'
                        status: Finished
                        time: '19:00'
                        home:
                          id: '16036'
                          name: Skanderborg AGF
                          t1: '15'
                          t2: '22'
                          totalscore: '37'
                        away:
                          id: '2683'
                          name: Fredericia
                          t1: '15'
                          t2: '15'
                          totalscore: '30'
                    - country: germany
                      id: '2506'
                      league: 'Germany: Bundesliga'
                      match:
                        - date: 11.12.2025
                          id: '375098'
                          status: Finished
                          time: '18:00'
                          home:
                            id: '2953'
                            name: Bergischer
                            t1: '14'
                            t2: '13'
                            totalscore: '27'
                          away:
                            id: '4064'
                            name: Eisenach
                            t1: '11'
                            t2: '15'
                            totalscore: '26'
                        - date: 11.12.2025
                          id: '375099'
                          status: Finished
                          time: '18:00'
                          home:
                            id: '2519'
                            name: Flensburg-H.
                            t1: '22'
                            t2: '18'
                            totalscore: '40'
                          away:
                            id: '12306'
                            name: Fuchse Berlin
                            t1: '22'
                            t2: '17'
                            totalscore: '39'
                        - date: 11.12.2025
                          id: '375105'
                          status: Finished
                          time: '19:30'
                          home:
                            id: '4708'
                            name: Rhein-Neckar
                            t1: '19'
                            t2: '15'
                            totalscore: '34'
                          away:
                            id: '2563'
                            name: Gummersbach
                            t1: '18'
                            t2: '14'
                            totalscore: '32'
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: Unauthorized - invalid or missing access_key or invalid sport
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: Resource Not Found - could not find resource
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  '/handball/season-schedule/{league_id}':
    get:
      summary: Get Matches By League
      description: >
        Returns the season schedule of Handball matches grouped by weeks with
        detailed tournament, league, and matches information. This endpoint data
        is updated every 1 hour.
      tags:
        - "\U0001F93E Handball (V1)"
      servers:
        - url: 'https://statpal.io/api/v1/'
          description: Production (v1)
      security:
        - ApiKeyAuth: []
      x-update-rate: 3600
      parameters:
        - in: path
          name: league_id
          required: true
          schema:
            type: integer
          description: League ID (integer)
      responses:
        '200':
          description: >-
            Successful response with Handball season schedule by league
            including matches grouped by weeks
          content:
            application/json:
              schema:
                type: object
                properties:
                  scores:
                    type: object
                    properties:
                      country:
                        type: string
                        description: Country name of the tournament
                        example: denmark
                      sport:
                        type: string
                        description: Sport name
                        example: handball
                      tournament:
                        type: object
                        properties:
                          id:
                            type: string
                            description: Tournament ID
                            example: '4365'
                          league:
                            type: string
                            description: League name
                            example: Herre Handbold Ligaen
                          season:
                            type: string
                            description: Season information
                            example: 2025/2026
                          week:
                            type: array
                            items:
                              type: object
                              properties:
                                number:
                                  type: string
                                  description: Week number in the season
                                  example: '1'
                                match:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      date:
                                        type: string
                                        description: Match date
                                        example: 27.08.2025
                                      id:
                                        type: string
                                        description: Match ID
                                      status:
                                        type: string
                                        description: >-
                                          Match status (e.g., Finished, Not
                                          Started, 1)
                                      time:
                                        type: string
                                        description: Match start or scheduled time
                                      home:
                                        type: object
                                        properties:
                                          id:
                                            type: string
                                            description: Team ID
                                          name:
                                            type: string
                                            description: Team name
                                          t1:
                                            type: string
                                            description: Score in first half or first period
                                            nullable: true
                                            example: '19'
                                          t2:
                                            type: string
                                            description: Score in second half or second period
                                            nullable: true
                                            example: '18'
                                          totalscore:
                                            type: string
                                            description: Total score for the team
                                            nullable: true
                                            example: '37'
                                        required:
                                          - id
                                          - name
                                      away:
                                        $ref: >-
                                          #/paths/~1handball~1season-schedule~1%7Bleague_id%7D/get/responses/200/content/application~1json/schema/properties/scores/properties/tournament/properties/week/items/properties/match/items/properties/home
                                    required:
                                      - date
                                      - id
                                      - status
                                      - time
                                      - home
                                      - away
                              required:
                                - number
                                - match
                        required:
                          - id
                          - league
                          - season
                          - week
                    required:
                      - country
                      - sport
                      - tournament
                required:
                  - scores
              example:
                scores:
                  country: denmark
                  sport: handball
                  tournament:
                    id: '4365'
                    league: Herre Handbold Ligaen
                    season: 2025/2026
                    week:
                      - number: '1'
                        match:
                          - date: 27.08.2025
                            id: '368996'
                            status: Finished
                            time: '17:00'
                            home:
                              id: '2549'
                              name: Aalborg
                              t1: '19'
                              t2: '18'
                              totalscore: '37'
                            away:
                              id: '16036'
                              name: Skanderborg AGF
                              t1: '14'
                              t2: '16'
                              totalscore: '30'
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: Unauthorized - invalid or missing access_key or invalid sport
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: Resource Not Found - could not find resource
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  '/handball/standings/{league_id}':
    get:
      summary: Get Standings By League
      description: >
        Returns the current standings for a specific Handball league identified
        by league_id. This endpoint data is updated every 1 hour.
      tags:
        - "\U0001F93E Handball (V1)"
      servers:
        - url: 'https://statpal.io/api/v1/'
          description: Production (v1)
      security:
        - ApiKeyAuth: []
      x-update-rate: 3600
      parameters:
        - name: league_id
          in: path
          required: true
          description: Numeric ID of the league to retrieve standings for
          schema:
            type: integer
      responses:
        '200':
          description: >-
            Successful response with Handball league standings including team
            stats and positions
          content:
            application/json:
              schema:
                type: object
                properties:
                  standings:
                    type: object
                    properties:
                      country:
                        type: string
                        description: Country of the league
                        example: denmark
                      sport:
                        type: string
                        description: Sport name
                        example: handball
                      category:
                        type: object
                        properties:
                          id:
                            type: string
                            description: Category ID
                            example: '4365'
                          name:
                            type: string
                            description: Category name or league stage name
                            example: Herre Handbold Ligaen - Regular Season
                          season:
                            type: string
                            description: Season name or year range
                            example: 2025/2026
                          team:
                            type: array
                            items:
                              type: object
                              properties:
                                d:
                                  type: string
                                  description: Number of draws
                                  example: '0'
                                gp:
                                  type: string
                                  description: Games played
                                  example: '16'
                                id:
                                  type: string
                                  description: Team ID
                                  example: '2549'
                                l:
                                  type: string
                                  description: Number of losses
                                  example: '0'
                                name:
                                  type: string
                                  description: Team name
                                  example: Aalborg
                                points_against:
                                  type: string
                                  description: Points scored against this team
                                  example: '447'
                                points_for:
                                  type: string
                                  description: Points scored for this team
                                  example: '568'
                                pos:
                                  type: string
                                  description: Position/ranking in the league
                                  example: '1'
                                pts:
                                  type: string
                                  description: Points total
                                  example: '32'
                                recent_form:
                                  type: string
                                  description: >-
                                    Recent match results form string (W=win,
                                    D=draw, L=loss)
                                  example: WWWWW
                                w:
                                  type: string
                                  description: Number of wins
                                  example: '16'
                                description:
                                  type: object
                                  properties:
                                    value:
                                      type: string
                                      description: Description text for the team standing
                                      example: >-
                                        Promotion - Herre Handbold Ligaen
                                        (Winners stage)
                                  required:
                                    - value
                              required:
                                - d
                                - gp
                                - id
                                - l
                                - name
                                - points_against
                                - points_for
                                - pos
                                - pts
                                - recent_form
                                - w
                                - description
                        required:
                          - id
                          - name
                          - season
                          - team
                    required:
                      - country
                      - sport
                      - category
                required:
                  - standings
              example:
                standings:
                  country: denmark
                  sport: handball
                  category:
                    id: '4365'
                    name: Herre Handbold Ligaen - Regular Season
                    season: 2025/2026
                    team:
                      - d: '0'
                        gp: '16'
                        id: '2549'
                        l: '0'
                        name: Aalborg
                        points_against: '447'
                        points_for: '568'
                        pos: '1'
                        pts: '32'
                        recent_form: WWWWW
                        w: '16'
                        description:
                          value: Promotion - Herre Handbold Ligaen (Winners stage)
                      - d: '3'
                        gp: '16'
                        id: '2550'
                        l: '4'
                        name: Mors
                        points_against: '498'
                        points_for: '507'
                        pos: '2'
                        pts: '21'
                        recent_form: DLWWW
                        w: '9'
                        description:
                          value: Promotion - Herre Handbold Ligaen (Winners stage)
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: Unauthorized - invalid or missing access_key or invalid sport
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: Resource Not Found - could not find resource
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  /handball/odds:
    get:
      summary: Get Pre-Match Odds
      description: >
        Returns pre-match Handball odds with detailed tournament, league,
        matches, bookmakers, and odds information. This endpoint data is updated
        every 30 minutes.
      tags:
        - "\U0001F93E Handball (V1)"
      servers:
        - url: 'https://statpal.io/api/v1/'
          description: Production (v1)
      security:
        - ApiKeyAuth: []
      x-update-rate: 1800
      responses:
        '200':
          description: >-
            Successful response with Handball pre-match odds including
            tournament, league, match, bookmakers, and odds details
          content:
            application/json:
              schema:
                type: object
                properties:
                  odds:
                    type: object
                    properties:
                      sport:
                        type: string
                        description: Sport name
                        example: handball
                      tournament:
                        type: array
                        items:
                          type: object
                          properties:
                            gid:
                              type: string
                              description: Tournament group ID
                            id:
                              type: string
                              description: Tournament ID
                            league:
                              type: string
                              description: League name
                            matches:
                              type: object
                              properties:
                                match:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      date:
                                        type: string
                                        description: Match date
                                        example: 12.12.2025
                                      id:
                                        type: string
                                        description: Match ID
                                      status:
                                        type: string
                                        description: 'Match status (e.g., Not Started)'
                                      time:
                                        type: string
                                        description: Match start or scheduled time
                                      home:
                                        type: object
                                        properties:
                                          id:
                                            type: string
                                            description: Team ID
                                          name:
                                            type: string
                                            description: Team name
                                          t1:
                                            type: string
                                            description: Score in first half or first period
                                            nullable: true
                                            example: ''
                                          t2:
                                            type: string
                                            description: Score in second half or second period
                                            nullable: true
                                            example: ''
                                          totalscore:
                                            type: string
                                            description: Total score for the team
                                            nullable: true
                                            example: ''
                                        required:
                                          - id
                                          - name
                                      away:
                                        $ref: >-
                                          #/paths/~1handball~1odds/get/responses/200/content/application~1json/schema/properties/odds/properties/tournament/items/properties/matches/properties/match/items/properties/home
                                      odds:
                                        type: object
                                        properties:
                                          ts:
                                            type: string
                                            description: Timestamp of the odds update
                                          type:
                                            type: array
                                            items:
                                              type: object
                                              properties:
                                                id:
                                                  type: string
                                                  description: Type ID for the odds market
                                                stop:
                                                  type: string
                                                  description: >-
                                                    Indicates if betting on this type is
                                                    stopped (True/False)
                                                value:
                                                  type: string
                                                  description: >-
                                                    Type description/name of the odds market
                                                    (e.g., "3Way Result")
                                                bookmaker:
                                                  oneOf:
                                                    - type: array
                                                      items:
                                                        $ref: >-
                                                          #/paths/~1handball~1odds/get/responses/200/content/application~1json/schema/properties/odds/properties/tournament/items/properties/matches/properties/match/items/properties/odds/properties/type/items/properties/bookmaker/oneOf/1
                                                    - type: object
                                                      properties:
                                                        id:
                                                          type: string
                                                          description: Bookmaker ID
                                                        name:
                                                          type: string
                                                          description: Bookmaker name
                                                        ts:
                                                          type: string
                                                          description: >-
                                                            Timestamp when bookmaker odds were last
                                                            updated
                                                        odd:
                                                          type: array
                                                          items:
                                                            type: object
                                                            properties:
                                                              id:
                                                                type: string
                                                                description: Odd ID
                                                              name:
                                                                type: string
                                                                description: >-
                                                                  Odd name/selection (e.g., "Home",
                                                                  "Draw", "Away")
                                                              value:
                                                                type: string
                                                                description: 'Odd value, decimal format'
                                                            required:
                                                              - id
                                                              - name
                                                              - value
                                                          description: >-
                                                            List of odds for this bookmaker (used if
                                                            no 'handicap' or 'total')
                                                        handicap:
                                                          oneOf:
                                                            - type: object
                                                              properties:
                                                                name:
                                                                  type: string
                                                                  description: 'Handicap name (e.g. "+0", "-4.5")'
                                                                stop:
                                                                  type: string
                                                                  description: >-
                                                                    Indicates if the handicap is stopped
                                                                    (True/False)
                                                                odd:
                                                                  type: array
                                                                  items:
                                                                    $ref: >-
                                                                      #/paths/~1handball~1odds/get/responses/200/content/application~1json/schema/properties/odds/properties/tournament/items/properties/matches/properties/match/items/properties/odds/properties/type/items/properties/bookmaker/oneOf/1/properties/odd/items
                                                              required:
                                                                - name
                                                                - stop
                                                                - odd
                                                            - type: array
                                                              items:
                                                                $ref: >-
                                                                  #/paths/~1handball~1odds/get/responses/200/content/application~1json/schema/properties/odds/properties/tournament/items/properties/matches/properties/match/items/properties/odds/properties/type/items/properties/bookmaker/oneOf/1/properties/handicap/oneOf/0
                                                          description: >-
                                                            Handicap-related odds, may be a single
                                                            object or an array
                                                        total:
                                                          oneOf:
                                                            - type: object
                                                              properties:
                                                                name:
                                                                  type: string
                                                                  description: 'Total name (e.g., "59.5")'
                                                                stop:
                                                                  type: string
                                                                  description: >-
                                                                    Indicates if the total is stopped
                                                                    (True/False)
                                                                odd:
                                                                  type: array
                                                                  items:
                                                                    $ref: >-
                                                                      #/paths/~1handball~1odds/get/responses/200/content/application~1json/schema/properties/odds/properties/tournament/items/properties/matches/properties/match/items/properties/odds/properties/type/items/properties/bookmaker/oneOf/1/properties/odd/items
                                                              required:
                                                                - name
                                                                - stop
                                                                - odd
                                                            - type: array
                                                              items:
                                                                $ref: >-
                                                                  #/paths/~1handball~1odds/get/responses/200/content/application~1json/schema/properties/odds/properties/tournament/items/properties/matches/properties/match/items/properties/odds/properties/type/items/properties/bookmaker/oneOf/1/properties/total/oneOf/0
                                                          description: >-
                                                            Over/Under totals odds, may be a single
                                                            object or an array
                                                      required:
                                                        - id
                                                        - name
                                                        - ts
                                              required:
                                                - id
                                                - stop
                                                - value
                                                - bookmaker
                                        required:
                                          - ts
                                          - type
                                    required:
                                      - date
                                      - id
                                      - status
                                      - time
                                      - home
                                      - away
                                      - odds
                              required:
                                - match
                          required:
                            - gid
                            - id
                            - league
                            - matches
                    required:
                      - sport
                      - tournament
                required:
                  - odds
              example:
                odds:
                  sport: handball
                  tournament:
                    - gid: '5037'
                      id: '5037'
                      league: 'Finland: Aktialiiga'
                      matches:
                        match:
                          - date: 12.12.2025
                            id: '368866'
                            status: Not Started
                            time: '17:00'
                            home:
                              id: '3060'
                              name: AIFK
                              t1: ''
                              t2: ''
                              totalscore: ''
                            away:
                              id: '15804'
                              name: EIF
                              t1: ''
                              t2: ''
                              totalscore: ''
                            odds:
                              ts: '1765517543'
                              type:
                                - id: '1500'
                                  stop: 'False'
                                  value: 3Way Result
                                  bookmaker:
                                    - id: '1513'
                                      name: 10Bet
                                      ts: '1765492438'
                                      odd:
                                        - id: '910697514115671567'
                                          name: Home
                                          value: '1.25'
                                        - id: '910697514115691569'
                                          name: Draw
                                          value: '10.00'
                                        - id: '910697514115701570'
                                          name: Away
                                          value: '4.50'
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: Unauthorized - invalid or missing access_key or invalid sport
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: Resource Not Found - could not find resource
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  /volleyball/livescores:
    get:
      summary: Get Live Scores
      description: >
        Returns live Volleyball scores with detailed tournament, league, and
        matches information. This endpoint data is updated every 15 seconds.
      tags:
        - "\U0001F3D0 Volleyball (V1)"
      servers:
        - url: 'https://statpal.io/api/v1/'
          description: Production (v1)
      security:
        - ApiKeyAuth: []
      x-update-rate: 15
      responses:
        '200':
          description: >-
            Successful response with Volleyball live scores including
            tournament, league, and match details
          content:
            application/json:
              schema:
                type: object
                properties:
                  livescores:
                    type: object
                    properties:
                      sport:
                        type: string
                        description: Sport name
                        example: volleyball
                      tournament:
                        type: array
                        items:
                          type: object
                          properties:
                            country:
                              type: string
                              description: Country name of the tournament
                            gid:
                              type: string
                              description: Tournament group ID (optional)
                              nullable: true
                            id:
                              type: string
                              description: Tournament ID
                            league:
                              type: string
                              description: League name
                            match:
                              type: object
                              properties:
                                date:
                                  type: string
                                  description: Match date
                                  example: 11.12.2025
                                id:
                                  type: string
                                  description: Match ID
                                status:
                                  type: string
                                  description: 'Match status (e.g., Not Started, Finished)'
                                time:
                                  type: string
                                  description: Match start or scheduled time
                                home:
                                  type: object
                                  properties:
                                    id:
                                      type: string
                                      description: Team ID
                                    name:
                                      type: string
                                      description: Team name
                                    s1:
                                      type: string
                                      description: Score in set 1
                                      nullable: true
                                    s2:
                                      type: string
                                      description: Score in set 2
                                      nullable: true
                                    s3:
                                      type: string
                                      description: Score in set 3
                                      nullable: true
                                    s4:
                                      type: string
                                      description: Score in set 4
                                      nullable: true
                                    s5:
                                      type: string
                                      description: Score in set 5
                                      nullable: true
                                    totalscore:
                                      type: string
                                      description: Total sets won by the team
                                      nullable: true
                                  required:
                                    - id
                                    - name
                                away:
                                  $ref: >-
                                    #/paths/~1volleyball~1livescores/get/responses/200/content/application~1json/schema/properties/livescores/properties/tournament/items/properties/match/properties/home
                              required:
                                - date
                                - id
                                - status
                                - time
                                - home
                                - away
                          required:
                            - country
                            - id
                            - league
                            - match
                    required:
                      - sport
                      - tournament
                required:
                  - livescores
              example:
                livescores:
                  sport: volleyball
                  tournament:
                    - country: france
                      gid: '4390'
                      id: '4390'
                      league: 'France: Ligue A'
                      match:
                        date: 11.12.2025
                        id: '460200'
                        status: Finished
                        time: '19:00'
                        home:
                          id: '2628'
                          name: Cannes
                          s1: '22'
                          s2: '25'
                          s3: '25'
                          s4: '25'
                          s5: ''
                          totalscore: '3'
                        away:
                          id: '2634'
                          name: Narbonne
                          s1: '25'
                          s2: '19'
                          s3: '21'
                          s4: '20'
                          s5: ''
                          totalscore: '1'
                    - country: poland
                      gid: '2520'
                      id: '2520'
                      league: 'Poland: Plusliga'
                      match:
                        date: 11.12.2025
                        id: '456949'
                        status: Finished
                        time: '16:30'
                        home:
                          id: '3247'
                          name: Gdansk
                          s1: '25'
                          s2: '25'
                          s3: '25'
                          s4: ''
                          s5: ''
                          totalscore: '3'
                        away:
                          id: '3025'
                          name: Belchatow
                          s1: '17'
                          s2: '22'
                          s3: '21'
                          s4: ''
                          s5: ''
                          totalscore: '0'
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: Unauthorized - invalid or missing access_key or invalid sport
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: Resource Not Found - could not find resource
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  '/volleyball/daily/{day_offset_token}':
    get:
      summary: Get Matches Recent / Upcoming
      description: >
        Returns Volleyball matches for recent and upcoming days with detailed
        tournament, league, and match information. This endpoint data is updated
        every 12 hours.
      tags:
        - "\U0001F3D0 Volleyball (V1)"
      servers:
        - url: 'https://statpal.io/api/v1/'
          description: Production (v1)
      security:
        - ApiKeyAuth: []
      parameters:
        - name: day_offset_token
          in: path
          required: true
          description: >
            Day offset token indicating the day relative to today to list
            matches. Valid values range from d-7 to d7, e.g., 'd-1', 'd1', 'd2'
            etc.
          schema:
            type: string
            enum:
              - d-1
              - d-2
              - d-3
              - d-4
              - d-5
              - d-6
              - d-7
              - d1
              - d2
              - d3
              - d4
              - d5
              - d6
              - d7
      x-update-rate: 43200
      responses:
        '200':
          description: >-
            Successful response with Volleyball matches for the specified day
            offset including tournament, league, and match details
          content:
            application/json:
              schema:
                type: object
                properties:
                  livescores:
                    type: object
                    properties:
                      sport:
                        type: string
                        description: Sport name
                        example: volleyball
                      tournament:
                        type: array
                        items:
                          type: object
                          properties:
                            country:
                              type: string
                              description: Country name of the tournament
                            gid:
                              type: string
                              description: Tournament group ID (optional)
                              nullable: true
                            id:
                              type: string
                              description: Tournament ID
                            league:
                              type: string
                              description: League name
                            match:
                              type: object
                              properties:
                                date:
                                  type: string
                                  description: Match date
                                  example: 11.12.2025
                                id:
                                  type: string
                                  description: Match ID
                                status:
                                  type: string
                                  description: 'Match status (e.g., Not Started, Finished)'
                                time:
                                  type: string
                                  description: Match start or scheduled time
                                home:
                                  type: object
                                  properties:
                                    id:
                                      type: string
                                      description: Team ID
                                    name:
                                      type: string
                                      description: Team name
                                    s1:
                                      type: string
                                      description: Score in set 1
                                      nullable: true
                                    s2:
                                      type: string
                                      description: Score in set 2
                                      nullable: true
                                    s3:
                                      type: string
                                      description: Score in set 3
                                      nullable: true
                                    s4:
                                      type: string
                                      description: Score in set 4
                                      nullable: true
                                    s5:
                                      type: string
                                      description: Score in set 5
                                      nullable: true
                                    totalscore:
                                      type: string
                                      description: Total sets won by the team
                                      nullable: true
                                  required:
                                    - id
                                    - name
                                away:
                                  $ref: >-
                                    #/paths/~1volleyball~1daily~1%7Bday_offset_token%7D/get/responses/200/content/application~1json/schema/properties/livescores/properties/tournament/items/properties/match/properties/home
                              required:
                                - date
                                - id
                                - status
                                - time
                                - home
                                - away
                          required:
                            - country
                            - id
                            - league
                            - match
                    required:
                      - sport
                      - tournament
                required:
                  - livescores
              example:
                livescores:
                  sport: volleyball
                  tournament:
                    - country: france
                      gid: '4390'
                      id: '4390'
                      league: 'France: Ligue A'
                      match:
                        date: 11.12.2025
                        id: '460200'
                        status: Finished
                        time: '19:00'
                        home:
                          id: '2628'
                          name: Cannes
                          s1: '22'
                          s2: '25'
                          s3: '25'
                          s4: '25'
                          s5: ''
                          totalscore: '3'
                        away:
                          id: '2634'
                          name: Narbonne
                          s1: '25'
                          s2: '19'
                          s3: '21'
                          s4: '20'
                          s5: ''
                          totalscore: '1'
                    - country: poland
                      gid: '2520'
                      id: '2520'
                      league: 'Poland: Plusliga'
                      match:
                        date: 11.12.2025
                        id: '456949'
                        status: Finished
                        time: '16:30'
                        home:
                          id: '3247'
                          name: Gdansk
                          s1: '25'
                          s2: '25'
                          s3: '25'
                          s4: ''
                          s5: ''
                          totalscore: '3'
                        away:
                          id: '3025'
                          name: Belchatow
                          s1: '17'
                          s2: '22'
                          s3: '21'
                          s4: ''
                          s5: ''
                          totalscore: '0'
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: Unauthorized - invalid or missing access_key or invalid sport
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: Resource Not Found - could not find resource
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  '/volleyball/season-schedule/{league_id}':
    get:
      summary: Get Matches By League
      description: >
        Returns Volleyball season schedule with detailed weekly matches by
        league. This endpoint data is updated every 1 hour.
      tags:
        - "\U0001F3D0 Volleyball (V1)"
      servers:
        - url: 'https://statpal.io/api/v1/'
          description: Production (v1)
      security:
        - ApiKeyAuth: []
      x-update-rate: 3600
      parameters:
        - in: path
          name: league_id
          schema:
            type: integer
          required: true
          description: The ID of the league
      responses:
        '200':
          description: >-
            Successful response with Volleyball season schedule including weekly
            matches by league
          content:
            application/json:
              schema:
                type: object
                properties:
                  scores:
                    type: object
                    properties:
                      country:
                        type: string
                        description: Country name of the tournament
                        example: france
                      sport:
                        type: string
                        description: Sport name
                        example: volleyball
                      tournament:
                        type: object
                        properties:
                          id:
                            type: string
                            description: Tournament ID
                          league:
                            type: string
                            description: League name
                          season:
                            type: string
                            description: Season string
                          week:
                            type: array
                            items:
                              type: object
                              properties:
                                number:
                                  type: string
                                  description: Week number
                                match:
                                  oneOf:
                                    - type: array
                                      items:
                                        $ref: >-
                                          #/paths/~1volleyball~1season-schedule~1%7Bleague_id%7D/get/responses/200/content/application~1json/schema/properties/scores/properties/tournament/properties/week/items/properties/match/oneOf/1
                                    - type: object
                                      properties:
                                        date:
                                          type: string
                                          description: Match date
                                          example: 21.10.2025
                                        id:
                                          type: string
                                          description: Match ID
                                        status:
                                          type: string
                                          description: >-
                                            Match status (e.g., Not Started,
                                            Finished)
                                        time:
                                          type: string
                                          description: Match start or scheduled time
                                        home:
                                          type: object
                                          properties:
                                            id:
                                              type: string
                                              description: Team ID
                                            name:
                                              type: string
                                              description: Team name
                                            s1:
                                              type: string
                                              description: Score in set 1
                                              nullable: true
                                            s2:
                                              type: string
                                              description: Score in set 2
                                              nullable: true
                                            s3:
                                              type: string
                                              description: Score in set 3
                                              nullable: true
                                            s4:
                                              type: string
                                              description: Score in set 4
                                              nullable: true
                                            s5:
                                              type: string
                                              description: Score in set 5
                                              nullable: true
                                            totalscore:
                                              type: string
                                              description: Total sets won by the team
                                              nullable: true
                                          required:
                                            - id
                                            - name
                                        away:
                                          $ref: >-
                                            #/paths/~1volleyball~1season-schedule~1%7Bleague_id%7D/get/responses/200/content/application~1json/schema/properties/scores/properties/tournament/properties/week/items/properties/match/oneOf/1/properties/home
                                      required:
                                        - date
                                        - id
                                        - status
                                        - time
                                        - home
                                        - away
                              required:
                                - number
                                - match
                        required:
                          - id
                          - league
                          - season
                          - week
                    required:
                      - country
                      - sport
                      - tournament
                required:
                  - scores
              example:
                scores:
                  country: france
                  sport: volleyball
                  tournament:
                    id: '4390'
                    league: Ligue A
                    season: 2025/2026
                    week:
                      - number: '1'
                        match:
                          - date: 21.10.2025
                            id: '460077'
                            status: Finished
                            time: '18:00'
                            home:
                              id: '2622'
                              name: Tours
                              s1: '25'
                              s2: '25'
                              s3: '25'
                              s4: ''
                              s5: ''
                              totalscore: '3'
                            away:
                              id: '2626'
                              name: Ajaccio
                              s1: '22'
                              s2: '23'
                              s3: '20'
                              s4: ''
                              s5: ''
                              totalscore: '0'
                      - number: '2'
                        match:
                          - date: 23.10.2025
                            id: '460082'
                            status: Finished
                            time: '18:00'
                            home:
                              id: '2625'
                              name: Poitiers
                              s1: '23'
                              s2: '22'
                              s3: '24'
                              s4: ''
                              s5: ''
                              totalscore: '0'
                            away:
                              id: '2630'
                              name: Montpellier
                              s1: '25'
                              s2: '25'
                              s3: '26'
                              s4: ''
                              s5: ''
                              totalscore: '3'
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: Unauthorized - invalid or missing access_key or invalid sport
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: Resource Not Found - could not find resource
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  '/volleyball/standings/{league_id}':
    get:
      summary: Get Standings By League
      description: >
        Returns Volleyball standings by league with detailed team position,
        points, and recent form. This endpoint data is updated every 1 hour.
      tags:
        - "\U0001F3D0 Volleyball (V1)"
      servers:
        - url: 'https://statpal.io/api/v1/'
          description: Production (v1)
      security:
        - ApiKeyAuth: []
      parameters:
        - name: league_id
          in: path
          required: true
          description: League ID to fetch standings for
          schema:
            type: integer
      x-update-rate: 3600
      responses:
        '200':
          description: >-
            Successful response with Volleyball league standings including teams
            and their stats
          content:
            application/json:
              schema:
                type: object
                properties:
                  standings:
                    type: object
                    properties:
                      country:
                        type: string
                        description: Country where the league is played
                        example: france
                      sport:
                        type: string
                        description: Sport name
                        example: volleyball
                      category:
                        type: object
                        properties:
                          id:
                            type: string
                            description: 'Category ID (e.g., season or competition phase)'
                            example: '4390'
                          name:
                            type: string
                            description: 'Category name (e.g., "Ligue A - Regular Season")'
                            example: Ligue A - Regular Season
                          season:
                            type: string
                            description: Season string
                            example: 2025/2026
                          league:
                            type: object
                            properties:
                              name:
                                type: string
                                description: League name (optional)
                                example: ''
                                nullable: true
                              team:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    id:
                                      type: string
                                      description: Team ID
                                      example: '2630'
                                    name:
                                      type: string
                                      description: Team name
                                      example: Montpellier
                                    pos:
                                      type: string
                                      description: Current position in the standings
                                      example: '1'
                                    gp:
                                      type: string
                                      description: Games played
                                      example: '10'
                                    w:
                                      type: string
                                      description: Games won
                                      example: '9'
                                    l:
                                      type: string
                                      description: Games lost
                                      example: '1'
                                    pts:
                                      type: string
                                      description: Points in the standings
                                      example: '25'
                                    points_for:
                                      type: string
                                      description: Total points scored by the team
                                      example: '29'
                                    points_against:
                                      type: string
                                      description: Total points conceded by the team
                                      example: '11'
                                    recent_form:
                                      type: string
                                      description: >-
                                        Recent form string showing last 5
                                        results (W/L)
                                      example: WWWWW
                                    description:
                                      nullable: true
                                      type: object
                                      properties:
                                        value:
                                          type: string
                                          description: >-
                                            Description or notes about the team
                                            position or status
                                          example: >-
                                            Promotion - Ligue A (Play Offs:
                                            Quarter-finals)
                                      required:
                                        - value
                                  required:
                                    - id
                                    - name
                                    - pos
                                    - gp
                                    - w
                                    - l
                                    - pts
                                    - points_for
                                    - points_against
                                    - recent_form
                            required:
                              - team
                        required:
                          - id
                          - name
                          - season
                          - league
                    required:
                      - country
                      - sport
                      - category
                required:
                  - standings
              example:
                standings:
                  country: france
                  sport: volleyball
                  category:
                    id: '4390'
                    name: Ligue A - Regular Season
                    season: 2025/2026
                    league:
                      name: ''
                      team:
                        - id: '2630'
                          name: Montpellier
                          pos: '1'
                          gp: '10'
                          w: '9'
                          l: '1'
                          pts: '25'
                          points_for: '29'
                          points_against: '11'
                          recent_form: WWWWW
                          description:
                            value: 'Promotion - Ligue A (Play Offs: Quarter-finals)'
                        - id: '2632'
                          name: Tourcoing
                          pos: '2'
                          gp: '10'
                          w: '9'
                          l: '1'
                          pts: '24'
                          points_for: '27'
                          points_against: '12'
                          recent_form: WWWWW
                          description:
                            value: 'Promotion - Ligue A (Play Offs: Quarter-finals)'
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: Unauthorized - invalid or missing access_key or invalid sport
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: Resource Not Found - could not find resource
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  /volleyball/odds:
    get:
      summary: Get Pre-Match Odds
      description: >
        Returns pre-match Volleyball odds with detailed tournament, league,
        matches and bookmaker information. This endpoint data is updated every
        30 minutes.
      tags:
        - "\U0001F3D0 Volleyball (V1)"
      servers:
        - url: 'https://statpal.io/api/v1/'
          description: Production (v1)
      security:
        - ApiKeyAuth: []
      x-update-rate: 1800
      responses:
        '200':
          description: >-
            Successful response with Volleyball pre-match odds including
            tournament, league, matches, and bookmaker odds details
          content:
            application/json:
              schema:
                type: object
                properties:
                  odds:
                    type: object
                    properties:
                      sport:
                        type: string
                        description: Sport name
                        example: volleyball
                      tournament:
                        type: array
                        items:
                          type: object
                          properties:
                            gid:
                              type: string
                              description: Tournament group ID (optional)
                              nullable: true
                            id:
                              type: string
                              description: Tournament ID
                            league:
                              type: string
                              description: League name
                            matches:
                              type: object
                              properties:
                                match:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      date:
                                        type: string
                                        description: Match date
                                        example: 12.12.2025
                                      id:
                                        type: string
                                        description: Match ID
                                      status:
                                        type: string
                                        description: >-
                                          Match status (e.g., Not Started,
                                          Finished)
                                      time:
                                        type: string
                                        description: Match start or scheduled time
                                      home:
                                        type: object
                                        properties:
                                          id:
                                            type: string
                                            description: Team ID
                                          name:
                                            type: string
                                            description: Team name
                                          s1:
                                            type: string
                                            description: Score in set 1 (empty before match)
                                            nullable: true
                                          s2:
                                            type: string
                                            description: Score in set 2 (empty before match)
                                            nullable: true
                                          s3:
                                            type: string
                                            description: Score in set 3 (empty before match)
                                            nullable: true
                                          s4:
                                            type: string
                                            description: Score in set 4 (empty before match)
                                            nullable: true
                                          s5:
                                            type: string
                                            description: Score in set 5 (empty before match)
                                            nullable: true
                                          totalscore:
                                            type: string
                                            description: >-
                                              Total sets won by the team (empty before
                                              match)
                                            nullable: true
                                        required:
                                          - id
                                          - name
                                      away:
                                        $ref: >-
                                          #/paths/~1volleyball~1odds/get/responses/200/content/application~1json/schema/properties/odds/properties/tournament/items/properties/matches/properties/match/items/properties/home
                                      odds:
                                        type: object
                                        properties:
                                          ts:
                                            type: string
                                            description: Timestamp of the odds data
                                          type:
                                            type: array
                                            items:
                                              type: object
                                              properties:
                                                id:
                                                  type: string
                                                  description: Odds type ID
                                                stop:
                                                  type: string
                                                  description: >-
                                                    Indicates if the odds type is stopped or
                                                    active
                                                value:
                                                  type: string
                                                  description: >-
                                                    Description of the odds type (e.g.
                                                    Home/Away, Over/Under)
                                                bookmaker:
                                                  oneOf:
                                                    - type: object
                                                      properties:
                                                        id:
                                                          type: string
                                                          description: Bookmaker ID
                                                        name:
                                                          type: string
                                                          description: Bookmaker name
                                                        stop:
                                                          type: string
                                                          description: >-
                                                            Indicates if betting with this bookmaker
                                                            is stopped or active
                                                          nullable: true
                                                        ts:
                                                          type: string
                                                          description: Timestamp of bookmaker odds update
                                                          nullable: true
                                                        odd:
                                                          type: array
                                                          items:
                                                            type: object
                                                            properties:
                                                              id:
                                                                type: string
                                                                description: Odd ID
                                                              name:
                                                                type: string
                                                                description: 'Odd name (e.g. Home, Away, Over, Under)'
                                                              value:
                                                                type: string
                                                                description: Odd value
                                                            required:
                                                              - id
                                                              - name
                                                              - value
                                                          description: Odds offered by the bookmaker
                                                          nullable: true
                                                        total:
                                                          oneOf:
                                                            - type: object
                                                              properties:
                                                                name:
                                                                  type: string
                                                                  description: >-
                                                                    Total line name (e.g. "3.5", "4",
                                                                    "75.5")
                                                                stop:
                                                                  type: string
                                                                  description: >-
                                                                    Indicate if this total is stopped or
                                                                    active
                                                                odd:
                                                                  type: array
                                                                  items:
                                                                    $ref: >-
                                                                      #/paths/~1volleyball~1odds/get/responses/200/content/application~1json/schema/properties/odds/properties/tournament/items/properties/matches/properties/match/items/properties/odds/properties/type/items/properties/bookmaker/oneOf/0/properties/odd/items
                                                              required:
                                                                - name
                                                                - stop
                                                                - odd
                                                            - type: array
                                                              items:
                                                                $ref: >-
                                                                  #/paths/~1volleyball~1odds/get/responses/200/content/application~1json/schema/properties/odds/properties/tournament/items/properties/matches/properties/match/items/properties/odds/properties/type/items/properties/bookmaker/oneOf/0/properties/total/oneOf/0
                                                          description: >-
                                                            Totals for this bookmaker (for totals
                                                            bets)
                                                          nullable: true
                                                        handicap:
                                                          oneOf:
                                                            - type: object
                                                              properties:
                                                                name:
                                                                  type: string
                                                                  description: >-
                                                                    Handicap line name (e.g. "-3.5", "-2",
                                                                    "+1.5")
                                                                stop:
                                                                  type: string
                                                                  description: >-
                                                                    Indicate if this handicap is stopped or
                                                                    active
                                                                odd:
                                                                  type: array
                                                                  items:
                                                                    $ref: >-
                                                                      #/paths/~1volleyball~1odds/get/responses/200/content/application~1json/schema/properties/odds/properties/tournament/items/properties/matches/properties/match/items/properties/odds/properties/type/items/properties/bookmaker/oneOf/0/properties/odd/items
                                                              required:
                                                                - name
                                                                - stop
                                                                - odd
                                                            - type: array
                                                              items:
                                                                $ref: >-
                                                                  #/paths/~1volleyball~1odds/get/responses/200/content/application~1json/schema/properties/odds/properties/tournament/items/properties/matches/properties/match/items/properties/odds/properties/type/items/properties/bookmaker/oneOf/0/properties/handicap/oneOf/0
                                                          description: >-
                                                            Handicap values for this bookmaker (for
                                                            handicap bets)
                                                          nullable: true
                                                      required:
                                                        - id
                                                        - name
                                                    - type: array
                                                      items:
                                                        $ref: >-
                                                          #/paths/~1volleyball~1odds/get/responses/200/content/application~1json/schema/properties/odds/properties/tournament/items/properties/matches/properties/match/items/properties/odds/properties/type/items/properties/bookmaker/oneOf/0
                                              required:
                                                - id
                                                - stop
                                                - value
                                                - bookmaker
                                        required:
                                          - ts
                                          - type
                                    required:
                                      - date
                                      - id
                                      - status
                                      - time
                                      - home
                                      - away
                                      - odds
                              required:
                                - match
                          required:
                            - id
                            - league
                            - matches
                    required:
                      - sport
                      - tournament
                required:
                  - odds
              example:
                odds:
                  sport: volleyball
                  tournament:
                    - gid: '2516'
                      id: '2516'
                      league: 'Germany: 1. Bundesliga'
                      matches:
                        match:
                          - date: 12.12.2025
                            id: '455405'
                            status: Not Started
                            time: '18:00'
                            home:
                              id: '6186'
                              name: Giesen
                              s1: ''
                              s2: ''
                              s3: ''
                              s4: ''
                              s5: ''
                              totalscore: ''
                            away:
                              id: '3269'
                              name: Dachau
                              s1: ''
                              s2: ''
                              s3: ''
                              s4: ''
                              s5: ''
                              totalscore: ''
                            odds:
                              ts: '1765495376'
                              type:
                                - id: '1501'
                                  stop: 'False'
                                  value: Home/Away
                                  bookmaker:
                                    - id: '1514'
                                      name: WilliamHill
                                      stop: 'False'
                                      ts: '1765492439'
                                      odd:
                                        - id: '910764915215671567'
                                          name: Home
                                          value: '1.10'
                                        - id: '910764915215701570'
                                          name: Away
                                          value: '6.50'
                                    - id: '1515'
                                      name: bet365
                                      stop: 'False'
                                      ts: '1765492440'
                                      odd:
                                        - id: '910764943215671567'
                                          name: Home
                                          value: '1.08'
                                        - id: '910764943215701570'
                                          name: Away
                                          value: '7.00'
                                - id: '1504'
                                  stop: 'False'
                                  value: Over/Under
                                  bookmaker:
                                    id: '1581'
                                    name: Pncl
                                    ts: '1765492440'
                                    total:
                                      - name: '3.5'
                                        stop: 'False'
                                        odd:
                                          - id: '910764982515881588'
                                            name: Over
                                            value: '2.13'
                                          - id: '910764982515901590'
                                            name: Under
                                            value: '1.67'
                                      - name: '4'
                                        stop: 'False'
                                        odd:
                                          - id: '910764982533933393'
                                            name: Over
                                            value: '3.85'
                                          - id: '910764982533953395'
                                            name: Under
                                            value: '1.23'
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: Unauthorized - invalid or missing access_key or invalid sport
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: Resource Not Found - could not find resource
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  /golf/livescores:
    get:
      summary: Get Live Scores
      description: >
        Returns live Golf scores with detailed tournament, player, and hole
        information. This endpoint data is updated every 15 seconds.
      tags:
        - ⛳ Golf (V1)
      servers:
        - url: 'https://statpal.io/api/v1/'
          description: Production (v1)
      security:
        - ApiKeyAuth: []
      x-update-rate: 15
      responses:
        '200':
          description: >-
            Successful response with Golf live scores including tournament and
            player details
          content:
            application/json:
              schema:
                type: object
                properties:
                  livescore:
                    type: object
                    properties:
                      sport:
                        type: string
                        description: Sport name
                        example: golf
                      tournament:
                        type: object
                        properties:
                          country:
                            type: string
                            description: Country name of the tournament
                          end_date:
                            type: string
                            description: Tournament end date
                            example: 07.12.2025
                          gender:
                            type: string
                            description: Gender category of the tournament
                            example: male
                          id:
                            type: string
                            description: Tournament ID
                          name:
                            type: string
                            description: Tournament name
                          par:
                            type: string
                            description: Par value of the course
                          start_date:
                            type: string
                            description: Tournament start date
                            example: 04.12.2025
                          status:
                            type: string
                            description: Status of the tournament
                          type:
                            type: string
                            description: Type of tournament
                            nullable: true
                          venue:
                            type: string
                            description: Venue of the tournament
                          player:
                            type: array
                            items:
                              type: object
                              properties:
                                id:
                                  type: string
                                  description: Player ID
                                name:
                                  type: string
                                  description: Player name
                                par:
                                  type: string
                                  description: Player's current par score relative to par
                                  nullable: true
                                po:
                                  type: string
                                  description: Playoff indicator/score (if applicable)
                                  nullable: true
                                pos:
                                  type: string
                                  description: Player's position (standings)
                                  nullable: true
                                tee_time:
                                  type: string
                                  description: Player tee time
                                  nullable: true
                                today:
                                  type: string
                                  description: Player's score today
                                  nullable: true
                                total:
                                  type: string
                                  description: Player's total score
                                  nullable: true
                                rounds:
                                  type: object
                                  properties:
                                    round:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          number:
                                            type: string
                                            description: Round number
                                          result:
                                            type: string
                                            description: Round result score
                                        required:
                                          - number
                                          - result
                                  required:
                                    - round
                                stats:
                                  type: object
                                  properties:
                                    rounds:
                                      type: object
                                      properties:
                                        round:
                                          type: array
                                          items:
                                            type: object
                                            properties:
                                              number:
                                                type: string
                                                description: Round number
                                              hole:
                                                type: array
                                                items:
                                                  type: object
                                                  properties:
                                                    number:
                                                      type: string
                                                      description: >-
                                                        Hole number or special marker (e.g.,
                                                        OUT, TOT)
                                                    par:
                                                      type: string
                                                      description: Par for the hole
                                                    score:
                                                      type: string
                                                      description: Score for the hole
                                                    birdie:
                                                      type: string
                                                      description: Flag if birdie was made
                                                    bogey:
                                                      type: string
                                                      description: Flag if bogey was made
                                                    dbl_bogey_worse:
                                                      type: string
                                                      description: Flag if double bogey or worse was made
                                                    eagle:
                                                      type: string
                                                      description: Flag if eagle was made
                                                  required:
                                                    - number
                                                    - par
                                                    - score
                                                    - birdie
                                                    - bogey
                                                    - dbl_bogey_worse
                                                    - eagle
                                            required:
                                              - number
                                              - hole
                                      required:
                                        - round
                                  required:
                                    - rounds
                              required:
                                - id
                                - name
                                - par
                                - today
                                - total
                                - rounds
                                - stats
                        required:
                          - country
                          - id
                          - name
                          - par
                          - start_date
                          - end_date
                          - status
                          - venue
                          - player
                    required:
                      - sport
                      - tournament
                required:
                  - livescore
              example:
                livescore:
                  sport: golf
                  tournament:
                    country: United States
                    end_date: 07.12.2025
                    gender: male
                    id: '2864'
                    name: Hero World Challenge
                    par: '71'
                    start_date: 04.12.2025
                    status: Final
                    type: ''
                    venue: 'Albany GC - New Providence, Bahamas'
                    player:
                      - id: '3168'
                        name: Hideki Matsuyama
                        par: '-22'
                        po: ''
                        pos: ''
                        tee_time: ''
                        today: '64'
                        total: '64'
                        rounds:
                          round:
                            - number: '1'
                              result: '68'
                            - number: '2'
                              result: '66'
                            - number: '3'
                              result: '68'
                            - number: '4'
                              result: '64'
                        stats:
                          rounds:
                            round:
                              - number: '1'
                                hole:
                                  - number: '1'
                                    par: '4'
                                    score: '4'
                                    birdie: 'False'
                                    bogey: 'False'
                                    dbl_bogey_worse: 'False'
                                    eagle: 'False'
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: Unauthorized - invalid or missing access_key or invalid sport
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: Resource Not Found - could not find resource
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  /golf/schedule:
    get:
      summary: Get Schedule
      description: >
        Returns Golf schedule data with detailed season, series, and tournaments
        information. This endpoint data is updated every 1 hour.
      tags:
        - ⛳ Golf (V1)
      servers:
        - url: 'https://statpal.io/api/v1/'
          description: Production (v1)
      security:
        - ApiKeyAuth: []
      x-update-rate: 3600
      responses:
        '200':
          description: >-
            Successful response with Golf schedule including season, series, and
            tournament details
          content:
            application/json:
              schema:
                type: object
                properties:
                  fixtures:
                    type: object
                    properties:
                      season:
                        type: string
                        description: Season year
                        example: '2026'
                      series:
                        type: string
                        description: Series name
                        example: PGA
                      sport:
                        type: string
                        description: Sport name
                        example: golf
                      tournament:
                        type: array
                        items:
                          type: object
                          properties:
                            date_end:
                              type: string
                              description: Tournament end date
                              example: 11.01.2026
                            date_start:
                              type: string
                              description: Tournament start date
                              example: 08.01.2026
                            id:
                              type: string
                              description: Tournament ID
                              example: '3211'
                            location:
                              type: string
                              description: 'Tournament location, may be empty'
                              example: 'Waialae Country Club - Honolulu, HI'
                              nullable: true
                            name:
                              type: string
                              description: Tournament name
                              example: Sony Open in Hawaii
                            purse:
                              type: string
                              description: 'Tournament purse/prize money, may be empty'
                              example: ''
                              nullable: true
                            winner:
                              type: string
                              description: >-
                                Winner's name, may be empty before tournament
                                completion
                              example: Nick Taylor
                              nullable: true
                            winner_id:
                              type: string
                              description: >-
                                Winner's player ID, may be empty before
                                tournament completion
                              example: '4490'
                              nullable: true
                          required:
                            - date_end
                            - date_start
                            - id
                            - name
                            - winner_id
                    required:
                      - season
                      - series
                      - sport
                      - tournament
                required:
                  - fixtures
              example:
                fixtures:
                  season: '2026'
                  series: PGA
                  sport: golf
                  tournament:
                    - date_end: 11.01.2026
                      date_start: 08.01.2026
                      id: '3211'
                      location: ''
                      name: The Sentry
                      purse: ''
                      winner: ''
                      winner_id: '4047'
                    - date_end: 18.01.2026
                      date_start: 15.01.2026
                      id: '2503'
                      location: 'Waialae Country Club - Honolulu, HI'
                      name: Sony Open in Hawaii
                      purse: ''
                      winner: Nick Taylor
                      winner_id: '4490'
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: Unauthorized - invalid or missing access_key or invalid sport
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: Resource Not Found - could not find resource
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  '/horse-racing/live/{country}':
    get:
      summary: Get Live Scores By Country
      description: >
        Returns live Horse Racing data including detailed race, runner, and odds
        information. This endpoint data is updated every 15 seconds.
      tags:
        - "\U0001F40E Horse Racing (V1)"
      servers:
        - url: 'https://statpal.io/api/v1/'
          description: Production (v1)
      security:
        - ApiKeyAuth: []
      x-update-rate: 15
      parameters:
        - name: country
          in: path
          description: 'Country code for Horse Racing live scores (uk, usa, sa, france)'
          required: true
          schema:
            type: string
            enum:
              - uk
              - usa
              - sa
              - france
      responses:
        '200':
          description: >-
            Successful response with Horse Racing live schedule including race,
            runner, and odds details
          content:
            application/json:
              schema:
                type: object
                properties:
                  scores:
                    type: object
                    properties:
                      sport:
                        type: string
                        description: Sport name
                        example: horse racing
                      tournament:
                        type: array
                        items:
                          type: object
                          properties:
                            date:
                              type: string
                              description: Date of the tournament or meet
                              example: 12.12.2025
                            going:
                              type: string
                              description: Track condition description
                              example: Good to Soft (Soft in places)
                            id:
                              type: string
                              description: Tournament or meet ID
                            name:
                              type: string
                              description: Name of the tournament or racecourse
                            race:
                              type: array
                              items:
                                type: object
                                properties:
                                  id:
                                    type: string
                                    description: Race ID
                                  name:
                                    type: string
                                    description: Race name
                                  datetime:
                                    type: string
                                    description: Date and time of the race
                                    example: '12.12.2025 10:40'
                                  offat:
                                    type: string
                                    description: Official off time or scheduled time
                                    example: '11:40'
                                  time:
                                    type: string
                                    description: Race start or scheduled time
                                    example: '11:40'
                                  distance:
                                    type: string
                                    description: Length of the race
                                    example: 2m 7f 214y
                                  status:
                                    type: string
                                    description: >-
                                      Status of the race (e.g., Scheduled,
                                      Finished)
                                    nullable: true
                                  class:
                                    type: string
                                    description: Class of the race
                                    nullable: true
                                  runners:
                                    type: object
                                    properties:
                                      horse:
                                        type: array
                                        items:
                                          type: object
                                          properties:
                                            id:
                                              type: string
                                              description: Horse ID
                                            name:
                                              type: string
                                              description: Horse name
                                            number:
                                              type: string
                                              description: Horse number in the race
                                            jockey:
                                              type: string
                                              description: Jockey name
                                              nullable: true
                                            jockey_id:
                                              type: string
                                              description: Jockey ID
                                              nullable: true
                                            trainer:
                                              type: string
                                              description: Trainer name
                                              nullable: true
                                            trainer_id:
                                              type: string
                                              description: Trainer ID
                                              nullable: true
                                            rating:
                                              type: string
                                              description: Horse rating
                                              nullable: true
                                            age:
                                              type: string
                                              description: Horse age
                                              nullable: true
                                            gender:
                                              type: string
                                              description: Horse gender
                                              nullable: true
                                            stall:
                                              type: string
                                              description: Stall number or position
                                              nullable: true
                                            wgt:
                                              type: string
                                              description: Weight carried by horse
                                              nullable: true
                                            wgt_lbs:
                                              type: string
                                              description: Weight carried in pounds
                                              nullable: true
                                            recent_form:
                                              type: object
                                              description: >-
                                                Recent form details (optional and
                                                complex)
                                              nullable: true
                                          required:
                                            - id
                                            - name
                                            - number
                                    required:
                                      - horse
                                  odds:
                                    nullable: true
                                    type: object
                                    properties:
                                      horse:
                                        type: array
                                        items:
                                          type: object
                                          properties:
                                            id:
                                              type: string
                                              description: Horse ID
                                            name:
                                              type: string
                                              description: Horse name
                                            number:
                                              type: string
                                              description: Horse number
                                            bookmakers:
                                              type: object
                                              properties:
                                                bookmaker:
                                                  type: array
                                                  items:
                                                    type: object
                                                    properties:
                                                      bookmaker_id:
                                                        type: string
                                                        description: Bookmaker ID
                                                        nullable: true
                                                      name:
                                                        type: string
                                                        description: Bookmaker name
                                                      odd:
                                                        type: string
                                                        description: Odd price
                                                        nullable: true
                                                      odd_id:
                                                        type: string
                                                        description: Odd ID
                                                        nullable: true
                                                      eachway:
                                                        type: string
                                                        description: Each way terms
                                                        nullable: true
                                                    required:
                                                      - name
                                              nullable: true
                                              description: Odds from bookmakers
                                          required:
                                            - id
                                            - name
                                            - number
                                    required:
                                      - horse
                                  results:
                                    nullable: true
                                    type: object
                                    properties:
                                      horse:
                                        type: array
                                        items:
                                          type: object
                                          properties:
                                            id:
                                              type: string
                                              description: Horse ID
                                            name:
                                              type: string
                                              description: Horse name
                                            number:
                                              type: string
                                              description: Horse number
                                            pos:
                                              type: string
                                              description: 'Position in the race (e.g. 1, 2, F, PU)'
                                            sp:
                                              type: string
                                              description: Starting price (betting odds)
                                              nullable: true
                                            time:
                                              type: string
                                              description: Race completion time
                                              nullable: true
                                            wgt:
                                              type: string
                                              description: Weight carried
                                              nullable: true
                                          required:
                                            - id
                                            - name
                                            - number
                                            - pos
                                    required:
                                      - horse
                                  wagers:
                                    nullable: true
                                    type: object
                                    properties:
                                      wager:
                                        oneOf:
                                          - type: object
                                            properties:
                                              numbers:
                                                type: string
                                                description: Numbers involved in the wager
                                              payoff:
                                                type: string
                                                description: Payout amount
                                                nullable: true
                                              pool:
                                                type: string
                                                description: Pool amount
                                                nullable: true
                                              type:
                                                type: string
                                                description: 'Type of wager (e.g., Win, Place, Exacta)'
                                            required:
                                              - numbers
                                              - type
                                          - type: array
                                            items:
                                              $ref: >-
                                                #/paths/~1horse-racing~1live~1%7Bcountry%7D/get/responses/200/content/application~1json/schema/properties/scores/properties/tournament/items/properties/race/items/properties/wagers/properties/wager/oneOf/0
                                    required:
                                      - wager
                                required:
                                  - id
                                  - name
                                  - datetime
                                  - offat
                                  - time
                                  - distance
                                  - runners
                          required:
                            - date
                            - going
                            - id
                            - name
                            - race
                    required:
                      - sport
                      - tournament
                required:
                  - scores
              example:
                scores:
                  sport: horse racing
                  tournament:
                    - date: 12.12.2025
                      going: Good to Soft (Soft in places)
                      id: '2788'
                      name: Doncaster
                      race:
                        - id: '1105890'
                          name: >-
                            Race 1 Bluebell Wood Childrens Hospice 'Chasing
                            Excellence' Novices' Chase
                          datetime: '12.12.2025 10:40'
                          offat: '11:40'
                          time: '11:40'
                          distance: 2m 7f 214y
                          status: ''
                          class: ''
                          runners:
                            horse:
                              - id: '2206953'
                                name: Gamesters Guy
                                number: '1'
                                jockey: Craig Nichol
                                jockey_id: '1370086'
                                trainer: O Greenall & J Guerriero
                                trainer_id: '1368073'
                                rating: '135'
                                age: ''
                                gender: ''
                                stall: ''
                                wgt: ''
                                wgt_lbs: '0'
                                recent_form: null
                              - id: '556889'
                                name: Moon Rocket
                                number: '2'
                                jockey: J J Burke
                                jockey_id: '1429394'
                                trainer: K C Bailey
                                trainer_id: '1002454'
                                rating: '141'
                                age: ''
                                gender: ''
                                stall: ''
                                wgt: ''
                                wgt_lbs: '0'
                                recent_form: null
                          odds: null
                          results:
                            horse:
                              - id: '2206953'
                                name: Gamesters Guy
                                number: '2'
                                pos: '1'
                                sp: '3.13'
                                time: 6m 25.59s
                                wgt: '70'
                              - id: '556889'
                                name: Moon Rocket
                                number: '1'
                                pos: '2'
                                sp: '1.33'
                                time: ''
                                wgt: '73'
                          wagers:
                            wager:
                              numbers: '2'
                              payoff: '3.13'
                              pool: ''
                              type: Win
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: Unauthorized - invalid or missing access_key or invalid sport
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: Resource Not Found - could not find resource
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  '/horse-racing/schedule/{country}':
    get:
      summary: Get Schedule By Country
      description: >
        Returns the schedule for Horse Racing including races, runners, and odds
        information by country. This endpoint data is updated every 30 minutes.
      tags:
        - "\U0001F40E Horse Racing (V1)"
      servers:
        - url: 'https://statpal.io/api/v1/'
          description: Production (v1)
      security:
        - ApiKeyAuth: []
      x-update-rate: 1800
      parameters:
        - name: country
          in: path
          required: true
          description: >-
            Country code for the horse racing schedule ('uk', 'usa', 'sa',
            'france')
          schema:
            type: string
            enum:
              - uk
              - usa
              - sa
              - france
      responses:
        '200':
          description: >-
            Successful response with Horse Racing schedule including races,
            runners, and odds details
          content:
            application/json:
              schema:
                type: object
                properties:
                  scores:
                    type: object
                    properties:
                      sport:
                        type: string
                        description: Sport name
                        example: horse racing
                      tournament:
                        type: array
                        items:
                          type: object
                          properties:
                            date:
                              type: string
                              description: Date of the tournament
                              example: 13.12.2025
                            going:
                              type: string
                              description: Track condition or going
                              example: Good to soft-soft in places
                            id:
                              type: string
                              description: Tournament ID
                            name:
                              type: string
                              description: Tournament or course name
                            race:
                              type: array
                              items:
                                type: object
                                properties:
                                  id:
                                    type: string
                                    description: Race ID
                                  name:
                                    type: string
                                    description: Race name
                                  datetime:
                                    type: string
                                    description: Date and time of the race
                                    example: '12.12.2025 10:55'
                                  offat:
                                    type: string
                                    description: Scheduled off time
                                    example: '11:55'
                                  time:
                                    type: string
                                    description: Race time
                                    example: '11:55'
                                  distance:
                                    type: string
                                    description: Race distance
                                    example: 2m 3f 88y
                                  class:
                                    type: string
                                    description: Race class
                                    nullable: true
                                  status:
                                    type: string
                                    description: Race status
                                    nullable: true
                                  runners:
                                    type: object
                                    properties:
                                      horse:
                                        type: array
                                        items:
                                          type: object
                                          properties:
                                            id:
                                              type: string
                                              description: Horse ID
                                            name:
                                              type: string
                                              description: Horse name
                                            number:
                                              type: string
                                              description: Horse race number
                                            age:
                                              type: string
                                              description: Age of horse
                                              nullable: true
                                            gender:
                                              type: string
                                              description: Gender of horse
                                              nullable: true
                                            jockey:
                                              type: string
                                              description: Jockey name
                                              nullable: true
                                            jockey_id:
                                              type: string
                                              description: Jockey ID
                                              nullable: true
                                            trainer:
                                              type: string
                                              description: Trainer name
                                              nullable: true
                                            trainer_id:
                                              type: string
                                              description: Trainer ID
                                              nullable: true
                                            rating:
                                              type: string
                                              description: Horse rating
                                              nullable: true
                                            wgt:
                                              type: string
                                              description: Weight in kg
                                              nullable: true
                                            wgt_lbs:
                                              type: string
                                              description: Weight in lbs
                                              nullable: true
                                            stall:
                                              type: string
                                              description: Stall number or position
                                              nullable: true
                                            recent_form:
                                              type: object
                                              properties:
                                                section:
                                                  type: array
                                                  items:
                                                    type: object
                                                    properties:
                                                      name:
                                                        type: string
                                                        description: Name of the form section
                                                      stat:
                                                        oneOf:
                                                          - type: object
                                                            $ref: >-
                                                              #/paths/~1horse-racing~1schedule~1%7Bcountry%7D/get/responses/200/content/application~1json/schema/properties/scores/properties/tournament/items/properties/race/items/properties/runners/properties/horse/items/properties/recent_form/properties/section/items/properties/stat/oneOf/1/items
                                                          - type: array
                                                            items:
                                                              type: object
                                                              properties:
                                                                name:
                                                                  type: string
                                                                  description: Name of stat
                                                                places:
                                                                  type: string
                                                                  description: Number of places
                                                                runs:
                                                                  type: string
                                                                  description: Number of runs
                                                                win_pct:
                                                                  type: string
                                                                  description: Win percentage
                                                                wins:
                                                                  type: string
                                                                  description: Number of wins
                                                              required:
                                                                - name
                                                                - places
                                                                - runs
                                                                - win_pct
                                                                - wins
                                                    required:
                                                      - name
                                                      - stat
                                              required:
                                                - section
                                          required:
                                            - id
                                            - name
                                            - number
                                    required:
                                      - horse
                                required:
                                  - id
                                  - name
                                  - datetime
                                  - offat
                                  - time
                                  - distance
                                  - class
                                  - status
                                  - runners
                          required:
                            - date
                            - id
                            - name
                            - race
                    required:
                      - sport
                      - tournament
                required:
                  - scores
              example:
                scores:
                  sport: horse racing
                  tournament:
                    - date: 13.12.2025
                      going: Good to soft-soft in places
                      id: '2788'
                      name: Doncaster
                      race:
                        - id: '1106189'
                          name: Race 1 bet365 Novices' Hurdle
                          datetime: '12.12.2025 10:55'
                          offat: '11:55'
                          time: '11:55'
                          distance: 2m 3f 88y
                          class: ''
                          status: ''
                          runners:
                            horse:
                              - id: '2813845'
                                name: Freshers Week
                                number: '1'
                                age: '4'
                                gender: gelding
                                jockey: Daire James McConville
                                jockey_id: '1470324'
                                trainer: C E Longsdon
                                trainer_id: '1181509'
                                rating: '118'
                                wgt: '72'
                                wgt_lbs: '160'
                                stall: ''
                                recent_form:
                                  ...: null
                              - id: '2743111'
                                name: Real Quartz
                                number: '2'
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: Unauthorized - invalid or missing access_key or invalid sport
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: Resource Not Found - could not find resource
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  /tennis/livescores:
    get:
      summary: Get Live Scores
      description: >
        Returns live Tennis scores with detailed tournament, matches, and player
        information. This endpoint data is updated every 15 seconds.
      tags:
        - "\U0001F3BE Tennis (V1)"
      servers:
        - url: 'https://statpal.io/api/v1/'
          description: Production (v1)
      security:
        - ApiKeyAuth: []
      x-update-rate: 15
      responses:
        '200':
          description: >-
            Successful response with Tennis live scores including tournament,
            match, and player details
          content:
            application/json:
              schema:
                type: object
                properties:
                  livescores:
                    type: object
                    properties:
                      sport:
                        type: string
                        description: Sport name
                        example: tennis
                      tournament:
                        type: array
                        items:
                          type: object
                          properties:
                            id:
                              type: string
                              description: Tournament ID
                            name:
                              type: string
                              description: Tournament name
                            match:
                              oneOf:
                                - type: object
                                  properties:
                                    date:
                                      type: string
                                      description: Match date
                                      example: 25.01.2025
                                    id:
                                      type: string
                                      description: Match ID
                                    status:
                                      type: string
                                      description: >-
                                        Match status (e.g., Not Started,
                                        Finished)
                                    tb:
                                      type: string
                                      description: 'Tie-break flag, if applicable'
                                      nullable: true
                                    time:
                                      type: string
                                      description: Match start or scheduled time
                                    player:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          id:
                                            type: string
                                            description: Player ID
                                          name:
                                            type: string
                                            description: Player name
                                          s1:
                                            type: string
                                            description: Score in set 1
                                            nullable: true
                                          s2:
                                            type: string
                                            description: Score in set 2
                                            nullable: true
                                          s3:
                                            type: string
                                            description: Score in set 3
                                            nullable: true
                                          s4:
                                            type: string
                                            description: Score in set 4
                                            nullable: true
                                          s5:
                                            type: string
                                            description: Score in set 5
                                            nullable: true
                                          serve:
                                            type: string
                                            description: >-
                                              Whether the player is serving
                                              (True/False)
                                          totalscore:
                                            type: string
                                            description: Total sets won by the player
                                            nullable: true
                                          winner:
                                            type: string
                                            description: >-
                                              Whether the player won the match
                                              (True/False)
                                          game_score:
                                            type: string
                                            description: Current game score if applicable
                                            nullable: true
                                          dp1:
                                            type: string
                                            description: >-
                                              Doubles partner 1 player ID (for doubles
                                              matches)
                                            nullable: true
                                          dp2:
                                            type: string
                                            description: >-
                                              Doubles partner 2 player ID (for doubles
                                              matches)
                                            nullable: true
                                        required:
                                          - id
                                          - name
                                          - serve
                                          - winner
                                  required:
                                    - date
                                    - id
                                    - status
                                    - tb
                                    - time
                                    - player
                                - type: array
                                  items:
                                    $ref: >-
                                      #/paths/~1tennis~1livescores/get/responses/200/content/application~1json/schema/properties/livescores/properties/tournament/items/properties/match/oneOf/0
                          required:
                            - id
                            - name
                            - match
                    required:
                      - sport
                      - tournament
                required:
                  - livescores
              example:
                livescores:
                  sport: tennis
                  tournament:
                    - id: '17741'
                      name: 'Wta - Singles: Australian Open (Australia), Hard'
                      match:
                        date: 25.01.2025
                        id: '2476379'
                        status: Finished
                        tb: 'False'
                        time: '08:45'
                        player:
                          - game_score: ''
                            id: '35576'
                            name: A. Sabalenka
                            s1: '3'
                            s2: '6'
                            s3: '5'
                            s4: ''
                            s5: ''
                            serve: 'False'
                            totalscore: '1'
                            winner: 'False'
                          - game_score: ''
                            id: '6377'
                            name: M. Keys
                            s1: '6'
                            s2: '2'
                            s3: '7'
                            s4: ''
                            s5: ''
                            serve: 'False'
                            totalscore: '2'
                            winner: 'True'
                    - id: '17531'
                      name: >-
                        Wta - Singles: Singapore (Singapore) - Qualification,
                        Hard (Indoor)
                      match:
                        - date: 25.01.2025
                          id: '2476509'
                          status: Finished
                          tb: 'False'
                          time: '02:10'
                          player:
                            - game_score: ''
                              id: '171497'
                              name: M. Joint
                              s1: '7'
                              s2: '6'
                              s3: ''
                              s4: ''
                              s5: ''
                              serve: 'False'
                              totalscore: '2'
                              winner: 'True'
                            - game_score: ''
                              id: '35954'
                              name: M. Hontama
                              s1: '5'
                              s2: '2'
                              s3: ''
                              s4: ''
                              s5: ''
                              serve: 'False'
                              totalscore: '0'
                              winner: 'False'
                    - id: '17742'
                      name: 'Atp - Doubles: Australian Open (Australia), Hard'
                      match:
                        date: 25.01.2025
                        id: '2476337'
                        status: Finished
                        tb: 'False'
                        time: '11:40'
                        player:
                          - dp1: '1744'
                            dp2: '26279'
                            game_score: ''
                            id: '117869'
                            name: Bolelli/ Vavassori
                            s1: '7.18'
                            s2: '6.5'
                            s3: '3'
                            s4: ''
                            s5: ''
                            serve: 'False'
                            totalscore: '1'
                            winner: 'False'
                          - dp1: '3182'
                            dp2: '85385'
                            game_score: ''
                            id: '254558'
                            name: Heliovaara/ Patten
                            s1: '6.16'
                            s2: '7.7'
                            s3: '6'
                            s4: ''
                            s5: ''
                            serve: 'False'
                            totalscore: '2'
                            winner: 'True'
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: Unauthorized - invalid or missing access_key or invalid sport
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: Resource Not Found - could not find resource
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  /tennis/livestats:
    get:
      summary: Get Live Stats
      description: >
        Returns live Tennis statistics with detailed tournament, match, player,
        and period statistics information. This endpoint data is updated every
        15 seconds.
      tags:
        - "\U0001F3BE Tennis (V1)"
      servers:
        - url: 'https://statpal.io/api/v1/'
          description: Production (v1)
      security:
        - ApiKeyAuth: []
      x-update-rate: 15
      responses:
        '200':
          description: >-
            Successful response with Tennis live stats including tournament,
            match, player, and detailed statistics
          content:
            application/json:
              schema:
                type: object
                properties:
                  livestats:
                    type: object
                    properties:
                      sport:
                        type: string
                        description: Sport name
                        example: tennis
                      tournament:
                        type: array
                        items:
                          type: object
                          properties:
                            id:
                              type: string
                              description: Tournament ID
                            name:
                              type: string
                              description: Tournament name
                            match:
                              oneOf:
                                - type: object
                                  properties:
                                    date:
                                      type: string
                                      description: Match date
                                      example: 25.01.2025
                                    id:
                                      type: string
                                      description: Match ID
                                    time:
                                      type: string
                                      description: Match start or scheduled time
                                    player:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          id:
                                            type: string
                                            description: Player ID
                                          name:
                                            type: string
                                            description: Player name
                                          dp1:
                                            type: string
                                            description: >-
                                              Doubles partner 1 player ID (for doubles
                                              matches)
                                            nullable: true
                                          dp2:
                                            type: string
                                            description: >-
                                              Doubles partner 2 player ID (for doubles
                                              matches)
                                            nullable: true
                                          stats:
                                            type: object
                                            properties:
                                              period:
                                                type: array
                                                items:
                                                  type: object
                                                  properties:
                                                    name:
                                                      type: string
                                                      description: >-
                                                        The name of the period (e.g., match,
                                                        set1, set2, set3)
                                                    type:
                                                      type: array
                                                      items:
                                                        type: object
                                                        properties:
                                                          name:
                                                            type: string
                                                            description: >-
                                                              Type name (e.g., Service, Return,
                                                              Points, Games)
                                                          stat:
                                                            type: array
                                                            items:
                                                              type: object
                                                              properties:
                                                                name:
                                                                  type: string
                                                                  description: 'Stat name (e.g., Aces, Double Faults)'
                                                                total:
                                                                  type: string
                                                                  description: >-
                                                                    Total count or empty string if not
                                                                    applicable
                                                                  nullable: true
                                                                value:
                                                                  type: string
                                                                  description: Current value or percentage
                                                                  nullable: true
                                                                won:
                                                                  type: string
                                                                  description: >-
                                                                    Points or matches won corresponding to
                                                                    the stat (if applicable)
                                                                  nullable: true
                                                              required:
                                                                - name
                                                                - total
                                                                - value
                                                                - won
                                                        required:
                                                          - name
                                                          - stat
                                                  required:
                                                    - name
                                                    - type
                                            required:
                                              - period
                                        required:
                                          - id
                                          - name
                                          - stats
                                    match_duration:
                                      type: object
                                      properties:
                                        set:
                                          type: array
                                          items:
                                            type: object
                                            properties:
                                              duration:
                                                type: string
                                                description: 'Duration of the set (e.g., "0:36")'
                                              value:
                                                type: string
                                                description: Set number or identifier
                                            required:
                                              - duration
                                              - value
                                        match:
                                          type: object
                                          properties:
                                            duration:
                                              type: string
                                              description: 'Total match duration (e.g., "2:04")'
                                          required:
                                            - duration
                                      required:
                                        - set
                                        - match
                                  required:
                                    - date
                                    - id
                                    - time
                                    - player
                                    - match_duration
                                - type: array
                                  items:
                                    $ref: >-
                                      #/paths/~1tennis~1livestats/get/responses/200/content/application~1json/schema/properties/livestats/properties/tournament/items/properties/match/oneOf/0
                          required:
                            - id
                            - name
                            - match
                    required:
                      - sport
                      - tournament
                required:
                  - livestats
              example:
                livestats:
                  sport: tennis
                  tournament:
                    - id: '17741'
                      name: 'Wta - Singles: Australian Open (Australia), Hard'
                      match:
                        date: 25.01.2025
                        id: '2476379'
                        time: '08:45'
                        player:
                          - id: '35576'
                            name: A. Sabalenka
                            stats:
                              period:
                                - name: match
                                  type:
                                    - name: Service
                                      stat:
                                        - name: Aces
                                          total: ''
                                          value: '3'
                                          won: ''
                          - id: '6377'
                            name: M. Keys
                            stats:
                              period:
                                - name: match
                                  type:
                                    - name: Service
                                      stat:
                                        - name: Aces
                                          total: ''
                                          value: '6'
                                          won: ''
                        match_duration:
                          set:
                            - duration: '0:36'
                              value: '1'
                            - duration: '0:45'
                              value: '2'
                            - duration: '0:43'
                              value: '3'
                          match:
                            duration: '2:04'
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: Unauthorized - invalid or missing access_key or invalid sport
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: Resource Not Found - could not find resource
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  '/tennis/daily/{day_offset_token}':
    get:
      summary: Get Matches Recent / Upcoming
      description: >
        Returns recent and upcoming Tennis matches with detailed tournament,
        matches, and player information. This endpoint data is updated every 12
        hours.
      tags:
        - "\U0001F3BE Tennis (V1)"
      servers:
        - url: 'https://statpal.io/api/v1/'
          description: Production (v1)
      security:
        - ApiKeyAuth: []
      parameters:
        - name: day_offset_token
          in: path
          description: >
            Day offset token indicating the day relative to today, e.g. 'd-7',
            ..., 'd-1', 'd1', 'd2', ..., 'd7'
          required: true
          schema:
            type: string
            enum:
              - d-1
              - d-2
              - d-3
              - d-4
              - d-5
              - d-6
              - d-7
              - d1
              - d2
              - d3
              - d4
              - d5
              - d6
              - d7
      x-update-rate: 43200
      responses:
        '200':
          description: >-
            Successful response with recent or upcoming Tennis matches including
            tournament, match, and player details
          content:
            application/json:
              schema:
                type: object
                properties:
                  scores:
                    type: object
                    properties:
                      sport:
                        type: string
                        description: Sport name
                        example: tennis
                      tournament:
                        type: array
                        items:
                          type: object
                          properties:
                            id:
                              type: string
                              description: Tournament ID
                            name:
                              type: string
                              description: Tournament name
                            match:
                              type: array
                              items:
                                type: object
                                properties:
                                  date:
                                    type: string
                                    description: Match date
                                    example: 24.01.2025
                                  id:
                                    type: string
                                    description: Match ID
                                  status:
                                    type: string
                                    description: >-
                                      Match status (e.g., Not Started, Finished,
                                      Retired)
                                  time:
                                    type: string
                                    description: Match start or scheduled time
                                  player:
                                    type: array
                                    items:
                                      type: object
                                      properties:
                                        id:
                                          type: string
                                          description: Player ID
                                        name:
                                          type: string
                                          description: Player name
                                        s1:
                                          type: string
                                          description: Score in set 1
                                          nullable: true
                                        s2:
                                          type: string
                                          description: Score in set 2
                                          nullable: true
                                        s3:
                                          type: string
                                          description: Score in set 3
                                          nullable: true
                                        s4:
                                          type: string
                                          description: Score in set 4
                                          nullable: true
                                        s5:
                                          type: string
                                          description: Score in set 5
                                          nullable: true
                                        serve:
                                          type: string
                                          description: >-
                                            Whether the player is serving
                                            (True/False)
                                        totalscore:
                                          type: string
                                          description: Total sets won by the player
                                          nullable: true
                                        winner:
                                          type: string
                                          description: >-
                                            Whether the player won the match
                                            (True/False)
                                        game_score:
                                          type: string
                                          description: Current game score if applicable
                                          nullable: true
                                        dp1:
                                          type: string
                                          description: >-
                                            Doubles partner 1 player ID (for doubles
                                            matches)
                                          nullable: true
                                        dp2:
                                          type: string
                                          description: >-
                                            Doubles partner 2 player ID (for doubles
                                            matches)
                                          nullable: true
                                      required:
                                        - id
                                        - name
                                        - serve
                                        - winner
                                required:
                                  - date
                                  - id
                                  - status
                                  - time
                                  - player
                          required:
                            - id
                            - name
                            - match
                    required:
                      - sport
                      - tournament
                required:
                  - scores
              example:
                scores:
                  sport: tennis
                  tournament:
                    - id: '17740'
                      name: 'Atp - Singles: Australian Open (Australia), Hard'
                      match:
                        - date: 24.01.2025
                          id: '2476014'
                          status: Retired
                          time: '03:45'
                          player:
                            - game_score: '0'
                              id: '3444'
                              name: N. Djokovic
                              s1: '6'
                              s2: ''
                              s3: ''
                              s4: ''
                              s5: ''
                              serve: 'False'
                              totalscore: '0'
                              winner: 'False'
                            - game_score: '0'
                              id: '9495'
                              name: A. Zverev
                              s1: '7'
                              s2: ''
                              s3: ''
                              s4: ''
                              s5: ''
                              serve: 'False'
                              totalscore: '1'
                              winner: 'True'
                        - date: 24.01.2025
                          id: '2476182'
                          status: Finished
                          time: '08:45'
                          player:
                            - game_score: ''
                              id: '58323'
                              name: J. Sinner
                              s1: '7'
                              s2: '6'
                              s3: '6'
                              s4: ''
                              s5: ''
                              serve: 'False'
                              totalscore: '3'
                              winner: 'True'
                            - game_score: ''
                              id: '97382'
                              name: B. Shelton
                              s1: '6'
                              s2: '2'
                              s3: '2'
                              s4: ''
                              s5: ''
                              serve: 'False'
                              totalscore: '0'
                              winner: 'False'
                    - id: '17705'
                      name: 'Wta - Doubles: Australian Open (Australia), Hard'
                      match:
                        - date: 24.01.2025
                          id: '2476155'
                          status: Finished
                          time: '01:10'
                          player:
                            - dp1: '4806'
                              dp2: '11261'
                              game_score: ''
                              id: '260923'
                              name: Siniakova/ Townsend
                              s1: '6'
                              s2: '6'
                              s3: '6'
                              s4: ''
                              s5: ''
                              serve: 'False'
                              totalscore: '2'
                              winner: 'True'
                            - dp1: '127589'
                              dp2: '68056'
                              game_score: ''
                              id: '276043'
                              name: Andreeva/ Shnaider
                              s1: '7'
                              s2: '4'
                              s3: '3'
                              s4: ''
                              s5: ''
                              serve: 'False'
                              totalscore: '1'
                              winner: 'False'
                        - date: 24.01.2025
                          id: '2475959'
                          status: Finished
                          time: '03:50'
                          player:
                            - dp1: '1058'
                              dp2: '10577'
                              game_score: ''
                              id: '296722'
                              name: Hsieh S-/Ostapenko
                              s1: '7'
                              s2: '3'
                              s3: '6'
                              s4: ''
                              s5: ''
                              serve: 'False'
                              totalscore: '2'
                              winner: 'True'
                            - dp1: '6453'
                              dp2: '6460'
                              game_score: ''
                              id: '216943'
                              name: Dabrowski/ Routliffe
                              s1: '6'
                              s2: '6'
                              s3: '3'
                              s4: ''
                              s5: ''
                              serve: 'False'
                              totalscore: '1'
                              winner: 'False'
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: Unauthorized - invalid or missing access_key or invalid sport
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: Resource Not Found - could not find resource
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  '/tennis/tournament-list/{tournament_type}':
    get:
      summary: Get Tournament List
      description: >
        Returns a list of Tennis tournaments with detailed tournament
        information including category, dates, location, surface, and prize
        money. This endpoint data is updated every 12 hours.
      tags:
        - "\U0001F3BE Tennis (V1)"
      servers:
        - url: 'https://statpal.io/api/v1/'
          description: Production (v1)
      security:
        - ApiKeyAuth: []
      x-update-rate: 43200
      parameters:
        - name: tournament_type
          in: path
          description: >-
            Type of tennis tournament to retrieve; must be either 'atp' or
            'wta'.
          required: true
          schema:
            type: string
            enum:
              - atp
              - wta
      responses:
        '200':
          description: Successful response with Tennis tournament list details
          content:
            application/json:
              schema:
                type: object
                properties:
                  tournaments:
                    type: object
                    properties:
                      sport:
                        type: string
                        description: Sport name
                        example: tennis
                      tournament:
                        type: array
                        items:
                          type: object
                          properties:
                            category:
                              type: string
                              description: >-
                                Category of the tournament (e.g., ATP, ATP 250,
                                Grand Slam)
                              example: ATP
                            date_start:
                              type: string
                              format: date
                              description: >-
                                Start date of the tournament (YYYY-MM-DD or
                                DD.MM.YYYY — adapt as needed but example uses
                                YYYY-MM-DD)
                              example: '2024-12-27'
                            date_end:
                              type: string
                              format: date
                              description: >-
                                End date of the tournament (YYYY-MM-DD or
                                DD.MM.YYYY)
                              example: '2025-01-05'
                            doubles_id:
                              type: string
                              description: >-
                                Doubles tournament ID if applicable, otherwise
                                empty string
                              nullable: true
                              example: ''
                            id:
                              type: string
                              description: Tournament ID
                              example: '49679'
                            location:
                              type: string
                              description: Location of the tournament
                              example: 'Perth-Sydney, Australia'
                            name:
                              type: string
                              description: Name of the tournament
                              example: United Cup
                            surface:
                              type: string
                              description: >-
                                Surface type for the tournament (e.g., Hard,
                                Clay, Grass)
                              example: Hard
                            prize_money:
                              type: string
                              description: >-
                                Prize money for the tournament formatted as a
                                string including currency symbol
                              example: '$5,000,000'
                          required:
                            - category
                            - date_start
                            - date_end
                            - doubles_id
                            - id
                            - location
                            - name
                            - surface
                            - prize_money
                    required:
                      - sport
                      - tournament
                required:
                  - tournaments
              example:
                tournaments:
                  sport: tennis
                  tournament:
                    - category: ATP
                      date_start: 27.12.2024
                      date_end: 05.01.2025
                      doubles_id: ''
                      id: '49679'
                      location: 'Perth-Sydney, Australia'
                      name: United Cup
                      surface: Hard
                      prize_money: '$5,000,000'
                    - category: ATP 250
                      date_start: 29.12.2024
                      date_end: 05.01.2025
                      doubles_id: '17582'
                      id: '20870'
                      location: 'Brisbane, Australia'
                      name: Brisbane International presented by Evie
                      surface: Hard
                      prize_money: $0
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: >-
            Unauthorized - invalid or missing access_key or invalid
            tournament_type
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: Resource Not Found - could not find resource
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  '/tennis/tournament/{tournament_id}':
    get:
      summary: Get Matches By Tournament
      description: >
        Returns Tennis matches data filtered by tournament ID with detailed
        information for each match including court, date, status, and player
        details.


        Find **tournament_id** in the */tournament-list/{tournament_type}*
        endpoint.


        This endpoint data is updated every 1 hour.
      tags:
        - "\U0001F3BE Tennis (V1)"
      servers:
        - url: 'https://statpal.io/api/v1/'
          description: Production (v1)
      security:
        - ApiKeyAuth: []
      parameters:
        - name: tournament_id
          in: path
          description: Tournament ID to filter matches
          required: true
          schema:
            type: integer
      x-update-rate: 3600
      responses:
        '200':
          description: >-
            Successful response with tennis matches data filtered by tournament
            including weeks and detailed player info
          content:
            application/json:
              schema:
                type: object
                properties:
                  scores:
                    type: object
                    properties:
                      category:
                        type: string
                        description: Match category or type
                        example: atp-singles
                      sport:
                        type: string
                        description: Sport name
                        example: tennis
                      tournament:
                        type: object
                        properties:
                          id:
                            type: string
                            description: Tournament ID
                          league:
                            type: string
                            description: League or tournament name
                          season:
                            type: string
                            description: Season year
                          week:
                            type: array
                            items:
                              type: object
                              properties:
                                number:
                                  type: string
                                  description: Week or round number/name in the tournament
                                qualification:
                                  type: string
                                  description: Whether this week is qualification or not
                                match:
                                  oneOf:
                                    - type: object
                                      properties:
                                        court:
                                          type: string
                                          description: Court name or location
                                          nullable: true
                                        date:
                                          type: string
                                          description: Match date (DD.MM.YYYY)
                                          example: 12.04.2025
                                        id:
                                          type: string
                                          description: Match ID
                                        status:
                                          type: string
                                          description: >-
                                            Match status (e.g., Not Started,
                                            Finished, Retired)
                                        tb:
                                          type: string
                                          description: Tie-break flag
                                          nullable: true
                                        time:
                                          type: string
                                          description: 'Match start or scheduled time (HH:MM)'
                                        player:
                                          type: array
                                          items:
                                            type: object
                                            properties:
                                              id:
                                                type: string
                                                description: Player ID
                                              name:
                                                type: string
                                                description: Player name
                                              s1:
                                                type: string
                                                description: Score in set 1
                                                nullable: true
                                              s2:
                                                type: string
                                                description: Score in set 2
                                                nullable: true
                                              s3:
                                                type: string
                                                description: Score in set 3
                                                nullable: true
                                              s4:
                                                type: string
                                                description: Score in set 4
                                                nullable: true
                                              s5:
                                                type: string
                                                description: Score in set 5
                                                nullable: true
                                              serve:
                                                type: string
                                                description: >-
                                                  Whether the player is serving
                                                  (True/False)
                                              totalscore:
                                                type: string
                                                description: Total sets won by the player
                                                nullable: true
                                              winner:
                                                type: string
                                                description: >-
                                                  Whether the player won the match
                                                  (True/False)
                                              game_score:
                                                type: string
                                                description: Current game score if applicable
                                                nullable: true
                                            required:
                                              - id
                                              - name
                                              - serve
                                              - winner
                                      required:
                                        - date
                                        - id
                                        - status
                                        - tb
                                        - time
                                        - player
                                    - type: array
                                      items:
                                        $ref: >-
                                          #/paths/~1tennis~1tournament~1%7Btournament_id%7D/get/responses/200/content/application~1json/schema/properties/scores/properties/tournament/properties/week/items/properties/match/oneOf/0
                              required:
                                - number
                                - qualification
                                - match
                        required:
                          - id
                          - league
                          - season
                          - week
                    required:
                      - category
                      - sport
                      - tournament
                required:
                  - scores
              example:
                scores:
                  category: atp-singles
                  sport: tennis
                  tournament:
                    id: '22697'
                    league: Barcelona
                    season: '2025'
                    week:
                      - number: Barcelona - Semi-finals
                        qualification: 'True'
                        match:
                          - court: Pista 2
                            date: 12.04.2025
                            id: '2495173'
                            status: Retired
                            tb: 'False'
                            time: '08:05'
                            player:
                              - game_score: '0'
                                id: '5635'
                                name: F. Coria
                                s1: '5'
                                s2: '0'
                                s3: ''
                                s4: ''
                                s5: ''
                                serve: 'False'
                                totalscore: '0'
                                winner: 'False'
                              - game_score: '30'
                                id: '16262'
                                name: L. Djere
                                s1: '7'
                                s2: '0'
                                s3: ''
                                s4: ''
                                s5: ''
                                serve: 'False'
                                totalscore: '1'
                                winner: 'True'
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: Unauthorized - invalid or missing access_key or invalid sport
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: >-
            Resource Not Found - could not find resource for the tournament_id
            given
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  '/tennis/standings/{tournament_type}':
    get:
      summary: Get Standings
      description: >
        Returns Tennis player standings including player rank, points, country,
        and movement details. This endpoint data is updated every 1 hour.
      tags:
        - "\U0001F3BE Tennis (V1)"
      servers:
        - url: 'https://statpal.io/api/v1/'
          description: Production (v1)
      security:
        - ApiKeyAuth: []
      x-update-rate: 3600
      parameters:
        - name: tournament_type
          in: path
          description: Tournament type (atp or wta)
          required: true
          schema:
            type: string
            enum:
              - atp
              - wta
      responses:
        '200':
          description: Successful response with Tennis player standings
          content:
            application/json:
              schema:
                type: object
                properties:
                  standings:
                    type: object
                    properties:
                      sport:
                        type: string
                        description: Sport name
                        example: tennis
                      player:
                        type: array
                        items:
                          type: object
                          properties:
                            id:
                              type: string
                              description: Player ID
                              example: '87658'
                            name:
                              type: string
                              description: Player name
                              example: Carlos Alcaraz
                            country:
                              type: string
                              description: Player country
                              example: Spain
                            rank:
                              type: string
                              description: Player rank in standings
                              example: '1'
                            points:
                              type: string
                              description: Player points
                              example: '12050'
                            movement:
                              type: string
                              description: >-
                                Player movement in the standings (e.g., up,
                                down, same)
                              enum:
                                - up
                                - down
                                - same
                              example: same
                          required:
                            - id
                            - name
                            - country
                            - rank
                            - points
                            - movement
                    required:
                      - sport
                      - player
                required:
                  - standings
              example:
                standings:
                  sport: tennis
                  player:
                    - id: '87658'
                      name: Carlos Alcaraz
                      country: Spain
                      rank: '1'
                      points: '12050'
                      movement: same
                    - id: '58323'
                      name: Jannik Sinner
                      country: Italy
                      rank: '2'
                      points: '11500'
                      movement: same
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: Unauthorized - invalid or missing access_key or invalid sport
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: Resource Not Found - could not find resource
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  /tennis/odds:
    get:
      summary: Get Pre-Match Odds
      description: >
        Returns pre-match Tennis odds including detailed tournament, matches,
        players, and bookmaker odds information. This endpoint data is updated
        every 30 minutes.
      tags:
        - "\U0001F3BE Tennis (V1)"
      servers:
        - url: 'https://statpal.io/api/v1/'
          description: Production (v1)
      security:
        - ApiKeyAuth: []
      x-update-rate: 1800
      responses:
        '200':
          description: >-
            Successful response with Tennis pre-match odds including
            tournaments, matches, players, and bookmaker odds
          content:
            application/json:
              schema:
                type: object
                properties:
                  odds:
                    type: object
                    properties:
                      sport:
                        type: string
                        description: Sport name
                        example: tennis
                      tournament:
                        type: array
                        items:
                          type: object
                          properties:
                            gid:
                              type: string
                              description: Global tournament ID
                            id:
                              type: string
                              description: Tournament ID
                            name:
                              type: string
                              description: Tournament name
                            matches:
                              type: object
                              properties:
                                match:
                                  type: object
                                  properties:
                                    date:
                                      type: string
                                      description: Match date
                                      example: 26.01.2025
                                    id:
                                      type: string
                                      description: Match ID
                                    status:
                                      type: string
                                      description: >-
                                        Match status code (e.g., "1" for
                                        scheduled)
                                    time:
                                      type: string
                                      description: Match start or scheduled time
                                    player:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          id:
                                            type: string
                                            description: Player ID
                                          name:
                                            type: string
                                            description: Player name
                                          s1:
                                            type: string
                                            description: >-
                                              Score in set 1 (usually empty for
                                              pre-match)
                                            nullable: true
                                          s2:
                                            type: string
                                            description: Score in set 2
                                            nullable: true
                                          s3:
                                            type: string
                                            description: Score in set 3
                                            nullable: true
                                          s4:
                                            type: string
                                            description: Score in set 4
                                            nullable: true
                                          s5:
                                            type: string
                                            description: Score in set 5
                                            nullable: true
                                          totalscore:
                                            type: string
                                            description: Total sets won (empty pre-match)
                                            nullable: true
                                          winner:
                                            type: string
                                            description: Winner flag (empty pre-match)
                                            nullable: true
                                        required:
                                          - id
                                          - name
                                    odds:
                                      type: object
                                      properties:
                                        ts:
                                          type: string
                                          description: Timestamp of the odds data
                                        type:
                                          type: array
                                          items:
                                            type: object
                                            properties:
                                              id:
                                                type: string
                                                description: Odds type ID
                                              stop:
                                                type: string
                                                description: >-
                                                  Whether this odds type is stopped
                                                  ("True"/"False")
                                              value:
                                                type: string
                                                description: >-
                                                  Odds type description (e.g., Home/Away,
                                                  Over/Under)
                                              bookmaker:
                                                oneOf:
                                                  - type: object
                                                    properties:
                                                      id:
                                                        type: string
                                                        description: Bookmaker ID
                                                      name:
                                                        type: string
                                                        description: Bookmaker name
                                                      stop:
                                                        type: string
                                                        description: >-
                                                          Whether this bookmaker is stopped
                                                          ("True"/"False")
                                                      ts:
                                                        type: string
                                                        description: Timestamp of bookmaker odds update
                                                      odd:
                                                        oneOf:
                                                          - type: object
                                                            properties:
                                                              id:
                                                                type: string
                                                                description: Odd ID
                                                              name:
                                                                type: string
                                                                description: 'Odd name (e.g., Home, Away, Over, Under)'
                                                              value:
                                                                type: string
                                                                description: Odd value (decimal)
                                                            required:
                                                              - id
                                                              - name
                                                              - value
                                                          - type: array
                                                            items:
                                                              $ref: >-
                                                                #/paths/~1tennis~1odds/get/responses/200/content/application~1json/schema/properties/odds/properties/tournament/items/properties/matches/properties/match/properties/odds/properties/type/items/properties/bookmaker/oneOf/0/properties/odd/oneOf/0
                                                      total:
                                                        oneOf:
                                                          - type: object
                                                            properties:
                                                              ismain:
                                                                type: string
                                                                description: >-
                                                                  Flag if this total is main market
                                                                  ("True"/"False")
                                                              name:
                                                                type: string
                                                                description: >-
                                                                  Total name or threshold (e.g., "3.5",
                                                                  "21.5")
                                                              stop:
                                                                type: string
                                                                description: >-
                                                                  Whether this total is stopped
                                                                  ("True"/"False")
                                                              odd:
                                                                oneOf:
                                                                  - $ref: >-
                                                                      #/paths/~1tennis~1odds/get/responses/200/content/application~1json/schema/properties/odds/properties/tournament/items/properties/matches/properties/match/properties/odds/properties/type/items/properties/bookmaker/oneOf/0/properties/odd/oneOf/0
                                                                  - type: array
                                                                    items:
                                                                      $ref: >-
                                                                        #/paths/~1tennis~1odds/get/responses/200/content/application~1json/schema/properties/odds/properties/tournament/items/properties/matches/properties/match/properties/odds/properties/type/items/properties/bookmaker/oneOf/0/properties/odd/oneOf/0
                                                            required:
                                                              - ismain
                                                              - name
                                                              - stop
                                                              - odd
                                                          - type: array
                                                            items:
                                                              $ref: >-
                                                                #/paths/~1tennis~1odds/get/responses/200/content/application~1json/schema/properties/odds/properties/tournament/items/properties/matches/properties/match/properties/odds/properties/type/items/properties/bookmaker/oneOf/0/properties/total/oneOf/0
                                                      handicap:
                                                        oneOf:
                                                          - type: object
                                                            properties:
                                                              ismain:
                                                                type: string
                                                                description: >-
                                                                  Flag if this handicap is main market
                                                                  ("True"/"False")
                                                              name:
                                                                type: string
                                                                description: 'Handicap value (e.g., "-1.5")'
                                                              stop:
                                                                type: string
                                                                description: >-
                                                                  Whether this handicap is stopped
                                                                  ("True"/"False")
                                                              odd:
                                                                oneOf:
                                                                  - $ref: >-
                                                                      #/paths/~1tennis~1odds/get/responses/200/content/application~1json/schema/properties/odds/properties/tournament/items/properties/matches/properties/match/properties/odds/properties/type/items/properties/bookmaker/oneOf/0/properties/odd/oneOf/0
                                                                  - type: array
                                                                    items:
                                                                      $ref: >-
                                                                        #/paths/~1tennis~1odds/get/responses/200/content/application~1json/schema/properties/odds/properties/tournament/items/properties/matches/properties/match/properties/odds/properties/type/items/properties/bookmaker/oneOf/0/properties/odd/oneOf/0
                                                            required:
                                                              - ismain
                                                              - name
                                                              - stop
                                                              - odd
                                                          - type: array
                                                            items:
                                                              $ref: >-
                                                                #/paths/~1tennis~1odds/get/responses/200/content/application~1json/schema/properties/odds/properties/tournament/items/properties/matches/properties/match/properties/odds/properties/type/items/properties/bookmaker/oneOf/0/properties/handicap/oneOf/0
                                                    required:
                                                      - id
                                                      - name
                                                      - stop
                                                      - ts
                                                  - type: array
                                                    items:
                                                      $ref: >-
                                                        #/paths/~1tennis~1odds/get/responses/200/content/application~1json/schema/properties/odds/properties/tournament/items/properties/matches/properties/match/properties/odds/properties/type/items/properties/bookmaker/oneOf/0
                                            required:
                                              - id
                                              - stop
                                              - value
                                              - bookmaker
                                      required:
                                        - ts
                                        - type
                                  required:
                                    - date
                                    - id
                                    - status
                                    - time
                                    - player
                                    - odds
                              required:
                                - match
                          required:
                            - gid
                            - id
                            - name
                            - matches
                    required:
                      - sport
                      - tournament
                required:
                  - odds
              example:
                odds:
                  sport: tennis
                  tournament:
                    - gid: '17740'
                      id: '17740'
                      name: 'Atp - Singles: Australian Open (Australia), Hard'
                      matches:
                        match:
                          date: 26.01.2025
                          id: '2476527'
                          status: '1'
                          time: '08:30'
                          player:
                            - id: '58323'
                              name: J. Sinner
                              s1: ''
                              s2: ''
                              s3: ''
                              s4: ''
                              s5: ''
                              totalscore: ''
                              winner: ''
                            - id: '9495'
                              name: A. Zverev
                              s1: ''
                              s2: ''
                              s3: ''
                              s4: ''
                              s5: ''
                              totalscore: ''
                              winner: ''
                          odds:
                            ts: '1737809514'
                            type:
                              - id: '1501'
                                stop: 'False'
                                value: Home/Away
                                bookmaker:
                                  - id: '1501'
                                    name: bwin
                                    stop: 'False'
                                    ts: '1737792305'
                                    odd:
                                      - id: '82305122215671567'
                                        name: Home
                                        value: '1.36'
                                      - id: '82305122215701570'
                                        name: Away
                                        value: '3.25'
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: Unauthorized - invalid or missing access_key or invalid sport
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: Resource Not Found - could not find resource
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  /soccer/livescores:
    get:
      summary: Get Live Scores
      description: >
        Returns live Soccer scores with detailed league, matches, and player
        event information. This endpoint data is updated every 15 seconds.
      tags:
        - ⚽ Soccer (V1 - Legacy)
      servers:
        - url: 'https://statpal.io/api/v1/'
          description: Production (v1)
      security:
        - ApiKeyAuth: []
      x-update-rate: 15
      responses:
        '200':
          description: >-
            Successful response with Soccer live scores including league, match,
            team and event details
          content:
            application/json:
              schema:
                type: object
                properties:
                  livescore:
                    type: object
                    properties:
                      updated:
                        type: string
                        description: Timestamp of last update
                        example: '12.12.2025 19:06:49'
                      sport:
                        type: string
                        description: Sport name
                        example: soccer
                      league:
                        type: array
                        items:
                          type: object
                          properties:
                            country:
                              type: string
                              description: Country name
                              example: algeria
                            name:
                              type: string
                              description: League or competition name
                              example: 'Algeria: Algeria Cup'
                            cup:
                              type: string
                              description: >-
                                Whether this is a cup competition ("True" or
                                "False")
                              example: 'True'
                            id:
                              type: string
                              description: League ID
                              example: '4166'
                            sub_id:
                              type: string
                              description: Sub-league or competition ID if applicable
                              example: ''
                            match:
                              oneOf:
                                - type: object
                                  properties:
                                    alternate_id:
                                      type: string
                                      description: Alternate match ID
                                      example: '6640082'
                                    alternate_id_2:
                                      type: string
                                      description: Secondary alternate match ID
                                      example: '8826610'
                                    commentary:
                                      type: string
                                      description: >-
                                        Whether commentary is available ("True"
                                        or "False")
                                      example: 'False'
                                    coveredlive:
                                      type: string
                                      description: >-
                                        Whether match is covered live ("True" or
                                        "False"), nullable
                                      nullable: true
                                      example: 'True'
                                    date:
                                      type: string
                                      description: Match date
                                      example: 12.12.2025
                                    id:
                                      type: string
                                      description: Match ID
                                      example: '6132668'
                                    inj_minute:
                                      type: string
                                      description: 'Injury minute if applicable, nullable'
                                      nullable: true
                                      example: ''
                                    inj_time:
                                      type: string
                                      description: 'Injury time if applicable, nullable'
                                      nullable: true
                                      example: ''
                                    static_id:
                                      type: string
                                      description: Static unique ID for the match
                                      example: '12122523590052337596'
                                    status:
                                      type: string
                                      description: Match status or current minute
                                      example: FT
                                    time:
                                      type: string
                                      description: Match start or current time
                                      example: '13:30'
                                    venue:
                                      type: string
                                      description: 'Venue of the match, nullable'
                                      nullable: true
                                      example: ''
                                    home:
                                      type: object
                                      properties:
                                        agg:
                                          type: string
                                          description: >-
                                            Aggregate flag, if part of a two-legged
                                            fixture (e.g. "true" or "false"),
                                            nullable
                                          nullable: true
                                          example: 'false'
                                        goals:
                                          type: string
                                          description: >-
                                            Number of goals scored by the team or
                                            "?" if unknown
                                          example: '4'
                                        id:
                                          type: string
                                          description: Team ID
                                          example: '2337596'
                                        name:
                                          type: string
                                          description: Team name
                                          example: ES Setif
                                      required:
                                        - goals
                                        - id
                                        - name
                                    away:
                                      $ref: >-
                                        #/paths/~1soccer~1livescores/get/responses/200/content/application~1json/schema/properties/livescore/properties/league/items/properties/match/oneOf/0/properties/home
                                    events:
                                      nullable: true
                                      type: object
                                      properties:
                                        event:
                                          oneOf:
                                            - type: object
                                              properties:
                                                assist:
                                                  type: string
                                                  description: 'Name of player who assisted, if any'
                                                  nullable: true
                                                  example: ''
                                                assistid:
                                                  type: string
                                                  description: 'ID of player who assisted, if any'
                                                  nullable: true
                                                  example: ''
                                                extra_min:
                                                  type: string
                                                  description: >-
                                                    Extra minute notation (e.g., injury
                                                    time), nullable
                                                  nullable: true
                                                  example: ''
                                                id:
                                                  type: string
                                                  description: Event ID
                                                  example: '67279604'
                                                minute:
                                                  type: string
                                                  description: Match minute the event occurred
                                                  example: '6'
                                                player:
                                                  type: string
                                                  description: Player name involved in this event
                                                  nullable: true
                                                  example: A. Biramahire
                                                playerid:
                                                  type: string
                                                  description: Player ID involved in this event
                                                  nullable: true
                                                  example: '2863849'
                                                result:
                                                  type: string
                                                  description: >-
                                                    Score result after the event, if
                                                    applicable
                                                  nullable: true
                                                  example: '[0 - 1]'
                                                team:
                                                  type: string
                                                  description: Team side ("home" or "away")
                                                  example: away
                                                type:
                                                  type: string
                                                  description: >-
                                                    Event type (e.g., goal, yellowcard,
                                                    subst, pen miss, var)
                                                  example: goal
                                              required:
                                                - id
                                                - minute
                                                - team
                                                - type
                                            - type: array
                                              items:
                                                $ref: >-
                                                  #/paths/~1soccer~1livescores/get/responses/200/content/application~1json/schema/properties/livescore/properties/league/items/properties/match/oneOf/0/properties/events/properties/event/oneOf/0
                                      required:
                                        - event
                                    ht:
                                      nullable: true
                                      type: object
                                      properties:
                                        score:
                                          type: string
                                          description: 'Half-time score in format "[home-away]"'
                                          example: '[0-2]'
                                      required:
                                        - score
                                    ft:
                                      nullable: true
                                      type: object
                                      properties:
                                        score:
                                          type: string
                                          description: 'Full-time score in format "[home-away]"'
                                          example: '[0-4]'
                                      required:
                                        - score
                                  required:
                                    - alternate_id
                                    - alternate_id_2
                                    - commentary
                                    - date
                                    - id
                                    - static_id
                                    - status
                                    - time
                                    - home
                                    - away
                                - type: array
                                  items:
                                    $ref: >-
                                      #/paths/~1soccer~1livescores/get/responses/200/content/application~1json/schema/properties/livescore/properties/league/items/properties/match/oneOf/0
                          required:
                            - country
                            - name
                            - cup
                            - id
                            - sub_id
                            - match
                    required:
                      - updated
                      - sport
                      - league
                required:
                  - livescore
              example:
                livescore:
                  updated: '12.12.2025 19:06:49'
                  sport: soccer
                  league:
                    - country: algeria
                      name: 'Algeria: Algeria Cup'
                      cup: 'True'
                      id: '4166'
                      sub_id: ''
                      match:
                        - alternate_id: '6640082'
                          alternate_id_2: '8826610'
                          commentary: 'False'
                          date: 12.12.2025
                          id: '6132668'
                          inj_minute: ''
                          inj_time: ''
                          static_id: '12122523590052337596'
                          status: FT
                          time: '13:30'
                          venue: ''
                          home:
                            agg: 'false'
                            goals: '0'
                            id: '2359005'
                            name: Bechar Djedid
                          away:
                            agg: 'true'
                            goals: '4'
                            id: '2337596'
                            name: ES Setif
                          events:
                            event:
                              - assist: ''
                                assistid: ''
                                extra_min: ''
                                id: '67279604'
                                minute: '6'
                                player: A. Biramahire
                                playerid: '2863849'
                                result: '[0 - 1]'
                                team: away
                                type: goal
                              - assist: ''
                                assistid: ''
                                extra_min: ''
                                id: '67279605'
                                minute: '30'
                                player: A. Djahnit
                                playerid: '2525658'
                                result: '[0 - 2]'
                                team: away
                                type: goal
                          ht:
                            score: '[0-2]'
                          ft:
                            score: '[0-4]'
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: Unauthorized - invalid or missing access_key or invalid sport
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: Resource Not Found - could not find resource
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  '/soccer/daily/{day_offset_token}':
    get:
      summary: Get Matches Recent / Upcoming
      description: >
        Returns Soccer matches for recent or upcoming days offset from today.
        The day_offset_token controls which day relative to today to fetch
        matches for. This endpoint data is updated every 12 hours.
      tags:
        - ⚽ Soccer (V1 - Legacy)
      servers:
        - url: 'https://statpal.io/api/v1/'
          description: Production (v1)
      security:
        - ApiKeyAuth: []
      parameters:
        - name: day_offset_token
          in: path
          required: true
          schema:
            type: string
            enum:
              - d-7
              - d-6
              - d-5
              - d-4
              - d-3
              - d-2
              - d-1
              - d1
              - d2
              - d3
              - d4
              - d5
              - d6
              - d7
          description: >
            Day offset token relative to today (e.g. d-1 for yesterday, d1 for
            tomorrow).  Allowed values from d-7 to d7.
      x-update-rate: 43200
      responses:
        '200':
          description: >-
            Successful response with Soccer matches including league, match,
            team and event details
          content:
            application/json:
              schema:
                type: object
                properties:
                  livescore:
                    type: object
                    properties:
                      updated:
                        type: string
                        description: Timestamp of last update
                        example: '12.12.2025 18:05:08'
                      sport:
                        type: string
                        description: Sport name
                        example: soccer
                      league:
                        type: array
                        items:
                          type: object
                          properties:
                            country:
                              type: string
                              description: Country name
                              example: algeria
                            name:
                              type: string
                              description: League or competition name
                              example: 'Algeria: Algeria Cup'
                            cup:
                              type: string
                              description: >-
                                Whether this is a cup competition ("True" or
                                "False")
                              example: 'True'
                            id:
                              type: string
                              description: League ID
                              example: '4166'
                            sub_id:
                              type: string
                              description: Sub-league or competition ID if applicable
                              example: ''
                            match:
                              oneOf:
                                - type: object
                                  properties:
                                    alternate_id:
                                      type: string
                                      description: Alternate match ID
                                      example: '6640079'
                                    alternate_id_2:
                                      type: string
                                      description: Secondary alternate match ID
                                      example: '8826607'
                                    commentary:
                                      type: string
                                      description: >-
                                        Whether commentary is available ("True"
                                        or "False")
                                      example: 'False'
                                    date:
                                      type: string
                                      description: Match date
                                      example: 11.12.2025
                                    id:
                                      type: string
                                      description: Match ID
                                      example: '6132665'
                                    static_id:
                                      type: string
                                      description: Static unique ID for the match
                                      example: '11122523757272337574'
                                    status:
                                      type: string
                                      description: Match status or current minute
                                      example: FT
                                    time:
                                      type: string
                                      description: Match start or current time
                                      example: '13:00'
                                    venue:
                                      type: string
                                      description: 'Venue of the match, nullable'
                                      nullable: true
                                      example: ''
                                    home:
                                      type: object
                                      properties:
                                        agg:
                                          type: string
                                          description: >-
                                            Aggregate flag for two-legged fixtures
                                            ("true" or "false"), nullable
                                          nullable: true
                                          example: 'false'
                                        goals:
                                          type: string
                                          description: >-
                                            Number of goals scored by the team or
                                            "?" if unknown
                                          example: '2'
                                        id:
                                          type: string
                                          description: Team ID
                                          example: '2375727'
                                        name:
                                          type: string
                                          description: Team name
                                          example: Ain Kercha
                                      required:
                                        - goals
                                        - id
                                        - name
                                    away:
                                      $ref: >-
                                        #/paths/~1soccer~1daily~1%7Bday_offset_token%7D/get/responses/200/content/application~1json/schema/properties/livescore/properties/league/items/properties/match/oneOf/0/properties/home
                                    events:
                                      nullable: true
                                      type: object
                                      properties:
                                        event:
                                          oneOf:
                                            - type: object
                                              properties:
                                                assist:
                                                  type: string
                                                  description: >-
                                                    Name of player who assisted the event,
                                                    nullable
                                                  nullable: true
                                                  example: ''
                                                assistid:
                                                  type: string
                                                  description: 'ID of player who assisted, nullable'
                                                  nullable: true
                                                  example: ''
                                                extra_min:
                                                  type: string
                                                  description: >-
                                                    Extra minute notation (e.g., injury
                                                    time), nullable
                                                  nullable: true
                                                  example: ''
                                                id:
                                                  type: string
                                                  description: Event ID
                                                  example: '67279574'
                                                minute:
                                                  type: string
                                                  description: Match minute the event occurred
                                                  example: '75'
                                                player:
                                                  type: string
                                                  description: >-
                                                    Player name involved in this event,
                                                    nullable
                                                  nullable: true
                                                  example: Y. Fektour
                                                playerid:
                                                  type: string
                                                  description: >-
                                                    Player ID involved in this event,
                                                    nullable
                                                  nullable: true
                                                  example: '3275383'
                                                result:
                                                  type: string
                                                  description: >-
                                                    Score result after the event, if
                                                    applicable, nullable
                                                  nullable: true
                                                  example: '[0 - 1]'
                                                team:
                                                  type: string
                                                  description: Team side ("home" or "away")
                                                  example: away
                                                type:
                                                  type: string
                                                  description: >-
                                                    Event type (e.g., goal, yellowcard,
                                                    subst, pen miss, var)
                                                  example: goal
                                              required:
                                                - id
                                                - minute
                                                - team
                                                - type
                                            - type: array
                                              items:
                                                $ref: >-
                                                  #/paths/~1soccer~1daily~1%7Bday_offset_token%7D/get/responses/200/content/application~1json/schema/properties/livescore/properties/league/items/properties/match/oneOf/0/properties/events/properties/event/oneOf/0
                                      required:
                                        - event
                                    ht:
                                      nullable: true
                                      type: object
                                      properties:
                                        score:
                                          type: string
                                          description: 'Half-time score in format "[home-away]"'
                                          example: '[0-0]'
                                      required:
                                        - score
                                    ft:
                                      nullable: true
                                      type: object
                                      properties:
                                        score:
                                          type: string
                                          description: 'Full-time score in format "[home-away]"'
                                          example: '[0-2]'
                                      required:
                                        - score
                                    et:
                                      nullable: true
                                      type: object
                                      properties:
                                        score:
                                          type: string
                                          description: 'Extra time score in format "[home-away]"'
                                          example: '[0-0]'
                                      required:
                                        - score
                                    penalty:
                                      nullable: true
                                      type: object
                                      properties:
                                        localteam:
                                          type: string
                                          description: Penalty goals scored by local/home team
                                          example: '1'
                                        visitorteam:
                                          type: string
                                          description: >-
                                            Penalty goals scored by visiting/away
                                            team
                                          example: '3'
                                        event:
                                          type: array
                                          items:
                                            type: object
                                            properties:
                                              eventid:
                                                type: string
                                                description: Penalty event ID
                                                example: '647204318'
                                              minute:
                                                type: string
                                                description: Minute the penalty event occurred
                                                example: '1'
                                              player:
                                                type: string
                                                description: Player name for penalty event
                                                example: (pen.)
                                              playerid:
                                                type: string
                                                description: 'Player ID, nullable'
                                                nullable: true
                                                example: ''
                                              result:
                                                type: string
                                                description: Result string after penalty event
                                                example: '[0 - 1]'
                                              team:
                                                type: string
                                                description: Team side ("localteam" or "visitorteam")
                                                example: visitorteam
                                              type:
                                                type: string
                                                description: 'Event type (e.g., goal, pen miss)'
                                                example: goal
                                            required:
                                              - eventid
                                              - minute
                                              - player
                                              - result
                                              - team
                                              - type
                                      required:
                                        - localteam
                                        - visitorteam
                                        - event
                                  required:
                                    - alternate_id
                                    - alternate_id_2
                                    - commentary
                                    - date
                                    - id
                                    - static_id
                                    - status
                                    - time
                                    - home
                                    - away
                                - type: array
                                  items:
                                    $ref: >-
                                      #/paths/~1soccer~1daily~1%7Bday_offset_token%7D/get/responses/200/content/application~1json/schema/properties/livescore/properties/league/items/properties/match/oneOf/0
                          required:
                            - country
                            - name
                            - cup
                            - id
                            - sub_id
                            - match
                    required:
                      - updated
                      - sport
                      - league
                required:
                  - livescore
              example:
                livescore:
                  updated: '12.12.2025 18:05:08'
                  sport: soccer
                  league:
                    - country: algeria
                      name: 'Algeria: Algeria Cup'
                      cup: 'True'
                      id: '4166'
                      sub_id: ''
                      match:
                        - alternate_id: '6640079'
                          alternate_id_2: '8826607'
                          commentary: 'False'
                          date: 11.12.2025
                          id: '6132665'
                          static_id: '11122523757272337574'
                          status: FT
                          time: '13:00'
                          venue: ''
                          home:
                            agg: 'false'
                            goals: '0'
                            id: '2375727'
                            name: Ain Kercha
                          away:
                            agg: 'true'
                            goals: '2'
                            id: '2337574'
                            name: ASM Oran
                          events:
                            event:
                              - assist: ''
                                assistid: ''
                                extra_min: ''
                                id: '67279574'
                                minute: '75'
                                player: Y. Fektour
                                playerid: '3275383'
                                result: '[0 - 1]'
                                team: away
                                type: goal
                              - assist: ''
                                assistid: ''
                                extra_min: ''
                                id: '67279575'
                                minute: '78'
                                player: A. Qasmi
                                playerid: ''
                                result: '[0 - 2]'
                                team: away
                                type: goal
                          ht:
                            score: '[0-0]'
                          ft:
                            score: '[0-2]'
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: Unauthorized - invalid or missing access_key or invalid sport
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: Resource Not Found - could not find resource
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  '/soccer/upcoming-schedule/{country}':
    get:
      summary: Get Upcoming Schedule By Country
      description: >
        Returns upcoming Soccer matches schedule filtered by country with
        detailed league, matches, teams, venues, and TV station information.
        This endpoint data is updated every 1 hour.
      tags:
        - ⚽ Soccer (V1 - Legacy)
      servers:
        - url: 'https://statpal.io/api/v1/'
          description: Production (v1)
      security:
        - ApiKeyAuth: []
      x-update-rate: 3600
      parameters:
        - name: country
          in: path
          required: true
          description: |
            Country name representing the matches to retrieve.
          schema:
            type: string
            enum:
              - africa
              - albania
              - algeria
              - austria
              - angola
              - argentina
              - armenia
              - asia
              - australia
              - azerbaijan
              - belarus
              - belgium
              - bolivia
              - bosnia
              - brazil
              - bulgaria
              - cameroon
              - canada
              - chile
              - china
              - colombia
              - concacaf
              - congo
              - croatia
              - cyprus
              - czech
              - costarica
              - denmark
              - equador
              - egypt
              - elsalvador
              - england
              - estonia
              - europe
              - finland
              - france
              - georgia
              - germany
              - ghana
              - greece
              - guatemala
              - holland
              - honduras
              - hungary
              - iceland
              - india
              - indonesia
              - international
              - iran
              - ireland
              - israel
              - italy
              - japan
              - jordan
              - kazakhstan
              - kenya
              - korea
              - kuwait
              - latvia
              - lithuania
              - macedonia
              - malaysia
              - malta
              - mexico
              - moldova
              - montenegro
              - morocco
              - newzealand
              - nigeria
              - norway
              - oceania
              - paraguay
              - peru
              - poland
              - portugal
              - qatar
              - romania
              - russia
              - saudiarabia
              - scotland
              - serbia
              - singapore
              - slovakia
              - slovenia
              - southafrica
              - southamerica
              - spain
              - sweden
              - switzerland
              - thailand
              - tunisia
              - turkey
              - uae
              - usa
              - ukraine
              - uruguay
              - uzbekistan
              - venezuela
              - vietnam
              - wales
              - worldcup
      responses:
        '200':
          description: >-
            Successful response with upcoming matches by country including
            detailed league, match, team, venue, and TV station information
          content:
            application/json:
              schema:
                type: object
                properties:
                  fixtures:
                    type: object
                    properties:
                      updated:
                        type: string
                        description: Timestamp of last update
                        example: '12.12.2025 19:01:55'
                      sport:
                        type: string
                        description: Sport name
                        example: soccer
                      country:
                        type: string
                        description: Country name the schedule relates to
                        example: belgium
                      league:
                        type: array
                        items:
                          type: object
                          properties:
                            country:
                              type: string
                              description: Country name for the league
                              example: belgium
                            name:
                              type: string
                              description: League or competition name
                              example: 'Belgium: Jupiler Pro League'
                            id:
                              type: string
                              description: League ID
                              example: '2935'
                            sub_id:
                              type: string
                              description: Sub-league or competition ID if applicable
                              example: ''
                            match:
                              oneOf:
                                - type: object
                                  properties:
                                    alternate_id:
                                      type: string
                                      description: 'Alternate match ID, nullable if none'
                                      nullable: true
                                      example: '6524112'
                                    alternate_id_2:
                                      type: string
                                      description: >-
                                        Secondary alternate match ID, nullable
                                        if none
                                      nullable: true
                                      example: '8783241'
                                    date:
                                      type: string
                                      description: Match date
                                      example: 12.12.2025
                                    id:
                                      type: string
                                      description: 'Match ID, nullable if none'
                                      nullable: true
                                      example: '6016730'
                                    static_id:
                                      type: string
                                      description: Static unique ID for the match
                                      example: '12122523387272338672'
                                    status:
                                      type: string
                                      description: Match status or scheduled time
                                      example: '19:45'
                                    time:
                                      type: string
                                      description: Scheduled or kickoff time
                                      example: '19:45'
                                    venue:
                                      type: string
                                      description: 'Match venue, nullable'
                                      nullable: true
                                      example: Stade Maurice Dufrasne
                                    home:
                                      type: object
                                      properties:
                                        id:
                                          type: string
                                          description: Team ID
                                          example: '2338727'
                                        name:
                                          type: string
                                          description: Team name
                                          example: St. Liege
                                      required:
                                        - id
                                        - name
                                    away:
                                      $ref: >-
                                        #/paths/~1soccer~1upcoming-schedule~1%7Bcountry%7D/get/responses/200/content/application~1json/schema/properties/fixtures/properties/league/items/properties/match/oneOf/0/properties/home
                                    tv_stations:
                                      nullable: true
                                      type: object
                                      properties:
                                        tv:
                                          oneOf:
                                            - type: object
                                              properties:
                                                name:
                                                  type: string
                                                  description: TV station or broadcast name
                                                  example: DAZN Pro League 1 (Bel)
                                              required:
                                                - name
                                            - type: array
                                              items:
                                                $ref: >-
                                                  #/paths/~1soccer~1upcoming-schedule~1%7Bcountry%7D/get/responses/200/content/application~1json/schema/properties/fixtures/properties/league/items/properties/match/oneOf/0/properties/tv_stations/properties/tv/oneOf/0
                                      required:
                                        - tv
                                  required:
                                    - static_id
                                    - status
                                    - time
                                    - date
                                    - home
                                    - away
                                - type: array
                                  items:
                                    $ref: >-
                                      #/paths/~1soccer~1upcoming-schedule~1%7Bcountry%7D/get/responses/200/content/application~1json/schema/properties/fixtures/properties/league/items/properties/match/oneOf/0
                          required:
                            - country
                            - name
                            - id
                            - sub_id
                            - match
                    required:
                      - updated
                      - sport
                      - country
                      - league
                required:
                  - fixtures
              example:
                fixtures:
                  updated: '12.12.2025 19:01:55'
                  sport: soccer
                  country: belgium
                  league:
                    - country: belgium
                      name: 'Belgium: Jupiler Pro League'
                      id: '2935'
                      sub_id: ''
                      match:
                        - alternate_id: '6524112'
                          alternate_id_2: '8783241'
                          date: 12.12.2025
                          id: '6016730'
                          static_id: '12122523387272338672'
                          status: '19:45'
                          time: '19:45'
                          venue: Stade Maurice Dufrasne
                          home:
                            id: '2338727'
                            name: St. Liege
                          away:
                            id: '2338672'
                            name: Leuven
                          tv_stations:
                            tv:
                              - name: DAZN Pro League 1 (Bel)
                              - name: Play Sports 1 (Bel)
                              - name: Sporza (Bel)
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: Unauthorized - invalid or missing access_key or invalid sport
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: Resource Not Found - could not find resource
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  '/soccer/extended-schedule/{country}':
    get:
      summary: Get Extended Schedule By Country
      description: >
        Returns extended soccer schedule information by country including
        leagues, weeks, matches, detailed teams, coaches, and venue information.
        This endpoint data is updated every 1 hour.
      tags:
        - ⚽ Soccer (V1 - Legacy)
      servers:
        - url: 'https://statpal.io/api/v1/'
          description: Production (v1)
      security:
        - ApiKeyAuth: []
      parameters:
        - name: country
          in: path
          required: true
          description: |
            Country name (e.g., england, france).
          schema:
            type: string
            enum:
              - africa
              - albania
              - algeria
              - austria
              - angola
              - argentina
              - armenia
              - asia
              - australia
              - azerbaijan
              - belarus
              - belgium
              - bolivia
              - bosnia
              - brazil
              - bulgaria
              - cameroon
              - canada
              - chile
              - china
              - colombia
              - concacaf
              - congo
              - croatia
              - cyprus
              - czech
              - costarica
              - denmark
              - equador
              - egypt
              - elsalvador
              - england
              - estonia
              - europe
              - finland
              - france
              - georgia
              - germany
              - ghana
              - greece
              - guatemala
              - holland
              - honduras
              - hungary
              - iceland
              - india
              - indonesia
              - international
              - iran
              - ireland
              - israel
              - italy
              - japan
              - jordan
              - kazakhstan
              - kenya
              - korea
              - kuwait
              - latvia
              - lithuania
              - macedonia
              - malaysia
              - malta
              - mexico
              - moldova
              - montenegro
              - morocco
              - newzealand
              - nigeria
              - norway
              - oceania
              - paraguay
              - peru
              - poland
              - portugal
              - qatar
              - romania
              - russia
              - saudiarabia
              - scotland
              - serbia
              - singapore
              - slovakia
              - slovenia
              - southafrica
              - southamerica
              - spain
              - sweden
              - switzerland
              - thailand
              - tunisia
              - turkey
              - uae
              - usa
              - ukraine
              - uruguay
              - uzbekistan
              - venezuela
              - vietnam
              - wales
              - worldcup
      x-update-rate: 3600
      responses:
        '200':
          description: >-
            Successful response with extended soccer schedule by country
            including leagues, weeks and match details
          content:
            application/json:
              schema:
                type: object
                properties:
                  extended_fixtures:
                    type: object
                    properties:
                      updated:
                        type: string
                        description: Timestamp of the last update
                        example: '12.12.2025 18:46:54'
                      sport:
                        type: string
                        description: Sport name
                        example: soccer
                      country:
                        type: string
                        description: Country name
                        example: belgium
                      league:
                        type: array
                        items:
                          type: object
                          properties:
                            name:
                              type: string
                              description: League or competition name
                              example: First Division A
                            season:
                              type: string
                              description: Season for the league
                              example: 2025/2026
                            id:
                              type: string
                              description: League ID
                              example: '2935'
                            sub_id:
                              type: string
                              description: Sub-league or competition ID if applicable
                              example: '29350'
                            week:
                              type: array
                              items:
                                type: object
                                properties:
                                  number:
                                    type: string
                                    description: Week number within the season
                                    example: '18'
                                  match:
                                    type: array
                                    items:
                                      type: object
                                      properties:
                                        alternate_id:
                                          type: string
                                          description: 'Alternate match ID, nullable'
                                          nullable: true
                                          example: ''
                                        alternate_id_2:
                                          type: string
                                          description: Secondary alternate match ID
                                          example: '6524112'
                                        attendance:
                                          type: string
                                          description: 'Attendance for the match, nullable'
                                          nullable: true
                                          example: ''
                                        date:
                                          type: string
                                          description: Match date
                                          example: 12.12.2025
                                        id:
                                          type: string
                                          description: Match ID
                                          example: '6016730'
                                        static_id:
                                          type: string
                                          description: Static unique ID for the match
                                          example: '12122523387272338672'
                                        status:
                                          type: string
                                          description: Match status or scheduled time
                                          example: '19:45'
                                        time:
                                          type: string
                                          description: Scheduled or current time of the match
                                          example: '19:45'
                                        venue:
                                          type: string
                                          description: Venue of the match
                                          example: Stade Maurice Dufrasne (Liège (Luik))
                                        venue_city:
                                          type: string
                                          description: City where the venue is located
                                          example: Liège (Luik)
                                        venue_id:
                                          type: string
                                          description: Venue ID
                                          example: '2420878'
                                        home:
                                          type: object
                                          properties:
                                            et_score:
                                              type: string
                                              description: 'Extra time score, nullable'
                                              nullable: true
                                              example: ''
                                            ft_score:
                                              type: string
                                              description: 'Full time score, nullable'
                                              nullable: true
                                              example: ''
                                            id:
                                              type: string
                                              description: Team ID
                                              example: '2338727'
                                            name:
                                              type: string
                                              description: Team name
                                              example: Standard
                                            pen_score:
                                              type: string
                                              description: 'Penalty shootout score, nullable'
                                              nullable: true
                                              example: ''
                                            score:
                                              type: string
                                              description: 'Current score, nullable'
                                              nullable: true
                                              example: ''
                                          required:
                                            - id
                                            - name
                                        away:
                                          $ref: >-
                                            #/paths/~1soccer~1extended-schedule~1%7Bcountry%7D/get/responses/200/content/application~1json/schema/properties/extended_fixtures/properties/league/items/properties/week/items/properties/match/items/properties/home
                                        halftime:
                                          nullable: true
                                          type: object
                                          properties:
                                            score:
                                              type: string
                                              description: 'Score summary as string, nullable'
                                              nullable: true
                                              example: ''
                                          required:
                                            - score
                                        lineups:
                                          type: object
                                          description: 'Lineups information, nullable'
                                          nullable: true
                                        substitutions:
                                          type: object
                                          description: 'Substitutions information, nullable'
                                          nullable: true
                                        goals:
                                          type: object
                                          description: 'Goals information, nullable'
                                          nullable: true
                                        coaches:
                                          nullable: true
                                          type: object
                                          properties:
                                            home:
                                              nullable: true
                                              type: object
                                              properties:
                                                coach:
                                                  type: object
                                                  properties:
                                                    id:
                                                      type: string
                                                      description: Coach ID
                                                      example: '61036'
                                                    name:
                                                      type: string
                                                      description: Coach name
                                                      example: Vincent Euvrard
                                                  required:
                                                    - id
                                                    - name
                                              required:
                                                - coach
                                            away:
                                              $ref: >-
                                                #/paths/~1soccer~1extended-schedule~1%7Bcountry%7D/get/responses/200/content/application~1json/schema/properties/extended_fixtures/properties/league/items/properties/week/items/properties/match/items/properties/coaches/properties/home
                                              nullable: true
                                        referee:
                                          nullable: true
                                          type: object
                                          properties:
                                            id:
                                              type: string
                                              description: 'Referee ID, nullable'
                                              nullable: true
                                              example: ''
                                            name:
                                              type: string
                                              description: 'Referee name, nullable'
                                              nullable: true
                                              example: ''
                                          required:
                                            - id
                                            - name
                                      required:
                                        - alternate_id
                                        - alternate_id_2
                                        - attendance
                                        - date
                                        - id
                                        - static_id
                                        - status
                                        - time
                                        - venue
                                        - venue_city
                                        - venue_id
                                        - home
                                        - away
                                required:
                                  - number
                                  - match
                          required:
                            - name
                            - season
                            - id
                            - sub_id
                            - week
                    required:
                      - updated
                      - sport
                      - country
                      - league
                required:
                  - extended_fixtures
              example:
                extended_fixtures:
                  updated: '12.12.2025 18:46:54'
                  sport: soccer
                  country: belgium
                  league:
                    - name: First Division A
                      season: 2025/2026
                      id: '2935'
                      sub_id: '29350'
                      week:
                        - number: '18'
                          match:
                            - alternate_id: ''
                              alternate_id_2: '6524112'
                              attendance: ''
                              date: 12.12.2025
                              id: '6016730'
                              static_id: '12122523387272338672'
                              status: '19:45'
                              time: '19:45'
                              venue: Stade Maurice Dufrasne (Liège (Luik))
                              venue_city: Liège (Luik)
                              venue_id: '2420878'
                              home:
                                et_score: ''
                                ft_score: ''
                                id: '2338727'
                                name: Standard
                                pen_score: ''
                                score: ''
                              away:
                                et_score: ''
                                ft_score: ''
                                id: '2338672'
                                name: OHL
                                pen_score: ''
                                score: ''
                              halftime:
                                score: ''
                              lineups: null
                              substitutions: null
                              goals: null
                              coaches:
                                home:
                                  coach:
                                    id: '61036'
                                    name: Vincent Euvrard
                                away:
                                  coach:
                                    id: '13735'
                                    name: David Hubert
                              referee:
                                id: ''
                                name: ''
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: Unauthorized - invalid or missing access_key or invalid sport
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: Resource Not Found - could not find resource
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  '/soccer/results/{country}':
    get:
      summary: Get Results By Country
      description: >
        Returns Soccer match results by country with detailed league, match,
        team, events, lineups, substitutions, coaches, and referee information.
        This endpoint data is updated every 1 hour.
      tags:
        - ⚽ Soccer (V1 - Legacy)
      servers:
        - url: 'https://statpal.io/api/v1/'
          description: Production (v1)
      security:
        - ApiKeyAuth: []
      parameters:
        - name: country
          in: path
          required: true
          description: |
            Country Name.
          schema:
            type: string
            enum:
              - africa
              - albania
              - algeria
              - austria
              - angola
              - argentina
              - armenia
              - asia
              - australia
              - azerbaijan
              - belarus
              - belgium
              - bolivia
              - bosnia
              - brazil
              - bulgaria
              - cameroon
              - canada
              - chile
              - china
              - colombia
              - concacaf
              - congo
              - croatia
              - cyprus
              - czech
              - costarica
              - denmark
              - equador
              - egypt
              - elsalvador
              - england
              - estonia
              - europe
              - finland
              - france
              - georgia
              - germany
              - ghana
              - greece
              - guatemala
              - holland
              - honduras
              - hungary
              - iceland
              - india
              - indonesia
              - international
              - iran
              - ireland
              - israel
              - italy
              - japan
              - jordan
              - kazakhstan
              - kenya
              - korea
              - kuwait
              - latvia
              - lithuania
              - macedonia
              - malaysia
              - malta
              - mexico
              - moldova
              - montenegro
              - morocco
              - newzealand
              - nigeria
              - norway
              - oceania
              - paraguay
              - peru
              - poland
              - portugal
              - qatar
              - romania
              - russia
              - saudiarabia
              - scotland
              - serbia
              - singapore
              - slovakia
              - slovenia
              - southafrica
              - southamerica
              - spain
              - sweden
              - switzerland
              - thailand
              - tunisia
              - turkey
              - uae
              - usa
              - ukraine
              - uruguay
              - uzbekistan
              - venezuela
              - vietnam
              - wales
              - worldcup
      x-update-rate: 3600
      responses:
        '200':
          description: >-
            Successful response with Soccer match results for the specified
            country
          content:
            application/json:
              schema:
                type: object
                properties:
                  results:
                    type: object
                    properties:
                      updated:
                        type: string
                        description: Timestamp of last update
                        example: '22.01.2025 13:28:30'
                      sport:
                        type: string
                        description: Sport name
                        example: soccer
                      country:
                        type: string
                        description: Country name
                        example: england
                      league:
                        type: array
                        items:
                          type: object
                          properties:
                            name:
                              type: string
                              description: League or competition name
                              example: Premier League
                            season:
                              type: string
                              description: Season string
                              example: 2024/2025
                            id:
                              type: string
                              description: League ID
                              example: '3037'
                            sub_id:
                              type: string
                              description: Sub-league or competition ID if applicable
                              example: '30370'
                            week:
                              type: array
                              items:
                                type: object
                                properties:
                                  number:
                                    type: string
                                    description: Week or round number
                                    example: '1'
                                  match:
                                    oneOf:
                                      - type: object
                                        properties:
                                          alternate_id:
                                            type: string
                                            description: Alternate match ID
                                            example: ''
                                          alternate_id_2:
                                            type: string
                                            description: Secondary alternate match ID
                                            example: '6346169'
                                          attendance:
                                            type: string
                                            description: Attendance count
                                            example: '73297'
                                          date:
                                            type: string
                                            description: Match date
                                            example: 16.08.2024
                                          id:
                                            type: string
                                            description: Match ID
                                            example: '5838861'
                                          static_id:
                                            type: string
                                            description: Static unique ID for the match
                                            example: '16082423410932341008'
                                          status:
                                            type: string
                                            description: Match status or current minute
                                            example: FT
                                          time:
                                            type: string
                                            description: Match start or current time
                                            example: '19:00'
                                          venue:
                                            type: string
                                            description: Venue of the match
                                            example: Old Trafford (Manchester)
                                          venue_city:
                                            type: string
                                            description: Venue city
                                            example: Manchester
                                          venue_id:
                                            type: string
                                            description: Venue ID
                                            example: '2419813'
                                          home:
                                            type: object
                                            properties:
                                              et_score:
                                                type: string
                                                description: >-
                                                  Extra time score, if any (empty string
                                                  if none)
                                                example: ''
                                              ft_score:
                                                type: string
                                                description: Full time score
                                                example: '1'
                                              id:
                                                type: string
                                                description: Team ID
                                                example: '2341093'
                                              name:
                                                type: string
                                                description: Team name
                                                example: Manchester United
                                              pen_score:
                                                type: string
                                                description: >-
                                                  Penalty score, if any (empty string if
                                                  none)
                                                example: ''
                                              score:
                                                type: string
                                                description: >-
                                                  Current score (duplicate of ft_score in
                                                  most cases)
                                                example: '1'
                                            required:
                                              - et_score
                                              - ft_score
                                              - id
                                              - name
                                              - pen_score
                                              - score
                                          away:
                                            $ref: >-
                                              #/paths/~1soccer~1results~1%7Bcountry%7D/get/responses/200/content/application~1json/schema/properties/results/properties/league/items/properties/week/items/properties/match/oneOf/0/properties/home
                                          halftime:
                                            type: object
                                            properties:
                                              score:
                                                type: string
                                                description: Half-time score format e.g. "0 - 0"
                                                example: 0 - 0
                                            required:
                                              - score
                                          goals:
                                            nullable: true
                                            type: object
                                            properties:
                                              goal:
                                                oneOf:
                                                  - type: object
                                                    properties:
                                                      assist:
                                                        type: string
                                                        description: Player who assisted the goal
                                                        example: A. Garnacho
                                                      minute:
                                                        type: string
                                                        description: Minute the goal was scored
                                                        example: '87'
                                                      player:
                                                        type: string
                                                        description: Player who scored the goal
                                                        example: J. Zirkzee
                                                      playerid:
                                                        type: string
                                                        description: Player ID who scored the goal
                                                        example: '2848210'
                                                      score:
                                                        type: string
                                                        description: Scoreline after the goal
                                                        example: 1 - 0
                                                      team:
                                                        type: string
                                                        description: Team side ("home" or "away")
                                                        example: home
                                                    required:
                                                      - minute
                                                      - player
                                                      - playerid
                                                      - team
                                                  - type: array
                                                    items:
                                                      $ref: >-
                                                        #/paths/~1soccer~1results~1%7Bcountry%7D/get/responses/200/content/application~1json/schema/properties/results/properties/league/items/properties/week/items/properties/match/oneOf/0/properties/goals/properties/goal/oneOf/0
                                            required:
                                              - goal
                                          lineups:
                                            nullable: true
                                            type: object
                                            properties:
                                              home:
                                                type: object
                                                properties:
                                                  player:
                                                    type: array
                                                    items:
                                                      type: object
                                                      properties:
                                                        booking:
                                                          type: string
                                                          description: >-
                                                            Booking info (e.g. "YC 40"), empty
                                                            string if none
                                                          example: ''
                                                        id:
                                                          type: string
                                                          description: Player ID
                                                          example: '2704298'
                                                        name:
                                                          type: string
                                                          description: Player name
                                                          example: A. Onana
                                                        number:
                                                          type: string
                                                          description: Player jersey number
                                                          example: '24'
                                                      required:
                                                        - booking
                                                        - id
                                                        - name
                                                        - number
                                                required:
                                                  - player
                                              away:
                                                $ref: >-
                                                  #/paths/~1soccer~1results~1%7Bcountry%7D/get/responses/200/content/application~1json/schema/properties/results/properties/league/items/properties/week/items/properties/match/oneOf/0/properties/lineups/properties/home
                                            required:
                                              - home
                                              - away
                                          substitutions:
                                            nullable: true
                                            type: object
                                            properties:
                                              home:
                                                type: object
                                                properties:
                                                  substitution:
                                                    oneOf:
                                                      - type: object
                                                        properties:
                                                          minute:
                                                            type: string
                                                            description: >-
                                                              Minute of substitution ("NA" if not
                                                              applicable)
                                                            example: '61'
                                                          player_in_booking:
                                                            type: string
                                                            description: Booking info for player coming in
                                                            example: ''
                                                          player_in_id:
                                                            type: string
                                                            description: Player ID coming in
                                                            example: '2964519'
                                                          player_in_name:
                                                            type: string
                                                            description: Player name coming in
                                                            example: A. Garnacho
                                                          player_in_number:
                                                            type: string
                                                            description: Player jersey number coming in
                                                            example: '17'
                                                          player_out_id:
                                                            type: string
                                                            description: Player ID going out
                                                            example: '2964802'
                                                          player_out_name:
                                                            type: string
                                                            description: Player name going out
                                                            example: A. Diallo
                                                        required:
                                                          - minute
                                                          - player_in_id
                                                          - player_in_name
                                                          - player_in_number
                                                          - player_out_id
                                                          - player_out_name
                                                      - type: array
                                                        items:
                                                          $ref: >-
                                                            #/paths/~1soccer~1results~1%7Bcountry%7D/get/responses/200/content/application~1json/schema/properties/results/properties/league/items/properties/week/items/properties/match/oneOf/0/properties/substitutions/properties/home/properties/substitution/oneOf/0
                                                required:
                                                  - substitution
                                              away:
                                                $ref: >-
                                                  #/paths/~1soccer~1results~1%7Bcountry%7D/get/responses/200/content/application~1json/schema/properties/results/properties/league/items/properties/week/items/properties/match/oneOf/0/properties/substitutions/properties/home
                                            required:
                                              - home
                                              - away
                                          coaches:
                                            nullable: true
                                            type: object
                                            properties:
                                              home:
                                                type: object
                                                properties:
                                                  coach:
                                                    type: object
                                                    properties:
                                                      id:
                                                        type: string
                                                        description: Coach ID
                                                        example: '255436'
                                                      name:
                                                        type: string
                                                        description: Coach name
                                                        example: E. ten Hag
                                                    required:
                                                      - id
                                                      - name
                                                required:
                                                  - coach
                                              away:
                                                $ref: >-
                                                  #/paths/~1soccer~1results~1%7Bcountry%7D/get/responses/200/content/application~1json/schema/properties/results/properties/league/items/properties/week/items/properties/match/oneOf/0/properties/coaches/properties/home
                                            required:
                                              - home
                                              - away
                                          referee:
                                            nullable: true
                                            type: object
                                            properties:
                                              id:
                                                type: string
                                                description: Referee ID
                                                example: '143554'
                                              name:
                                                type: string
                                                description: Referee name
                                                example: R. Jones
                                            required:
                                              - id
                                              - name
                                        required:
                                          - alternate_id
                                          - alternate_id_2
                                          - attendance
                                          - date
                                          - id
                                          - static_id
                                          - status
                                          - time
                                          - venue
                                          - venue_city
                                          - venue_id
                                          - home
                                          - away
                                          - halftime
                                      - type: array
                                        items:
                                          $ref: >-
                                            #/paths/~1soccer~1results~1%7Bcountry%7D/get/responses/200/content/application~1json/schema/properties/results/properties/league/items/properties/week/items/properties/match/oneOf/0
                                required:
                                  - number
                                  - match
                          required:
                            - name
                            - season
                            - id
                            - sub_id
                            - week
                    required:
                      - updated
                      - sport
                      - country
                      - league
                required:
                  - results
              example:
                results:
                  updated: '22.01.2025 13:28:30'
                  sport: soccer
                  country: england
                  league:
                    - name: Premier League
                      season: 2024/2025
                      id: '3037'
                      sub_id: '30370'
                      week:
                        - number: '1'
                          match:
                            - alternate_id: ''
                              alternate_id_2: '6346169'
                              attendance: '73297'
                              date: 16.08.2024
                              id: '5838861'
                              static_id: '16082423410932341008'
                              status: FT
                              time: '19:00'
                              venue: Old Trafford (Manchester)
                              venue_city: Manchester
                              venue_id: '2419813'
                              home:
                                et_score: ''
                                ft_score: '1'
                                id: '2341093'
                                name: Manchester United
                                pen_score: ''
                                score: '1'
                              away:
                                et_score: ''
                                ft_score: '0'
                                id: '2341008'
                                name: Fulham
                                pen_score: ''
                                score: '0'
                              halftime:
                                score: 0 - 0
                              goals:
                                goal:
                                  - assist: A. Garnacho
                                    minute: '87'
                                    player: J. Zirkzee
                                    playerid: '2848210'
                                    score: 1 - 0
                                    team: home
                              lineups:
                                home:
                                  player:
                                    - booking: ''
                                      id: '2704298'
                                      name: A. Onana
                                      number: '24'
                                    - booking: YC 40
                                      id: '2513880'
                                      name: H. Maguire
                                      number: '5'
                                away:
                                  player:
                                    - booking: ''
                                      id: '2434366'
                                      name: B. Leno
                                      number: '1'
                                    - booking: ''
                                      id: '2547379'
                                      name: K. Tete
                                      number: '2'
                              substitutions:
                                home:
                                  substitution:
                                    - minute: '61'
                                      player_in_booking: ''
                                      player_in_id: '2964519'
                                      player_in_name: A. Garnacho
                                      player_in_number: '17'
                                      player_out_id: '2964802'
                                      player_out_name: A. Diallo
                                away:
                                  substitution:
                                    - minute: '64'
                                      player_in_booking: YC 73
                                      player_in_id: '2423333'
                                      player_in_name: T. Cairney
                                      player_in_number: '10'
                                      player_out_id: '2784958'
                                      player_out_name: E. Smith Rowe
                              coaches:
                                home:
                                  coach:
                                    id: '255436'
                                    name: E. ten Hag
                                away:
                                  coach:
                                    id: '210906'
                                    name: Marco Silva
                              referee:
                                id: '143554'
                                name: R. Jones
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: Unauthorized - invalid or missing access_key or invalid sport
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: Resource Not Found - could not find resource
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  '/soccer/live-match-stats/{league_abbreviation}':
    get:
      summary: Get Live Match Stats By League
      description: >
        Returns live Soccer match statistics by league abbreviation, with
        detailed league, matches, teams, players and event statistics. This
        endpoint data is updated every 15 seconds.
      tags:
        - ⚽ Soccer (V1 - Legacy)
      servers:
        - url: 'https://statpal.io/api/v1/'
          description: Production (v1)
      security:
        - ApiKeyAuth: []
      parameters:
        - name: league_abbreviation
          in: path
          required: true
          description: |
            League abbreviation.
          schema:
            type: string
            enum:
              - afc_champleague
              - africa_nations_cup
              - argentina
              - argentina_b
              - asia_cup
              - australia
              - austria
              - belgium
              - bolivia
              - brazil_a
              - brazil_b
              - championship
              - champleague
              - chile
              - club_wc
              - colombia
              - concacaf_champleague
              - concacaf_gold_cup
              - concacaf_superliga
              - confiderationscup
              - copaamerica
              - denmark
              - ecuador
              - eng_league_carling
              - eng_league_charity
              - eng_league_conference
              - eng_league_one
              - eng_league_two
              - epl
              - holland
              - poland
              - euro
              - eredivisie
              - europaleague
              - euroqualifying
              - facup
              - france
              - france_cup
              - france_league2
              - france_league_cup
              - germany
              - germany_cup
              - germany_liga2
              - greece
              - holland_cup
              - holland_division2
              - ireland
              - italy
              - italy_cup
              - italy_serieb
              - japan
              - libertadores
              - mexico
              - mls
              - n_ireland
              - olympic
              - paraguay
              - peru
              - portugal
              - rsa
              - russia
              - scotland
              - scotland_cup
              - scotland_division2
              - scotland_league_cup
              - spain
              - spain_cup
              - spain_segunda
              - spain_supercup
              - uefa_supercup
              - sudamericana
              - sweden
              - switzerland
              - turkey
              - uefa_nations
              - uruguay
              - venezuela
              - wales
              - worldcupqualifying
      x-update-rate: 15
      responses:
        '200':
          description: >-
            Successful response with live soccer match statistics for the
            specified league including teams, players, events and stats
          content:
            application/json:
              schema:
                type: object
                properties:
                  commentaries:
                    type: object
                    properties:
                      updated:
                        type: string
                        description: Timestamp of last update
                        example: '12.12.2025 19:26:09'
                      sport:
                        type: string
                        description: Sport name
                        example: soccer
                      country:
                        type: string
                        description: League abbreviation (e.g. epl)
                        example: epl
                      league:
                        type: object
                        properties:
                          country:
                            type: string
                            description: League abbreviation (e.g. epl)
                            example: epl
                          name:
                            type: string
                            description: League or competition name
                            example: England - Premier League
                          id:
                            type: string
                            description: League ID
                            example: '3037'
                          sub_id:
                            type: string
                            description: Sub-league or competition ID if applicable
                            example: ''
                          match:
                            type: object
                            properties:
                              alternate_id:
                                type: string
                                description: 'Alternate match ID, nullable'
                                nullable: true
                                example: ''
                              alternate_id_2:
                                type: string
                                description: Secondary alternate match ID
                                example: '6531349'
                              date:
                                type: string
                                description: Match date
                                example: 08.12.2025
                              id:
                                type: string
                                description: Match ID
                                example: '6023967'
                              static_id:
                                type: string
                                description: Static unique ID for the match
                                example: '08122523412792341093'
                              status:
                                type: string
                                description: Match status or current state
                                example: Full-time
                              time:
                                type: string
                                description: Match start or current time
                                example: '20:00'
                              timer:
                                type: string
                                description: >-
                                  Match timer or additional time information,
                                  nullable
                                example: ''
                                nullable: true
                              home:
                                type: object
                                properties:
                                  et_score:
                                    type: string
                                    description: 'Extra time score, nullable'
                                    example: ''
                                    nullable: true
                                  ft_score:
                                    type: string
                                    description: Full time score
                                    example: '1'
                                  goals:
                                    type: string
                                    description: Goals count
                                    example: '1'
                                  ht_score:
                                    type: string
                                    description: Half time score
                                    example: '1'
                                  id:
                                    type: string
                                    description: Team ID
                                    example: '2341279'
                                  name:
                                    type: string
                                    description: Team name
                                    example: Wolverhampton
                                  pen_score:
                                    type: string
                                    description: 'Penalty score, nullable'
                                    example: ''
                                    nullable: true
                                required:
                                  - ft_score
                                  - goals
                                  - ht_score
                                  - id
                                  - name
                              away:
                                $ref: >-
                                  #/paths/~1soccer~1live-match-stats~1%7Bleague_abbreviation%7D/get/responses/200/content/application~1json/schema/properties/commentaries/properties/league/properties/match/properties/home
                              matchinfo:
                                nullable: true
                                type: object
                                properties:
                                  stadium:
                                    type: object
                                    properties:
                                      name:
                                        type: string
                                        description: Stadium name
                                        example: 'Molineux Stadium, Wolverhampton'
                                    required:
                                      - name
                                  attendance:
                                    type: object
                                    properties:
                                      name:
                                        type: string
                                        description: 'Attendance details, often empty string'
                                        example: ''
                                    required:
                                      - name
                                  time:
                                    type: object
                                    properties:
                                      addedtime_period1:
                                        type: string
                                        description: Added time for first period
                                        example: '2'
                                      addedtime_period2:
                                        type: string
                                        description: Added time for second period
                                        example: '9'
                                      name:
                                        type: string
                                        description: Current time or match time as string
                                        example: '20:00'
                                    required:
                                      - addedtime_period1
                                      - addedtime_period2
                                      - name
                                  referee:
                                    type: object
                                    properties:
                                      name:
                                        type: string
                                        description: Referee name and country
                                        example: 'Michael Salisbury, England'
                                    required:
                                      - name
                                required:
                                  - stadium
                                  - attendance
                                  - time
                                  - referee
                              summary:
                                nullable: true
                                type: object
                                properties:
                                  home:
                                    type: object
                                    properties:
                                      goals:
                                        nullable: true
                                        type: object
                                        properties:
                                          player:
                                            oneOf:
                                              - type: object
                                                properties:
                                                  assist_id:
                                                    type: string
                                                    description: ID of player who assisted
                                                    example: '603294'
                                                  assist_name:
                                                    type: string
                                                    description: Name of player who assisted
                                                    example: David Möller Wolfe
                                                  extra_min:
                                                    type: string
                                                    description: 'Extra minute notation, e.g. injury time'
                                                    example: '2'
                                                  id:
                                                    type: string
                                                    description: Player ID who scored
                                                    example: '2752619'
                                                  minute:
                                                    type: string
                                                    description: Minute the goal was scored
                                                    example: '45'
                                                  name:
                                                    type: string
                                                    description: Player name who scored
                                                    example: Jean-Ricner Bellegarde
                                                  owngoal:
                                                    type: string
                                                    description: >-
                                                      Whether goal was an own goal ("False" or
                                                      "True")
                                                    example: 'False'
                                                  penalty:
                                                    type: string
                                                    description: >-
                                                      Whether goal was a penalty ("True" or
                                                      "False")
                                                    example: 'False'
                                                  penalty_missed:
                                                    type: string
                                                    description: >-
                                                      Whether penalty missed ("True" or
                                                      "False")
                                                    example: 'False'
                                                  var_cancelled:
                                                    type: string
                                                    description: >-
                                                      Whether VAR cancelled this goal ("True"
                                                      or "False")
                                                    example: 'False'
                                                required:
                                                  - assist_id
                                                  - assist_name
                                                  - extra_min
                                                  - id
                                                  - minute
                                                  - name
                                                  - owngoal
                                                  - penalty
                                                  - penalty_missed
                                                  - var_cancelled
                                              - type: array
                                                items:
                                                  $ref: >-
                                                    #/paths/~1soccer~1live-match-stats~1%7Bleague_abbreviation%7D/get/responses/200/content/application~1json/schema/properties/commentaries/properties/league/properties/match/properties/summary/properties/home/properties/goals/properties/player/oneOf/0
                                        required:
                                          - player
                                      yellowcards:
                                        nullable: true
                                        type: object
                                        properties:
                                          player:
                                            oneOf:
                                              - type: object
                                                properties:
                                                  comment:
                                                    type: string
                                                    description: >-
                                                      Comment about the yellow card event
                                                      (e.g. "Handball")
                                                    example: Handball
                                                  extra_min:
                                                    type: string
                                                    description: 'Extra minute notation, nullable'
                                                    example: ''
                                                    nullable: true
                                                  id:
                                                    type: string
                                                    description: Player ID who received yellow card
                                                    example: '2980333'
                                                  minute:
                                                    type: string
                                                    description: Minute yellow card was given
                                                    example: '81'
                                                  name:
                                                    type: string
                                                    description: Player name who received yellow card
                                                    example: Yerson Mosquera
                                                required:
                                                  - comment
                                                  - extra_min
                                                  - id
                                                  - minute
                                                  - name
                                              - type: array
                                                items:
                                                  $ref: >-
                                                    #/paths/~1soccer~1live-match-stats~1%7Bleague_abbreviation%7D/get/responses/200/content/application~1json/schema/properties/commentaries/properties/league/properties/match/properties/summary/properties/home/properties/yellowcards/properties/player/oneOf/0
                                        required:
                                          - player
                                      redcards:
                                        type: object
                                        nullable: true
                                        description: >-
                                          Red card summary, nullable (not detailed
                                          in example)
                                      var:
                                        nullable: true
                                        type: object
                                        properties:
                                          player:
                                            type: object
                                            properties:
                                              event_type:
                                                type: string
                                                description: Type of VAR event
                                                example: Penalty confirmed
                                              extra_min:
                                                type: string
                                                description: 'Extra minute notation, nullable'
                                                example: ''
                                                nullable: true
                                              id:
                                                type: string
                                                description: VAR event player ID
                                                example: '2964802'
                                              minute:
                                                type: string
                                                description: Minute of VAR event
                                                example: '80'
                                              name:
                                                type: string
                                                description: Player name involved in VAR event
                                                example: Amad Diallo
                                              ref_decision:
                                                type: string
                                                description: Referee decision description
                                                example: Penalty cancelled
                                              var_decision:
                                                type: string
                                                description: >-
                                                  VAR decision confirmation ("True" or
                                                  "False")
                                                example: 'False'
                                            required:
                                              - event_type
                                              - id
                                              - minute
                                              - name
                                              - ref_decision
                                              - var_decision
                                        required:
                                          - player
                                    required:
                                      - goals
                                      - yellowcards
                                  away:
                                    $ref: >-
                                      #/paths/~1soccer~1live-match-stats~1%7Bleague_abbreviation%7D/get/responses/200/content/application~1json/schema/properties/commentaries/properties/league/properties/match/properties/summary/properties/home
                                required:
                                  - home
                                  - away
                            required:
                              - alternate_id_2
                              - date
                              - id
                              - static_id
                              - status
                              - time
                              - home
                              - away
                        required:
                          - country
                          - name
                          - id
                          - sub_id
                          - match
                    required:
                      - updated
                      - sport
                      - country
                      - league
                required:
                  - commentaries
              example:
                commentaries:
                  updated: '12.12.2025 19:26:09'
                  sport: soccer
                  country: epl
                  league:
                    country: epl
                    name: England - Premier League
                    id: '3037'
                    sub_id: ''
                    match:
                      alternate_id: ''
                      alternate_id_2: '6531349'
                      date: 08.12.2025
                      id: '6023967'
                      static_id: '08122523412792341093'
                      status: Full-time
                      time: '20:00'
                      timer: ''
                      home:
                        et_score: ''
                        ft_score: '1'
                        goals: '1'
                        ht_score: '1'
                        id: '2341279'
                        name: Wolverhampton
                        pen_score: ''
                      away:
                        et_score: ''
                        ft_score: '4'
                        goals: '4'
                        ht_score: '1'
                        id: '2341093'
                        name: Manchester United
                        pen_score: ''
                      matchinfo:
                        stadium:
                          name: 'Molineux Stadium, Wolverhampton'
                        attendance:
                          name: ''
                        time:
                          addedtime_period1: '2'
                          addedtime_period2: '9'
                          name: '20:00'
                        referee:
                          name: 'Michael Salisbury, England'
                      summary:
                        home:
                          goals:
                            player:
                              assist_id: '603294'
                              assist_name: David Möller Wolfe
                              extra_min: '2'
                              id: '2752619'
                              minute: '45'
                              name: Jean-Ricner Bellegarde
                              owngoal: 'False'
                              penalty: 'False'
                              penalty_missed: 'False'
                              var_cancelled: 'False'
                          yellowcards:
                            player:
                              - comment: Handball
                                extra_min: ''
                                id: '2980333'
                                minute: '81'
                                name: Yerson Mosquera
                              - comment: Foul
                                extra_min: ''
                                id: '2796250'
                                minute: '46'
                                name: Ladislav Krejčí
                              - comment: Foul
                                extra_min: ''
                                id: '2793640'
                                minute: '44'
                                name: Jørgen Strand Larsen
                          redcards: null
                          var: null
                        away:
                          goals:
                            player:
                              - assist_id: ''
                                assist_name: ''
                                extra_min: ''
                                id: '2608204'
                                minute: '82'
                                name: Bruno Fernandes
                                owngoal: 'False'
                                penalty: 'True'
                                penalty_missed: 'False'
                                var_cancelled: 'False'
                              - assist_id: '276371'
                                assist_name: Bruno Fernandes
                                extra_min: ''
                                id: '2708530'
                                minute: '62'
                                name: Mason Mount
                                owngoal: 'False'
                                penalty: 'False'
                                penalty_missed: 'False'
                                var_cancelled: 'False'
                              - assist_id: '400243'
                                assist_name: Diogo Dalot
                                extra_min: ''
                                id: '2789299'
                                minute: '51'
                                name: Bryan Mbeumo
                                owngoal: 'False'
                                penalty: 'False'
                                penalty_missed: 'False'
                                var_cancelled: 'False'
                              - assist_id: '491026'
                                assist_name: Matheus Cunha
                                extra_min: ''
                                id: '2608204'
                                minute: '25'
                                name: Bruno Fernandes
                                owngoal: 'False'
                                penalty: 'False'
                                penalty_missed: 'False'
                                var_cancelled: 'False'
                          yellowcards:
                            player:
                              - comment: Argument
                                extra_min: '6'
                                id: '2848210'
                                minute: '90'
                                name: Joshua Zirkzee
                              - comment: Foul
                                extra_min: ''
                                id: '2789299'
                                minute: '38'
                                name: Bryan Mbeumo
                          redcards: null
                          var:
                            player:
                              event_type: Penalty confirmed
                              extra_min: ''
                              id: '2964802'
                              minute: '80'
                              name: Amad Diallo
                              ref_decision: Penalty cancelled
                              var_decision: 'False'
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: >-
            Unauthorized - invalid or missing access_key or invalid league
            abbreviation
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: Resource Not Found - could not find resource for league abbreviation
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  '/soccer/standings/{country}':
    get:
      summary: Get Standings By Country
      description: >
        Returns Soccer standings by country with detailed league and team
        information. This endpoint data is updated every 1 hour.
      tags:
        - ⚽ Soccer (V1 - Legacy)
      servers:
        - url: 'https://statpal.io/api/v1/'
          description: Production (v1)
      security:
        - ApiKeyAuth: []
      parameters:
        - name: country
          in: path
          required: true
          description: |
            Country Name.
          schema:
            type: string
            enum:
              - africa
              - albania
              - algeria
              - andorra
              - angola
              - antiguaandbarbuda
              - argentina
              - armenia
              - aruba
              - asia
              - australia
              - austria
              - azerbaijan
              - bahrain
              - bangladesh
              - barbados
              - belarus
              - belgium
              - belize
              - benin
              - bermuda
              - bhutan
              - bolivia
              - bosniaandherzegovina
              - botswana
              - brazil
              - bulgaria
              - burkinafaso
              - burundi
              - cambodia
              - cameroon
              - canada
              - chile
              - china
              - chinesetaipei
              - colombia
              - congo
              - congo_dr
              - costarica
              - croatia
              - cuba
              - curacao
              - cyprus
              - czechrepublic
              - denmark
              - dominicanrepublic
              - ecuador
              - egypt
              - elsalvador
              - england
              - estonia
              - eswatini
              - ethiopia
              - europe
              - faroeislands
              - fiji
              - finland
              - france
              - gabon
              - gambia
              - georgia
              - germany
              - ghana
              - gibraltar
              - greece
              - grenada
              - guadeloupe
              - guatemala
              - guinea
              - haiti
              - honduras
              - hongkong
              - hungary
              - iceland
              - india
              - indonesia
              - international
              - iran
              - iraq
              - ireland
              - israel
              - italy
              - ivorycoast
              - jamaica
              - japan
              - jordan
              - kazakhstan
              - kenya
              - kosovo
              - kuwait
              - kyrgystan
              - laos
              - latvia
              - lebanon
              - lesotho
              - liberia
              - libya
              - liechtenstein
              - lithuania
              - luxembourg
              - macao
              - macedonia
              - malawi
              - malaysia
              - maldives
              - mali
              - malta
              - mauritania
              - mauritius
              - mexico
              - moldova
              - mongolia
              - montenegro
              - morocco
              - myanmar
              - nepal
              - netherlands
              - newzealand
              - nicaragua
              - nigeria
              - northandcentralamerica
              - northireland
              - norway
              - oceania
              - oman
              - pakistan
              - palestine
              - panama
              - paraguay
              - peru
              - philippines
              - poland
              - portugal
              - qatar
              - romania
              - russia
              - rwanda
              - sanmarino
              - saudiarabia
              - scotland
              - senegal
              - serbia
              - singapore
              - slovakia
              - slovenia
              - somalia
              - southafrica
              - southamerica
              - southkorea
              - spain
              - sudan
              - suriname
              - sweden
              - switzerland
              - syria
              - tajikistan
              - tanzania
              - thailand
              - togo
              - trinidadandtobago
              - tunisia
              - turkey
              - turkmenistan
              - uae
              - uganda
              - ukraine
              - uruguay
              - usa
              - uzbekistan
              - venezuela
              - vietnam
              - wales
              - world
              - yemen
              - zambia
              - zimbabwe
      x-update-rate: 3600
      responses:
        '200':
          description: >-
            Successful response with Soccer standings for requested country
            including leagues and teams with detailed stats.
          content:
            application/json:
              schema:
                type: object
                properties:
                  standings:
                    type: object
                    properties:
                      country:
                        type: string
                        description: Country name for the standings data
                        example: england
                      updated:
                        type: string
                        description: Timestamp of last update
                        example: '12.12.2025 19:22:14'
                      sport:
                        type: string
                        description: Sport name
                        example: soccer
                      league:
                        type: array
                        items:
                          type: object
                          properties:
                            country:
                              type: string
                              description: Country of the league
                              example: england
                            id:
                              type: string
                              description: League ID
                              example: '3030'
                            is_current:
                              type: string
                              description: >-
                                Flag indicating if this is current season
                                ("True" or "False")
                              example: 'True'
                            name:
                              type: string
                              description: League or competition name
                              example: League Two
                            season:
                              type: string
                              description: >-
                                Season this league data pertains to (e.g.
                                "2025/2026")
                              example: 2025/2026
                            sub_id:
                              type: string
                              description: Sub-league or group ID if any
                              example: '30300'
                            team:
                              oneOf:
                                - type: object
                                  properties:
                                    id:
                                      type: string
                                      description: Team ID
                                      example: '2341249'
                                    name:
                                      type: string
                                      description: Team name
                                      example: Walsall
                                    position:
                                      type: string
                                      description: >-
                                        Current position of the team in the
                                        league standings
                                      example: '1'
                                    recent_form:
                                      type: string
                                      description: >-
                                        Team's recent form represented by
                                        characters (e.g. "WWWLW")
                                      example: WWWLW
                                    status:
                                      type: string
                                      description: >-
                                        Status indicator for the team position
                                        movement (e.g. "same", "up", "down")
                                      example: same
                                    overall:
                                      $ref: >-
                                        #/paths/~1soccer~1standings~1%7Bcountry%7D/get/responses/200/content/application~1json/schema/properties/standings/properties/league/items/properties/team/oneOf/0/properties/home
                                    home:
                                      type: object
                                      properties:
                                        draw:
                                          type: string
                                          description: Number of draws
                                          example: '2'
                                        goals_allowed:
                                          type: string
                                          description: Number of goals allowed
                                          example: '18'
                                        goals_scored:
                                          type: string
                                          description: Number of goals scored
                                          example: '29'
                                        lose:
                                          type: string
                                          description: Number of losses
                                          example: '5'
                                        played:
                                          type: string
                                          description: Number of matches played
                                          example: '19'
                                        p:
                                          type: string
                                          description: >-
                                            Unknown field, usually "0" or nullable
                                            (p)
                                          nullable: true
                                          example: '0'
                                        win:
                                          type: string
                                          description: Number of wins
                                          example: '12'
                                      required:
                                        - draw
                                        - goals_allowed
                                        - goals_scored
                                        - lose
                                        - played
                                        - win
                                    away:
                                      $ref: >-
                                        #/paths/~1soccer~1standings~1%7Bcountry%7D/get/responses/200/content/application~1json/schema/properties/standings/properties/league/items/properties/team/oneOf/0/properties/home
                                    totals:
                                      type: object
                                      properties:
                                        goal_difference:
                                          type: string
                                          description: >-
                                            Goal difference (goals_scored -
                                            goals_allowed)
                                          example: '11'
                                        points:
                                          type: string
                                          description: Total points
                                          example: '38'
                                      required:
                                        - goal_difference
                                        - points
                                    special:
                                      nullable: true
                                      type: object
                                      properties:
                                        name:
                                          type: string
                                          description: >-
                                            Special notes for the team (promotion,
                                            relegation, playoff status, etc.)
                                          example: Promotion - League One
                                      required:
                                        - name
                                  required:
                                    - id
                                    - name
                                    - position
                                    - recent_form
                                    - status
                                    - overall
                                    - home
                                    - away
                                    - totals
                                - type: array
                                  items:
                                    $ref: >-
                                      #/paths/~1soccer~1standings~1%7Bcountry%7D/get/responses/200/content/application~1json/schema/properties/standings/properties/league/items/properties/team/oneOf/0
                          required:
                            - country
                            - id
                            - is_current
                            - name
                            - season
                            - sub_id
                            - team
                    required:
                      - country
                      - updated
                      - sport
                      - league
                required:
                  - standings
              example:
                standings:
                  country: england
                  updated: '12.12.2025 19:22:14'
                  sport: soccer
                  league:
                    - country: england
                      id: '3030'
                      is_current: 'True'
                      name: League Two
                      season: 2025/2026
                      sub_id: '30300'
                      team:
                        - id: '2341249'
                          name: Walsall
                          position: '1'
                          recent_form: WWWLW
                          status: same
                          overall:
                            draw: '2'
                            goals_allowed: '18'
                            goals_scored: '29'
                            lose: '5'
                            played: '19'
                            win: '12'
                          home:
                            draw: '0'
                            goals_allowed: '10'
                            goals_scored: '14'
                            lose: '3'
                            p: '0'
                            played: '9'
                            win: '6'
                          away:
                            draw: '2'
                            goals_allowed: '8'
                            goals_scored: '15'
                            lose: '2'
                            p: '0'
                            played: '10'
                            win: '6'
                          totals:
                            goal_difference: '11'
                            points: '38'
                          special:
                            name: Promotion - League One
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: Unauthorized - invalid or missing access_key or invalid sport
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: Resource Not Found - could not find resource
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  '/soccer/scoring-leaders/{country}':
    get:
      summary: Get Scoring Leaders By Country
      description: >
        Returns top Soccer scoring leaders by country with detailed player,
        team, and league information. This endpoint data is updated every 1
        hour.
      tags:
        - ⚽ Soccer (V1 - Legacy)
      servers:
        - url: 'https://statpal.io/api/v1/'
          description: Production (v1)
      security:
        - ApiKeyAuth: []
      parameters:
        - name: country
          in: path
          required: true
          description: |
            Country name for scoring leaders.
          schema:
            type: string
            enum:
              - africa
              - albania
              - algeria
              - austria
              - angola
              - argentina
              - armenia
              - asia
              - australia
              - azerbaijan
              - belarus
              - belgium
              - bolivia
              - bosnia
              - brazil
              - bulgaria
              - cameroon
              - canada
              - chile
              - china
              - colombia
              - concacaf
              - congo
              - croatia
              - cyprus
              - czech
              - costarica
              - denmark
              - equador
              - egypt
              - elsalvador
              - england
              - estonia
              - europe
              - finland
              - france
              - georgia
              - germany
              - ghana
              - greece
              - guatemala
              - holland
              - honduras
              - hungary
              - iceland
              - india
              - indonesia
              - international
              - iran
              - ireland
              - israel
              - italy
              - japan
              - jordan
              - kazakhstan
              - kenya
              - korea
              - kuwait
              - latvia
              - lithuania
              - macedonia
              - malaysia
              - malta
              - mexico
              - moldova
              - montenegro
              - morocco
              - newzealand
              - nigeria
              - norway
              - oceania
              - paraguay
              - peru
              - poland
              - portugal
              - qatar
              - romania
              - russia
              - saudiarabia
              - scotland
              - serbia
              - singapore
              - slovakia
              - slovenia
              - southafrica
              - southamerica
              - spain
              - sweden
              - switzerland
              - thailand
              - tunisia
              - turkey
              - uae
              - usa
              - ukraine
              - uruguay
              - uzbekistan
              - venezuela
              - vietnam
              - wales
              - worldcup
      x-update-rate: 3600
      responses:
        '200':
          description: >-
            Successful response with Soccer scoring leaders by country including
            league, player, and team details
          content:
            application/json:
              schema:
                type: object
                properties:
                  scorers:
                    type: object
                    properties:
                      updated:
                        type: string
                        description: Timestamp of last update
                        example: '12.12.2025 18:10:50'
                      sport:
                        type: string
                        description: Sport name
                        example: soccer
                      country:
                        type: string
                        description: Country name for the scoring leaders
                        example: england
                      league:
                        type: array
                        items:
                          type: object
                          properties:
                            country:
                              type: string
                              description: Country name for the league
                              example: england
                            name:
                              type: string
                              description: League or competition name
                              example: Premier League
                            id:
                              type: string
                              description: League ID
                              example: '3037'
                            sub_id:
                              type: string
                              description: Sub-league or competition ID if applicable
                              example: '30370'
                            player:
                              oneOf:
                                - type: object
                                  properties:
                                    goals:
                                      type: string
                                      description: Number of goals scored by the player
                                      example: '29'
                                    id:
                                      type: string
                                      description: Player ID
                                      example: '2470486'
                                    name:
                                      type: string
                                      description: Player name
                                      example: Mohamed Salah
                                    penalty_goals:
                                      type: string
                                      description: >-
                                        Number of penalty goals scored by the
                                        player
                                      example: '9'
                                    pos:
                                      type: string
                                      description: Position or rank on scoring leaderboard
                                      example: '1'
                                    team:
                                      type: string
                                      description: Player's team name
                                      example: Liverpool
                                    team_id:
                                      type: string
                                      description: Player's team ID
                                      example: '2341082'
                                  required:
                                    - goals
                                    - id
                                    - name
                                    - penalty_goals
                                    - pos
                                    - team
                                    - team_id
                                - type: array
                                  items:
                                    $ref: >-
                                      #/paths/~1soccer~1scoring-leaders~1%7Bcountry%7D/get/responses/200/content/application~1json/schema/properties/scorers/properties/league/items/properties/player/oneOf/0
                          required:
                            - country
                            - name
                            - id
                            - sub_id
                            - player
                    required:
                      - updated
                      - sport
                      - country
                      - league
                required:
                  - scorers
              example:
                scorers:
                  updated: '12.12.2025 18:10:50'
                  sport: soccer
                  country: england
                  league:
                    - country: england
                      name: Premier League
                      id: '3037'
                      sub_id: '30370'
                      player:
                        - goals: '29'
                          id: '2470486'
                          name: Mohamed Salah
                          penalty_goals: '9'
                          pos: '1'
                          team: Liverpool
                          team_id: '2341082'
                        - goals: '23'
                          id: '2753998'
                          name: A. Isak
                          penalty_goals: '4'
                          pos: '2'
                          team: Newcastle United
                          team_id: '2341120'
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: Unauthorized - invalid or missing access_key or invalid sport
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: Resource Not Found - could not find resource
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  /soccer/injuries:
    get:
      summary: Get Injuries & Suspensions
      description: >
        Returns Soccer injuries and suspensions with detailed league, match,
        team, and player sidelined information. This endpoint data is updated
        every 1 hour.
      tags:
        - ⚽ Soccer (V1 - Legacy)
      servers:
        - url: 'https://statpal.io/api/v1/'
          description: Production (v1)
      security:
        - ApiKeyAuth: []
      x-update-rate: 3600
      responses:
        '200':
          description: >-
            Successful response with Soccer injuries and suspensions including
            league, match, team, and sidelined player details.
          content:
            application/json:
              schema:
                type: object
                properties:
                  injuries_suspensions:
                    type: object
                    properties:
                      updated:
                        type: string
                        description: Timestamp of the last update
                        example: '12.12.2025 19:01:05'
                      sport:
                        type: string
                        description: Sport name
                        example: soccer
                      league:
                        type: array
                        items:
                          type: object
                          properties:
                            name:
                              type: string
                              description: League or competition name
                              example: 'Australia: A-League'
                            id:
                              type: string
                              description: League ID
                              example: '2919'
                            sub_id:
                              type: string
                              description: Sub-league or competition ID if applicable
                              example: '29190'
                            match:
                              oneOf:
                                - type: object
                                  properties:
                                    alternate_id:
                                      type: string
                                      description: Alternate match ID
                                      example: '6608265'
                                    alternate_id_2:
                                      type: string
                                      description: Secondary alternate match ID
                                      example: '8766226'
                                    date:
                                      type: string
                                      description: Match date
                                      example: 13.12.2025
                                    id:
                                      type: string
                                      description: Match ID
                                      example: '6100852'
                                    static_id:
                                      type: string
                                      description: Static unique ID for the match
                                      example: '13122523381162337990'
                                    status:
                                      type: string
                                      description: Match status or current minute
                                      example: '06:00'
                                    time:
                                      type: string
                                      description: Match start or current time
                                      example: '06:00'
                                    home:
                                      type: object
                                      properties:
                                        goals:
                                          type: string
                                          description: >-
                                            Number of goals scored by the team or
                                            "?" if unknown
                                          example: '?'
                                        id:
                                          type: string
                                          description: Team ID
                                          example: '2338116'
                                        name:
                                          type: string
                                          description: Team name
                                          example: WS Wanderers
                                        sidelined:
                                          type: object
                                          properties:
                                            to_miss:
                                              oneOf:
                                                - type: object
                                                  properties:
                                                    player:
                                                      oneOf:
                                                        - type: object
                                                          properties:
                                                            id:
                                                              type: string
                                                              description: Player ID
                                                              example: '907829'
                                                            name:
                                                              type: string
                                                              description: Player name
                                                              example: N. Amanatidis
                                                            status:
                                                              type: string
                                                              description: Injury or suspension status
                                                              example: Muscle Injury
                                                          required:
                                                            - id
                                                            - name
                                                            - status
                                                        - type: array
                                                          items:
                                                            $ref: >-
                                                              #/paths/~1soccer~1injuries/get/responses/200/content/application~1json/schema/properties/injuries_suspensions/properties/league/items/properties/match/oneOf/0/properties/home/properties/sidelined/properties/to_miss/oneOf/0/properties/player/oneOf/0
                                                  required:
                                                    - player
                                                - 'null'
                                              description: Players confirmed to miss the match
                                              nullable: true
                                            questionable:
                                              oneOf:
                                                - $ref: >-
                                                    #/paths/~1soccer~1injuries/get/responses/200/content/application~1json/schema/properties/injuries_suspensions/properties/league/items/properties/match/oneOf/0/properties/home/properties/sidelined/properties/to_miss/oneOf/0
                                                - 'null'
                                              description: >-
                                                Players who are questionable for the
                                                match
                                              nullable: true
                                          required:
                                            - to_miss
                                            - questionable
                                      required:
                                        - goals
                                        - id
                                        - name
                                        - sidelined
                                    away:
                                      $ref: >-
                                        #/paths/~1soccer~1injuries/get/responses/200/content/application~1json/schema/properties/injuries_suspensions/properties/league/items/properties/match/oneOf/0/properties/home
                                  required:
                                    - alternate_id
                                    - alternate_id_2
                                    - date
                                    - id
                                    - static_id
                                    - status
                                    - time
                                    - home
                                    - away
                                - type: array
                                  items:
                                    $ref: >-
                                      #/paths/~1soccer~1injuries/get/responses/200/content/application~1json/schema/properties/injuries_suspensions/properties/league/items/properties/match/oneOf/0
                          required:
                            - name
                            - id
                            - sub_id
                            - match
                    required:
                      - updated
                      - sport
                      - league
                required:
                  - injuries_suspensions
              example:
                injuries_suspensions:
                  updated: '12.12.2025 19:01:05'
                  sport: soccer
                  league:
                    - name: 'Australia: A-League'
                      id: '2919'
                      sub_id: '29190'
                      match:
                        - alternate_id: '6608265'
                          alternate_id_2: '8766226'
                          date: 13.12.2025
                          id: '6100852'
                          static_id: '13122523381162337990'
                          status: '06:00'
                          time: '06:00'
                          home:
                            goals: '?'
                            id: '2338116'
                            name: WS Wanderers
                            sidelined:
                              to_miss: null
                              questionable: null
                          away:
                            goals: '?'
                            id: '2337990'
                            name: Brisbane Roar
                            sidelined:
                              to_miss:
                                player:
                                  - id: '907829'
                                    name: N. Amanatidis
                                    status: Muscle Injury
                                  - id: '651891'
                                    name: H. Bility
                                    status: Hamstring Injury
                              questionable: null
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: Unauthorized - invalid or missing access_key or invalid sport
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: Resource Not Found - could not find resource
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
  '/soccer/odds/{country}':
    get:
      summary: Get Pre-Match Odds
      description: >
        Returns pre-match Soccer odds with detailed league, matches, and
        bookmaker odds. This endpoint data is updated every 30 minutes.
      tags:
        - ⚽ Soccer (V1 - Legacy)
      servers:
        - url: 'https://statpal.io/api/v1/'
          description: Production (v1)
      security:
        - ApiKeyAuth: []
      parameters:
        - name: country
          in: path
          required: true
          description: |
            Country name for the soccer league.
          schema:
            type: string
            enum:
              - africa
              - albania
              - algeria
              - austria
              - angola
              - argentina
              - armenia
              - asia
              - australia
              - azerbaijan
              - belarus
              - belgium
              - bolivia
              - bosnia
              - brazil
              - bulgaria
              - cameroon
              - canada
              - chile
              - china
              - colombia
              - concacaf
              - congo
              - croatia
              - cyprus
              - czech
              - costarica
              - denmark
              - equador
              - egypt
              - elsalvador
              - england
              - estonia
              - europe
              - finland
              - france
              - georgia
              - germany
              - ghana
              - greece
              - guatemala
              - holland
              - honduras
              - hungary
              - iceland
              - india
              - indonesia
              - international
              - iran
              - ireland
              - israel
              - italy
              - japan
              - jordan
              - kazakhstan
              - kenya
              - korea
              - kuwait
              - latvia
              - lithuania
              - macedonia
              - malaysia
              - malta
              - mexico
              - moldova
              - montenegro
              - morocco
              - newzealand
              - nigeria
              - norway
              - oceania
              - paraguay
              - peru
              - poland
              - portugal
              - qatar
              - romania
              - russia
              - saudiarabia
              - scotland
              - serbia
              - singapore
              - slovakia
              - slovenia
              - southafrica
              - southamerica
              - spain
              - sweden
              - switzerland
              - thailand
              - tunisia
              - turkey
              - uae
              - usa
              - ukraine
              - uruguay
              - uzbekistan
              - venezuela
              - vietnam
              - wales
              - worldcup
      x-update-rate: 1800
      responses:
        '200':
          description: >-
            Successful response with pre-match Soccer odds including league,
            match, and bookmaker details
          content:
            application/json:
              schema:
                type: object
                properties:
                  odds_feed:
                    type: object
                    properties:
                      updated:
                        type: string
                        description: Timestamp of last update
                        example: '22.01.2025 13:47:47'
                      sport:
                        type: string
                        description: Sport name
                        example: soccer
                      league:
                        type: array
                        items:
                          type: object
                          properties:
                            country:
                              type: string
                              description: 'Country name (e.g. england, france, etc.)'
                              example: england
                            gid:
                              type: string
                              description: Global league ID
                              example: '1204'
                            id:
                              type: string
                              description: League ID
                              example: '3037'
                            name:
                              type: string
                              description: League or competition name
                              example: 'England: Premier League'
                            sub_id:
                              type: string
                              description: Sub-league or competition ID if applicable
                              example: '30370'
                            match:
                              type: array
                              items:
                                type: object
                                properties:
                                  alternate_id:
                                    type: string
                                    description: Alternate match ID
                                    example: '6346836'
                                  alternate_id_2:
                                    type: string
                                    description: Secondary alternate match ID
                                    example: '8210697'
                                  date:
                                    type: string
                                    description: Match date in DD.MM.YYYY format
                                    example: 25.01.2025
                                  id:
                                    type: string
                                    description: Match ID
                                    example: '5839528'
                                  static_id:
                                    type: string
                                    description: Static unique ID for the match
                                    example: '25012523408862341130'
                                  status:
                                    type: string
                                    description: Match status or scheduled time
                                    example: '15:00'
                                  time:
                                    type: string
                                    description: Scheduled match time
                                    example: '15:00'
                                  venue:
                                    type: string
                                    description: 'Venue name, nullable'
                                    nullable: true
                                    example: ''
                                  home:
                                    type: object
                                    properties:
                                      alternate_id:
                                        type: string
                                        description: Alternate team ID
                                        example: '5363803836'
                                      id:
                                        type: string
                                        description: Team ID
                                        example: '2340886'
                                      name:
                                        type: string
                                        description: Team name
                                        example: Bournemouth
                                    required:
                                      - id
                                      - name
                                  away:
                                    $ref: >-
                                      #/paths/~1soccer~1odds~1%7Bcountry%7D/get/responses/200/content/application~1json/schema/properties/odds_feed/properties/league/items/properties/match/items/properties/home
                                  odds:
                                    type: object
                                    properties:
                                      type:
                                        type: array
                                        items:
                                          type: object
                                          properties:
                                            name:
                                              type: string
                                              description: >-
                                                Odds market name (e.g. "1x2", "Asian
                                                Handicap", "Over/Under")
                                              example: 1x2
                                            bookmaker:
                                              oneOf:
                                                - type: object
                                                  properties:
                                                    id:
                                                      type: string
                                                      description: Bookmaker ID
                                                      example: '767'
                                                    name:
                                                      type: string
                                                      description: Bookmaker name
                                                      example: bwin
                                                    odd:
                                                      oneOf:
                                                        - type: object
                                                          properties:
                                                            name:
                                                              type: string
                                                              description: >-
                                                                Name of the odd (e.g. "Home", "Draw",
                                                                "Over")
                                                              example: Home
                                                            value:
                                                              type: string
                                                              description: Odd value as a string (decimal format)
                                                              example: '2.05'
                                                          required:
                                                            - name
                                                            - value
                                                        - type: array
                                                          items:
                                                            $ref: >-
                                                              #/paths/~1soccer~1odds~1%7Bcountry%7D/get/responses/200/content/application~1json/schema/properties/odds_feed/properties/league/items/properties/match/items/properties/odds/properties/type/items/properties/bookmaker/oneOf/0/properties/odd/oneOf/0
                                                      nullable: true
                                                    handicap:
                                                      oneOf:
                                                        - type: object
                                                          properties:
                                                            ismain:
                                                              type: string
                                                              description: >-
                                                                Flag if this handicap is main ("True" or
                                                                "False")
                                                              example: 'True'
                                                            name:
                                                              type: string
                                                              description: 'Handicap value (e.g. "-1", "+0.25")'
                                                              example: '-0.75'
                                                            stop:
                                                              type: string
                                                              description: >-
                                                                Whether the market is stopped ("True" or
                                                                "False")
                                                              example: 'False'
                                                            odd:
                                                              oneOf:
                                                                - $ref: >-
                                                                    #/paths/~1soccer~1odds~1%7Bcountry%7D/get/responses/200/content/application~1json/schema/properties/odds_feed/properties/league/items/properties/match/items/properties/odds/properties/type/items/properties/bookmaker/oneOf/0/properties/odd/oneOf/0
                                                                - type: array
                                                                  items:
                                                                    $ref: >-
                                                                      #/paths/~1soccer~1odds~1%7Bcountry%7D/get/responses/200/content/application~1json/schema/properties/odds_feed/properties/league/items/properties/match/items/properties/odds/properties/type/items/properties/bookmaker/oneOf/0/properties/odd/oneOf/0
                                                          required:
                                                            - ismain
                                                            - name
                                                            - stop
                                                            - odd
                                                        - type: array
                                                          items:
                                                            $ref: >-
                                                              #/paths/~1soccer~1odds~1%7Bcountry%7D/get/responses/200/content/application~1json/schema/properties/odds_feed/properties/league/items/properties/match/items/properties/odds/properties/type/items/properties/bookmaker/oneOf/0/properties/handicap/oneOf/0
                                                      nullable: true
                                                    total:
                                                      oneOf:
                                                        - type: object
                                                          properties:
                                                            ismain:
                                                              type: string
                                                              description: >-
                                                                Flag if this total market is main
                                                                ("True" or "False")
                                                              example: 'True'
                                                            name:
                                                              type: string
                                                              description: 'Total or line value (e.g. "2.5", "1.5")'
                                                              example: '2.5'
                                                            stop:
                                                              type: string
                                                              description: >-
                                                                Whether the market is stopped ("True" or
                                                                "False")
                                                              example: 'False'
                                                            odd:
                                                              oneOf:
                                                                - $ref: >-
                                                                    #/paths/~1soccer~1odds~1%7Bcountry%7D/get/responses/200/content/application~1json/schema/properties/odds_feed/properties/league/items/properties/match/items/properties/odds/properties/type/items/properties/bookmaker/oneOf/0/properties/odd/oneOf/0
                                                                - type: array
                                                                  items:
                                                                    $ref: >-
                                                                      #/paths/~1soccer~1odds~1%7Bcountry%7D/get/responses/200/content/application~1json/schema/properties/odds_feed/properties/league/items/properties/match/items/properties/odds/properties/type/items/properties/bookmaker/oneOf/0/properties/odd/oneOf/0
                                                          required:
                                                            - ismain
                                                            - name
                                                            - stop
                                                            - odd
                                                        - type: array
                                                          items:
                                                            $ref: >-
                                                              #/paths/~1soccer~1odds~1%7Bcountry%7D/get/responses/200/content/application~1json/schema/properties/odds_feed/properties/league/items/properties/match/items/properties/odds/properties/type/items/properties/bookmaker/oneOf/0/properties/total/oneOf/0
                                                      nullable: true
                                                  required:
                                                    - id
                                                    - name
                                                - type: array
                                                  items:
                                                    $ref: >-
                                                      #/paths/~1soccer~1odds~1%7Bcountry%7D/get/responses/200/content/application~1json/schema/properties/odds_feed/properties/league/items/properties/match/items/properties/odds/properties/type/items/properties/bookmaker/oneOf/0
                                          required:
                                            - name
                                            - bookmaker
                                    required:
                                      - type
                                required:
                                  - alternate_id
                                  - alternate_id_2
                                  - date
                                  - id
                                  - static_id
                                  - status
                                  - time
                                  - home
                                  - away
                                  - odds
                          required:
                            - country
                            - gid
                            - id
                            - name
                            - sub_id
                            - match
                    required:
                      - updated
                      - sport
                      - league
                required:
                  - odds_feed
              example:
                example:
                  odds_feed:
                    updated: '22.01.2025 13:47:47'
                    sport: soccer
                    league:
                      - country: england
                        gid: '1204'
                        id: '3037'
                        name: 'England: Premier League'
                        sub_id: '30370'
                        match:
                          - alternate_id: '6346836'
                            alternate_id_2: '8210697'
                            date: 25.01.2025
                            id: '5839528'
                            static_id: '25012523408862341130'
                            status: '15:00'
                            time: '15:00'
                            venue: ''
                            home:
                              alternate_id: '5363803836'
                              id: '2340886'
                              name: Bournemouth
                            away:
                              alternate_id: '5363803837'
                              id: '2341130'
                              name: Nottingham
                            odds:
                              type:
                                - name: 1x2
                                  bookmaker:
                                    - id: '767'
                                      name: bwin
                                      odd:
                                        - name: Home
                                          value: '2.05'
                                        - name: Draw
                                          value: '3.60'
                                        - name: Away
                                          value: '3.40'
                                - name: Asian Handicap
                                  bookmaker:
                                    - id: '777'
                                      name: NordicBet
                                      handicap:
                                        - ismain: 'True'
                                          name: '-0.75'
                                          stop: 'False'
                                          odd:
                                            - name: Home
                                              value: '2.43'
                                            - name: Away
                                              value: '1.59'
                                - name: Over/Under
                                  bookmaker:
                                    - id: '781'
                                      name: bet365
                                      total:
                                        - ismain: 'True'
                                          name: '2.5'
                                          stop: 'False'
                                          odd:
                                            - name: Over
                                              value: '1.77'
                                            - name: Under
                                              value: '1.93'
                                - name: Correct Score
                                  bookmaker:
                                    - id: '780'
                                      name: WilliamHill
                                      odd:
                                        - name: '1:0'
                                          value: '8.00'
                                        - name: '2:1'
                                          value: '8.50'
                                - name: Both Teams To Score
                                  bookmaker:
                                    - id: '836'
                                      name: Fonbet
                                      odd:
                                        - name: 'Yes'
                                          value: '1.68'
                                        - name: 'No'
                                          value: '2.12'
        '400':
          description: Invalid Parameters - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Invalid Request
                code: 400
        '401':
          description: Unauthorized - invalid or missing access_key or invalid sport
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Unauthorized
                code: 401
        '404':
          description: Resource Not Found - could not find resource
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Resource Not Found
                code: 404
        '429':
          description: Too many requests - rate limited
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Rate limit exceeded
                code: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1nhl~1odds/get/responses/400/content/application~1json/schema
              example:
                error: Internal server error
                code: 500
