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.

API Endpoints

Alt Prod (v-alt-api (0.9.0))
https://alt-api.prod.ahotu.com/graphql

Contact

WSG Support

https://help.ahotu.com

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:

GraphQL Playground Authorization Header Example

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

Response

Returns an Event

Arguments
Name Description
id - Int
index - String

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

Response

Returns a Race

Arguments
Name Description
id - Int

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.

Fields
Input Field Description
distance - String Radius for filtering results, specified in kilometers. Defaults to "100km"
point - Point! The geographical point defining the center of the radius.
Example
{
  "distance": "abc123",
  "point": Point
}

Boolean

Description

The Boolean scalar type represents true or false.

Example
true

CourseProfileEnum

Values
Enum Value Description

extreme

flat

hilly

undulating

Example
"extreme"

CourseTypeEnum

Values
Enum Value Description

loops

out_and_back

point_to_point

single_loop

Example
"loops"

DateRange

Description

Defines a minimum and/or maximum date range for filtering based on race startDate.

Fields
Input Field Description
dateFrom - String The minimum date used to filter events.
dateTo - String The maximum date used to filter events.
Example
{
  "dateFrom": "abc123",
  "dateTo": "abc123"
}

Description

Fields
Field Name Description
isAiGenerated - Boolean
text - String
Example
{"isAiGenerated": false, "text": "xyz789"}

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

_5k

_10k

half_marathon

marathon

other

Example
"_5k"

EditionStatusEnum

Values
Enum Value Description

canceled

deleted

no_race

ok

postponed

turned_virtual

Example
"canceled"

EnvironmentEnum

Values
Enum Value Description

airport

amusement_park

asphalt

beach

bridge

capital_city

castle

city

closed_road

color_run

countryside

desert

downhill

forest

glacier

grass

gravel

historical

ice

indoor

island

lakeside

motor_speedway

mountain

mud

music

nature

night

ocean_view

park

polar

residential

river

sand

scenic

seaside

single_track

snow

sport_club

stadium

sunset

treasure_hunt

tunnel

unesco_world_heritage

valley

vineyards

waterfalls

zoo

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

archived

deleted

duplicate

incomplete

incorrect

ok

terminated

to_be_validated

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

Fields
Field Name Description
count - Int The number of events associated with this facet.
key - String The value representing this facet (e.g., the name of a sport, country, or city).
Example
{"count": 987, "key": "xyz789"}

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

NIKE_OWNED

NIKE_SPONSORED

NO_RELATIONSHIP

Example
"NIKE_OWNED"

OtherEnum

Values
Enum Value Description

beer

beginner_friendly

course_certified

ebike_allowed

ebike_only

eco_friendly

family_friendly

flippers

fun

halloween

timed

wheelchair_friendly

wildlife

wine

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

relay

solo

team

Example
"relay"

Point

Fields
Input Field Description
lat - Float! Latitude coordinate of the geo point, expressed as a float.
lon - Float! Longitude coordinate of the geo point, expressed as a float.
Example
{"lat": 987.65, "lon": 123.45}

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

abruzzo

alberta

andalusia

andaman_and_nicobar_islands

andhra_pradesh

aosta_valley

appenzell_inner_rhodes

appenzell_outer_rhodes

aragon

argovia

assam

australian_capital_territory

auvergne_rhone_alpes

baden_wurttemberg

balearic_islands

basel_city

basel_country

basilicata

basque_country

bavaria

berlin

berne

bihar

bourgogne_franche_comte

brandenburg

bremen

british_columbia

brittany

brussels_capital_region

calabria

campania

cantabria

canton_of_jura

castile_and_leon

castile_la_mancha

catalonia

centre_val_de_loire

chandigarh

chhattisgarh

connacht

corsica

dadra_and_nagar_haveli

daman_and_diu

denbighshire

drenthe

east_north_central

east_south_central

eastern_finland

emilia_romagna

england

extremadura

flanders

flevoland

foral_community_of_navarre

fribourg

friesland

friuli_venezia_giulia

galicia

gateshead

gelderland

geneva

glarus

goa

grand_est

grisons

groningen

gujarat

hamburg

haryana

hauts_de_france

hesse

himachal_pradesh

hovedstaden

ile_de_france

jammu_and_kashmir

jervis_bay_territory

jharkhand

karnataka

kerala

la_rioja

lakshadweep

lapland

lazio

leinster

liguria

limburg

lombardy

lower_saxony

lucerne

madrid

maharashtra

manchester

