BetGenius Fixtures API

The fixtures API

Business capability
OTT & Streaming Delivery BC-3740.20

Operations 6

GET /fixtures Get fixtures #
GET /fixtures/{id} Get fixture #
POST /fixtures/{id}/live-streams/{streamId}/deliveries/dash/{deliveryId} Create DASH stream #
POST /fixtures/{id}/live-streams/{streamId}/deliveries/hls/{deliveryId} Create HLS stream #
POST /fixtures/{id}/live-streams/{streamId}/deliveries/srt/{deliveryId} Create SRT stream #
POST /fixtures/{id}/vod-streams/{streamId}/deliveries/hls/{deliveryId} Create hls vod #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/betgenius-fixtures-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

betgenius-fixtures-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: 'Video Streaming API


    The video streaming API is used by customers to:


    Retrieve the schedule of upcoming streams.'
  version: 3.4.1
  title: Video-v3 Fixtures API
  contact:
    name: GeniusLive integration manager
    email: videointegrationgroup@geniussports.com
servers:
- url: https://api.geniussports.com/Video-v3/PRODPRM
tags:
- name: Fixtures
  description: The fixtures API
paths:
  /fixtures:
    get:
      tags:
      - Fixtures
      description: Returns the list of available fixtures for streaming.
      operationId: getFixtures
      parameters:
      - name: toDate
        in: query
        description: End date of the window where the fixtures retreived will be filtered, this is inclusive.
        required: false
        schema:
          type: string
      - name: competitionIds
        in: query
        description: A comma-separated list of competition IDs to filter by. If a competition ID is not present, it will display all fixtures regardless of competition ID value.
        required: false
        schema:
          type: string
      - name: limit
        in: query
        description: This is the maximum number of objects that may be returned. A query may return fewer than the value of limit due to filtering. Do not depend on the number of results being fewer than the limit value to indicate that your query reached the end of the list of data, use the absence of next instead. For example, if you set limit to 10 and 9 results are returned, there may be more data available, but one item was removed due to filtering. In all cases, the API returns the correct pagination links.
        required: false
        schema:
          type: string
      - name: showPermissions
        in: query
        description: Flag used to request permissions for each of the fixtures
        required: false
        schema:
          type: string
      - name: before
        in: query
        description: This is the cursor that points to the start of the page.
        required: false
        schema:
          type: string
      - name: after
        in: query
        description: This is the cursor after which to start returning data.
        required: false
        schema:
          type: string
      - name: sportIds
        in: query
        description: A comma-separated list of sport IDs to filter by. If a sport ID is not present, it will display all fixtures regardless of sport ID value.
        required: false
        schema:
          type: string
      - name: phases
        in: query
        description: 'A comma-separated list of fixture phases to filter by. If a phase is not present, it will display all fixtures regardless of phase value. The values must be one of: {PRE_MATCH, IN_PLAY, RESULTED}.'
        required: false
        schema:
          type: string
      - name: bookingStatus
        in: query
        description: 'The booking status to filter by. If not present, it will display all available fixtures. The value must be one of: {BOOKED, UNBOOKED}.'
        required: false
        schema:
          type: string
      - name: fromDate
        in: query
        description: Start date of the window where the fixtures retrieved will be filtered, this is inclusive and the difference between the start date and the end date should not be more than 10 days.
        required: false
        schema:
          type: string
      responses:
        '200':
          description: A page of fixtures.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FixturesPage'
            application/problem+json:
              schema:
                $ref: '#/components/schemas/FixturesPage'
        '400':
          description: A base [RFC-7807](https://tools.ietf.org/html/rfc7807) error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Problem'
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
        '401':
          description: A base [RFC-7807](https://tools.ietf.org/html/rfc7807) error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Problem'
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
        '403':
          description: A base [RFC-7807](https://tools.ietf.org/html/rfc7807) error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Problem'
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
      security:
      - CognitoPool: []
      - api_key: []
      summary: Get fixtures
      x-summary-source: derived
  /fixtures/{id}:
    get:
      tags:
      - Fixtures
      description: Returns the information of a given fixture.
      operationId: getFixture
      parameters:
      - name: id
        in: path
        description: The Genius Sports fixture ID
        required: true
        schema:
          type: string
      responses:
        '200':
          description: A fixture.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Fixture'
            application/json:
              schema:
                $ref: '#/components/schemas/Fixture'
        '400':
          description: A base [RFC-7807](https://tools.ietf.org/html/rfc7807) error response.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
            application/json:
              schema:
                $ref: '#/components/schemas/Problem'
        '401':
          description: A base [RFC-7807](https://tools.ietf.org/html/rfc7807) error response.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
            application/json:
              schema:
                $ref: '#/components/schemas/Problem'
        '403':
          description: A base [RFC-7807](https://tools.ietf.org/html/rfc7807) error response.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
            application/json:
              schema:
                $ref: '#/components/schemas/Problem'
        '404':
          description: A base [RFC-7807](https://tools.ietf.org/html/rfc7807) error response.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
            application/json:
              schema:
                $ref: '#/components/schemas/Problem'
      security:
      - CognitoPool: []
      - api_key: []
      summary: Get fixture
      x-summary-source: derived
  /fixtures/{id}/live-streams/{streamId}/deliveries/dash/{deliveryId}:
    post:
      tags:
      - Fixtures
      description: Creates the DASH streaming data for a given fixture, stream and delivery. For this, data about the end-user is required to compute whether or not it is authorized for streaming based on the licensing rules for this stream.
      operationId: createDASHStream
      parameters:
      - name: deliveryId
        in: path
        description: The source ID
        required: true
        schema:
          type: string
      - name: id
        in: path
        description: The Genius Sports fixture ID
        required: true
        schema:
          type: string
      - name: streamId
        in: path
        description: The stream ID
        required: true
        schema:
          type: string
      responses:
        '200':
          description: DASH streaming parameters.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/DASHStreamResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/DASHStreamResponse'
        '400':
          description: A base [RFC-7807](https://tools.ietf.org/html/rfc7807) error response.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
            application/json:
              schema:
                $ref: '#/components/schemas/Problem'
        '401':
          description: A base [RFC-7807](https://tools.ietf.org/html/rfc7807) error response.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
            application/json:
              schema:
                $ref: '#/components/schemas/Problem'
        '403':
          description: A base [RFC-7807](https://tools.ietf.org/html/rfc7807) error response.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
            application/json:
              schema:
                $ref: '#/components/schemas/Problem'
        '404':
          description: A base [RFC-7807](https://tools.ietf.org/html/rfc7807) error response.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
            application/json:
              schema:
                $ref: '#/components/schemas/Problem'
      security:
      - CognitoPool: []
      - api_key: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DASHStreamRequest'
        required: true
      summary: Create DASH stream
      x-summary-source: derived
  /fixtures/{id}/live-streams/{streamId}/deliveries/hls/{deliveryId}:
    post:
      tags:
      - Fixtures
      description: Creates the HLS streaming data for a given fixture, stream and delivery. For this, data about the end-user is required to compute whether or not it is authorized for streaming based on the licensing rules for this stream.
      operationId: createHLSStream
      parameters:
      - name: deliveryId
        in: path
        description: The source ID
        required: true
        schema:
          type: string
      - name: id
        in: path
        description: The Genius Sports fixture ID
        required: true
        schema:
          type: string
      - name: streamId
        in: path
        description: The stream ID
        required: true
        schema:
          type: string
      responses:
        '200':
          description: HLS streaming parameters.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/HLSStreamResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/HLSStreamResponse'
        '400':
          description: A base [RFC-7807](https://tools.ietf.org/html/rfc7807) error response.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
            application/json:
              schema:
                $ref: '#/components/schemas/Problem'
        '401':
          description: A base [RFC-7807](https://tools.ietf.org/html/rfc7807) error response.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
            application/json:
              schema:
                $ref: '#/components/schemas/Problem'
        '403':
          description: A base [RFC-7807](https://tools.ietf.org/html/rfc7807) error response.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
            application/json:
              schema:
                $ref: '#/components/schemas/Problem'
        '404':
          description: A base [RFC-7807](https://tools.ietf.org/html/rfc7807) error response.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
            application/json:
              schema:
                $ref: '#/components/schemas/Problem'
      security:
      - CognitoPool: []
      - api_key: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/HLSStreamRequest'
        required: true
      summary: Create HLS stream
      x-summary-source: derived
  /fixtures/{id}/live-streams/{streamId}/deliveries/srt/{deliveryId}:
    post:
      tags:
      - Fixtures
      description: Returns the SRT url endpoint for the stream and delivery.
      operationId: createSRTStream
      parameters:
      - name: deliveryId
        in: path
        description: The source ID
        required: true
        schema:
          type: string
      - name: id
        in: path
        description: The Genius Sports fixture ID
        required: true
        schema:
          type: string
      - name: streamId
        in: path
        description: The stream ID
        required: true
        schema:
          type: string
      responses:
        '200':
          description: SRT streaming parameters.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/SRTStreamResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/SRTStreamResponse'
        '400':
          description: A base [RFC-7807](https://tools.ietf.org/html/rfc7807) error response.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
            application/json:
              schema:
                $ref: '#/components/schemas/Problem'
        '401':
          description: A base [RFC-7807](https://tools.ietf.org/html/rfc7807) error response.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
            application/json:
              schema:
                $ref: '#/components/schemas/Problem'
        '403':
          description: A base [RFC-7807](https://tools.ietf.org/html/rfc7807) error response.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
            application/json:
              schema:
                $ref: '#/components/schemas/Problem'
        '404':
          description: A base [RFC-7807](https://tools.ietf.org/html/rfc7807) error response.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
            application/json:
              schema:
                $ref: '#/components/schemas/Problem'
      security:
      - CognitoPool: []
      - api_key: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SRTStreamRequest'
        required: true
      summary: Create SRT stream
      x-summary-source: derived
  /fixtures/{id}/vod-streams/{streamId}/deliveries/hls/{deliveryId}:
    post:
      tags:
      - Fixtures
      description: Returns the VOD URLs for a stream
      operationId: createHlsVod
      parameters:
      - name: deliveryId
        in: path
        description: The source ID
        required: true
        schema:
          type: string
      - name: id
        in: path
        description: The Genius Sports fixture ID
        required: true
        schema:
          type: string
      - name: streamId
        in: path
        description: The stream ID
        required: true
        schema:
          type: string
      responses:
        '200':
          description: HLS streaming parameters.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/HLSStreamResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/HLSStreamResponse'
        '400':
          description: A base [RFC-7807](https://tools.ietf.org/html/rfc7807) error response.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
            application/json:
              schema:
                $ref: '#/components/schemas/Problem'
        '401':
          description: A base [RFC-7807](https://tools.ietf.org/html/rfc7807) error response.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
            application/json:
              schema:
                $ref: '#/components/schemas/Problem'
        '403':
          description: A base [RFC-7807](https://tools.ietf.org/html/rfc7807) error response.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
            application/json:
              schema:
                $ref: '#/components/schemas/Problem'
        '404':
          description: A base [RFC-7807](https://tools.ietf.org/html/rfc7807) error response.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
            application/json:
              schema:
                $ref: '#/components/schemas/Problem'
      security:
      - CognitoPool: []
      - api_key: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/HLSStreamRequest'
        required: true
      summary: Create hls vod
      x-summary-source: derived
components:
  schemas:
    FixturePhase:
      type: string
      description: 'The state of the fixture, it must be one of: {PRE_MATCH, IN_PLAY, RESULTED}.'
    FixturesPage:
      type: object
      required:
      - data
      - paging
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/Fixture'
        paging:
          $ref: '#/components/schemas/Paging'
    DASHDelivery:
      type: object
      required:
      - id
      properties:
        id:
          type: string
    HLSStreamResponse:
      type: object
      required:
      - url
      properties:
        expiresAt:
          type: string
          format: date-time
          description: The expiration date of this token, expressed in UTC.
        url:
          type: string
          description: The live stream playback URL.
        token:
          type: string
          description: Token data to add to the user's session.
        drm:
          $ref: '#/components/schemas/DRM'
    BookingStatus:
      type: string
      description: 'The booking status of a given fixture. It must be one of: {BOOKED, UNBOOKED}'
    Fixture:
      type: object
      required:
      - bookingStatus
      - competitionId
      - competitionName
      - id
      - liveStreams
      - name
      - phase
      - sportId
      - sportName
      - startAt
      - vodStreams
      properties:
        id:
          type: integer
          format: int64
          description: The Genius Sports ID of this fixture
        name:
          type: string
          description: The name of the fixture
        phase:
          $ref: '#/components/schemas/FixturePhase'
        bookingStatus:
          $ref: '#/components/schemas/BookingStatus'
        startAt:
          type: string
          format: date-time
        competitionId:
          type: string
          description: The competition ID. It is a string to keep consistency with the type returned by Fixtures API.
        competitionName:
          type: string
          description: The competition name
        sportId:
          type: integer
          format: int32
          description: The sport ID
        sportName:
          type: string
          description: The sport name
        liveStreams:
          type: array
          items:
            $ref: '#/components/schemas/LiveStream'
        vodStreams:
          type: array
          items:
            $ref: '#/components/schemas/VodStream'
      description: A live stream encapsulates video streaming information for a given GeniusSports fixture. It contains basic information such as Genius fixture ID, team names and sate, as well as a list of available *Stream* objects to get video from.
    SRTDelivery:
      type: object
      required:
      - id
      properties:
        id:
          type: string
    HLSDelivery:
      type: object
      required:
      - id
      properties:
        id:
          type: string
    HLSStreamRequest:
      type: object
      required:
      - device
      - endUserSessionId
      properties:
        endUserSessionId:
          type: string
          description: Not personally identifiable ID, depicting a single end user session on the customer side. Must be consistent for the length of a single end user (the viewer of the content), meaning each user viewing the content should have a single ID for the duration of their being logged in on the customer side.
          maxLength: 1024
        device:
          $ref: '#/components/schemas/Device'
        region:
          type: string
          description: The geographic region from where the end-user is attemping to receive the video stream. This value must correspond to one of the regions returned by the `/regions` endpoint.
    VodStream:
      type: object
      required:
      - deliveries
      - dmas
      - id
      - permissions
      properties:
        id:
          type: string
          description: The ID of this stream.
        permissions:
          type: array
          description: Permissions granted over this VOD-stream.
          items:
            $ref: '#/components/schemas/Permission'
        dmas:
          type: array
          description: Allowed DMAs over this VOD-stream.
          items:
            $ref: '#/components/schemas/DmaPermission'
        deliveries:
          type: object
          description: Contains the deliveries for each transport protocol supported by this stream.
          properties:
            dash:
              type: array
              items:
                $ref: '#/components/schemas/DASHDelivery'
            hls:
              type: array
              items:
                $ref: '#/components/schemas/HLSDelivery'
          required:
          - dash
          - hls
      description: List of deliveries that contains the VOD URLs of the requested stream
    Permission:
      type: object
      required:
      - device
      - maxPlayerSizePercentage
      - region
      properties:
        device:
          $ref: '#/components/schemas/Device'
        maxPlayerSizePercentage:
          type: integer
          format: int32
          description: The maximum player size, in percentage units, along the screen's horizontal axis.
          minimum: 0.0
          maximum: 100.0
        region:
          type: string
          description: The geographic region where this permission applies. Each coutry is identified by its alpha-2 code.
      description: Defines a permission for streaming content.
    SRTStreamRequest:
      type: object
    SRTStreamResponse:
      type: object
      required:
      - url
      properties:
        url:
          type: string
          description: The live stream SRT ingest URL.
    DASHStreamRequest:
      type: object
      required:
      - device
      - endUserSessionId
      properties:
        endUserSessionId:
          type: string
          description: Not personally identifiable ID, depicting a single end user session on the customer side. Must be consistent for the length of a single end user (the viewer of the content), meaning each user viewing the content should have a single uuid for the duration of their being logged in on the customer side
          maxLength: 1024
        device:
          $ref: '#/components/schemas/Device'
        region:
          type: string
          description: The geographic region from where the end-user is attemping to receive the video stream. This value must correspond to one of the regions returned by the `/regions` endpoint.
    DmaPermission:
      type: object
      required:
      - dma
      properties:
        dma:
          type: string
          description: The id of a Designated Market Area (DMA)
      description: Defines a Designated Market Area (DMA) Permission only in USA
    Paging:
      type: object
      required:
      - cursors
      properties:
        cursors:
          type: object
          description: Contains the pointers for the first and last items of this page.
          properties:
            after:
              type: string
              description: This is the cursor that points to the end of the page of data that has been returned.
            before:
              type: string
              description: This is the cursor that points to the start of the page of data that has been returned.
        previous:
          type: string
          description: The API endpoint that will return the previous page of data. If not included, this is the first page of data.
        next:
          type: string
          description: The API endpoint that will return the next page of data. If not included, this is the last page of data.
      description: Paging structure.
    Device:
      type: string
      description: 'The type of device making a request to play the content. It must be one of: {MOBILE, TABLET, DESKTOP, OTT}.'
    LiveStream:
      type: object
      required:
      - deliveries
      - dmas
      - id
      - permissions
      properties:
        id:
          type: string
          description: The ID of this stream.
        permissions:
          type: array
          description: Permissions granted over this live-stream.
          items:
            $ref: '#/components/schemas/Permission'
        dmas:
          type: array
          description: Allowed DMAs over this live-stream.
          items:
            $ref: '#/components/schemas/DmaPermission'
        deliveries:
          type: object
          description: Contains the deliveries for each transport protocol supported by this stream.
          properties:
            hls:
              type: array
              items:
                $ref: '#/components/schemas/HLSDelivery'
            dash:
              type: array
              items:
                $ref: '#/components/schemas/DASHDelivery'
            srt:
              type: array
              description: 'SRT deliveries for this live-stream. This field is optional: when the stream has no

                SRT deliveries it is omitted from the response. When present, it is always an array

                (possibly empty). The field is never returned as `null`.

                '
              items:
                $ref: '#/components/schemas/SRTDelivery'
          required:
          - dash
          - hls
      description: TODO
    DASHStreamResponse:
      type: object
      required:
      - url
      properties:
        expiresAt:
          type: string
          format: date-time
          description: The expiration date of this token, expressed in UTC.
        url:
          type: string
          description: The live stream playback URL.
        token:
          type: string
          description: Token data to add to the user's session.
        drm:
          $ref: '#/components/schemas/DRM'
    Problem:
      type: object
      properties:
        type:
          type: string
          format: uri
          description: 'An absolute URI that identifies the problem type.  When dereferenced,

            it SHOULD provide human-readable documentation for the problem type

            (e.g., using HTML).

            '
        title:
          type: string
          description: 'A short, summary of the problem type. Written in english and readable

            for engineers (usually not suited for non technical stakeholders and

            not localized); example: Service Unavailable

            '
        status:
          type: integer
          format: int32
          description: 'The HTTP status code generated by the origin server for this occurrence

            of the problem.

            '
          minimum: 100.0
          exclusiveMaximum: 600.0
        detail:
          type: string
          description: 'A human readable explanation specific to this occurrence of the

            problem.

            '
        instance:
          type: string
          format: uri
          description: 'An absolute URI that identifies the specific occurrence of the problem.

            It may or may not yield further information if dereferenced.

            '
      description: A Problem object according to https://datatracker.ietf.org/doc/html/rfc7807
    DRM:
      type: object
      properties:
        widevine:
          type: string
          description: The Widevine URL.
        playready:
          type: string
          description: The Playready URL.
        fairplay:
          type: string
          description: The Fairplay URL.
        fairplayCertificate:
          type: string
          description: The Fairplay certificate URL.
      description: DRM configuration.
  securitySchemes:
    CognitoPool:
      type: apiKey
      name: Authorization
      in: header
      x-amazon-apigateway-authtype: cognito_user_pools
    api_key:
      type: apiKey
      name: x-api-key
      in: header
x-amazon-apigateway-security-policy: TLS_1_0