> ## Documentation Index
> Fetch the complete documentation index at: https://txline-docs.txodds.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Get a real-time Server-Sent Events stream of scores updates

> A long-lived stream of scores updates.

The stream consists of two types of events:
1. **Data messages:** These have an `id` in the format `timestamp:index` and `data` containing a JSON object for a single Scores record.
2. **Heartbeats:** These have an `event` field set to `heartbeat` and may have data like `{"Ts": 12345}`.




## OpenAPI

````yaml https://txline.txodds.com/docs/docs.yaml get /api/scores/stream
openapi: 3.1.0
info:
  title: TxLINE off-chain API for the Hybrid on-chain/off-chain TxODDS Data system
  version: 1.5.2
  description: >

    ## Overview


    This API provides access to real-time and historical sports data from the
    **TxLINE on-chain/off-chain Data system**.


    It makes proprietary TxODDS available for any funded blockchain users by
    linking the on-chain `subscribe` transaction by issuing time-limited API
    tokens.

    - The data is canonicalised so that all fixtures, odds, or scores are
    provably identifiable and ordered--confirmed by on-chain cryptographic
    proofs.

    - The data is delivered in a request-response or Server-Sent Events (SSE)
    streaming form.


    Examples of accessing the accompanying on-chain program are available
    publicly at: https://txline.txodds.com/documentation.

    All data returned by the off-chain API is canonicalised such that every
    single record can be cryptographically proven on-chain to be

    part of the unique and consistent dataset generated by the TxODDS Data
    system.


    ## Key features


    * The odds data includes the `Stable Price` demargined prices and
    percentages, currently for key markets in European football (soccer).

    * **Free subscription option that offers World Cup 2026 odds and
    off-the-board signals in real-time sampled every 60 seconds**.

    * **Data access paid for by the TxLINE token tethered to USDT ata rate 1
    USDT = 1_000 TxLINE tokens** The TxLINE utility token can purchased using
    the associated Solana program.

    * **Fine-grained service level selection** The user can list the
    pre-configured **service levels** that either map to pre-defined league
    bundles or allow custom selecting the leagues explicitly.
     The price also depends on the sampling period for the data.
    * **Maximum subscription option that offers all leagues in real-time**.

    * **Historical Snapshots:** Query the latest state of any market at a
    specific point in time.

    * **Historical Updates:** Query the updates for any given key such as
    fixture or market for a given time period.

    * **Live Data Streams:** Real-time, low-latency data feeds using Server-Sent
    Events (SSE).

    * **On-chain Validation:** Retrieve Merkle proofs to cryptographically
    verify data against the on-chain held Merkle roots by calling appropriate
    validate on-chain instructions.


    ## How do the users gain access to off-chain data (see more details and
    examples at: https://github.com/txodds/tx-on-chain)


    1. For paid service tiers, the user purchases TxODDS TxLINE utility tokens
    for USDT at a fixed rate using either a script (e.g., calling
    `purchase_subscription_token_usdt`) or an affiliate website. The tokens are
    deposited into the user's associated token account. (Note: This step is
    skipped for the free World Cup tier).

    2. As a guest, with no prior authentication, the user calls the off-chain
    API at "https://txline.txodds.com/auth/guest/start" (or `txline-dev` for
    DevNet) to obtain an anonymous JWT with Guest claims. **Please note that the
    JWT token has 30 days  expiration so if you are issuing calls to the data
    endpoints beyond 30 days, you should either pre-acquire a new JWT token in
    time before 30 days expire or respond to the returned HTTP 401 code by
    reacquiring a fresh JWT token.**

    3. The user creates, signs, and confirms a Solana transaction to the
    `subscribe` instruction, indicating the duration in weeks (must be a
    multiple of 4 weeks, e.g. 4, 8, 12) and the chosen service level. The user
    explicitly acts as the transaction fee payer. For the free tier, the smart
    contract registers the subscription but charges 0 TxLINE tokens.

    4. The user records the confirmed transaction signature (`txSig`).

    5. The user constructs a strict message binding consisting of the `txSig`, a
    comma-separated list of selected leagues, and the JWT.

    6. The user cryptographically signs this message using their wallet's secret
    key to generate a detached signature, which is then Base64-encoded.

    7. The user activates the subscription with the off-chain server at
    "https://txline.txodds.com/api/token/activate" (or `txline-dev` for DevNet)
    by posting the `txSig`, the Base64 wallet signature, and the selected
    leagues array, using the JWT for authorization.

    8. The off-chain server validates the cryptographic proof and entitlements,
    issuing an appropriate API Token or rejecting the activation with a reason.

    9. The user calls the documented APIs while the subscription is valid,
    supplying both the JWT and the API Token.

    10. Before the subscription expires, the user may call the `subscribe`
    instruction again to extend the validity period (by a multiple of 4 weeks,
    e.g. 4, 8, 12) via the same off-chain activation call. The selected leagues
    can also be amended.

    11. If the previous subscription has expired, the user can activate a new
    API Token by repeating the process.
servers:
  - url: https://txline.txodds.com
    description: Production TxLINE server
  - url: http://txline-dev.txodds.com
    description: Test TxLINE server
