Delete Data Product
Permanently delete a data product record via the API. The source runs, documents, and extracted data stay intact, so you can safely clean up test outputs.
Permanently delete a data product record. This is a hard delete of the product itself — the wrapper that groups runs, thresholds, and share configuration — and it is irreversible. The source runs, their documents, and all extracted data are untouched, because a product assembles run results on read rather than copying them.
Deleting via the API differs from archiving in the platform UI. Archiving is a soft delete that sets status: "archived" and keeps the product addressable; this endpoint removes the product row entirely, so its ID stops resolving and its share link, if any, goes dead. Prefer archiving when you might need the product again; delete when cleaning up test artifacts or decommissioning a deliverable for good.
Before deleting, check what still points at the product. Delivery bindings that reference it will start failing rather than being cleaned up automatically, and a published governed read contract does not survive the product it governs — any App or cross-pipeline rule consuming the product through its contract loses its source. The API does not block the delete on these references; auditing consumers first is your responsibility.
A sensible decommissioning order: revoke the share link (DELETE /share) so the public URL dies deliberately rather than as a side effect, deactivate or retarget delivery bindings, take a final CSV export if the dataset must be retained, and only then delete the product. Each step is independently reversible except the final delete.
/v1/data-products/{id}Path parameters
Response
Response fields
curl
curl -s -X DELETE https://api.talonic.com/v1/data-products/d1a2b3c4-e5f6-7890-abcd-ef1234567890 \
-H "Authorization: Bearer tlnc_your_api_key"Response
{
"deleted": true,
"id": "d1a2b3c4-e5f6-7890-abcd-ef1234567890"
}Errors
Error responses
Response (404 — already deleted or foreign ID)
{
"statusCode": 404,
"code": "RESOURCE_NOT_FOUND",
"error": "Not Found",
"message": "Data product 'd1a2b3c4-e5f6-7890-abcd-ef1234567890' not found.",
"retryable": false
}The delete is not idempotent at the HTTP level: repeating the call for an already-deleted product returns 404, the same response a foreign or mistyped UUID gets. Treat a 404 on delete as "already gone" in cleanup scripts rather than as a failure — the end state is identical.