> ## Documentation Index
> Fetch the complete documentation index at: https://docs.creatify.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Clone Voice

> Clone a voice from an audio sample. The cloned voice can then be used with any endpoint that accepts a voice ID.

## Choosing a provider

`voice_provider` selects the engine that clones the voice. It defaults to `fishaudio`; you only need to set it if you specifically want ElevenLabs.

|                                                                              | `fishaudio` (default) | `elevenlabs`                                                                             |
| ---------------------------------------------------------------------------- | --------------------- | ---------------------------------------------------------------------------------------- |
| How many voices you can clone                                                | Unlimited             | One **voice slot** per voice. Every workspace has 3 slots; more can be purchased.        |
| When the limit is reached                                                    | Never                 | `400` — the error names the ElevenLabs cap and reminds you that `fishaudio` is unlimited |
| `voice.model` on [AI Avatar v2](/api-reference/lipsyncs_v2/post-apilipsyncs) | Not applicable        | `v2` or `v3`                                                                             |

A voice keeps the provider it was cloned with for its lifetime, and both kinds work with every endpoint that accepts a voice ID. Cloning does not consume credits with either provider.

[`GET /api/voices/count/`](/api-reference/voices/get-voices-count) returns the number of cloned voices in the workspace. Because the default provider has no cap, `max_count` there is a large sentinel value rather than a real limit; the ElevenLabs slot limit is enforced only when you clone with `voice_provider: "elevenlabs"`.


## OpenAPI

````yaml post /api/voices/
openapi: 3.0.3
info:
  title: creatify.ai API
  version: 1.0.0
  description: API for creatify.ai
servers: []
security: []
paths:
  /api/voices/:
    post:
      tags:
        - voices
      operationId: voices_create
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VoiceCloneFlow'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/VoiceCloneFlow'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/VoiceCloneFlow'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIVoice'
          description: ''
      security:
        - X-API-ID: []
          X-API-KEY: []
components:
  schemas:
    VoiceCloneFlow:
      type: object
      properties:
        name:
          type: string
          description: Name of the cloned voice
          maxLength: 255
        original_audio_url:
          type: string
          format: uri
          description: URL of the original audio used for cloning
          maxLength: 1000
        voice_provider:
          allOf:
            - $ref: '#/components/schemas/VoiceProviderEnum'
          default: fishaudio
          description: >-
            Provider used to clone the voice. `fishaudio` (default) is unlimited
            and does not consume voice slots. `elevenlabs` occupies one of the
            workspace's voice slots (3 by default, more if purchased). A voice
            keeps its provider for its lifetime; both kinds work with every
            endpoint that accepts a voice ID.


            * `elevenlabs` - elevenlabs

            * `fishaudio` - fishaudio
      required:
        - original_audio_url
    APIVoice:
      type: object
      properties:
        name:
          type: string
          maxLength: 255
        gender:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/APIVoiceGenderEnum'
            - $ref: '#/components/schemas/BlankEnum'
            - $ref: '#/components/schemas/NullEnum'
        accents:
          type: array
          items:
            $ref: '#/components/schemas/Accent'
          readOnly: true
      required:
        - accents
        - name
    VoiceProviderEnum:
      enum:
        - elevenlabs
        - fishaudio
      type: string
      description: |-
        * `elevenlabs` - elevenlabs
        * `fishaudio` - fishaudio
    APIVoiceGenderEnum:
      enum:
        - male
        - female
        - non_binary
      type: string
      description: |-
        * `male` - Male
        * `female` - Female
        * `non_binary` - Non Binary
    BlankEnum:
      enum:
        - ''
    NullEnum:
      enum:
        - null
    Accent:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        accent_name:
          type: string
          readOnly: true
        preview_url:
          type: string
          readOnly: true
      required:
        - accent_name
        - id
        - preview_url
  securitySchemes:
    X-API-ID:
      type: apiKey
      in: header
      name: X-API-ID
      description: API ID, from your settings page.
    X-API-KEY:
      type: apiKey
      in: header
      name: X-API-KEY
      description: API Key, from your settings page.

````