# Delete document

Delete a document and its associated versions and share links. A document awaiting signatures cannot be deleted. Shared documents require the creator's or an administrator's permission.

POST https://api.brigg.app/v1/operations/documents.DeleteDocument

## Access & visibility

Allow `documents.DeleteDocument` on your API key.

**Workspace access by default.** Private member data requires [approved member delegation](https://developer.brigg.app/authentication#member-delegation) through `Brigg-Act-As`; the key supplies permissions while private ownership and project boundaries remain enforced.

[Set up authentication](https://developer.brigg.app/authentication) · [Choose permissions](https://developer.brigg.app/permissions)

## Request fields

Send a JSON object with the following fields. Required fields must be included; omit optional fields you do not need.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `scope` | string | No | The tree the document is in. Omit to take it from the document itself. Allowed: `"org"`, `"user"`, `"resources"`. |
| `file_id` | string | Yes | Use a file_id returned by this listing or by CompleteUpload. It is not an upload ID, storage path or filename. [documents.ListDocuments](https://developer.brigg.app/reference/documents/ListDocuments). At least 1 character. |

## Response

Returns **200 OK** with a JSON body.

This permanently removes the selected document, not just its folder placement. For collaborative text documents it also removes live editing state, version history and share links. For generated documents it deletes the backing content. There is no public undo; use MoveDocument when you only want another location.

The acting member must have authority to administer the document. A signing lock protects pending and completed signed content. A fresh request for an already absent file returns not_found; retry a lost successful response with the original idempotency key.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `ok` | boolean | Yes | Whether the action completed successfully. |

## 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](https://developer.brigg.app/http#errors) and [safe retries and limits](https://developer.brigg.app/reliability).

| 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. If Brigg-Act-As is supplied, the key must be authorized to delegate to that member. |
| 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. |

## Next steps

- [List documents](https://developer.brigg.app/reference/documents/ListDocuments)
- [Move document](https://developer.brigg.app/reference/documents/MoveDocument)

[Download OpenAPI](https://developer.brigg.app/openapi.json) · [Versioning & retirement](https://developer.brigg.app/versioning)

## Examples

### Delete one document

Select the exact file_id from ListDocuments before this irreversible action.
#### cURL


```sh
curl 'https://api.brigg.app/v1/operations/documents.DeleteDocument' \
  -H "Authorization: Bearer $BRIGG_API_KEY" \
  -H 'Content-Type: application/json' \
  -H "Idempotency-Key: $BRIGG_REQUEST_ID" \
  --data-raw '{
  "file_id": "f_obsolete_notes"
}'
```

#### TypeScript


```typescript
const requestId = process.env.BRIGG_REQUEST_ID;
if (!requestId) throw new Error("Set BRIGG_REQUEST_ID once per action and reuse it on retries.");

const response = await fetch("https://api.brigg.app/v1/operations/documents.DeleteDocument", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.BRIGG_API_KEY}`,
    "Content-Type": "application/json",
    "Idempotency-Key": requestId, // Create once per action; reuse on retries.
  },
  body: JSON.stringify({
    "file_id": "f_obsolete_notes"
  }),
});
const result = await response.json();
if (!response.ok) throw new Error(`${response.status}: ${result.error} — ${result.message}`);
console.log(result);
```

#### Python


```python
import json
import os
from urllib.request import Request, urlopen
from urllib.error import HTTPError

request_id = os.environ["BRIGG_REQUEST_ID"]  # Reuse for retries of this action.
payload = {
  "file_id": "f_obsolete_notes"
}
request = Request(
    "https://api.brigg.app/v1/operations/documents.DeleteDocument",
    data=json.dumps(payload).encode("utf-8"),
    headers={
        "Authorization": f"Bearer {os.environ['BRIGG_API_KEY']}",
        "Content-Type": "application/json",
        "Idempotency-Key": request_id,  # Create once per action; reuse on retries.
    },
    method="POST",
)
try:
    with urlopen(request) as response:
        print(json.load(response))
except HTTPError as error:
    print(error.code, json.load(error))
    raise
```

#### Response example


```json
{
  "ok": true
}
```

## JSON schemas


```json-schema-request
{
  "type": "object",
  "properties": {
    "scope": {
      "type": "string",
      "enum": [
        "org",
        "user",
        "resources"
      ],
      "description": "The tree the document is in. Omit to take it from the document itself."
    },
    "file_id": {
      "type": "string",
      "minLength": 1,
      "description": "Use a file_id returned by this listing or by CompleteUpload. It is not an upload ID, storage path or filename. [documents.ListDocuments](https://developer.brigg.app/reference/documents/ListDocuments)."
    }
  },
  "required": [
    "file_id"
  ],
  "additionalProperties": false,
  "examples": [
    {
      "file_id": "f_obsolete_notes"
    }
  ]
}
```


```json-schema-response
{
  "type": "object",
  "properties": {
    "ok": {
      "type": "boolean",
      "description": "Whether the action completed successfully."
    }
  },
  "required": [
    "ok"
  ],
  "additionalProperties": false,
  "examples": [
    {
      "ok": true
    }
  ]
}
```

