curl --request DELETE \
--url https://app.thinnest.ai/api/v1/calls/{id}/content \
--header 'Authorization: Bearer <token>'const options = {method: 'DELETE', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.thinnest.ai/api/v1/calls/{id}/content', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://app.thinnest.ai/api/v1/calls/{id}/content"
headers = {"Authorization": "Bearer <token>"}
response = requests.delete(url, headers=headers)
print(response.text){
"contentDeleted": true,
"contentDeletedAt": "2026-10-15T09:12:40.118Z",
"recordingsPending": 0,
"call": null
}{
"error": "Thinnest-Workspace needs a developer workspace. Create a customer first with POST /v1/customers.",
"code": "workspace_not_developer"
}{
"error": "Unauthorized",
"code": "unauthorized"
}{
"error": "Deleting a call's recording and transcript needs a full API key."
}{
"error": "No call with that id."
}{
"error": "That call is still going on. Delete its content once it has ended."
}{
"error": "This workspace was deleted on 2026-10-06 and is erased on 2026-11-05. POST /v1/customers/{id}/restore brings it back until then.",
"code": "workspace_deleted"
}{
"error": "Over 240 requests a minute. Slow down and retry.",
"code": "rate_limit_resources",
"limit": {
"name": "resources",
"perMinute": 240
}
}{
"error": "Could not delete that call's content just now. Nothing is lost by trying again."
}Delete Call Content
Deletes ONE call’s recording and transcript, and keeps its billing record. Gone: the recording (ours, the phone provider’s copy of a call on a number we rent, and any copy made for model training), this call’s own turns in its conversation (other calls and chats with the same person stay), its summary, its collected fields, and the summary handed on with a warm hand-off. Kept: the call itself — when it happened, who it was with, how long it lasted, what it cost and billing. Afterwards Get Call answers with recording: null, an empty transcript, contentDeleted: true and contentDeletedAt. A recording that cannot be deleted at that moment is queued and retried every night until it is gone, and counted in recordingsPending. For a call you placed that was retried, every attempt’s content goes. This cannot be undone.
This is not Cancel Call: DELETE /calls/{id} still calls a call off. Safe to repeat — again answers 200 with the first deletion’s time. Needs a full key; a developer reaches a customer’s call with Thinnest-Workspace.
curl --request DELETE \
--url https://app.thinnest.ai/api/v1/calls/{id}/content \
--header 'Authorization: Bearer <token>'const options = {method: 'DELETE', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.thinnest.ai/api/v1/calls/{id}/content', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://app.thinnest.ai/api/v1/calls/{id}/content"
headers = {"Authorization": "Bearer <token>"}
response = requests.delete(url, headers=headers)
print(response.text){
"contentDeleted": true,
"contentDeletedAt": "2026-10-15T09:12:40.118Z",
"recordingsPending": 0,
"call": null
}{
"error": "Thinnest-Workspace needs a developer workspace. Create a customer first with POST /v1/customers.",
"code": "workspace_not_developer"
}{
"error": "Unauthorized",
"code": "unauthorized"
}{
"error": "Deleting a call's recording and transcript needs a full API key."
}{
"error": "No call with that id."
}{
"error": "That call is still going on. Delete its content once it has ended."
}{
"error": "This workspace was deleted on 2026-10-06 and is erased on 2026-11-05. POST /v1/customers/{id}/restore brings it back until then.",
"code": "workspace_deleted"
}{
"error": "Over 240 requests a minute. Slow down and retry.",
"code": "rate_limit_resources",
"limit": {
"name": "resources",
"perMinute": 240
}
}{
"error": "Could not delete that call's content just now. Nothing is lost by trying again."
}Authorizations
Your API key (ta_live_…) from Settings → API keys, sent as Authorization: Bearer <key>. Keep it on a server: it can message every customer you have. A key is full, build or read-only; a request its level does not allow is refused with 403.
Headers
Developers only: the customer workspace this request acts in — its org_… id from POST /customers. Leave it out to act in your own workspace. Refused with 404 (Workspace not found.) when the id is unknown, is not one of your customers, or is not an org_… id; 410 when that customer was deleted (restore it with POST /customers/{id}/restore until it is erased); 403 when the key belongs to one customer workspace (it cannot act as another); 400 when your workspace is not a developer workspace. /customers/* and GET /customers/usage are your own workspace's and refuse the header with 400: call them without it.
"org_3fKq9TzQ1mN8vB2xR7cLpA"
Path Parameters
The call's id as Place Call or List Calls gave it: out_… or sch_… for a call you placed, the call reference for any other.
"out_9f2c1a44-6b0e-4c1d-8a7f-2e5b3c9d1f60"
Response
The content is deleted. call is Get Call's answer now.
When the content was first deleted — the same on every repeat.
Recording files that could not be deleted at that moment and are retried every night until they are gone.
The call as Get Call now answers.
Show child attributes
Show child attributes