manipur

manitoba

marche_mar

mecklenburg_vorpommern

meghalaya

mid_atlantic

midtjylland

mizoram

molise

mountain_region

munster

nagaland

national_capital_territory_of_delhi

neuchatel

new_brunswick

new_england

new_south_wales

newfoundland_and_labrador

nidwald

nordjylland

normandy

north_brabant

north_holland

north_rhine_westphalia

northern_ireland

northern_territory

northwest_territories

nouvelle_aquitaine

nova_scotia

nunavut

obwald

occitanie

odisha

ontario

oulu

overijssel

pacific

pays_de_la_loire

piedmont

prince_edward_island

principality_of_asturias

provence_alpes_cote_d_azur

puducherry

puglia

punjab

quebec

queensland

rajasthan

region_of_murcia

rhineland_palatinate

saarland

sardinia

saskatchewan

saxony

saxony_anhalt

schaffhausen

schleswig_holstein

schwyz

scotland

sicily

sikkim

sjaelland

solothurn

south_atlantic

south_australia

south_holland

southern_finland

st_gall

syddanmark

tamil_nadu

tasmania

telangana

telford_and_wrekin

thurgovia

thuringia

ticino

trentino_alto_adige_sudtirol

tripura

tuscany

ulster

umbria

uri

utrecht

uttar_pradesh

uttarakhand

valais

valencian_community

vaud

veneto

victoria

wales

wallonia

west_bengal

west_north_central

west_south_central

western_australia

western_finland

york

yukon

zealand

zug

zurich

Example
"abruzzo"

Region2Enum

Values
Enum Value Description

aberdeen_city

aberdeenshire

abruzzo

ain

aisne

alabama

alaska

alberta

allier

alpes_de_haute_provence

alpes_maritimes

andalusia

andaman_and_nicobar_islands

andhra_pradesh

anglesey

angus

aosta_valley

aragon

ardeche

ardennes

argovia

argyll_and_bute

ariege

arizona

arkansas

armagh

assam

aube

aude

australian_capital_territory

auvergne_rhone_alpes

aveyron

baden_wurttemberg

balearic_islands

barnsley

bas_rhin

basel_city

basel_country

basilicata

basque_country

bath_and_north_east_somerset

bavaria

bedford

berlin

berne

bihar

birmingham

blackpool

bolton

bouches_du_rhone

bournemouth

bradford

brandenburg

bremen

brighton_and_hove

british_columbia

brittany

brussels_capital_region

buckinghamshire

calabria

calderdale

california

calvados

cambridgeshire

campania

cantabria

cantal

canton_of_jura

cardiganshire

carlow

carmarthenshire

castile_and_leon

castile_la_mancha

catalonia

central_bedfordshire

chandigarh

charente

charente_maritime

cher

cheshire_east

cheshire_west_and_chester

chhattisgarh

city_and_county_of_cardiff

city_of_bristol

city_of_edinburgh

city_of_kingston_upon_hull

city_of_nottingham

clackmannanshire

clare

colorado

connacht

connecticut

cork

cornwall

correze

corse_du_sud

cote_d_or

cotes_d_armor

county_borough_of_conwy

county_of_pembrokeshire

coventry

creuse

cumbria

delaware

denbighshire

derbyshire

deux_sevres

devon

doncaster

donegal

dordogne

dorset

doubs

drenthe

drome

dublin

dumfries_and_galloway

dundee_city

durham

east_ayrshire

east_dunbartonshire

east_lothian

east_riding_of_yorkshire

east_sussex

eastern_finland

emilia_romagna

england

essex

essonne

eure

eure_et_loir

extremadura

fife

finistere

flanders

flevoland

florida

foral_community_of_navarre

fribourg

friesland

friuli_venezia_giulia

galicia

galway

gard

gelderland

geneva

georgia

gers

gironde

glasgow_city

gloucestershire

goa

grand_est

greater_london

grisons

groningen

gujarat

gwynedd

hamburg

hampshire

haryana

haut_rhin

haute_corse

haute_garonne

haute_loire

haute_marne

haute_saone

haute_savoie

haute_vienne

hautes_alpes

hautes_pyrenees

hauts_de_france

hauts_de_seine

hawaii

herault

herefordshire

hertfordshire

hesse

highland

himachal_pradesh

hovedstaden

idaho

ile_de_france

ille_et_vilaine

illinois

indiana

indre

indre_et_loire

iowa

isere

isle_of_wight

jammu_and_kashmir

jharkhand

jura

