curl --request GET \
--url https://api.letsdothis.com/v0/add-ons/import/{jobId} \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.letsdothis.com/v0/add-ons/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/add-ons/import/{jobId}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"importId": "3a55dc4c-6fd2-49bd-90cd-32c65fce7b1a",
"jobId": "65f60718293a4b5c6d7e8f90",
"status": "completed",
"counts": {
"pending": 0,
"processing": 0,
"success": 1,
"failure": 0,
"cancelled": 0,
"total": 1
},
"results": [
{
"status": "succeeded",
"externalAddOnId": "city-marathon-tshirt",
"product": {
"externalAddOnId": "city-marathon-tshirt",
"addOnId": "5fcd4b7e-1a2c-4d89-8f31-6b72e09a45c3",
"outcome": "created",
"variants": [
{
"externalVariantId": "city-marathon-tshirt-navy-m",
"variantId": "29bb39a4-3206-4f43-9a6a-79d83fc1c31e",
"outcome": "created"
}
]
},
"errors": []
},
{
"status": "succeeded",
"externalAddOnId": "city-marathon-cap",
"product": {
"externalAddOnId": "city-marathon-cap",
"addOnId": "7ad1c930-5b64-4e12-9c07-2f8e1d3a6b45",
"outcome": "created",
"variants": [
{
"externalVariantId": "city-marathon-cap-onesize",
"variantId": "3e5f7a91-8c2d-4b06-a1f4-90d6c7b28e13",
"outcome": "created"
}
]
},
"errors": []
}
],
"page": {
"totalResults": 2,
"first": "",
"last": "",
"prev": "",
"next": ""
}
}{
"statusCode": 404,
"error": "<string>",
"message": "<string>"
}Get add-on import status
Returns task counts and paginated per-product results for an organizer-owned add-on product import. Poll until the status is completed or cancelled.
curl --request GET \
--url https://api.letsdothis.com/v0/add-ons/import/{jobId} \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.letsdothis.com/v0/add-ons/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/add-ons/import/{jobId}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"importId": "3a55dc4c-6fd2-49bd-90cd-32c65fce7b1a",
"jobId": "65f60718293a4b5c6d7e8f90",
"status": "completed",
"counts": {
"pending": 0,
"processing": 0,
"success": 1,
"failure": 0,
"cancelled": 0,
"total": 1
},
"results": [
{
"status": "succeeded",
"externalAddOnId": "city-marathon-tshirt",
"product": {
"externalAddOnId": "city-marathon-tshirt",
"addOnId": "5fcd4b7e-1a2c-4d89-8f31-6b72e09a45c3",
"outcome": "created",
"variants": [
{
"externalVariantId": "city-marathon-tshirt-navy-m",
"variantId": "29bb39a4-3206-4f43-9a6a-79d83fc1c31e",
"outcome": "created"
}
]
},
"errors": []
},
{
"status": "succeeded",
"externalAddOnId": "city-marathon-cap",
"product": {
"externalAddOnId": "city-marathon-cap",
"addOnId": "7ad1c930-5b64-4e12-9c07-2f8e1d3a6b45",
"outcome": "created",
"variants": [
{
"externalVariantId": "city-marathon-cap-onesize",
"variantId": "3e5f7a91-8c2d-4b06-a1f4-90d6c7b28e13",
"outcome": "created"
}
]
},
"errors": []
}
],
"page": {
"totalResults": 2,
"first": "",
"last": "",
"prev": "",
"next": ""
}
}{
"statusCode": 404,
"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
Query Parameters
The number of import results to return per page. Range between 1 - 50, defaults to 50.
1 <= x <= 5050
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
Progress and product results for an asynchronous add-on import.
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.
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
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?

