fixtures-matching-v2 API Reference


Motivation


The purpose of this API is to request matching betweenexternal sources data and the best genius sports representation.
Using the POST client can cache the matchingresult for specific time range, by making a mapping from client entity id togenius sports Id.

Glossary


Match- the probabilistic result of the comparison of the clients input to Genius Sports data

Map- 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

Competitor - 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.

How does the security work?

To access the API each request must provide two headers:

  • Authorization header with an OAuth2
    JSON web token (Bearer) issued by Auth0.
  • x-api-key
    with an API key secret of a key, registered with the API gateway in AWS.

How do I get a valid JW token for the Authorization header?

As an API client, I must be provided with Auth0 Client credentials (client_ID and Client_secret) by Genius Sports (FA team) and obtain a valid token from the Auth0 token
endpoint using the Machine-to-Machine (client credentials) flow. I must obtain a new token whenever needed (based on the token expiration).


Make a POST request to the token endpoint: <span https://{env or nothing for prod}.auth.geniussports.com/oauth/token with the following payload:



{
'client_id': 'YOUR_AUTH0_CLIENT_ID',
'client_secret': 'YOUR_AUTH0_CLIENT_SECRET',
'audience': 'https://api.geniussports.com',
'grant_type' : 'client_credentials'
}

You will receive a new token in the response access_token field.


Curl example:


curl -X 'POST' https://{env or nothing for prod}.auth.geniussports.com/oauth/token
-H 'Content-Type: application / json'
-d '{'client_id':'YOUR_AUTH0_CLIENT_ID', 'client_secret':'YOUR_AUTH0_CLIENT_SECRET', 'audience':'https://api.geniussports.com',
'grant_type':'client_credentials'}'

API Endpoint
https://matching.api.geniussports.com/v2
Schemes: https
Version: 2.0.89

Authentication

Auth0

type
apiKey
name
Authorization
in
header
x-amazon-apigateway-authtype
oauth2

api_key

type
apiKey
name
x-api-key
in
header

Probabilistic matching

The results from the this kind of matching are always probabilistic. However we consider matches that have above 90% match score as viable results.

Retrieve competition matches by the provided parameters

GET /competition-matches
gender: string
in query

One of: Male, Female, Mixed. If the entity is neither Male, nor Female use Mixed.

x-api-key: string
in header

(no description)

name: string
in query

The name of the entity to be matched to Genius Sports name. Fuzzy matching is executed upon the official Genius Sports name. If this does not return result exact match is attempted on the aliases.

minCertainty: string
in query

The client can set the minimal % of the match certainty. Default is 70%.

dataSourceEntityId: string
in query

The ID of the team on the data source' side.

ageCategory: string
in query

One of: U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27. << TBD if By default under age competitions are excluded ???? >>

pageNumber: string
in query

The default is the first page. However next pages can be requested if available.

sport: string
in query

Allows either Genius Sports Id or the name of the sport. If the sport is sent as string name a FUZZY match is made on the value and the similarity score is contributing to the end match score.

locality: string
in query

Accepts either the 3 letter country code (ISO 3166-1 alpha-3 codes), the country name or the name of Continets, Administrive region, etc.. If a code is sent an EXACT match is made on the enum, excluding all non-matching entities. If the country is sent as string name a FUZZY match is made on the value and the similarity score is contributing to the end match score. The name of the country in free text form or one of: AFG, ALB, ALG, AND, ANG, ANT, ARG, ARM, ARU, ASA, AUS, AUT, AZE, BAH, BAN, BAR, BDI, BEL, BEN, BER, BHU, BIH, BIZ, BLR, BOL, BOT, BRA, BRN, BUL, BUR, CAF, CAM, CAN, CAY, CGO, CHA, CHI, CHN, CIV, CMR, COD, COK, COL, COM, CPV, CRC, CRO, CUB, CYP, CZE, DEN, DJI, DMA, DOM, ECU, EGY, ERI, ESA, ESP, EST, ETH, FIJ, FIN, FRA, FSM, GAB, GAM, GBR, GBS, GEO, GEQ, GER, GHA, GRE, GRN, GUA, GUI, GUM, GUY, HAI, HKG, HON, HUN, INA, IND, IRI, IRL, IRQ, ISL, ISR, ITA, IVB, JAM, JOR, JPN, KAZ, KEN, KGZ, KIR, KOR, KOS, KSA, KUW, LAO, LAT, LBA, LBN, LBR, LCA, LES, LIE, LTU, LUX, MAD, MAR, MAS, MAW, MDA, MDV, MEX, MGL, MHL, MKD, MLI, MLT, MNE, MON, MOZ, MRI, MTN, MYA, NAM, NCA, NED, NEP, NGR, NIG, NOR, NRU, NZL, OMA, PAK, PAN, PAR, PER, PHI, PLE, PLW, PNG, POL, POR, PUR, QAT, ROU, RSA, RUS, RWA, SAM, SEN, SEY, SGP, SKN, SLE, SLO, SMR, SOL, SOM, SRB, SRI, SSD, STP, SUD, SUI, SUR, SVK, SWE, SYR, TAN, TGA, THA, TJK, TKM, TOG, TTO, TUN, TUR, TUV, UAE, UGA, UKR, URU, USA, UZB, VAN, VEN, VIE, VIN, YEM, ZAM, ZIM

gs-matching-api-sub-source: string
in header

Sub Source Name

400 Bad Request

Bad request

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not found

413 Request Entity Too Large

Payload Too Large

415 Unsupported Media Type

Unsupported Media Type

429 Too Many Requests

Too Many Requests OR Limit Exceeded - On reason = Too Many requests one should re-try, for Limit Exceeded that does not help you

500 Internal Server Error

Internal Server Error

504 Gateway Timeout

Gateway Timeout

Unknown error

Response Content-Types: application/json
Response Example (200 OK)
{
  "page": "integer (int32)",
  "pageSize": "integer (int32)",
  "totalItems": "integer (int64)",
  "items": [
    {
      "certainty": "number (double)",
      "Id": "string",
      "dataSourceEntityId": "string",
      "relatedData": {
        "gender": "string",
        "sport": "string",
        "locality": "string",
        "ageCategory": "string",
        "name": "string",
        "aliases": [
          "string"
        ]
      }
    }
  ],
  "self": "string",
  "previous": "string",
  "next": "string",
  "first": "string",
  "last": "string"
}
Response Example (400 Bad Request)
{
  "messages": [
    "string"
  ]
}
Response Example (401 Unauthorized)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (403 Forbidden)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (404 Not Found)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (413 Request Entity Too Large)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (415 Unsupported Media Type)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (429 Too Many Requests)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (500 Internal Server Error)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (504 Gateway Timeout)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (520 )
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}

Retrieve competition matches by the provided parameters, and create a map uppon successful matching.

POST /competition-matches

Contains all the fields the client can match by, as well as configurations about the match.

x-api-key: string
in header

(no description)

pageNumber: string
in query

The default is the first page. However next pages can be requested if available.

gs-matching-api-sub-source: string
in header

Sub Source Name

Request Content-Types: application/json
Request Example
{
  "gender": "string",
  "ageCategory": "string",
  "locality": "string",
  "name": "string",
  "sport": "string",
  "matchConfig": {
    "minCertainty": "number (double)",
    "dataSourceEntityId": "string",
    "matchTrackingRequestId": "string",
    "matchUntil": "string (date-time)"
  }
}

200 response

202 Accepted

202 response

400 Bad Request

Bad request

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not found

413 Request Entity Too Large

Payload Too Large

415 Unsupported Media Type

Unsupported Media Type

429 Too Many Requests

Too Many Requests OR Limit Exceeded - On reason = Too Many requests one should re-try, for Limit Exceeded that does not help you

500 Internal Server Error

Internal Server Error

504 Gateway Timeout

Gateway Timeout

Unknown error

Response Content-Types: application/json
Response Example (200 OK)
{
  "certainty": "number (double)",
  "Id": "string",
  "dataSourceEntityId": "string",
  "matchTrackingRequestId": "string"
}
Response Example (202 Accepted)
{
  "description": "string",
  "matchRequestTrackingId": "string",
  "AsyncMatchTrackingUntilUTC": "string (date-time)"
}
Response Example (400 Bad Request)
{
  "messages": [
    "string"
  ]
}
Response Example (401 Unauthorized)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (403 Forbidden)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (404 Not Found)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (413 Request Entity Too Large)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (415 Unsupported Media Type)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (429 Too Many Requests)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (500 Internal Server Error)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (504 Gateway Timeout)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (520 )
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}

Retrieve double partnerships matches by the provided parameters.

GET /competitors/doubles-matches

Full list of sports using double partnerships for fixture level competitors: Badminton,Beach Volleyball,Bobsleigh,Canoeing/Kayaking,Darts,Diving,Figure Skating,Golf,Luge,Olympics,Pickleball,Pickleball,Pool,Rowing,Sailing,Snooker,Squash,Table Tennis,Tennis,Ten Pin Bowling,Winter Olympics

gender: string
in query

One of: Male, Female, Mixed. If the entity is neither Male, nor Female use Mixed.

x-api-key: string
in header

(no description)

name: string
in query

The name of the entity to be matched to Genius Sports name. Fuzzy matching is executed upon the official Genius Sports name. If this does not return result exact match is attempted on the aliases.

competition: string
in query

The name or Genius Sports Id of a competition, that this double partnership participated in.

minCertainty: string
in query

The client can set the minimal % of the match certainty. Default is 70%.

dataSourceEntityId: string
in query

The ID of the team on the data source' side.

pageNumber: string
in query

The default is the first page. However next pages can be requested if available.

person: string
in query

The name or Genius Sports Id of a person, that participates in this double partnership.

sport: string
in query

Allows either Genius Sports Id or the name of the sport. If the sport is sent as string name a FUZZY match is made on the value and the similarity score is contributing to the end match score.

locality: string
in query

Accepts either the 3 letter country code (ISO 3166-1 alpha-3 codes), the country name or the name of Continets, Administrive region, etc.. If a code is sent an EXACT match is made on the enum, excluding all non-matching entities. If the country is sent as string name a FUZZY match is made on the value and the similarity score is contributing to the end match score. The name of the country in free text form or one of: AFG, ALB, ALG, AND, ANG, ANT, ARG, ARM, ARU, ASA, AUS, AUT, AZE, BAH, BAN, BAR, BDI, BEL, BEN, BER, BHU, BIH, BIZ, BLR, BOL, BOT, BRA, BRN, BUL, BUR, CAF, CAM, CAN, CAY, CGO, CHA, CHI, CHN, CIV, CMR, COD, COK, COL, COM, CPV, CRC, CRO, CUB, CYP, CZE, DEN, DJI, DMA, DOM, ECU, EGY, ERI, ESA, ESP, EST, ETH, FIJ, FIN, FRA, FSM, GAB, GAM, GBR, GBS, GEO, GEQ, GER, GHA, GRE, GRN, GUA, GUI, GUM, GUY, HAI, HKG, HON, HUN, INA, IND, IRI, IRL, IRQ, ISL, ISR, ITA, IVB, JAM, JOR, JPN, KAZ, KEN, KGZ, KIR, KOR, KOS, KSA, KUW, LAO, LAT, LBA, LBN, LBR, LCA, LES, LIE, LTU, LUX, MAD, MAR, MAS, MAW, MDA, MDV, MEX, MGL, MHL, MKD, MLI, MLT, MNE, MON, MOZ, MRI, MTN, MYA, NAM, NCA, NED, NEP, NGR, NIG, NOR, NRU, NZL, OMA, PAK, PAN, PAR, PER, PHI, PLE, PLW, PNG, POL, POR, PUR, QAT, ROU, RSA, RUS, RWA, SAM, SEN, SEY, SGP, SKN, SLE, SLO, SMR, SOL, SOM, SRB, SRI, SSD, STP, SUD, SUI, SUR, SVK, SWE, SYR, TAN, TGA, THA, TJK, TKM, TOG, TTO, TUN, TUR, TUV, UAE, UGA, UKR, URU, USA, UZB, VAN, VEN, VIE, VIN, YEM, ZAM, ZIM

gs-matching-api-sub-source: string
in header

Sub Source Name

200 response

400 Bad Request

Bad request

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not found

413 Request Entity Too Large

Payload Too Large

415 Unsupported Media Type

Unsupported Media Type

429 Too Many Requests

Too Many Requests OR Limit Exceeded - On reason = Too Many requests one should re-try, for Limit Exceeded that does not help you

500 Internal Server Error

Internal Server Error

504 Gateway Timeout

Gateway Timeout

Unknown error

Response Content-Types: application/json
Response Example (200 OK)
{
  "page": "integer (int32)",
  "pageSize": "integer (int32)",
  "totalItems": "integer (int64)",
  "items": [
    {
      "certainty": "number (double)",
      "Id": "string",
      "dataSourceEntityId": "string",
      "relatedData": {
        "sport": "string",
        "gender": "string",
        "locality": "string",
        "name": "string",
        "persons": [
          {
            "id": "number",
            "name": "string"
          }
        ],
        "aliases": [
          "string"
        ]
      }
    }
  ],
  "self": "string",
  "previous": "string",
  "next": "string",
  "first": "string",
  "last": "string"
}
Response Example (400 Bad Request)
{
  "messages": [
    "string"
  ]
}
Response Example (401 Unauthorized)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (403 Forbidden)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (404 Not Found)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (413 Request Entity Too Large)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (415 Unsupported Media Type)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (429 Too Many Requests)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (500 Internal Server Error)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (504 Gateway Timeout)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (520 )
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}

