> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://docs.ada.cx/reference/data-compliance/delete-chatter-data/delete-all-data-associated-with-a-chatters-email-address/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 `, 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 ", "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 ', '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 ") 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 ' 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 response = Unirest.post("https://example.ada.support/api/v1/data-subject-request") .header("Authorization", "Bearer ") .header("Content-Type", "application/json") .body("{\n \"type\": \"ERASURE\"\n}") .asString(); ``` ```php request('POST', 'https://example.ada.support/api/v1/data-subject-request', [ 'body' => '{ "type": "ERASURE" }', 'headers' => [ 'Authorization' => 'Bearer ', '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 "); 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 ", "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() ```