curl --request GET \
--url https://api.letsdothis.com/v0/event-occurrences/{id}/form-field-responses/{publicId} \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.letsdothis.com/v0/event-occurrences/{id}/form-field-responses/{publicId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.letsdothis.com/v0/event-occurrences/{id}/form-field-responses/{publicId}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"data": [
{
"participantId": "7d22e97f-b583-4e5b-a2bb-1b927f826a32",
"firstName": "John",
"lastName": "Runner",
"emailAddress": "john@invalid.test",
"eventOccurrenceId": "21111177561",
"publicId": "marketingOptIn",
"fieldName": "Marketing updates",
"value": "Opt-in",
"createdAt": "2026-05-12T16:45:00.000Z",
"updatedAt": "2026-05-12T16:45:03.000Z"
}
],
"page": {
"totalResults": 123,
"prev": "<string>",
"next": "<string>"
}
}{
"statusCode": 400,
"error": "<string>",
"message": "<string>"
}{
"statusCode": 401,
"error": "<string>",
"message": "<string>"
}{
"statusCode": 403,
"error": "<string>",
"message": "<string>"
}{
"statusCode": 404,
"error": "<string>",
"message": "<string>"
}List participants by their answer to a booking form field
Returns confirmed participants whose answer to a booking form field matches the supplied value. Each result includes participant identity details and the matched answer.
Specify the field’s public ID and an exact value, including any surrounding whitespace. Matching uses the public ID stored with each participant’s answer. If multiple fields share that public ID, an answer to any of them can match. No matching answers returns an empty list.
For example, use a marketing opt-in field and its affirmative answer to find participants who opted in.
curl --request GET \
--url https://api.letsdothis.com/v0/event-occurrences/{id}/form-field-responses/{publicId} \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.letsdothis.com/v0/event-occurrences/{id}/form-field-responses/{publicId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.letsdothis.com/v0/event-occurrences/{id}/form-field-responses/{publicId}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"data": [
{
"participantId": "7d22e97f-b583-4e5b-a2bb-1b927f826a32",
"firstName": "John",
"lastName": "Runner",
"emailAddress": "john@invalid.test",
"eventOccurrenceId": "21111177561",
"publicId": "marketingOptIn",
"fieldName": "Marketing updates",
"value": "Opt-in",
"createdAt": "2026-05-12T16:45:00.000Z",
"updatedAt": "2026-05-12T16:45:03.000Z"
}
],
"page": {
"totalResults": 123,
"prev": "<string>",
"next": "<string>"
}
}{
"statusCode": 400,
"error": "<string>",
"message": "<string>"
}{
"statusCode": 401,
"error": "<string>",
"message": "<string>"
}{
"statusCode": 403,
"error": "<string>",
"message": "<string>"
}{
"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 event occurrence to query by.
The public ID the organizer gave the booking form field, as a participant's fields report it.
Query Parameters
The number of entries to return per page. Range between 1 - 500, defaults to 100
1 <= x <= 500100
Use page.next from the previous response to fetch the next page.
Use page.prev from the previous response to fetch the previous page.
Sort by update date. 1 for ascending, -1 for descending.
1, -1, null "1"
Sort by creation date. 1 for ascending, -1 for descending.
1, -1, null "1"
Only return entries created after this date.
"2020-01-01T20:15:00.000Z"
Only return entries created before this date.
"2020-01-01T20:15:00.000Z"
Only return entries updated after this date.
"2020-01-01T20:15:00.000Z"
Only return entries updated before this date.
"2020-01-01T20:15:00.000Z"
The exact recorded answer to match, including any surrounding whitespace. Use the stored value or option key, which may differ from the displayed label. Blank values are rejected.
1"Opt-in"
Was this page helpful?