Retrieve fixture level players matches by the provided parameters, and create a map uppon successful matching.

POST /competitors/doubles-matches

Full list of sports using double partnerships for fixture level competitors: Badminton,Beach Volleyball,Bobsleigh,Canoeing/Kayaking,Darts,Diving,Figure Skating,Golf,Luge,Olympics,Pickleball,Pickleball,Pool,Rowing,Sailing,Snooker,Squash,Table Tennis,Tennis,Ten Pin Bowling,Winter Olympics

Contains all the fields the client can match by, as well as configurations about the match.

x-api-key: string
in header

(no description)

pageNumber: string
in query

The default is the first page. However next pages can be requested if available.

gs-matching-api-sub-source: string
in header

Sub Source Name

Request Content-Types: application/json
Request Example
{
  "gender": "string",
  "competition": "string",
  "person": "string",
  "name": "string",
  "sport": "string",
  "locality": "string",
  "matchConfig": {
    "minCertainty": "number (double)",
    "dataSourceEntityId": "string",
    "matchTrackingRequestId": "string",
    "matchUntil": "string (date-time)"
  }
}

200 response

202 Accepted

202 response

400 Bad Request

Bad request

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not found

413 Request Entity Too Large

Payload Too Large

415 Unsupported Media Type

Unsupported Media Type

429 Too Many Requests

Too Many Requests OR Limit Exceeded - On reason = Too Many requests one should re-try, for Limit Exceeded that does not help you

500 Internal Server Error

Internal Server Error

504 Gateway Timeout

Gateway Timeout

Unknown error

Response Content-Types: application/json
Response Example (200 OK)
{
  "certainty": "number (double)",
  "Id": "string",
  "dataSourceEntityId": "string",
  "matchTrackingRequestId": "string"
}
Response Example (202 Accepted)
{
  "description": "string",
  "matchRequestTrackingId": "string",
  "AsyncMatchTrackingUntilUTC": "string (date-time)"
}
Response Example (400 Bad Request)
{
  "messages": [
    "string"
  ]
}
Response Example (401 Unauthorized)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (403 Forbidden)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (404 Not Found)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (413 Request Entity Too Large)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (415 Unsupported Media Type)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (429 Too Many Requests)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (500 Internal Server Error)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (504 Gateway Timeout)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (520 )
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}

Retrieve fixture level player matches by the provided parameters.

GET /competitors/player-matches

Full list of sports using players for fixture level competitors: Alpine Skiing,Archery,Athletics,Badminton,Biathlon,Bobsleigh,Bowls,Boxing,Canoeing/Kayaking,Chess,Competitive Eating,Cross Country,Cycling,Darts,Diving,Fencing,Figure Skating,Fishing,Freestyle Skiing,Golf,Gymnastics,Judo,Luge,Martial Arts/UFC,Modern Pentathlon,Motor Sport,Nordic Combined Skiing,Olympics,Pickleball,Poker,Politics,Pool,Rowing,Sailing,Shooting,Short Track Speed Skating,Skeleton,Ski Jumping,Snooker,Snowboarding,Speed Skating,Squash,Surfing,Swimming,Table Tennis,Taekwondo,Ten Pin Bowling,Tennis,Triathlon,Virtual Archery,Virtual Badminton,Virtual Basketball,Virtual Chariot Racing,Virtual Cricket,Virtual Cycling,Virtual Football,Virtual Golf,Virtual Greyhound Racing,Virtual Horse Racing,Virtual Ice Hockey,Virtual Motor Racing,Virtual Speed Skating,Virtual Table Tennis,Virtual Tennis,Weightlifting,Winter Olympics,Winter Sports,Wrestling,Yachting,eSports

shirtNumber: string
in query

Shirt number of the player if the player is part of a team.

name: string
in query

The name of the entity to be matched to Genius Sports name. Fuzzy matching is executed upon the official Genius Sports name. If this does not return result exact match is attempted on the aliases.

competition: string
in query

The name or Genius Sports Id of a competition, that this player participated in.

dataSourceEntityId: string
in query

The ID of the team on the data source' side.

pageNumber: string
in query

The default is the first page. However next pages can be requested if available.

gender: string
in query

One of: Male, Female, Mixed. If the entity is neither Male, nor Female use Mixed.

team: string
in query

Name of any team the player was part of.

position: string
in query

Position of the player if the player is part of a team.

x-api-key: string
in header

(no description)

minCertainty: string
in query

The client can set the minimal % of the match certainty. Default is 70%.

birthDate: string
in query

The birth date of the searched player in format - full-date notation as defined by RFC 3339, section 5.6, for example, 2017-07-21

sport: string
in query

Allows either Genius Sports Id or the name of the sport. If the sport is sent as string name a FUZZY match is made on the value and the similarity score is contributing to the end match score.

locality: string
in query

Accepts either the 3 letter country code (ISO 3166-1 alpha-3 codes), the country name or the name of Continets, Administrive region, etc.. If a code is sent an EXACT match is made on the enum, excluding all non-matching entities. If the country is sent as string name a FUZZY match is made on the value and the similarity score is contributing to the end match score. The name of the country in free text form or one of: AFG, ALB, ALG, AND, ANG, ANT, ARG, ARM, ARU, ASA, AUS, AUT, AZE, BAH, BAN, BAR, BDI, BEL, BEN, BER, BHU, BIH, BIZ, BLR, BOL, BOT, BRA, BRN, BUL, BUR, CAF, CAM, CAN, CAY, CGO, CHA, CHI, CHN, CIV, CMR, COD, COK, COL, COM, CPV, CRC, CRO, CUB, CYP, CZE, DEN, DJI, DMA, DOM, ECU, EGY, ERI, ESA, ESP, EST, ETH, FIJ, FIN, FRA, FSM, GAB, GAM, GBR, GBS, GEO, GEQ, GER, GHA, GRE, GRN, GUA, GUI, GUM, GUY, HAI, HKG, HON, HUN, INA, IND, IRI, IRL, IRQ, ISL, ISR, ITA, IVB, JAM, JOR, JPN, KAZ, KEN, KGZ, KIR, KOR, KOS, KSA, KUW, LAO, LAT, LBA, LBN, LBR, LCA, LES, LIE, LTU, LUX, MAD, MAR, MAS, MAW, MDA, MDV, MEX, MGL, MHL, MKD, MLI, MLT, MNE, MON, MOZ, MRI, MTN, MYA, NAM, NCA, NED, NEP, NGR, NIG, NOR, NRU, NZL, OMA, PAK, PAN, PAR, PER, PHI, PLE, PLW, PNG, POL, POR, PUR, QAT, ROU, RSA, RUS, RWA, SAM, SEN, SEY, SGP, SKN, SLE, SLO, SMR, SOL, SOM, SRB, SRI, SSD, STP, SUD, SUI, SUR, SVK, SWE, SYR, TAN, TGA, THA, TJK, TKM, TOG, TTO, TUN, TUR, TUV, UAE, UGA, UKR, URU, USA, UZB, VAN, VEN, VIE, VIN, YEM, ZAM, ZIM

gs-matching-api-sub-source: string
in header

Sub Source Name

200 response

400 Bad Request

Bad request

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not found

413 Request Entity Too Large

Payload Too Large

415 Unsupported Media Type

Unsupported Media Type

429 Too Many Requests

Too Many Requests OR Limit Exceeded - On reason = Too Many requests one should re-try, for Limit Exceeded that does not help you

500 Internal Server Error

Internal Server Error

504 Gateway Timeout

Gateway Timeout

Unknown error

Response Content-Types: application/json
Response Example (200 OK)
{
  "page": "integer (int32)",
  "pageSize": "integer (int32)",
  "totalItems": "integer (int64)",
  "items": [
    {
      "certainty": "number (double)",
      "Id": "string",
      "dataSourceEntityId": "string",
      "relatedData": {
        "sport": "string",
        "gender": "string",
        "locality": "string",
        "ageCategory": "string",
        "birthDate": "string",
        "name": "string",
        "aliases": [
          "string"
        ]
      }
    }
  ],
  "self": "string",
  "previous": "string",
  "next": "string",
  "first": "string",
  "last": "string"
}
Response Example (400 Bad Request)
{
  "messages": [
    "string"
  ]
}
Response Example (401 Unauthorized)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (403 Forbidden)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (404 Not Found)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (413 Request Entity Too Large)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (415 Unsupported Media Type)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (429 Too Many Requests)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (500 Internal Server Error)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (504 Gateway Timeout)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (520 )
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}

Retrieve fixture level players matches by the provided parameters, and create a map uppon successful matching.

POST /competitors/player-matches

Full list of sports using players for fixture level competitors: Alpine Skiing,Archery,Athletics,Badminton,Biathlon,Bobsleigh,Bowls,Boxing,Canoeing/Kayaking,Chess,Competitive Eating,Cross Country,Cycling,Darts,Diving,Fencing,Figure Skating,Fishing,Freestyle Skiing,Golf,Gymnastics,Judo,Luge,Martial Arts/UFC,Modern Pentathlon,Motor Sport,Nordic Combined Skiing,Olympics,Pickleball,Poker,Politics,Pool,Rowing,Sailing,Shooting,Short Track Speed Skating,Skeleton,Ski Jumping,Snooker,Snowboarding,Speed Skating,Squash,Surfing,Swimming,Table Tennis,Taekwondo,Ten Pin Bowling,Tennis,Triathlon,Virtual Archery,Virtual Badminton,Virtual Basketball,Virtual Chariot Racing,Virtual Cricket,Virtual Cycling,Virtual Football,Virtual Golf,Virtual Greyhound Racing,Virtual Horse Racing,Virtual Ice Hockey,Virtual Motor Racing,Virtual Speed Skating,Virtual Table Tennis,Virtual Tennis,Weightlifting,Winter Olympics,Winter Sports,Wrestling,Yachting,eSports

Contains all the fields the client can match by, as well as configurations about the match.

x-api-key: string
in header

(no description)

pageNumber: string
in query

The default is the first page. However next pages can be requested if available.

gs-matching-api-sub-source: string
in header

Sub Source Name

Request Content-Types: application/json
Request Example
{
  "competition": "string",
  "team": "string",
  "position": "string",
  "shirtNumber": "string",
  "gender": "string",
  "birthDate": "string (date)",
  "name": "string",
  "sport": "string",
  "locality": "string",
  "matchConfig": {
    "minCertainty": "number (double)",
    "dataSourceEntityId": "string",
    "matchTrackingRequestId": "string",
    "matchUntil": "string (date-time)"
  }
}

200 response

202 Accepted

202 response

400 Bad Request

Bad request

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not found

413 Request Entity Too Large

Payload Too Large

415 Unsupported Media Type

Unsupported Media Type

429 Too Many Requests

Too Many Requests OR Limit Exceeded - On reason = Too Many requests one should re-try, for Limit Exceeded that does not help you

500 Internal Server Error

Internal Server Error

504 Gateway Timeout

Gateway Timeout

Unknown error

Response Content-Types: application/json
Response Example (200 OK)
{
  "certainty": "number (double)",
  "Id": "string",
  "dataSourceEntityId": "string",
  "matchTrackingRequestId": "string"
}
Response Example (202 Accepted)
{
  "description": "string",
  "matchRequestTrackingId": "string",
  "AsyncMatchTrackingUntilUTC": "string (date-time)"
}
Response Example (400 Bad Request)
{
  "messages": [
    "string"
  ]
}
Response Example (401 Unauthorized)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (403 Forbidden)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (404 Not Found)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (413 Request Entity Too Large)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (415 Unsupported Media Type)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (429 Too Many Requests)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (500 Internal Server Error)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (504 Gateway Timeout)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (520 )
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}

Retrieve teams matches by the provided parameters.

GET /competitors/team-matches

Full list of sports using teams for fixture level competitors: 3x3 Basketball,American Football,Australian Rules,Bandy,Baseball,Basketball,Beach Soccer,Cricket,Curling,Financial,Floorball,Football,Futsal,Gaelic Football,Greyhounds,Handball,Harness Racing,Hockey,Horse Racing,Hurling,Ice Hockey,Lacrosse,Multi Sport,Netball,Pesäpallo,Rugby League,Rugby Union,Softball,Specials,Volleyball,Water Polo

name: string
in query

The name of the entity to be matched to Genius Sports name. Fuzzy matching is executed upon the official Genius Sports name. If this does not return result exact match is attempted on the aliases.

competition: string
in query

The name or Genius Sports Id of a competition, that this team participated in.

dataSourceEntityId: string
in query

The ID of the team on the data source' side.

ageCategory: string
in query

One of: U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27. << TBD if By default under age competitions are excluded ???? >>

isNationalTeam: string
in query

'true' for national teams, 'false' for club teams

pageNumber: string
in query

The default is the first page. However next pages can be requested if available.

gender: string
in query

One of: Male, Female, Mixed. If the entity is neither Male, nor Female use Mixed.

x-api-key: string
in header

(no description)

minCertainty: string
in query

The client can set the minimal % of the match certainty. Default is 70%.

sport: string
in query

Allows either Genius Sports Id or the name of the sport. If the sport is sent as string name a FUZZY match is made on the value and the similarity score is contributing to the end match score.

