swagger: '2.0' info: description: 'This is Genius Sports Services Fixture API.

Changelog resume

Authentication

You need to provide two tokens in every API call. The access_token for Auth0 client AND your API key

What is new in Fixtures API v2.

Fixture Tree Structure

Examples

I am interested in round 2 fixtures for the English Premier League


I am interested in Arsenal and their players

' version: 2.0.280 title: Fixtures-v2 Competitions competitors/teams API contact: email: sbonboarding@geniussports.com license: name: Apache 2.0 url: http://www.apache.org/licenses/LICENSE-2.0.html host: fixtures.api.geniussports.com basePath: /v2 schemes: - https tags: - name: competitors/teams description: Groups the operations related to competitors of type Team paths: /competitors/teams: get: tags: - competitors/teams summary: Retrieve competitors (teams) by ID/s. MAX 200 per page. description: Returns competitors (teams) wrapped inside a HATEOAS model produces: - application/json parameters: - name: page in: query description: The number of page to be returned. The default value is 1. required: false type: string - name: pageSize in: query description: The size of the page to be returned. The default value is 10. required: false type: string - name: sortBy in: query description: 'The field to ''order by'' by. Descending ordering also allowed. Fields to order by for this endpoint: (id, name, sportId, genderType, localityId, venueId, competitorStatusType)' required: false type: string - name: x-api-key in: header required: true type: string - name: filter in: query description: 'The field to ''filter'' by. Check main description for filter comparators. Fields to filter by for this endpoint: (id, name, sportId, genderType, localityId, venueId, competitorStatusType)' required: false type: string responses: '200': description: successful operation schema: $ref: '#/definitions/TeamCompetitorResponseModelHATEOASReponseModel' headers: Access-Control-Allow-Origin: type: string '520': description: Unknown error schema: $ref: '#/definitions/ErrorModel' '400': description: Bad request schema: $ref: '#/definitions/BadRequestModel' '500': description: Internal Server Error schema: $ref: '#/definitions/ErrorModel' '401': description: Unauthorized schema: $ref: '#/definitions/ErrorModel' '413': description: Payload Too Large schema: $ref: '#/definitions/ErrorModel' '403': description: Forbidden schema: $ref: '#/definitions/ErrorModel' '415': description: Unsupported Media Type schema: $ref: '#/definitions/ErrorModel' '404': description: Not found schema: $ref: '#/definitions/ErrorModel' '504': description: Gateway Timeout schema: $ref: '#/definitions/ErrorModel' '429': description: Too Many Requests OR Limit Exceeded - On reason = Too Many requests one should re-try, for Limit Exceeded that does not help you schema: $ref: '#/definitions/ErrorModel' security: - Auth0: [] - api_key: [] post: tags: - competitors/teams summary: Create new team consumes: - application/json produces: - application/json parameters: - name: x-api-key in: header required: true type: string - name: gs-fixtures-api-sub-source in: header description: Sub Source Name required: false type: string - in: body name: CreateTeamCompetitor required: true schema: $ref: '#/definitions/CreateTeamCompetitor' responses: '520': description: Unknown error schema: $ref: '#/definitions/ErrorModel' '201': description: Created schema: $ref: '#/definitions/TeamCompetitorResponseModel' '400': description: Bad request schema: $ref: '#/definitions/BadRequestModel' '202': description: Accepted schema: $ref: '#/definitions/AcceptedModel' '500': description: Internal Server Error schema: $ref: '#/definitions/ErrorModel' '404': description: Not found schema: $ref: '#/definitions/ErrorModel' '504': description: Gateway Timeout schema: $ref: '#/definitions/ErrorModel' '429': description: Too Many Requests OR Limit Exceeded - On reason = Too Many requests one should re-try, for Limit Exceeded that does not help you schema: $ref: '#/definitions/ErrorModel' '409': description: Conflict, see the response message or the 'geniussports-conflict-id' header to see the ID of the conflict! schema: $ref: '#/definitions/ErrorDuplicateModel' security: - Auth0: [] - api_key: [] put: tags: - competitors/teams summary: Update existing team consumes: - application/json produces: - application/json parameters: - name: x-api-key in: header required: true type: string - name: gs-fixtures-api-sub-source in: header description: Sub Source Name required: false type: string - in: body name: UpdateTeamCompetitor required: true schema: $ref: '#/definitions/UpdateTeamCompetitor' responses: '200': description: Success schema: $ref: '#/definitions/TeamCompetitorResponseModel' '520': description: Unknown error schema: $ref: '#/definitions/ErrorModel' '400': description: Bad request schema: $ref: '#/definitions/BadRequestModel' '202': description: Accepted schema: $ref: '#/definitions/AcceptedModel' '500': description: Internal Server Error schema: $ref: '#/definitions/ErrorModel' '404': description: Not found schema: $ref: '#/definitions/ErrorModel' '504': description: Gateway Timeout schema: $ref: '#/definitions/ErrorModel' '409': description: Conflict, see the response message or the 'geniussports-conflict-id' header to see the ID of the conflict! schema: $ref: '#/definitions/ErrorDuplicateModel' security: - Auth0: [] - api_key: [] /competitors/teams/{id}: get: tags: - competitors/teams summary: Retrieve competitors (teams) details by ID. description: Returns competitors (teams) details including sport specific details (metadata properties) produces: - application/json parameters: - name: x-api-key in: header required: true type: string - name: id in: path description: Single competitors (teams) ID to return details for required: true type: string responses: '200': description: successful operation schema: $ref: '#/definitions/TeamCompetitorResponseModel' headers: Access-Control-Allow-Origin: type: string '520': description: Unknown error schema: $ref: '#/definitions/ErrorModel' '400': description: Bad request schema: $ref: '#/definitions/BadRequestModel' '202': description: Accepted schema: $ref: '#/definitions/AcceptedModel' '500': description: Internal Server Error schema: $ref: '#/definitions/ErrorModel' '401': description: Unauthorized schema: $ref: '#/definitions/ErrorModel' '413': description: Payload Too Large schema: $ref: '#/definitions/ErrorModel' '403': description: Forbidden schema: $ref: '#/definitions/ErrorModel' '415': description: Unsupported Media Type schema: $ref: '#/definitions/ErrorModel' '404': description: Not found schema: $ref: '#/definitions/ErrorModel' '504': description: Gateway Timeout schema: $ref: '#/definitions/ErrorModel' '429': description: Too Many Requests OR Limit Exceeded - On reason = Too Many requests one should re-try, for Limit Exceeded that does not help you schema: $ref: '#/definitions/ErrorModel' security: - Auth0: [] - api_key: [] /competitors/teams/{id}/rounds: get: tags: - competitors/teams summary: Retrieve rounds in which the Team will take part by Team ID/s. MAX 200 per page. description: Returns the rounds in which the team will take part by GSS Team Id in the path, wrapped inside a HATEOAS model produces: - application/json parameters: - name: page in: query description: The number of page to be returned. The default value is 1. required: false type: string - name: pageSize in: query description: The size of the page to be returned. The default value is 10. required: false type: string - name: sortBy in: query description: 'The field to ''order by'' by. Descending ordering also allowed. Fields to order by for this endpoint: (id, name)' required: false type: string - name: x-api-key in: header required: true type: string - name: filter in: query description: 'The field to ''filter'' by. Check main description for filter comparators. Fields to filter by for this endpoint: (id, name, isactive (default = true))' required: false type: string - name: id in: path description: Single competitors (teams) ID to return details for required: true type: string responses: '200': description: successful operation schema: $ref: '#/definitions/CompetitorRoundsResponseModelHATEOASReponseModel' headers: Access-Control-Allow-Origin: type: string '520': description: Unknown error schema: $ref: '#/definitions/ErrorModel' '400': description: Bad request schema: $ref: '#/definitions/BadRequestModel' '500': description: Internal Server Error schema: $ref: '#/definitions/ErrorModel' '401': description: Unauthorized schema: $ref: '#/definitions/ErrorModel' '413': description: Payload Too Large schema: $ref: '#/definitions/ErrorModel' '403': description: Forbidden schema: $ref: '#/definitions/ErrorModel' '415': description: Unsupported Media Type schema: $ref: '#/definitions/ErrorModel' '404': description: Not found schema: $ref: '#/definitions/ErrorModel' '504': description: Gateway Timeout schema: $ref: '#/definitions/ErrorModel' '429': description: Too Many Requests OR Limit Exceeded - On reason = Too Many requests one should re-try, for Limit Exceeded that does not help you schema: $ref: '#/definitions/ErrorModel' security: - Auth0: [] - api_key: [] /competitors/teams/{id}/seasons: get: tags: - competitors/teams summary: Retrieve seasons in which the Team will take part by Team ID/s. MAX 200 per page. description: Returns the seasons in which the team will take part by GSS Team Id in the path, wrapped inside a HATEOAS model produces: - application/json parameters: - name: page in: query description: The number of page to be returned. The default value is 1. required: false type: string - name: pageSize in: query description: The size of the page to be returned. The default value is 10. required: false type: string - name: sortBy in: query description: 'The field to ''order by'' by. Descending ordering also allowed. Fields to order by for this endpoint: (id, name)' required: false type: string - name: x-api-key in: header required: true type: string - name: filter in: query description: 'The field to ''filter'' by. Check main description for filter comparators. Fields to filter by for this endpoint: (id, name, isactive (default = true))' required: false type: string - name: id in: path description: Single competitors (teams) ID to return details for required: true type: string responses: '200': description: successful operation schema: $ref: '#/definitions/CompetitorSeasonsResponseModelHATEOASReponseModel' headers: Access-Control-Allow-Origin: type: string '520': description: Unknown error schema: $ref: '#/definitions/ErrorModel' '400': description: Bad request schema: $ref: '#/definitions/BadRequestModel' '500': description: Internal Server Error schema: $ref: '#/definitions/ErrorModel' '401': description: Unauthorized schema: $ref: '#/definitions/ErrorModel' '413': description: Payload Too Large schema: $ref: '#/definitions/ErrorModel' '403': description: Forbidden schema: $ref: '#/definitions/ErrorModel' '415': description: Unsupported Media Type schema: $ref: '#/definitions/ErrorModel' '404': description: Not found schema: $ref: '#/definitions/ErrorModel' '504': description: Gateway Timeout schema: $ref: '#/definitions/ErrorModel' '429': description: Too Many Requests OR Limit Exceeded - On reason = Too Many requests one should re-try, for Limit Exceeded that does not help you schema: $ref: '#/definitions/ErrorModel' security: - Auth0: [] - api_key: [] definitions: Error: type: object required: - domain - message - reason properties: reason: type: string domain: type: string locationType: type: string location: type: string message: type: string CompetitorStatusType: type: integer title: Competitor Status Type format: int32 description: 'This property defines the possible status types which can be set as integer values. Each integer value is associated with relevant status type as follows: 0 - Active; 1 - Retired; 2 - Unattached.' enum: - '0' - '1' - '2' CompetitorRoundsResponseModel: type: object required: - genderType - id - name - ref properties: id: type: integer format: int64 description: Id of the round name: type: string description: Name of the round ref: type: string description: Endpoint to round genderType: type: string description: Gender of the competitor locality: $ref: '#/definitions/HALEmbededResponse' TeamCompetitorResponseModel: type: object required: - competitorStatusType - createdOn - genderType - id - name - sport - updatesCount properties: id: type: integer format: int64 createdOn: type: string format: date-time modifiedOn: type: string format: date-time updatesCount: type: integer format: int32 metadataProperties: type: array description: In order to retrieve allowed metadata properties with their values execute get request on this path - /sports/{id}/competitor/metadata items: $ref: '#/definitions/JsonbModel' externalIds: $ref: '#/definitions/ExternalIdsViewModel' name: type: string abbreviation: type: string sport: $ref: '#/definitions/HALEmbededResponse' genderType: type: string description: Undefined, Male, Female, Mixed. ageCategory: $ref: '#/definitions/ageCategory' locality: $ref: '#/definitions/HALEmbededResponse' competitorStatusType: type: string description: Active, Retired, Unattached venue: $ref: '#/definitions/HALEmbededResponse' isProtected: type: boolean description: Whether the competitor is protected or not. BadRequestModel: type: object properties: messages: type: array items: type: string GenderType: type: integer title: Gender Type format: int32 description: 'This property defines the possible gender types which can be set as integer values. Each integer value is associated with relevant gender type as follows: 0 - Undefined; 1 - Male; 2 - Female; 3 - Mixed.' enum: - '0' - '1' - '2' - '3' ExternalIdsViewModel: type: object properties: optaId: type: string optaLegacyId: type: string fibaId: type: string vesselId: type: string statsEngineId: type: string description: External system identifiers. Key represents the external system name (e.g., 'optaId', 'optaLegacyId', 'fibaId', 'vesselId','statsEngineId'), value represents the identifier. The property also allows filtering by specific external system identifiers. For example '?filter=externalIds.optaId[equals]:12345' to filter entities with a specific Opta ID. ErrorModel: type: object properties: code: type: integer format: int32 message: type: string error: $ref: '#/definitions/Error' CompetitorSeasonsResponseModelHATEOASReponseModel: type: object properties: page: type: integer format: int32 pageSize: type: integer format: int32 totalItems: type: integer format: int64 items: type: array items: $ref: '#/definitions/CompetitorSeasonsResponseModel' self: type: string previous: type: string next: type: string first: type: string last: type: string AcceptedModel: type: object properties: messages: type: array items: type: string ageCategory: type: string title: Age Category description: 'Default is Senior. One of: U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, Senior' CompetitorRoundsResponseModelHATEOASReponseModel: type: object properties: page: type: integer format: int32 pageSize: type: integer format: int32 totalItems: type: integer format: int64 items: type: array items: $ref: '#/definitions/CompetitorRoundsResponseModel' self: type: string previous: type: string next: type: string first: type: string last: type: string TeamCompetitorResponseModelHATEOASReponseModel: type: object properties: page: type: integer format: int32 pageSize: type: integer format: int32 totalItems: type: integer format: int64 items: type: array items: $ref: '#/definitions/TeamCompetitorResponseModel' self: type: string previous: type: string next: type: string first: type: string last: type: string HALEmbededResponse: type: object required: - id - name - ref properties: id: type: integer format: int64 name: type: string externalIds: $ref: '#/definitions/ExternalIdsViewModel' ref: type: string CompetitorSeasonsResponseModel: type: object required: - id - name - ref properties: id: type: integer format: int64 description: Id of the season name: type: string description: Name of the season ref: type: string description: Endpoint to season JsonbModelViewModel: type: object required: - name properties: name: type: string description: Name of the property. title: Property name value: type: string description: Value of the property. title: Property value title: Create/Update Property Model description: This model should be used to create or update single property value for specific property name for specific model. ErrorDuplicateModel: type: object properties: messages: type: array items: type: string geniusSportsConflictId: type: string description: This is the official genius sports ID, which you have conflict with. JsonbModel: type: object properties: name: type: string value: type: string isDeleted: type: boolean CreateTeamCompetitor: type: object required: - genderType - localityId - name - sportId properties: name: type: string description: The name of the competitor. It must be unique for the provided sport, locality, gender and type! It must contain Women as name postfix when competitor is of CompetitorType Team (0) and gender is Female (2)! In any other case the Women postfix is forbidden! title: Competitor name maxLength: 50 abbreviation: type: string description: An abbreviation for the competitor title: Competitor abbreviation maxLength: 125 localityId: type: integer format: int64 description: Id of the country,virtual place, etc. of the competitor! title: Locality Id venueId: type: integer format: int64 description: Id of the home venue of the competitor. The venue must be associated with the same sport as the competitor! title: Venue Id sportId: type: integer format: int64 description: Id of the sport to which the competitor will be associated. This id will restrict the possible metadataProperties and values which can be set to the competitor! Also it will restrict the competitors, rounds, fixtures and seasons associated with this competitor to be only for this sport! title: Sport Id genderType: $ref: '#/definitions/GenderType' ageCategory: $ref: '#/definitions/ageCategory' metadataProperties: type: array description: In order to retrieve allowed metadata properties with their values execute get request on this path - /sports/{id}/competitor/metadata items: $ref: '#/definitions/JsonbModelViewModel' UpdateTeamCompetitor: type: object required: - competitorStatusType - id - localityId - name properties: id: type: integer format: int64 name: type: string description: The name of the competitor. It must be unique for the provided sport, locality, gender and type! It must contain Women as name postfix when competitor is of CompetitorType Team (0) and gender is Female (2)! In any other case the Women postfix is forbidden! title: Competitor name maxLength: 50 abbreviation: type: string description: An abbreviation for the competitor title: Competitor sabbreviation maxLength: 125 localityId: type: integer format: int64 description: Id of the country,virtual place, etc. of the competitor! title: Locality Id venueId: type: integer format: int64 description: Id of the home venue of the competitor. The venue must be associated with the same sport as the competitor! title: Venue Id competitorStatusType: $ref: '#/definitions/CompetitorStatusType' metadataProperties: type: array description: In order to retrieve allowed metadata properties with their values execute get request on this path - /sports/{id}/competitor/metadata items: $ref: '#/definitions/JsonbModelViewModel' securityDefinitions: Auth0: type: apiKey name: Authorization in: header x-amazon-apigateway-authtype: oauth2 api_key: type: apiKey name: x-api-key in: header x-amazon-apigateway-security-policy: TLS_1_0