Delete a catalog entry
DELETE/v1/catalog/entities/{entityId}
Deletes a catalog entry, as the Catalog's Delete: SOFT — it leaves the lists, and trips that already use it keep showing it. Deleting a destino or a place takes everything below it (its zones and places; products are never taken). When that is more than the entry itself, confirm (a query parameter) must be its exact name; ?dryRun=true answers the counts first. Undo with POST /changes/{changeId}/revert, or POST /catalog/entities/{entityId}/restore.
Permissions: catalog:write · Kind: destructive · Cost: 1 unit · Dry run: ?dryRun=true · MCP tool delete_catalog_entity
Undoable: the response carries Bymundi-Change-Id; revert it with POST /v1/changes/{changeId}/revert.
Path parameters
| Field | Type | Required | Description |
|---|---|---|---|
entityId |
uuid | yes |
Query parameters
| Field | Type | Required | Description |
|---|---|---|---|
confirm |
string | The entry's exact name, when the delete takes more than the entry itself. max 200 chars |
Response 200
One of:
catalog_entity
| Field | Type | Required | Description |
|---|---|---|---|
object |
"catalog_entity" | yes | |
id |
uuid | yes | |
deleted |
true | yes | |
deletedIds |
uuid[] | yes |
catalog_delete_preview
| Field | Type | Required | Description |
|---|---|---|---|
object |
"catalog_delete_preview" | yes | |
id |
uuid | yes | |
name |
string | yes | |
deletes |
object | yes | |
deletes.zonas |
integer | yes | |
deletes.lugares |
integer | yes | |
requiresConfirmation |
boolean | yes | true: repeat without dryRun and with confirm set to the entry's exact name. |
Errors
Errors are problem details. Besides the refusals described above, any call like this one can return:
invalid_request— Invalid requestunauthorized— Missing or invalid API keyinsufficient_scope— Missing permissionrate_limited— Rate limit reachednot_found— Not foundidempotency_key_reused— Idempotency-Key reusedrequest_in_progress— Request in progressforbidden— Not allowed