locality: string
in query

Accepts either the 3 letter country code (ISO 3166-1 alpha-3 codes), the country name or the name of Continets, Administrive region, etc.. If a code is sent an EXACT match is made on the enum, excluding all non-matching entities. If the country is sent as string name a FUZZY match is made on the value and the similarity score is contributing to the end match score. The name of the country in free text form or one of: AFG, ALB, ALG, AND, ANG, ANT, ARG, ARM, ARU, ASA, AUS, AUT, AZE, BAH, BAN, BAR, BDI, BEL, BEN, BER, BHU, BIH, BIZ, BLR, BOL, BOT, BRA, BRN, BUL, BUR, CAF, CAM, CAN, CAY, CGO, CHA, CHI, CHN, CIV, CMR, COD, COK, COL, COM, CPV, CRC, CRO, CUB, CYP, CZE, DEN, DJI, DMA, DOM, ECU, EGY, ERI, ESA, ESP, EST, ETH, FIJ, FIN, FRA, FSM, GAB, GAM, GBR, GBS, GEO, GEQ, GER, GHA, GRE, GRN, GUA, GUI, GUM, GUY, HAI, HKG, HON, HUN, INA, IND, IRI, IRL, IRQ, ISL, ISR, ITA, IVB, JAM, JOR, JPN, KAZ, KEN, KGZ, KIR, KOR, KOS, KSA, KUW, LAO, LAT, LBA, LBN, LBR, LCA, LES, LIE, LTU, LUX, MAD, MAR, MAS, MAW, MDA, MDV, MEX, MGL, MHL, MKD, MLI, MLT, MNE, MON, MOZ, MRI, MTN, MYA, NAM, NCA, NED, NEP, NGR, NIG, NOR, NRU, NZL, OMA, PAK, PAN, PAR, PER, PHI, PLE, PLW, PNG, POL, POR, PUR, QAT, ROU, RSA, RUS, RWA, SAM, SEN, SEY, SGP, SKN, SLE, SLO, SMR, SOL, SOM, SRB, SRI, SSD, STP, SUD, SUI, SUR, SVK, SWE, SYR, TAN, TGA, THA, TJK, TKM, TOG, TTO, TUN, TUR, TUV, UAE, UGA, UKR, URU, USA, UZB, VAN, VEN, VIE, VIN, YEM, ZAM, ZIM

homeVenue: string
in query

If sent а FUZZY match is made on the value and the similarity score is contributing to the end match score.

gs-matching-api-sub-source: string
in header

Sub Source Name

200 response

400 Bad Request

Bad request

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not found

413 Request Entity Too Large

Payload Too Large

415 Unsupported Media Type

Unsupported Media Type

429 Too Many Requests

Too Many Requests OR Limit Exceeded - On reason = Too Many requests one should re-try, for Limit Exceeded that does not help you

500 Internal Server Error

Internal Server Error

504 Gateway Timeout

Gateway Timeout

Unknown error

Response Content-Types: application/json
Response Example (200 OK)
{
  "page": "integer (int32)",
  "pageSize": "integer (int32)",
  "totalItems": "integer (int64)",
  "items": [
    {
      "certainty": "number (double)",
      "Id": "string",
      "dataSourceEntityId": "string",
      "relatedData": {
        "sport": "string",
        "gender": "string",
        "locality": "string",
        "ageCategory": "string",
        "isNationalTeam": "boolean",
        "name": "string",
        "aliases": [
          "string"
        ],
        "homeVenue": "string"
      }
    }
  ],
  "self": "string",
  "previous": "string",
  "next": "string",
  "first": "string",
  "last": "string"
}
Response Example (400 Bad Request)
{
  "messages": [
    "string"
  ]
}
Response Example (401 Unauthorized)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (403 Forbidden)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (404 Not Found)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (413 Request Entity Too Large)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (415 Unsupported Media Type)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (429 Too Many Requests)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (500 Internal Server Error)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (504 Gateway Timeout)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (520 )
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}

Retrieve team matches by the provided parameters, and create a map uppon successful matching.

POST /competitors/team-matches

Full list of sports using teams for fixture level competitors: 3x3 Basketball,American Football,Australian Rules,Bandy,Baseball,Basketball,Beach Soccer,Cricket,Curling,Financial,Floorball,Football,Futsal,Gaelic Football,Greyhounds,Handball,Harness Racing,Hockey,Horse Racing,Hurling,Ice Hockey,Lacrosse,Multi Sport,Netball,Pesäpallo,Rugby League,Rugby Union,Softball,Specials,Volleyball,Water Polo

Contains all the fields the client can match by, as well as configurations about the match.

x-api-key: string
in header

(no description)

pageNumber: string
in query

The default is the first page. However next pages can be requested if available.

gs-matching-api-sub-source: string
in header

Sub Source Name

Request Content-Types: application/json
Request Example
{
  "gender": "string",
  "ageCategory": "string",
  "homeVenue": "string",
  "isNationalTeam": "boolean",
  "competition": "string",
  "name": "string",
  "sport": "string",
  "locality": "string",
  "matchConfig": {
    "minCertainty": "number (double)",
    "dataSourceEntityId": "string",
    "matchTrackingRequestId": "string",
    "matchUntil": "string (date-time)"
  }
}

200 response

202 Accepted

202 response

400 Bad Request

Bad request

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not found

413 Request Entity Too Large

Payload Too Large

415 Unsupported Media Type

Unsupported Media Type

429 Too Many Requests

Too Many Requests OR Limit Exceeded - On reason = Too Many requests one should re-try, for Limit Exceeded that does not help you

500 Internal Server Error

Internal Server Error

504 Gateway Timeout

Gateway Timeout

Unknown error

Response Content-Types: application/json
Response Example (200 OK)
{
  "certainty": "number (double)",
  "Id": "string",
  "dataSourceEntityId": "string",
  "matchTrackingRequestId": "string"
}
Response Example (202 Accepted)
{
  "description": "string",
  "matchRequestTrackingId": "string",
  "AsyncMatchTrackingUntilUTC": "string (date-time)"
}
Response Example (400 Bad Request)
{
  "messages": [
    "string"
  ]
}
Response Example (401 Unauthorized)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (403 Forbidden)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (404 Not Found)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (413 Request Entity Too Large)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (415 Unsupported Media Type)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (429 Too Many Requests)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (500 Internal Server Error)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (504 Gateway Timeout)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (520 )
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}

Retrieve a fixture, within a configurable sport or competition day range

GET /fixture-matches
season: string
in query

The name or Genius Sports Id of the season, that this fixture is in. e.g 2022/2023 Champions league

fixtureCompetitors: string
in query

The names of the fixture competitors separated with ~ . e.g Barcelona Real Madrid. This can also accept the Genius Sport Id of the competitor. e.g. Barcelona10106

name: string
in query

The name of the entity to be matched to Genius Sports name. Fuzzy matching is executed upon the official Genius Sports name. If this does not return result exact match is attempted on the aliases.

competition: string
in query

The name or Genius Sports Id of the competition, that this fixture is in. e.g Champions League

dataSourceEntityId: string
in query

The ID of the team on the data source' side.

pageNumber: string
in query

The default is the first page. However next pages can be requested if available.

startDate: string
in query

The start date of the fixture in UTC ISO-8601 format. yyyy-MM-ddTHH:mm:ssZ - 2023-10-01T13:30:00Z

round: string
in query

The name or Genius Sports Id of the Round, that this fixture is in. e.g Quarter final

gender: string
in query

One of: Male, Female, Mixed. If the entity is neither Male, nor Female use Mixed.

x-api-key: string
in header

(no description)

minCertainty: string
in query

The client can set the minimal % of the match certainty. Default is 70%.

venue: string
in query

The name or Genius Sports Id of the Venue, that this fixture is played at. e.g Nou Camp

locality: string
in query

Accepts either the 3 letter country code (ISO 3166-1 alpha-3 codes), the country name or the name of Continets, Administrive region, etc.. If a code is sent an EXACT match is made on the enum, excluding all non-matching entities. If the country is sent as string name a FUZZY match is made on the value and the similarity score is contributing to the end match score. The name of the country in free text form or one of: AFG, ALB, ALG, AND, ANG, ANT, ARG, ARM, ARU, ASA, AUS, AUT, AZE, BAH, BAN, BAR, BDI, BEL, BEN, BER, BHU, BIH, BIZ, BLR, BOL, BOT, BRA, BRN, BUL, BUR, CAF, CAM, CAN, CAY, CGO, CHA, CHI, CHN, CIV, CMR, COD, COK, COL, COM, CPV, CRC, CRO, CUB, CYP, CZE, DEN, DJI, DMA, DOM, ECU, EGY, ERI, ESA, ESP, EST, ETH, FIJ, FIN, FRA, FSM, GAB, GAM, GBR, GBS, GEO, GEQ, GER, GHA, GRE, GRN, GUA, GUI, GUM, GUY, HAI, HKG, HON, HUN, INA, IND, IRI, IRL, IRQ, ISL, ISR, ITA, IVB, JAM, JOR, JPN, KAZ, KEN, KGZ, KIR, KOR, KOS, KSA, KUW, LAO, LAT, LBA, LBN, LBR, LCA, LES, LIE, LTU, LUX, MAD, MAR, MAS, MAW, MDA, MDV, MEX, MGL, MHL, MKD, MLI, MLT, MNE, MON, MOZ, MRI, MTN, MYA, NAM, NCA, NED, NEP, NGR, NIG, NOR, NRU, NZL, OMA, PAK, PAN, PAR, PER, PHI, PLE, PLW, PNG, POL, POR, PUR, QAT, ROU, RSA, RUS, RWA, SAM, SEN, SEY, SGP, SKN, SLE, SLO, SMR, SOL, SOM, SRB, SRI, SSD, STP, SUD, SUI, SUR, SVK, SWE, SYR, TAN, TGA, THA, TJK, TKM, TOG, TTO, TUN, TUR, TUV, UAE, UGA, UKR, URU, USA, UZB, VAN, VEN, VIE, VIN, YEM, ZAM, ZIM

sport: string
in query

The sport that this fixture is part of

gs-matching-api-sub-source: string
in header

Sub Source Name

200 response

400 Bad Request

Bad request

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not found

413 Request Entity Too Large

Payload Too Large

415 Unsupported Media Type

Unsupported Media Type

429 Too Many Requests

Too Many Requests OR Limit Exceeded - On reason = Too Many requests one should re-try, for Limit Exceeded that does not help you

500 Internal Server Error

Internal Server Error

504 Gateway Timeout

Gateway Timeout

Unknown error

Response Content-Types: application/json
Response Example (200 OK)
{
  "page": "integer (int32)",
  "pageSize": "integer (int32)",
  "totalItems": "integer (int64)",
  "items": [
    {
      "certainty": "number (double)",
      "Id": "string",
      "dataSourceEntityId": "string",
      "relatedData": {
        "gender": "string",
        "locality": "string",
        "startDate": "string (date-time)",
        "competition": "string",
        "season": "string",
        "round": "string",
        "venue": "string",
        "name": "string",
        "aliases": [
          "string"
        ],
        "teams": [
          {
            "id": "number",
            "name": "string"
          }
        ],
        "players": [
          {
            "id": "number",
            "name": "string"
          }
        ],
        "doubles": [
          {
            "id": "number",
            "name": "string"
          }
        ]
      }
    }
  ],
  "self": "string",
  "previous": "string",
  "next": "string",
  "first": "string",
  "last": "string"
}
Response Example (400 Bad Request)
{
  "messages": [
    "string"
  ]
}
Response Example (401 Unauthorized)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (403 Forbidden)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (404 Not Found)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (413 Request Entity Too Large)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (415 Unsupported Media Type)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (429 Too Many Requests)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (500 Internal Server Error)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (504 Gateway Timeout)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (520 )
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}

Retrieve a fixture, best matching to your fixture.

POST /fixture-matches

Contains all the fields the client can match by, as well as configurations about the match.

x-api-key: string
in header

(no description)

gs-matching-api-sub-source: string
in header

Sub Source Name

Request Content-Types: application/json
Request Example
{
  "gender": "string",
  "ageCategory": "string",
  "startDate": "string (date-time)",
  "venue": "string",
  "competition": "string",
  "season": "string",
  "round": "string",
  "fixtureCompetitors": [
    "string"
  ],
  "name": "string",
  "sport": "string",
  "locality": "string",
  "matchConfig": {
    "minCertainty": "number (double)",
    "dataSourceEntityId": "string",
    "matchTrackingRequestId": "string",
    "matchUntil": "string (date-time)"
  }
}

200 response

202 Accepted

202 response

400 Bad Request

Bad request

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not found

413 Request Entity Too Large

Payload Too Large

415 Unsupported Media Type

Unsupported Media Type

429 Too Many Requests

Too Many Requests OR Limit Exceeded - On reason = Too Many requests one should re-try, for Limit Exceeded that does not help you

500 Internal Server Error

Internal Server Error

504 Gateway Timeout

Gateway Timeout

Unknown error

