Genius Sports Pending requests API

The Pending requests API from Genius Sports — 1 operation(s) for pending requests.

Operations 1

GET /matchrequests/status/{id} Retrieve match requests by the provided parameters

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/genius-sports-pending-requests-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

genius-sports-pending-requests-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: '<br><p><h3>Motivation</h3><br> The purpose of this API is to request matching betweenexternal sources data and the best genius sports representation. <br>Using the POST client can cache the matchingresult for specific time range, by making a mapping from client entity id togenius sports Id.<br></p><h3>Glossary</h3><br><p><b>Match</b>- the probabilistic result of the comparison of the clients input    to Genius Sports data</p><p><b>Map</b>- the link between an already matched result represented by the    clients entity Id and the Genius Sports Id, in the context of a specific    data provider. e.g for data Provider ''NFL'' we the client Id XYZ mapped to    123 </p><p><b>Competitor</b> - a team, player, double partnership or any other entity    that can participate in a fixture as top level competitore e.g Barcelena -    RealMadrid, Nadal - Federer etc. What is not a competitor is for example:    Leo Messi - he cannot participate in a fixture as a top level competitor,    but only as a part of a team.</p><h3>How does the security work?</h3><p>To access the API each request must provide two headers:</p><ul>    <li><code>Authorization</code> header with an OAuth2<br> JSON web token        (Bearer) issued by Auth0.</li>    <li> <code>x-api-key</code><br> with an API key secret of a key, registered        with the API gateway in AWS. <br> </li></ul><h3>How do I get a valid JW token for the <code>Authorization</code> header?</h3><p> As an API client, I must be provided with Auth0 Client credentials    (<code>client_ID</code> and <code>Client_secret</code>) by Genius    Sports (FA team) and obtain a valid token from the Auth0 token<br> endpoint    using the Machine-to-Machine (client credentials) flow. I must obtain a    new token whenever needed (based on the token expiration).</p><p> <br> Make a <code>POST</code> request to the token endpoint: <span        https://{env or nothing for prod}.auth.geniussports.com/oauth/token        </span> with the following        payload:</p><br><pre><br>    {<br>    <span>''client_id'': ''<code>YOUR_AUTH0_CLIENT_ID</code>''</span>,  <br>    <span>''client_secret'': ''<code>YOUR_AUTH0_CLIENT_SECRET</code>''</span>,     <br>    <span>''audience'': ''https://api.geniussports.com''</span>,        <br>    <span>''grant_type'' : ''client_credentials''</span>    <br>    }<br></pre><br><p>You will receive a new token in the response <code> access_token </code>    field.</p><br><p>Curl example:</p><br><code> curl -X ''POST'' https://{env or nothing for prod}.auth.geniussports.com/oauth/token <br>-H ''Content-Type: application / json''<br>-d ''{''client_id'':''YOUR_AUTH0_CLIENT_ID'', ''client_secret'':''YOUR_AUTH0_CLIENT_SECRET'', ''audience'':''https://api.geniussports.com'',<br>        ''grant_type'':''client_credentials''}''</code><br>'
  version: 2.0.106
  title: fixtures-matching-v2 Pending requests API
servers:
- url: https://matching.api.geniussports.com/v2
tags:
- name: Pending requests
paths:
  /matchrequests/status/{id}:
    get:
      tags:
      - Pending requests
      summary: Retrieve match requests by the provided parameters
      parameters:
      - name: x-api-key
        in: header
        required: true
        schema:
          type: string
      - name: gs-fixtures-api-sub-source
        in: header
        description: Sub Source Name
        required: false
        schema:
          type: string
      - name: id
        in: path
        description: Contains the id of the pending match request that want to be retrieved. GUID
        required: true
        schema:
          type: string
      responses:
        '200':
          description: 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/pendingMatchRequestStatusResponseModel'
        '520':
          description: Unknown error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorModel'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestModel'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorModel'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorModel'
        '413':
          description: Payload Too Large
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorModel'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorModel'
        '415':
          description: Unsupported Media Type
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorModel'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorModel'
        '504':
          description: Gateway Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorModel'
        '429':
          description: Too Many Requests  OR  Limit Exceeded  - On reason = Too Many requests one should re-try, for Limit Exceeded that does not help you
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorModel'
      security:
      - Auth0: []
      - api_key: []
components:
  schemas:
    Error:
      type: object
      required:
      - domain
      - message
      - reason
      properties:
        reason:
          type: string
        domain:
          type: string
        location:
          type: string
        message:
          type: string
    sourceHALEmbededResponse:
      type: object
      properties:
        name:
          type: string
        id:
          type: integer
          format: int64
    ErrorModel:
      type: object
      properties:
        code:
          type: integer
          format: int32
        message:
          type: string
        error:
          $ref: '#/components/schemas/Error'
    BadRequestModel:
      type: object
      properties:
        messages:
          type: array
          items:
            type: string
    pendingMatchRequestStatusResponseModel:
      type: object
      properties:
        createdOn:
          type: string
          format: date-time
        matchUntilUtc:
          type: string
          format: date-time
          description: Shows the time until when the request should be curated.
        matchRequestId:
          type: string
          description: The id of the request
        entityType:
          type: string
          description: The type of the requested entity.
        status:
          type: string
          description: Shows the status of the pending request.
        id:
          type: string
          description: The Id of the entity on Genius sports side
        sourceToNotify:
          $ref: '#/components/schemas/sourceHALEmbededResponse'
        reason:
          type: string
          description: The reason for NotMatched status. Free text. Should not be used to build logical flows on top of it! Only available when status is NotMatched!
  securitySchemes:
    Auth0:
      type: apiKey
      name: Authorization
      in: header
      x-amazon-apigateway-authtype: oauth2
    api_key:
      type: apiKey
      name: x-api-key
      in: header