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

# Clone a voice

> Make an instant clone of a voice from a recording, then use it in voiceovers, talking avatars and the voice changer. Costs 15 credits.

Clones a voice from a clear recording of one person speaking. Costs 15 credits; you can keep up to 10 clones. Use the returned `clone.id` as a `voice_id`.

```bash theme={null}
curl -X POST "https://mvp.tryunsora.com/api/v1/voice-clones/create" \
  -H "Authorization: Bearer uns_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "My narrator voice",
    "sample_url": "https://cdn.example.com/voice-sample.mp3"
  }'
```


## OpenAPI

````yaml POST /voice-clones/create
openapi: 3.1.0
info:
  title: Unsora API
  version: 1.4.0
  description: >-
    Public API for Unsora integrations. Authenticate with an Unsora API key
    (`uns_…`, created under Developers → API keys in the app) as a Bearer token
    in the Authorization header. Limit: 60 requests per minute per key; over it,
    429 with code RATE_LIMIT_EXCEEDED.
servers:
  - url: https://mvp.tryunsora.com/api/v1
    description: Production
  - url: /api/v1
    description: This server
security: []
tags:
  - name: User
  - name: Models
    description: >-
      Every video, image and motion-control model, with each model's inputs
      taken from the provider's own request schema and prices quoted live. One
      generate endpoint covers all of them.
  - name: Video
  - name: Image
  - name: Influencer
  - name: Thumbnail
  - name: Clipping
  - name: Music
  - name: Voiceover
  - name: Upscaler
  - name: Subtitle removal
  - name: Motion control
  - name: Avatar
  - name: Movie materials
  - name: Voice clones
  - name: Voice changer
  - name: Uploads
  - name: Scheduler
paths:
  /voice-clones/create:
    post:
      tags:
        - Voice clones
      summary: Clone a voice from a sample
      description: >-
        Makes an instant voice clone from a recording of one person speaking.
        Costs 15 credits. You can keep up to 10 clones.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  maxLength: 80
                description:
                  type: string
                  maxLength: 500
                sample_url:
                  type: string
                  format: uri
                  description: Audio or video of the voice. Send this or `sample_asset_id`.
                sample_asset_id:
                  type: string
                  description: >-
                    One of your AUDIO or VIDEO assets (e.g. from POST /uploads)
                    instead of `sample_url`.
              required:
                - name
      responses:
        '200':
          description: Job queued
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VoiceCloneCreateResponse'
        '400':
          description: >-
            Missing name or sample, name or description too long, an invalid or
            empty sample, or already 10 clones
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '402':
          description: Insufficient credits
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: User not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '503':
          description: Voice cloning is not configured
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
        - bearerAuth: []
components:
  schemas:
    VoiceCloneCreateResponse:
      type: object
      properties:
        success:
          type: boolean
        clone:
          $ref: '#/components/schemas/VoiceClone'
        creditsDeducted:
          type: integer
          example: 15
        creditsRemaining:
          type: integer
      required:
        - success
        - clone
    ErrorResponse:
      type: object
      properties:
        success:
          type: boolean
        error:
          type: string
        code:
          type: string
        message:
          type: string
      required:
        - error
    VoiceClone:
      type: object
      properties:
        id:
          type: string
          description: >-
            Pass as `voice_id` to POST /voiceovers/create, POST
            /voice-conversions/create or POST /avatar-generations/create.
        name:
          type: string
        description:
          anyOf:
            - type: string
            - type: 'null'
        sampleAsset:
          type: object
          additionalProperties: true
          description: The audio sample the clone was made from.
        createdAt:
          type: string
          format: date-time
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: An Unsora API key (`uns_…`). A Clerk session token also works.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.