curl --request GET \
--url https://api.letsdothis.com/v0/applications/{id} \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.letsdothis.com/v0/applications/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.letsdothis.com/v0/applications/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"id": "66e1f203142536475869a7b8",
"participantIndex": 0,
"bookingId": "66b1c2d3e4f5061728394a5b",
"transactionId": null,
"eventOccurrenceId": "66a2b3c4d5e6f708192a3b4c",
"eventId": "66a1b2c3d4e5f60718293a4b",
"raceId": "66a3b4c5d6e7f8092a3b4c5d",
"ticketTitle": "10K General Entry",
"ticketId": "66a4b5c6d7e8f9012a3b4c5d",
"createdAt": "2026-05-10T11:20:00.000Z",
"updatedAt": "2026-05-12T09:15: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"
}
],
"booker": null,
"originalTicketPrice": {
"value": 6500,
"currencyCode": "USD"
},
"incrementalStatus": "NON_INCREMENTAL",
"bibNumber": null,
"bookingCodesUsed": [],
"approvalStatus": "PENDING",
"notes": []
}{
"statusCode": 404,
"error": "<string>",
"message": "<string>"
}Get an application by ID
Returns an application by ID if you have access to it.
curl --request GET \
--url https://api.letsdothis.com/v0/applications/{id} \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.letsdothis.com/v0/applications/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.letsdothis.com/v0/applications/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"id": "66e1f203142536475869a7b8",
"participantIndex": 0,
"bookingId": "66b1c2d3e4f5061728394a5b",
"transactionId": null,
"eventOccurrenceId": "66a2b3c4d5e6f708192a3b4c",
"eventId": "66a1b2c3d4e5f60718293a4b",
"raceId": "66a3b4c5d6e7f8092a3b4c5d",
"ticketTitle": "10K General Entry",
"ticketId": "66a4b5c6d7e8f9012a3b4c5d",
"createdAt": "2026-05-10T11:20:00.000Z",
"updatedAt": "2026-05-12T09:15: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"
}
],
"booker": null,
"originalTicketPrice": {
"value": 6500,
"currencyCode": "USD"
},
"incrementalStatus": "NON_INCREMENTAL",
"bibNumber": null,
"bookingCodesUsed": [],
"approvalStatus": "PENDING",
"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.
"tags,gdpr_redacted"
Response
Default Response
An application 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" }
Stand-alone notes left on this application by the organizer (for example, via the "Add note" action in the dashboard). Approval and rejection reasons are returned separately under statusDetails and are not duplicated here.
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
The approval status of this participant. This field will contain one of the following values:
- PENDING — The participant is pending approval or payment.
- APPROVED — The participant's application has been approved.
- FAILED — The participant's application was rejected (either manually or through ballot failure).
- CANCELLED — The participant's application has been cancelled, for example if they were marked as a duplicate entry.
- ELIGIBLE — The participant's application entry is eligible for approval, if for example they entered a "Good For Age" event.
- NOT_ELIGIBLE — The participant's application entry is not eligible for approval, if for example they entered a "Good For Age" event but did not meet the criteria.
APPROVED, CANCELLED, FAILED, PENDING, ELIGIBLE, NOT_ELIGIBLE The type of application, and the way that approval or rejection is achieved. This field will contain one of the following values:
- BALLOT — The participant's application is approved or rejected via a ballot process, wherein N participants are randomly selected from a pool.
- AUTOMATIC — Deprecated. The participant's application is automatically approved or rejected, given some criteria.
- MANUAL — The participant's application is manually approved or rejected, by a human.
- WAITLIST — The participant's application is placed on a waitlist, and will be processed based on the event's waitlist configuration.
BALLOT, MANUAL, AUTOMATIC, WAITLIST The name of the draw that the application was successfully selected in.
"International Ballot Draw"
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?

