Race Roster API method calls are designed exclusively for private data access. API uses OAuth2 for authentication. All API requests must be authenticated with a valid OAuth token.
The access token must be provided in the authorization header:
Authorization: Bearer eyJ0eXAiOiJKV3QiLCJhbGciOiJSUzI1NiJ9.eyJhdWQiOiJFcGIyWjUyVVFaNWZjbWdKV3NwdkROVktaeEc2NGhOQTNzRWJuc2tZIiwianRpIjoiYjk2NTc1YzA3ZDczMDk0ZDQ3OGJlYjhlNTRhNjQ2NmFkMjc3YWY5NGVjNGRjZGRhNDBhNGMxMGUxNzk3OGIzZmUyZWJjOTE2ZjM4OTI5MTciLCJpYXQiOjE3NTMyMDQxNzAuNzc2ODk5LCJuYmYiOjE3NTMyMDQxNzAuNzc2OTAyLCJleHAiOjE3NTMyOTA1NzAuNzMzOTQ1LCJzdWIiOiI1Nzc4OTMyIiwic2NvcGVzIjpbInRpbWVyIl19.VeOzMUyckjzL4dUvLI973mG63x8Db94N_dboDOt8bae-k-OP5jneMZLhLkikCdqmc5naD_TJFnyp8CFjxt5knww_VJRSn2Xzm2ESmN1-vKKB50P9AVUQ2VQN8IyVgp_OSanF4McQS7ZVIsFGwRRhtT6wsiJdIsgUHqkiFwvVmPtbHAm1WwaC8y5Xf2Yn9KlAyP8WSnB23UBXRSmTBbDnvXcbMa2cniSaJKJdpoeJVLUjFsxv-WDhdvk8pnZZ04CoZeiPIWZK2BjkRCYagl9uhb7-ew0Vtdds6QhKri_grBe61xyPIHdO64RY-2p5s2LUJ0BCCZc4-E6hRPCYBNHwPw
For OAuth2 URLs see
Many API methods take optional parameters. For GET requests, any parameters not specified as a segment in the path can be passed as an HTTP query string parameter:
?firstKey=firstValue&options=comma,Delimited,Field,Options&secondKey=SecondValue
Race Roster's API supports responses in JSON format.
Standard boolean.
true|false
Standard integer.
4
Standard string
"Race Roster API"
A date in ISO8601 date format. Represented as a string.
When passing date with + character remember that plus character is
reserved character (RFC 2396) and it should be url encoded.
"2014-02-12T15:19:21+00:00"
A gender code based loosely on the ISO 5218 gender class, with the addition of a "Co-Ed" or "Mixed" gender for teams comprised of multiple genders. Represented as an integer.
0 = Prefer not to disclose,
1 = Male,
2 = Female,
8 = Co-Ed,
9 = Non-binary.
To authenticate users via the API, the Client application sends a POST request with form URL-Encoded body parameters to the authorization server.
Timers can obtain the client_id and client_secret by creating a new OAuth client from the API settings page: https://raceroster.com/dashboard/account/api-settings
The authorization server will respond with a JSON object that is contained in a top level "data" array. The JSON object contains the following properties:
access_token (string) - a JWT signed with the authorization server's private key
token_type (string) - with the value Bearer
expires_in (int) - with an integer representing the TTL of the access token in seconds. The value is set to 86400 (24 hours).
refresh_token (string) - This will only be returned if the provided grant_type was set to 'access_token'. This property is an encrypted payload that can be used to refresh the access token when it expires. This token will expire in 25 hours.
| Accept | string Example: application/json e.g. application/json |
grant_type=access_token&client_id=ILAH0GS9OccIjGAuavpZkJIGO6973pGtjWzESYRm&client_secret=Aho2z875Zxixl9n3WEU3Qj2ixiWepp0yX4bmhQIZ&username=example%40gmail.com&password=Password123
{- "data": [
- {
- "access_token": "eyJ0eXAiOiJKV3QiLCJhbGciOiJSUzI1NiJ9.eyJhdWQiOiJFcGIyWjUyVVFaNWZjbWdKV3NwdkROVktaeEc2NGhOQTNzRWJuc2tZIiwianRpIjoiYjk2NTc1YzA3ZDczMDk0ZDQ3OGJlYjhlNTRhNjQ2NmFkMjc3YWY5NGVjNGRjZGRhNDBhNGMxMGUxNzk3OGIzZmUyZWJjOTE2ZjM4OTI5MTciLCJpYXQiOjE3NTMyMDQxNzAuNzc2ODk5LCJuYmYiOjE3NTMyMDQxNzAuNzc2OTAyLCJleHAiOjE3NTMyOTA1NzAuNzMzOTQ1LCJzdWIiOiI1Nzc4OTMyIiwic2NvcGVzIjpbInRpbWVyIl19.VeOzMUyckjzL4dUvLI973mG63x8Db94N_dboDOt8bae-k-OP5jneMZLhLkikCdqmc5naD_TJFnyp8CFjxt5knww_VJRSn2Xzm2ESmN1-vKKB50P9AVUQ2VQN8IyVgp_OSanF4McQS7ZVIsFGwRRhtT6wsiJdIsgUHqkiFwvVmPtbHAm1WwaC8y5Xf2Yn9KlAyP8WSnB23UBXRSmTBbDnvXcbMa2cniSaJKJdpoeJVLUjFsxv-WDhdvk8pnZZ04CoZeiPIWZK2BjkRCYagl9uhb7-ew0Vtdds6QhKri_grBe61xyPIHdO64RY-2p5s2LUJ0BCCZc4-E6hRPCYBNHwPw",
- "expires_in": 86400,
- "refresh_token": "def50200ae20d63291b48da346fe416f6213b2389034fefc3005b00ce09a83504b3f30cec65dfac3c69c9d640dda3a5e18d538cf7a31b676a41ddb3d598ce8bcf900c0444987e6af3d602579d9e1cc8b1c6ce5a7afcaabb90820e2ffd62d175e2a24e7dc57fd1eb6da1b7ae473b03706b538bee3012695f4788329168e77cc06c18b45b1a89eec4fb26f737bc61abadd0a6bda70832eccd1456feb064e0b3399dd00cc345786496e6bb427198e2b72595872763ff499b3f2f928b21b8a2cf535c6ef43217439fb2b4d08c88ce6b6498bd0f23451fc95cbc5b72227643718da26640d62a727457670e9c48235bc8c97cfeab4d38sd91dd8870b2ea8ac5818cf62e57bfb592e75066a76e011b5ecdcda22e20c0272912b7ce22d94cea4eefaa76a4c00696ea024b46d418d015bc108f1006af0ef7b51c75ccccab3503132d26d26e1e2ac9e71725c351b3a11f1e097a434fc2cc10ab0b856b3818a48219b1dd4d5c961f1067e2ced53c7c985135dd3ea44bb39e8bd44153fcdfd362f09a579d7860205bf43f793eb82d41739ee403c9375009cec5bc2c05d",
- "token_type": "Bearer"
}
]
}Access tokens eventually expire. Refresh tokens enable the client to refresh the access token without asking the user for their username and password again.
Client application sends a POST request with form URL-Encoded body parameters to the authorization server.
Authorization server will grant a new access token for the user and respond with a JSON object containing the following properties:
access_token (string) - a JWT signed with the authorization server's private key
token_type (string) - with the value Bearer
expires_in (int) - with an integer representing the TTL of the access token in seconds. The value is set to 86400 (24 hours).
refresh_token (string) - an encrypted payload that can be used to refresh the access token when it expires. This token will expire in 25 hours.
| Accept | string Example: application/json e.g. application/json |
grant_type=refresh_token&client_id=ILAH0GS9OccIjGAuavpZkJIGO6973pGtjWzESYRm&client_secret=Aho2z875Zxixl9n3WEU3Qj2ixiWepp0yX4bmhQIZ&refresh_token=8hoepZbmVtZCNLBJCONt56iCiBBhW5Wa7zbjg3un
{- "data": [
- {
- "access_token": "eyJ0eXAiOiJKV3QiLCJhbGciOiJSUzI1NiJ9.eyJhdWQiOiJFcGIyWjUyVVFaNWZjbWdKV3NwdkROVktaeEc2NGhOQTNzRWJuc2tZIiwianRpIjoiYjk2NTc1YzA3ZDczMDk0ZDQ3OGJlYjhlNTRhNjQ2NmFkMjc3YWY5NGVjNGRjZGRhNDBhNGMxMGUxNzk3OGIzZmUyZWJjOTE2ZjM4OTI5MTciLCJpYXQiOjE3NTMyMDQxNzAuNzc2ODk5LCJuYmYiOjE3NTMyMDQxNzAuNzc2OTAyLCJleHAiOjE3NTMyOTA1NzAuNzMzOTQ1LCJzdWIiOiI1Nzc4OTMyIiwic2NvcGVzIjpbInRpbWVyIl19.VeOzMUyckjzL4dUvLI973mG63x8Db94N_dboDOt8bae-k-OP5jneMZLhLkikCdqmc5naD_TJFnyp8CFjxt5knww_VJRSn2Xzm2ESmN1-vKKB50P9AVUQ2VQN8IyVgp_OSanF4McQS7ZVIsFGwRRhtT6wsiJdIsgUHqkiFwvVmPtbHAm1WwaC8y5Xf2Yn9KlAyP8WSnB23UBXRSmTBbDnvXcbMa2cniSaJKJdpoeJVLUjFsxv-WDhdvk8pnZZ04CoZeiPIWZK2BjkRCYagl9uhb7-ew0Vtdds6QhKri_grBe61xyPIHdO64RY-2p5s2LUJ0BCCZc4-E6hRPCYBNHwPw",
- "expires_in": 86400,
- "refresh_token": "def50200ae20d63291b48da346fe416f6213b2389034fefc3005b00ce09a83504b3f30cec65dfac3c69c9d640dda3a5e18d538cf7a31b676a41ddb3d598ce8bcf900c0444987e6af3d602579d9e1cc8b1c6ce5a7afcaabb90820e2ffd62d175e2a24e7dc57fd1eb6da1b7ae473b03706b538bee3012695f4788329168e77cc06c18b45b1a89eec4fb26f737bc61abadd0a6bda70832eccd1456feb064e0b3399dd00cc345786496e6bb427198e2b72595872763ff499b3f2f928b21b8a2cf535c6ef43217439fb2b4d08c88ce6b6498bd0f23451fc95cbc5b72227643718da26640d62a727457670e9c48235bc8c97cfeab4d38sd91dd8870b2ea8ac5818cf62e57bfb592e75066a76e011b5ecdcda22e20c0272912b7ce22d94cea4eefaa76a4c00696ea024b46d418d015bc108f1006af0ef7b51c75ccccab3503132d26d26e1e2ac9e71725c351b3a11f1e097a434fc2cc10ab0b856b3818a48219b1dd4d5c961f1067e2ced53c7c985135dd3ea44bb39e8bd44153fcdfd362f09a579d7860205bf43f793eb82d41739ee403c9375009cec5bc2c05d",
- "token_type": "Bearer"
}
]
}List countries and regions.
| Accept | string Example: application/json e.g. application/json |
{- "data": [
- {
- "countries": {
- "US": "United States",
- "CA": "Canada",
- "AF": "Afghanistan",
- "AL": "Albania"
}, - "regions": {
- "CA": {
- "AB": "Alberta",
- "BC": "British Columbia"
}, - "US": {
- "AL": "Alabama",
- "AK": "Alaska"
}
}
}
]
}NOTE: This method will return only events with LIVE or PRIVATE status and event date greater than current date.
| offset | string Default: "0" Starting point for records returned per request |
| limit | string Default: "25" Number of records returned per request |
| sort | string Default: "startDate" Enum: "eventId" "name" "city" "region" "country" "startDate" "registrationOpenDate" "registrationCloseDate" Field name used to sort returned results |
| order | string Default: "desc" Enum: "asc" "desc" Results sorting |
| eventDateFrom | string Default: "null" Date filter used to return events with dates later than timestamp in ISO 8601 format: |
| eventDateTo | string Default: "null" Date filter used to return events with dates earlier than timestamp in ISO 8601 format: |
| lastModifiedDate | string Default: "null" Date filter used to return events with update dates greater than timestamp in ISO 8601 format: |
| eventIds | string Default: "null" Comma separated list of |
{- "data": [
- {
- "eventId": "44bf76b5-7c97-11",
- "type": "raceroster",
- "name": "2015 Alcatraz XXXV Escape from the Rock",
- "city": "San Francisco",
- "region": {
- "code": "CA",
- "name": "California"
}, - "country": {
- "code": "US",
- "name": "United States"
}, - "startDate": "2014-02-12T15:19:21+00:00",
- "timeZone": "America/Vancouver",
- "registrationOpenDate": "2014-02-12T15:19:21+00:00",
- "registrationCloseDate": "2014-02-12T15:19:21+00:00",
- "lastModifiedDate": "2015-02-11T15:19:12+00:00",
- "organizerName": "John Doe",
- "organizerEmail": "john@email.com",
- "organizerPhone": "+18559695515",
- "address": "Street 23, London, Ontario, Canada",
- "latitude": 43.7820344,
- "longitude": -88.4437064,
- "locale": "en_US",
- "description": "Lorem Ipsum description",
- "twitter": "RaceRoster",
- "branding": {
- "backgroundColor": "#F0F0F0",
- "primaryColor": "#2A6979",
- "primaryFontColor": "#FFFFFF",
- "secondaryColor": "#0099FF",
- "secondaryFontColor": "#FFFFFF",
- "tertiaryColor": "#0099FF",
- "tertiaryFontColor": "#FFFFFF"
}, - "subEvents": {
- "data": [
- {
- "subEventId": 12,
- "name": "Individual",
- "maxParticipants": "-1",
- "participantMinAge": "",
- "participantMaxAge": "",
- "subEventDistance": {
- "id": "a6e22291-a6ed-11e8-8c16-0a2fd0bccf82",
- "type": "running",
- "label": "5 km",
- "value": "5",
- "unit": "km",
- "inMeters": "5000"
}, - "distance": "5",
- "distanceType": "km",
- "customSubEventDate": "2014-02-12T15:19:21+00:00"
}, - {
- "subEventId": 14,
- "name": "Relay Team",
- "maxParticipants": "-1",
- "participantMinAge": "",
- "participantMaxAge": "",
- "subEventDistance": {
- "id": "a6e22f75-a6ed-11e8-8c16-0a2fd0bccf82",
- "type": "other",
- "label": "Other distance",
- "value": "16",
- "unit": "mi",
- "inMeters": "25750"
}, - "distance": "16",
- "distanceType": "mi",
- "customSubEventDate": null
}, - {
- "subEventId": 15,
- "name": "Swim-Only",
- "maxParticipants": "-1",
- "participantMinAge": "",
- "participantMaxAge": "",
- "subEventDistance": {
- "id": "a6e22ef8-a6ed-11e8-8c16-0a2fd0bccf82",
- "type": "swimming",
- "label": "1500 m",
- "value": 1500,
- "unit": "m",
- "inMeters": "1500"
}, - "distance": "1500",
- "distanceType": "m",
- "customSubEventDate": null
}
]
}
}
]
}This method will create an event.
| countryCode required | string Enum: "US" "CA" "MX" "AG" "AR" "AU" "BB" "BR" "KY" "CL" "CN" "CU" "DO" "EC" "GD" "HK" "ID" "IN" "IL" "JM" "JP" "KE" "NZ" "NI" "NO" "PH" "RU" "SG" "LC" "ZA" "TH" "TT" "TR" "GB" "BS" "CR" "NL" "AE" The country code that the event will take place in. |
| currency required | string Enum: "CAD" "USD" "MXN" "RUB" "AUD" "EUR" "DKK" "GBP" "SEK" The currency of the event. |
| name required | string The name of the event. |
| eventDate required | string The date of the event in ATOM or ISO 8601 format: YYYY-MM-DDTHH:MM:SS+/-HH:MM. e.g. 2024-06-25T09:00:00-0400 or 2024-06-25T09:00:00-04:00. |
| accessCode | string This field is required if the event organizer email is provided. This access code will be used by the new event organizer during the event claiming process. This access code must be shared with the new event organizer in order for them to complete the event claiming process. |
| lineOne | string The 1st line of the address that the event will take place in. |
| lineTwo | string The 2nd line of the address that the event will take place in. |
| city | string The city that the event will take place in. |
| postalCode | string The ZIP/postal code that the event will take place in. |
| companyId | integer The company ID of the event. If omitted then the first company that the account belongs to will be used. |
| eventOrganizerEmail | string The email address of the user who will be added as an event organizer for this event. An email will be sent to this email address, which will allow the end user to claim this event and become a race organizer. |
| eventTypeId | integer The event type ID of the event. If omitted then a default value of 1 will be used, which represents a Running event. |
| fullAddress | string The address that the event will take place in. |
| status | string Enum: "LIVE" "PRIVATE" The status of the event. If omitted then a default value of "PRIVATE" will be used. |
| subdivisionCode required | string The sub division code that the event will take place in. Required if the country code is one of: AU, CA, TT, US. This value must be one of the following options for the given country code: AU [ ACT, NSW, NT, QLD, SA, TAS, VIC, WA ], CA [ AB, BC, MB, NB, NL, NS, ON, PE, QC, SK, NT, NU, YT ], TT [ ARI, CHA, CTT, DMN, MRC, PED, PTF, POS, PRT, SGE, SJL, SFO, SIP, TOB, TUP ], US [ AA, AE, AL, AP, APO, AK, AZ, AR, CA, CO, CT, DE, DC, FL, GA, HI, ID, IL, IN, IA, KS, KY, LA, ME, MD, MA, MI, MN, MS, MO, MT, NE, NV, NH, NJ, NM, NY, NC, ND, OH, OK, OR, PA, RI, SC, SD, TN, TX, UT, VT, VA, WA, WV, WI, WY ]. If the provided country code is not one of ones mentioned above then do not include this parameter in the request. |
| timezone | string The timezone of the date for the event. Generally it should match the timezone offset of the eventDate value. If the timezone provided does not match the offset in eventDate, the event date will be converted to align with the timezone provided. e.g. an eventDate: "2024-08-06T00:00:00-07:00" with timezone: "America/Vancouver" yields 2024-08-06 00:00:00, but an eventDate: "2024-08-06T00:00:00-04:00" with timezone: "America/Vancouver" yields 2024-08-05 21:00:00. If no timezone is provided then this value will be determined based on the offset given in the event date. The valid options depend on the provided country code. If the country code is CA for example, then the valid timezones would be: [ America/Dawson, America/Vancouver, America/Whitehorse, America/Cambridge_Bay, America/Creston, America/Dawson_Creek, America/Edmonton, America/Fort_Nelson, America/Inuvik, America/Yellowknife, America/Rainy_River, America/Rankin_Inlet, America/Regina, America/Resolute, America/Swift_Current, America/Winnipeg, America/Atikokan, America/Iqaluit, America/Nipigon, America/Pangnirtung, America/Thunder_Bay, America/Toronto, America/Blanc-Sablon, America/Glace_Bay, America/Goose_Bay, America/Halifax, America/Moncton, America/St_Johns ] |
| locale | string Enum: "en_US" "en_CA" "fr_CA" "ja_JP" "id_ID" "ms_MY" "en_AU" "en_GB" "en_AE" "en_NZ" "es_MX" "zh_CN" "zh_HK" "th_TH" "vi_VN" The locale of the event. If omitted then a default value of "en_US" will be used. More locales are added regularly. |
{- "countryCode": "CA",
- "currency": "CAD",
- "eventDate": "2019-11-11T15:19:21-0700",
- "name": "2019 Race Roster 10k",
- "accessCode": "password1234",
- "lineOne": "186 York St",
- "lineTwo": "",
- "city": "London",
- "postalCode": "N6A 1B5",
- "companyId": 1,
- "eventOrganizerEmail": "example@example.com",
- "eventTypeId": 2,
- "fullAddress": "186 York St, London, ON N6A 1B5",
- "status": "LIVE",
- "subdivisionCode": "ON",
- "timezone": "America/Dawson_Creek",
- "locale": "en_US"
}{- "eventId": "cd53c6e9-9e4b-4e60-b49a-142171c27560",
}This method will create a sub-event.
| eventId required | string Event ID |
| name required | string The name of the sub-event |
| description | string The description of the sub-event |
| minimumAge | integer The minimum age of entry for participants to this sub-event. |
| maximumAge | integer The maximum age of entry for participants to this sub-event |
| restrictAccess | boolean Restrict this sub-event to participants that have access codes |
| calculateAgeAsOf | string Enum: "event-date" "date-registered" "year-end" "custom" The date used to calculate the age of the participants |
| customDate | string The date of the event. This field is required if the calculateAgeAsOf field is set to "custom". Must be provided in the following format: YYYY-MM-DD |
| distanceId | string The ID of the distance of the event. If provided then one of the following values must be provided: [5K => a6e22291-a6ed-11e8-8c16-0a2fd0bccf82] [10K => a6e22468-a6ed-11e8-8c16-0a2fd0bccf82] [Half marathon => a6e225a3-a6ed-11e8-8c16-0a2fd0bccf82] [1K => a6e22657-a6ed-11e8-8c16-0a2fd0bccf82] [1 Mile => a6e226e9-a6ed-11e8-8c16-0a2fd0bccf82] [Marathon => a6e22777-a6ed-11e8-8c16-0a2fd0bccf82] [8K => a6e227fa-a6ed-11e8-8c16-0a2fd0bccf82] [10 Mile => a6e22882-a6ed-11e8-8c16-0a2fd0bccf82] [50K => a6e22906-a6ed-11e8-8c16-0a2fd0bccf82] [8 Mile => a6e22986-a6ed-11e8-8c16-0a2fd0bccf82] [60K => a6e22a03-a6ed-11e8-8c16-0a2fd0bccf82] [75K => a6e22a7f-a6ed-11e8-8c16-0a2fd0bccf82] [100K => a6e22afb-a6ed-11e8-8c16-0a2fd0bccf82] [Century => a6e22b84-a6ed-11e8-8c16-0a2fd0bccf82] [Half century => a6e22c05-a6ed-11e8-8c16-0a2fd0bccf82] [Metric century => a6e22c86-a6ed-11e8-8c16-0a2fd0bccf82] [Sprint (750 m, 20 km, 5 km) => a6e22d04-a6ed-11e8-8c16-0a2fd0bccf82] [Olympic (1.5 km, 40 km, 10 km) => a6e22d83-a6ed-11e8-8c16-0a2fd0bccf82] [Half distance (1.9 km, 90 km, 21.1 km) => a6e22e00-a6ed-11e8-8c16-0a2fd0bccf82] [Long distance (3.9 km, 181 km, 42.2 km) => a6e22e7d-a6ed-11e8-8c16-0a2fd0bccf82] [1500 m => a6e22ef8-a6ed-11e8-8c16-0a2fd0bccf82] [Other distance => a6e22f75-a6ed-11e8-8c16-0a2fd0bccf82] |
| distanceValue | number The distance of the sub-event. This field is required if the "other distance" ID is used as the value in the distance ID field |
| distanceUnit | string Enum: "kilometers" "meters" "miles" "yards" The unit of measurement for the distance of the sub-event. This field is required if the "other distance" ID is used as the value in the distance ID field |
{- "name": "2019 Race Roster 50 miler",
- "description": "A family fun event where you can walk or run!",
- "minimumAge": 5,
- "maximumAge": 85,
- "restrictAccess": true,
- "calculateAgeAsOf": "custom",
- "customDate": "2000-12-25",
- "distanceId": "a6e22f75-a6ed-11e8-8c16-0a2fd0bccf82",
- "distanceValue": 50,
- "distanceUnit": "miles"
}{- "subEventId": "12345",
- "subEventDashboardUrl": "https://raceroster.com/dashboard/event-organizers/event/1/sub-events/12345/properties"
}NOTE: This method will return only events with LIVE or PRIVATE status.
| eventId required | string Event ID |
{- "eventId": "44bf76b5-7c97-11",
- "type": "raceroster",
- "name": "2015 Alcatraz XXXV Escape from the Rock",
- "city": "San Francisco",
- "region": {
- "code": "CA",
- "name": "California"
}, - "country": {
- "code": "US",
- "name": "United States"
}, - "startDate": "2014-02-12T15:19:21+00:00",
- "timeZone": "America/Vancouver",
- "registrationOpenDate": "2014-02-12T15:19:21+00:00",
- "registrationCloseDate": "2014-02-12T15:19:21+00:00",
- "lastModifiedDate": "2015-02-11T15:19:12+00:00",
- "organizerName": "John Doe",
- "organizerEmail": "john@email.com",
- "organizerPhone": "+18559695515",
- "address": "Street 23, London, Ontario, Canada",
- "latitude": 43.7820344,
- "longitude": -88.4437064,
- "locale": "en_US",
- "description": "Lorem Ipsum description",
- "twitter": "RaceRoster",
- "branding": {
- "backgroundColor": "#F0F0F0",
- "primaryColor": "#2A6979",
- "primaryFontColor": "#FFFFFF",
- "secondaryColor": "#0099FF",
- "secondaryFontColor": "#FFFFFF",
- "tertiaryColor": "#0099FF",
- "tertiaryFontColor": "#FFFFFF"
}, - "subEvents": {
- "data": [
- {
- "subEventId": 12,
- "name": "Individual",
- "maxParticipants": "-1",
- "participantMinAge": "",
- "participantMaxAge": "",
- "subEventDistance": {
- "id": "a6e22291-a6ed-11e8-8c16-0a2fd0bccf82",
- "type": "running",
- "label": "5K",
- "value": "5",
- "unit": "km",
- "inMeters": "5000"
}, - "distance": "5",
- "distanceType": "km",
- "customSubEventDate": "2014-02-12T15:19:21+00:00"
}, - {
- "subEventId": 14,
- "name": "Relay Team",
- "maxParticipants": "-1",
- "participantMinAge": "",
- "participantMaxAge": "",
- "subEventDistance": {
- "id": "a6e22f75-a6ed-11e8-8c16-0a2fd0bccf82",
- "type": "other",
- "label": "Other distance",
- "value": "16",
- "unit": "mi",
- "inMeters": "25750"
}, - "distance": "16",
- "distanceType": "mi",
- "customSubEventDate": null
}, - {
- "subEventId": 15,
- "name": "Swim-Only",
- "maxParticipants": "-1",
- "participantMinAge": "",
- "participantMaxAge": "",
- "subEventDistance": {
- "id": "a6e22ef8-a6ed-11e8-8c16-0a2fd0bccf82",
- "type": "swimming",
- "label": "1500 m",
- "value": "1500",
- "unit": "m",
- "inMeters": "1500"
}, - "distance": "1500",
- "distanceType": "m",
- "customSubEventDate": null
}
]
}
}This method will update event settings.
| eventId required | string Event ID |
| timingCrewId | integer The ID of the timing crew |
| notificationMethod required | string Enum: "DISABLED" "USER" "TIMING_CREW" The notification method setting |
| resultsPerPage | integer The number of results per page by default |
| eventTimePrecision required | string Enum: "full_second" "tenth_of_a_second" "hundredth_of_a_second" "thousandth_of_a_second" The event time precision setting |
{- "timingCrewId": 100,
- "notificationMethod": "USER",
- "resultsPerPage": 50,
- "eventTimePrecision": "full_second"
}Returns the amount raised for each participant of an event.
| eventId required | string Event ID |
{- "data": [
- {
- "fundraiserId": 123,
- "name": "Casey Smith",
- "totalRaised": 123322,
- "currency": "CAD",
}, - {
- "fundraiserId": 321,
- "name": "Sam Johnson",
- "totalRaised": 7644,
- "currency": "CAD",
}
], - "metadata": {
- "totalResults": 2
}
}Returns the amount raised for each team of an event.
| eventId required | string Event ID |
{- "data": [
- {
- "teamId": 123,
- "name": "Casey Smith",
- "totalRaised": 123322,
- "currency": "CAD",
}, - {
- "teamId": 321,
- "name": "Sam Johnson",
- "totalRaised": 7644,
- "currency": "CAD",
}
], - "metadata": {
- "totalResults": 2
}
}Retrieve list of participants for given event ID.
NOTE: By default method will return participants for all sub-events.
NOTE: profile information visibility is enabled/disabled by Race Directors.
In case profile data is not shared through API profile array will be just empty.
NOTE: USAT number is provided in read only mode. It can not be updated or set when participant is updated or created.
| eventId required | string Event ID |
| subEventId | string Sub-event ID filter |
| modifiedAfterDateTime | string UTC Date Time string. Date filter used to return events with dates later than timestamp in ISO 8601 format: |
| teamId | string Team ID filter used to return participants that are members on a given |
| hasTeam | boolean Team filter based on whether a participant is assigned to a team or not
|
| offset | string Default: "0" Starting point for records returned per request |
| limit | string Default: "500" Number of records returned per request |
| sort | string Default: "participantId" Enum: "participantId" "registrationDate" "age" Field name used to sort returned results |
| order | string Default: "asc" Enum: "asc" "desc" Results sorting |
| include | string Default: "charity,promoCode,shippingDetails,inactive,teamDetails,startGroup" Enum: "charity" "promoCode" "shippingDetails" "inactive" "teamDetails" "startGroup" Comma separated list of field names to be included in returned results |
{- "data": [
- {
- "participantId": 100947,
- "uniqueParticipantId": "3P100947",
- "transactionId": 8281947,
- "subEventId": 12,
- "registrationDate": "2013-08-18T12:22:14-0400",
- "lastModifiedDate": "2015-03-18T13:10:28-0400",
- "name": "Mark McMullen",
- "dob": "1939-11-20",
- "age": 51,
- "gender": 1,
- "city": "London",
- "region": {
- "code": "ON",
- "name": "Ontario"
}, - "country": {
- "code": "CA",
- "name": "Canada"
}, - "firstName": "Mark",
- "lastName": "McMullen",
- "teamId": 3,
- "bibNumber": "2992",
- "checkInDate": "2015-03-18T13:10:28-0400",
- "isActive": true,
- "isAnonymous": false,
- "usatNumber": "1A2B3C4D5E",
- "profile": {
- "email": "testemail@gmail.com",
- "address": "2201 Dogwood Cres",
- "phone": "+18559695515",
- "postal": "N6A 1B5"
}, - "bundleRegistration": false,
- "swag": [ ],
- "registrationQuestions": {
- "data": [
- {
- "questionId": 24098,
- "questionOptionId": 76598,
- "questionTitle": "Question Two",
- "questionAnswer": "Yes"
}, - {
- "questionId": 24097,
- "questionOptionId": null,
- "questionTitle": "Question One",
- "questionAnswer": "test"
}, - {
- "questionId": 24000,
- "questionOptionId": null,
- "questionTitle": "Emergency contact first name",
- "questionAnswer": "John"
}, - {
- "questionId": 24001,
- "questionOptionId": null,
- "questionTitle": "Emergency contact last name",
- "questionAnswer": "Deer"
}, - {
- "questionId": 24002,
- "questionOptionId": null,
- "questionTitle": "Emergency contact phone number",
- "questionAnswer": "555-555-5555"
}, - {
- "questionId": 24003,
- "questionOptionId": null,
- "questionTitle": "Emergency contact email address",
- "questionAnswer": "john_deer@example.com"
}
]
}, - "emergencyContact": {
- "data": [
- {
- "questionId": 24000,
- "questionOptionId": null,
- "questionTitle": "Emergency contact first name",
- "questionAnswer": "John",
- "type": "contact_first_name"
}, - {
- "questionId": 24001,
- "questionOptionId": null,
- "questionTitle": "Emergency contact last name",
- "questionAnswer": "Deer",
- "type": "contact_last_name"
}, - {
- "questionId": 24002,
- "questionOptionId": null,
- "questionTitle": "Emergency contact phone number",
- "questionAnswer": "555-555-5555",
- "type": "contact_phone"
}, - {
- "questionId": 24003,
- "questionOptionId": null,
- "questionTitle": "Emergency contact email address",
- "questionAnswer": "john_deer@example.com",
- "type": "contact_email"
}
]
}, - "registrationTotals": {
- "netRegistrationTotal": "100.00",
- "netSwagTotal": "0.00"
}, - "team": {
- "teamId": 3,
- "teamName": "Example Team",
- "teamTypeId": 1234
}, - "teamDetails": {
- "teamType": {
- "label": "Running for Office",
- "minParticipantsRequired": 1,
- "maxParticipantsAllowed": 10,
- "teamCategoryType": [
- {
- "id": 1,
- "type": "Standard"
}
]
}, - "teamLeader": "Wilson Fisk",
- "pledgeGoal": 2,
- "pledgeText": null,
- "memberCount": 4
}, - "charity": {
- "type": "grassrootz",
- "charityId": 790,
- "name": "Stroke Foundation of New Zealand"
}, - "promoCode": {
- "code": "RRPromoCode"
}, - "shippingDetails": {
- "firstName": "Mark",
- "lastName": "McMullen",
- "phoneNumber": "+1 855-969-5515",
- "address": {
- "lineOne": "2201 Dogwood Cres",
- "lineTwo": "",
- "city": "London",
- "provinceState": "ON",
- "postalCode": "N6A 1B5",
- "countryCode": "CA"
}
}, - "startGroup": {
- "uuid": "35854a66-61e1-4e2c-9373-11daf42f2b79",
- "name": "Test Start Group"
}
}, - {
- "participantId": 100948,
- "uniqueParticipantId": "3P100948",
- "transactionId": 8281948,
- "subEventId": 12,
- "registrationDate": "2013-08-19T08:39:10-0400",
- "lastModifiedDate": "2015-03-18T13:10:28-0400",
- "name": "Hilary Runner",
- "age": 36,
- "gender": 2,
- "city": "London",
- "region": {
- "code": "ON",
- "name": "Ontario"
}, - "country": {
- "code": "CA",
- "name": "Canada"
}, - "firstName": "Hilary",
- "lastName": "Runner",
- "teamId": null,
- "bibNumber": null,
- "checkInDate": null,
- "isActive": true,
- "isAnonymous": false,
- "usatNumber": "12345ABCDE",
- "profile": {
- "email": null,
- "address": null,
- "phone": "+1111000033",
- "postal": "N6A 1B5"
}, - "bundleRegistration": true,
- "swag": {
- "data": [
- {
- "swagTransactionId": 123123,
- "swagId": 2315,
- "swagOptionId": 9416,
- "swagName": "Race Day T-Shirt",
- "swagOptionName": "Men's Small",
- "quantityPurchased": 1
}, - {
- "swagTransactionId": null,
- "swagId": 2319,
- "swagOptionId": 9430,
- "swagName": "Buy This Swag",
- "swagOptionName": "yes",
- "quantityPurchased": 1
}
]
}, - "registrationQuestions": [ ],
- "emergencyContact": [ ],
- "registrationTotals": {
- "netRegistrationTotal": "100.00",
- "netSwagTotal": "50.00"
}, - "team": {
- "teamId": null,
- "teamName": null,
- "teamTypeId": null
}, - "teamDetails": [ ],
- "charity": {
- "type": "grassrootz",
- "charityId": 790,
- "name": "Stroke Foundation of New Zealand"
}, - "promoCode": {
- "code": "RRPromoCode"
}, - "shippingDetails": {
- "firstName": "Hilary",
- "lastName": "Runner",
- "phoneNumber": "+1 111-000-033",
- "address": {
- "lineOne": "2202 Dogwood Cres",
- "lineTwo": "",
- "city": "London",
- "provinceState": "ON",
- "postalCode": "N6A 1B5",
- "countryCode": "CA"
}
}, - "startGroup": {
- "uuid": "35854a66-61e1-4e2c-9373-11daf42f2b79",
- "name": "Test Start Group"
}
}
], - "metadata": {
- "totalResults": 2
}
}Update one or more participants and their fields at a time.
| eventId required | string Event ID |
[- {
- "participantId": 12331,
- "subEventId": 12,
- "firstName": "John",
- "lastName": "Smith",
- "email": "john@smith.com",
- "phone": "+18559695515",
- "dob": "1984-02-21",
- "isActive": false
}, - {
- "participantId": 12332,
- "subEventId": 12,
- "firstName": "Paul",
- "lastName": "Johnes",
- "email": "paul@johnes.com",
- "phone": "+18559695515",
- "dob": "1984-02-23",
- "address": "493 Drive",
- "city": "London",
- "region": "ON",
- "country": "CA",
- "postal": "N5Y 5V1",
- "gender": 2,
- "teamId": 3,
- "bibNumber": null,
- "isActive": true
}
]{- "code": 405,
- "message": "Method not allowed"
}Retrieve participant for given event ID and participant ID.
NOTE: profile information visibility is enabled/disabled by Race Directors.
In case profile data is not shared through API profile array will be just empty.
The properties shippingDetails and swag..swagTransactionId were added on February 12, 2024.
| eventId required | string Event ID |
| participantId required | string Participant ID |
| include | string Default: "charity,promoCode,shippingDetails,teamDetails,startGroup" Enum: "charity" "promoCode" "shippingDetails" "teamDetails" "startGroup" Comma separated list of field names to be included in returned results |
{- "data": {
- "participantId": 501213,
- "uniqueParticipantId": "3P501213",
- "transactionId": 8281947,
- "subEventId": 12,
- "registrationDate": "2015-04-23T19:38:09-0400",
- "lastModifiedDate": "2015-04-24T19:38:09-0400",
- "name": "Paul Johnes",
- "dob": "1952-12-21",
- "age": 31,
- "gender": 2,
- "city": "London",
- "region": {
- "code": "ON",
- "name": "Ontario"
}, - "country": {
- "code": "CA",
- "name": "Canada"
}, - "firstName": "Paul",
- "lastName": "Johnes",
- "teamId": 3,
- "bibNumber": "123",
- "checkInDate": "2015-04-24T19:38:09-0400",
- "isActive": true,
- "isAnonymous": false,
- "usatNumber": "1A2B3C4D5E",
- "profile": {
- "email": null,
- "address": null,
- "phone": "+18559695515",
- "postal": "N6A 1B5"
}, - "bundleRegistration": false,
- "swag": {
- "data": [
- {
- "swagTransactionId": 123456,
- "swagId": 2315,
- "swagOptionId": 9416,
- "swagName": "Race Day T-Shirt",
- "swagOptionName": "Men's Small",
- "quantityPurchased": 1
}, - {
- "swagTransactionId": null,
- "swagId": 2319,
- "swagOptionId": 9430,
- "swagName": "Buy This Swag",
- "swagOptionName": "yes",
- "quantityPurchased": 1
}
]
}, - "registrationQuestions": {
- "data": [
- {
- "questionId": 24098,
- "questionOptionId": 76598,
- "questionTitle": "Question Two",
- "questionAnswer": "Yes"
}, - {
- "questionId": 24097,
- "questionOptionId": null,
- "questionTitle": "Question One",
- "questionAnswer": "test"
}, - {
- "questionId": 24000,
- "questionOptionId": null,
- "questionTitle": "Emergency contact first name",
- "questionAnswer": "John"
}, - {
- "questionId": 24001,
- "questionOptionId": null,
- "questionTitle": "Emergency contact last name",
- "questionAnswer": "Deer"
}, - {
- "questionId": 24002,
- "questionOptionId": null,
- "questionTitle": "Emergency contact phone number",
- "questionAnswer": "555-555-5555"
}, - {
- "questionId": 24003,
- "questionOptionId": null,
- "questionTitle": "Emergency contact email address",
- "questionAnswer": "john_deer@example.com"
}
]
}, - "emergencyContact": {
- "data": [
- {
- "questionId": 24000,
- "questionOptionId": null,
- "questionTitle": "Emergency contact first name",
- "questionAnswer": "John",
- "type": "contact_first_name"
}, - {
- "questionId": 24001,
- "questionOptionId": null,
- "questionTitle": "Emergency contact last name",
- "questionAnswer": "Deer",
- "type": "contact_last_name"
}, - {
- "questionId": 24002,
- "questionOptionId": null,
- "questionTitle": "Emergency contact phone number",
- "questionAnswer": "555-555-5555",
- "type": "contact_phone"
}, - {
- "questionId": 24003,
- "questionOptionId": null,
- "questionTitle": "Emergency contact email address",
- "questionAnswer": "john_deer@example.com",
- "type": "contact_email"
}
]
}, - "registrationTotals": {
- "netRegistrationTotal": "100.00",
- "netSwagTotal": "50.00"
}, - "team": {
- "teamId": 3,
- "teamName": "Example Team",
- "teamTypeId": 1234
}, - "teamDetails": {
- "teamType": {
- "label": "Running for Office",
- "minParticipantsRequired": 1,
- "maxParticipantsAllowed": 10,
- "teamCategoryType": [
- {
- "id": 1,
- "type": "Standard"
}
]
}, - "teamLeader": "Wilson Fisk",
- "pledgeGoal": 2,
- "pledgeText": null,
- "memberCount": 4
}, - "charity": {
- "type": "grassrootz",
- "charityId": 790,
- "name": "Stroke Foundation of New Zealand"
}, - "promoCode": {
- "code": "RRPromoCode"
}, - "shippingDetails": {
- "firstName": "Mark",
- "lastName": "McMullen",
- "phoneNumber": "+1 855-969-5515",
- "address": {
- "lineOne": "2201 Dogwood Cres",
- "lineTwo": "",
- "city": "London",
- "provinceState": "ON",
- "postalCode": "N6A 1B5",
- "countryCode": "CA"
}
}, - "startGroup": {
- "uuid": "35854a66-61e1-4e2c-9373-11daf42f2b79",
- "name": "Test Start Group"
}
}
}Opt-in or opt-out participant.
| eventId required | string Event ID |
| type required | string Default: "" Enum: "sms" "email" Type of address that will be opted-in or opted-out |
| address required | string Default: "" Valid phone number or valid email address. Phone number needs to be provided in E.163 format ie.: +14155552671 |
| participantId required | integer Default: 0 |
| optIn required | boolean Default: false |
[- {
- "type": "sms",
- "address": "12265031455",
- "participantId": 6999,
- "optIn": true
}, - {
- "type": "sms",
- "address": "+12265031456",
- "participantId": 6997,
- "optIn": true
}, - {
- "type": "sms",
- "address": "+12265031457",
- "participantId": 6998,
- "optIn": false
}
]{- "error": 400,
- "message": "Bad Request. The data in your request failed validation. Request cannot be empty [code: e_5e6930aa40e81]"
}Retrieve list of team types for given event ID.
| eventId required | string Event ID |
| offset | string Default: "0" Starting point for records returned per request |
| limit | string Default: "25" Number of records returned per request |
| sort | string Default: "teamTypeId" Field name used to sort returned results |
| order | string Default: "asc" Enum: "asc" "desc" Results sorting |
{- "data": [
- {
- "teamTypeId": 1,
- "eventId": "44bf76b5-7c97-11",
- "teamTypeName": "Running for Office",
- "minParticipantsRequired": 1,
- "maxParticipantsAllowed": 10,
- "teamCategoryType": [
- {
- "teamCategoryTypeId": 1,
- "type": "Standard"
}
]
}, - {
- "teamTypeId": 3,
- "eventId": "44bf76b5-7c97-11",
- "teamTypeName": "Spouses (2 person team)",
- "minParticipantsRequired": 2,
- "maxParticipantsAllowed": 2,
- "teamCategoryType": [
- {
- "teamCategoryTypeId": 2,
- "teamCategoryTypeName": "Relay"
}
]
}
]
}Retrieve a single team types for given event ID.
| eventId required | string Event ID |
| teamTypeId required | string Team Type ID |
{- "data": {
- "teamTypeId": 1,
- "eventId": "44bf76b5-7c97-11",
- "teamTypeName": "Running for Office",
- "minParticipantsRequired": 1,
- "maxParticipantsAllowed": 10,
- "teamCategoryType": [
- {
- "teamCategoryTypeId": 1,
- "type": "Standard"
}
]
}
}Retrieve list of teams for given event ID.
| eventId required | string Event ID |
| offset | string Default: "0" Starting point for records returned per request |
| limit | string Default: "500" Number of records returned per request |
| sort | string Default: "teamId" Field name used to sort returned results |
| order | string Default: "asc" Enum: "asc" "desc" Results sorting |
| include | string Default: "``" Value: "teamType" Comma separated list of field names to be included in returned teams |
{- "data": [
- {
- "teamId": 13292,
- "teamTypeId": 1,
- "teamType": {
- "label": "Running for Office",
- "minParticipantsRequired": 1,
- "maxParticipantsAllowed": 10,
- "teamCategoryType": {
- "id": 1,
- "type": "Standard"
}
}, - "teamName": "Team #1",
- "teamLeader": "Wilson Fisk",
- "pledgeGoal": 2,
- "pledgeText": null,
- "memberCount": 4
}, - {
- "teamId": 13291,
- "teamTypeId": 2,
- "teamType": {
- "label": "Running for Safety",
- "minParticipantsRequired": 1,
- "maxParticipantsAllowed": 2,
- "teamCategoryType": {
- "id": 1,
- "type": "Standard"
}
}, - "teamName": "Team #2",
- "teamImage": null,
- "teamLeader": "Sean Leonard",
- "pledgeGoal": null,
- "pledgeText": null,
- "memberCount": 14
}
], - "metadata": {
- "totalResults": 2
}
}| eventId required | string Event ID |
| offset | string Default: "0" Starting point for records returned per request |
| limit | string Default: "500" Number of records returned per request |
| sort | string Default: "teamId" Field name used to sort returned results |
| order | string Default: "asc" Enum: "asc" "desc" Results sorting |
| include | string Default: "``" Value: "teamType" Comma separated list of field names to be included in returned teams |
{- "code": 405,
- "message": "Method not allowed"
}| eventId required | string Event ID |
| offset | string Default: "0" Starting point for records returned per request |
| limit | string Default: "500" Number of records returned per request |
| sort | string Default: "teamId" Field name used to sort returned results |
| order | string Default: "asc" Enum: "asc" "desc" Results sorting |
| include | string Default: "``" Value: "teamType" Comma separated list of field names to be included in returned teams |
{- "code": 405,
- "message": "Method not allowed"
}| eventId required | string Event ID |
| offset | string Default: "0" Starting point for records returned per request |
| limit | string Default: "500" Number of records returned per request |
| sort | string Default: "teamId" Field name used to sort returned results |
| order | string Default: "asc" Enum: "asc" "desc" Results sorting |
| include | string Default: "``" Value: "teamType" Comma separated list of field names to be included in returned teams |
{- "code": 405,
- "message": "Method not allowed"
}Retrieve list of registration questions for given event ID.
| eventId required | string Event ID |
{- "data": [
- {
- "questionId": 7939,
- "questionTitle": "How did you hear about our event?",
- "questionDescription": null,
- "questionType": "textarea",
- "questionPosition": 0,
- "questionTeamTypeId": null,
- "questionParentId": null,
- "questionAppliesToAllSubEvents": false,
- "isQuestionRequired": true
}, - {
- "questionId": 7948,
- "questionTitle": "Name of emergency contact",
- "questionDescription": null,
- "questionType": "textbox",
- "questionPosition": 0,
- "questionTeamTypeId": 1400,
- "questionParentId": null,
- "questionAppliesToAllSubEvents": false,
- "isQuestionRequired": true
}, - {
- "questionId": 7949,
- "questionTitle": "Phone number of emergency contact",
- "questionDescription": null,
- "questionType": "textbox",
- "questionPosition": 0,
- "questionTeamTypeId": 1400,
- "questionParentId": null,
- "questionAppliesToAllSubEvents": false,
- "isQuestionRequired": false
}
]
}Retrieve a single registration question for given event ID.
| eventId required | string Event ID |
| questionId required | string Registration question ID |
{- "data": {
- "questionId": 7939,
- "questionTitle": "How did you hear about our event?",
- "questionDescription": null,
- "questionType": "textarea",
- "questionPosition": 0,
- "questionTeamTypeId": null,
- "questionParentId": null,
- "questionAppliesToAllSubEvents": false,
- "isQuestionRequired": true
}
}Retrieve registration question options.
| eventId required | string Event ID |
| questionId required | string Registration question ID |
{- "data": [
- {
- "questionOptionId": 753,
- "questionOptionAnswer": "Yes",
- "questionOptionValue": "yes"
}, - {
- "questionOptionId": 754,
- "questionOptionAnswer": "No",
- "questionOptionValue": "no"
}, - {
- "questionOptionId": 755,
- "questionOptionAnswer": "I don't remember",
- "questionOptionValue": "i-dont-remember"
}
]
}Retrieve registration question option by ID.
| eventId required | string Event ID |
| questionId required | string Registration question ID |
| optionId required | string Question option ID |
{- "data": {
- "questionOptionId": 753,
- "questionOptionAnswer": "Yes",
- "questionOptionValue": "yes",
- "questionOptionWeight": 0
}
}Retrieve a single product for given event ID.
| eventId required | string Event ID |
| productId required | string Registration question ID |
{- "data": {
- "productId": 2316,
- "productName": "Insurance Policy",
- "productDescription": "This item is mandatory.",
- "productPrice": 1,
- "productDisplayOrder": 0,
- "isProductActive": true,
- "productImages": [
- {
- "productImageId": 345,
}, - {
- "productImageId": 346,
}, - {
- "productImageId": 347,
}
]
}
}Retrieve product options.
| eventId required | string Event ID |
| productId required | string Product ID |
{- "data": [
- {
- "productOptionId": 9417,
- "productOptionName": "Men's Medium",
- "productOptionValue": "mens-medium",
- "productDisplayOrder": 0,
- "isProductOptionActive": true
}, - {
- "productOptionId": 9416,
- "productOptionName": "Men's Small",
- "productOptionValue": "mens-small",
- "productDisplayOrder": 1,
- "isProductOptionActive": true
}
]
}Retrieve registration question option by ID.
| eventId required | string Event ID |
| productId required | string Product ID |
| optionId required | string Product option ID |
{- "data": {
- "productOptionId": 9416,
- "productOptionName": "Men's Small",
- "productOptionValue": "mens-small",
- "productOptionDisplayOrder": 1,
- "isProductOptionActive": true
}
}{- "data": [
- {
- "companyId": 1,
- "type": "TIMER",
- "title": "Timing company 1",
- "description": "The first timing company.",
- "contactName": "John Doe",
- "contactEmail": "timer@example.com",
- "contactNumber": "+15555555555",
}, - {
- "companyId": 2,
- "type": "TIMER",
- "title": "Timing company 2",
- "description": "The second timing company.",
- "contactName": "Jane Doe",
- "contactEmail": "timer@example.com",
- "contactNumber": "+15555555555",
}
]
}This method will get all the timing crews for the given company ID. The current user must also be a member of the company.
| companyId required | string Company ID |
{- "data": [
- {
- "timingCrewId": 1,
- "companyId": 1,
- "label": "Timing crew 1",
- "email": "timer_crew@example.com",
- "phone": "+15555555555",
- "hasAdvertising": false
}, - {
- "timingCrewId": 2,
- "companyId": 1,
- "label": "Timing crew 2",
- "email": "timer_crew@example.com",
- "phone": "+15555555555",
- "url": null,
- "hasAdvertising": true
}
]
}Returns map of fields used to describe columns with results posted to Race Roster API.`.
| companyId required | string Company ID |
{- "data": [
- {
- "fieldId": "age",
- "fieldType": "integer",
- "label": "Age",
- "fieldDescription": "Column with age integer",
- "isSegment": false,
- "isShownOnListing": true,
- "isShownOnAwards": false,
- "isShownOnMobile": false,
- "isShownOnResultsDetail": true,
- "isShownOnKiosk": false
}, - {
- "fieldId": "bib",
- "fieldType": "string",
- "label": "Bib",
- "fieldDescription": "Column with unique bib",
- "isSegment": false,
- "isShownOnListing": true,
- "isShownOnAwards": true,
- "isShownOnMobile": true,
- "isShownOnResultsDetail": true,
- "isShownOnKiosk": true
}, - {
- "fieldId": "chip_time_sec",
- "fieldType": "string",
- "label": "Chip Time",
- "fieldDescription": "Column with formatted time (HH:MM:SS.MS)",
- "isSegment": false,
- "isShownOnListing": true,
- "isShownOnAwards": true,
- "isShownOnMobile": true,
- "isShownOnResultsDetail": true,
- "isShownOnKiosk": true
}, - {
- "fieldId": "distance",
- "fieldType": "float",
- "label": "Distance",
- "fieldDescription": "Column with a distance value",
- "isSegment": false,
- "isShownOnListing": false,
- "isShownOnAwards": false,
- "isShownOnMobile": false,
- "isShownOnResultsDetail": true,
- "isShownOnKiosk": false
}, - {
- "fieldId": "distance_unit",
- "fieldType": "string",
- "label": "Distance unit",
- "fieldDescription": "Column with a distance unit",
- "isSegment": false,
- "isShownOnListing": false,
- "isShownOnAwards": false,
- "isShownOnMobile": false,
- "isShownOnResultsDetail": false,
- "isShownOnKiosk": false
}, - {
- "fieldId": "division",
- "fieldType": "string",
- "label": "Division",
- "fieldDescription": "Column with division fieldLabel",
- "isSegment": false,
- "isShownOnListing": true,
- "isShownOnAwards": false,
- "isShownOnMobile": false,
- "isShownOnResultsDetail": true,
- "isShownOnKiosk": false
}, - {
- "fieldId": "division_participant_count",
- "fieldType": "integer",
- "label": "Division count",
- "fieldDescription": "Division participants count",
- "isSegment": false,
- "isShownOnListing": true,
- "isShownOnAwards": false,
- "isShownOnMobile": false,
- "isShownOnResultsDetail": true,
- "isShownOnKiosk": false
}, - {
- "fieldId": "division_place",
- "fieldType": "string",
- "label": "Division Place",
- "fieldDescription": "Column with division placing. Value can be represented by an integer or a string listing place in division i.e., 1/2, 3/15",
- "isSegment": false,
- "isShownOnListing": true,
- "isShownOnAwards": false,
- "isShownOnMobile": false,
- "isShownOnResultsDetail": true,
- "isShownOnKiosk": false
}, - {
- "fieldId": "final_time_sec",
- "fieldType": "string",
- "label": "Final Time",
- "fieldDescription": "Column with a formatted time (HH:MM:SS.MS)",
- "isSegment": false,
- "isShownOnListing": true,
- "isShownOnAwards": true,
- "isShownOnMobile": true,
- "isShownOnResultsDetail": true,
- "isShownOnKiosk": true
}, - {
- "fieldId": "finish_time_local",
- "fieldType": "string",
- "label": "Finish Time Local",
- "fieldDescription": "Column with a formatted date/time for \"finish local time\" (Flexible ATOM format, with or without date/milliseconds/offset, e.g. 09:01:39, 2023-07-09 07:30:05.172, 2023-08-01T08:02:16.3-04:00. If date is omitted, it will be assumed to be the event date.)",
- "isSegment": false,
- "isShownOnListing": false,
- "isShownOnAwards": true,
- "isShownOnMobile": true,
- "isShownOnResultsDetail": true,
- "isShownOnKiosk": true
}, - {
- "fieldId": "f_name",
- "fieldType": "string",
- "label": "Name First",
- "fieldDescription": "Column with just the first name",
- "isSegment": false,
- "isShownOnListing": false,
- "isShownOnAwards": false,
- "isShownOnMobile": false,
- "isShownOnResultsDetail": true,
- "isShownOnKiosk": true
}, - {
- "fieldId": "f_name_l_name",
- "fieldType": "string",
- "label": "Name (First Last)",
- "fieldDescription": "Column with full name of participant in [First Name] [Last Name] format",
- "isSegment": false,
- "isShownOnListing": true,
- "isShownOnAwards": true,
- "isShownOnMobile": true,
- "isShownOnResultsDetail": true,
- "isShownOnKiosk": true
}, - {
- "fieldId": "from_city",
- "fieldType": "string",
- "label": "City",
- "fieldDescription": "Column with city name",
- "isSegment": false,
- "isShownOnListing": true,
- "isShownOnAwards": false,
- "isShownOnMobile": false,
- "isShownOnResultsDetail": true,
- "isShownOnKiosk": false
}, - {
- "fieldId": "from_prov_state",
- "fieldType": "string",
- "label": "Province/State/Region",
- "fieldDescription": "Column with character code for province/state/region. See: /countries endpoint for full list.",
- "isSegment": false,
- "isShownOnListing": true,
- "isShownOnAwards": false,
- "isShownOnMobile": false,
- "isShownOnResultsDetail": true,
- "isShownOnKiosk": false
}, - {
- "fieldId": "from_club",
- "fieldType": "string",
- "label": "Club",
- "fieldDescription": "Column with club name",
- "isSegment": false,
- "isShownOnListing": true,
- "isShownOnAwards": false,
- "isShownOnMobile": false,
- "isShownOnResultsDetail": true,
- "isShownOnKiosk": false
}, - {
- "fieldId": "from_country",
- "fieldType": "string",
- "label": "Country",
- "fieldDescription": "Column with 2 character code for country. See: /countries endpoint for full list.",
- "isSegment": false,
- "isShownOnListing": true,
- "isShownOnAwards": false,
- "isShownOnMobile": false,
- "isShownOnResultsDetail": true,
- "isShownOnKiosk": false
}, - {
- "fieldId": "nationality",
- "fieldType": "string",
- "label": "Nationality",
- "fieldDescription": "Column with 2 or 3 character code or name for country. See: /countries endpoint for full list.",
- "isSegment": false,
- "isShownOnListing": true,
- "isShownOnAwards": false,
- "isShownOnMobile": false,
- "isShownOnResultsDetail": true,
- "isShownOnKiosk": false
}, - {
- "fieldId": "gender",
- "fieldType": "integer",
- "label": "Gender",
- "fieldDescription": "A gender code based loosely on the ISO 5218 gender class, with the addition of a \"Co-Ed\" or \"Mixed\" gender for teams comprised of multiple genders. Represented as an integer. 0 = not known, 1 = male, 2 = female, 8 = coed, 9 = not applicable.",
- "isSegment": false,
- "isShownOnListing": true,
- "isShownOnAwards": false,
- "isShownOnMobile": false,
- "isShownOnResultsDetail": true,
- "isShownOnKiosk": false
}, - {
- "fieldId": "gender_participant_count",
- "fieldType": "integer",
- "label": "Gender count",
- "fieldDescription": "Column with numeric gender participants count",
- "isSegment": false,
- "isShownOnListing": true,
- "isShownOnAwards": false,
- "isShownOnMobile": false,
- "isShownOnResultsDetail": true,
- "isShownOnKiosk": false
}, - {
- "fieldId": "gender_place",
- "fieldType": "string",
- "label": "Gender Place",
- "fieldDescription": "Column with numeric gender placing. Value can be represented by an integer or a string listing place in same gender i.e., 1/2, 3/15",
- "isSegment": false,
- "isShownOnListing": true,
- "isShownOnAwards": false,
- "isShownOnMobile": false,
- "isShownOnResultsDetail": true,
- "isShownOnKiosk": false
}, - {
- "fieldId": "gun_time_sec",
- "fieldType": "string",
- "label": "Gun Time",
- "fieldDescription": "Column with a formatted time for \"gun time\" (HH:MM:SS)",
- "isSegment": false,
- "isShownOnListing": true,
- "isShownOnAwards": true,
- "isShownOnMobile": true,
- "isShownOnResultsDetail": true,
- "isShownOnKiosk": true
}, - {
- "fieldId": "l_name",
- "fieldType": "string",
- "label": "Name Last",
- "fieldDescription": "Column with just the last name",
- "isSegment": false,
- "isShownOnListing": false,
- "isShownOnAwards": false,
- "isShownOnMobile": false,
- "isShownOnResultsDetail": true,
- "isShownOnKiosk": false
}, - {
- "fieldId": "l_name_f_name",
- "fieldType": "string",
- "label": "Name (Last, First)",
- "fieldDescription": "Column with full name of participant in [Last Name], [First Name] format",
- "isSegment": false,
- "isShownOnListing": true,
- "isShownOnAwards": true,
- "isShownOnMobile": true,
- "isShownOnResultsDetail": true,
- "isShownOnKiosk": true
}, - {
- "fieldId": "overall_pace",
- "fieldType": "string",
- "label": "Overall Pace",
- "fieldDescription": "Column with pace time (MM:SS)",
- "isSegment": false,
- "isShownOnListing": true,
- "isShownOnAwards": false,
- "isShownOnMobile": false,
- "isShownOnResultsDetail": true,
- "isShownOnKiosk": false
}, - {
- "fieldId": "overall_place",
- "fieldType": "string",
- "label": "Overall Place",
- "fieldDescription": "Column with numeric overall placing. Value can be represented by an integer or a string listing place in total participants i.e., 1/2, 3/15",
- "isSegment": false,
- "isShownOnListing": true,
- "isShownOnAwards": false,
- "isShownOnMobile": true,
- "isShownOnResultsDetail": true,
- "isShownOnKiosk": false
}, - {
- "fieldId": "participant_id",
- "fieldType": "integer",
- "label": "Race Roster participant ID",
- "fieldDescription": "Column with integer value representing participant ID",
- "isSegment": false,
- "isShownOnListing": false,
- "isShownOnAwards": false,
- "isShownOnMobile": false,
- "isShownOnResultsDetail": false,
- "isShownOnKiosk": false
}, - {
- "fieldId": "results_race_id",
- "label": "Race Roster results race ID",
- "fieldDescription": "Column with integer value representing results race ID",
- "fieldType": "integer",
- "isSegment": false,
- "isShownOnListing": false,
- "isShownOnAwards": false,
- "isShownOnMobile": false,
- "isShownOnResultsDetail": false,
- "isShownOnKiosk": false
}, - {
- "fieldId": "source",
- "fieldType": "string",
- "label": "Source",
- "fieldDescription": "Column with the source for the result (MANUAL, RUNKEEPER, RUNSCORE, etc)",
- "isSegment": false,
- "isShownOnListing": true,
- "isShownOnAwards": false,
- "isShownOnMobile": false,
- "isShownOnResultsDetail": true,
- "isShownOnKiosk": false
}, - {
- "fieldId": "team_name",
- "fieldType": "string",
- "label": "Team Name",
- "fieldDescription": "Column with a team name",
- "isSegment": false,
- "isShownOnListing": true,
- "isShownOnAwards": true,
- "isShownOnMobile": true,
- "isShownOnResultsDetail": true,
- "isShownOnKiosk": true
}, - {
- "fieldId": "team_uuid",
- "fieldType": "string",
- "label": "Team UUID",
- "fieldDescription": "Column with the team UUID",
- "isSegment": false,
- "isShownOnListing": false,
- "isShownOnAwards": false,
- "isShownOnMobile": false,
- "isShownOnResultsDetail": false,
- "isShownOnKiosk": false
}, - {
- "fieldId": "email",
- "fieldType": "string",
- "label": "Email",
- "fieldDescription": "The email of the participant (this field will not be publicly displayed)",
- "isSegment": false,
- "isShownOnListing": false,
- "isShownOnAwards": false,
- "isShownOnMobile": false,
- "isShownOnResultsDetail": false,
- "isShownOnKiosk": false
}, - {
- "fieldId": "custom",
- "fieldType": "string",
- "label": "Custom",
- "fieldDescription": "Can be used for passing additional information that doesn't match any other field",
- "isSegment": false,
- "isShownOnListing": true,
- "isShownOnAwards": false,
- "isShownOnMobile": false,
- "isShownOnResultsDetail": true,
- "isShownOnKiosk": false
}, - {
- "fieldId": "chip_start_time",
- "fieldType": "string",
- "label": "Start Chip Time Local",
- "fieldDescription": "The date/time (including microseconds: YYYY-MM-DD HH:MM:SS.SSSSSS) the participant crossed the start line in local (event) timezone",
- "isSegment": false,
- "isShownOnListing": false,
- "isShownOnAwards": false,
- "isShownOnMobile": false,
- "isShownOnResultsDetail": false,
- "isShownOnKiosk": false
}, - {
- "fieldId": "gun_start_time",
- "fieldType": "string",
- "label": "Start Gun Time Local",
- "fieldDescription": "The date/time (including microseconds: YYYY-MM-DD HH:MM:SS.SSSSSS) the starting gun was fired for the participant in local (event) timezone",
- "isSegment": false,
- "isShownOnListing": false,
- "isShownOnAwards": false,
- "isShownOnMobile": false,
- "isShownOnResultsDetail": false,
- "isShownOnKiosk": false
}, - {
- "fieldId": "estimated_finish_time",
- "fieldType": "string",
- "label": "Estimated Finish Time",
- "fieldDescription": "The formatted estimated finish time posted by the participant (HH:MM:SS)",
- "isSegment": false,
- "isShownOnListing": false,
- "isShownOnAwards": false,
- "isShownOnMobile": false,
- "isShownOnResultsDetail": false,
- "isShownOnKiosk": false
}, - {
- "fieldId": "race_status",
- "fieldType": "string",
- "label": "Race Status",
- "fieldDescription": "The current status of the result (e.g. STARTING, IN_PROGRESS, DNS, DNF, DNQ, DQ, COMPLETE)",
- "isSegment": false,
- "isShownOnListing": false,
- "isShownOnAwards": false,
- "isShownOnMobile": false,
- "isShownOnResultsDetail": false,
- "isShownOnKiosk": false
}, - {
- "fieldId": "segment_split_time_sec",
- "fieldType": "object",
- "label": "Segment Time",
- "fieldDescription": "Column with the formatted time to complete the segment (HH:MM:SS)",
- "isSegment": true,
- "isShownOnListing": true,
- "isShownOnAwards": false,
- "isShownOnMobile": false,
- "isShownOnResultsDetail": true,
- "isShownOnKiosk": false
}, - {
- "fieldId": "segment_race_time_sec",
- "fieldType": "object",
- "label": "Segment Race Time",
- "fieldDescription": "Column with the formatted time to from the start of the race to the end of the segment (HH:MM:SS)",
- "isSegment": true,
- "isShownOnListing": true,
- "isShownOnAwards": false,
- "isShownOnMobile": false,
- "isShownOnResultsDetail": true,
- "isShownOnKiosk": false
}, - {
- "fieldId": "segment_start_time_local",
- "fieldType": "string",
- "label": "Segment Start Time Local",
- "fieldDescription": "Column with a formatted date/time for \"start time local\" (Flexible ATOM format, with or without date/milliseconds/offset, e.g. 09:01:39, 2023-07-09 07:30:05.172, 2023-08-01T08:02:16.3-04:00. If date is omitted, it will be assumed to be the event date.)",
- "isSegment": true,
- "isShownOnListing": true,
- "isShownOnAwards": false,
- "isShownOnMobile": false,
- "isShownOnResultsDetail": true,
- "isShownOnKiosk": false
}, - {
- "fieldId": "segment_end_time_local",
- "fieldType": "string",
- "label": "Segment End Time Local",
- "fieldDescription": "Column with a formatted date/time for \"end time local\" (Flexible ATOM format, with or without date/milliseconds/offset, e.g. 09:01:39, 2023-07-09 07:30:05.172, 2023-08-01T08:02:16.3-04:00. If date is omitted, it will be assumed to be the event date.)",
- "isSegment": true,
- "isShownOnListing": true,
- "isShownOnAwards": false,
- "isShownOnMobile": false,
- "isShownOnResultsDetail": true,
- "isShownOnKiosk": false
}, - {
- "fieldId": "timezone",
- "fieldType": "string",
- "label": "Segment timezone",
- "fieldDescription": "Column with a timezone identifier (America/New_York)",
- "isSegment": true,
- "isShownOnListing": false,
- "isShownOnAwards": false,
- "isShownOnMobile": false,
- "isShownOnResultsDetail": true,
- "isShownOnKiosk": false
}, - {
- "fieldId": "segment_distance",
- "fieldType": "float",
- "label": "Segment distance",
- "fieldDescription": "Column with a distance value",
- "isSegment": true,
- "isShownOnListing": false,
- "isShownOnAwards": false,
- "isShownOnMobile": false,
- "isShownOnResultsDetail": true,
- "isShownOnKiosk": false
}, - {
- "fieldId": "segment_distance_unit",
- "fieldType": "string",
- "label": "Segment distance unit",
- "fieldDescription": "Column with a distance unit",
- "isSegment": true,
- "isShownOnListing": false,
- "isShownOnAwards": false,
- "isShownOnMobile": false,
- "isShownOnResultsDetail": true,
- "isShownOnKiosk": false
}, - {
- "fieldId": "segment_pace",
- "fieldType": "object",
- "label": "Segment Pace",
- "fieldDescription": "Column with the pace time for the segment (MM:SS)",
- "isSegment": true,
- "isShownOnListing": true,
- "isShownOnAwards": false,
- "isShownOnMobile": false,
- "isShownOnResultsDetail": true,
- "isShownOnKiosk": false
}, - {
- "fieldId": "segment_overall_place",
- "fieldType": "object",
- "label": "Segment Overall Place",
- "fieldDescription": "Column with numeric overall placing for the segment. Value can be represented by an integer or a string listing place in total participants i.e., 1/2, 3/15",
- "isSegment": true,
- "isShownOnListing": true,
- "isShownOnAwards": false,
- "isShownOnMobile": false,
- "isShownOnResultsDetail": true,
- "isShownOnKiosk": false
}, - {
- "fieldId": "segment_gender_place",
- "fieldType": "object",
- "label": "Segment Gender Place",
- "fieldDescription": "Column with numeric gender placing for the segment. Value can be represented by an integer or a string listing place in total participants i.e., 1/2, 3/15",
- "isSegment": true,
- "isShownOnListing": true,
- "isShownOnAwards": false,
- "isShownOnMobile": false,
- "isShownOnResultsDetail": true,
- "isShownOnKiosk": false
}, - {
- "fieldId": "segment_division_place",
- "fieldType": "object",
- "label": "Segment Overall Place",
- "fieldDescription": "Column with numeric gender placing for the segment. Value can be represented by an integer or a string listing place in total participants i.e., 1/2, 3/15",
- "isSegment": true,
- "isShownOnListing": true,
- "isShownOnAwards": false,
- "isShownOnMobile": false,
- "isShownOnResultsDetail": true,
- "isShownOnKiosk": false
}, - {
- "fieldId": "segment_screenshot",
- "fieldType": "string",
- "label": "Segment screenshot",
- "fieldDescription": "Column with the URL to a screenshot image",
- "isSegment": true,
- "isShownOnListing": true,
- "isShownOnAwards": false,
- "isShownOnMobile": false,
- "isShownOnResultsDetail": true,
- "isShownOnKiosk": false
}, - {
- "fieldId": "segment_participant_id",
- "fieldType": "string",
- "label": "Segment Participant ID",
- "fieldDescription": "Column with the ID of the participant who completed the segment",
- "isSegment": true,
- "isShownOnListing": false,
- "isShownOnAwards": false,
- "isShownOnMobile": false,
- "isShownOnResultsDetail": true,
- "isShownOnKiosk": false
}, - {
- "fieldId": "segment_participant_name",
- "fieldType": "string",
- "label": "Segment Participant Name",
- "fieldDescription": "Column with the name of the participant who completed the segment",
- "isSegment": true,
- "isShownOnListing": true,
- "isShownOnAwards": false,
- "isShownOnMobile": false,
- "isShownOnResultsDetail": true,
- "isShownOnKiosk": false
}, - {
- "fieldId": "segment_source",
- "fieldType": "string",
- "label": "Segment Source",
- "fieldDescription": "Column with the source of the segment result (i.e. MANUAL, RUNKEEPER, RUNSCORE, UNKNOWN, etc)",
- "isSegment": true,
- "isShownOnListing": false,
- "isShownOnAwards": false,
- "isShownOnMobile": false,
- "isShownOnResultsDetail": true,
- "isShownOnKiosk": false
}, - {
- "fieldId": "award_category_label",
- "fieldType": "array",
- "label": "Awards Categories",
- "fieldDescription": "Column with zero or more award categories (e.g. Winners, Masters). Optionally can set sort order with preceeding integer and ^ separator. e.g. 1^Overall,2^Age Groups",
- "isSegment": false,
- "isShownOnListing": true,
- "isShownOnAwards": true,
- "isShownOnMobile": false,
- "isShownOnResultsDetail": true,
- "isShownOnKiosk": false
}, - {
- "fieldId": "award_label",
- "fieldType": "array",
- "label": "Awards Labels",
- "fieldDescription": "Column with zero or more award labels (e.g. Overall, 30-39 Age Group)",
- "isSegment": false,
- "isShownOnListing": true,
- "isShownOnAwards": true,
- "isShownOnMobile": false,
- "isShownOnResultsDetail": true,
- "isShownOnKiosk": false
}, - {
- "fieldId": "award_result_place",
- "fieldType": "array",
- "label": "Awards Ranks",
- "fieldDescription": "Column with zero or more award ranks/places (e.g. 3, 1). Optionally can set whether the award is based on chip time or gun time with trailing letter. e.g. 2C,4G represents 2nd place based on chip time, 4th place based on gun time. Default is gun time",
- "isSegment": false,
- "isShownOnListing": true,
- "isShownOnAwards": true,
- "isShownOnMobile": false,
- "isShownOnResultsDetail": true,
- "isShownOnKiosk": false
}
]
}Returns all the map types used to describe the custom columns of results posted to Race Roster.
| companyId required | string Company ID |
{- "data": [
- {
- "id": 183,
- "label": "5km split",
- "formatters": [
- {
- "key": "StringFormatter",
- "label": "General String Formatter",
- "description": "Formats a string"
}
]
}, - {
- "id": 180,
- "label": "Photo",
- "formatters": [
- {
- "key": "LinkFormatter",
- "label": "Link Formatter",
- "description": "Formats a URL"
}
]
}
]
}Creates a new custom column.
The payload accepts the following parameters:
label (string, required) - The label of the custom column.
type - (string, optional) The type of formatter for the custom column. This can be one of two values, text or link. This will default to text if omitted.
| companyId required | string Company ID |
{- "label": "Custom Label",
- "type": "text"
}{- "code": 201,
- "message": "Created"
}Updates an existing custom column.
The payload accepts the following parameters:
label (string, optional) - The label of the custom column.
type - (string, optional) The type of formatter for the custom column. This can be one of two values, text or link.
| companyId required | string Company ID |
| customColumnId required | string Custom column ID |
| label | string |
| type | string |
{- "label": "Custom Label",
- "type": "link"
}{- "code": 200,
- "message": "Updated"
}Returns segment types defined in Race Roster system.
NOTE: segments that are defined as transition type have no distance or pace units. null is returned for availableDistanceUnits in such cases.
| eventId required | string Event ID |
{- "data": [
- {
- "segmentTypeId": 1,
- "name": "Run",
- "isTransition": false,
- "availableDistanceUnits": [
- "mile",
- "yard",
- "km",
- "m"
]
}, - {
- "segmentTypeId": 2,
- "name": "Transition",
- "isTransition": true,
- "availableDistanceUnits": [ ]
}, - {
- "segmentTypeId": 3,
- "name": "Swim",
- "isTransition": false,
- "availableDistanceUnits": [
- "mile",
- "yard",
- "km",
- "m"
]
}, - {
- "segmentTypeId": 4,
- "name": "Bike",
- "isTransition": false,
- "availableDistanceUnits": [
- "mile",
- "yard",
- "km",
- "m"
]
}, - {
- "segmentTypeId": 5,
- "name": "Paddle",
- "isTransition": false,
- "availableDistanceUnits": [
- "mile",
- "yard",
- "km",
- "m"
]
}, - {
- "segmentTypeId": 6,
- "name": "Other",
- "isTransition": false,
- "availableDistanceUnits": [
- "mile",
- "yard",
- "km",
- "m"
]
}
]
}Returns array of available races for event.
| eventId required | string Event ID |
{- "data": [
- {
- "resultsRaceId": 5558,
- "name": "5K Walk & Run",
- "sub_event_id": 909,
- "isPublic": false,
- "sortOrder": 10,
- "distance": {
- "id": "a6e22291-a6ed-11e8-8c16-0a2fd0bccf82",
- "type": "running",
- "label": "5K",
- "value": "5",
- "unit": "km",
- "inMeters": "5000"
}, - "segmentsMode": "cumulative",
- "livePredictiveTracking": {
- "enabled": true,
- "gunStartTime": "2023-06-14T09:00:37+04:00",
- "cutOffTime": "2023-06-14T11:30:00+04:00",
- "paceType": "average"
}
}, - {
- "resultsRaceId": 5559,
- "name": "Fans",
- "sub_event_id": 1340,
- "isPublic": false,
- "sortOrder": 20,
- "distance": {
- "id": "a6e22f75-a6ed-11e8-8c16-0a2fd0bccf82",
- "type": "other",
- "label": "Other distance",
- "value": "1",
- "unit": "mi",
- "inMeters": "1609"
}, - "livePredictiveTracking": {
- "enabled": false
}
}, - {
- "resultsRaceId": 6247,
- "name": "14 mile Run",
- "sub_event_id": 4121,
- "isPublic": true,
- "sortOrder": 30,
- "distance": {
- "id": "a6e22f75-a6ed-11e8-8c16-0a2fd0bccf82",
- "type": "other",
- "label": "Other distance",
- "value": "14",
- "unit": "mi",
- "inMeters": "22531"
}, - "livePredictiveTracking": {
- "enabled": false
}
}
]
}Results races are containers for your results.
To set a custom (non-standard) distance for a race, set the distanceId property with the ID of the "Other distance" (see 'Results: Get Distances'), and include the otherDistanceValue and otherDistanceUnit properties.
| eventId required | string Event ID |
[- {
- "name": "5K Walk & Run",
- "subEventId": 909,
- "isPublic": true,
- "sortOrder": 115,
- "distanceId": "a6e22291-a6ed-11e8-8c16-0a2fd0bccf82",
- "segmentsMode": "cumulative"
}, - {
- "name": "15K Run",
- "subEventId": 1212,
- "isPublic": false,
- "sortOrder": 116,
- "distanceId": "a6e22f75-a6ed-11e8-8c16-0a2fd0bccf82",
- "otherDistanceValue": 15,
- "otherDistanceUnit": "km"
}
][- {
- "code": 201,
- "resultsRaceId": 1233
}, - {
- "code": 201,
- "resultsRaceId": 1234
}
]Updating multiple races in one request is currently not supported. Please see Update results race instead.
| eventId required | string Event ID |
{- "code": 405,
- "message": "Method not allowed"
}Deleting multiple races in one request is currently not supported. Please see Delete results race instead.
| eventId required | string Event ID |
{- "code": 405,
- "message": "Method not allowed"
}Returns single race for event and race ID.
| eventId required | string Event ID |
| resultsRaceId required | string Results race ID |
{- "data": {
- "resultsRaceId": 5558,
- "name": "5K Walk & Run",
- "subEventId": 909,
- "isPublic": false,
- "sortOrder": 10,
- "distance": {
- "id": "a6e22291-a6ed-11e8-8c16-0a2fd0bccf82",
- "type": "running",
- "label": "5K",
- "value": "5",
- "unit": "km",
- "inMeters": "5000"
}, - "segmentsMode": "cumulative",
- "livePredictiveTracking": {
- "enabled": true,
- "gunStartTime": "2023-06-07T10:00:14+04:00",
- "cutOffTime": "2023-06-07T12:00:00+04:00",
- "paceType": "average"
}
}
}Please see Create results races instead.
| eventId required | string Event ID |
| resultsRaceId required | string Results race ID |
{- "code": 405,
- "message": "Method not allowed"
}Note: subEventId can be set only on events that have a type of raceroster.
To set a custom (non-standard) distance for the race, set the distanceId property with the ID of the "Other distance" (see 'Results: Get Distances'), and include the otherDistanceValue and otherDistanceUnit properties.
To enable Live Predictive Tracking (LPT), a number of requirements must be met, including:
| eventId required | string Event ID |
| resultsRaceId required | string Results race ID |
{- "name": "5K Walk & Run",
- "subEventId": 909,
- "isPublic": true,
- "sortOrder": 115,
- "distanceId": "a6e22291-a6ed-11e8-8c16-0a2fd0bccf82",
- "segmentsMode": "cumulative",
- "livePredictiveTracking": {
- "enabled": true,
- "gunStartTime": "2023-06-07T10:00:14+04:00",
- "cutOffTime": "2023-06-07T12:00:00+04:00",
- "paceType": "lastSegment"
}
}{- "code": 200,
- "message": "Updated"
}Returns segments for race ID.
| eventId required | string Event ID |
| resultsRaceId required | string Results race ID |
{- "data": [
- {
- "segmentId": 45,
- "segmentTypeId": 3,
- "name": "Swim",
- "distanceValue": 750,
- "distanceUnit": "m",
- "calculatePaceBy": "min/100 m",
- "cumulativeDistanceValue": null,
- "cumulativeDistanceUnit": "m",
- "calculateCumulativePaceBy": "min/100 m",
- "sortOrder": 1
}, - {
- "segmentId": 46,
- "segmentTypeId": 2,
- "name": "T1",
- "distanceValue": null,
- "distanceUnit": null,
- "calculatePaceBy": null,
- "cumulativeDistanceValue": null,
- "cumulativeDistanceUnit": null,
- "calculateCumulativePaceBy": null,
- "sortOrder": 2
}, - {
- "segmentId": 47,
- "segmentTypeId": 4,
- "name": "Bike",
- "distanceValue": 20,
- "distanceUnit": "km",
- "calculatePaceBy": "km/hr",
- "cumulativeDistanceValue": null,
- "cumulativeDistanceUnit": "m",
- "calculateCumulativePaceBy": "km/hr",
- "sortOrder": 3
}, - {
- "segmentId": 48,
- "segmentTypeId": 2,
- "name": "T2",
- "distanceValue": null,
- "distanceUnit": null,
- "calculatePaceBy": null,
- "cumulativeDistanceValue": null,
- "cumulativeDistanceUnit": null,
- "calculateCumulativePaceBy": null,
- "sortOrder": 4
}, - {
- "segmentId": 49,
- "segmentTypeId": 1,
- "name": "Run",
- "distanceValue": 5,
- "distanceUnit": "km",
- "calculatePaceBy": "min/km",
- "cumulativeDistanceValue": null,
- "cumulativeDistanceUnit": "m",
- "calculateCumulativePaceBy": "min/mi",
- "sortOrder": 5
}
]
}Note that the race "segmentsMode" determines how the distance value for each segment is defined. For a segments mode of "cumulative", the distance value defines the "cumulative" distance from the start of the race to the end of the segment. In this case, the "interval" distance is calculated based from the end of the previous segment to the end of the current segment. Vice versa, for a segments mode of "interval" (default), the distance value defines the "interval" distance from the end of the previous segment to the end of the current segment.
NOTE: a transition segment (i.e. the transition from swim to bike or bike to run in a triathlon) does not have a distance! You will not be able to create a segment with a transition type and also a distance property. Transition segments do not have a "calculatePaceBy" or "calculateCumulativePaceBy" value since they have no distance.
| eventId required | string Event ID |
| resultsRaceId required | string Results race ID |
| segmentTypeId required | integer (Required) The ID of the segment type for this segment. |
| name required | string (Required) The name of this segment. e.g. 5k split, or Run or Transition 1 |
| distanceValue | number (Required for non-transition segment type in interval segments mode) The interval distance value (interval segments mode only, non-transition segments) |
| distanceUnit | string (Required for non-transition segment type in interval segments mode) The interval distance unit (interval segments mode only, non-transition segments). One of mi, km, yd, m, ft. |
| calculatePaceBy | string (Optional, defaults to "min/mi") The pace units to calculate interval pace by (interval segments mode only). One of min/km, min/mi, km/hr, mi/hr, min/100 m or min/100 y. Not applicable for transition type segments. Note: can be overridden by passing units with the result segment pace value (i.e. 45 mi/hr). |
| cumulativeDistanceValue | number (Required for non-transition segment type in cumulative segments mode) The cumulative distance value (cumulative segments mode only, non-transition segments) |
| cumulativeDistanceUnit | string (Required for non-transition segment type in cumulative segments mode) The cumulative distance unit (cumulative segments mode only, non-transition segments). One of mi, km, yd, m, ft. |
| calculateCumulativePaceBy | string (Optional, defaults to min/mi) The pace units to calculate cumulative pace by (cumulative segments mode only). One of min/km, min/mi, km/hr, mi/hr, min/100 m or min/100 y. Not applicable for transition type segments. Note: can be overridden by passing units with the result segment pace value (i.e. 45 mi/hr). |
| sortOrder required | integer (Required) A positive order by integer. If omitted, will be generated with values to retain post order |
[- {
- "segmentTypeId": 3,
- "name": "Swim",
- "distanceValue": 750,
- "distanceUnit": "m",
- "calculatePaceBy": "min/100 m",
- "sortOrder": 1
}, - {
- "segmentTypeId": 2,
- "name": "T1",
- "sortOrder": 2
}, - {
- "segmentTypeId": 4,
- "name": "Bike",
- "distanceValue": 20,
- "distanceUnit": "km",
- "calculatePaceBy": "mi/hr",
- "sortOrder": 3
}, - {
- "segmentTypeId": 2,
- "name": "T2",
- "sortOrder": 4
}, - {
- "segmentTypeId": 1,
- "name": "Run",
- "distanceValue": 5,
- "distanceUnit": "km",
- "sortOrder": 5
}
][- {
- "code": 201,
- "segmentId": 3087
}, - {
- "code": 201,
- "segmentId": 3088
}, - {
- "code": 201,
- "segmentId": 3089
}
]| eventId required | string Event ID |
| resultsRaceId required | string Results race ID |
| segmentId required | integer (Required) The ID of the segment to update. |
| segmentTypeId required | integer (Required) The ID of the segment type of this segment. |
| name required | string (Required) The name of the segment. |
| distanceValue | number (Required for non-transition segment type in interval segments mode) The interval distance value (interval segments mode only, non-transition segments) |
| distanceUnit | string (Required for non-transition segment type in interval segments mode) The interval distance unit (interval segments mode only, non-transition segments). One of mi, km, yd, m, ft. |
| calculatePaceBy | string (Optional, defaults to min/mi) The pace units to calculate interval pace by. One of min/km, min/mi, km/hr, mi/hr, min/100 m or min/100 y. Not applicable for transition type segments. Note: can be overridden by passing units with the result segment pace value (i.e. 45 mi/hr). |
| cumulativeDistanceValue | number (Required for non-transition segment type in cumulative segments mode) The cumulative distance value (cumulative segments mode only, non-transition segments) |
| cumulativeDistanceUnit | string (Required for non-transition segment type in cumulative segments mode) The cumulative distance unit (cumulative segments mode only, non-transition segments). One of mi, km, yd, m, ft. |
| calculateCumulativePaceBy | string (Optional, defaults to min/mi) The pace units to calculate cumulative pace by. One of min/km, min/mi, km/hr, mi/hr, min/100 m or min/100 y. Not applicable for transition type segments. Note: can be overridden by passing units with the result segment pace value (i.e. 45 mi/hr). |
| sortOrder required | integer (Required) The positive order integer value. |
[- {
- "segmentId": 3087,
- "segmentTypeId": 3,
- "name": "swim",
- "distanceValue": 1,
- "distanceUnit": "mi",
- "calculatePaceBy": "min/mi",
- "sortOrder": 1
}, - {
- "segmentId": 3088,
- "segmentTypeId": 2,
- "name": "t1",
- "sortOrder": 2
}, - {
- "segmentId": 3089,
- "segmentTypeId": 1,
- "name": "run",
- "distanceValue": 1,
- "distanceUnit": "mi",
- "calculatePaceBy": "min/mi",
- "sortOrder": 3
}
][- {
- "code": 200,
- "segmentId": 3087
}, - {
- "code": 200,
- "segmentId": 3088
}, - {
- "code": 200,
- "segmentId": 3089
}
]Returns an array of all the distances that can be assigned to a race in an event.
Note: The "Other distance" represents a custom (non-standard) distance. Use the "Other distance" ID, which remains constant, in conjunction with a custom value and unit (km, mi, m, yd, ft) to specify a custom (non-standard) distance of a race. If the race does not have a distance, use the "Not applicable" distance ID.
| eventId required | string Event ID |
| type | string Filters the array of distances so that only the distances that match the provided type are returned (e.g. running, cycling, triathlon, swimming, other). |
Retrieve list of posted (raw, i.e. unprocessed) results for given event and result race ID.
| eventId required | string Event ID. |
| resultsRaceId required | string If this is provided then only the results that correspond to this result race ID will be returned. |
| page required | string The page of results that will be returned. |
| perPage required | string The number of results that will be returned per page. |
{- "data": [
- {
- "resultSetId": 7942,
- "resultsRaceId": 16093,
- "dateCreated": "2017-07-10T14:55:15-0400",
- "metaData": {
- "disableScoring": true,
- "isPreliminary": false,
- "page": 1,
- "pageCount": 5,
- "perPage": 3,
- "totalCount": 14
}, - "results": [
- [
- 21,
- 101166,
- "33",
- 1,
- "Mark",
- {
- "segmentId": 3084,
- "value": "1/3"
}, - {
- "segmentId": 3087,
- "value": "3/3"
}, - {
- "segmentId": 45,
- "value": "13:21"
}, - {
- "segmentId": 3078,
- "value": "23:11"
}
], - [
- 21,
- 101210,
- "38",
- 2,
- "Kyle",
- {
- "segmentId": 3084,
- "value": "2/3"
}, - {
- "segmentId": 3087,
- "value": "2/3"
}, - {
- "segmentId": 45,
- "value": "13:11"
}, - {
- "segmentId": 3078,
- "value": "23:13"
}
], - [
- 21,
- 101145,
- "26",
- 3,
- "Steve",
- {
- "segmentId": 3084,
- "value": "3/3"
}, - {
- "segmentId": 3087,
- "value": "1/3"
}, - {
- "segmentId": 45,
- "value": "13:23"
}, - {
- "segmentId": 3078,
- "value": "23:12"
}
]
]
}
]
}Upload results for given event, race and result set ID.
Note: if results already exist, this endpoint performs an "upsert" (insert/update) operation on existing results (matching bib number, participant id and/or name), and also performs a pruning operation that removes existing results not referenced in the payload.
Results payload requires 3 indices:
columns (array, required) - collection of arrays describing column label and fieldId mapping (see Get fields map for reference)
metaData - (array, required) array of additional information about results. See JSON-SCHEMA for details.
results (array, required) - collection of participant result information
| eventId required | string Event ID. |
required | Array of objects |
required | object |
required | Array of resultsRaceId (integer) or (fieldsMapItems (fieldsMapItems (string) or fieldsMapItems (integer) or Array of fieldsMapItems (arrays))) or segmentDataObjects (object)[ items ] |
{- "columns": [
- {
- "label": "Results race ID",
- "fieldId": "results_race_id",
- "isShownOnListing": false,
- "isShownOnMobile": false,
- "isShownOnResultsDetail": false,
- "isShownOnAwards": false,
- "isShownOnKiosk": false
}, - {
- "label": "Participant ID",
- "fieldId": "participant_id",
- "isShownOnListing": false,
- "isShownOnMobile": false,
- "isShownOnResultsDetail": false,
- "isShownOnAwards": false,
- "isShownOnKiosk": false
}, - {
- "label": "Bib number",
- "fieldId": "bib",
- "isShownOnListing": true,
- "isShownOnMobile": true,
- "isShownOnResultsDetail": true,
- "isShownOnAwards": false,
- "isShownOnKiosk": true
}, - {
- "label": "Overall place",
- "fieldId": "overall_place",
- "isShownOnListing": true,
- "isShownOnMobile": true,
- "isShownOnResultsDetail": true,
- "isShownOnAwards": false,
- "isShownOnKiosk": true
}, - {
- "label": "First name",
- "fieldId": "f_name",
- "isShownOnListing": true,
- "isShownOnMobile": true,
- "isShownOnResultsDetail": true,
- "isShownOnAwards": false,
- "isShownOnKiosk": true
}, - {
- "label": "Award Category",
- "fieldId": "award_category_label",
- "isShownOnListing": false,
- "isShownOnMobile": false,
- "isShownOnResultsDetail": true,
- "isShownOnAwards": true,
- "isShownOnKiosk": false
}, - {
- "label": "Award",
- "fieldId": "award_label",
- "isShownOnListing": false,
- "isShownOnMobile": false,
- "isShownOnResultsDetail": true,
- "isShownOnAwards": true,
- "isShownOnKiosk": false
}, - {
- "label": "Award Place",
- "fieldId": "award_result_place",
- "isShownOnListing": false,
- "isShownOnMobile": false,
- "isShownOnResultsDetail": true,
- "isShownOnAwards": true,
- "isShownOnKiosk": false
}, - {
- "label": "Swim overall place",
- "fieldId": "segment_overall_place",
- "isShownOnListing": true,
- "isShownOnMobile": false,
- "isShownOnResultsDetail": true,
- "isShownOnAwards": false,
- "isShownOnKiosk": false
}, - {
- "label": "Run overall place",
- "fieldId": "segment_overall_place",
- "isShownOnListing": true,
- "isShownOnMobile": false,
- "isShownOnResultsDetail": true,
- "isShownOnAwards": false,
- "isShownOnKiosk": false
}, - {
- "label": "Run time",
- "fieldId": "segment_split_time_sec",
- "isShownOnListing": true,
- "isShownOnMobile": false,
- "isShownOnResultsDetail": true,
- "isShownOnAwards": false,
- "isShownOnKiosk": false
}, - {
- "label": "Swim time",
- "fieldId": "segment_split_time_sec",
- "isShownOnListing": true,
- "isShownOnMobile": false,
- "isShownOnResultsDetail": true,
- "isShownOnAwards": false,
- "isShownOnKiosk": false
}
], - "metaData": {
- "disableScoring": true,
- "isPreliminary": false
}, - "results": [
- [
- 21,
- 101166,
- "33",
- 1,
- "Mark",
- [
- "Winners",
- "Age Groups"
], - [
- "Overall Male",
- "20-29 Male"
], - [
- 1,
- 1
], - {
- "segmentId": 3084,
- "value": "1/3"
}, - {
- "segmentId": 3087,
- "value": "3/3"
}, - {
- "segmentId": 45,
- "value": "13:21"
}, - {
- "segmentId": 3078,
- "value": "23:11"
}
], - [
- 21,
- 101210,
- "38",
- 2,
- "Kyle",
- [
- "Age Groups"
], - [
- "20-29 Male"
], - [
- 2
], - {
- "segmentId": 3084,
- "value": "2/3"
}, - {
- "segmentId": 3087,
- "value": "2/3"
}, - {
- "segmentId": 45,
- "value": "13:11"
}, - {
- "segmentId": 3078,
- "value": "23:13"
}
], - [
- 21,
- 101145,
- "26",
- 3,
- "Steve",
- [ ],
- [ ],
- [ ],
- {
- "segmentId": 3084,
- "value": "3/3"
}, - {
- "segmentId": 3087,
- "value": "1/3"
}, - {
- "segmentId": 45,
- "value": "13:23"
}, - {
- "segmentId": 3078,
- "value": "23:12"
}
]
]
}{- "code": 201,
- "resultSetId": 50
}This will upload a new set of results for a specific event and race, without over writing any previously uploaded results.
Results can be uploaded in the form of a comma separated value (CSV) file.
The API only accepts CSV files:
Content-Type: text/csv header is required when sendingThe file containing the results is uploaded and added to the results processing queue. The uploaded results file can later be managed by using the results dashboard on timer.raceroster.com
| eventId required | string Event ID |
| resultsRaceId required | string Race Result ID |
Overall,Bib,First name,Last name,Sex,Age Group,Gun time,Chip time 1,101,John,Doe,M,M30-39,25:30,25:15 2,102,Jane,Smith,F,F30-39,26:10,25:55
{- "code": 201,
- "resultSetId": 50
}This will upload a single PDF file containing results for a specific event and race. Any existing results will be overwritten. There can be only one PDF file per race.
Results can be uploaded in the form of a Portable Document Format (PDF) file with mime type: application/pdf.
The PDF file containing the results is uploaded and stored on the results Content Delivery Network (CDN) and the response contains the file URL to view the PDF from the CDN.
| eventId required | string Event ID |
| resultsRaceId required | string Race Result ID |
This will upload a single text file containing unstructured results for a specific event and race. Any existing results will be overwritten. There can be only one text file per race.
Results can be uploaded in the form of a text (txt) file with mime type: text/plain.
| eventId required | string Event ID |
| resultsRaceId required | string Race Result ID |
5K Results Overall Bib Name Sex Age Group Gun Time Chip Time 1 101 John Doe M M30-39 25:30 25:15 2 102 Jane Smith F F30-39 26:10 25:55
{- "code": 201,
- "resultSetId": 51
}