security: []
paths:
  /api/scores/stream:
    get:
      tags:
        - Scores
      summary: Get a real-time Server-Sent Events stream of scores updates
      description: >
        A long-lived stream of scores updates.


        The stream consists of two types of events:

        1. **Data messages:** These have an `id` in the format `timestamp:index`
        and `data` containing a JSON object for a single Scores record.

        2. **Heartbeats:** These have an `event` field set to `heartbeat` and
        may have data like `{"Ts": 12345}`.
      operationId: getApiScoresStream
      parameters:
        - name: Authorization
          in: header
          description: Bearer token for the user's session JWT.
          required: true
          schema:
            type: string
        - name: X-Api-Token
          in: header
          description: The user's long-lived API token.
          required: true
          schema:
            type: string
        - name: fixtureId
          in: query
          description: Optional. Filter the event stream for a single fixture ID.
          required: false
          schema:
            type: integer
            format: int64
        - name: Last-Event-ID
          in: header
          description: Optional. The ID of the last event received, to resume the stream.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            text/event-stream:
              schema:
                $ref: '#/components/schemas/ScoresStreamEvent'
        '400':
          description: >-
            Invalid value for: header Authorization, Invalid value for: header
            X-Api-Token, Invalid value for: query parameter fixtureId
          content:
            text/plain:
              schema:
                type: string
        '401':
          description: 'Authorization failed: Invalid or expired guest JWT'
          content:
            text/plain:
              schema:
                type: string
        '403':
          description: 'Access denied: Invalid API token or insufficient permissions'
          content:
            text/plain:
              schema:
                type: string
        '500':
          description: Internal server error
          content:
            text/plain:
              schema:
                type: string
      security:
        - httpAuth: []
          apiKeyAuth: []
