Delete Data Policy
Permanently delete a data policy and cascade its versions, fields, and rules. Resolution runs keep captured snapshots for audit. Irreversible; write scope.
Permanently delete a data policy and everything under it: versions, fields, and rules. This action is irreversible. Resolution runs that previously captured a snapshot of the policy are not affected, because each run retains its own copy of the configuration it executed.
Deleting is the right call for abandoned drafts and superseded experiments; for a policy that ever ran in production, consider keeping it instead — the policy row costs nothing, and keeping it preserves the ability to inspect the exact fields and rules behind historical output without digging through run snapshots. A rename via PATCH (for example, prefixing "DEPRECATED —") is often the better retirement mechanism.
Deletion cascades through the policy's full tree: every version, and each version's fields and rules, are removed with the policy row. There is no soft-delete or trash — a deleted UUID immediately returns 404 on every read, and a second DELETE of the same id also returns 404 not_found rather than a repeated success, which makes the call safe to retry while still surfacing when something else already removed the policy. The endpoint requires an API key with the write scope; a read-only key receives 403 before any lookup happens.
/v1/data-policies/{id}Path parameters
Response
Response fields
curl
curl -s -X DELETE https://api.talonic.com/v1/data-policies/p1a2b3c4-e5f6-7890-abcd-ef1234567890 \
-H "Authorization: Bearer tlnc_your_api_key"Response
{
"deleted": true,
"id": "p1a2b3c4-e5f6-7890-abcd-ef1234567890"
}Errors
Error responses
Before deleting, export the configuration you might want back: GET /v1/data-policies/{id} returns the full policy with fields and rules inlined, which is enough to reconstruct it later. If the policy is wired into a pipeline's Resolve stage, update the pipeline first so future runs do not reference a missing policy.
Tenant scoping applies as everywhere on this API: the delete matches only policies owned by your organization, so a valid UUID belonging to another tenant is indistinguishable from a missing one — both return 404 not_found. Cleanup automation can therefore treat 404 as "already gone" without leaking whether the id ever existed, and without needing a pre-flight read.