Delete Custom Voice

June 5, 2026

Table of contents

  1. Path Parameters
  2. Request Headers
  3. Responses
  4. Model
  5. Examples
  6. Try It

Delete a user voice by its reference-id. System voice presets are immutable — attempting to delete one returns 400.

When a voice is deleted, any characters that referenced it become orphan-voice — their GET /characters/ref response surfaces voice: { workflowId, deleted: true } so callers can tell “had a voice, it’s gone” vs “never had a voice.”

https://api.useapi.net/v1/google-flow/voices/ref

Path Parameters

  • ref is required, the user voice reference-id returned by POST /voices (URL-encoded). System voice names are rejected with 400.

Request Headers

Authorization: Bearer {API token}

Responses

  • 200 OK

    {
      "deleted": true,
      "workflowId": "d990a2f9-...",
      "voice": "user:12345-email:6a6f...-voice:d990a2f9-...-mid:d55b6d59-..."
    }
    
  • 400 Bad Request

    Attempted to delete a system voice (immutable), or the path segment isn’t a valid voice ref.

    { "error": "Built-in voices cannot be deleted." }
    
  • 403 Forbidden

    The reference belongs to a different user.

    { "error": "Unauthorized access to user:12345 detected in voice reference" }
    
  • 404 Not Found

    The voice already doesn’t exist on the account.

    { "error": "Voice not found: d990a2f9-..." }
    

Model

{
  deleted: true
  workflowId: string
  voice: string                  // echoes the reference-id passed in
}

Examples

  • REF="user:12345-email:6a6f...-voice:d990a2f9-...-mid:d55b6d59-..."
    REF_ENC=$(printf '%s' "$REF" | jq -sRr @uri)
    curl -X DELETE \
         -H "Authorization: Bearer YOUR_API_TOKEN" \
         "https://api.useapi.net/v1/google-flow/voices/$REF_ENC"
    
  • const ref = 'user:12345-email:6a6f...-voice:d990a2f9-...-mid:d55b6d59-...'
    const r = await fetch(
      `https://api.useapi.net/v1/google-flow/voices/${encodeURIComponent(ref)}`,
      { method: 'DELETE', headers: { 'Authorization': `Bearer ${token}` } }
    )
    const { deleted } = await r.json()
    console.log('deleted:', deleted)
    
  • import requests, urllib.parse
    ref = 'user:12345-email:6a6f...-voice:d990a2f9-...-mid:d55b6d59-...'
    r = requests.delete(
        f'https://api.useapi.net/v1/google-flow/voices/{urllib.parse.quote(ref, safe="")}',
        headers={'Authorization': f'Bearer {token}'},
    )
    print('deleted:', r.json().get('deleted'))
    

Try It