202 Accepted response with a jobId rather than blocking until processing completes. You use this endpoint to poll that job and determine its current lifecycle phase, track how many records have been processed, inspect any structured errors, and retrieve the final cryptographic proofs once anchoring is complete. Your integration should poll this endpoint at a reasonable interval (we recommend every 2–5 seconds) until the phase field returns COMPLETED or FAILED, at which point you can also listen for the corresponding polygon.verified, shipment.linked, or job.failed webhook event.
Endpoint
GET /api/v1/enterprise/eudr/jobs/{jobId}
Path Parameters
The unique identifier of the asynchronous job to query. This value is returned in the
jobId field of the 202 Accepted response from ingestion endpoints. Example: job_998877Response Fields
The unique asynchronous tracking job ID. Example:
job_998877The organization ID that initiated the job. Example:
org_test_tier1_alphaThe current execution phase of the job. Possible values:
IMPORTING, ANALYZING, ANCHORING, GENERATING_CERTS, COMPLETED, FAILED.Total number of records (polygons, batches, etc.) submitted for this job.
Number of records that have been processed so far. Use
processedRecords / totalRecords to compute progress.Number of records that failed processing. A non-zero value does not necessarily mean the entire job failed — inspect the
errors array for details.Number of units (polygons or batches) that passed EUDR compliance checks. Present in the response once
phase is COMPLETED.Number of units flagged as high-risk during satellite analysis. These require additional due diligence before DDS submission.
The Hedera Merkle root hash for the anchored dataset. Present once the
ANCHORING phase is complete. Example: 0xabc123...The Hedera consensus transaction ID that provides immutable proof of anchoring. Example:
0.0.8713513@1713583200-000000000Unix epoch millisecond timestamp of when the job began processing.
Unix epoch millisecond timestamp of when the job reached a terminal state (
COMPLETED or FAILED). null if still in progress.A structured array of error objects for records that failed during this job. An empty array indicates no failures.
Programmatic error code for automated branch logic. Example:
POLYGON_OVERLAPThe specific record identifier or field that caused the failure. Example:
polygon_id_123Human-readable description of the failure. Example:
Polygon 12 overlaps protected park spaceJob Phase Lifecycle
| Phase | Description |
|---|---|
IMPORTING | Records are being ingested and validated |
ANALYZING | Copernicus Sentinel-2 satellite deforestation analysis is running |
ANCHORING | Compliance proofs are being anchored on Hedera Hashgraph |
GENERATING_CERTS | Cryptographic compliance certificates are being generated |
COMPLETED | All records processed; hederaTransactionId is available |
FAILED | Job terminated with errors; inspect the errors array |
Error Responses
| Status | Code | Description |
|---|---|---|
401 | UNAUTHORIZED | Missing or invalid X-API-Key |
403 | FORBIDDEN | Your API key does not have job monitoring permissions |
404 | NOT_FOUND | No job found for the provided jobId |