Race Data
Read a race's aid stations, cutoffs and crew access
Every aid station and checkpoint of a distance: mile, per-pass cutoffs, crew, pacer and drop-bag access, hike-in, cell service and supplies, with the race policy applied. No key.
Method
GET
Path
/api/public/v1/events/{idOrSlug}/aid-stations
Authentication
None. Served from https://www.endurancehq.app with open CORS.
Caching
CDN 5 minutes, purged when the organizer edits stations.
Request
curl "https://www.endurancehq.app/api/public/v1/events/{idOrSlug}/aid-stations"Path parameters
idOrSlugstring, requiredQuery schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"raceOptionId": {
"description": "The distance. Without it, the event's only distance, else the event level.",
"type": "string"
}
},
"additionalProperties": false
}Response
Success status: 200
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"event": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"slug": {
"type": "string"
},
"name": {
"type": "string"
},
"timezone": {
"description": "IANA zone the race's wall-clock times are stated in.",
"type": [
"string",
"null"
]
}
},
"required": [
"id",
"slug",
"name",
"timezone"
],
"additionalProperties": false
},
"raceOption": {
"anyOf": [
{
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
}
},
"required": [
"id",
"name"
],
"additionalProperties": false
},
{
"type": "null"
}
],
"description": "The distance this answer is for; null for the event level."
},
"raceOptions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"distance": {
"type": [
"number",
"null"
]
},
"distanceUnit": {
"type": [
"string",
"null"
]
}
},
"required": [
"id",
"name",
"distance",
"distanceUnit"
],
"additionalProperties": false
},
"description": "Every distance of the event, to ask per distance with raceOptionId."
},
"aidStations": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"kind": {
"type": "string",
"enum": [
"aid",
"checkpoint"
]
},
"mile": {
"type": [
"number",
"null"
]
},
"location": {
"anyOf": [
{
"type": "object",
"properties": {
"lat": {
"type": "number"
},
"lon": {
"type": "number"
}
},
"required": [
"lat",
"lon"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"description": {
"type": [
"string",
"null"
]
},
"cutoffs": {
"type": "array",
"items": {
"type": "object",
"properties": {
"pass": {
"type": "number",
"description": "1 is the first visit; looped courses list each visit."
},
"local": {
"description": "Wall-clock time as the race states it, YYYY-MM-DDTHH:mm.",
"type": [
"string",
"null"
]
},
"at": {
"description": "The real instant (ISO 8601, UTC) in the event's time zone.",
"type": [
"string",
"null"
]
},
"elapsedSeconds": {
"description": "Elapsed race time, when the cutoff is stated that way.",
"type": [
"number",
"null"
]
}
},
"required": [
"pass",
"local",
"at",
"elapsedSeconds"
],
"additionalProperties": false
}
},
"crew": {
"type": "object",
"properties": {
"allowed": {
"type": "boolean"
},
"notes": {
"type": [
"string",
"null"
]
}
},
"required": [
"allowed",
"notes"
],
"additionalProperties": false
},
"pacer": {
"type": "object",
"properties": {
"allowed": {
"type": "boolean"
},
"notes": {
"type": [
"string",
"null"
]
}
},
"required": [
"allowed",
"notes"
],
"additionalProperties": false
},
"dropBag": {
"type": "object",
"properties": {
"allowed": {
"type": "boolean"
},
"notes": {
"type": [
"string",
"null"
]
}
},
"required": [
"allowed",
"notes"
],
"additionalProperties": false
},
"vehicleAccess": {
"type": [
"string",
"null"
]
},
"hikeIn": {
"type": "boolean",
"description": "No vehicle access: crews walk in."
},
"cellService": {
"description": "reliable, spotty or none.",
"type": [
"string",
"null"
]
},
"parkingNotes": {
"type": [
"string",
"null"
]
},
"supplies": {
"type": "array",
"items": {
"type": "string"
}
},
"contributors": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"standing": {
"description": "What they are to the race, such as \"2025 finisher, Sunlight aid station volunteer\".",
"type": [
"string",
"null"
]
},
"credit": {
"type": "string",
"description": "The credit line to show: \"Course notes by Jackson Strand, 2025 finisher, Sunlight aid station volunteer\"."
},
"fields": {
"type": "array",
"items": {
"type": "string"
},
"description": "Fields their published corrections changed, such as crewNotes or durationMinutes."
}
},
"required": [
"name",
"standing",
"credit",
"fields"
],
"additionalProperties": false,
"description": "Someone whose correction the race organizer reviewed and published."
},
"description": "People whose published corrections this item carries; credit them where it is shown."
}
},
"required": [
"id",
"name",
"kind",
"mile",
"location",
"description",
"cutoffs",
"crew",
"pacer",
"dropBag",
"vehicleAccess",
"hikeIn",
"cellService",
"parkingNotes",
"supplies",
"contributors"
],
"additionalProperties": false
}
},
"attribution": {
"type": "object",
"properties": {
"provider": {
"type": "string",
"const": "Endurance HQ"
},
"eventUrl": {
"type": "string",
"description": "The race's official site; link it wherever the data is shown."
},
"contributors": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"standing": {
"description": "What they are to the race, such as \"2025 finisher, Sunlight aid station volunteer\".",
"type": [
"string",
"null"
]
},
"credit": {
"type": "string",
"description": "The credit line to show: \"Course notes by Jackson Strand, 2025 finisher, Sunlight aid station volunteer\"."
},
"fields": {
"type": "array",
"items": {
"type": "string"
},
"description": "Fields their published corrections changed, such as crewNotes or durationMinutes."
}
},
"required": [
"name",
"standing",
"credit",
"fields"
],
"additionalProperties": false,
"description": "Someone whose correction the race organizer reviewed and published."
},
"description": "Everyone whose course corrections the organizer published for this race."
}
},
"required": [
"provider",
"eventUrl",
"contributors"
],
"additionalProperties": false,
"description": "Who to credit wherever this data is shown."
}
},
"required": [
"event",
"raceOption",
"raceOptions",
"aidStations",
"attribution"
],
"additionalProperties": false
}