> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.ada.cx/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.ada.cx/_mcp/server.

# Delete all data associated with a chatter's email address

POST https://example.ada.support/api/v1/data-subject-request
Content-Type: application/json

Deletes all data associated with the provided chatter's email address linked to the bot. Replace `example` with your agent's handle. A successful call returns the chatter's email supplied (null if email field was not supplied) in the request whose data will be deleted from Ada's systems. In order to ensure emails are properly linked to a chatter record, ensure the capture block validation when capturing email is set to `@ Email.` **Note for multiple participant emails:** If you are requesting data deletion for one chatter’s email address and they are a participant in a conversation that has multiple email participants (i.e., Email thread with additional recipients in CC), the entire transcript will be deleted for all participants.

Reference: https://docs.ada.cx/reference/data-compliance/delete-chatter-data/delete-all-data-associated-with-a-chatters-email-address

## Authentication

- `Authorization` header (bearer token, required) — Bearer authentication of the form `Bearer <token>`, where token is your auth token.

## Servers

- `https://example.ada.support` (ada, default)
- `https://example.maple.ada.support` (maple.ada)
- `https://example.eu.ada.support` (eu.ada)

## Request

### Body (application/json)

This endpoint expects a DeleteSubjectRequest.

- `type` (enum, required) — Type of data subject request. Must be set to ERASURE.
  - Allowed values: `ERASURE`
- `email` (string, optional) — Email of the chatter whose data you wish to delete from Ada's systems.
- `identifiers` (list of IdentifiersTypeItems, optional) — List containing extra identifiers sent with the data subject request.

## Response

### 200

The request was successfully ingested into Ada's system.

- `email` (string, optional) — Email of the chatter whose data you wish to delete from Ada's systems.

## Errors

### 400 Bad Request Error

Invalid request body or headers.

- `any`

### 401 Unauthorized Error

Authentication token is invalid or does not have the correct permissions. Try generating a new token.

- `any`

### 500 Internal Server Error

Something went wrong on Ada's end.

- `any`

### 502 Bad Gateway Error

Nginx gateway issue on Ada's servers.

- `any`

### 503 Service Unavailable Error

Server temporarily unable to handle the request.

- `any`

### 504 Gateway Timeout Error

Temporary infrastructure error on Ada's servers.

- `any`

## Types

### IdentifiersTypeItems

- `type` (enum, optional)
  - Allowed values: `email`, `chatter_id`
- `value` (string, optional)

## Examples

**Request**

```json
{
  "type": "ERASURE"
}
```

**Response**

```json
{
  "email": "chatter@email.com"
}
```

**SDK Code**

```python
import requests

url = "https://example.ada.support/api/v1/data-subject-request"

payload = { "type": "ERASURE" }
headers = {
    "Authorization": "Bearer <token>",
    "Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.json())
```

```javascript
const url = 'https://example.ada.support/api/v1/data-subject-request';
const options = {
  method: 'POST',
  headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
  body: '{"type":"ERASURE"}'
};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go
package main

import (
	"fmt"
	"strings"
	"net/http"
	"io"
)

func main() {

	url := "https://example.ada.support/api/v1/data-subject-request"

	payload := strings.NewReader("{\n  \"type\": \"ERASURE\"\n}")

	req, _ := http.NewRequest("POST", url, payload)

	req.Header.Add("Authorization", "Bearer <token>")
	req.Header.Add("Content-Type", "application/json")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby
require 'uri'
require 'net/http'

url = URI("https://example.ada.support/api/v1/data-subject-request")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n  \"type\": \"ERASURE\"\n}"

response = http.request(request)
puts response.read_body
```

```java
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.post("https://example.ada.support/api/v1/data-subject-request")
  .header("Authorization", "Bearer <token>")
  .header("Content-Type", "application/json")
  .body("{\n  \"type\": \"ERASURE\"\n}")
  .asString();
```

```php
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://example.ada.support/api/v1/data-subject-request', [
  'body' => '{
  "type": "ERASURE"
}',
  'headers' => [
    'Authorization' => 'Bearer <token>',
    'Content-Type' => 'application/json',
  ],
]);

echo $response->getBody();
```

```csharp
using RestSharp;

var client = new RestClient("https://example.ada.support/api/v1/data-subject-request");
var request = new RestRequest(Method.POST);
request.AddHeader("Authorization", "Bearer <token>");
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{\n  \"type\": \"ERASURE\"\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
```

```swift
import Foundation

let headers = [
  "Authorization": "Bearer <token>",
  "Content-Type": "application/json"
]
let parameters = ["type": "ERASURE"] as [String : Any]

let postData = JSONSerialization.data(withJSONObject: parameters, options: [])

let request = NSMutableURLRequest(url: NSURL(string: "https://example.ada.support/api/v1/data-subject-request")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```