Response Content-Types: application/json
Response Example (200 OK)
{
  "certainty": "number (double)",
  "Id": "string",
  "dataSourceEntityId": "string",
  "matchTrackingRequestId": "string"
}
Response Example (202 Accepted)
{
  "description": "string",
  "matchRequestTrackingId": "string",
  "AsyncMatchTrackingUntilUTC": "string (date-time)"
}
Response Example (400 Bad Request)
{
  "messages": [
    "string"
  ]
}
Response Example (401 Unauthorized)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (403 Forbidden)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (404 Not Found)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (413 Request Entity Too Large)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (415 Unsupported Media Type)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (429 Too Many Requests)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (500 Internal Server Error)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (504 Gateway Timeout)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (520 )
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}

Retrieve locality matches by the provided parameters

GET /locality-matches
pageNumber: string
in query

The default is the first page. However next pages can be requested if available.

x-api-key: string
in header

(no description)

name: string
in query

The name of the entity to be matched to Genius Sports name. Fuzzy matching is executed upon the official Genius Sports name. If this does not return result exact match is attempted on the aliases.

minCertainty: string
in query

The client can set the minimal % of the match certainty. Default is 70%.

dataSourceEntityId: string
in query

The ID of the team on the data source' side.

gs-matching-api-sub-source: string
in header

Sub Source Name

200 response

400 Bad Request

Bad request

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not found

413 Request Entity Too Large

Payload Too Large

415 Unsupported Media Type

Unsupported Media Type

429 Too Many Requests

Too Many Requests OR Limit Exceeded - On reason = Too Many requests one should re-try, for Limit Exceeded that does not help you

500 Internal Server Error

Internal Server Error

504 Gateway Timeout

Gateway Timeout

Unknown error

Response Content-Types: application/json
Response Example (200 OK)
{
  "page": "integer (int32)",
  "pageSize": "integer (int32)",
  "totalItems": "integer (int64)",
  "items": [
    {
      "certainty": "number (double)",
      "Id": "string",
      "dataSourceEntityId": "string",
      "relatedData": {
        "name": "string",
        "aliases": [
          "string"
        ]
      }
    }
  ],
  "self": "string",
  "previous": "string",
  "next": "string",
  "first": "string",
  "last": "string"
}
Response Example (400 Bad Request)
{
  "messages": [
    "string"
  ]
}
Response Example (401 Unauthorized)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (403 Forbidden)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (404 Not Found)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (413 Request Entity Too Large)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (415 Unsupported Media Type)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (429 Too Many Requests)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (500 Internal Server Error)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (504 Gateway Timeout)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (520 )
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}

Retrieve locality matches by the provided parameters, and create a map uppon successful matching.

POST /locality-matches

Contains all the fields the client can match by, as well as configurations about the match.

x-api-key: string
in header

(no description)

pageNumber: string
in query

The default is the first page. However next pages can be requested if available.

gs-matching-api-sub-source: string
in header

Sub Source Name

Request Content-Types: application/json
Request Example
{
  "name": "string",
  "matchConfig": {
    "minCertainty": "number (double)",
    "dataSourceEntityId": "string",
    "matchTrackingRequestId": "string",
    "matchUntil": "string (date-time)"
  }
}

200 response

202 Accepted

202 response

400 Bad Request

Bad request

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not found

413 Request Entity Too Large

Payload Too Large

415 Unsupported Media Type

Unsupported Media Type

429 Too Many Requests

Too Many Requests OR Limit Exceeded - On reason = Too Many requests one should re-try, for Limit Exceeded that does not help you

500 Internal Server Error

Internal Server Error

504 Gateway Timeout

Gateway Timeout

Unknown error

Response Content-Types: application/json
Response Example (200 OK)
{
  "certainty": "number (double)",
  "Id": "string",
  "dataSourceEntityId": "string",
  "matchTrackingRequestId": "string"
}
Response Example (202 Accepted)
{
  "description": "string",
  "matchRequestTrackingId": "string",
  "AsyncMatchTrackingUntilUTC": "string (date-time)"
}
Response Example (400 Bad Request)
{
  "messages": [
    "string"
  ]
}
Response Example (401 Unauthorized)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (403 Forbidden)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (404 Not Found)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (413 Request Entity Too Large)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (415 Unsupported Media Type)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (429 Too Many Requests)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (500 Internal Server Error)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (504 Gateway Timeout)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (520 )
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}

Retrieve a person, that can be used in a team squad, as a refferee, coach, etc. The person itself cannot be used in a fixture as a top level competitor. For that use a Player

GET /person-matches
gender: string
in query

One of: Male, Female, Mixed. If the entity is neither Male, nor Female use Mixed.

team: string
in query

The name or Genius Sports Id of a team, that this person played for.

x-api-key: string
in header

(no description)

name: string
in query

The name of the entity to be matched to Genius Sports name. Fuzzy matching is executed upon the official Genius Sports name. If this does not return result exact match is attempted on the aliases.

minCertainty: string
in query

The client can set the minimal % of the match certainty. Default is 70%.

dataSourceEntityId: string
in query

The ID of the team on the data source' side.

pageNumber: string
in query

The default is the first page. However next pages can be requested if available.

birthDate: string
in query

The birth date of the searched player in format - full-date notation as defined by RFC 3339, section 5.6, for example, 2017-07-21

sport: string
in query

Allows either Genius Sports Id or the name of the sport. If the sport is sent as string name a FUZZY match is made on the value and the similarity score is contributing to the end match score.

locality: string
in query

Accepts either the 3 letter country code (ISO 3166-1 alpha-3 codes), the country name or the name of Continets, Administrive region, etc.. If a code is sent an EXACT match is made on the enum, excluding all non-matching entities. If the country is sent as string name a FUZZY match is made on the value and the similarity score is contributing to the end match score. The name of the country in free text form or one of: AFG, ALB, ALG, AND, ANG, ANT, ARG, ARM, ARU, ASA, AUS, AUT, AZE, BAH, BAN, BAR, BDI, BEL, BEN, BER, BHU, BIH, BIZ, BLR, BOL, BOT, BRA, BRN, BUL, BUR, CAF, CAM, CAN, CAY, CGO, CHA, CHI, CHN, CIV, CMR, COD, COK, COL, COM, CPV, CRC, CRO, CUB, CYP, CZE, DEN, DJI, DMA, DOM, ECU, EGY, ERI, ESA, ESP, EST, ETH, FIJ, FIN, FRA, FSM, GAB, GAM, GBR, GBS, GEO, GEQ, GER, GHA, GRE, GRN, GUA, GUI, GUM, GUY, HAI, HKG, HON, HUN, INA, IND, IRI, IRL, IRQ, ISL, ISR, ITA, IVB, JAM, JOR, JPN, KAZ, KEN, KGZ, KIR, KOR, KOS, KSA, KUW, LAO, LAT, LBA, LBN, LBR, LCA, LES, LIE, LTU, LUX, MAD, MAR, MAS, MAW, MDA, MDV, MEX, MGL, MHL, MKD, MLI, MLT, MNE, MON, MOZ, MRI, MTN, MYA, NAM, NCA, NED, NEP, NGR, NIG, NOR, NRU, NZL, OMA, PAK, PAN, PAR, PER, PHI, PLE, PLW, PNG, POL, POR, PUR, QAT, ROU, RSA, RUS, RWA, SAM, SEN, SEY, SGP, SKN, SLE, SLO, SMR, SOL, SOM, SRB, SRI, SSD, STP, SUD, SUI, SUR, SVK, SWE, SYR, TAN, TGA, THA, TJK, TKM, TOG, TTO, TUN, TUR, TUV, UAE, UGA, UKR, URU, USA, UZB, VAN, VEN, VIE, VIN, YEM, ZAM, ZIM

gs-matching-api-sub-source: string
in header

Sub Source Name

200 response

400 Bad Request

Bad request

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not found

413 Request Entity Too Large

Payload Too Large

415 Unsupported Media Type

Unsupported Media Type

429 Too Many Requests

Too Many Requests OR Limit Exceeded - On reason = Too Many requests one should re-try, for Limit Exceeded that does not help you

500 Internal Server Error

Internal Server Error

504 Gateway Timeout

Gateway Timeout

Unknown error

Response Content-Types: application/json
Response Example (200 OK)
{
  "page": "integer (int32)",
  "pageSize": "integer (int32)",
  "totalItems": "integer (int64)",
  "items": [
    {
      "certainty": "number (double)",
      "Id": "string",
      "dataSourceEntityId": "string",
      "relatedData": {
        "gender": "string",
        "locality": "string",
        "birthDate": "string",
        "name": "string",
        "aliases": [
          "string"
        ]
      }
    }
  ],
  "self": "string",
  "previous": "string",
  "next": "string",
  "first": "string",
  "last": "string"
}
Response Example (400 Bad Request)
{
  "messages": [
    "string"
  ]
}
Response Example (401 Unauthorized)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (403 Forbidden)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (404 Not Found)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (413 Request Entity Too Large)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (415 Unsupported Media Type)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (429 Too Many Requests)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (500 Internal Server Error)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (504 Gateway Timeout)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (520 )
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}

Retrieve a person, that can be used in a team squad, as a refferee, coach, etc., and create a map uppon successful matching.

POST /person-matches

Contains all the fields the client can match by, as well as configurations about the match.

x-api-key: string
in header

(no description)

pageNumber: string
in query

The default is the first page. However next pages can be requested if available.

gs-matching-api-sub-source: string
in header

Sub Source Name

Request Content-Types: application/json
Request Example
{
  "team": "string",
  "gender": "string",
  "birthDate": "string (date)",
  "name": "string",
  "sport": "string",
  "locality": "string",
  "matchConfig": {
    "minCertainty": "number (double)",
    "dataSourceEntityId": "string",
    "matchTrackingRequestId": "string",
    "matchUntil": "string (date-time)"
  }
}

200 response

202 Accepted

202 response

400 Bad Request

Bad request

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not found

413 Request Entity Too Large

Payload Too Large

415 Unsupported Media Type

Unsupported Media Type

429 Too Many Requests

Too Many Requests OR Limit Exceeded - On reason = Too Many requests one should re-try, for Limit Exceeded that does not help you

500 Internal Server Error

Internal Server Error

504 Gateway Timeout

Gateway Timeout

Unknown error

Response Content-Types: application/json
Response Example (200 OK)
{
  "certainty": "number (double)",
  "Id": "string",
  "dataSourceEntityId": "string",
  "matchTrackingRequestId": "string"
}
Response Example (202 Accepted)
{
  "description": "string",
  "matchRequestTrackingId": "string",
  "AsyncMatchTrackingUntilUTC": "string (date-time)"
}
Response Example (400 Bad Request)
{
  "messages": [
    "string"
  ]
}
Response Example (401 Unauthorized)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (403 Forbidden)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (404 Not Found)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (413 Request Entity Too Large)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (415 Unsupported Media Type)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (429 Too Many Requests)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (500 Internal Server Error)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (504 Gateway Timeout)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (520 )
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}

Retrieve round matches by the provided parameters

GET /round-matches
season: string
in query

Allows either Genius Sports Id or the name of the season. If the season is sent as string name a FUZZY match is made on the value and the similarity score is contributing to the end match score.

name: string
in query

The name of the entity to be matched to Genius Sports name. Fuzzy matching is executed upon the official Genius Sports name. If this does not return result exact match is attempted on the aliases.

endDate: string
in query

The end date in format - full-date notation as defined by RFC 3339, section 5.6, for example, 2017-07-21

dataSourceEntityId: string
in query

The ID of the team on the data source' side.

ageCategory: string
in query

One of: U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27. << TBD if By default under age competitions are excluded ???? >>

pageNumber: string
in query

The default is the first page. However next pages can be requested if available.

startDate: string
in query

The start date in format - full-date notation as defined by RFC 3339, section 5.6, for example, 2017-07-21

gender: string
in query

One of: Male, Female, Mixed. If the entity is neither Male, nor Female use Mixed.

x-api-key: string
in header

(no description)

minCertainty: string
in query

The client can set the minimal % of the match certainty. Default is 70%.

sport: string
in query

Allows either Genius Sports Id or the name of the sport. If the sport is sent as string name a FUZZY match is made on the value and the similarity score is contributing to the end match score.

locality: string
in query

Accepts either the 3 letter country code (ISO 3166-1 alpha-3 codes), the country name or the name of Continets, Administrive region, etc.. If a code is sent an EXACT match is made on the enum, excluding all non-matching entities. If the country is sent as string name a FUZZY match is made on the value and the similarity score is contributing to the end match score. The name of the country in free text form or one of: AFG, ALB, ALG, AND, ANG, ANT, ARG, ARM, ARU, ASA, AUS, AUT, AZE, BAH, BAN, BAR, BDI, BEL, BEN, BER, BHU, BIH, BIZ, BLR, BOL, BOT, BRA, BRN, BUL, BUR, CAF, CAM, CAN, CAY, CGO, CHA, CHI, CHN, CIV, CMR, COD, COK, COL, COM, CPV, CRC, CRO, CUB, CYP, CZE, DEN, DJI, DMA, DOM, ECU, EGY, ERI, ESA, ESP, EST, ETH, FIJ, FIN, FRA, FSM, GAB, GAM, GBR, GBS, GEO, GEQ, GER, GHA, GRE, GRN, GUA, GUI, GUM, GUY, HAI, HKG, HON, HUN, INA, IND, IRI, IRL, IRQ, ISL, ISR, ITA, IVB, JAM, JOR, JPN, KAZ, KEN, KGZ, KIR, KOR, KOS, KSA, KUW, LAO, LAT, LBA, LBN, LBR, LCA, LES, LIE, LTU, LUX, MAD, MAR, MAS, MAW, MDA, MDV, MEX, MGL, MHL, MKD, MLI, MLT, MNE, MON, MOZ, MRI, MTN, MYA, NAM, NCA, NED, NEP, NGR, NIG, NOR, NRU, NZL, OMA, PAK, PAN, PAR, PER, PHI, PLE, PLW, PNG, POL, POR, PUR, QAT, ROU, RSA, RUS, RWA, SAM, SEN, SEY, SGP, SKN, SLE, SLO, SMR, SOL, SOM, SRB, SRI, SSD, STP, SUD, SUI, SUR, SVK, SWE, SYR, TAN, TGA, THA, TJK, TKM, TOG, TTO, TUN, TUR, TUV, UAE, UGA, UKR, URU, USA, UZB, VAN, VEN, VIE, VIN, YEM, ZAM, ZIM

