Get Ingest Job
const options = {
method: 'GET',
headers: {'x-api-key': '<x-api-key>', 'x-organization-id': '<x-organization-id>'}
};
fetch('https://api.dcycle.io/v2/ingest-jobs/{job_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.dcycle.io/v2/ingest-jobs/{job_id}"
headers = {
"x-api-key": "<x-api-key>",
"x-organization-id": "<x-organization-id>"
}
response = requests.get(url, headers=headers)
print(response.text)curl --request GET \
--url https://api.dcycle.io/v2/ingest-jobs/{job_id} \
--header 'x-api-key: <x-api-key>' \
--header 'x-organization-id: <x-organization-id>'{
"id": "<string>",
"status": "<string>",
"entity_type": "<string>",
"operation": "<string>",
"source": "<string>",
"counts": {
"submitted": 123,
"succeeded": 123,
"failed": 123
},
"chunks_total": 123,
"chunks_done": 123,
"created_at": {},
"finished_at": {},
"links": {}
}Get Ingest Job
Status and progress of a bulk ingest job
GET
/
v2
/
ingest-jobs
/
{job_id}
Get Ingest Job
const options = {
method: 'GET',
headers: {'x-api-key': '<x-api-key>', 'x-organization-id': '<x-organization-id>'}
};
fetch('https://api.dcycle.io/v2/ingest-jobs/{job_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.dcycle.io/v2/ingest-jobs/{job_id}"
headers = {
"x-api-key": "<x-api-key>",
"x-organization-id": "<x-organization-id>"
}
response = requests.get(url, headers=headers)
print(response.text)curl --request GET \
--url https://api.dcycle.io/v2/ingest-jobs/{job_id} \
--header 'x-api-key: <x-api-key>' \
--header 'x-organization-id: <x-organization-id>'{
"id": "<string>",
"status": "<string>",
"entity_type": "<string>",
"operation": "<string>",
"source": "<string>",
"counts": {
"submitted": 123,
"succeeded": 123,
"failed": 123
},
"chunks_total": 123,
"chunks_done": 123,
"created_at": {},
"finished_at": {},
"links": {}
}← Create Wastes (v2)
Read the status, counters and progress of a job created by a bulk endpoint such as
POST /v2/wastes. This is the endpoint to poll while the records are being
calculated.
Beta. Part of the bulk ingest API, currently in beta. The contract may still change before general
availability.
Request
Headers
string
required
Your API key for authenticationExample:
sk_live_1234567890abcdefstring
required
UUID of the organization that created the job, or of one of its parent organizations.Example:
a8315ef3-dd50-43f8-b7ce-d839e68d51faPath Parameters
uuid
required
The job
id, as returned in the bulk response body and in its Location header.Example: 2d4b90c1-7c1e-4b6f-9a55-3f2b8e61d0aaResponse
uuid
Job id.
string
Available values:
processing, completed, completed_with_errors, failed.processing: the records are stored and their emissions are being calculated.completed: every record was calculated.completed_with_errors: every chunk ran and at least one record failed to calculate (counts.failed > 0).failed: the job as a whole failed; contact support with the job id.
string
What the job creates, e.g.
wastes.string
Available values:
create.string
How the job was submitted. Available values:
api_bulk, file_upload, import_wizard.object
integer
Number of calculation chunks.
integer
Chunks already calculated.
chunks_done / chunks_total is the progress.datetime
When the job was created (UTC).
datetime | null
When the job finished (UTC),
null while it is processing.object
self: this job. items: its per-record outcomes.Example
curl "https://api.dcycle.io/v2/ingest-jobs/2d4b90c1-7c1e-4b6f-9a55-3f2b8e61d0aa" \
-H "x-api-key: ${DCYCLE_API_KEY}" \
-H "x-organization-id: ${DCYCLE_ORG_ID}"
import os
import requests
job = requests.get(
"https://api.dcycle.io/v2/ingest-jobs/2d4b90c1-7c1e-4b6f-9a55-3f2b8e61d0aa",
headers={
"x-api-key": os.environ["DCYCLE_API_KEY"],
"x-organization-id": os.environ["DCYCLE_ORG_ID"],
},
timeout=30,
).json()
print(job["status"], f"{job['chunks_done']}/{job['chunks_total']}")
const axios = require('axios');
const { data: job } = await axios.get(
'https://api.dcycle.io/v2/ingest-jobs/2d4b90c1-7c1e-4b6f-9a55-3f2b8e61d0aa',
{
headers: {
'x-api-key': process.env.DCYCLE_API_KEY,
'x-organization-id': process.env.DCYCLE_ORG_ID,
},
},
);
console.log(job.status, `${job.chunks_done}/${job.chunks_total}`);
Successful Response
{
"id": "2d4b90c1-7c1e-4b6f-9a55-3f2b8e61d0aa",
"status": "completed_with_errors",
"entity_type": "wastes",
"operation": "create",
"source": "api_bulk",
"counts": { "submitted": 250, "succeeded": 247, "failed": 3 },
"chunks_total": 3,
"chunks_done": 3,
"created_at": "2026-09-29T10:15:02.184311",
"finished_at": "2026-09-29T10:16:41.902774",
"links": {
"self": "/v2/ingest-jobs/2d4b90c1-7c1e-4b6f-9a55-3f2b8e61d0aa",
"items": "/v2/ingest-jobs/2d4b90c1-7c1e-4b6f-9a55-3f2b8e61d0aa/items"
}
}
Poll every 5 to 10 seconds and stop when
status is no longer processing. chunks_done / chunks_total tells
you how far along the job is.Common Errors
401 Unauthorized
Missing or invalid API key.404 Not Found
The job does not exist, or it belongs to an organization outside the one inx-organization-id. Both cases return
the same response.
{
"code": "NOT_FOUND",
"detail": "IngestJobModel with id='2d4b90c1-7c1e-4b6f-9a55-3f2b8e61d0aa' not found"
}
Related Endpoints
List Ingest Job Items
Per-record outcomes of the job
Create Wastes (v2)
Create up to 5,000 wastes in one request
Was this page helpful?