Access & visibility
Allow documents.DeleteBundle on your API key.
Acting member required. Send Brigg-Act-As with an approved member account ID. The key supplies permissions; the member selects whose data is used.
The selected member must be active and approved by the credential. This selects whose private data is used; the credential supplies permissions. Private ownership and project boundaries still apply.
Request fields
Send a JSON object with the following fields. Required fields must be included; omit optional fields you do not need.
content_idstringRequiredUse content_id and check kind before choosing the operation. An app, template, website and uploaded file are not interchangeable. workspace.ListBundles.
At least 1 character.
Check the content before permanent deletion
Select content_id and inspect kind in List content. This deletes the selected app, template, website or generated content and its associated artifacts. It is not the operation for deleting one customer record or an uploaded file; use the appropriate record operation or Delete document. There is no public undo.
The acting member needs workspace access and must own the content, have created it, or be a workspace owner or administrator. Workspace-managed material such as shared newsletters also permits workspace members; an ordinary shared app is not automatically administrable by every reader. A signing lock protects both a pending document and a completed signed record. Inspect signing state before attempting deletion.
For apps, fields added to another resource type can survive when records outside this app still use them. retained_fields reports those definitions; an empty array means none needed retaining. A fresh deletion of an absent content_id returns app_not_found; retrying the original action with the same idempotency key can replay the original result.
Response
Returns 200 OK with a JSON body.
okbooleanRequiredWhether the action completed successfully.
retained_fieldsarray of DeleteBundleRetainedExtensionFieldsRequiredField definitions retained because values still belong to records outside the deleted content.
Item fields
target_typestringRequiredResource type owned by another app whose records still contain values in fields added by the deleted app.
fieldsarray of stringRequiredNames of extension fields retained on that resource type to preserve surviving record values. These are field keys, not template instructions or attachments.
Errors & retries
Set BRIGG_REQUEST_ID once for each logical action. The samples send it as Idempotency-Key. Reuse the same value and body on retries, including after a timeout; a missing response does not prove the action failed.
For rate limits, follow the server’s retry guidance and back off. See HTTP errors and safe retries and limits.
| HTTP status | Code | What to do |
|---|---|---|
| 400 | invalid_json |
Send a JSON object with Content-Type: application/json. |
| 400 | invalid_input |
Check the request fields and types. Supply a stable Idempotency-Key containing 1–200 characters. |
| 401 | invalid_key |
The workspace API key is missing, invalid or revoked. |
| 403 | forbidden |
Check the key’s operation and resource grants. Supply Brigg-Act-As with a member authorized by the key’s delegation grant. The selected member must be active and approved by the credential. This selects whose private data is used; the credential supplies permissions. Private ownership and project boundaries still apply. |
| 404 | not_found |
The requested operation or resource is not available to this credential. |
| 429 | rate_limited |
Wait for Retry-After before retrying. Reuse the original Idempotency-Key. |
| 409 | signing_locked |
A signing request protects this document from this change. Inspect its signing state in Brigg; completed signed records must not be destroyed. |
| 404 | app_not_found |
This content does not exist or is not visible. A fresh delete after successful removal also returns this code. |
Next steps
JSON schemas
Use the complete schemas for validation or client generation.
Full request JSON schema
{
"type": "object",
"properties": {
"content_id": {
"type": "string",
"minLength": 1,
"description": "Use content_id and check kind before choosing the operation. An app, template, website and uploaded file are not interchangeable. [workspace.ListBundles](/developers/reference/workspace/ListBundles)."
}
},
"required": [
"content_id"
],
"additionalProperties": false,
"examples": [
{
"content_id": "c_vendor_portal"
}
]
}Full response JSON schema
{
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"description": "Whether the action completed successfully."
},
"retained_fields": {
"type": "array",
"items": {
"title": "DeleteBundleRetainedExtensionFields",
"type": "object",
"properties": {
"target_type": {
"type": "string",
"description": "Resource type owned by another app whose records still contain values in fields added by the deleted app."
},
"fields": {
"type": "array",
"items": {
"type": "string"
},
"description": "Names of extension fields retained on that resource type to preserve surviving record values. These are field keys, not template instructions or attachments."
}
},
"required": [
"target_type",
"fields"
],
"additionalProperties": false
},
"description": "Field definitions retained because values still belong to records outside the deleted content."
}
},
"required": [
"ok",
"retained_fields"
],
"additionalProperties": false,
"examples": [
{
"ok": true,
"retained_fields": [
{
"target_type": "core:Company",
"fields": [
"vendor_portal_code"
]
}
]
}
]
}