gs-matching-api-sub-source: string
in header

Sub Source Name

200 response

400 Bad Request

Bad request

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not found

413 Request Entity Too Large

Payload Too Large

415 Unsupported Media Type

Unsupported Media Type

429 Too Many Requests

Too Many Requests OR Limit Exceeded - On reason = Too Many requests one should re-try, for Limit Exceeded that does not help you

500 Internal Server Error

Internal Server Error

504 Gateway Timeout

Gateway Timeout

Unknown error

Response Content-Types: application/json
Response Example (200 OK)
{
  "page": "integer (int32)",
  "pageSize": "integer (int32)",
  "totalItems": "integer (int64)",
  "items": [
    {
      "certainty": "number (double)",
      "Id": "string",
      "dataSourceEntityId": "string",
      "relatedData": {
        "gender": "string",
        "sport": "string",
        "season": "string",
        "startDate": "string",
        "endDate": "string",
        "locality": "string",
        "ageCategory": "string",
        "name": "string",
        "aliases": [
          "string"
        ]
      }
    }
  ],
  "self": "string",
  "previous": "string",
  "next": "string",
  "first": "string",
  "last": "string"
}
Response Example (400 Bad Request)
{
  "messages": [
    "string"
  ]
}
Response Example (401 Unauthorized)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (403 Forbidden)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (404 Not Found)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (413 Request Entity Too Large)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (415 Unsupported Media Type)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (429 Too Many Requests)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (500 Internal Server Error)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (504 Gateway Timeout)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (520 )
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}

Retrieve round matches by the provided parameters, and create a map uppon successful matching.

POST /round-matches

Contains all the fields the client can match by, as well as configurations about the match.

x-api-key: string
in header

(no description)

pageNumber: string
in query

The default is the first page. However next pages can be requested if available.

gs-matching-api-sub-source: string
in header

Sub Source Name

Request Content-Types: application/json
Request Example
{
  "gender": "string",
  "season": "string",
  "startDate": "string (date)",
  "endDate": "string (date)",
  "ageCategory": "string",
  "locality": "string",
  "name": "string",
  "sport": "string",
  "matchConfig": {
    "minCertainty": "number (double)",
    "dataSourceEntityId": "string",
    "matchTrackingRequestId": "string",
    "matchUntil": "string (date-time)"
  }
}

200 response

202 Accepted

202 response

400 Bad Request

Bad request

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not found

413 Request Entity Too Large

Payload Too Large

415 Unsupported Media Type

Unsupported Media Type

429 Too Many Requests

Too Many Requests OR Limit Exceeded - On reason = Too Many requests one should re-try, for Limit Exceeded that does not help you

500 Internal Server Error

Internal Server Error

504 Gateway Timeout

Gateway Timeout

Unknown error

Response Content-Types: application/json
Response Example (200 OK)
{
  "certainty": "number (double)",
  "Id": "string",
  "dataSourceEntityId": "string",
  "matchTrackingRequestId": "string"
}
Response Example (202 Accepted)
{
  "description": "string",
  "matchRequestTrackingId": "string",
  "AsyncMatchTrackingUntilUTC": "string (date-time)"
}
Response Example (400 Bad Request)
{
  "messages": [
    "string"
  ]
}
Response Example (401 Unauthorized)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (403 Forbidden)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (404 Not Found)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (413 Request Entity Too Large)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (415 Unsupported Media Type)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (429 Too Many Requests)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (500 Internal Server Error)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (504 Gateway Timeout)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (520 )
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}

Retrieve season matches by the provided parameters

GET /season-matches
name: string
in query

The name of the entity to be matched to Genius Sports name. Fuzzy matching is executed upon the official Genius Sports name. If this does not return result exact match is attempted on the aliases.

competition: string
in query

Allows either Genius Sports Id or the name of the competition. If the competition is sent as string name a FUZZY match is made on the value and the similarity score is contributing to the end match score.

endDate: string
in query

The end date in format - full-date notation as defined by RFC 3339, section 5.6, for example, 2017-07-21

dataSourceEntityId: string
in query

The ID of the team on the data source' side.

ageCategory: string
in query

One of: U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27. << TBD if By default under age competitions are excluded ???? >>

pageNumber: string
in query

The default is the first page. However next pages can be requested if available.

startDate: string
in query

The start date in format - full-date notation as defined by RFC 3339, section 5.6, for example, 2017-07-21

gender: string
in query

One of: Male, Female, Mixed. If the entity is neither Male, nor Female use Mixed.

x-api-key: string
in header

(no description)

minCertainty: string
in query

The client can set the minimal % of the match certainty. Default is 70%.

sport: string
in query

Allows either Genius Sports Id or the name of the sport. If the sport is sent as string name a FUZZY match is made on the value and the similarity score is contributing to the end match score.

locality: string
in query

Accepts either the 3 letter country code (ISO 3166-1 alpha-3 codes), the country name or the name of Continets, Administrive region, etc.. If a code is sent an EXACT match is made on the enum, excluding all non-matching entities. If the country is sent as string name a FUZZY match is made on the value and the similarity score is contributing to the end match score. The name of the country in free text form or one of: AFG, ALB, ALG, AND, ANG, ANT, ARG, ARM, ARU, ASA, AUS, AUT, AZE, BAH, BAN, BAR, BDI, BEL, BEN, BER, BHU, BIH, BIZ, BLR, BOL, BOT, BRA, BRN, BUL, BUR, CAF, CAM, CAN, CAY, CGO, CHA, CHI, CHN, CIV, CMR, COD, COK, COL, COM, CPV, CRC, CRO, CUB, CYP, CZE, DEN, DJI, DMA, DOM, ECU, EGY, ERI, ESA, ESP, EST, ETH, FIJ, FIN, FRA, FSM, GAB, GAM, GBR, GBS, GEO, GEQ, GER, GHA, GRE, GRN, GUA, GUI, GUM, GUY, HAI, HKG, HON, HUN, INA, IND, IRI, IRL, IRQ, ISL, ISR, ITA, IVB, JAM, JOR, JPN, KAZ, KEN, KGZ, KIR, KOR, KOS, KSA, KUW, LAO, LAT, LBA, LBN, LBR, LCA, LES, LIE, LTU, LUX, MAD, MAR, MAS, MAW, MDA, MDV, MEX, MGL, MHL, MKD, MLI, MLT, MNE, MON, MOZ, MRI, MTN, MYA, NAM, NCA, NED, NEP, NGR, NIG, NOR, NRU, NZL, OMA, PAK, PAN, PAR, PER, PHI, PLE, PLW, PNG, POL, POR, PUR, QAT, ROU, RSA, RUS, RWA, SAM, SEN, SEY, SGP, SKN, SLE, SLO, SMR, SOL, SOM, SRB, SRI, SSD, STP, SUD, SUI, SUR, SVK, SWE, SYR, TAN, TGA, THA, TJK, TKM, TOG, TTO, TUN, TUR, TUV, UAE, UGA, UKR, URU, USA, UZB, VAN, VEN, VIE, VIN, YEM, ZAM, ZIM

gs-matching-api-sub-source: string
in header

Sub Source Name

200 response

400 Bad Request

Bad request

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not found

413 Request Entity Too Large

Payload Too Large

415 Unsupported Media Type

Unsupported Media Type

429 Too Many Requests

Too Many Requests OR Limit Exceeded - On reason = Too Many requests one should re-try, for Limit Exceeded that does not help you

500 Internal Server Error

Internal Server Error

504 Gateway Timeout

Gateway Timeout

Unknown error

Response Content-Types: application/json
Response Example (200 OK)
{
  "page": "integer (int32)",
  "pageSize": "integer (int32)",
  "totalItems": "integer (int64)",
  "items": [
    {
      "certainty": "number (double)",
      "Id": "string",
      "dataSourceEntityId": "string",
      "relatedData": {
        "gender": "string",
        "sport": "string",
        "competition": "string",
        "startDate": "string",
        "endDate": "string",
        "locality": "string",
        "ageCategory": "string",
        "name": "string",
        "aliases": [
          "string"
        ]
      }
    }
  ],
  "self": "string",
  "previous": "string",
  "next": "string",
  "first": "string",
  "last": "string"
}
Response Example (400 Bad Request)
{
  "messages": [
    "string"
  ]
}
Response Example (401 Unauthorized)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (403 Forbidden)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (404 Not Found)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (413 Request Entity Too Large)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (415 Unsupported Media Type)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (429 Too Many Requests)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (500 Internal Server Error)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (504 Gateway Timeout)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (520 )
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}

Retrieve season matches by the provided parameters, and create a map uppon successful matching.

POST /season-matches

Contains all the fields the client can match by, as well as configurations about the match.

x-api-key: string
in header

(no description)

pageNumber: string
in query

The default is the first page. However next pages can be requested if available.

gs-matching-api-sub-source: string
in header

Sub Source Name

Request Content-Types: application/json
Request Example
{
  "gender": "string",
  "competition": "string",
  "startDate": "string (date)",
  "endDate": "string (date)",
  "ageCategory": "string",
  "locality": "string",
  "name": "string",
  "sport": "string",
  "matchConfig": {
    "minCertainty": "number (double)",
    "dataSourceEntityId": "string",
    "matchTrackingRequestId": "string",
    "matchUntil": "string (date-time)"
  }
}

200 response

202 Accepted

202 response

400 Bad Request

Bad request

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not found

413 Request Entity Too Large

Payload Too Large

415 Unsupported Media Type

Unsupported Media Type

429 Too Many Requests

Too Many Requests OR Limit Exceeded - On reason = Too Many requests one should re-try, for Limit Exceeded that does not help you

500 Internal Server Error

Internal Server Error

504 Gateway Timeout

Gateway Timeout

Unknown error

Response Content-Types: application/json
Response Example (200 OK)
{
  "certainty": "number (double)",
  "Id": "string",
  "dataSourceEntityId": "string",
  "matchTrackingRequestId": "string"
}
Response Example (202 Accepted)
{
  "description": "string",
  "matchRequestTrackingId": "string",
  "AsyncMatchTrackingUntilUTC": "string (date-time)"
}
Response Example (400 Bad Request)
{
  "messages": [
    "string"
  ]
}
Response Example (401 Unauthorized)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (403 Forbidden)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (404 Not Found)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (413 Request Entity Too Large)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (415 Unsupported Media Type)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (429 Too Many Requests)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (500 Internal Server Error)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (504 Gateway Timeout)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (520 )
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}

Retrieve sport matches by the provided parameters

GET /sport-matches
pageNumber: string
in query

The default is the first page. However next pages can be requested if available.

x-api-key: string
in header

(no description)

name: string
in query

The name of the entity to be matched to Genius Sports name. Fuzzy matching is executed upon the official Genius Sports name. If this does not return result exact match is attempted on the aliases.

minCertainty: string
in query

The client can set the minimal % of the match certainty. Default is 70%.

dataSourceEntityId: string
in query

The ID of the team on the data source' side.

gs-matching-api-sub-source: string
in header

Sub Source Name

200 response

400 Bad Request

Bad request

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not found

413 Request Entity Too Large

Payload Too Large

415 Unsupported Media Type

Unsupported Media Type

429 Too Many Requests

Too Many Requests OR Limit Exceeded - On reason = Too Many requests one should re-try, for Limit Exceeded that does not help you

500 Internal Server Error

Internal Server Error

504 Gateway Timeout

Gateway Timeout

Unknown error

Response Content-Types: application/json
Response Example (200 OK)
{
  "page": "integer (int32)",
  "pageSize": "integer (int32)",
  "totalItems": "integer (int64)",
  "items": [
    {
      "certainty": "number (double)",
      "Id": "string",
      "dataSourceEntityId": "string",
      "relatedData": {
        "name": "string",
        "aliases": [
          "string"
        ]
      }
    }
  ],
  "self": "string",
  "previous": "string",
  "next": "string",
  "first": "string",
  "last": "string"
}
Response Example (400 Bad Request)
{
  "messages": [
    "string"
  ]
}
Response Example (401 Unauthorized)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (403 Forbidden)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (404 Not Found)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (413 Request Entity Too Large)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (415 Unsupported Media Type)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (429 Too Many Requests)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (500 Internal Server Error)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (504 Gateway Timeout)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (520 )
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}

Retrieve sport matches by the provided parameters, and create a map uppon successful matching.

POST /sport-matches

Contains all the fields the client can match by, as well as configurations about the match.

x-api-key: string
in header

(no description)

pageNumber: string
in query

