curl --request GET \
--url https://api.letsdothis.com/v0/participants/{id} \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.letsdothis.com/v0/participants/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.letsdothis.com/v0/participants/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"id": "66b2c3d4e5f60718293a4b5c",
"participantIndex": 0,
"bookingId": "66b1c2d3e4f5061728394a5b",
"transactionId": "66b3c4d5e6f708192a3b4c5d",
"eventOccurrenceId": "66a2b3c4d5e6f708192a3b4c",
"eventId": "66a1b2c3d4e5f60718293a4b",
"raceId": "66a3b4c5d6e7f8092a3b4c5d",
"ticketTitle": "10K General Entry",
"ticketId": "66a4b5c6d7e8f9012a3b4c5d",
"bookedAt": "2026-05-12T16:45:00.000Z",
"createdAt": "2026-05-12T16:45:00.000Z",
"updatedAt": "2026-05-12T16:45:00.000Z",
"fields": [
{
"id": "firstName",
"name": "First name",
"value": "John"
},
{
"id": "lastName",
"name": "Last name",
"value": "Runner"
},
{
"id": "email",
"name": "Email",
"value": "john@invalid.test"
},
{
"id": "status",
"name": "Status",
"value": "CONFIRMED"
}
],
"booker": null,
"originalTicketPrice": {
"value": 6500,
"currencyCode": "USD"
},
"incrementalStatus": "INCREMENTAL",
"bibNumber": "A1042",
"bookingCodesUsed": [
{
"code": "WELCOME20"
}
],
"participantId": "7d22e97f-b583-4e5b-a2bb-1b927f826a32",
"notes": []
}{
"statusCode": 404,
"error": "<string>",
"message": "<string>"
}Get a participant by ID
Returns a participant by ID if you have access to it.
curl --request GET \
--url https://api.letsdothis.com/v0/participants/{id} \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.letsdothis.com/v0/participants/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.letsdothis.com/v0/participants/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"id": "66b2c3d4e5f60718293a4b5c",
"participantIndex": 0,
"bookingId": "66b1c2d3e4f5061728394a5b",
"transactionId": "66b3c4d5e6f708192a3b4c5d",
"eventOccurrenceId": "66a2b3c4d5e6f708192a3b4c",
"eventId": "66a1b2c3d4e5f60718293a4b",
"raceId": "66a3b4c5d6e7f8092a3b4c5d",
"ticketTitle": "10K General Entry",
"ticketId": "66a4b5c6d7e8f9012a3b4c5d",
"bookedAt": "2026-05-12T16:45:00.000Z",
"createdAt": "2026-05-12T16:45:00.000Z",
"updatedAt": "2026-05-12T16:45:00.000Z",
"fields": [
{
"id": "firstName",
"name": "First name",
"value": "John"
},
{
"id": "lastName",
"name": "Last name",
"value": "Runner"
},
{
"id": "email",
"name": "Email",
"value": "john@invalid.test"
},
{
"id": "status",
"name": "Status",
"value": "CONFIRMED"
}
],
"booker": null,
"originalTicketPrice": {
"value": 6500,
"currencyCode": "USD"
},
"incrementalStatus": "INCREMENTAL",
"bibNumber": "A1042",
"bookingCodesUsed": [
{
"code": "WELCOME20"
}
],
"participantId": "7d22e97f-b583-4e5b-a2bb-1b927f826a32",
"notes": []
}{
"statusCode": 404,
"error": "<string>",
"message": "<string>"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
The ID of the resource to query by
Query Parameters
If set to true, all available metadata is returned.
A comma-separated list of optional features to enable for the request. Each feature extends the response with additional fields or behaviors.
tags— Exposes operational tags (e.g."injured","deferral") on each entry, enabling filtering and segmentation in consuming systems.gdpr_redacted— Indicates whether an entry has been redacted following a GDPR request, so consuming systems can suppress it accordingly.boolean_value— Provides a parsed boolean representation of agreement, confirmation, and yes/no answers onFieldentries, removing the need for client-side string normalization.withdrawn_status— Returns the distinct"WITHDRAWN"status. When the feature is disabled, withdrawn entries are reported as"CANCELLED"for backwards compatibility.status_details— Includes reasons and timestamps for status changes (deferrals, withdrawals, approval decisions), supporting audit trails and operational tooling.race_day_details— Includes check-in time, waiver-signature time, and custom race-day fields.result_submissions— Includes self-reported finish times (chip time and verification artifacts).teams— Includes team membership, captain status, and team number, for team-based events.waves— Includes start-wave assignments, for events that split the field into staggered starts.
"tags,waves"
Response
Default Response
A participant with optionally extended metadata. See ExtendedMetadata for more details.
A unique identifier. IDs should be treated as opaque string values but are guaranteed to represent a single, unique entity within Let's Do This.
"6399c20015d60ae3ff28f24c"
The index of this participant in the booking record. For example, if this participant is the first participant in the booking, this field will be 0.
0
The unique identifier for the booking this participant was booked via.
"6399c20015d60ae3ff28f24c"
The unique identifier for the transaction this booking was made via, if present.
"6399c20015d60ae3ff28f24e"
The unique identifier for the occurrence of the Event for which this participant is attending.
"6399c11c58f29f001ca95935"
The unique identifier of the Event.
"2365756"
The unique identifier for the race this booking was made for.
"3517846101"
The title of the ticket booked by this participant.
"10k Standard Entry"
The unique identifier for the ticket this booking was made for.
"6399c11c58f29f001ca95934"
Represents a date and time in ISO 8601 format as a string.
The string should follow the format YYYY-MM-DDTHH:mm:ss.sssZ, where:
YYYY: Four-digit yearMM: Two-digit month (01-12)DD: Two-digit day of the month (01-31)T: Delimiter indicating the start of the time componentHH: Two-digit hour in 24-hour format (00-23)mm: Two-digit minutes (00-59)ss.sss: Seconds with milliseconds (00.000-59.999)Z: UTC timezone designator
Example: To represent 11:30 AM on May 8th, 2026, the value would be: "2026-05-08T11:30:00.000Z".
"2026-05-08T11:30:00.000Z"
Represents a date and time in ISO 8601 format as a string.
The string should follow the format YYYY-MM-DDTHH:mm:ss.sssZ, where:
YYYY: Four-digit yearMM: Two-digit month (01-12)DD: Two-digit day of the month (01-31)T: Delimiter indicating the start of the time componentHH: Two-digit hour in 24-hour format (00-23)mm: Two-digit minutes (00-59)ss.sss: Seconds with milliseconds (00.000-59.999)Z: UTC timezone designator
Example: To represent 11:30 AM on May 8th, 2026, the value would be: "2026-05-08T11:30:00.000Z".
"2026-05-08T11:30:00.000Z"
An array of Field objects containing participant data collected during booking. Includes standard fields (e.g., firstName, lastName, email, dateOfBirth, phone, status, address fields, emergency contact) and any custom fields defined by the organizer.
Show child attributes
Show child attributes
Contact information for the person who made the booking, if the booking form was set up to allow a separate booker and participant. See Booker for more details.
Show child attributes
Show child attributes
{
"firstName": "Jean-Luc",
"lastName": "Picard",
"email": "jean@earlgrey.com",
"companyName": "Starfleet",
"address": {
"line1": "1701 Enterprise Ave",
"line2": "",
"city": "San Francisco",
"county": "San Francisco",
"country": "US",
"postcode": "94101"
},
"miscFields": []
}
The original price for the ticket this participant booked. See Price for more details.
Show child attributes
Show child attributes
INCREMENTAL, NON_INCREMENTAL, PENDING, UNSPECIFIED, UNRECOGNIZED Any discount codes applied at booking.
Show child attributes
Show child attributes
{ "code": "SPRINT10" }
Represents a date and time in ISO 8601 format as a string.
The string should follow the format YYYY-MM-DDTHH:mm:ss.sssZ, where:
YYYY: Four-digit yearMM: Two-digit month (01-12)DD: Two-digit day of the month (01-31)T: Delimiter indicating the start of the time componentHH: Two-digit hour in 24-hour format (00-23)mm: Two-digit minutes (00-59)ss.sss: Seconds with milliseconds (00.000-59.999)Z: UTC timezone designator
Example: To represent 11:30 AM on May 8th, 2026, the value would be: "2026-05-08T11:30:00.000Z".
"2026-05-08T11:30:00.000Z"
The participant's own identifier, stable across the registration records that refer to them. The import APIs match on this value wherever they accept a participantId.
"abed704b-76d0-4190-a0e7-95b1ec1e48fd"
Notes associated with this registration.
Show child attributes
Show child attributes
Optional — opt in with ?features=waves. Available when the waves feature is enabled. See the "Optional features" section of the introduction.
The waves this participant is booked into, if applicable.
Show child attributes
Show child attributes
The type of booker. This field will contain one of the following values:
- INDIVIDUAL - the application is made on behalf on an individual, and should yield registrations 1:1
- PARTNER - the application is made on behalf of a partner, or group, and could yield any number of registrations
PARTNER, INDIVIDUAL Reserved entry booking URL: included if granted to the application.
Marketing opt-ins given by booker.
Show child attributes
Show child attributes
Optional — opt in with ?features=tags. Available when the tags feature is enabled. See the "Optional features" section of the introduction.
Tags attached to the application or participant.
["injured", "deferral"]
Optional — opt in with ?features=gdpr_redacted. Available when the gdpr_redacted feature is enabled. See the "Optional features" section of the introduction.
Indicated whether the participant data has been redacted due to a GDPR request.
Optional on participants — opt in with ?features=status_details. Applications include this field unconditionally; on participants it's available when the status_details feature is enabled. See the "Optional features" section of the introduction.
Status details of the booking.
A status detail indicating that the booking has been deferred.
- DeferredStatusDetails
- WithdrawnStatusDetails
- ApprovalStatusDetails
- CancelledStatusDetails
Show child attributes
Show child attributes
{
"type": "DEFERRED",
"reason": "Postpartum",
"year": 2025
}
Digital marketing tracking parameters.
Show child attributes
Show child attributes
If the booking was generated via an application, the unique identifier for that application.
"6399c20015d60ae3ff28f24d"
Optional — opt in with ?features=race_day_details. Available when the race_day_details feature is enabled. See the "Optional features" section of the introduction.
Race day additional details.
Show child attributes
Show child attributes
Optional — opt in with ?features=result_submissions. Available when the result_submissions feature is enabled. See the "Optional features" section of the introduction.
Result submission details.
Show child attributes
Show child attributes
Optional — opt in with ?features=teams. Available when the teams feature is enabled. See the "Optional features" section of the introduction.
Team details.
Show child attributes
Show child attributes
How this booking originated.
INTERNAL— booked through Let's Do This.EXTERNAL— imported from a third-party platform.API— imported by the organizer via the Public API.
INTERNAL, EXTERNAL, API Event name.
"City Sprint Challenge"
Race name.
Represents a date and time in ISO 8601 format as a string.
The string should follow the format YYYY-MM-DDTHH:mm:ss.sssZ, where:
YYYY: Four-digit yearMM: Two-digit month (01-12)DD: Two-digit day of the month (01-31)T: Delimiter indicating the start of the time componentHH: Two-digit hour in 24-hour format (00-23)mm: Two-digit minutes (00-59)ss.sss: Seconds with milliseconds (00.000-59.999)Z: UTC timezone designator
Example: To represent 11:30 AM on May 8th, 2026, the value would be: "2026-05-08T11:30:00.000Z".
"2026-05-08T11:30:00.000Z"
Sport ID.
Distance ID.
Distances.
Show child attributes
Show child attributes
Discipline label.
"Running"
Course details.
Show child attributes
Show child attributes
Event location
Show child attributes
Show child attributes
{
"coordinates": {
"latitude": 50.8398169,
"longitude": -0.1460002
},
"address": {
"city": "Brighton",
"formatted": "Preston Park, Preston Rd, Brighton BN1 6SD, UK",
"countryCode": "GB",
"countryName": "United Kingdom",
"countyLine": "Brighton and Hove",
"postCode": "BN1 6SD"
}
}
Estimated event size.
12293
Reserved entry group code.
"re_x-ga8ais3v4r"
Reserved entry group name.
"Charity Entries"
External IDs of the partner. These can be configured in the event's settings if needed.
Show child attributes
Show child attributes
Name of the partner who owns the reserved entry.
Was this page helpful?