kansas

karnataka

kent

kentucky

kerala

kerry

kildare

kilkenny

kirklees

la_rioja

lancashire

landes

laois

lapland

lazio

leeds

leicestershire

leinster

leitrim

liguria

limburg

limerick

lincolnshire

liverpool

loir_et_cher

loire

loire_atlantique

loiret

lombardy

londonderry

longford

lot

lot_et_garonne

louisiana

louth

lower_saxony

lozere

lucerne

luton

madrid

maharashtra

maine

maine_et_loire

manche

manchester

manitoba

marche_mar

marne

maryland

massachusetts

mayenne

mayo_irl

meath

mecklenburg_vorpommern

meghalaya

meurthe_et_moselle

meuse

michigan

midtjylland

milton_keynes

minnesota

mississippi

missouri

molise

monmouthshire

montana

moray

morbihan

moselle

munster

national_capital_territory_of_delhi

nebraska

neuchatel

nevada

new_brunswick

new_hampshire

new_jersey

new_mexico

new_south_wales

new_york

newcastle_upon_tyne

newfoundland_and_labrador

nidwald

nievre

nord

normandy

north_ayrshire

north_brabant

north_carolina

north_dakota

north_holland

north_lincolnshire

north_rhine_westphalia

north_yorkshire

northamptonshire

northern_territory

northumberland

northwest_territories

nottinghamshire

nouvelle_aquitaine

nova_scotia

nunavut

obwald

occitanie

odisha

offaly

ohio

oise

oklahoma

ontario

oregon

orne

oulu

overijssel

oxfordshire

paris

pas_de_calais

pays_de_la_loire

pennsylvania

perth_and_kinross

piedmont

plymouth

portsmouth

powys

prince_edward_island

principality_of_asturias

provence_alpes_cote_d_azur

puducherry

puglia

punjab

puy_de_dome

pyrenees_atlantiques

pyrenees_orientales

quebec

queensland

rajasthan

reading

redcar_and_cleveland

region_of_murcia

renfrewshire

rhineland_palatinate

rhode_island

rhone

roscommon

rotherham

saarland

saone_et_loire

sardinia

sarthe

saskatchewan

savoie

saxony

saxony_anhalt

schaffhausen

schleswig_holstein

schwyz

scotland

scottish_borders

sefton

seine_et_marne

seine_maritime

seine_saint_denis

sheffield

shetland

shropshire

sicily

sikkim

sligo

somerset

somme

south_australia

south_carolina

south_dakota

south_holland

south_lanarkshire

southampton

southern_finland

st_gall

staffordshire

stirling

stockport

suffolk

sunderland

surrey

swansea

swindon

tamil_nadu

tarn

tarn_et_garonne

tasmania

telangana

telford_and_wrekin

tennessee

territoire_de_belfort

texas

thurgovia

thuringia

ticino

tipperary

torbay

trafford

trentino_alto_adige_sudtirol

tuscany

ulster

umbria

uri

utah

utrecht

uttar_pradesh

uttarakhand

val_d_oise

val_de_marne

valais

valencian_community

var

vaucluse

vaud

vendee

veneto

vermont

victoria

vienne

virginia

vosges

wales

wallonia

walsall

warrington

warwickshire

washington

washington_d_c

waterford

west_bengal

west_berkshire

west_sussex

west_virginia

western_australia

western_finland

western_isles

westmeath

wexford

wicklow

wiltshire

windsor_and_maidenhead

wirral

wisconsin

wolverhampton

worcestershire

wrexham

wyoming

yonne

york

yukon

yvelines

zealand

zug

zurich

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

date_asc

Sort by start date in ascending order (earliest first).

date_desc

Sort by start date in descending order (latest first).

default

Default sorting based on multiple factors like date, name, and client status.

distance_asc

Sort by distance in ascending order (closest first).

distance_desc

Sort by distance in descending order (farthest first).

geopoint_asc

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

geopoint_desc

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

run

trail_run

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

bay

canal

dirt_road

gravel

indoor

lake

multi_terrain

pool

river

road

sea

snow

stationary

track

trail

treadmill

urban_trail

Example
"bay"

Unit

Values
Enum Value Description

ft

km

m

mi

step

yard

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
}

tags

Fields
Field Name Description
code - String
names - LocalizedString
Example
{
  "code": "abc123",
  "names": LocalizedString
}

terrain

Fields
Field Name Description
code - String
names - LocalizedString
Example
{
  "code": "abc123",
  "names": LocalizedString
}