The default is the first page. However next pages can be requested if available.

gs-matching-api-sub-source: string
in header

Sub Source Name

Request Content-Types: application/json
Request Example
{
  "name": "string",
  "matchConfig": {
    "minCertainty": "number (double)",
    "dataSourceEntityId": "string",
    "matchTrackingRequestId": "string",
    "matchUntil": "string (date-time)"
  }
}

200 response

202 Accepted

202 response

400 Bad Request

Bad request

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not found

413 Request Entity Too Large

Payload Too Large

415 Unsupported Media Type

Unsupported Media Type

429 Too Many Requests

Too Many Requests OR Limit Exceeded - On reason = Too Many requests one should re-try, for Limit Exceeded that does not help you

500 Internal Server Error

Internal Server Error

504 Gateway Timeout

Gateway Timeout

Unknown error

Response Content-Types: application/json
Response Example (200 OK)
{
  "certainty": "number (double)",
  "Id": "string",
  "dataSourceEntityId": "string",
  "matchTrackingRequestId": "string"
}
Response Example (202 Accepted)
{
  "description": "string",
  "matchRequestTrackingId": "string",
  "AsyncMatchTrackingUntilUTC": "string (date-time)"
}
Response Example (400 Bad Request)
{
  "messages": [
    "string"
  ]
}
Response Example (401 Unauthorized)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (403 Forbidden)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (404 Not Found)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (413 Request Entity Too Large)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (415 Unsupported Media Type)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (429 Too Many Requests)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (500 Internal Server Error)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (504 Gateway Timeout)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (520 )
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}

Retrieve a venue

GET /venue-matches
parentVenue: string
in query

The name or Genius Sports Id of the Parent Venue

x-api-key: string
in header

(no description)

name: string
in query

The name of the entity to be matched to Genius Sports name. Fuzzy matching is executed upon the official Genius Sports name. If this does not return result exact match is attempted on the aliases.

minCertainty: string
in query

The client can set the minimal % of the match certainty. Default is 70%.

dataSourceEntityId: string
in query

The ID of the team on the data source' side.

pageNumber: string
in query

The default is the first page. However next pages can be requested if available.

city: string
in query

The name of the city

locality: string
in query

Accepts either the 3 letter country code (ISO 3166-1 alpha-3 codes), the country name or the name of Continets, Administrive region, etc.. If a code is sent an EXACT match is made on the enum, excluding all non-matching entities. If the country is sent as string name a FUZZY match is made on the value and the similarity score is contributing to the end match score. The name of the country in free text form or one of: AFG, ALB, ALG, AND, ANG, ANT, ARG, ARM, ARU, ASA, AUS, AUT, AZE, BAH, BAN, BAR, BDI, BEL, BEN, BER, BHU, BIH, BIZ, BLR, BOL, BOT, BRA, BRN, BUL, BUR, CAF, CAM, CAN, CAY, CGO, CHA, CHI, CHN, CIV, CMR, COD, COK, COL, COM, CPV, CRC, CRO, CUB, CYP, CZE, DEN, DJI, DMA, DOM, ECU, EGY, ERI, ESA, ESP, EST, ETH, FIJ, FIN, FRA, FSM, GAB, GAM, GBR, GBS, GEO, GEQ, GER, GHA, GRE, GRN, GUA, GUI, GUM, GUY, HAI, HKG, HON, HUN, INA, IND, IRI, IRL, IRQ, ISL, ISR, ITA, IVB, JAM, JOR, JPN, KAZ, KEN, KGZ, KIR, KOR, KOS, KSA, KUW, LAO, LAT, LBA, LBN, LBR, LCA, LES, LIE, LTU, LUX, MAD, MAR, MAS, MAW, MDA, MDV, MEX, MGL, MHL, MKD, MLI, MLT, MNE, MON, MOZ, MRI, MTN, MYA, NAM, NCA, NED, NEP, NGR, NIG, NOR, NRU, NZL, OMA, PAK, PAN, PAR, PER, PHI, PLE, PLW, PNG, POL, POR, PUR, QAT, ROU, RSA, RUS, RWA, SAM, SEN, SEY, SGP, SKN, SLE, SLO, SMR, SOL, SOM, SRB, SRI, SSD, STP, SUD, SUI, SUR, SVK, SWE, SYR, TAN, TGA, THA, TJK, TKM, TOG, TTO, TUN, TUR, TUV, UAE, UGA, UKR, URU, USA, UZB, VAN, VEN, VIE, VIN, YEM, ZAM, ZIM

sport: string
in query

The sport that this venue is suitable for

gs-matching-api-sub-source: string
in header

Sub Source Name

200 response

400 Bad Request

Bad request

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not found

413 Request Entity Too Large

Payload Too Large

415 Unsupported Media Type

Unsupported Media Type

429 Too Many Requests

Too Many Requests OR Limit Exceeded - On reason = Too Many requests one should re-try, for Limit Exceeded that does not help you

500 Internal Server Error

Internal Server Error

504 Gateway Timeout

Gateway Timeout

Unknown error

Response Content-Types: application/json
Response Example (200 OK)
{
  "page": "integer (int32)",
  "pageSize": "integer (int32)",
  "totalItems": "integer (int64)",
  "items": [
    {
      "certainty": "number (double)",
      "Id": "string",
      "dataSourceEntityId": "string",
      "relatedData": {
        "locality": "string",
        "city": "string",
        "parentVenue": "string",
        "name": "string",
        "aliases": [
          "string"
        ]
      }
    }
  ],
  "self": "string",
  "previous": "string",
  "next": "string",
  "first": "string",
  "last": "string"
}
Response Example (400 Bad Request)
{
  "messages": [
    "string"
  ]
}
Response Example (401 Unauthorized)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (403 Forbidden)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (404 Not Found)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (413 Request Entity Too Large)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (415 Unsupported Media Type)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (429 Too Many Requests)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (500 Internal Server Error)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (504 Gateway Timeout)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (520 )
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}

Retrieve a venue, best matching to your venue.

POST /venue-matches

Contains all the fields the client can match by, as well as configurations about the match.

x-api-key: string
in header

(no description)

gs-matching-api-sub-source: string
in header

Sub Source Name

Request Content-Types: application/json
Request Example
{
  "city": "string",
  "name": "string",
  "sport": "string",
  "locality": "string",
  "matchConfig": {
    "minCertainty": "number (double)",
    "dataSourceEntityId": "string",
    "matchTrackingRequestId": "string",
    "matchUntil": "string (date-time)"
  }
}

200 response

202 Accepted

202 response

400 Bad Request

Bad request

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not found

413 Request Entity Too Large

Payload Too Large

415 Unsupported Media Type

Unsupported Media Type

429 Too Many Requests

Too Many Requests OR Limit Exceeded - On reason = Too Many requests one should re-try, for Limit Exceeded that does not help you

500 Internal Server Error

Internal Server Error

504 Gateway Timeout

Gateway Timeout

Unknown error

Response Content-Types: application/json
Response Example (200 OK)
{
  "certainty": "number (double)",
  "Id": "string",
  "dataSourceEntityId": "string",
  "matchTrackingRequestId": "string"
}
Response Example (202 Accepted)
{
  "description": "string",
  "matchRequestTrackingId": "string",
  "AsyncMatchTrackingUntilUTC": "string (date-time)"
}
Response Example (400 Bad Request)
{
  "messages": [
    "string"
  ]
}
Response Example (401 Unauthorized)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (403 Forbidden)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (404 Not Found)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (413 Request Entity Too Large)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (415 Unsupported Media Type)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (429 Too Many Requests)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (500 Internal Server Error)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (504 Gateway Timeout)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (520 )
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}

Pending requests

Retrieve competition matches by the provided parameters

GET /matchrequests/status/{id}
x-api-key: string
in header

(no description)

gs-matching-api-sub-source: string
in header

Sub Source Name

id: string
in path

Contains the id of the pending match request that want to be retrieved. GUID

400 Bad Request

Bad request

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not found

413 Request Entity Too Large

Payload Too Large

415 Unsupported Media Type

Unsupported Media Type

429 Too Many Requests

Too Many Requests OR Limit Exceeded - On reason = Too Many requests one should re-try, for Limit Exceeded that does not help you

500 Internal Server Error

Internal Server Error

504 Gateway Timeout

Gateway Timeout

Unknown error

Response Content-Types: application/json
Response Example (200 OK)
{
  "createdOn": "string (date-time)",
  "matchUntilUtc": "string (date-time)",
  "matchRequestId": "string",
  "entityType": "string",
  "status": "string",
  "id": "string",
  "sourceToNotify": {
    "name": "string",
    "id": "integer (int64)"
  },
  "reason": "string"
}
Response Example (400 Bad Request)
{
  "messages": [
    "string"
  ]
}
Response Example (401 Unauthorized)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (403 Forbidden)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (404 Not Found)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (413 Request Entity Too Large)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (415 Unsupported Media Type)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (429 Too Many Requests)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (500 Internal Server Error)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (504 Gateway Timeout)
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}
Response Example (520 )
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}

Schema Definitions

fixtureMatch: object

certainty: number (double)

The % of the certainty of the match, based on sent criteria. Range from [minCertainty to 100]

Id: string

The Id of the entity on Genius sports side

dataSourceEntityId: string

The ID of the data source's entity. e.g competitonId, teamId, etc.

relatedData: object

Contains name: value pairs for data related to the entity that can used to filter down the results

gender: string
locality: string
startDate: string (date-time)
competition: string
season: string
round: string
venue: string
name: string
aliases: string[]
string
teams: entityRelation

If the fixture is played by team sports, the teams will be linked here.

entityRelation
players: entityRelation

If the fixture is played by single players sports, they will be linked here.

entityRelation
doubles: entityRelation

If the fixture is played in double partnership sports, they will be linked here.

entityRelation
Example
{
  "certainty": "number (double)",
  "Id": "string",
  "dataSourceEntityId": "string",
  "relatedData": {
    "gender": "string",
    "locality": "string",
    "startDate": "string (date-time)",
    "competition": "string",
    "season": "string",
    "round": "string",
    "venue": "string",
    "name": "string",
    "aliases": [
      "string"
    ],
    "teams": [
      {
        "id": "number",
        "name": "string"
      }
    ],
    "players": [
      {
        "id": "number",
        "name": "string"
      }
    ],
    "doubles": [
      {
        "id": "number",
        "name": "string"
      }
    ]
  }
}

gender: string

If sent an EXACT match is made on the enum, excluding all non-matching entities.

roundMatchRequest:

gender: gender
season: season
startDate: string (date)

If sent a round will be searched with similar start date.

endDate: string (date)

If sent a round will be searched with similar end date.

ageCategory: ageCategory
locality: locality
Example
{
  "gender": "string",
  "season": "string",
  "startDate": "string (date)",
  "endDate": "string (date)",
  "ageCategory": "string",
  "locality": "string",
  "name": "string",
  "sport": "string",
  "matchConfig": {
    "minCertainty": "number (double)",
    "dataSourceEntityId": "string",
    "matchTrackingRequestId": "string",
    "matchUntil": "string (date-time)"
  }
}

sportMatch: object

certainty: number (double)

The % of the certainty of the match, based on sent criteria. Range from [minCertainty to 100]

Id: string

The Id of the entity on Genius sports side

dataSourceEntityId: string

The ID of the data source's entity. e.g competitonId, teamId, etc.

relatedData: object

Contains name: value pairs for data related to the entity that can used to filter down the results

name: string
aliases: string[]
string
Example
{
  "certainty": "number (double)",
  "Id": "string",
  "dataSourceEntityId": "string",
  "relatedData": {
    "name": "string",
    "aliases": [
      "string"
    ]
  }
}

baseMatchModel: object

name: string

The name of the entity to be matched to Genius Sports name. Fuzzy matching is executed upon the official Genius Sports name. If this does not return result exact match is attempted on the aliases.

sport: string

If the sport is sent as string name a FUZZY match is made on the value and the similarity score is contributing to the end match score.

locality: locality
matchConfig: object

Sending a model containing the Id of the entity on your side, which will be mapped to our best match, either automatically or manually if needed. If a map already exists, it will be returned as a top score.

minCertainty: number (double) 30 ≤ x ≤ 100

The client can set the minimal % of the match certainty. Default is 70%.

dataSourceEntityId: string

The unique identifier of the entity that the client want to match on his side. Upon succesfull match this Id will be mapped to the Genius Sports Id

matchTrackingRequestId: string

The unique identifier of the request which will be used to track the status of your request and for you to be notified for changes like delete of mapping, remap and others. If empty it will be autogenerated and returned with the response!

matchUntil: string (date-time)

The date and time by which the client needs his request matched manually.

Example
{
  "name": "string",
  "sport": "string",
  "locality": "string",
  "matchConfig": {
    "minCertainty": "number (double)",
    "dataSourceEntityId": "string",
    "matchTrackingRequestId": "string",
    "matchUntil": "string (date-time)"
  }
}

sportMatchHATEOASResultModel: object

page: integer (int32)
pageSize: integer (int32)
totalItems: integer (int64)
items: sportMatch
sportMatch
self: string
previous: string
next: string
first: string
last: string
Example
{
  "page": "integer (int32)",
  "pageSize": "integer (int32)",
  "totalItems": "integer (int64)",
  "items": [
    {
      "certainty": "number (double)",
      "Id": "string",
      "dataSourceEntityId": "string",
      "relatedData": {
        "name": "string",
        "aliases": [
          "string"
        ]
      }
    }
  ],
  "self": "string",
  "previous": "string",
  "next": "string",
  "first": "string",
  "last": "string"
}

