AudioStack Assets - Voices API
The Assets - Voices API from AudioStack — 1 operation(s) for assets - voices.
The Assets - Voices API from AudioStack — 1 operation(s) for assets - voices.
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/audiostack:audiostack-assets-voices-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
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: Audiostack Assets - Voices API
description: Documentation for the Audiostack API - the infrastructure for audio
version: v2
termsOfService: https://audiostack.ai/en/legal/terms-of-service
contact:
email: support@audiostack.ai
servers:
- url: https://v2.api.audio
description: Production server
- url: https://staging-v2.api.audio
description: Staging server
security:
- ApiKeyAuth: []
- BearerAuth: []
tags:
- name: Assets - Voices
paths:
/assets/voices/query:
post:
tags:
- Assets - Voices
summary: Search AudioStack's voice library for the right voice(s) for your audio
description: 'Enables you to search AudioStack''s voice library from the API in a similar way to how you
would on the front end.
You can provide a search string e.g. "serious"
You can defined a complex filter to narrow down the results such as:
Find all matches for
* `female` voices only
* `english` language only
* `american`, `irish` and `australian` accents only'
operationId: postVoicesQuery
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PostVoicesQueryRequest'
responses:
'200':
description: Voices successfully queried
content:
application/json:
schema:
$ref: '#/components/schemas/PostVoicesQueryResponse'
'422':
description: Invalid request cannot be processed
content:
application/json:
schema:
$ref: '#/components/schemas/PostVoicesQueryUnprocessableEntityResponse'
components:
schemas:
VoiceResponse:
type: object
description: Voice item in the query response.
properties:
accent:
type: string
title: Voice accents
description: Voice accent currently supported by AudioStack's voice library.
enum:
- afghan
- albanian
- algerian
- american
- arabic
- argentinian
- armenian
- australian
- austrian
- azerbaijani
- bahraini
- belgian
- bolivian
- bosnian and herzegovinian
- brazilian
- british
- british_birmingham
- british_cardiff
- british_cockney
- british_lancashire
- british_liverpool
- british_london
- british_manchester
- british_newcastle
- british_norfolk
- british_welsh
- british_west_country
- british_yorkshire
- bulgarian
- burmese
- cambodian
- canadian
- chilean
- chinese
- colombian
- costa rican
- croatian
- cuban
- czech
- danish
- dominican
- dutch
- ecuadorian
- egyptian
- emirati
- equatorial guinean
- estonian
- ethiopian
- filipino
- finnish
- french
- georgian
- german
- greek
- guatemalan
- honduran
- hong kong
- hungarian
- icelandic
- indian
- indonesian
- iranian
- iraqi
- irish
- israeli
- italian
- japanese
- jordanian
- kazakhstani
- kenyan
- korean
- kuwaiti
- laotian
- latin american
- latvian
- lebanese
- libyan
- lithuanian
- macedonian
- malaysian
- maltese
- mexican
- mongolian
- moroccan
- multilingual
- nepalese
- new zealand
- nicaraguan
- nigerian
- norwegian
- omani
- pakistani
- panamanian
- paraguayan
- peruvian
- polish
- portuguese
- puerto rican
- qatari
- romanian
- russian
- salvadoran
- saudi arabian
- scottish
- scottish_east_coast
- scottish_edinburgh
- scottish_glaswegian
- scottish_highlands
- serbian
- singaporean
- slovak
- slovenian
- somali
- south african
- south korean
- spanish
- sri lankan
- swedish
- swiss
- syrian
- taiwanese
- tanzanian
- thai
- tunisian
- turkish
- ukrainian
- unknown
- uruguayan
- uzbekistani
- venezuelan
- vietnamese
- yemeni
ageBracket:
type: string
title: Age brackets
description: Age bracket of the voice.
enum:
- adult
- young adult
- child
- senior
alias:
type: string
example: wren
audioSample:
type: string
example: https://file.audiostack.ai/voice-samples/wren_multilingual2024-09-17.mp3
charsPerSecond:
type: number
format: float
example: '18.26'
gender:
type: string
title: Supported values for gender
description: Specifying gender will guide voice recommendation from AudioStack's voice library.
enum:
- male
- female
- character
- unknown
meta:
$ref: '#/components/schemas/VoiceMeta'
picture:
type: string
example: https://file.audiostack.ai/image-samples/wren.jpg
provider:
type: string
title: Providers
description: Supported text-to-speech and speech-to-speech providers.
enum:
- azure
- cartesia
- cerevoice
- elevenlabs
- google
- hume
- ibm
- minimax
- narakeet
- openai
- polly
- resemble
- respeecher
- speechify
- user
- wellsaid
supportedLanguages:
type: array
items:
type: string
title: Supported languages
description: Languages supported by voices in AudioStack's voice library.
enum:
- afrikaans
- albanian
- amharic
- arabic
- armenian
- azerbaijani
- bangla
- basque
- belarusian
- bengali
- bosnian
- bulgarian
- burmese
- cantonese
- catalan
- chinese
- croatian
- czech
- danish
- dutch
- english
- estonian
- filipino
- finnish
- french
- galician
- georgian
- german
- greek
- gujarati
- hebrew
- hindi
- hungarian
- icelandic
- indonesian
- irish
- italian
- javanese
- japanese
- kannada
- kazakh
- khmer
- korean
- lao
- latvian
- lithuanian
- macedonian
- malay
- malayalam
- malayam
- malaysian
- maltese
- mandarin
- maori
- marathi
- mongolian
- multilingual
- nepali
- norwegian
- norwegian bokmål
- pashto
- persian
- polish
- portuguese
- punjabi
- romanian
- russian
- scottish gaelic
- serbian
- sinhala
- slovak
- slovakian
- slovene
- slovenian
- somali
- spanish
- sundanese
- swahili
- swedish
- tagalog
- taiwanese
- taiwanese mandarin
- tamil
- telugu
- thai
- turkish
- ukrainian
- unknown
- urdu
- uzbek
- vietnamese
- welsh
- zulu
tags:
type: array
items:
type: string
title: Allowed tones
description: Tones are used to guide voice recommendation from AudioStack's voice library.
enum:
- fast
- upbeat
- low pitched
- steady
- flat
- confident
- storytelling
- serious
- thin
- slow
- balanced
- calm
- tense
- raspy
- sad
- deep
- energetic
- high pitched
- fun
- whispering
- formal
- informative
type:
type: string
title: Voice types
description: Voice visibility in the library (public or private).
enum:
- public
- private
GetStoryResponse:
allOf:
- type: object
properties:
meta:
type: object
properties:
requestId:
type: string
format: uuid
title: Request ID
version:
type: string
enum:
- '123'
default: '123'
deprecated: true
creditsUsed:
type: number
title: Credits used
default: 0
deprecated: true
creditsRemaining:
type: number
title: Credits remaining
default: 0
deprecated: true
warnings:
type: array
items:
type: string
default: []
title: Response warnings
required:
- meta
- warnings
- type: object
properties:
message:
type: string
description: Optional. When the job completed with an error, details the problem.
data:
type: object
properties:
storyId:
title: Story ID
type: string
format: uuid
example: 00000000-0000-0000-0000-000000000000
description: The unique identifier of the story creation request.
storyResult:
title: Story Result
description: The final story result (same shape as the Story type). Present when the job produced a story; may be absent or partial on failure.
$ref: '#/components/schemas/CreateStoryFromBodyRequest/properties/story'
audioforms:
title: Audioforms
type: array
description: List of generated audioforms when the job completed successfully. Each item is an AudioformResult. Optional; absent or partial on failure.
items:
anyOf:
- $ref: '#/components/schemas/AudioformResult3/properties/AudioformResult'
output:
title: Output
description: Audio output details when the job completed successfully. Present on success; absent on failure.
type: object
properties:
audioformUris:
title: Audioform URIs
type: array
description: List of delivery URIs for the individual audioforms.
items:
type: string
format: uri
public:
title: Public
type: boolean
description: Whether the generated audio files are publicly accessible.
singleAudioFileUri:
title: Single Audio File URI
type: string
format: uri
description: URI for a single merged audio file combining all audioforms.
extension:
type: string
title: Extension
enum:
- mp3
- wav
- ogg
- flac
- m4a
required:
- audioformUris
- public
- extension
additionalProperties: false
required:
- storyId
additionalProperties: false
required:
- data
- example:
meta:
version: '123'
requestId: 165e5b01-43b3-45df-b992-75af149f3c3d
creditsUsed: 10
creditsRemaining: 990
message: Story build completed successfully
warnings: []
data:
storyId: 0d694352-266c-4a62-b09f-4e910657af11
storyResult:
title: My Podcast
chapters: []
voices: []
sounds: {}
production: {}
delivery: {}
audioforms: []
output:
audioformUris:
- https://v2.api.audio/public-file/aaaaaaaa-0000-0000-0000-000000000001
- https://v2.api.audio/public-file/aaaaaaaa-0000-0000-0000-000000000002
public: true
singleAudioFileUri: https://v2.api.audio/public-file/aaaaaaaa-0000-0000-0000-000000000003
extension: mp3
additionalProperties: false
title: Get Story Response
PostVoicesQueryRequest:
type: object
description: Request body for voice query endpoint.
properties:
query:
type: string
default: ''
example: serious
title: Search query
description: 'Free text search query passed to the search engine. This is used to search for voices with some fuzzy matching.
'
filters:
type: array
title: Filters
description: 'Filters to apply. Each item is an object with one operator key (e.g. "in")
and a value object with one filter field and its values.
'
items:
type: object
title: Voices filter
description: Filter object.
properties:
in:
oneOf:
- type: object
title: Accent filter
required:
- accent
additionalProperties: false
properties:
accent:
type: array
items:
$ref: '#/components/schemas/VoiceResponse/properties/accent'
title: Specify accent filter condition
description: 'Specify the accent filter condition. You can specify multiple accepted values by adding them to the array.
'
- type: object
title: Age bracket filter
required:
- ageBracket
additionalProperties: false
properties:
ageBracket:
type: array
items:
$ref: '#/components/schemas/VoiceResponse/properties/ageBracket'
title: Specify age bracket filter condition
description: 'Specify the age bracket filter condition. You can specify multiple accepted values by adding them to the array.
'
- type: object
title: Alias filter
required:
- alias
additionalProperties: false
properties:
alias:
type: array
items:
type: string
title: Specify alias filter condition
description: 'Specify the alias filter condition. You can specify multiple accepted values by adding them to the array.
'
- type: object
title: Gender filter
required:
- gender
additionalProperties: false
properties:
gender:
type: array
items:
$ref: '#/components/schemas/VoiceResponse/properties/gender'
title: Specify gender filter condition
description: 'Specify the gender filter condition. You can specify multiple accepted values by adding them to the array.
'
- type: object
title: Language filter
required:
- language
additionalProperties: false
properties:
language:
type: array
items:
$ref: '#/components/schemas/VoiceResponse/properties/supportedLanguages/items'
title: Specify language filter condition
description: 'Specify the language filter condition. You can specify multiple accepted values by adding them to the array.
'
- type: object
title: Provider filter
required:
- provider
additionalProperties: false
properties:
provider:
type: array
items:
$ref: '#/components/schemas/VoiceResponse/properties/provider'
title: Specify provider filter condition
description: 'Specify the provider filter condition. You can specify multiple accepted values by adding them to the array.
'
- type: object
title: Type filter
required:
- type
additionalProperties: false
properties:
type:
type: array
items:
$ref: '#/components/schemas/VoiceResponse/properties/type'
title: Specify type filter condition
description: 'Specify the type filter condition. You can specify multiple accepted values by adding them to the array.
'
example:
- in:
gender:
- male
- female
- in:
accent:
- irish
- australian
forceApplyFilters:
title: Force apply filters
type: boolean
default: true
description: 'When true, applies filters strictly even with few results. In instances where the filters
are overly restrictive, you may get fewer results than desired.
'
minimumNumberOfResults:
type: integer
default: 3
title: Minimum number of results
description: 'In instances where you want to ensure a minimum number of results, you can set this parameter.
You must also set forceApplyFilters to false. Filter conditions will be relaxed to attempt to
return the minimum number of results.
'
sort:
title: Sort field
$ref: '#/components/schemas/VoicesSortValues'
page:
type: integer
minimum: 1
default: 1
title: Page number
description: Page number to return (1-indexed).
pageLimit:
type: integer
minimum: 1
default: 1000
title: Page limit
description: Number of items per page.
PostVoicesQueryResponse:
allOf:
- $ref: '#/components/schemas/GetStoryResponse/allOf/0'
- type: object
properties:
message:
type: string
description: Success message.
example: Fetched voices
data:
type: object
required:
- voices
- pageInfo
properties:
voices:
minItems: 0
type: array
items:
$ref: '#/components/schemas/VoiceResponse'
pageInfo:
type: object
description: Pagination information for list endpoints.
properties:
page:
type: integer
description: Current page number (1-indexed).
pageItemsCount:
type: integer
description: Number of items on this page.
itemsTotal:
type: integer
description: Total number of items across all pages.
pagesTotal:
type: integer
description: Total number of pages.
pageLimit:
type: integer
description: Maximum items per page.
required:
- page
- pageItemsCount
- itemsTotal
- pagesTotal
- pageLimit
required:
- message
- data
VoicesSortValues:
type: string
enum:
- alias
description: Field to sort results by. If omitted, results are sorted by AudioStack's internal priority.
PostVoicesQueryUnprocessableEntityResponse:
type: object
description: Error response when voice query fails
properties:
message:
type: string
example: "1 validation error for VoiceQueryPayload. Field required [type=missing, input_value={'gender': ['invalid']}, input_type=dict]\n For further information visit https://errors.pydantic.dev/2.11/v/missing\nfilters.0.in.GenderTypeFilter.gender.0\n Input should be 'character', 'female', 'male' or 'unknown' [type=enum, input_value='invalid', input_type=str]"
errors:
type: array
example:
- Validation error
items:
type: string
VoiceMeta:
type: object
title: Voice metadata
description: Additional optional metadata for a voice.
properties:
category:
type: string
default: ''
createdAt:
type: integer
default: 0
technologies:
type: array
description: TTS = voices that support text-to-speech; STS = voices that support speech-to-speech.
items:
type: string
enum:
- TTS
- STS
securitySchemes:
ApiKeyAuth:
type: apiKey
in: header
name: x-api-key
BearerAuth:
type: http
scheme: bearer
bearerFormat: JWT