RunAPI Fish Audio API
The Fish Audio API from RunAPI — 3 operation(s) for fish audio.
The Fish Audio API from RunAPI — 3 operation(s) for fish audio.
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-fish-audio-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 Fish Audio 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: Fish Audio
paths:
/api/v1/fish_audio/text_to_speech:
post:
tags:
- Fish Audio
summary: Fish Audio Text-to-Speech
description: Send a synchronous request through the Fish Audio text to speech endpoint.
operationId: task_endpoint_fish_audio_text_to_speech
security:
- bearerAuth: []
requestBody:
required: true
content:
application/json:
schema:
oneOf:
- type: object
properties:
model:
type: string
description: Model slug.
const: s1
text:
type: string
output_format:
type: string
enum:
- mp3
- wav
default: mp3
description: Output audio format.
sample_rate_hz:
type: integer
enum:
- 8000
- 16000
- 24000
- 32000
- 44100
default: 44100
description: Output sample rate. MP3 supports 32000 and 44100 Hz; WAV supports every listed value.
bitrate_kbps:
type: integer
enum:
- 64
- 128
- 192
default: 128
description: MP3 bitrate. Not accepted for WAV output.
references:
type:
- array
- 'null'
items:
type: object
properties:
text:
type: string
description: Exact transcript that matches the reference audio word for word.
audio:
type: string
pattern: ^https://
description: Publicly accessible HTTPS audio URL. Must remain valid while queued and read by the provider.
required:
- text
- audio
maxItems: 1
description: One temporary voice-cloning sample. Cannot be combined with voice_id. Omit, use null, or [] for no sample.
voice_id:
type: string
additionalProperties: false
required:
- model
- text
allOf:
- if:
required:
- references
properties:
references:
type: array
minItems: 1
then:
not:
required:
- voice_id
properties:
voice_id:
type: string
pattern: \S
- if:
properties:
output_format:
const: wav
required:
- output_format
then:
not:
required:
- bitrate_kbps
- if:
properties:
output_format:
const: mp3
required:
- output_format
then:
properties:
sample_rate_hz:
enum:
- 32000
- 44100
- if:
not:
required:
- output_format
then:
properties:
sample_rate_hz:
enum:
- 32000
- 44100
- type: object
properties:
model:
type: string
description: Model slug.
const: s2-pro
text:
type: string
output_format:
type: string
enum:
- mp3
- wav
default: mp3
description: Output audio format.
sample_rate_hz:
type: integer
enum:
- 8000
- 16000
- 24000
- 32000
- 44100
default: 44100
description: Output sample rate. MP3 supports 32000 and 44100 Hz; WAV supports every listed value.
bitrate_kbps:
type: integer
enum:
- 64
- 128
- 192
default: 128
description: MP3 bitrate. Not accepted for WAV output.
references:
type:
- array
- 'null'
items:
type: object
properties:
text:
type: string
description: Exact transcript that matches the reference audio word for word.
audio:
type: string
pattern: ^https://
description: Publicly accessible HTTPS audio URL. Must remain valid while queued and read by the provider.
required:
- text
- audio
maxItems: 1
description: One temporary voice-cloning sample. Cannot be combined with voice_id. Omit, use null, or [] for no sample.
voice_id:
type: string
additionalProperties: false
required:
- model
- text
allOf:
- if:
required:
- references
properties:
references:
type: array
minItems: 1
then:
not:
required:
- voice_id
properties:
voice_id:
type: string
pattern: \S
- if:
properties:
output_format:
const: wav
required:
- output_format
then:
not:
required:
- bitrate_kbps
- if:
properties:
output_format:
const: mp3
required:
- output_format
then:
properties:
sample_rate_hz:
enum:
- 32000
- 44100
- if:
not:
required:
- output_format
then:
properties:
sample_rate_hz:
enum:
- 32000
- 44100
- type: object
properties:
model:
type: string
description: Model slug.
const: s2.1-pro
text:
type: string
output_format:
type: string
enum:
- mp3
- wav
default: mp3
description: Output audio format.
sample_rate_hz:
type: integer
enum:
- 8000
- 16000
- 24000
- 32000
- 44100
default: 44100
description: Output sample rate. MP3 supports 32000 and 44100 Hz; WAV supports every listed value.
bitrate_kbps:
type: integer
enum:
- 64
- 128
- 192
default: 128
description: MP3 bitrate. Not accepted for WAV output.
references:
type:
- array
- 'null'
items:
type: object
properties:
text:
type: string
description: Exact transcript that matches the reference audio word for word.
audio:
type: string
pattern: ^https://
description: Publicly accessible HTTPS audio URL. Must remain valid while queued and read by the provider.
required:
- text
- audio
maxItems: 1
description: One temporary voice-cloning sample. Cannot be combined with voice_id. Omit, use null, or [] for no sample.
voice_id:
type: string
additionalProperties: false
required:
- model
- text
allOf:
- if:
required:
- references
properties:
references:
type: array
minItems: 1
then:
not:
required:
- voice_id
properties:
voice_id:
type: string
pattern: \S
- if:
properties:
output_format:
const: wav
required:
- output_format
then:
not:
required:
- bitrate_kbps
- if:
properties:
output_format:
const: mp3
required:
- output_format
then:
properties:
sample_rate_hz:
enum:
- 32000
- 44100
- if:
not:
required:
- output_format
then:
properties:
sample_rate_hz:
enum:
- 32000
- 44100
responses:
'200':
description: Sync success
content:
application/json:
schema:
type: object
required:
- id
- status
- audios
properties:
id:
type: string
status:
type: string
enum:
- completed
audios:
type: array
items:
type: object
required:
- url
- format
- mime_type
- size_bytes
properties:
url:
type: string
x-runapi-generated-media: true
format:
type: string
mime_type:
type: string
size_bytes:
type: integer
unevaluatedProperties: false
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/fish_audio/voices:
post:
tags:
- Fish Audio
summary: Fish Audio Create-Voice
description: Send a synchronous request through the Fish Audio create voice endpoint.
operationId: task_endpoint_fish_audio_create_voice
security:
- bearerAuth: []
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
source_audio_url:
type: string
additionalProperties: false
required:
- name
- source_audio_url
responses:
'200':
description: Sync success
content:
application/json:
schema:
type: object
required:
- voice
properties:
voice:
type: object
properties:
voice_id:
type: string
name:
type: string
state:
type: string
enum:
- created
- training
- trained
- failed
unevaluatedProperties: false
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
get:
tags:
- Fish Audio
summary: Fish Audio List-Voices
description: Send a synchronous request through the Fish Audio list voices endpoint.
operationId: task_endpoint_fish_audio_list_voices
security:
- bearerAuth: []
parameters:
- name: page_number
in: query
required: false
schema:
type: integer
minimum: 1
default: 1
- name: page_size
in: query
required: false
schema:
type: integer
maximum: 100
minimum: 1
default: 10
responses:
'200':
description: Sync success
content:
application/json:
schema:
type: object
required:
- voices
- total
- page_number
- page_size
properties:
voices:
type: array
items:
type: object
required:
- voice_id
- state
properties:
voice_id:
type: string
name:
type: string
state:
type: string
enum:
- created
- training
- trained
- failed
unevaluatedProperties: false
total:
type: integer
page_number:
type: integer
page_size:
type: integer
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/fish_audio/voices/{voice_id}:
get:
tags:
- Fish Audio
summary: Fish Audio Get-Voice
description: Send a synchronous request through the Fish Audio get voice endpoint.
operationId: task_endpoint_fish_audio_get_voice
security:
- bearerAuth: []
parameters:
- name: voice_id
in: path
required: true
schema:
type: string
responses:
'200':
description: Sync success
content:
application/json:
schema:
type: object
required:
- voice
properties:
voice:
type: object
properties:
voice_id:
type: string
name:
type: string
state:
type: string
enum:
- created
- training
- trained
- failed
unevaluatedProperties: false
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
components:
securitySchemes:
bearerAuth:
type: http
scheme: bearer
bearerFormat: API token