personRequest:

gender: gender
birthDate: string (date)

If sent an EXACT match is made on the birthdate, excluding all non-matching entities.

Example
{
  "gender": "string",
  "birthDate": "string (date)",
  "name": "string",
  "sport": "string",
  "locality": "string",
  "matchConfig": {
    "minCertainty": "number (double)",
    "dataSourceEntityId": "string",
    "matchTrackingRequestId": "string",
    "matchUntil": "string (date-time)"
  }
}

playerMatch: object

certainty: number (double)

The % of the certainty of the match, based on sent criteria. Range from [minCertainty to 100]

Id: string

The Id of the entity on Genius sports side

dataSourceEntityId: string

The ID of the data source's entity. e.g competitonId, teamId, etc.

relatedData: object

Contains name: value pairs for data related to the entity that can used to filter down the results

sport: string
gender: string
locality: string
ageCategory: string
birthDate: string
name: string
aliases: string[]
string
Example
{
  "certainty": "number (double)",
  "Id": "string",
  "dataSourceEntityId": "string",
  "relatedData": {
    "sport": "string",
    "gender": "string",
    "locality": "string",
    "ageCategory": "string",
    "birthDate": "string",
    "name": "string",
    "aliases": [
      "string"
    ]
  }
}

competition: string

If the competition is sent as string name a FUZZY match is made on the value and the similarity score is contributing to the end match score.

ageCategory: string

If sent an EXACT match is made on the enum, excluding all non-matching entities.

pendingMatchRequestStatusResponseModel: object

createdOn: string (date-time)
matchUntilUtc: string (date-time)

Shows the time until when the request should be curated.

matchRequestId: string

The id of the request

entityType: string

The type of the requested entity.

status: string

Shows the status of the pending request.

id: string

The Id of the entity on Genius sports side

sourceToNotify: sourceHALEmbededResponse
reason: string

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!

Example
{
  "createdOn": "string (date-time)",
  "matchUntilUtc": "string (date-time)",
  "matchRequestId": "string",
  "entityType": "string",
  "status": "string",
  "id": "string",
  "sourceToNotify": {
    "name": "string",
    "id": "integer (int64)"
  },
  "reason": "string"
}

venueMatch: object

certainty: number (double)

The % of the certainty of the match, based on sent criteria. Range from [minCertainty to 100]

Id: string

The Id of the entity on Genius sports side

dataSourceEntityId: string

The ID of the data source's entity. e.g competitonId, teamId, etc.

relatedData: object

Contains name: value pairs for data related to the entity that can used to filter down the results

locality: string
city: string
parentVenue: string
name: string
aliases: string[]
string
Example
{
  "certainty": "number (double)",
  "Id": "string",
  "dataSourceEntityId": "string",
  "relatedData": {
    "locality": "string",
    "city": "string",
    "parentVenue": "string",
    "name": "string",
    "aliases": [
      "string"
    ]
  }
}

roundMatch: object

certainty: number (double)

The % of the certainty of the match, based on sent criteria. Range from [minCertainty to 100]

Id: string

The Id of the entity on Genius sports side

dataSourceEntityId: string

The ID of the data source's entity. e.g competitonId, teamId, etc.

relatedData: object

Contains name: value pairs for data related to the entity that can used to filter down the results

gender: string
sport: string
season: string
startDate: string
endDate: string
locality: string
ageCategory: string
name: string
aliases: string[]
string
Example
{
  "certainty": "number (double)",
  "Id": "string",
  "dataSourceEntityId": "string",
  "relatedData": {
    "gender": "string",
    "sport": "string",
    "season": "string",
    "startDate": "string",
    "endDate": "string",
    "locality": "string",
    "ageCategory": "string",
    "name": "string",
    "aliases": [
      "string"
    ]
  }
}

teamMatchRequest:

gender: gender
ageCategory: ageCategory
homeVenue: string

If sent а FUZZY match is made on the value and the similarity score is contributing to the end match score.

isNationalTeam: boolean

True for national teams, False for club teams

competition: string

If competition is sent as string name а FUZZY match is made on the value and the similarity score is contributing to the end match score.

Example
{
  "gender": "string",
  "ageCategory": "string",
  "homeVenue": "string",
  "isNationalTeam": "boolean",
  "competition": "string",
  "name": "string",
  "sport": "string",
  "locality": "string",
  "matchConfig": {
    "minCertainty": "number (double)",
    "dataSourceEntityId": "string",
    "matchTrackingRequestId": "string",
    "matchUntil": "string (date-time)"
  }
}

competitionMatchRequest:

gender: gender
ageCategory: ageCategory
locality: locality
Example
{
  "gender": "string",
  "ageCategory": "string",
  "locality": "string",
  "name": "string",
  "sport": "string",
  "matchConfig": {
    "minCertainty": "number (double)",
    "dataSourceEntityId": "string",
    "matchTrackingRequestId": "string",
    "matchUntil": "string (date-time)"
  }
}

personMatchRequest:

team: string

If the team is sent as string name а FUZZY match is made on the value and the similarity score is contributing to the end match score.

Example
{
  "team": "string",
  "gender": "string",
  "birthDate": "string (date)",
  "name": "string",
  "sport": "string",
  "locality": "string",
  "matchConfig": {
    "minCertainty": "number (double)",
    "dataSourceEntityId": "string",
    "matchTrackingRequestId": "string",
    "matchUntil": "string (date-time)"
  }
}

failedMatchResponse: object

description: string

MappedMatch, SingleMatch, NoMatch, MultipleMatchings, Description: MappedMatch - the first of the matches is the official match based on sourceId, SingleMatch - you have found the best non-matched representation of your entity into the genius sports system. You can cache it by making sending a MatchRequest on the same endpoint, NoMatch (You should adjust matching params or make a proposal to Fixtures Platform), MultipleMatchings - we have found more that one matches based on your params, you should send more context in order to get to a single match or interpred the multiple results on your end

matchRequestTrackingId: string

An unique identifier returned only when client have sent MatchConfig containing dataSourceEntityId which internally triggers either automatic or manual mapping from the best Genius Sports Id to the source entity

AsyncMatchTrackingUntilUTC: string (date-time)

Time until request should be matched and time until the match will be saved

Example
{
  "description": "string",
  "matchRequestTrackingId": "string",
  "AsyncMatchTrackingUntilUTC": "string (date-time)"
}

season: string

If the season is sent as string name a FUZZY match is made on the value and the similarity score is contributing to the end match score.

BadRequestModel: object

messages: string[]
string
Example
{
  "messages": [
    "string"
  ]
}

seasonMatch: object

certainty: number (double)

The % of the certainty of the match, based on sent criteria. Range from [minCertainty to 100]

Id: string

The Id of the entity on Genius sports side

dataSourceEntityId: string

The ID of the data source's entity. e.g competitonId, teamId, etc.

relatedData: object

Contains name: value pairs for data related to the entity that can used to filter down the results

gender: string
sport: string
competition: string
startDate: string
endDate: string
locality: string
ageCategory: string
name: string
aliases: string[]
string
Example
{
  "certainty": "number (double)",
  "Id": "string",
  "dataSourceEntityId": "string",
  "relatedData": {
    "gender": "string",
    "sport": "string",
    "competition": "string",
    "startDate": "string",
    "endDate": "string",
    "locality": "string",
    "ageCategory": "string",
    "name": "string",
    "aliases": [
      "string"
    ]
  }
}

venueMatchRequest:

city: string

If sent а FUZZY match is made on the value and the similarity score is contributing to the end match score.

Example
{
  "city": "string",
  "name": "string",
  "sport": "string",
  "locality": "string",
  "matchConfig": {
    "minCertainty": "number (double)",
    "dataSourceEntityId": "string",
    "matchTrackingRequestId": "string",
    "matchUntil": "string (date-time)"
  }
}

teamMatchHATEOASResultModel: object

page: integer (int32)
pageSize: integer (int32)
totalItems: integer (int64)
items: teamMatch
teamMatch
self: string
previous: string
next: string
first: string
last: string
Example
{
  "page": "integer (int32)",
  "pageSize": "integer (int32)",
  "totalItems": "integer (int64)",
  "items": [
    {
      "certainty": "number (double)",
      "Id": "string",
      "dataSourceEntityId": "string",
      "relatedData": {
        "sport": "string",
        "gender": "string",
        "locality": "string",
        "ageCategory": "string",
        "isNationalTeam": "boolean",
        "name": "string",
        "aliases": [
          "string"
        ],
        "homeVenue": "string"
      }
    }
  ],
  "self": "string",
  "previous": "string",
  "next": "string",
  "first": "string",
  "last": "string"
}

doublesMatchRequest:

gender: gender
competition: string

If the competition is sent as string name а FUZZY match is made on the value and the similarity score is contributing to the end match score.

person: string

If the person is sent as string name а FUZZY match is made on the value and the similarity score is contributing to the end match score.

Example
{
  "gender": "string",
  "competition": "string",
  "person": "string",
  "name": "string",
  "sport": "string",
  "locality": "string",
  "matchConfig": {
    "minCertainty": "number (double)",
    "dataSourceEntityId": "string",
    "matchTrackingRequestId": "string",
    "matchUntil": "string (date-time)"
  }
}

sourceHALEmbededResponse: object

name: string
id: integer (int64)
Example
{
  "name": "string",
  "id": "integer (int64)"
}

sportMatchRequest: object

name: string

The name of the entity to be matched to Genius Sports name or the GsId if available. Fuzzy matching is executed upon the official Genius Sports name. If this does not return result exact match is attempted on the aliases.

matchConfig: object

Sending a model containing the Id of the entity on your side, which will be mapped to our best match, either automatically or manually if needed. If a map already exists, it will be returned as a top score.

minCertainty: number (double) 30 ≤ x ≤ 100

The client can set the minimal % of the match certainty. Default is 70%.

dataSourceEntityId: string

The unique identifier of the entity that the client want to match on his side. Upon succesfull match this Id will be mapped to the Genius Sports Id

matchTrackingRequestId: string

The unique identifier of the request which will be used to track the status of your request and for you to be notified for changes like delete of mapping, remap and others. If empty it will be autogenerated and returned with the response!

matchUntil: string (date-time)

The date and time by which the client needs his request matched manually.

Example
{
  "name": "string",
  "matchConfig": {
    "minCertainty": "number (double)",
    "dataSourceEntityId": "string",
    "matchTrackingRequestId": "string",
    "matchUntil": "string (date-time)"
  }
}

localityMatchHATEOASResultModel: object

page: integer (int32)
pageSize: integer (int32)
totalItems: integer (int64)
items: localityMatch
localityMatch
self: string
previous: string
next: string
first: string
last: string
Example
{
  "page": "integer (int32)",
  "pageSize": "integer (int32)",
  "totalItems": "integer (int64)",
  "items": [
    {
      "certainty": "number (double)",
      "Id": "string",
      "dataSourceEntityId": "string",
      "relatedData": {
        "name": "string",
        "aliases": [
          "string"
        ]
      }
    }
  ],
  "self": "string",
  "previous": "string",
  "next": "string",
  "first": "string",
  "last": "string"
}

localityMatch: object

certainty: number (double)

The % of the certainty of the match, based on sent criteria. Range from [minCertainty to 100]

Id: string

The Id of the entity on Genius sports side

dataSourceEntityId: string

The ID of the data source's entity. e.g competitonId, teamId, etc.

relatedData: object

Contains name: value pairs for data related to the entity that can used to filter down the results

name: string
aliases: string[]
string
Example
{
  "certainty": "number (double)",
  "Id": "string",
  "dataSourceEntityId": "string",
  "relatedData": {
    "name": "string",
    "aliases": [
      "string"
    ]
  }
}

locality: string

If sent а FUZZY match is made on the value and the similarity score is contributing to the end match score.

teamMatch: object

certainty: number (double)

The % of the certainty of the match, based on sent criteria. Range from [minCertainty to 100]

Id: string

The Id of the entity on Genius sports side

dataSourceEntityId: string

The ID of the data source's entity. e.g competitonId, teamId, etc.

relatedData: object

Contains name: value pairs for data related to the entity that can used to filter down the results

sport: string
gender: string
locality: string
ageCategory: string
isNationalTeam: boolean
name: string
aliases: string[]
string
homeVenue: string
Example
{
  "certainty": "number (double)",
  "Id": "string",
  "dataSourceEntityId": "string",
  "relatedData": {
    "sport": "string",
    "gender": "string",
    "locality": "string",
    "ageCategory": "string",
    "isNationalTeam": "boolean",
    "name": "string",
    "aliases": [
      "string"
    ],
    "homeVenue": "string"
  }
}

Error: object

reason: string
domain: string
location: string
message: string
Example
{
  "reason": "string",
  "domain": "string",
  "location": "string",
  "message": "string"
}

competitionMatchHATEOASResultModel: object

