Skip to content

Retire a source

DELETE
/v1/datasets/canonical/{dataset_id}
curl --request DELETE \
--url https://example.com/v1/datasets/canonical/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0

Retire one source: it leaves the catalog, and its episodes leave the lake and every facet count.

A TOMBSTONE, not a purge. Nothing is erased and no storage is reclaimed — ADR 0017 keeps physical deletion separate, and the schema agrees: pinned DatasetVersions resolve through this source’s episode identities and must keep resolving. pinned_versions_retained reports how many do.

dataset_id
required
string format: uuid
account_id

Act on this account (active)

string | null format: uuid

Act on this account (active)

x-api-key
string | null

Retired (or already retired — the call is idempotent)

Media type application/json
SourceRetireResponse

Result of retiring a source.

object
retired
required

False when the source was already retired; the call is idempotent

boolean
dataset_name
required

Name the source had at retirement

string
episodes_hidden
required

Episodes that left the lake with it

integer
dataset_defs_retired
required

Source-bound dataset definitions retired alongside it

integer
pinned_versions_retained
required

Pinned DatasetVersions that still resolve through this source. Retirement is a tombstone, so these keep working and no bytes are freed.

integer
Example generated
{
"retired": true,
"dataset_name": "example",
"episodes_hidden": 1,
"dataset_defs_retired": 1,
"pinned_versions_retained": 1
}

Unknown source, or outside the caller’s account

Validation Error

Media type application/json
HTTPValidationError
object
detail
Array<object>
ValidationError
object
loc
required
Location
Array<string | integer>
msg
required
Message
string
type
required
Error Type
string
input
ctx
Context
object
Example generated
{
"detail": [
{
"loc": [
"example"
],
"msg": "example",
"type": "example",
"input": "example",
"ctx": {}
}
]
}