swagger: '2.0'
info:
description: 'This is Genius Sports Services Fixture API.
Changelog resume
- 2.0.261 - Ability to filter by WELL-KNOWN external system identifiers e.g optaId, vesselId, fibaId, etc.
- 2.0.196 - Added the ability to retrieve deleted fixtures
- 2.0.193 - Expose outright fixtures with an extra query param (eventTypes) on GET and (eventType) on GetById for fixtures.
- 2.0.107 - Made fixtures round optional for POST and PUT.
Authentication
You need to provide two tokens in every API call. The access_token for Auth0 client AND your API key
- In order to get Auth0 client and API-KEY contact the SBOT team.
- Once you have the client you can make a request to Auth0 to get a token by:
curl --request POST --url https://{env or nothing for prod}.auth.geniussports.com/oauth/token --header ''content-type: application/json'' --data ''{''client_id'':''4Ew9c8DX58O1i0zsrTW9DlLSlDg9Rrt7'',''client_secret'':''client-secret'',''audience'':''https://api.geniussports.com'',''grant_type'':''client_credentials''}'' - Once you the get the response you would need to take the value from the ''access_token'' property. At this point you are ready to get started!
-
- Use the sports/10 call to retrieve Football (sport ID = 10)
curl https://{env or nothing for prod}fixtures.api.geniussports.com/v2/sports?filter=id[equals]:10 -H ''Content-Type: application/json'' -H ''x-api-key: YOUR_API_KEY'' -H ''Authorization: Bearer YOUR_ACCESS_TOKEN''
What is new in Fixtures API v2.
- Consistent pagination with up to 200 items per page
- Consistent response using HATEOAS model wrapper (when listing items)
- Sorting by specific field(s) (see each endpoint details for fore info, about which fields you can sort by)
- in order to sort just pass ''sortBy'' query param, example: sortBy=id
- then by sorting, example: sortBy=id,name
- sort by descending: example: sortBy=id:desc,name
- Powerful filter by specific field (see each endpoint details for fore info, about which fields you can filter by)
- in order to filter just pass ''filter'' query param, example: filter=id[equals]:1
- multiple IDs filtering, example: filter=id[in]:1,2,3
- Filter stacking (separate them with ~), example: filter=id[in]:1,2,3~sportId[in]:1,2,3,4,5
- different filter comparators: equals, in, gte, lte, contains, startsWith, notequals, nin:
- filter=id[equals]:1 - Equals comparator works with all data type
- filter=id[notequals]:1 - Not Equals comparator works with all data type
- filter=id[in]:1,2,3 - In comparator works only with integer and decimal values
- filter=id[nin]:1,2,3 - NIN comparator works only with integer and decimal values
- filter=startDate[gte]:2021-07-28~startDate[lte]:2021-07-29 - duplications of filter property allowed only in this ''range'' case
- filter=name[contains]:test
- filter=name[startsWith]:test
- filter=cityName[equals]:null
- filter=cityName[notequals]:null
- Filter by external id. Filter works only the Fixtures system has external provider and have explicitly allowed persisting external ids fir tat source. example: filter=externalIds.optaId[equals]:12345
- Imporoved and consistent structure of the API endpoints
- Each endpoint (which needs) from the hierarchy has exactly 2 endpoints:
- One for listing multiple items - the filtering sorting are implemented by query params
- One for single item by id
- No deleted fixtures by default
- Does not use SpoCoSy database (Party), but the Proposal API database (therefore there is Eventual consistency, and not everything is available right away)
Fixture Tree Structure
- organisations
- venue
- locality
- sports
- competitions
- seasons
- rounds (competitionPhase)
- fixture
- fixturecompetitors
- competitor (team, player, doubles, horse, etc)
Examples
I am interested in round 2 fixtures for the English Premier League
- Use sports call to retrieve the relevant sport ID - in this case ID 10 for Football
curl https://ci.fixtures.api.geniussports.com/v2/sports -H ''Content-Type: application/json'' -H ''x-api-key: YOUR_API_KEY'' -H ''Authorization: Bearer YOUR_ID_TOKEN'' - Use competitions call to see competitions for your sport - in this case ID 36 for ''England Premier League''
curl https://ci.fixtures.api.geniussports.com/v2/competitions?filter=sportId[equals]:10~name[contains]:Premier -H ''Content-Type: application/json'' -H ''x-api-key: YOUR_API_KEY'' -H ''Authorization: Bearer YOUR_ID_TOKEN'' - Use seasons call to see seasons for your competition - in this case you will see the 2017/2018 season as ID 64525
curl https://ci.fixtures.api.geniussports.com/v2/seasons?filter=competitionId[equals]:36 -H ''Content-Type: application/json'' -H ''x-api-key: YOUR_API_KEY'' -H ''Authorization: Bearer YOUR_ID_TOKEN'' - Use rounds call to see rounds for your season - Find Round 2 with ID 338088
curl https://ci.fixtures.api.geniussports.com/v2/rounds?filter=seasonId[equals]:64525 -H ''Content-Type: application/json'' -H ''x-api-key: YOUR_API_KEY'' -H ''Authorization: Bearer YOUR_ID_TOKEN'' - Use fixtures call to get all fixtures we have for Round 2
curl https://ci.fixtures.api.geniussports.com/v2/fixtures?filter=roundId[equals]:338088 -H ''Content-Type: application/json'' -H ''x-api-key: YOUR_API_KEY'' -H ''Authorization: Bearer YOUR_ID_TOKEN''
I am interested in Arsenal and their players
- You can re-use the 2017/2018 EPL season ID from the example above, ID 64525 to get Season Details
curl https://ci.fixtures.api.geniussports.com/v2/seasons/64525 - ''Content-Type: application/json'' -H ''x-api-key: YOUR_API_KEY'' -H ''Authorization: Bearer YOUR_ID_TOKEN'' - Find Arsenal in the response with competitor ID 10025 and use this ID to get all Arsenal contracts
curl https://ci.fixtures.api.geniussports.com/v2/competitors/teams/10025 -H ''Content-Type: application/json'' -H ''x-api-key: YOUR_API_KEY'' -H ''Authorization: Bearer YOUR_ID_TOKEN''
'
version: 2.0.280
title: Fixtures-v2 Competitions Ingestion 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: Ingestion
paths:
/ingestion/competitions/searchById:
options:
consumes:
- application/json
produces:
- application/json
responses:
'200':
description: 200 response
schema:
$ref: '#/definitions/Empty'
headers:
Access-Control-Allow-Origin:
type: string
Access-Control-Allow-Methods:
type: string
Access-Control-Allow-Headers:
type: string
tags:
- Ingestion
get:
tags:
- Ingestion
summary: Search for ingestion proposals by competition Id.
description: Search for ingestion proposals by competition Id.
produces:
- application/json
parameters:
- name: onlyOwned
in: query
description: Indicates whether proposals from other sources should be included.
required: false
type: string
- name: gs-fixtures-api-sub-source
in: header
description: Sub Source Name
required: false
type: string
- name: ids
in: query
description: A list of competition Ids
required: true
type: string
- name: x-api-key
in: header
required: true
type: string
responses:
'200':
description: successful operation
schema:
$ref: '#/definitions/ArrayOfproposalCompetition'
headers:
Access-Control-Allow-Origin:
type: string
'520':
description: Unknown error
schema:
$ref: '#/definitions/ErrorModel'
'400':
description: Bad request
schema:
$ref: '#/definitions/BadRequestModel'
'301':
description: redirect operation
headers:
Location:
type: string
'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: []
/ingestion/competitions/searchBySourceEntityId:
options:
consumes:
- application/json
produces:
- application/json
responses:
'200':
description: 200 response
schema:
$ref: '#/definitions/Empty'
headers:
Access-Control-Allow-Origin:
type: string
Access-Control-Allow-Methods:
type: string
Access-Control-Allow-Headers:
type: string
tags:
- Ingestion
get:
tags:
- Ingestion
summary: Search for ingestion proposals by source entity Id.
description: Search for ingestion proposals by source entity Id.
produces:
- application/json
parameters:
- name: gs-fixtures-api-sub-source
in: header
description: Sub Source Name
required: false
type: string
- name: sourceEntityIds
in: query
description: A list of source entity Ids
required: true
type: string
- name: x-api-key
in: header
required: true
type: string
- name: source
in: query
description: The source that ingested the proposals.
required: false
type: string
responses:
'200':
description: successful operation
schema:
$ref: '#/definitions/ArrayOfproposalCompetition'
headers:
Access-Control-Allow-Origin:
type: string
'520':
description: Unknown error
schema:
$ref: '#/definitions/ErrorModel'
'400':
description: Bad request
schema:
$ref: '#/definitions/BadRequestModel'
'301':
description: redirect operation
headers:
Location:
type: string
'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: []
/ingestion/competitions/{trackingRequestId}/status:
options:
consumes:
- application/json
produces:
- application/json
parameters:
- name: trackingRequestId
in: path
required: true
type: string
responses:
'200':
description: 200 response
schema:
$ref: '#/definitions/Empty'
headers:
Access-Control-Allow-Origin:
type: string
Access-Control-Allow-Methods:
type: string
Access-Control-Allow-Headers:
type: string
tags:
- Ingestion
get:
tags:
- Ingestion
summary: Tracking the progress of the asynchronous execution.
description: Returns the current state of the ingestion request
produces:
- application/json
parameters:
- name: x-api-key
in: header
required: true
type: string
- name: trackingRequestId
in: path
description: GUID returned from an ingestion request
required: true
type: string
responses:
'200':
description: successful operation
schema:
$ref: '#/definitions/competitionTrackingStatusResponse'
headers:
Access-Control-Allow-Origin:
type: string
'520':
description: Unknown error
schema:
$ref: '#/definitions/ErrorModel'
'400':
description: Bad request
schema:
$ref: '#/definitions/BadRequestModel'
'301':
description: redirect operation
headers:
Location:
type: string
'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: []
/ingestion/fixtures/searchById:
options:
consumes:
- application/json
produces:
- application/json
responses:
'200':
description: 200 response
schema:
$ref: '#/definitions/Empty'
headers:
Access-Control-Allow-Origin:
type: string
Access-Control-Allow-Methods:
type: string
Access-Control-Allow-Headers:
type: string
tags:
- Ingestion
get:
tags:
- Ingestion
summary: Search for ingestion proposals by fixture Id.
description: Search for ingestion proposals by fixture Id.
produces:
- application/json
parameters:
- name: onlyOwned
in: query
description: Indicates whether proposals from other sources should be included.
required: false
type: string
- name: gs-fixtures-api-sub-source
in: header
description: Sub Source Name
required: false
type: string
- name: ids
in: query
description: A list of fixture Ids
required: true
type: string
- name: x-api-key
in: header
required: true
type: string
responses:
'200':
description: successful operation
schema:
$ref: '#/definitions/ArrayOfproposalFixture'
headers:
Access-Control-Allow-Origin:
type: string
'520':
description: Unknown error
schema:
$ref: '#/definitions/ErrorModel'
'400':
description: Bad request
schema:
$ref: '#/definitions/BadRequestModel'
'301':
description: redirect operation
headers:
Location:
type: string
'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: []
/ingestion/fixtures/searchBySourceEntityId:
options:
consumes:
- application/json
produces:
- application/json
responses:
'200':
description: 200 response
schema:
$ref: '#/definitions/Empty'
headers:
Access-Control-Allow-Origin:
type: string
Access-Control-Allow-Methods:
type: string
Access-Control-Allow-Headers:
type: string
tags:
- Ingestion
get:
tags:
- Ingestion
summary: Search for ingestion proposals by source entity Id.
description: Search for ingestion proposals by source entity Id.
produces:
- application/json
parameters:
- name: gs-fixtures-api-sub-source
in: header
description: Sub Source Name
required: false
type: string
- name: sourceEntityIds
in: query
description: A list of source entity Ids
required: true
type: string
- name: x-api-key
in: header
required: true
type: string
- name: source
in: query
description: The source that ingested the proposals.
required: false
type: string
responses:
'200':
description: successful operation
schema:
$ref: '#/definitions/ArrayOfproposalFixture'
headers:
Access-Control-Allow-Origin:
type: string
'520':
description: Unknown error
schema:
$ref: '#/definitions/ErrorModel'
'400':
description: Bad request
schema:
$ref: '#/definitions/BadRequestModel'
'301':
description: redirect operation
headers:
Location:
type: string
'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: []
/ingestion/fixtures/{trackingRequestId}/status:
options:
consumes:
- application/json
produces:
- application/json
parameters:
- name: trackingRequestId
in: path
required: true
type: string
responses:
'200':
description: 200 response
schema:
$ref: '#/definitions/Empty'
headers:
Access-Control-Allow-Origin:
type: string
Access-Control-Allow-Methods:
type: string
Access-Control-Allow-Headers:
type: string
tags:
- Ingestion
get:
tags:
- Ingestion
summary: Tracking the progress of the asynchronous execution.
description: Returns the current state of the ingestion request
produces:
- application/json
parameters:
- name: x-api-key
in: header
required: true
type: string
- name: trackingRequestId
in: path
description: GUID returned from an ingestion request
required: true
type: string
responses:
'200':
description: successful operation
schema:
$ref: '#/definitions/fixtureTrackingStatusResponse'
headers:
Access-Control-Allow-Origin:
type: string
'520':
description: Unknown error
schema:
$ref: '#/definitions/ErrorModel'
'400':
description: Bad request
schema:
$ref: '#/definitions/BadRequestModel'
'301':
description: redirect operation
headers:
Location:
type: string
'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: []
/ingestion/squads/searchById:
options:
consumes:
- application/json
produces:
- application/json
responses:
'200':
description: 200 response
schema:
$ref: '#/definitions/Empty'
headers:
Access-Control-Allow-Origin:
type: string
Access-Control-Allow-Methods:
type: string
Access-Control-Allow-Headers:
type: string
tags:
- Ingestion
get:
tags:
- Ingestion
summary: Search for ingestion proposals by squad Id.
description: Search for ingestion proposals by squad Id.
produces:
- application/json
parameters:
- name: onlyOwned
in: query
description: Indicates whether proposals from other sources should be included.
required: false
type: string
- name: gs-fixtures-api-sub-source
in: header
description: Sub Source Name
required: false
type: string
- name: ids
in: query
description: A list of squad Ids
required: true
type: string
- name: x-api-key
in: header
required: true
type: string
responses:
'200':
description: successful operation
schema:
$ref: '#/definitions/ArrayOfproposalSquad'
headers:
Access-Control-Allow-Origin:
type: string
'520':
description: Unknown error
schema:
$ref: '#/definitions/ErrorModel'
'400':
description: Bad request
schema:
$ref: '#/definitions/BadRequestModel'
'301':
description: redirect operation
headers:
Location:
type: string
'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: []
/ingestion/squads/searchBySourceEntityId:
options:
consumes:
- application/json
produces:
- application/json
responses:
'200':
description: 200 response
schema:
$ref: '#/definitions/Empty'
headers:
Access-Control-Allow-Origin:
type: string
Access-Control-Allow-Methods:
type: string
Access-Control-Allow-Headers:
type: string
tags:
- Ingestion
get:
tags:
- Ingestion
summary: Search for ingestion proposals by source entity Id.
description: Search for ingestion proposals by source entity Id.
produces:
- application/json
parameters:
- name: gs-fixtures-api-sub-source
in: header
description: Sub Source Name
required: false
type: string
- name: sourceEntityIds
in: query
description: A list of source entity Ids
required: true
type: string
- name: x-api-key
in: header
required: true
type: string
- name: source
in: query
description: The source that ingested the proposals.
required: false
type: string
responses:
'200':
description: successful operation
schema:
$ref: '#/definitions/ArrayOfproposalSquad'
headers:
Access-Control-Allow-Origin:
type: string
'520':
description: Unknown error
schema:
$ref: '#/definitions/ErrorModel'
'400':
description: Bad request
schema:
$ref: '#/definitions/BadRequestModel'
'301':
description: redirect operation
headers:
Location:
type: string
'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: []
/ingestion/squads/{trackingRequestId}/status:
options:
consumes:
- application/json
produces:
- application/json
parameters:
- name: trackingRequestId
in: path
required: true
type: string
responses:
'200':
description: 200 response
schema:
$ref: '#/definitions/Empty'
headers:
Access-Control-Allow-Origin:
type: string
Access-Control-Allow-Methods:
type: string
Access-Control-Allow-Headers:
type: string
tags:
- Ingestion
get:
tags:
- Ingestion
summary: Tracking the progress of the asynchronous execution.
description: Returns the current state of the ingestion request
produces:
- application/json
parameters:
- name: x-api-key
in: header
required: true
type: string
- name: trackingRequestId
in: path
description: GUID returned from an ingestion request
required: true
type: string
responses:
'200':
description: successful operation
schema:
$ref: '#/definitions/squadTrackingStatusResponse'
headers:
Access-Control-Allow-Origin:
type: string
'520':
description: Unknown error
schema:
$ref: '#/definitions/ErrorModel'
'400':
description: Bad request
schema:
$ref: '#/definitions/BadRequestModel'
'301':
description: redirect operation
headers:
Location:
type: string
'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: []
/ingestion/competitions:
post:
tags:
- Ingestion
summary: Ingest competition data for update or create
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: competitionIngestion
required: true
schema:
$ref: '#/definitions/competitionIngestion'
responses:
'520':
description: Unknown error
schema:
$ref: '#/definitions/ErrorModel'
'400':
description: Bad request
schema:
$ref: '#/definitions/BadRequestModel'
'202':
description: Accepted
schema:
$ref: '#/definitions/trackingRequestModel'
'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'
security:
- Auth0: []
- api_key: []
/ingestion/fixtures:
post:
tags:
- Ingestion
summary: Ingest fixture data for update or create
description: 'Ingesting competitors requires indicating the competitor type. There are 3 options: Specify competitionType on competition level. Specify competitorType on competitor level. Include one of the teamPropertiesModel/playerPropertiesModel/doublesPropertiesModel fields on a competitor level.'
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: fixtureIngestion
required: true
schema:
$ref: '#/definitions/fixtureIngestion'
responses:
'520':
description: Unknown error
schema:
$ref: '#/definitions/ErrorModel'
'400':
description: Bad request
schema:
$ref: '#/definitions/BadRequestModel'
'202':
description: Accepted
schema:
$ref: '#/definitions/trackingRequestModel'
'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'
security:
- Auth0: []
- api_key: []
patch:
tags:
- Ingestion
summary: Patch existing fixture request. Currently support only lineups patch by sourceEntityId of the fixture.
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: fixtureIngestionPatch
required: true
schema:
$ref: '#/definitions/fixtureIngestionPatch'
responses:
'520':
description: Unknown error
schema:
$ref: '#/definitions/ErrorModel'
'400':
description: Bad request
schema:
$ref: '#/definitions/BadRequestModel'
'202':
description: Accepted
schema:
$ref: '#/definitions/trackingRequestModel'
'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'
security:
- Auth0: []
- api_key: []
/ingestion/squads:
post:
tags:
- Ingestion
summary: Ingest team squad players data for update or create
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: squadIngestion
required: true
schema:
$ref: '#/definitions/squadIngestion'
responses:
'520':
description: Unknown error
schema:
$ref: '#/definitions/ErrorModel'
'400':
description: Bad request
schema:
$ref: '#/definitions/BadRequestModel'
'202':
description: Accepted
schema:
$ref: '#/definitions/trackingRequestModel'
'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'
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
fixtureMatchModel:
allOf:
- $ref: '#/definitions/baseMatchModel'
- properties:
startDate:
type: string
format: date-time
description: The start date of the fixture in UTC ISO-8601 format. (yyyy-MM-ddTHH:mmZ)
title: Start Date
startDateUnreliable:
type: boolean
description: Whether the start date is unreliable or not. If true, the start date is not reliable and it will be ignored for updates.
title: Start Date Unreliable
locality:
$ref: '#/definitions/locality'
eventStatus:
type: string
description: Notstarted, Inprogress, Finished, Cancelled, Postponed.
sportSpecificRules:
$ref: '#/definitions/sportSpecificRules'
matchNumber:
type: string
atNeutralVenue:
type: boolean
coverageData:
type: object
properties:
type:
type: string
description: The coverage source.
liveData:
type: boolean
description: Whether the entity has live data coverage.
liveVideo:
type: boolean
description: Whether the entity has live video coverage.
officialReadonlyResponseModel:
allOf:
- $ref: '#/definitions/baseResponseMatchModel'
- properties:
firstName:
type: string
lastName:
type: string
Role:
type: string
person:
$ref: '#/definitions/baseResponseMatchModel'
sourceCoverage:
type: object
properties:
liveData:
type: boolean
description: Whether the entity has live data coverage.
liveVideo:
type: boolean
description: Whether the entity has live video coverage.
proposalDataBase:
type: object
properties:
id:
type: string
name:
type: string
sourceEntityId:
type: string
sourceMetadata:
type: object
description: Source metadata
title: An additional collection of metadata supplied by the source.
additionalProperties:
type: string
proposalCompetitionPhaseData:
allOf:
- $ref: '#/definitions/proposalDataBase'
- type: object
properties:
startDate:
type: string
format: date-time
endDate:
type: string
format: date-time
proposalSquadPlayerData:
allOf:
- $ref: '#/definitions/proposalDataBase'
- type: object
properties:
gender:
type: string
person:
$ref: '#/definitions/proposalPersonData'
locality:
$ref: '#/definitions/proposalLocalityData'
contractStartDate:
type: string
format: date-time
contractEndDate:
type: string
format: date-time
birthDate:
type: string
format: date-time
position:
type: string
shirtNumber:
type: string
isPartOfTeam:
type: boolean
competitorReadonlyResponseModel:
allOf:
- $ref: '#/definitions/baseResponseMatchModel'
- properties:
lineup:
$ref: '#/definitions/lineupReadonlyResponseModel'
proposalCompetitionData:
allOf:
- $ref: '#/definitions/proposalDataBase'
- type: object
properties:
gender:
type: string
competitionType:
type: string
startDate:
type: string
endDate:
type: string
locality:
$ref: '#/definitions/proposalLocalityData'
competitionPhaseReadonlyResponseModel:
allOf:
- $ref: '#/definitions/baseResponseMatchModel'
- properties:
startDate:
type: string
format: date-time
endDate:
type: string
format: date-time
teamMatchModel:
allOf:
- $ref: '#/definitions/baseMatchModel'
- properties:
gender:
$ref: '#/definitions/gender'
ageCategory:
$ref: '#/definitions/ageCategory'
locality:
$ref: '#/definitions/locality'
teamPropertiesModel:
$ref: '#/definitions/teamPropertiesModel'
squadTrackingStatusResponse:
type: object
properties:
requestCuratedValue:
$ref: '#/definitions/squadResponseMatchModel'
status:
$ref: '#/definitions/SimplifiedTrackingStatus'
trackingRequestId:
type: string
description: Tracking Id of the progress of the asynchronous execution.
title: GUID value
proposalCompetition:
type: object
properties:
id:
type: string
sourceEntityId:
type: string
sourceName:
type: string
status:
type: string
data:
$ref: '#/definitions/proposalCompetitionIngestionData'
competitionType:
type: string
title: 'One of: TeamsCompetition, PlayersCompetition, DoublePartnershipsCompetition'
description: Defines the type of the competition to increase chances of correct matching
proposalSeasonData:
allOf:
- $ref: '#/definitions/proposalDataBase'
- type: object
properties:
startDate:
type: string
format: date-time
endDate:
type: string
format: date-time
competitorType:
type: string
title: 'One of: Team, Player, DoublePartnership'
description: Defines the type of the competitor to increase chances of correct matching
teamPropertiesModel:
type: object
properties:
isNationalTeam:
type: boolean
description: Is it a national team
isYouth:
type: boolean
description: Is it a youth team
abbreviation:
type: string
description: An abbreviation of the team name
shortName:
type: string
description: Short name of the team
proposalSquadIngestionData:
type: object
properties:
sport:
$ref: '#/definitions/proposalSportData'
organization:
$ref: '#/definitions/proposalOrganizationData'
team:
$ref: '#/definitions/proposalSquadTeamData'
players:
type: array
items:
$ref: '#/definitions/proposalSquadPlayerData'
officials:
type: array
items:
$ref: '#/definitions/proposalOfficialData'
proposalFixture:
type: object
properties:
id:
type: string
sourceEntityId:
type: string
sourceName:
type: string
status:
type: string
data:
$ref: '#/definitions/proposalFixtureIngestionData'
coverage:
type: array
items:
$ref: '#/definitions/coverageData'
competitionIngestion:
type: object
required:
- competition
- sport
properties:
organization:
$ref: '#/definitions/organizationMatchModel'
competition:
$ref: '#/definitions/competitionMatchModel'
sport:
$ref: '#/definitions/baseMatchModel'
competitionPhases:
type: array
items:
$ref: '#/definitions/competitionPhaseMatchModel'
proposalSquad:
type: object
properties:
id:
type: string
sourceEntityId:
type: string
sourceName:
type: string
status:
type: string
data:
$ref: '#/definitions/proposalSquadIngestionData'
competitionResponseMatchModel:
type: object
required:
- competition
- sport
properties:
sport:
$ref: '#/definitions/baseResponseMatchModel'
organization:
$ref: '#/definitions/organizationReadonlyResponseModel'
competition:
$ref: '#/definitions/competitionReadonlyResponseModel'
season:
$ref: '#/definitions/baseResponseMatchModel'
competitionPhases:
type: array
items:
$ref: '#/definitions/competitionPhaseReadonlyResponseModel'
fixtureResponseMatchModel:
type: object
required:
- competition
- fixture
- sport
properties:
sport:
$ref: '#/definitions/baseResponseMatchModel'
organization:
$ref: '#/definitions/organizationReadonlyResponseModel'
competition:
$ref: '#/definitions/competitionReadonlyResponseModel'
season:
$ref: '#/definitions/baseResponseMatchModel'
competitionPhase:
$ref: '#/definitions/competitionPhaseReadonlyResponseModel'
fixture:
$ref: '#/definitions/fixtureReadonlyResponseModel'
competitors:
type: array
description: Client might send competitors separately to try to improve matching capabilities.
items:
$ref: '#/definitions/competitorReadonlyResponseModel'
officials:
$ref: '#/definitions/officialsReadonlyResponseModel'
sourceCoverage:
$ref: '#/definitions/sourceCoverage'
coverage:
$ref: '#/definitions/coverage'
lineupPlayer:
allOf:
- $ref: '#/definitions/baseMatchModel'
- properties:
gender:
$ref: '#/definitions/gender'
locality:
$ref: '#/definitions/locality'
playerPropertiesModel:
$ref: '#/definitions/basePlayerPropertiesModel'
isStarter:
type: boolean
description: Indicates if the player is a starter in the lineup.
order:
type: integer
description: The order of the player in the lineup, starting from 0.
position:
type: string
description: The position of the player in the lineup, e.g., 'Forward', 'Keeper'.
shirtNumber:
type: string
description: The shirt number of the player in the lineup.
fixtureIngestionPatch:
type: object
required:
- competitors
- fixture
properties:
competitors:
type: array
items:
$ref: '#/definitions/fixtureCompetitorMatchModel'
fixture:
type: object
properties:
sourceEntityId:
type: string
description: Source entity unique Id
title: The external id from Genius Sports perspective and the internal for the source. By sending this param the backtracking capabilities improved, via push & pull.
required:
- sourceEntityId
trackingRequestModel:
type: object
required:
- trackingRequestId
properties:
trackingRequestId:
type: string
description: Tracking Id of the progress of the asynchronous execution.
title: GUID value
title: GUID value
description: Tracking Id of the progress of the asynchronous execution.
squadIngestion:
type: object
required:
- players
- sport
- team
properties:
organization:
$ref: '#/definitions/organizationMatchModel'
team:
$ref: '#/definitions/teamMatchModel'
sport:
$ref: '#/definitions/baseMatchModel'
players:
type: array
description: Client might send competitors separately to try to improve matching capabilities.
items:
$ref: '#/definitions/playerMatchModel'
officials:
$ref: '#/definitions/officials'
skipContractDeactivation:
type: boolean
description: This flag indicates whether to skip deactivation of player contracts that are not present in the current squad ingestion. If set to true, existing contracts will remain active even if the players are not included in the current ingestion.
proposalCompetitionIngestionData:
type: object
properties:
sport:
$ref: '#/definitions/proposalSportData'
organization:
$ref: '#/definitions/proposalOrganizationData'
season:
$ref: '#/definitions/proposalSeasonData'
competition:
$ref: '#/definitions/proposalCompetitionData'
competitionPhases:
type: array
items:
$ref: '#/definitions/proposalCompetitionPhaseData'
lineup:
properties:
formation:
type: string
description: The formation code of the team for the given lineup. E.g. 442
players:
type: array
description: List of players in the lineup.
items:
$ref: '#/definitions/lineupPlayer'
sportSpecificRules:
type: array
items:
$ref: '#/definitions/sportSpecificRule'
firstLastNameModel:
type: object
properties:
firstName:
type: string
description: The first name of the competitor
lastName:
type: string
description: The last name of the competitor
proposalPersonData:
type: object
properties:
id:
type: string
name:
type: string
basePlayerPropertiesModel:
allOf:
- $ref: '#/definitions/firstLastNameModel'
- properties:
birthDate:
type: string
format: date-time
description: Player birthdate in format - full-date notation, for example, 2017-07-21
title: Birth Date
playerMatchModel:
type: object
properties:
birthDate:
type: string
format: date-time
description: Player birthdate in format - full-date notation as defined by RFC 3339, section 5.6, for example, 2017-07-21
title: Birth Date
sourceEntityId:
type: string
description: Source entity unique Id
title: The external id from Genius Sports perspective and the internal for the source. By sending this param the backtracking capabilities improved, via push & pull.
position:
type: string
description: The playing position, depending on the sport.
shirtNumber:
type: number
description: The number of the Shirt for the player
locality:
$ref: '#/definitions/locality'
playerPropertiesModel:
$ref: '#/definitions/firstLastNameModel'
gender:
$ref: '#/definitions/gender'
name:
type: string
description: The full name of the player
sourceMetadata:
type: object
description: Source metadata
title: An additional collection of metadata supplied by the source.
additionalProperties:
type: string
id:
type: string
description: Genius Sport Id
title: If client has the Genius Sport Id it can be sent to improve overall matching capabilities and certainty or the results.
fixtureIngestion:
type: object
required:
- competition
- competitors
- fixture
- sport
properties:
organization:
$ref: '#/definitions/organizationMatchModel'
competition:
$ref: '#/definitions/competitionMatchModel'
sport:
$ref: '#/definitions/baseMatchModel'
fixture:
$ref: '#/definitions/fixtureMatchModel'
venue:
$ref: '#/definitions/venueMatchModel'
competitors:
type: array
items:
$ref: '#/definitions/fixtureCompetitorMatchModel'
competitionPhase:
$ref: '#/definitions/competitionPhaseMatchModel'
officials:
$ref: '#/definitions/officials'
sourceCoverage:
$ref: '#/definitions/sourceCoverage'
coverage:
$ref: '#/definitions/coverage'
proposalLocalityData:
type: object
properties:
id:
type: string
name:
type: string
ArrayOfproposalCompetition:
type: array
items:
$ref: '#/definitions/proposalCompetition'
official:
allOf:
- $ref: '#/definitions/baseMatchModel'
- properties:
gender:
$ref: '#/definitions/gender'
firstName:
type: string
lastName:
type: string
role:
type: string
description: The role of the official
birthDate:
type: string
format: date-time
description: Official birthdate in format - full-date notation, for example, 2017-07-21
title: Birth Date
locality:
$ref: '#/definitions/locality'
venueMatchModel:
allOf:
- $ref: '#/definitions/baseMatchModel'
- properties:
locality:
$ref: '#/definitions/locality'
city:
type: string
description: The city of the venue
parentVenue:
$ref: '#/definitions/baseMatchModel'
Empty:
type: object
baseDbModel:
type: object
required:
- name
properties:
name:
type: string
description: 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.
id:
type: string
description: Genius Sport Id
title: If client has the Genius Sport Id it can be sent to improve overall matching capabilities and certainty or the results.
squadResponseMatchModel:
type: object
required:
- players
- sport
- team
properties:
team:
$ref: '#/definitions/baseResponseMatchModel'
sport:
$ref: '#/definitions/baseResponseMatchModel'
organization:
$ref: '#/definitions/organizationReadonlyResponseModel'
players:
type: array
description: The result of the squad ingestion.
items:
$ref: '#/definitions/baseResponseMatchModel'
officials:
$ref: '#/definitions/officialsReadonlyResponseModel'
competitionTrackingStatusResponse:
type: object
properties:
requestCuratedValue:
$ref: '#/definitions/competitionResponseMatchModel'
status:
$ref: '#/definitions/SimplifiedTrackingStatus'
trackingRequestId:
type: string
description: Tracking Id of the progress of the asynchronous execution.
title: GUID value
SimplifiedTrackingStatus:
type: integer
format: int32
description: 'Status of the proposal request: Accepted = 0, AwaitingMatching = 1, MatchedAndProposed = 3, ProposedAndApproved = 5, InvalidProposal = 7, Matched = 8, FailedToProcess = 9, ProposedAndWaitingCuration = 10, EnrichingProposal = 12, Suspended = 14, Ignored = 15, Inconsistent = 16'
enum:
- '0'
- '1'
- '3'
- '5'
- '7'
- '8'
- '9'
- '10'
- '12'
- '14'
- '15'
- '16'
organizationMatchModel:
allOf:
- $ref: '#/definitions/baseMatchModel'
- properties:
code:
type: string
description: The code of the organization
officials:
type: array
items:
$ref: '#/definitions/official'
fixtureCompetitorMatchModel:
allOf:
- $ref: '#/definitions/competitorMatchModel'
- properties:
lineup:
$ref: '#/definitions/lineup'
preserveLineup:
type: boolean
description: Default value false, if set to true, it prevent accidental clearing of previously ingested lineups when subsequent proposals deliberately or incidentally omit the lineups field.
title: Preserve Lineup
playerPropertiesModel:
allOf:
- $ref: '#/definitions/basePlayerPropertiesModel'
- properties:
sourceEntityId:
type: string
description: Source entity unique Id
title: The external id from Genius Sports perspective and the internal for the source. By sending this param the backtracking capabilities improved, via push & pull.
id:
type: string
description: Genius Sport Id
title: If client has the Genius Sport Id it can be sent to improve overall matching capabilities and certainty or the results.
ArrayOfproposalFixture:
type: array
items:
$ref: '#/definitions/proposalFixture'
proposalOrganizationData:
allOf:
- $ref: '#/definitions/proposalDataBase'
- type: object
properties:
code:
type: string
competitorMatchModel:
allOf:
- $ref: '#/definitions/baseMatchModel'
- properties:
competitorType:
$ref: '#/definitions/competitorType'
locality:
$ref: '#/definitions/locality'
playerPropertiesModel:
$ref: '#/definitions/playerPropertiesModel'
doublesPropertiesModel:
$ref: '#/definitions/doublesPropertiesModel'
teamPropertiesModel:
$ref: '#/definitions/teamPropertiesModel'
gender:
$ref: '#/definitions/gender'
isHome:
type: boolean
description: Is this competitor the home competitor for the fixture
gender:
type: string
title: 'One of: Male, Female, Mixed. If the entity is neither Male, nor Female use Mixed.'
description: If sent an EXACT match is made on the enum, excluding all non-matching entities.
competitionMatchModel:
allOf:
- $ref: '#/definitions/baseMatchModel'
- properties:
gender:
$ref: '#/definitions/gender'
ageCategory:
$ref: '#/definitions/ageCategory'
startDate:
type: string
format: date-time
description: The date on which the competition starts in format - full-date notation as defined by RFC 3339, section 5.6, for example, 2017-07-21
title: Start Date
endDate:
type: string
format: date-time
description: The date on which the competition ends in format - full-date notation as defined by RFC 3339, section 5.6, for example, 2017-07-21
title: End Date
sponsorName:
type: string
description: The name of the competition sponsor
title: Sponsor Name
longName:
type: string
description: The long name of the competition
title: Long Name
shortName:
type: string
description: The short name of the competition
title: Short Name
locality:
$ref: '#/definitions/locality'
competitionType:
$ref: '#/definitions/competitionType'
sportSpecificRules:
$ref: '#/definitions/sportSpecificRules'
fixtureTrackingStatusResponse:
type: object
properties:
requestCuratedValue:
$ref: '#/definitions/fixtureResponseMatchModel'
status:
$ref: '#/definitions/SimplifiedTrackingStatus'
trackingRequestId:
type: string
description: Tracking Id of the progress of the asynchronous execution.
title: GUID value
baseMatchModel:
allOf:
- $ref: '#/definitions/baseDbModel'
- properties:
sourceEntityId:
type: string
description: Source entity unique Id
title: The external id from Genius Sports perspective and the internal for the source. By sending this param the backtracking capabilities improved, via push & pull.
sourceMetadata:
type: object
description: Source metadata
title: An additional collection of metadata supplied by the source.
additionalProperties:
type: string
proposalCompetitorData:
allOf:
- $ref: '#/definitions/proposalDataBase'
- type: object
properties:
gender:
type: string
locality:
$ref: '#/definitions/proposalLocalityData'
competitorType:
type: string
isHome:
type: boolean
competitorTypeSpecificData:
type: object
properties: {}
lineup:
$ref: '#/definitions/proposalLineupData'
proposalSquadTeamData:
allOf:
- $ref: '#/definitions/proposalDataBase'
- type: object
properties:
gender:
type: string
abbreviation:
type: string
isNationalTeam:
type: boolean
isYouth:
type: boolean
locality:
$ref: '#/definitions/proposalLocalityData'
officialsReadonlyResponseModel:
type: array
items:
$ref: '#/definitions/officialReadonlyResponseModel'
lineupReadonlyResponseModel:
type: object
required:
- status
properties:
id:
type: string
description: Genius Sport Id
title: If client has the Genius Sport Id it can be sent to improve overall matching capabilities and certainty or the results.
status:
$ref: '#/definitions/SimplifiedTrackingStatus'
message:
type: string
description: Addional message regarding the status of the proposal
title: Meaningful message for potential problems with the request.
matchingId:
type: string
description: Tracking Id of the matching request that was made for the entity
title: Tracking Id of the matching request.
sourceEntityId:
type: string
description: Source entity unique Id
title: The external id from Genius Sports perspective and the internal for the source. By sending this param the backtracking capabilities improved, via push & pull.
sourceMetadata:
type: object
description: Source metadata
title: An additional collection of metadata supplied by the source.
additionalProperties:
type: string
players:
type: array
description: List of players in the lineup.
items:
$ref: '#/definitions/baseResponseMatchModel'
proposalVenueData:
allOf:
- $ref: '#/definitions/proposalDataBase'
- type: object
properties:
locality:
type: string
city:
type: string
proposalSportData:
allOf:
- $ref: '#/definitions/proposalDataBase'
- type: object
proposalFixtureData:
allOf:
- $ref: '#/definitions/proposalDataBase'
- type: object
properties:
startDate:
type: string
locality:
$ref: '#/definitions/proposalLocalityData'
eventStatus:
type: string
description: Notstarted, Inprogress, Finished, Cancelled, Postponed.
matchNumber:
type: string
atNeutralVenue:
type: boolean
sportSpecificRule:
type: object
properties:
name:
type: string
value:
type: string
competitionPhaseMatchModel:
allOf:
- $ref: '#/definitions/baseMatchModel'
- properties:
startDate:
type: string
format: date-time
description: The start date of the competition phase in UTC ISO-8601 format. (yyyy-MM-ddTHH:mmZ)
title: Start Date
endDate:
type: string
format: date-time
description: The end date of the competition phase in UTC ISO-8601 format. (yyyy-MM-ddTHH:mmZ)
title: End Date
proposalFixtureIngestionData:
type: object
properties:
sport:
$ref: '#/definitions/proposalSportData'
venue:
$ref: '#/definitions/proposalVenueData'
organization:
$ref: '#/definitions/proposalOrganizationData'
season:
$ref: '#/definitions/proposalSeasonData'
fixture:
$ref: '#/definitions/proposalFixtureData'
competition:
$ref: '#/definitions/proposalCompetitionData'
competitors:
type: array
items:
$ref: '#/definitions/proposalCompetitorData'
competitionPhase:
$ref: '#/definitions/proposalCompetitionPhaseData'
officials:
type: array
items:
$ref: '#/definitions/proposalOfficialData'
sourceCoverage:
$ref: '#/definitions/sourceCoverage'
coverage:
type: array
items:
$ref: '#/definitions/coverageData'
BadRequestModel:
type: object
properties:
messages:
type: array
items:
type: string
proposalLineupData:
allOf:
- $ref: '#/definitions/proposalDataBase'
- type: object
properties:
players:
type: array
items:
$ref: '#/definitions/proposalDataBase'
ErrorModel:
type: object
properties:
code:
type: integer
format: int32
message:
type: string
error:
$ref: '#/definitions/Error'
competitionReadonlyResponseModel:
allOf:
- $ref: '#/definitions/baseResponseMatchModel'
- properties:
sportSpecificRules:
$ref: '#/definitions/sportSpecificRules'
ArrayOfproposalSquad:
type: array
items:
$ref: '#/definitions/proposalSquad'
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'
proposalOfficialData:
allOf:
- $ref: '#/definitions/proposalDataBase'
- type: object
properties:
firstName:
type: string
lastName:
type: string
role:
type: string
locality:
type: string
title: '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'
description: If sent а FUZZY match is made on the value and the similarity score is contributing to the end match score.
organizationReadonlyResponseModel:
allOf:
- $ref: '#/definitions/baseResponseMatchModel'
- properties:
code:
type: string
fixtureReadonlyResponseModel:
allOf:
- $ref: '#/definitions/baseResponseMatchModel'
- properties:
matchNumber:
type: string
atNeutralVenue:
type: boolean
sportSpecificRules:
$ref: '#/definitions/sportSpecificRules'
baseResponseMatchModel:
allOf:
- $ref: '#/definitions/baseMatchModel'
- properties:
status:
$ref: '#/definitions/SimplifiedTrackingStatus'
message:
type: string
description: Addional message regarding the status of the proposal
title: Meaningful message for potential problems with the request.
matchingId:
type: string
description: Tracking Id of the matching request that was made for the entity
title: Tracking Id of the matching request.
doublesPropertiesModel:
type: object
properties:
firstCompetitor:
$ref: '#/definitions/playerPropertiesModel'
secondCompetitor:
$ref: '#/definitions/playerPropertiesModel'
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