GraphQL API Reference
Ahotu Content Calendar API Reference Documentation
API Documentation Notice (v4)
This is documentation version 4, corresponding to the new alternative API version v-alt-api (0.9.0). This update introduces the ability to return all races within an event, including races that do not match the search criteria.
Additionally, the schema has been modified to reduce redundancy by removing certain event-level fields from the race level that were previously duplicated.
Please note: This documentation is a work in progress, and we welcome your feedback and suggestions.
Authentication
To authenticate and obtain a valid JWT access token, send a POST request to the token endpoint with your credentials. A secret key will be provided to you or you can request a new one.
Include the necessary information in your request to receive the JWT access token.
Example Request
curl -X POST \
https://wsg-nike-auth.auth.us-east-1.amazoncognito.com/oauth2/token \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=client_credentials" \
-d "client_id=<your-client-id>" \
-d "client_secret=<your-client-secret>" \
-d "scope=<your-api-scope>"
Using the Authentication Token
Once you obtain the JWT access token, you must include it in the Authorization header for all API requests. There are multiple ways to do this:
1. Using the GraphQL Playground
If you are using a GraphQL Playground, set up the authorization header in the bottom left corner. Add the following JSON to the "Headers" section:
{
"Authorization": "Bearer your_generated_jwt_token"
}
Here’s an example of what it should look like:
2. Using cURL
You can also use cURL to make requests by including the token in the Authorization header:
curl -X GET https://alt-api.prod.ahotu.com/graphql \
-H "Authorization: Bearer your_generated_jwt_token" \
-H "Content-Type: application/json"
3. Using Postman
In Postman, navigate to the Headers tab and add the following key-value pair:
Key: Authorization
Value: Bearer your_generated_jwt_token
This will authenticate all your API requests in Postman.
Localization
Description
String value available in all supported languages, indexed by language key. Each key represents a language or a language-region combination, providing localization support for multi-language applications.
| Field Name | Description | Region/Locale |
|---|---|---|
| de | German | Germany (de-DE) |
| en | English | English |
| en-US | English | United States (en-US) |
| en-GB | English | United Kingdom (en-GB) |
| es | Spanish | Spain (es-ES) |
| es-419 | Spanish | Latin America (es-419) |
| fr | French | France (fr-FR) |
| it | Italian | Italy (it-IT) |
| ja | Japanese | Japan (ja-JP) |
| ko | Korean | South Korea (ko-KR) |
| pt | Portuguese | Portugal (pt) |
| pt | Portuguese (Brazil) | Brazil (BR) |
| ru | Russian | Russia (ru-RU) |
| sv | Swedish | Sweden (sv-SE) |
| th | Thai | Thailand (th-TH) |
| zh | Chinese | Simplified Chinese (zh-CN) |
| zh-Hant | Chinese | Traditional Chinese (zh-Hant) |
| id | Indonesian | Indonesia (id-ID) |
| nl | Dutch | Netherlands (nl-NL) |
| tr | Turkish | Turkey (tr-TR) |
Reference Endpoints
GET /references
Description:
Returns a list of all available reference categories (e.g., sports, countries, regions, etc.). Each category contains basic metadata including its reference ID and API path.
Example Response:
{
"referenceId": "sports",
"path": "/references/sports",
}
GET /references/:referenceId
Description:
Returns all items under the specified referenceId category. Each item includes localized string values indexed by language key (e.g., names, codes, and optional metadata depending on the category).
Path Parameters:
referenceId – The name of the reference category (e.g., sports, countries, regions1).
Example Response:
{
"0": { // indexed by reference key
"key": "0",
"id": 0,
"path": "/references/sports/0",
"code": "run",
"names": {
"en": "Running",
"fr": "Course",
"de": "Laufen",
"es": "Running",
"pt": "Corrida",
"pl": "Bieganie",
"pt-BR": "Corrida",
"sv": "Löpning",
"zh": "跑步",
"ko": "러닝",
"ja": "ランニング",
"ru": "Бег",
"th": "วิ่ง",
"it": "Running"
}
}
}
GET /references/:referenceId/:itemId
Description:
Returns a single item from the specified referenceId category by its itemId. The result includes localized names, identifiers, and category-specific metadata.
Path Parameters:
referenceId – The name of the reference category.
itemId – The unique key or ID for the specific item in that category.
Example Response:
{
"key": "1",
"id": 1,
"path": "/references/sports/1",
"code": "walk",
"names": {
"en": "Walking",
"fr": "Marche",
"de": "Spazieren",
"es": "Marcha",
"pt": "Caminhada",
"pl": "Marsz",
"pt-BR": "Caminhada",
"sv": "Gång",
"zh": "步行",
"ko": "걷기",
"ja": "ウォーキング",
"ru": "Ходьба",
"th": "Walking",
"it": "Camminata"
}
}
GET /references-full
Description:
Returns a list of all reference categories with a full data dump for each. The response includes the referenceId, API path, and a data field containing the full dataset of the category.
Example Response:
[
{
"referenceId": "sports",
"path": "/references/sports",
"data": {
"0": {
"key": "0",
"id": 0,
"code": "run",
"names": { "en": "Running", ... }
},
...
}
}
]
Queries
events
Response
Returns an Events
Arguments
| Name | Description |
|---|---|
criteria - searchCriteria
|
|
index - String
|
|
page - Int
|
The index of the page to retrieve in the paginated results. For example, use 0 for the first page. |
size - Int
|
The number of items to include per page in the paginated results. |
sort - SortType
|
Example
Query
query Events(
$criteria: searchCriteria,
$index: String,
$page: Int,
$size: Int,
$sort: SortType
) {
events(
criteria: $criteria,
index: $index,
page: $page,
size: $size,
sort: $sort
) {
data {
checkoutUrl
city {
...LocalizedStringFragment
}
country {
...LocalizedCountryFragment
}
countryIso
description {
...LocalizedDescriptionFragment
}
distancesInKm
editionId
editionStatus {
...editionStatusFragment
}
eventPageUrl
eventStatus {
...eventStatusFragment
}
id
isAhotuEvent
isRegistrationOpen
localizedEventPageUrl {
...LocalizedStringFragment
}
location {
...LocalizedStringFragment
}
lonlat
name {
...LocalizedStringFragment
}
nameLanguage
nikeImage
nikeRelationship
permalink
races {
...RaceFragment
}
region1 {
...eventRegion1Fragment
}
region2 {
...eventRegion2Fragment
}
sport {
...eventSportFragment
}
startDate
updatedAt
}
facets {
cities {
...FacetValueFragment
}
country {
...FacetValueFragment
}
courseProfile {
...FacetValueFragment
}
courseType {
...FacetValueFragment
}
distance {
...FacetValueFragment
}
environments {
...FacetValueFragment
}
months {
...FacetValueFragment
}
others {
...FacetValueFragment
}
participation {
...FacetValueFragment
}
qualifiers {
...FacetValueFragment
}
raceFormat {
...FacetValueFragment
}
raceType {
...FacetValueFragment
}
restriction {
...FacetValueFragment
}
sport {
...FacetValueFragment
}
technique {
...FacetValueFragment
}
terrain {
...FacetValueFragment
}
}
pageCount
pageInfo {
currentPage
endPage
hasNextPage
hasPreviousPage
startPage
}
totalCount
}
}
Variables
{
"criteria": searchCriteria,
"index": "abc123",
"page": 987,
"size": 123,
"sort": "date_asc"
}
Response
{
"data": {
"events": {
"data": [Event],
"facets": Facets,
"pageCount": 987,
"pageInfo": PageInfo,
"totalCount": 987
}
}
}
getEventById
Example
Query
query GetEventById(
$id: Int,
$index: String
) {
getEventById(
id: $id,
index: $index
) {
checkoutUrl
city {
de
en
en_GB
en_US
es
es_419
fr
id
it
ja
ko
nl
pt
pt_BR
ru
sv
th
tr
zh
zh_HANT
}
country {
isoCode
names {
...LocalizedStringFragment
}
}
countryIso
description {
de {
...DescriptionFragment
}
en {
...DescriptionFragment
}
en_GB {
...DescriptionFragment
}
en_US {
...DescriptionFragment
}
es {
...DescriptionFragment
}
es_419 {
...DescriptionFragment
}
fr {
...DescriptionFragment
}
id {
...DescriptionFragment
}
it {
...DescriptionFragment
}
ja {
...DescriptionFragment
}
ko {
...DescriptionFragment
}
nl {
...DescriptionFragment
}
pt {
...DescriptionFragment
}
pt_BR {
...DescriptionFragment
}
ru {
...DescriptionFragment
}
sv {
...DescriptionFragment
}
th {
...DescriptionFragment
}
tr {
...DescriptionFragment
}
zh {
...DescriptionFragment
}
zh_HANT {
...DescriptionFragment
}
}
distancesInKm
editionId
editionStatus {
code
names {
...LocalizedStringFragment
}
}
eventPageUrl
eventStatus {
code
names {
...LocalizedStringFragment
}
}
id
isAhotuEvent
isRegistrationOpen
localizedEventPageUrl {
de
en
en_GB
en_US
es
es_419
fr
id
it
ja
ko
nl
pt
pt_BR
ru
sv
th
tr
zh
zh_HANT
}
location {
de
en
en_GB
en_US
es
es_419
fr
id
it
ja
ko
nl
pt
pt_BR
ru
sv
th
tr
zh
zh_HANT
}
lonlat
name {
de
en
en_GB
en_US
es
es_419
fr
id
it
ja
ko
nl
pt
pt_BR
ru
sv
th
tr
zh
zh_HANT
}
nameLanguage
nikeImage
nikeRelationship
permalink
races {
activities {
...ActivityFragment
}
continent
distanceKm
distanceType {
...distanceTypeFragment
}
id
maxNumberOfTeamMembers
minNumberOfTeamMembers
minutes
participant {
...participationFragment
}
raceName
sport {
...sportFragment
}
startDate
startTime
tags {
...tagsFragment
}
}
region1 {
code
names {
...LocalizedStringFragment
}
}
region2 {
code
names {
...LocalizedStringFragment
}
}
sport {
code
names {
...LocalizedStringFragment
}
}
startDate
updatedAt
}
}
Variables
{"id": 123, "index": "abc123"}
Response
{
"data": {
"getEventById": {
"checkoutUrl": "abc123",
"city": LocalizedString,
"country": LocalizedCountry,
"countryIso": "xyz789",
"description": LocalizedDescription,
"distancesInKm": [123.45],
"editionId": 987,
"editionStatus": editionStatus,
"eventPageUrl": "abc123",
"eventStatus": eventStatus,
"id": 987,
"isAhotuEvent": false,
"isRegistrationOpen": false,
"localizedEventPageUrl": LocalizedString,
"location": LocalizedString,
"lonlat": [123.45],
"name": LocalizedString,
"nameLanguage": "abc123",
"nikeImage": "abc123",
"nikeRelationship": "NIKE_OWNED",
"permalink": "xyz789",
"races": [Race],
"region1": eventRegion1,
"region2": eventRegion2,
"sport": eventSport,
"startDate": "abc123",
"updatedAt": "xyz789"
}
}
}
getRaceById
Example
Query
query GetRaceById($id: Int) {
getRaceById(id: $id) {
activities {
courseLoopDistance
courseLoopDistanceUnit {
...courseLoopDistanceUnitFragment
}
courseLoopElevationGain
courseLoopElevationGainUnit {
...courseLoopElevationGainUnitFragment
}
courseProfile {
...courseProfileFragment
}
courseType {
...courseTypeFragment
}
distance
distanceKm
distanceUnit {
...distanceUnitFragment
}
elevationDrop
elevationDropUnit {
...elevationDropUnitFragment
}
elevationGain
elevationGainUnit {
...elevationGainUnitFragment
}
environment {
...environmentsFragment
}
order
others {
...othersFragment
}
terrain {
...terrainFragment
}
}
continent
distanceKm
distanceType {
code
names {
...LocalizedStringFragment
}
}
id
maxNumberOfTeamMembers
minNumberOfTeamMembers
minutes
participant {
code
names {
...LocalizedStringFragment
}
}
raceName
sport {
code
names {
...LocalizedStringFragment
}
}
startDate
startTime
tags {
code
names {
...LocalizedStringFragment
}
}
}
}
Variables
{"id": 987}
Response
{
"data": {
"getRaceById": {
"activities": [Activity],
"continent": 123,
"distanceKm": 987.65,
"distanceType": distanceType,
"id": 123,
"maxNumberOfTeamMembers": 123,
"minNumberOfTeamMembers": 123,
"minutes": 987.65,
"participant": participation,
"raceName": "xyz789",
"sport": sport,
"startDate": "xyz789",
"startTime": "xyz789",
"tags": [tags]
}
}
}
Types
Activity
Fields
| Field Name | Description |
|---|---|
courseLoopDistance - Float
|
Distance of the loop, if the activity is run on a course with multiple loops. |
courseLoopDistanceUnit - courseLoopDistanceUnit
|
Unit in which the course loop is expressed |
courseLoopElevationGain - Float
|
Elevation gain during the course loop |
courseLoopElevationGainUnit - courseLoopElevationGainUnit
|
Unit in which the course loop elevation gain is expressed |
courseProfile - courseProfile
|
Profile of the race (flat, undulating, hilly, extreme) |
courseType - courseType
|
Topography on which the activity takes place |
distance - Float
|
Distance of the activity |
distanceKm - Float
|
Distance converted into kilometers if possible |
distanceUnit - distanceUnit
|
Unit in which the distance is expressed |
elevationDrop - Float
|
Elevation drop during the activity |
elevationDropUnit - elevationDropUnit
|
Unit in which the elevation drop is expressed |
elevationGain - Float
|
Elevation gain during the activity |
elevationGainUnit - elevationGainUnit
|
Unit in which the elevation gain is expressed |
environment - [environments!]
|
List of tags related to the environment of the race |
order - Int
|
Order in which the activity happen |
others - [others!]
|
List of other tags |
terrain - [terrain!]
|
Terrains on which the race happens |
Example
{
"courseLoopDistance": 987.65,
"courseLoopDistanceUnit": courseLoopDistanceUnit,
"courseLoopElevationGain": 987.65,
"courseLoopElevationGainUnit": courseLoopElevationGainUnit,
"courseProfile": courseProfile,
"courseType": courseType,
"distance": 123.45,
"distanceKm": 123.45,
"distanceUnit": distanceUnit,
"elevationDrop": 123.45,
"elevationDropUnit": elevationDropUnit,
"elevationGain": 987.65,
"elevationGainUnit": elevationGainUnit,
"environment": [environments],
"order": 987,
"others": [others],
"terrain": [terrain]
}
Around
Description
Filters events within a specified radius around a geo point.
Example
{
"distance": "abc123",
"point": Point
}
Boolean
Description
The Boolean scalar type represents true or false.
Example
true
CourseProfileEnum
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
Example
"extreme"
CourseTypeEnum
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
Example
"loops"
DateRange
Description
DistanceRange
Description
Defines a minimum and/or maximum distance range for filtering based on race distance.
Fields
| Input Field | Description |
|---|---|
max - Float
|
The maximum distance used to filter events. Must be a non-negative number and greater than the minimun. Optional. |
min - Float
|
The minimum distance used to filter events. Must be a non-negative number. Optional. |
unit - Unit
|
The unit of measurement for the distance range. Defaults to kilometers (km) if not specified. |
Example
{"max": 987.65, "min": 123.45, "unit": "ft"}
DistanceTypeEnum
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Example
"_5k"
EditionStatusEnum
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Example
"canceled"
EnvironmentEnum
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Example
"airport"
Event
Description
Event represation - from collapsing races from single edition
Fields
| Field Name | Description |
|---|---|
checkoutUrl - String
|
Url for event registration |
city - LocalizedString
|
City of the event |
country - LocalizedCountry
|
Localized country of the event |
countryIso - String
|
Country ISO code of the event |
description - LocalizedDescription
|
Description of the event. Presented as LocalizedObject (e.g LocalizedDescription) |
distancesInKm - [Float!]
|
|
editionId - Int
|
Id of the edition |
editionStatus - editionStatus
|
Status of the edition. |
eventPageUrl - String
|
Url for event's page |
eventStatus - eventStatus
|
Status of the event. |
id - Int
|
Id of the event |
isAhotuEvent - Boolean
|
Flag for Ahotu official events |
isRegistrationOpen - Boolean
|
Event is open for registration |
localizedEventPageUrl - LocalizedString
|
Localized urls for event's page |
location - LocalizedString
|
Location of the event |
lonlat - [Float!]
|
geo_point data |
name - LocalizedString
|
Name of the event |
nameLanguage - String
|
Language of the event name |
nikeImage - String
|
Event image for nike owned and sponsored events from nikeRelationship |
nikeRelationship - NikeRelationshipEnum
|
Is the event nike owned or sponsored. |
permalink - String
|
Permalink/slug used for the event page on Ahotu |
races - [Race!]
|
Races for event edition |
region1 - eventRegion1
|
region1 reference |
region2 - eventRegion2
|
region2 reference |
sport - eventSport
|
sport reference |
startDate - String
|
Start date of event current edition |
updatedAt - String
|
Last update UTC date |
Example
{
"checkoutUrl": "xyz789",
"city": LocalizedString,
"country": LocalizedCountry,
"countryIso": "abc123",
"description": LocalizedDescription,
"distancesInKm": [123.45],
"editionId": 987,
"editionStatus": editionStatus,
"eventPageUrl": "abc123",
"eventStatus": eventStatus,
"id": 987,
"isAhotuEvent": true,
"isRegistrationOpen": false,
"localizedEventPageUrl": LocalizedString,
"location": LocalizedString,
"lonlat": [123.45],
"name": LocalizedString,
"nameLanguage": "abc123",
"nikeImage": "xyz789",
"nikeRelationship": "NIKE_OWNED",
"permalink": "xyz789",
"races": [Race],
"region1": eventRegion1,
"region2": eventRegion2,
"sport": eventSport,
"startDate": "abc123",
"updatedAt": "abc123"
}
EventStatusEnum
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Example
"archived"
Events
Fields
| Field Name | Description |
|---|---|
data - [Event!]
|
A list of event result items associated with the query. |
facets - Facets
|
A collection of top results for each facet, such as sports, countries, or cities, based on the query criteria. |
pageCount - Int
|
The total number of pages available based on the given page size. |
pageInfo - PageInfo
|
Information about the current page and navigation details for pagination. |
totalCount - Int
|
The total number of event items matching the query. |
Example
{
"data": [Event],
"facets": Facets,
"pageCount": 987,
"pageInfo": PageInfo,
"totalCount": 123
}
FacetValue
Facets
Description
Top results for races with a field matching the search criteria. If no criteria is provided. returns top results across all races.
Fields
| Field Name | Description |
|---|---|
cities - [FacetValue!]
|
Top results for cities. |
country - [FacetValue!]
|
Top results for country. |
courseProfile - [FacetValue!]
|
Top results for activities.courseProfile. |
courseType - [FacetValue!]
|
Top results for activities.courseType. |
distance - [FacetValue!]
|
Top results for distance. |
environments - [FacetValue!]
|
Top results for activities.environments. |
months - [FacetValue!]
|
Top results for months. |
others - [FacetValue!]
|
Top results for activities.others. |
participation - [FacetValue!]
|
Top results for participation. |
qualifiers - [FacetValue!]
|
Top results for qualifiers. |
raceFormat - [FacetValue!]
|
Top results for raceFormat. |
raceType - [FacetValue!]
|
Top results for raceType. |
restriction - [FacetValue!]
|
Top results for restriction. |
sport - [FacetValue!]
|
Top results for sport. |
technique - [FacetValue!]
|
Top results for activities.technique. |
terrain - [FacetValue!]
|
Top results for activities.terrain. |
Example
{
"cities": [FacetValue],
"country": [FacetValue],
"courseProfile": [FacetValue],
"courseType": [FacetValue],
"distance": [FacetValue],
"environments": [FacetValue],
"months": [FacetValue],
"others": [FacetValue],
"participation": [FacetValue],
"qualifiers": [FacetValue],
"raceFormat": [FacetValue],
"raceType": [FacetValue],
"restriction": [FacetValue],
"sport": [FacetValue],
"technique": [FacetValue],
"terrain": [FacetValue]
}
Float
Description
The Float scalar type represents signed double-precision fractional values as specified by IEEE 754.
Example
123.45
Int
Description
The Int scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.
Example
987
LocalizedCountry
Fields
| Field Name | Description |
|---|---|
isoCode - String
|
|
names - LocalizedString
|
Localized country name |
Example
{
"isoCode": "xyz789",
"names": LocalizedString
}
LocalizedDescription
Description
Description object value localized in all supported languages by language key
Fields
| Field Name | Description |
|---|---|
de - Description
|
German Description |
en - Description
|
English Description |
en_GB - Description
|
English (United Kingdom) Description |
en_US - Description
|
English (United States) Description |
es - Description
|
Spanish Description |
es_419 - Description
|
Spanish (Latin America) Description |
fr - Description
|
French Description |
id - Description
|
Indonesian Description |
it - Description
|
Italian Description |
ja - Description
|
Japanese Description |
ko - Description
|
Korean Description |
nl - Description
|
Dutch Description |
pt - Description
|
Portuguese Description |
pt_BR - Description
|
Portuguese (Brazilian) Description |
ru - Description
|
Russian Description |
sv - Description
|
Swedish Description |
th - Description
|
Thai Description |
tr - Description
|
Turkish Description |
zh - Description
|
Chinese Description |
zh_HANT - Description
|
Chinese (Traditional) Description |
Example
{
"de": Description,
"en": Description,
"en_GB": Description,
"en_US": Description,
"es": Description,
"es_419": Description,
"fr": Description,
"id": Description,
"it": Description,
"ja": Description,
"ko": Description,
"nl": Description,
"pt": Description,
"pt_BR": Description,
"ru": Description,
"sv": Description,
"th": Description,
"tr": Description,
"zh": Description,
"zh_HANT": Description
}
LocalizedString
Description
String value available in all supported languages by language key
Fields
| Field Name | Description |
|---|---|
de - String
|
German |
en - String
|
English |
en_GB - String
|
English (United Kingdom) |
en_US - String
|
English (United States) |
es - String
|
Spanish |
es_419 - String
|
Spanish (Latin America) |
fr - String
|
French |
id - String
|
Indonesian |
it - String
|
Italian |
ja - String
|
Japanese |
ko - String
|
Korean |
nl - String
|
Dutch |
pt - String
|
Portuguese |
pt_BR - String
|
Portuguese (Brazilian) |
ru - String
|
Russian |
sv - String
|
Swedish |
th - String
|
Thai |
tr - String
|
Turkish |
zh - String
|
Chinese |
zh_HANT - String
|
Chinese (Traditional) |
Example
{
"de": "abc123",
"en": "xyz789",
"en_GB": "xyz789",
"en_US": "xyz789",
"es": "abc123",
"es_419": "xyz789",
"fr": "abc123",
"id": "xyz789",
"it": "abc123",
"ja": "xyz789",
"ko": "abc123",
"nl": "xyz789",
"pt": "xyz789",
"pt_BR": "xyz789",
"ru": "abc123",
"sv": "xyz789",
"th": "abc123",
"tr": "xyz789",
"zh": "xyz789",
"zh_HANT": "abc123"
}
NikeRelationshipEnum
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
Example
"NIKE_OWNED"
OtherEnum
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Example
"beer"
PageInfo
Fields
| Field Name | Description |
|---|---|
currentPage - Int
|
The number of the current page. |
endPage - Int
|
The number of the last page in the current range of pages. |
hasNextPage - Boolean
|
Indicates whether there are more pages after the current page. |
hasPreviousPage - Boolean
|
Indicates whether there are pages before the current page. |
startPage - Int
|
The number of the first page in the current range of pages. |
Example
{
"currentPage": 123,
"endPage": 987,
"hasNextPage": true,
"hasPreviousPage": false,
"startPage": 123
}
ParticipationEnum
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
Example
"relay"
Point
Race
Description
Race entity
Fields
| Field Name | Description |
|---|---|
activities - [Activity!]
|
Lists all the activites of the race |
continent - Int
|
Continent of the race |
distanceKm - Float
|
Total distance in km of the race |
distanceType - distanceType
|
Race distance type |
id - Int
|
Race id |
maxNumberOfTeamMembers - Int
|
Maximum number of member per team |
minNumberOfTeamMembers - Int
|
Minimum number of member per team |
minutes - Float
|
Total duration in minute of the race |
participant - participation
|
Race participation type |
raceName - String
|
Name of the race |
sport - sport
|
Race sport |
startDate - String
|
Start date of the race |
startTime - String
|
Start time of the race |
tags - [tags!]
|
List of tags linked to the race |
Example
{
"activities": [Activity],
"continent": 987,
"distanceKm": 123.45,
"distanceType": distanceType,
"id": 987,
"maxNumberOfTeamMembers": 987,
"minNumberOfTeamMembers": 987,
"minutes": 123.45,
"participant": participation,
"raceName": "abc123",
"sport": sport,
"startDate": "xyz789",
"startTime": "abc123",
"tags": [tags]
}
Region1Enum
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Example
"abruzzo"
Region2Enum
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Example
"aberdeen_city"
SortType
Description
Sorting options for different query types. Each sorting option defines the order in which data is returned.
Values
| Enum Value | Description |
|---|---|
|
|
Sort by start date in ascending order (earliest first). |
|
|
Sort by start date in descending order (latest first). |
|
|
Default sorting based on multiple factors like date, name, and client status. |
|
|
Sort by distance in ascending order (closest first). |
|
|
Sort by distance in descending order (farthest first). |
|
|
Sort by geographical distance in ascending order (closest locations first). To use this, set the around criteria with a point of reference (latitude and longitude). |
|
|
Sort by geographical distance in descending order (farthest locations first). To use this, set the around criteria with a point of reference (latitude and longitude). |
Example
"date_asc"
SportEnum
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
Example
"run"
String
Description
The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.
Example
"xyz789"
TerrainEnum
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Example
"bay"
Unit
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Example
"ft"
courseLoopDistanceUnit
Fields
| Field Name | Description |
|---|---|
code - String
|
|
names - LocalizedString
|
Example
{
"code": "xyz789",
"names": LocalizedString
}
courseLoopElevationGainUnit
Fields
| Field Name | Description |
|---|---|
code - String
|
|
names - LocalizedString
|
Example
{
"code": "abc123",
"names": LocalizedString
}
courseProfile
Fields
| Field Name | Description |
|---|---|
code - String
|
|
names - LocalizedString
|
Example
{
"code": "xyz789",
"names": LocalizedString
}
courseType
Fields
| Field Name | Description |
|---|---|
code - String
|
|
names - LocalizedString
|
Example
{
"code": "xyz789",
"names": LocalizedString
}
distanceType
Fields
| Field Name | Description |
|---|---|
code - String
|
|
names - LocalizedString
|
Example
{
"code": "xyz789",
"names": LocalizedString
}
distanceUnit
Fields
| Field Name | Description |
|---|---|
code - String
|
|
names - LocalizedString
|
Example
{
"code": "abc123",
"names": LocalizedString
}
editionStatus
Fields
| Field Name | Description |
|---|---|
code - String
|
|
names - LocalizedString
|
Example
{
"code": "xyz789",
"names": LocalizedString
}
elevationDropUnit
Fields
| Field Name | Description |
|---|---|
code - String
|
|
names - LocalizedString
|
Example
{
"code": "xyz789",
"names": LocalizedString
}
elevationGainUnit
Fields
| Field Name | Description |
|---|---|
code - String
|
|
names - LocalizedString
|
Example
{
"code": "abc123",
"names": LocalizedString
}
environments
Fields
| Field Name | Description |
|---|---|
code - String
|
|
names - LocalizedString
|
Example
{
"code": "xyz789",
"names": LocalizedString
}
eventRegion1
Fields
| Field Name | Description |
|---|---|
code - String
|
|
names - LocalizedString
|
Example
{
"code": "abc123",
"names": LocalizedString
}
eventRegion2
Fields
| Field Name | Description |
|---|---|
code - String
|
|
names - LocalizedString
|
Example
{
"code": "xyz789",
"names": LocalizedString
}
eventSport
Fields
| Field Name | Description |
|---|---|
code - String
|
|
names - LocalizedString
|
Example
{
"code": "abc123",
"names": LocalizedString
}
eventStatus
Fields
| Field Name | Description |
|---|---|
code - String
|
|
names - LocalizedString
|
Example
{
"code": "xyz789",
"names": LocalizedString
}
others
Fields
| Field Name | Description |
|---|---|
code - String
|
|
names - LocalizedString
|
Example
{
"code": "xyz789",
"names": LocalizedString
}
participation
Fields
| Field Name | Description |
|---|---|
code - String
|
|
names - LocalizedString
|
Example
{
"code": "xyz789",
"names": LocalizedString
}
searchCriteria
Fields
| Input Field | Description |
|---|---|
around - Around
|
Filters events within a specified radius around a geo point. Sorting by geo point is also possible by setting the sort argument to geopoint_asc for closest first or geopoint_desc for farthest first. |
city - String
|
Filters events for cities |
countries - [String!]
|
Filters events for countries |
courseProfiles - [CourseProfileEnum!]
|
Filters events for race course profiles |
courseTypes - [CourseTypeEnum!]
|
Filters events for race course types |
dateRange - DateRange
|
Filters events within a specified date range. You can specify from and to. |
distanceRange - DistanceRange
|
Filters events within a specified distance range in km. You can specify minDistance and maxDistance. |
distanceTypes - [DistanceTypeEnum!]
|
Filters events for a particular distanceTypes |
editionStatus - EditionStatusEnum
|
Filters events with an event status. |
environments - [EnvironmentEnum!]
|
Filters events for race environments |
eventStatus - EventStatusEnum
|
Filters events with an event status. |
others - [OtherEnum!]
|
Filters events for other criteria |
participations - [ParticipationEnum!]
|
Filters events for participation types |
regions1 - [Region1Enum!]
|
Filters events per region 1 |
regions2 - [Region2Enum!]
|
Filters events per region 2 |
sports - [SportEnum!]
|
Filters events for sports |
terrains - [TerrainEnum!]
|
Filters events for race terrain types |
text - String
|
Filter based on text string. Return relevant results |
Example
{
"around": Around,
"city": "abc123",
"countries": ["xyz789"],
"courseProfiles": ["extreme"],
"courseTypes": ["loops"],
"dateRange": DateRange,
"distanceRange": DistanceRange,
"distanceTypes": ["_5k"],
"editionStatus": "canceled",
"environments": ["airport"],
"eventStatus": "archived",
"others": ["beer"],
"participations": ["relay"],
"regions1": ["abruzzo"],
"regions2": ["aberdeen_city"],
"sports": ["run"],
"terrains": ["bay"],
"text": "xyz789"
}
sport
Fields
| Field Name | Description |
|---|---|
code - String
|
|
names - LocalizedString
|
Example
{
"code": "xyz789",
"names": LocalizedString
}
terrain
Fields
| Field Name | Description |
|---|---|
code - String
|
|
names - LocalizedString
|
Example
{
"code": "abc123",
"names": LocalizedString
}