Skip to main content
Reducto lets you delete job artifacts and uploaded files on demand instead of waiting for the end of the automatic retention window.
Organizations on Growth and Enterprise tiers already benefit from Reducto’s Zero Data Retention (ZDR) policy, which typically purges all API processing artifacts within 24 hours. These endpoints are for cases where you need to delete artifacts before the 24-hour period.

What gets deleted

DELETE /job/{job_id} deletes the API-layer artifacts that Reducto stores in live systems when processing a job: Uploaded files are managed separately. To remove a file you uploaded via POST /upload, use DELETE /upload/{file_id}. When cleanup finishes, Reducto tombstones the job record. Tombstoning marks the record as deleted so Reducto no longer serves it through job retrieval endpoints; residual copies may remain briefly in backups or object-store versions until they are removed through ordinary backup rotation. What is not affected:
  • Studio data. Jobs created through Studio pipelines are managed separately. These endpoints only delete artifacts stored by the Reducto API.
  • Your source documents. If you provided a URL to an externally hosted file, that file is untouched.
  • Completed downstream results. If another job already consumed this job’s output (e.g. chained extract after parse), the downstream job’s own artifacts remain until you delete them separately.

Delete a job

DELETE /job/{job_id} is asynchronous. It validates your request, marks the job as pending deletion, enqueues a background cleanup task, and returns 202 Accepted. Artifact cleanup runs in the background.

HTTP status codes

Job deletion is asynchronous, so the status codes reflect the lifecycle of the deletion process.

Deleting persisted artifacts

If you used persist_results: true when creating the job, persisted result artifacts are kept by default even after deletion according to your account settings or agreement with Reducto. Pass include_persisted=true to also delete those long-retention artifacts:

Response

Store the deletion response with your own request logs if you need evidence that Reducto accepted the deletion request.

Failure recovery

If the background cleanup task fails, the deletion marker is rolled back automatically. The job becomes retrievable again via GET /job/{job_id} and you can retry the DELETE request.

Delete an uploaded file

DELETE /upload/{file_id} removes the file you uploaded via POST /upload. This operation is synchronous and returns immediately. Pass the full reducto:// file ID returned by POST /upload.

Response

Jobs that already processed this file are not affected. Delete each job separately if needed.

Relationship to data retention

These deletion endpoints complement, not replace, Reducto’s automatic data retention policies. For the full scope of Reducto’s data handling obligations, please refer to Reducto’s Data Processing Agreement (DPA). For full details on data retention and security policies, see Data policies & compliance.

Troubleshooting

The job’s artifacts are being cleaned up in the background. Wait and retry your GET /job/{job_id} request. Once cleanup finishes, the status changes to 410 Gone.
The job was deleted from live systems (either manually via this endpoint or by automatic retention). The job record is tombstoned and is no longer retrievable through the API.
Only completed or failed jobs can be deleted. If the job is still processing, wait for it to finish or cancel it first via POST /cancel/{job_id}.
No. Jobs created through Studio pipelines are managed separately. These endpoints only delete artifacts stored by the Reducto API.
No. Deleted jobs are not recoverable through the API. Back up results separately before deleting them in Reducto’s database if you need them later.
The deletion marker is rolled back automatically. The job becomes retrievable again and you can retry the DELETE request.