Delete Dataset
DELETE/datasets/:dataset_id
Permanently delete a dataset, every version, and their stored files.
Irreversible, and distinct from deprecation (PATCH /datasets/{id}), which
remains the safe retirement path. The dataset subtree is removed in one
transaction, then the versions' objects and the dataset's Iceberg table are
purged. Any trace_enrichment runs the platform auto-created for this dataset's
versions are removed with it too -- their dependent rows and their own result
artifact in object storage -- rather than left behind as still-readable,
dataset-derived data with nothing left in the DB pointing at them.
Refused with 409 while a run references any version, or while another dataset was derived from this one. Storage is purged only after the transaction commits: the database is the source of truth, so a storage outage leaves orphaned objects (logged for cleanup) rather than a half-deleted subtree.
Two callers deleting the same dataset can both pass the existence check below before either commits. The cascade's row count settles it: the loser removes nothing and gets the same 404 it would have got had it arrived late.
Request
Responses
- 204
- 401
- 403
- 404
- 409
- 422
Successful Response
Unauthorized
Forbidden
Not Found
Conflict
Validation Error