RunAPI Gemini TTS API
The Gemini TTS API from RunAPI — 2 operation(s) for gemini tts.
The Gemini TTS API from RunAPI — 2 operation(s) for gemini tts.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/runapi:runapi-gemini-tts-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: RunAPI Gemini TTS API
version: v1
description: Create and retrieve AI media tasks, or use compatible LLM protocol endpoints.
servers:
- url: https://runapi.ai
security:
- bearerAuth: []
tags:
- name: Gemini TTS
paths:
/api/v1/gemini_tts/text_to_speech:
post:
tags:
- Gemini TTS
summary: Gemini TTS Text-to-Speech
description: Create an asynchronous task through the Gemini TTS text to speech endpoint.
operationId: task_endpoint_gemini_tts_text_to_speech
security:
- bearerAuth: []
requestBody:
required: true
content:
application/json:
schema:
oneOf:
- type: object
properties:
model:
type: string
description: Model slug.
const: gemini-2.5-pro-tts
temperature:
type: number
maximum: 2
minimum: 0
default: 1
description: Sampling temperature.
scene:
type: string
description: Scene and recording environment.
sample_context:
type: string
description: Overall delivery context and tone.
speakers:
type: array
items:
type: object
properties:
pace:
enum:
- Natural
- Rapid Fire
- The Drift
- Staccato
type: string
description: Speaker pace.
style:
enum:
- Vocal Smile
- Newscaster
- Whisper
- Empathetic
- Promo/Hype
- Deadpan
type: string
description: Speaker delivery style.
accent:
enum:
- Neutral
- American (Gen)
- American (Valley)
- American (South)
- British (RP)
- British (Brixton)
- Transatlantic
- Australian
type: string
description: Speaker accent.
speaker_id:
type: string
pattern: ^Speaker [1-9][0-9]*$
description: Unique identifier in Speaker N format.
voice_name:
enum:
- Achernar
- Achird
- Algenib
- Algieba
- Alnilam
- Aoede
- Autonoe
- Callirrhoe
- Charon
- Despina
- Enceladus
- Erinome
- Fenrir
- Gacrux
- Iapetus
- Kore
- Laomedeia
- Leda
- Orus
- Puck
- Pulcherrima
- Rasalgethi
- Sadachbia
- Sadaltager
- Schedar
- Sulafat
- Umbriel
- Vindemiatrix
- Zephyr
- Zubenelgenubi
type: string
description: Preset voice name.
audio_profile:
type: string
description: Optional voice character guidance.
required:
- speaker_id
- voice_name
minItems: 1
description: Non-empty speaker configurations with unique Speaker N identifiers.
dialogue_turns:
type: array
items:
type: object
properties:
text:
maxLength: 10000
type: string
description: Spoken text, up to 10,000 characters.
speaker_id:
type: string
description: Identifier matching a configured speakers[].speaker_id.
required:
- text
- speaker_id
minItems: 1
description: Non-empty ordered dialogue turns whose speaker ids reference configured speakers.
callback_url:
type: string
description: Webhook URL for async notifications.
additionalProperties: false
required:
- model
- speakers
- dialogue_turns
- type: object
properties:
model:
type: string
description: Model slug.
const: gemini-3.1-flash-tts
temperature:
type: number
maximum: 2
minimum: 0
default: 1
description: Sampling temperature.
scene:
type: string
description: Scene and recording environment.
sample_context:
type: string
description: Overall delivery context and tone.
speakers:
type: array
items:
type: object
properties:
pace:
enum:
- Natural
- Rapid Fire
- The Drift
- Staccato
type: string
description: Speaker pace.
style:
enum:
- Vocal Smile
- Newscaster
- Whisper
- Empathetic
- Promo/Hype
- Deadpan
type: string
description: Speaker delivery style.
accent:
enum:
- Neutral
- American (Gen)
- American (Valley)
- American (South)
- British (RP)
- British (Brixton)
- Transatlantic
- Australian
type: string
description: Speaker accent.
speaker_id:
type: string
pattern: ^Speaker [1-9][0-9]*$
description: Unique identifier in Speaker N format.
voice_name:
enum:
- Achernar
- Achird
- Algenib
- Algieba
- Alnilam
- Aoede
- Autonoe
- Callirrhoe
- Charon
- Despina
- Enceladus
- Erinome
- Fenrir
- Gacrux
- Iapetus
- Kore
- Laomedeia
- Leda
- Orus
- Puck
- Pulcherrima
- Rasalgethi
- Sadachbia
- Sadaltager
- Schedar
- Sulafat
- Umbriel
- Vindemiatrix
- Zephyr
- Zubenelgenubi
type: string
description: Preset voice name.
audio_profile:
type: string
description: Optional voice character guidance.
required:
- speaker_id
- voice_name
minItems: 1
description: Non-empty speaker configurations with unique Speaker N identifiers.
dialogue_turns:
type: array
items:
type: object
properties:
text:
maxLength: 10000
type: string
description: Spoken text, up to 10,000 characters.
speaker_id:
type: string
description: Identifier matching a configured speakers[].speaker_id.
required:
- text
- speaker_id
minItems: 1
description: Non-empty ordered dialogue turns whose speaker ids reference configured speakers.
callback_url:
type: string
description: Webhook URL for async notifications.
additionalProperties: false
required:
- model
- speakers
- dialogue_turns
responses:
'202':
description: Create acceptance
content:
application/json:
schema:
type: object
required:
- id
- status
properties:
id:
type: string
status:
type: string
enum:
- processing
task_replayed:
type: boolean
unevaluatedProperties: false
'400':
description: Invalid request
content:
application/json:
schema:
oneOf:
- type: object
required:
- error
properties:
error:
type: string
description: Human-readable error message.
unevaluatedProperties: false
- type: object
required:
- error
- errors
properties:
error:
type: string
description: Human-readable validation summary.
errors:
type: object
description: Validation messages keyed by public request field, with an array of human-readable strings for each field.
additionalProperties:
type: array
items:
type: string
unevaluatedProperties: false
'401':
description: Authentication required
content:
application/json:
schema:
type: object
required:
- error
properties:
error:
type: string
description: Human-readable error message.
unevaluatedProperties: false
'402':
description: Insufficient balance
content:
application/json:
schema:
type: object
required:
- error
properties:
error:
type: string
description: Human-readable error message.
unevaluatedProperties: false
'409':
description: Request conflict
content:
application/json:
schema:
type: object
required:
- error
properties:
error:
type: string
description: Human-readable error message.
unevaluatedProperties: false
'429':
description: Api token credit limit exceeded or Rate limited
content:
application/json:
schema:
type: object
required:
- error
properties:
error:
type: string
description: Human-readable error message.
unevaluatedProperties: false
'503':
description: Service unavailable
content:
application/json:
schema:
type: object
required:
- error
properties:
error:
type: string
description: Human-readable error message.
unevaluatedProperties: false
'504':
description: Timeout error
content:
application/json:
schema:
type: object
required:
- error
properties:
error:
type: string
description: Human-readable error message.
unevaluatedProperties: false
/api/v1/gemini_tts/text_to_speech/{id}:
get:
tags:
- Gemini TTS
summary: Retrieve Gemini TTS Text-to-Speech task
description: Create an asynchronous task through the Gemini TTS text to speech endpoint.
operationId: task_endpoint_gemini_tts_text_to_speech_retrieve
security:
- bearerAuth: []
parameters:
- name: id
in: path
required: true
schema:
type: string
responses:
'200':
description: Polling processing or Polling completed or Polling failed
content:
application/json:
schema:
oneOf:
- type: object
required:
- id
- status
properties:
id:
type: string
status:
type: string
enum:
- processing
unevaluatedProperties: false
- type: object
required:
- id
- status
- audios
- usage
properties:
id:
type: string
status:
type: string
enum:
- completed
audios:
type: array
items:
type: object
required:
- url
properties:
url:
type: string
x-runapi-generated-media: true
unevaluatedProperties: false
usage:
type: object
properties:
cost:
type: number
unevaluatedProperties: false
unevaluatedProperties: false
- type: object
required:
- id
- status
- error
properties:
id:
type: string
status:
type: string
enum:
- failed
error:
type: string
unevaluatedProperties: false
'401':
description: Polling authentication required
content:
application/json:
schema:
type: object
required:
- error
properties:
error:
type: string
description: Human-readable error message.
unevaluatedProperties: false
'404':
description: Task not found
content:
application/json:
schema:
type: object
required:
- error
properties:
error:
type: string
description: Human-readable error message.
unevaluatedProperties: false
components:
securitySchemes:
bearerAuth:
type: http
scheme: bearer
bearerFormat: API token