openapi: 3.1.0 info: title: Inworld Models Voices API description: 'List every model available behind the Inworld platform — first-party TTS, STT, and Realtime models plus all third-party LLMs reachable through the LLM Router. Returns provider, model id, capabilities (chat, vision, tool use, speech, streaming), and pricing tier metadata for runtime discovery. ' version: v1 contact: name: Inworld Support url: https://docs.inworld.ai/tts/resources/support license: name: Inworld Terms of Service url: https://inworld.ai/legal/terms-of-service servers: - url: https://api.inworld.ai description: Inworld Production API security: - BasicAuth: [] tags: - name: Voices description: Voice cloning, design, and lifecycle. paths: /voices/v1/voices: get: summary: List Voices description: List all voices in the caller's workspace. operationId: listVoices tags: - Voices parameters: - name: pageSize in: query required: false schema: type: integer - name: pageToken in: query required: false schema: type: string responses: '200': description: Voices returned. content: application/json: schema: $ref: '#/components/schemas/ListVoicesResponse' 4XX: $ref: '#/components/responses/ErrorResponse' /voices/v1/voices:clone: post: summary: Clone Voice description: 'Instant voice cloning. Submit one or more short audio samples (WAV or MP3, base64-encoded) and receive a new custom voice that can be used immediately in TTS and Realtime calls. ' operationId: cloneVoice tags: - Voices requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CloneVoiceRequest' responses: '200': description: Cloned voice returned. content: application/json: schema: $ref: '#/components/schemas/CloneVoiceResponse' 4XX: $ref: '#/components/responses/ErrorResponse' /voices/v1/voices:design: post: summary: Design Voice description: 'Generate a brand-new voice from a natural-language description plus optional reference audio. Returns a candidate voice that can be previewed and then published. ' operationId: designVoice tags: - Voices requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/DesignVoiceRequest' responses: '200': description: Designed voice returned. content: application/json: schema: $ref: '#/components/schemas/Voice' 4XX: $ref: '#/components/responses/ErrorResponse' /voices/v1/voices:publish: post: summary: Publish Voice description: Publish a designed or cloned voice so it is available for use in TTS and Realtime. operationId: publishVoice tags: - Voices requestBody: required: true content: application/json: schema: type: object required: - voiceId properties: voiceId: type: string responses: '200': description: Voice published. content: application/json: schema: $ref: '#/components/schemas/Voice' 4XX: $ref: '#/components/responses/ErrorResponse' /voices/v1/voices/{voiceId}: parameters: - name: voiceId in: path required: true schema: type: string get: summary: Get Voice operationId: getVoice tags: - Voices responses: '200': description: Voice returned. content: application/json: schema: $ref: '#/components/schemas/Voice' 4XX: $ref: '#/components/responses/ErrorResponse' patch: summary: Update Voice operationId: updateVoice tags: - Voices requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateVoiceRequest' responses: '200': description: Updated voice returned. content: application/json: schema: $ref: '#/components/schemas/Voice' 4XX: $ref: '#/components/responses/ErrorResponse' delete: summary: Delete Voice operationId: deleteVoice tags: - Voices responses: '204': description: Voice deleted. 4XX: $ref: '#/components/responses/ErrorResponse' components: responses: ErrorResponse: description: Error response. content: application/json: schema: $ref: '#/components/schemas/Error' schemas: CloneVoiceRequest: type: object required: - displayName - langCode - voiceSamples properties: displayName: type: string langCode: type: string enum: - EN_US - ZH_CN - KO_KR - JA_JP - RU_RU - AUTO - IT_IT - ES_ES - PT_BR - DE_DE - FR_FR - AR_SA - PL_PL - NL_NL - HI_IN - HE_IL description: type: string tags: type: array items: type: string voiceSamples: type: array items: type: object required: - audioData properties: audioData: type: string format: byte description: Base64-encoded WAV or MP3 audio. transcription: type: string audioProcessingConfig: type: object properties: removeBackgroundNoise: type: boolean UpdateVoiceRequest: type: object properties: displayName: type: string description: type: string tags: type: array items: type: string CloneVoiceResponse: type: object properties: voice: $ref: '#/components/schemas/Voice' audioSamplesValidated: type: array items: type: object properties: valid: type: boolean reason: type: string Error: type: object properties: code: type: integer message: type: string DesignVoiceRequest: type: object required: - displayName - prompt - langCode properties: displayName: type: string prompt: type: string description: Natural-language description of the voice (gender, age, accent, tone). langCode: type: string referenceAudio: type: string format: byte description: Optional base64 reference audio. ListVoicesResponse: type: object properties: voices: type: array items: $ref: '#/components/schemas/Voice' nextPageToken: type: string Voice: type: object properties: voiceId: type: string displayName: type: string description: type: string langCode: type: string tags: type: array items: type: string source: type: string enum: - INWORLD - IVC - DESIGN published: type: boolean securitySchemes: BasicAuth: type: http scheme: basic