curl --request GET \
--url https://api.letsdothis.com/v0/bookings/external-order/{externalOrderId} \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.letsdothis.com/v0/bookings/external-order/{externalOrderId}', 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-order/{externalOrderId}"
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 order ID
Lists the bookings of one imported order, by the order id you supplied on its import rows, scoped to the organizer associated with your Public API credentials. A purchase that produced several bookings returns all of them, and they share one bookingReference. Reusing an order id is how an order gains bookings, so more than one match is expected.
The same lookup is available as the externalOrderId filter on GET /v0/bookings, which additionally composes with the source and status filters. 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-order/{externalOrderId} \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.letsdothis.com/v0/bookings/external-order/{externalOrderId}', 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-order/{externalOrderId}"
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 order id — the id supplied on the import rows that made up one purchase.
Bounded to match the externalOrderId filter on the bookings list, so the two ways of asking for an order accept exactly the same ids.
1 - 255Query 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?