components:
  schemas:
    ScoresStreamEvent:
      title: ScoresStreamEvent
      type: object
      properties:
        id:
          type: string
        event:
          type: string
        data:
          $ref: '#/components/schemas/Scores'
    Scores:
      title: Scores
      type: object
      required:
        - fixtureId
        - gameState
        - startTime
        - isTeam
        - fixtureGroupId
        - competitionId
        - countryId
        - sportId
        - participant1IsHome
        - participant2Id
        - participant1Id
        - action
        - id
        - ts
        - connectionId
        - seq
      properties:
        fixtureId:
          type: integer
          format: int32
        gameState:
          type: string
        startTime:
          type: integer
          format: int64
        isTeam:
          type: boolean
        fixtureGroupId:
          type: integer
          format: int32
        competitionId:
          type: integer
          format: int32
        countryId:
          type: integer
          format: int32
        sportId:
          type: integer
          format: int32
        participant1IsHome:
          type: boolean
        participant2Id:
          type: integer
          format: int32
        participant1Id:
          type: integer
          format: int32
        coverageSecondaryData:
          type: boolean
        coverageType:
          type: string
        action:
          type: string
        id:
          type: integer
          format: int32
        ts:
          type: integer
          format: int64
        connectionId:
          type: integer
          format: int64
        seq:
          type: integer
          format: int32
        statusId:
          $ref: '#/components/schemas/UsFootballFixtureStatus'
        statusBasketballId:
          $ref: '#/components/schemas/BasketballFixtureStatus'
        statusSoccerId:
          $ref: '#/components/schemas/SoccerFixtureStatus'
        type:
          $ref: '#/components/schemas/FixtureType'
        confirmed:
          type: boolean
        clock:
          $ref: '#/components/schemas/UsFootballFixtureClock'
        down:
          $ref: '#/components/schemas/UsFootballFixtureDown'
        inPlayInfo:
          $ref: '#/components/schemas/InPlayInfo'
        kickoffInfo:
          $ref: '#/components/schemas/KickoffInfo'
        score:
          $ref: '#/components/schemas/UsFootballFixtureScore'
        data:
          $ref: '#/components/schemas/UsFootballData'
        scoreBasketball:
          $ref: '#/components/schemas/BasketballFixtureScore'
        dataBasketball:
          $ref: '#/components/schemas/BasketballData'
        scoreSoccer:
          $ref: '#/components/schemas/SoccerFixtureScore'
        dataSoccer:
          $ref: '#/components/schemas/SoccerData'
        stats:
          $ref: '#/components/schemas/Map_ScoreStatKey'
        participant:
          type: integer
          format: int32
        kickoff:
          $ref: '#/components/schemas/KickoffDetails'
        lineups:
          type: array
          items:
            $ref: '#/components/schemas/LineupData'
        possession:
          type: integer
          format: int32
        possessionType:
          $ref: '#/components/schemas/SoccerPossessionType'
        parti1StateSoccer:
          $ref: '#/components/schemas/SoccerPartiState'
        parti1StateUsFootball:
          $ref: '#/components/schemas/UsFootballPartiState'
        parti1StateBasketball:
          $ref: '#/components/schemas/BasketballPartiState'
        parti2StateSoccer:
          $ref: '#/components/schemas/SoccerPartiState'
        parti2StateUsFootball:
          $ref: '#/components/schemas/UsFootballPartiState'
        parti2StateBasketball:
          $ref: '#/components/schemas/BasketballPartiState'
        possibleEventSoccer:
          $ref: '#/components/schemas/SoccerPossibleNeutralEvent'
        possibleEventUsFootball:
          $ref: '#/components/schemas/UsFootballPossibleEvent'
    UsFootballFixtureStatus:
      title: UsFootballFixtureStatus
      oneOf:
        - $ref: '#/components/schemas/A'
        - $ref: '#/components/schemas/C'
        - $ref: '#/components/schemas/F'
        - $ref: '#/components/schemas/FO'
        - $ref: '#/components/schemas/HT'
        - $ref: '#/components/schemas/I'
        - $ref: '#/components/schemas/NS'
        - $ref: '#/components/schemas/OB'
        - $ref: '#/components/schemas/OB1'
        - $ref: '#/components/schemas/OB10'
        - $ref: '#/components/schemas/OB11'
        - $ref: '#/components/schemas/OB2'
        - $ref: '#/components/schemas/OB3'
        - $ref: '#/components/schemas/OB4'
        - $ref: '#/components/schemas/OB5'
        - $ref: '#/components/schemas/OB6'
        - $ref: '#/components/schemas/OB7'
        - $ref: '#/components/schemas/OB8'
        - $ref: '#/components/schemas/OB9'
        - $ref: '#/components/schemas/OT'
        - $ref: '#/components/schemas/OT1'
        - $ref: '#/components/schemas/OT10'
        - $ref: '#/components/schemas/OT11'
        - $ref: '#/components/schemas/OT12'
        - $ref: '#/components/schemas/OT2'
        - $ref: '#/components/schemas/OT3'
        - $ref: '#/components/schemas/OT4'
        - $ref: '#/components/schemas/OT5'
        - $ref: '#/components/schemas/OT6'
        - $ref: '#/components/schemas/OT7'
        - $ref: '#/components/schemas/OT8'
        - $ref: '#/components/schemas/OT9'
        - $ref: '#/components/schemas/Q1'
        - $ref: '#/components/schemas/Q1B'
        - $ref: '#/components/schemas/Q2'
        - $ref: '#/components/schemas/Q3'
        - $ref: '#/components/schemas/Q3B'
        - $ref: '#/components/schemas/Q4'
        - $ref: '#/components/schemas/TXCC'
        - $ref: '#/components/schemas/TXCS'
        - $ref: '#/components/schemas/WO'
    BasketballFixtureStatus:
      title: BasketballFixtureStatus
      oneOf:
        - $ref: '#/components/schemas/A1'
        - $ref: '#/components/schemas/C1'
        - $ref: '#/components/schemas/F1'
        - $ref: '#/components/schemas/FO1'
        - $ref: '#/components/schemas/H1'
        - $ref: '#/components/schemas/H2'
        - $ref: '#/components/schemas/HT1'
        - $ref: '#/components/schemas/I1'
        - $ref: '#/components/schemas/NS1'
        - $ref: '#/components/schemas/OB12'
        - $ref: '#/components/schemas/OT13'
        - $ref: '#/components/schemas/Q11'
        - $ref: '#/components/schemas/Q1B1'
        - $ref: '#/components/schemas/Q21'
        - $ref: '#/components/schemas/Q31'
        - $ref: '#/components/schemas/Q3B1'
        - $ref: '#/components/schemas/Q41'
        - $ref: '#/components/schemas/TXCC1'
        - $ref: '#/components/schemas/TXCS1'
        - $ref: '#/components/schemas/WO1'
    SoccerFixtureStatus:
      title: SoccerFixtureStatus
      oneOf:
        - $ref: '#/components/schemas/A2'
        - $ref: '#/components/schemas/C2'
        - $ref: '#/components/schemas/END'
        - $ref: '#/components/schemas/ET1'
        - $ref: '#/components/schemas/ET2'
        - $ref: '#/components/schemas/F2'
        - $ref: '#/components/schemas/FET'
        - $ref: '#/components/schemas/FPE'
        - $ref: '#/components/schemas/H11'
        - $ref: '#/components/schemas/H21'
        - $ref: '#/components/schemas/HT2'
        - $ref: '#/components/schemas/HTET'
        - $ref: '#/components/schemas/I2'
        - $ref: '#/components/schemas/NS2'
        - $ref: '#/components/schemas/P'
        - $ref: '#/components/schemas/PE'
        - $ref: '#/components/schemas/TXCC2'
        - $ref: '#/components/schemas/TXCS2'
        - $ref: '#/components/schemas/WET'
        - $ref: '#/components/schemas/WPE'
    FixtureType:
      title: FixtureType
      oneOf:
        - $ref: '#/components/schemas/Basketball'
        - $ref: '#/components/schemas/Soccer'
        - $ref: '#/components/schemas/UsFootball'
    UsFootballFixtureClock:
      title: UsFootballFixtureClock
      type: object
      required:
        - running
        - seconds
      properties:
        running:
          type: boolean
        seconds:
          type: integer
          format: int32
    UsFootballFixtureDown:
      title: UsFootballFixtureDown
      type: object
      required:
        - number
        - yardsToGo
        - scrimmageLine
        - possession
        - side
      properties:
        number:
          type: integer
          format: int32
        yardsToGo:
          type: integer
          format: int32
        scrimmageLine:
          type: integer
          format: int32
        possession:
          $ref: '#/components/schemas/Participant'
        side:
          $ref: '#/components/schemas/Side'
    InPlayInfo:
      title: InPlayInfo
      type: object
      required:
        - BallSnapped
        - PlayersLiningUp
        - TimeoutParti1
        - TimeoutParti2
        - TVTimeout
      properties:
        BallSnapped:
          type: boolean
        PlayersLiningUp:
          type: boolean
        TimeoutParti1:
          type: boolean
        TimeoutParti2:
          type: boolean
        TVTimeout:
          type: boolean
        Outcome:
          $ref: '#/components/schemas/InPlayOutcome'
        NewSetOfDowns:
          type: boolean
        PenaltyIncreasedDown:
          type: boolean
        PreviousDown:
          $ref: '#/components/schemas/UsFootballFixtureDown'
    KickoffInfo:
      title: KickoffInfo
      type: object
      required:
        - Team
      properties:
        Team:
          $ref: '#/components/schemas/Participant'
        Type:
          $ref: '#/components/schemas/KickoffType'
        Outcome:
          $ref: '#/components/schemas/KickoffOutcome'
        KickoffPreviousAction:
          $ref: '#/components/schemas/KickoffSource'
        PenaltyYards:
          type: integer
          format: int32
    UsFootballFixtureScore:
      title: UsFootballFixtureScore
      type: object
      required:
        - Participant1
        - Participant2
      properties:
        Participant1:
          $ref: '#/components/schemas/UsFootballTotalScore'
        Participant2:
          $ref: '#/components/schemas/UsFootballTotalScore'
    UsFootballData:
      title: UsFootballData
      type: object
      properties:
        Action:
          type: string
        Active:
          type: boolean
        BigPlay:
          type: boolean
        Challenge:
          type: boolean
        Clock:
          $ref: '#/components/schemas/UsFootballFixtureClock'
        Down:
          type: string
        FieldGoal:
          type: boolean
        Id:
          type: integer
          format: int32
        IsTeam:
          type: boolean
        New:
          $ref: '#/components/schemas/UpdateReference'
        NewSetOfDowns:
          type: boolean
        Origin:
          type: string
        Outcome:
          type: string
        Participant:
          type: integer
          format: int32
        Participants:
          type: array
          items:
            type: integer
            format: int32
        PasserId:
          type: integer
          format: int32
        Penalty:
          type: boolean
        PlayerId:
          type: integer
          format: int32
        Posession:
          type: integer
          format: int32
        Previous:
          $ref: '#/components/schemas/UpdateReference'
        ReceiverId:
          type: integer
          format: int32
        ReplaceId:
          type: integer
          format: int32
        ReviewType:
          type: string
        RusherId:
          type: integer
          format: int32
        SackedPlayerId:
          type: integer
          format: int32
        Safety:
          type: boolean
        ScrimmageLine:
          type: integer
          format: int32
        Side:
          type: string
        Touchdown:
          type: boolean
        Turnover:
          type: boolean
        Type:
          type: string
        Yards:
          type: integer
          format: int32
        YardsToGo:
          type: integer
          format: int32
        YardsToEndzone:
          type: integer
          format: int32
    BasketballFixtureScore:
      title: BasketballFixtureScore
      type: object
      required:
        - Participant1
        - Participant2
      properties:
        Participant1:
          $ref: '#/components/schemas/BasketballTotalScore'
        Participant2:
          $ref: '#/components/schemas/BasketballTotalScore'
    BasketballData:
      title: BasketballData
      type: object
      properties:
        Action:
          type: string
        Active:
          type: boolean
        AssistConfirmed:
          type: boolean
        AssistId:
          type: integer
          format: int32
        BlockConfirmed:
          type: boolean
        BlockerId:
          type: integer
          format: int32
        Clock:
          $ref: '#/components/schemas/UsFootballFixtureClock'
        FouledId:
          type: integer
          format: int32
        Id:
          type: integer
          format: int32
        New:
          $ref: '#/components/schemas/BasketballUpdateReference'
        Outcome:
          type: string
        Previous:
          $ref: '#/components/schemas/BasketballUpdateReference'
        ReplaceId:
          type: integer
          format: int32
        Type:
          type: string
    SoccerFixtureScore:
      title: SoccerFixtureScore
      type: object
      required:
        - Participant1
        - Participant2
      properties:
        Participant1:
          $ref: '#/components/schemas/SoccerTotalScore'
        Participant2:
          $ref: '#/components/schemas/SoccerTotalScore'
    SoccerData:
      title: SoccerData
      type: object
      properties:
        Action:
          type: string
        Color:
          type: string
        Conditions:
          type: array
          items:
            $ref: '#/components/schemas/SoccerCondition'
        New:
          $ref: '#/components/schemas/SoccerUpdateReference'
        Corner:
          type: boolean
        FreeKickType:
          type: string
        Goal:
          type: boolean
        GoalType:
          $ref: '#/components/schemas/GoalType'
        Minutes:
          type: integer
          format: int32
        Outcome:
          type: string
        Participant:
          type: integer
          format: int32
        Penalty:
          type: boolean
        PlayerId:
          type: integer
          format: int32
        PlayerInId:
          type: integer
          format: int32
        PlayerOutId:
          type: integer
          format: int32
        Previous:
          $ref: '#/components/schemas/SoccerUpdateReference'
        StatusId:
          type: integer
          format: int32
        ThrowInType:
          type: string
        Type:
          type: string
        RedCard:
          type: boolean
        YellowCard:
          type: boolean
        VAR:
          type: boolean
        VenueType:
          $ref: '#/components/schemas/SoccerVenueType'
    Map_ScoreStatKey:
      title: Map_ScoreStatKey
      type: object
      additionalProperties:
        type: integer
        format: int32
    KickoffDetails:
      title: KickoffDetails
      type: object
      properties:
        Team:
          $ref: '#/components/schemas/Participant'
    LineupData:
      title: LineupData
      type: object
      required:
        - id
        - normativeId
        - preferredName
        - gender
        - updateDateMillis
      properties:
        id:
          type: string
        normativeId:
          type: integer
          format: int32
        preferredName:
          type: string
        gender:
          type: string
        updateDateMillis:
          type: integer
          format: int64
        lineups:
          type: array
          items:
            $ref: '#/components/schemas/PlayerLineupData'
    SoccerPossessionType:
      title: SoccerPossessionType
      oneOf:
        - $ref: '#/components/schemas/AttackPossession'
        - $ref: '#/components/schemas/DangerPossession'
        - $ref: '#/components/schemas/HighDangerPossession'
        - $ref: '#/components/schemas/SafePossession'
    SoccerPartiState:
      title: SoccerPartiState
      type: object
      required:
        - PossibleEvent
      properties:
        PossibleEvent:
          $ref: '#/components/schemas/SoccerPossiblePartiEvent'
    UsFootballPartiState:
      title: UsFootballPartiState
      type: object
      required:
        - Timeouts
        - Challenges
        - PossibleEvent
      properties:
        Timeouts:
          type: integer
          format: int32
        Challenges:
          type: integer
          format: int32
        PossibleEvent:
          $ref: '#/components/schemas/UsFootballPossiblePartiEvent'
    BasketballPartiState:
      title: BasketballPartiState
      type: object
      required:
        - AttackingBasket
        - ActiveTimeout
        - Challenges
      properties:
        AttackingBasket:
          type: boolean
        ActiveTimeout:
          type: boolean
        Challenges:
          type: integer
          format: int32
    SoccerPossibleNeutralEvent:
      title: SoccerPossibleNeutralEvent
      type: object
      required:
        - RedCard
        - YellowCard
        - VAR
      properties:
        RedCard:
          type: boolean
        YellowCard:
          type: boolean
        VAR:
          type: boolean
    UsFootballPossibleEvent:
      title: UsFootballPossibleEvent
      type: object
      required:
        - penalty
        - turnover
        - challenge
      properties:
        penalty:
          type: boolean
        turnover:
          type: boolean
        challenge:
          type: boolean
    A:
      title: A
      type: object
    C:
      title: C
      type: object
    F:
      title: F
      type: object
    FO:
      title: FO
      type: object
    HT:
      title: HT
      type: object
    I:
      title: I
      type: object
    NS:
      title: NS
      type: object
    OB:
      title: OB
      type: object
    OB1:
      title: OB1
      type: object
    OB10:
      title: OB10
      type: object
    OB11:
      title: OB11
      type: object
    OB2:
      title: OB2
      type: object
    OB3:
      title: OB3
      type: object
    OB4:
      title: OB4
      type: object
    OB5:
      title: OB5
      type: object
    OB6:
      title: OB6
      type: object
    OB7:
      title: OB7
      type: object
    OB8:
      title: OB8
      type: object
    OB9:
      title: OB9
      type: object
    OT:
      title: OT
      type: object
    OT1:
      title: OT1
      type: object
    OT10:
      title: OT10
      type: object
    OT11:
      title: OT11
      type: object
    OT12:
      title: OT12
      type: object
    OT2:
      title: OT2
      type: object
    OT3:
      title: OT3
      type: object
    OT4:
      title: OT4
      type: object
    OT5:
      title: OT5
      type: object
    OT6:
      title: OT6
      type: object
    OT7:
      title: OT7
      type: object
    OT8:
      title: OT8
      type: object
    OT9:
      title: OT9
      type: object
    Q1:
      title: Q1
      type: object
    Q1B:
      title: Q1B
      type: object
    Q2:
      title: Q2
      type: object
    Q3:
      title: Q3
      type: object
    Q3B:
      title: Q3B
      type: object
    Q4:
      title: Q4
      type: object
    TXCC:
      title: TXCC
      type: object
    TXCS:
      title: TXCS
      type: object
    WO:
      title: WO
      type: object
    A1:
      title: A
      type: object
    C1:
      title: C
      type: object
    F1:
      title: F
      type: object
    FO1:
      title: FO
      type: object
    H1:
      title: H1
      type: object
    H2:
      title: H2
      type: object
    HT1:
      title: HT
      type: object
    I1:
      title: I
      type: object
    NS1:
      title: NS
      type: object
    OB12:
      title: OB
      type: object
    OT13:
      title: OT
      type: object
    Q11:
      title: Q1
      type: object
    Q1B1:
      title: Q1B
      type: object
    Q21:
      title: Q2
      type: object
    Q31:
      title: Q3
      type: object
    Q3B1:
      title: Q3B
      type: object
    Q41:
      title: Q4
      type: object
    TXCC1:
      title: TXCC
      type: object
    TXCS1:
      title: TXCS
      type: object
    WO1:
      title: WO
      type: object
    A2:
      title: A
      type: object
    C2:
      title: C
      type: object
    END:
      title: END
      type: object
    ET1:
      title: ET1
      type: object
    ET2:
      title: ET2
      type: object
    F2:
      title: F
      type: object
    FET:
      title: FET
      type: object
    FPE:
      title: FPE
      type: object
    H11:
      title: H1
      type: object
    H21:
      title: H2
      type: object
    HT2:
      title: HT
      type: object
    HTET:
      title: HTET
      type: object
    I2:
      title: I
      type: object
    NS2:
      title: NS
      type: object
    P:
      title: P
      type: object
    PE:
      title: PE
      type: object
    TXCC2:
      title: TXCC
      type: object
    TXCS2:
      title: TXCS
      type: object
    WET:
      title: WET
      type: object
    WPE:
      title: WPE
      type: object
    Basketball:
      title: Basketball
      type: object
    Soccer:
      title: Soccer
      type: object
    UsFootball:
      title: UsFootball
      type: object
    Participant:
      title: Participant
      oneOf:
        - $ref: '#/components/schemas/Parti1'
        - $ref: '#/components/schemas/Parti2'
    Side:
      title: Side
      oneOf:
        - $ref: '#/components/schemas/Defensive'
        - $ref: '#/components/schemas/Offensive'
    InPlayOutcome:
      title: InPlayOutcome
      oneOf:
        - $ref: '#/components/schemas/Blocked'
        - $ref: '#/components/schemas/Downed'
        - $ref: '#/components/schemas/FairCatch'
        - $ref: '#/components/schemas/FieldGoalMissed'
        - $ref: '#/components/schemas/FieldGoalSuccessful'
        - $ref: '#/components/schemas/Fumble'
        - $ref: '#/components/schemas/OutOfBounds'
        - $ref: '#/components/schemas/PassComplete'
        - $ref: '#/components/schemas/PassIncomplete'
        - $ref: '#/components/schemas/PassIntercepted'
        - $ref: '#/components/schemas/PassSack'
        - $ref: '#/components/schemas/Recovered'
        - $ref: '#/components/schemas/Return'
        - $ref: '#/components/schemas/RushComplete'
        - $ref: '#/components/schemas/Touchback'
    KickoffType:
      title: KickoffType
      oneOf:
        - $ref: '#/components/schemas/Onside'
        - $ref: '#/components/schemas/Regular'
    KickoffOutcome:
      title: KickoffOutcome
      oneOf:
        - $ref: '#/components/schemas/FairCatch'
        - $ref: '#/components/schemas/Fumble'
        - $ref: '#/components/schemas/OutOfBounds'
        - $ref: '#/components/schemas/Recovered'
        - $ref: '#/components/schemas/Return'
        - $ref: '#/components/schemas/Touchback'
    KickoffSource:
      title: KickoffSource
      oneOf:
        - $ref: '#/components/schemas/ConversionSafety'
        - $ref: '#/components/schemas/DefensiveConversion'
        - $ref: '#/components/schemas/Safety1Pt'
        - $ref: '#/components/schemas/Safety2Pt'
    UsFootballTotalScore:
      title: UsFootballTotalScore
      type: object
      properties:
        Q1:
          $ref: '#/components/schemas/UsFootballScore'
        Q2:
          $ref: '#/components/schemas/UsFootballScore'
        HT:
          $ref: '#/components/schemas/UsFootballScore'
        Q3:
          $ref: '#/components/schemas/UsFootballScore'
        Q4:
          $ref: '#/components/schemas/UsFootballScore'
        OT:
          $ref: '#/components/schemas/Map_UsFootballScore'
        OTTotal:
          $ref: '#/components/schemas/UsFootballScore'
        Total:
          $ref: '#/components/schemas/UsFootballScore'
    UpdateReference:
      title: UpdateReference
      type: object
      properties:
        Clock:
          $ref: '#/components/schemas/UsFootballFixtureClock'
        IsTeam:
          type: boolean
        Outcome:
          $ref: '#/components/schemas/PassOutcome'
        PlayerId:
          type: integer
          format: int32
        ReceiverId:
          type: integer
          format: int32
        RusherId:
          type: integer
          format: int32
        SackedPlayerId:
          type: integer
          format: int32
        Yards:
          type: integer
          format: int32
        YardsToGo:
          type: integer
          format: int32
    BasketballTotalScore:
      title: BasketballTotalScore
      type: object
      properties:
        Period:
          $ref: '#/components/schemas/Map_BasketballScore'
        HT:
          $ref: '#/components/schemas/BasketballScore'
        OT:
          $ref: '#/components/schemas/Map_BasketballScore'
        OTTotal:
          $ref: '#/components/schemas/BasketballScore'
        Total:
          $ref: '#/components/schemas/BasketballScore'
    BasketballUpdateReference:
      title: BasketballUpdateReference
      type: object
      properties:
        AssistConfirmed:
          type: boolean
        AssistId:
          type: integer
          format: int32
        BlockConfirmed:
          type: boolean
        BlockerId:
          type: integer
          format: int32
        Clock:
          $ref: '#/components/schemas/UsFootballFixtureClock'
        FouledId:
          type: integer
          format: int32
        IsPlayerRebound:
          type: boolean
        IsTeam:
          type: boolean
        IsTeamRebound:
          type: boolean
        Outcome:
          description: Union of PointAttemptOutcome and FreeThrowOutcome
          type: string
        Participant:
          type: integer
          format: int32
        PlayerId:
          type: integer
          format: int32
        PlayerInId:
          type: integer
          format: int32
        PlayerOutId:
          type: integer
          format: int32
        TeamFoul:
          type: boolean
        TurnoverId:
          type: integer
          format: int32
        Type:
          description: Union of FoulType, ReboundType, and FreeThrowType
          type: string
        UpdatePlayersOnCourt:
          type: boolean
    SoccerTotalScore:
      title: SoccerTotalScore
      type: object
      properties:
        H1:
          $ref: '#/components/schemas/SoccerScore'
        HT:
          $ref: '#/components/schemas/SoccerScore'
        H2:
          $ref: '#/components/schemas/SoccerScore'
        ET1:
          $ref: '#/components/schemas/SoccerScore'
        ET2:
          $ref: '#/components/schemas/SoccerScore'
        PE:
          $ref: '#/components/schemas/SoccerScore'
        ETTotal:
          $ref: '#/components/schemas/SoccerScore'
        Total:
          $ref: '#/components/schemas/SoccerScore'
    SoccerCondition:
      title: SoccerCondition
      description: Union of SoccerWeather and SoccerPitchCondition
      type: string
    SoccerUpdateReference:
      title: SoccerUpdateReference
      type: object
      properties:
        Clock:
          $ref: '#/components/schemas/SoccerFixtureClock'
        FreeKickType:
          $ref: '#/components/schemas/FreeKickType'
        GoalType:
          $ref: '#/components/schemas/GoalType'
        Minutes:
          type: integer
          format: int32
        Outcome:
          description: >-
            A string representing either a ShotOutcome, SoccerPenaltyOutcome, or
            InjuryOutcome
          type: string
        PlayerId:
          type: integer
          format: int32
        PlayerInId:
          type: integer
          format: int32
        PlayerOutId:
          type: integer
          format: int32
        ThrowInType:
          $ref: '#/components/schemas/ThrowInType'
        Type:
          type: string
    GoalType:
      title: GoalType
      oneOf:
        - $ref: '#/components/schemas/Head'
        - $ref: '#/components/schemas/Other'
        - $ref: '#/components/schemas/OwnGoal'
        - $ref: '#/components/schemas/Shot'
    SoccerVenueType:
      title: SoccerVenueType
      oneOf:
        - $ref: '#/components/schemas/Away'
        - $ref: '#/components/schemas/Home'
        - $ref: '#/components/schemas/Neutral'
    PlayerLineupData:
      title: PlayerLineupData
      type: object
      required:
        - fixturePlayerId
        - statusId
        - positionId
        - unitId
        - rosterNumber
        - starter
        - starred
        - player
      properties:
        fixturePlayerId:
          type: integer
          format: int32
        statusId:
          type: integer
          format: int32
        positionId:
          type: integer
          format: int32
        unitId:
          type: integer
          format: int32
        rosterNumber:
          type: string
        starter:
          type: boolean
        starred:
          type: boolean
        player:
          $ref: '#/components/schemas/PlayerData'
    AttackPossession:
      title: AttackPossession
      type: object
    DangerPossession:
      title: DangerPossession
      type: object
    HighDangerPossession:
      title: HighDangerPossession
      type: object
    SafePossession:
      title: SafePossession
      type: object
    SoccerPossiblePartiEvent:
      title: SoccerPossiblePartiEvent
      type: object
      required:
        - Goal
        - Penalty
        - Corner
      properties:
        Goal:
          type: boolean
        Penalty:
          type: boolean
        Corner:
          type: boolean
    UsFootballPossiblePartiEvent:
      title: UsFootballPossiblePartiEvent
      type: object
      required:
        - touchdown
        - fieldGoal
        - safety
        - 4thDownConversion
        - 2ptConversionAttempt
        - 1stDown
        - bigPlay
        - punt
      properties:
        touchdown:
          type: boolean
        fieldGoal:
          type: boolean
        safety:
          type: boolean
        4thDownConversion:
          type: boolean
        2ptConversionAttempt:
          type: boolean
        1stDown:
          type: boolean
        bigPlay:
          type: boolean
        punt:
          type: boolean
    Parti1:
      title: Parti1
      type: object
    Parti2:
      title: Parti2
      type: object
    Defensive:
      title: Defensive
      type: object
    Offensive:
      title: Offensive
      type: object
    Blocked:
      title: Blocked
      type: object
    Downed:
      title: Downed
      type: object
    FairCatch:
      title: FairCatch
      type: object
    FieldGoalMissed:
      title: FieldGoalMissed
      type: object
    FieldGoalSuccessful:
      title: FieldGoalSuccessful
      type: object
    Fumble:
      title: Fumble
      type: object
    OutOfBounds:
      title: OutOfBounds
      type: object
    PassComplete:
      title: PassComplete
      type: object
    PassIncomplete:
      title: PassIncomplete
      type: object
    PassIntercepted:
      title: PassIntercepted
      type: object
    PassSack:
      title: PassSack
      type: object
    Recovered:
      title: Recovered
      type: object
    Return:
      title: Return
      type: object
    RushComplete:
      title: RushComplete
      type: object
    Touchback:
      title: Touchback
      type: object
    Onside:
      title: Onside
      type: object
    Regular:
      title: Regular
      type: object
    ConversionSafety:
      title: ConversionSafety
      type: object
    DefensiveConversion:
      title: DefensiveConversion
      type: object
    Safety1Pt:
      title: Safety1Pt
      type: object
    Safety2Pt:
      title: Safety2Pt
      type: object
    UsFootballScore:
      title: UsFootballScore
      type: object
      required:
        - Score
        - Touchdown
        - Safety
        - 1ptSafety
        - 1ptConversion
        - 2ptConversion
        - FieldGoal
        - Defensive2ptConversion
      properties:
        Score:
          type: integer
          format: int32
        Touchdown:
          type: integer
          format: int32
        Safety:
          type: integer
          format: int32
        1ptSafety:
          type: integer
          format: int32
        1ptConversion:
          type: integer
          format: int32
        2ptConversion:
          type: integer
          format: int32
        FieldGoal:
          type: integer
          format: int32
        Defensive2ptConversion:
          type: integer
          format: int32
    Map_UsFootballScore:
      title: Map_UsFootballScore
      type: object
      additionalProperties:
        $ref: '#/components/schemas/UsFootballScore'
    PassOutcome:
      title: PassOutcome
      oneOf:
        - $ref: '#/components/schemas/Complete'
        - $ref: '#/components/schemas/Incomplete'
        - $ref: '#/components/schemas/Intercepted'
        - $ref: '#/components/schemas/Sack'
    Map_BasketballScore:
      title: Map_BasketballScore
      type: object
      additionalProperties:
        $ref: '#/components/schemas/BasketballScore'
    BasketballScore:
      title: BasketballScore
      type: object
      required:
        - Score
        - Fouls
        - PersonalFouls
        - Blocks
        - Rebounds
        - FreeThrows_made
        - 2pts_made
        - 3pts_made
        - FreeThrows_missed
        - 2pts_missed
        - 3pts_missed
        - FreeThrows_attempts
        - 2pts_attempts
        - 3pts_attempts
        - Assists
        - Turnovers
        - Steals
        - UsedTimeouts
      properties:
        Score:
          type: integer
          format: int32
        Fouls:
          type: integer
          format: int32
        PersonalFouls:
          type: integer
          format: int32
        Blocks:
          type: integer
          format: int32
        Rebounds:
          type: integer
          format: int32
        FreeThrows_made:
          type: integer
          format: int32
        2pts_made:
          type: integer
          format: int32
        3pts_made:
          type: integer
          format: int32
        FreeThrows_missed:
          type: integer
          format: int32
        2pts_missed:
          type: integer
          format: int32
        3pts_missed:
          type: integer
          format: int32
        FreeThrows_attempts:
          type: integer
          format: int32
        2pts_attempts:
          type: integer
          format: int32
        3pts_attempts:
          type: integer
          format: int32
        Assists:
          type: integer
          format: int32
        Turnovers:
          type: integer
          format: int32
        Steals:
          type: integer
          format: int32
        UsedTimeouts:
          type: integer
          format: int32
    SoccerScore:
      title: SoccerScore
      type: object
      required:
        - Goals
        - YellowCards
        - RedCards
        - Corners
      properties:
        Goals:
          type: integer
          format: int32
        YellowCards:
          type: integer
          format: int32
        RedCards:
          type: integer
          format: int32
        Corners:
          type: integer
          format: int32
    SoccerFixtureClock:
      title: SoccerFixtureClock
      type: object
      required:
        - running
        - seconds
      properties:
        running:
          type: boolean
        seconds:
          type: integer
          format: int32
    FreeKickType:
      title: FreeKickType
      oneOf:
        - $ref: '#/components/schemas/Attack'
        - $ref: '#/components/schemas/Danger'
        - $ref: '#/components/schemas/HighDanger'
        - $ref: '#/components/schemas/Offside'
        - $ref: '#/components/schemas/Safe'
    ThrowInType:
      title: ThrowInType
      oneOf:
        - $ref: '#/components/schemas/Attack'
        - $ref: '#/components/schemas/Danger'
        - $ref: '#/components/schemas/Safe'
    Head:
      title: Head
      type: object
    Other:
      title: Other
      type: object
    OwnGoal:
      title: OwnGoal
      type: object
    Shot:
      title: Shot
      type: object
    Away:
      title: Away
      type: object
    Home:
      title: Home
      type: object
    Neutral:
      title: Neutral
      type: object
    PlayerData:
      title: PlayerData
      type: object
      required:
        - id
        - normativeId
        - country
        - team
        - dateOfBirth
        - gender
        - preferredName
        - updateDateMillis
      properties:
        id:
          type: string
        normativeId:
          type: integer
          format: int32
        country:
          type: string
        team:
          type: string
        dateOfBirth:
          type: string
        gender:
          type: string
        preferredName:
          type: string
        updateDateMillis:
          type: integer
          format: int64
    Complete:
      title: Complete
      type: object
    Incomplete:
      title: Incomplete
      type: object
    Intercepted:
      title: Intercepted
      type: object
    Sack:
      title: Sack
      type: object
    Attack:
      title: Attack
      type: object
    Danger:
      title: Danger
      type: object
    HighDanger:
      title: HighDanger
      type: object
    Offside:
      title: Offside
      type: object
    Safe:
      title: Safe
      type: object
  securitySchemes:
    httpAuth:
      type: http
      description: User's session JWT.
      scheme: bearer
    apiKeyAuth:
      type: apiKey
      description: The user's long-lived API token, obtained from the activation endpoint.
      name: X-Api-Token
      in: header

````