Podcastle Voices API

Browse the voice library and create instant voice clones.

OpenAPI Specification

podcastle-voices-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Async (Podcastle) Voice Text to Speech Voices API
  description: The Async Voice API is the developer platform behind Podcastle's AI audio engine. It exposes low-latency, human-like text-to-speech, a browsable voice library, and instant voice cloning. Podcastle.ai rebranded its developer platform as Async; the API is served from https://api.async.com and authenticated with an x-api-key header plus a version header. Only documented endpoints and fields are modeled here; no endpoints are fabricated.
  termsOfService: https://async.com/terms
  contact:
    name: Async Support
    url: https://docs.async.com
  version: v1
servers:
- url: https://api.async.com
  description: Async Voice API production base URL
security:
- apiKey: []
tags:
- name: Voices
  description: Browse the voice library and create instant voice clones.
paths:
  /voices:
    post:
      operationId: listVoices
      tags:
      - Voices
      summary: List voices from the voice library.
      description: Returns a paginated list of predefined and custom voices. Filters by model, language, accent, gender, and style are supported, along with a cursor for pagination.
      parameters:
      - $ref: '#/components/parameters/Version'
      requestBody:
        required: false
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ListVoicesRequest'
      responses:
        '200':
          description: A page of voices.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListVoicesResponse'
        '401':
          $ref: '#/components/responses/Error'
        '404':
          $ref: '#/components/responses/Error'
        '429':
          $ref: '#/components/responses/Error'
        '500':
          $ref: '#/components/responses/Error'
  /voices/clone:
    post:
      operationId: cloneVoice
      tags:
      - Voices
      summary: Create an instant voice clone.
      description: 'Creates a production-ready custom voice from a short audio clip. Accepts multipart/form-data with the audio sample and optional metadata. Supported audio formats: wav, mp3, flac, aiff.'
      parameters:
      - $ref: '#/components/parameters/Version'
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/CloneVoiceRequest'
      responses:
        '200':
          description: The newly created cloned voice.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CloneVoiceResponse'
        '400':
          $ref: '#/components/responses/Error'
        '401':
          $ref: '#/components/responses/Error'
        '429':
          $ref: '#/components/responses/Error'
        '500':
          $ref: '#/components/responses/Error'
components:
  schemas:
    ListVoicesResponse:
      type: object
      properties:
        voices:
          type: array
          items:
            $ref: '#/components/schemas/VoiceSummary'
        next_cursor:
          type: string
          description: Cursor for fetching the next page.
    CloneVoiceResponse:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        description:
          type: string
        language:
          type: string
          description: ISO 639-1 codes, comma-separated.
    VoiceSummary:
      type: object
      properties:
        voice_id:
          type: string
        voice_type:
          type: string
          enum:
          - PREDEFINED
          - CUSTOM
        name:
          type: string
        description:
          type: string
        language:
          type: string
        gender:
          type: string
        accent:
          type: string
        style:
          type: string
        created_at:
          type: string
        updated_at:
          type: string
    ListVoicesRequest:
      type: object
      properties:
        limit:
          type: integer
          description: Number of voices per page.
          minimum: 1
          maximum: 100
          default: 10
        model_id:
          type: string
          description: Filter by model.
        language:
          type: string
          description: Filter by language (ISO 639-1).
        accent:
          type: string
          description: Filter by accent.
        gender:
          type: string
          description: Filter by gender.
          enum:
          - Male
          - Female
          - Neutral
          - Unspecified
        style:
          type: string
          description: Filter by style.
        my_voice:
          type: boolean
          description: Return only voices owned by the current user.
        after:
          type: string
          description: Pagination cursor for subsequent pages.
    Error:
      type: object
      properties:
        detail:
          type: object
          properties:
            error_code:
              type: string
            message:
              type: string
            extra:
              type: object
    CloneVoiceRequest:
      type: object
      properties:
        audio:
          type: string
          format: binary
          description: 'Audio clip file. Supported formats: wav, mp3, flac, aiff.'
        name:
          type: string
          description: Voice name or label.
        description:
          type: string
          description: Voice description.
        accent:
          type: string
          description: Accent specification.
        gender:
          type: string
          description: Voice gender.
          enum:
          - Male
          - Female
          - Neutral
          - Unspecified
        style:
          type: string
          description: Voice style(s), comma-separated.
        enhance:
          type: boolean
          description: Apply noise reduction to the sample.
          default: false
      required:
      - audio
      - name
  responses:
    Error:
      description: Error response.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  parameters:
    Version:
      name: version
      in: header
      required: true
      description: API version, for example v1.
      schema:
        type: string
        example: v1
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: x-api-key
      description: API key issued from the Async developer console.