Delete Caller (GDPR purge)

Beta
Soft-delete the caller AND cascade soft-delete every memory row pointing at it. Conversations survive (forensic / billing records) but their caller pointer surfaces as "deleted" through the API. Idempotent — re-deleting an already-purged caller returns `{caller_purged: 0, memories_purged: 0}`. Audit row counts accompany every response so a privacy operator has direct evidence of the purge without re-querying. Returns `200` with the row-count body rather than a bodiless `204`: the counts are GDPR-purge audit evidence. This is a deliberate exception to the delete-returns-204 convention, shared with the bulk memory purge (`DELETE /v1/agents/{agent_id}/memories`).

Authentication

AuthorizationBearer

Enter your API key with the Bearer prefix, e.g. ‘Bearer sk_…’.

Path parameters

caller_idstringRequired
Caller ID.

Headers

Speechify-VersionstringOptional

Response headers

X-Request-IDstring
Unique identifier for this request, present on every response (2xx and non-2xx alike). If the caller sends an `X-Request-ID` request header the server echoes it back (sanitized and length-capped) so one logical request can be traced end-to-end; otherwise the server generates a fresh value. Log it on every response and quote it in support requests - it is the stable handle that ties your observation to Speechify's server-side logs, and it matches the `request_id` field in the error envelope.

Response

Soft-delete completed; row counts in the body (GDPR audit evidence).

caller_purgedinteger

1 on the first delete; 0 on idempotent re-delete.

memories_purgedinteger

Number of user_memories rows cascade-soft-deleted under this caller.

Errors

401
Unauthorized Error