curl --request GET \
--url https://api.letsdothis.com/v0/bookings/external/{externalBookingId} \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.letsdothis.com/v0/bookings/external/{externalBookingId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.letsdothis.com/v0/bookings/external/{externalBookingId}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"data": [
{
"id": "6399c20015d60ae3ff28f24c",
"status": "CONFIRMED",
"booker": {
"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": []
},
"ticketId": "6399c11c58f29f001ca95934",
"createdAt": "2026-05-08T11:30:00.000Z",
"updatedAt": "2026-05-08T11:30:00.000Z",
"participantCount": 123,
"externalBookingId": "ORD-100234",
"externalOrderId": "ORDER-4471",
"source": "INTERNAL",
"eventOccurrenceId": "6399c11c58f29f001ca95935",
"ticketSlug": "1106607777",
"bookingReference": "br_K9F3P7W2QX5T"
}
],
"page": {
"totalResults": 506,
"first": "eyJpZCI6IjYzOTljMjAwMTVkNjBhZTNmZjI4ZjI0YyIsInVwZGF0ZWRBdCI6IjIwMjItMTItMTRUMTI6MzA6NTkuMjE3WiJ9",
"last": "eyJpZCI6IjY1NGNkZDIxZDlhMTU3ODdiNzFkMTM0YSIsInVwZGF0ZWRBdCI6IjIwMjMtMTEtMTNUMTU6MTE6MTIuNzI0WiJ9",
"prev": "",
"next": "eyJpZCI6IjY0NzBkNTkwM2RjOWE5OWJhMTA0Y2ZhYiIsInVwZGF0ZWRBdCI6IjIwMjMtMTEtMTNUMTU6MTE6MTIuNjE4WiJ9"
}
}List bookings by your external booking ID
Lists the bookings carrying the external id you supplied when importing, scoped to the organizer associated with your Public API credentials.
Several bookings can share one external id — correcting an import cancels the original and re-imports it, so both remain — and every match is returned, oldest first — so the most recent is last — for you to choose between. An id you have not used, and one belonging to another organizer, both return an empty list.
curl --request GET \
--url https://api.letsdothis.com/v0/bookings/external/{externalBookingId} \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.letsdothis.com/v0/bookings/external/{externalBookingId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.letsdothis.com/v0/bookings/external/{externalBookingId}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"data": [
{
"id": "6399c20015d60ae3ff28f24c",
"status": "CONFIRMED",
"booker": {
"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": []
},
"ticketId": "6399c11c58f29f001ca95934",
"createdAt": "2026-05-08T11:30:00.000Z",
"updatedAt": "2026-05-08T11:30:00.000Z",
"participantCount": 123,
"externalBookingId": "ORD-100234",
"externalOrderId": "ORDER-4471",
"source": "INTERNAL",
"eventOccurrenceId": "6399c11c58f29f001ca95935",
"ticketSlug": "1106607777",
"bookingReference": "br_K9F3P7W2QX5T"
}
],
"page": {
"totalResults": 506,
"first": "eyJpZCI6IjYzOTljMjAwMTVkNjBhZTNmZjI4ZjI0YyIsInVwZGF0ZWRBdCI6IjIwMjItMTItMTRUMTI6MzA6NTkuMjE3WiJ9",
"last": "eyJpZCI6IjY1NGNkZDIxZDlhMTU3ODdiNzFkMTM0YSIsInVwZGF0ZWRBdCI6IjIwMjMtMTEtMTNUMTU6MTE6MTIuNzI0WiJ9",
"prev": "",
"next": "eyJpZCI6IjY0NzBkNTkwM2RjOWE5OWJhMTA0Y2ZhYiIsInVwZGF0ZWRBdCI6IjIwMjMtMTEtMTNUMTU6MTE6MTIuNjE4WiJ9"
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
Your own external booking id — the correlation id supplied when the booking was created via the import API.
Query Parameters
The number of entries to return per page. Range between 1 - 500, defaults to 100
1 <= x <= 500100
Accepts an existing page cursor. For more details see the definition of PageCursor in the response.
Accepts an existing page cursor. For more details see the definition of PageCursor in the response.
Response
Default Response
A paginated list of booking summaries.
Show child attributes
Show child attributes
Cursor details for pagination.
- In scenarios with large amounts of data, it's common to return only a subset of data in a single request, known as a "page".
- Most API responses include two objects: a 'data' object with the query results, and a 'PageCursor' object detailing the current page.
- Cursors can be used to navigate to earlier or later pages in the set of results. For instance, passing the 'next' cursor from 'PageCursor' fetches the next set of results.
- Cursors are base64 encoded strings.
Show child attributes
Show child attributes
{
"totalResults": 506,
"first": "eyJpZCI6IjYzOTljMjAwMTVkNjBhZTNmZjI4ZjI0YyIsInVwZGF0ZWRBdCI6IjIwMjItMTItMTRUMTI6MzA6NTkuMjE3WiJ9",
"last": "eyJpZCI6IjY1NGNkZDIxZDlhMTU3ODdiNzFkMTM0YSIsInVwZGF0ZWRBdCI6IjIwMjMtMTEtMTNUMTU6MTE6MTIuNzI0WiJ9",
"prev": "",
"next": "eyJpZCI6IjY0NzBkNTkwM2RjOWE5OWJhMTA0Y2ZhYiIsInVwZGF0ZWRBdCI6IjIwMjMtMTEtMTNUMTU6MTE6MTIuNjE4WiJ9"
}
Was this page helpful?

