---
title: "Remove a Document"
description: "Delete Document by document ID. Document will be moved to Folder (agenda) trash and visible in web interface."
---

> Documentation Index
> Fetch the complete documentation index at: /api-docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Remove a Document

<div class="endpoint-signature"><span data-method="DELETE">DELETE</span><code>/api/v1_2/documents/:document_id</code></div>

Delete Document by document ID. Document will be moved to Folder (agenda) trash and visible in web interface.

Only finalized documents can be trashed (with state included in: ready, not_ready, exported, export_error, data_duplicate, auto_exported).

## Path parameters

| Name | Example | Description |
|---|---|---|
| `document_id` | — | — |

## Headers

| Name | Example | Description |
|---|---|---|
| `Authorization` | Bearer demo_access_token | — |

## Code examples

### cURL

```curl
curl --request DELETE 'https://app.datamolino.com/api/v1_2/documents/98765' \
  --header 'Authorization: Bearer demo_access_token'
```
### HTTP

```http
DELETE /api/v1_2/documents/98765 HTTP/1.1
Host: app.datamolino.com
Authorization: Bearer demo_access_token
```
### JavaScript Fetch

```javascript
const response = await fetch("https://app.datamolino.com/api/v1_2/documents/98765", {
  method: "DELETE",
  headers: {
"Authorization": "Bearer demo_access_token"
  },
});

const data = await response.json();
```
### Node.js Axios

```javascript
import axios from "axios";

const response = await axios({
  method: "delete",
  url: "https://app.datamolino.com/api/v1_2/documents/98765",
  headers: {
"Authorization": "Bearer demo_access_token"
  }
});

console.log(response.data);
```
### Python Requests

```python
import requests

url = "https://app.datamolino.com/api/v1_2/documents/98765"
headers = {
  "Authorization": "Bearer demo_access_token"
}

response = requests.request("DELETE", url, headers=headers)
response.raise_for_status()
print(response.json())
```
### Ruby Net::HTTP

```ruby
require 'json'
require 'net/http'

uri = URI("https://app.datamolino.com/api/v1_2/documents/98765")
request = Net::HTTP::Delete.new(uri)
request["Authorization"] = "Bearer demo_access_token"

response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == "https") do |http|
  http.request(request)
end

puts JSON.parse(response.body)
```
### Ruby on Rails

```ruby
# app/services/datamolino_client.rb
require 'json'
require 'net/http'

class DatamolinoClient
  BASE_URL = "https://app.datamolino.com"

  def initialize(access_token: Rails.application.credentials.dig(:datamolino, :access_token))
@access_token = access_token
  end

  def request_remove_a_document
uri = URI("#{BASE_URL}/api/v1_2/documents/98765")
request = Net::HTTP::Delete.new(uri)
request["Authorization"] = "Bearer #{@access_token}"

response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
  http.request(request)
end

JSON.parse(response.body)
  end
end
```
### PHP Guzzle

```php
<?php

use GuzzleHttp\Client;

$client = new Client();
$response = $client->request('DELETE', 'https://app.datamolino.com/api/v1_2/documents/98765', [
'headers' => json_decode('{"Authorization":"Bearer demo_access_token"}', true)
]);

echo $response->getBody();
```
### Java OkHttp

```java
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
.url("https://app.datamolino.com/api/v1_2/documents/98765")
.addHeader("Authorization", "Bearer demo_access_token")
.method("DELETE", null)
.build();

Response response = client.newCall(request).execute();
```
### C# HttpClient

```csharp
using var client = new HttpClient();
using var request = new HttpRequestMessage(HttpMethod.Delete, "https://app.datamolino.com/api/v1_2/documents/98765");
request.Headers.Add("Authorization", "Bearer demo_access_token");

using var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());
```
### Go Native

```go
client := &http.Client{}
req, err := http.NewRequest("DELETE", "https://app.datamolino.com/api/v1_2/documents/98765", nil)
if err != nil { panic(err) }
req.Header.Add("Authorization", "Bearer demo_access_token")

res, err := client.Do(req)
if err != nil { panic(err) }
defer res.Body.Close()

body, err := io.ReadAll(res.Body)
if err != nil { panic(err) }
fmt.Println(string(body))
```
### Swift URLSession

```swift
import Foundation

var request = URLRequest(url: URL(string: "https://app.datamolino.com/api/v1_2/documents/98765")!)
request.httpMethod = "DELETE"
request.setValue("Bearer demo_access_token", forHTTPHeaderField: "Authorization")

let (data, _) = try await URLSession.shared.data(for: request)
print(String(data: data, encoding: .utf8)!)
```

Source: /api-docs/reference/document-basic-actions/remove-a-document/index.md
