Data retention and privacy

Audio is not stored

Uploaded audio is processed transiently. The server decodes it in memory and in a memory-backed temporary file system (tmpfs), runs the model, and deletes the temporary files when the request ends, whether it succeeded or failed. Audio is not written to a database, object storage or logs.

This applies to every entry point: REST, the dashboard and the MCP server.

For idempotency matching, the operation record keeps a SHA-256 fingerprint computed over the operation type, the request parameters and a SHA-256 hash of the file. The audio cannot be reconstructed from it.

What is stored

Data What it is Kept until
Voice embeddings For each enrollment sample, a fixed-length vector computed from the audio by the speaker model, plus the model version. Stored encrypted (AES-GCM) with a key held outside the database. You delete the speaker, or delete your account.
Speaker records speaker_id, display_name, sample count, timestamps. You delete the speaker, or delete your account.
Operation results The JSON result of each model operation (scores, segments, similarity, decision, model version). 30 days, then cleared. Cleared at once when you delete your account.
Idempotency keys Your Idempotency-Key value. 24 hours, then cleared. Cleared at once when you delete your account.
Operation metadata Operation type, status, source (API, dashboard or MCP), credits, duration, latency, error code, request fingerprint, timestamps. No audio and no result values. Kept as the billing record.
Usage events One row per model operation request: operation type, status, HTTP status, error code, credits, timestamps. Kept as the billing record.
Credit ledger Grants, reservations, charges and releases. Append-only. Kept as the billing record.
API keys A keyed hash of each key, its display prefix, name, scopes and timestamps. The full key is never stored. Revoked keys keep their record so a key cannot be reused.
Account profile Name, email address, optional phone number, plan. Cleared when you delete your account.
Security events Sign-ins, key changes, speaker deletions. IP addresses are stored only as salted hashes. Kept as the security record.

A voice embedding is derived from a person's voice and can identify them. Treat speaker data as personal data in your own records, use opaque speaker_id values, and delete speakers you no longer need.

Deleting a speaker

DELETE /v1/speakers/{speaker_id} deletes all the speaker's stored embeddings and removes its speaker_id and display_name from the speaker record. It is free and needs the speakers:delete scope. After deletion, the ID returns 404 speaker_not_found and can be enrolled again from scratch.

Example (cURL)
curl -X DELETE https://platform.detectif.ai/v1/speakers/customer-1042 \
  -H "Authorization: Bearer $DETECTIF_API_KEY"

Deleting your account

In the dashboard, open your account settings and choose to delete your account. In one transaction this:

  • revokes every API key;
  • deletes every voice embedding and removes speaker IDs and display names;
  • clears stored operation results and idempotency keys;
  • clears your name, email address and phone number, and marks the account deleted.

Billing records (credit ledger, usage events and operation metadata without results) and security events are kept. Account deletion is available only from a signed-in dashboard session, not with an API key. Requests with the account's old keys fail with 401 revoked_api_key.

Signing in again later with the same login reactivates the account, empty of speakers and keys. The signup grant is not issued a second time.

Isolation between accounts

Every request runs with your account identifier, and the database enforces row-level isolation on every table. A speaker_id or operation_id from another account returns 404, with no indication of whether it exists elsewhere.

Transport security

The API is served only over HTTPS. API keys are accepted only in the Authorization header, never in URLs. The model service has no public network address; only the API server can reach it.