curl --request GET \
--url https://api.letsdothis.com/v0/reserved-entries/participants/import/{jobId} \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.letsdothis.com/v0/reserved-entries/participants/import/{jobId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.letsdothis.com/v0/reserved-entries/participants/import/{jobId}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"jobId": "664a4b5c6d7e8f901a2b3c4d",
"status": "completed",
"counts": {
"pending": 0,
"processing": 0,
"success": 1,
"failure": 0,
"cancelled": 0,
"total": 1
},
"rowCounts": {
"succeeded": 1,
"alreadyImported": 0,
"failed": 1,
"total": 2
},
"results": [
{
"rowIndex": 0,
"reservedEntryGroupId": "65a2b3c4d5e6f708192a3b4c",
"bookingId": "65a1b2c3d4e5f60718293a4b",
"entryId": "65b3c4d5e6f708192a3b4c5d",
"participantId": "8c11d86e-a472-4d4a-b1aa-0a816f715f21",
"individualReservedEntryId": "65c4d5e6f708192a3b4c5d6e",
"status": "succeeded",
"errors": []
},
{
"rowIndex": 1,
"reservedEntryGroupId": "65a2b3c4d5e6f708192a3b4c",
"status": "failed",
"errors": [
{
"code": "NO_CAPACITY_REMAINING",
"message": "Group VIP has 0 free places but the batch assigns 1. Set expandCapacity to raise it."
}
]
}
],
"capacityChanges": []
}{
"statusCode": 400,
"error": "<string>",
"message": "<string>"
}Get reserved entry participant import status
Returns the progress and outcomes of a submission returned by POST /v0/reserved-entries/participants/import. Poll until status is completed before treating results as final — they accumulate as the job works through the batch.
Results are per participant, not per submitted row: a row naming a bookingId produces one result per participant on that booking, all sharing its rowIndex.
Every result echoes bookingId, entryId and participantId so a caller can reconcile on whichever identifier they hold; store participantId, which is the durable key the reserved entry links on. alreadyImported means that participant already held a place in that group and nothing was applied.
curl --request GET \
--url https://api.letsdothis.com/v0/reserved-entries/participants/import/{jobId} \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.letsdothis.com/v0/reserved-entries/participants/import/{jobId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.letsdothis.com/v0/reserved-entries/participants/import/{jobId}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"jobId": "664a4b5c6d7e8f901a2b3c4d",
"status": "completed",
"counts": {
"pending": 0,
"processing": 0,
"success": 1,
"failure": 0,
"cancelled": 0,
"total": 1
},
"rowCounts": {
"succeeded": 1,
"alreadyImported": 0,
"failed": 1,
"total": 2
},
"results": [
{
"rowIndex": 0,
"reservedEntryGroupId": "65a2b3c4d5e6f708192a3b4c",
"bookingId": "65a1b2c3d4e5f60718293a4b",
"entryId": "65b3c4d5e6f708192a3b4c5d",
"participantId": "8c11d86e-a472-4d4a-b1aa-0a816f715f21",
"individualReservedEntryId": "65c4d5e6f708192a3b4c5d6e",
"status": "succeeded",
"errors": []
},
{
"rowIndex": 1,
"reservedEntryGroupId": "65a2b3c4d5e6f708192a3b4c",
"status": "failed",
"errors": [
{
"code": "NO_CAPACITY_REMAINING",
"message": "Group VIP has 0 free places but the batch assigns 1. Set expandCapacity to raise it."
}
]
}
],
"capacityChanges": []
}{
"statusCode": 400,
"error": "<string>",
"message": "<string>"
}403. Contact your Let’s Do This representative if you’d like access.Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
Response
Default Response
The state of an asynchronous reserved entry participant import. results accumulates as the job's tasks complete, so a processing job reports the assignments finished so far; poll until status is completed.
results is the outcome: one entry per submitted row, carrying that row's own status and errors. It is the only field that reports whether any data landed, so decide what to action from it.
status and counts describe progress, and neither reports success. status is completed once the work finished, including work whose every row was rejected, and counts is of internal work units rather than rows. rowCounts totals the result outcomes in results and accumulates the same way, so a non-zero rowCounts.failed is the signal to inspect results. Results are per participant, so a submitted row covering a booking's participants yields several, and rowCounts.total can exceed the submitted row count.
queued, processing, completed, cancelled Progress counts for an import job, tracking internal work units rather than rows. One unit covers a server-side chunk of the submitted batch, so total does not correspond to the number of rows submitted, and a unit that runs to completion counts as success even when every one of its rows failed validation. Per-row outcomes, including failures, are reported in results, not here.
Show child attributes
Show child attributes
Outcome totals for an import job, folded from results: one count per reported result, not per submitted row. Most imports report one result per submitted row, but an endpoint can report several — a reserved-entry participant row covering a booking reports one result per participant — so total can legitimately exceed the submitted row count and is not a reconciliation check against it. The totals accumulate the same way results does: a processing job counts the results reported so far. A non-zero failed is the signal to inspect results and act on the failures.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
The capacity raises this job made, empty unless the request set expandCapacity. Accumulates alongside results.
Show child attributes
Show child attributes
Was this page helpful?