page: integer (int32)
pageSize: integer (int32)
totalItems: integer (int64)
items: competitionMatch
competitionMatch
self: string
previous: string
next: string
first: string
last: string
Example
{
  "page": "integer (int32)",
  "pageSize": "integer (int32)",
  "totalItems": "integer (int64)",
  "items": [
    {
      "certainty": "number (double)",
      "Id": "string",
      "dataSourceEntityId": "string",
      "relatedData": {
        "gender": "string",
        "sport": "string",
        "locality": "string",
        "ageCategory": "string",
        "name": "string",
        "aliases": [
          "string"
        ]
      }
    }
  ],
  "self": "string",
  "previous": "string",
  "next": "string",
  "first": "string",
  "last": "string"
}

personMatch: object

certainty: number (double)

The % of the certainty of the match, based on sent criteria. Range from [minCertainty to 100]

Id: string

The Id of the entity on Genius sports side

dataSourceEntityId: string

The ID of the data source's entity. e.g competitonId, teamId, etc.

relatedData: object

Contains name: value pairs for data related to the entity that can used to filter down the results

gender: string
locality: string
birthDate: string
name: string
aliases: string[]
string
Example
{
  "certainty": "number (double)",
  "Id": "string",
  "dataSourceEntityId": "string",
  "relatedData": {
    "gender": "string",
    "locality": "string",
    "birthDate": "string",
    "name": "string",
    "aliases": [
      "string"
    ]
  }
}

playerMatchRequest:

competition: string

If the competition is sent as string name а FUZZY match is made on the value and the similarity score is contributing to the end match score.

team: string

Name of any team the player was part of.

position: string

Position of the player in a team if it is part of one.

shirtNumber: string

Shirt number of the player in a team if it is part of one.

Example
{
  "competition": "string",
  "team": "string",
  "position": "string",
  "shirtNumber": "string",
  "gender": "string",
  "birthDate": "string (date)",
  "name": "string",
  "sport": "string",
  "locality": "string",
  "matchConfig": {
    "minCertainty": "number (double)",
    "dataSourceEntityId": "string",
    "matchTrackingRequestId": "string",
    "matchUntil": "string (date-time)"
  }
}

doublesMatch: object

certainty: number (double)

The % of the certainty of the match, based on sent criteria. Range from [minCertainty to 100]

Id: string

The Id of the entity on Genius sports side

dataSourceEntityId: string

The ID of the data source's entity. e.g competitonId, teamId, etc.

relatedData: object

Contains name: value pairs for data related to the entity that can used to filter down the results

sport: string
gender: string
locality: string
name: string
persons: entityRelation

Reference for the genius sports person inside this double partnership.

entityRelation
aliases: string[]
string
Example
{
  "certainty": "number (double)",
  "Id": "string",
  "dataSourceEntityId": "string",
  "relatedData": {
    "sport": "string",
    "gender": "string",
    "locality": "string",
    "name": "string",
    "persons": [
      {
        "id": "number",
        "name": "string"
      }
    ],
    "aliases": [
      "string"
    ]
  }
}

personMatchHATEOASResultModel: object

page: integer (int32)
pageSize: integer (int32)
totalItems: integer (int64)
items: personMatch
personMatch
self: string
previous: string
next: string
first: string
last: string
Example
{
  "page": "integer (int32)",
  "pageSize": "integer (int32)",
  "totalItems": "integer (int64)",
  "items": [
    {
      "certainty": "number (double)",
      "Id": "string",
      "dataSourceEntityId": "string",
      "relatedData": {
        "gender": "string",
        "locality": "string",
        "birthDate": "string",
        "name": "string",
        "aliases": [
          "string"
        ]
      }
    }
  ],
  "self": "string",
  "previous": "string",
  "next": "string",
  "first": "string",
  "last": "string"
}

roundMatchHATEOASResultModel: object

page: integer (int32)
pageSize: integer (int32)
totalItems: integer (int64)
items: roundMatch
roundMatch
self: string
previous: string
next: string
first: string
last: string
Example
{
  "page": "integer (int32)",
  "pageSize": "integer (int32)",
  "totalItems": "integer (int64)",
  "items": [
    {
      "certainty": "number (double)",
      "Id": "string",
      "dataSourceEntityId": "string",
      "relatedData": {
        "gender": "string",
        "sport": "string",
        "season": "string",
        "startDate": "string",
        "endDate": "string",
        "locality": "string",
        "ageCategory": "string",
        "name": "string",
        "aliases": [
          "string"
        ]
      }
    }
  ],
  "self": "string",
  "previous": "string",
  "next": "string",
  "first": "string",
  "last": "string"
}

doublesMatchHATEOASResultModel: object

page: integer (int32)
pageSize: integer (int32)
totalItems: integer (int64)
items: doublesMatch
doublesMatch
self: string
previous: string
next: string
first: string
last: string
Example
{
  "page": "integer (int32)",
  "pageSize": "integer (int32)",
  "totalItems": "integer (int64)",
  "items": [
    {
      "certainty": "number (double)",
      "Id": "string",
      "dataSourceEntityId": "string",
      "relatedData": {
        "sport": "string",
        "gender": "string",
        "locality": "string",
        "name": "string",
        "persons": [
          {
            "id": "number",
            "name": "string"
          }
        ],
        "aliases": [
          "string"
        ]
      }
    }
  ],
  "self": "string",
  "previous": "string",
  "next": "string",
  "first": "string",
  "last": "string"
}

venueMatchHATEOASResultModel: object

page: integer (int32)
pageSize: integer (int32)
totalItems: integer (int64)
items: venueMatch
venueMatch
self: string
previous: string
next: string
first: string
last: string
Example
{
  "page": "integer (int32)",
  "pageSize": "integer (int32)",
  "totalItems": "integer (int64)",
  "items": [
    {
      "certainty": "number (double)",
      "Id": "string",
      "dataSourceEntityId": "string",
      "relatedData": {
        "locality": "string",
        "city": "string",
        "parentVenue": "string",
        "name": "string",
        "aliases": [
          "string"
        ]
      }
    }
  ],
  "self": "string",
  "previous": "string",
  "next": "string",
  "first": "string",
  "last": "string"
}

competitionMatch: object

certainty: number (double)

The % of the certainty of the match, based on sent criteria. Range from [minCertainty to 100]

Id: string

The Id of the entity on Genius sports side

dataSourceEntityId: string

The ID of the data source's entity. e.g competitonId, teamId, etc.

relatedData: object

Contains name: value pairs for data related to the entity that can used to filter down the results

gender: string
sport: string
locality: string
ageCategory: string
name: string
aliases: string[]
string
Example
{
  "certainty": "number (double)",
  "Id": "string",
  "dataSourceEntityId": "string",
  "relatedData": {
    "gender": "string",
    "sport": "string",
    "locality": "string",
    "ageCategory": "string",
    "name": "string",
    "aliases": [
      "string"
    ]
  }
}

matchResultSubsribableModel: object

certainty: number (double)

The % of the certainty of the match, based on sent criteria. Range from [minCertainty to 100]

Id: string

The Id of the entity on Genius sports side

dataSourceEntityId: string

The ID of the data source's entity. e.g competitonId, teamId, etc.

matchTrackingRequestId: string

An unique identifier returned only when client have sent MatchConfig containing dataSourceEntityId which internally triggers either automatic or manual mapping from the best Genius Sports Id to the source entity

Example
{
  "certainty": "number (double)",
  "Id": "string",
  "dataSourceEntityId": "string",
  "matchTrackingRequestId": "string"
}

seasonMatchHATEOASResultModel: object

page: integer (int32)
pageSize: integer (int32)
totalItems: integer (int64)
items: seasonMatch
seasonMatch
self: string
previous: string
next: string
first: string
last: string
Example
{
  "page": "integer (int32)",
  "pageSize": "integer (int32)",
  "totalItems": "integer (int64)",
  "items": [
    {
      "certainty": "number (double)",
      "Id": "string",
      "dataSourceEntityId": "string",
      "relatedData": {
        "gender": "string",
        "sport": "string",
        "competition": "string",
        "startDate": "string",
        "endDate": "string",
        "locality": "string",
        "ageCategory": "string",
        "name": "string",
        "aliases": [
          "string"
        ]
      }
    }
  ],
  "self": "string",
  "previous": "string",
  "next": "string",
  "first": "string",
  "last": "string"
}

fixtureMatchRequest:

gender: gender
ageCategory: ageCategory
startDate: string (date-time)

The start date of the fixture in UTC ISO-8601 format. (yyyy-MM-ddTHH:mmZ)

venue: string

If sent а FUZZY match is made on the value and the similarity score is contributing to the end match score.

competition: string

If competition is sent as string name а FUZZY match is made on the value and the similarity score is contributing to the end match score.

season: string

If season is sent as string name а FUZZY match is made on the value and the similarity score is contributing to the end match score.

round: string

If round is sent as string name а FUZZY match is made on the value and the similarity score is contributing to the end match score.

fixtureCompetitors: string[]

If participating competitors names. e.g Barcelona, RealMadrid etc. This can also accept the Genius Sport Id of the competitor. e.g. Barcelona, 10106

string
Example
{
  "gender": "string",
  "ageCategory": "string",
  "startDate": "string (date-time)",
  "venue": "string",
  "competition": "string",
  "season": "string",
  "round": "string",
  "fixtureCompetitors": [
    "string"
  ],
  "name": "string",
  "sport": "string",
  "locality": "string",
  "matchConfig": {
    "minCertainty": "number (double)",
    "dataSourceEntityId": "string",
    "matchTrackingRequestId": "string",
    "matchUntil": "string (date-time)"
  }
}

localityMatchRequest: object

name: string

The name of the entity to be matched to Genius Sports name, the ISO-3166-1 alpha-3 codes country code or the GsId if available. Fuzzy matching is executed upon the official Genius Sports name. If this does not return result exact match is attempted on the aliases.

matchConfig: object

Sending a model containing the Id of the entity on your side, which will be mapped to our best match, either automatically or manually if needed. If a map already exists, it will be returned as a top score.

minCertainty: number (double) 30 ≤ x ≤ 100

The client can set the minimal % of the match certainty. Default is 70%.

dataSourceEntityId: string

The unique identifier of the entity that the client want to match on his side. Upon succesfull match this Id will be mapped to the Genius Sports Id

matchTrackingRequestId: string

The unique identifier of the request which will be used to track the status of your request and for you to be notified for changes like delete of mapping, remap and others. If empty it will be autogenerated and returned with the response!

matchUntil: string (date-time)

The date and time by which the client needs his request matched manually.

Example
{
  "name": "string",
  "matchConfig": {
    "minCertainty": "number (double)",
    "dataSourceEntityId": "string",
    "matchTrackingRequestId": "string",
    "matchUntil": "string (date-time)"
  }
}

entityRelation: object

id: number
name: string
Example
{
  "id": "number",
  "name": "string"
}

ErrorModel: object

code: integer (int32)
message: string
error: Error
Example
{
  "code": "integer (int32)",
  "message": "string",
  "error": {
    "reason": "string",
    "domain": "string",
    "location": "string",
    "message": "string"
  }
}

fixtureMatchHATEOASResultModel: object

page: integer (int32)
pageSize: integer (int32)
totalItems: integer (int64)
items: fixtureMatch
fixtureMatch
self: string
previous: string
next: string
first: string
last: string
Example
{
  "page": "integer (int32)",
  "pageSize": "integer (int32)",
  "totalItems": "integer (int64)",
  "items": [
    {
      "certainty": "number (double)",
      "Id": "string",
      "dataSourceEntityId": "string",
      "relatedData": {
        "gender": "string",
        "locality": "string",
        "startDate": "string (date-time)",
        "competition": "string",
        "season": "string",
        "round": "string",
        "venue": "string",
        "name": "string",
        "aliases": [
          "string"
        ],
        "teams": [
          {
            "id": "number",
            "name": "string"
          }
        ],
        "players": [
          {
            "id": "number",
            "name": "string"
          }
        ],
        "doubles": [
          {
            "id": "number",
            "name": "string"
          }
        ]
      }
    }
  ],
  "self": "string",
  "previous": "string",
  "next": "string",
  "first": "string",
  "last": "string"
}

playerMatchHATEOASResultModel: object

page: integer (int32)
pageSize: integer (int32)
totalItems: integer (int64)
items: playerMatch
playerMatch
self: string
previous: string
next: string
first: string
last: string
Example
{
  "page": "integer (int32)",
  "pageSize": "integer (int32)",
  "totalItems": "integer (int64)",
  "items": [
    {
      "certainty": "number (double)",
      "Id": "string",
      "dataSourceEntityId": "string",
      "relatedData": {
        "sport": "string",
        "gender": "string",
        "locality": "string",
        "ageCategory": "string",
        "birthDate": "string",
        "name": "string",
        "aliases": [
          "string"
        ]
      }
    }
  ],
  "self": "string",
  "previous": "string",
  "next": "string",
  "first": "string",
  "last": "string"
}

seasonMatchRequest:

gender: gender
competition: competition
startDate: string (date)

If sent a season will be searched with similar start date.

endDate: string (date)

If sent a season will be searched with similar end date.

ageCategory: ageCategory
locality: locality
Example
{
  "gender": "string",
  "competition": "string",
  "startDate": "string (date)",
  "endDate": "string (date)",
  "ageCategory": "string",
  "locality": "string",
  "name": "string",
  "sport": "string",
  "matchConfig": {
    "minCertainty": "number (double)",
    "dataSourceEntityId": "string",
    "matchTrackingRequestId": "string",
    "matchUntil": "string (date-time)"
  }
}