Job Status
Poll until ready is true. This endpoint also reconciles state from DataForge, so a single call is enough — no separate /refresh/ needed.
Endpoint
Method: GET
Path: /data-enrichment/status/{job_id}/
Full URL: https://backend.ecoreservice.com/api/v1/data-enrichment/status/{job_id}/
Auth: Authorization: Token YOUR_API_TOKEN (or Bearer) — see Authentication
Response
{
"success": true,
"data": {
"job_id": "6b4c9f70-5a2b-4a0e-9a1b-9c2a3d4e5f61",
"status": "running",
"ready": false,
"progress_pct": 42,
"row_count": 1500,
"processed_rows": 630,
"failed_rows": 4,
"credits_held": "1125.0000",
"credits_charged": "0.0000",
"credits_refunded": "0.0000",
"error_message": null,
"submitted_at": "2026-10-11T19:04:12+00:00",
"started_at": "2026-10-11T19:04:14+00:00",
"completed_at": null
}
}
Status values
| Status | Terminal | Meaning |
|---|---|---|
pending | no | Accepted locally, not yet queued at DataForge. |
queued | no | Queued at DataForge. |
running | no | Being processed. |
completed | yes | All rows processed. Result available. |
partial | yes | Finished with some rows failed. Result available. |
failed | yes | Job failed. See error_message. Credits released. |
cancelled | yes | Cancelled via /cancel/. Credits refunded. |
Suggested polling cadence: every 10–30 seconds. Jobs typically take under a minute per 100 rows but vary by selected layers.