openapi: 3.0.3
info:
title: Listnr Text-to-Speech Jobs Voices API
description: The Listnr Text-to-Speech API converts SSML text or an article URL into MP3/WAV speech using Listnr's catalog of 1,000+ AI voices across 142+ languages. Conversion can be synchronous (returns an audio URL directly) or asynchronous (returns a jobId that is polled for status). The API also lists available voices and reports async job status. All requests are authenticated with a personal API key generated in the Listnr dashboard (voices.listnr.tech) and passed in an x-listnr-token header. Never expose the API key in front-end code or the browser. Endpoints and parameters in this document are transcribed from Listnr's public API documentation at github.com/team-listnr/text-to-speech-api; request/response schemas are modeled from that documentation and should be verified against the live API.
version: '1.0'
contact:
name: Listnr AI
url: https://listnr.ai
servers:
- url: https://bff.listnr.tech/api/tts/v1
description: Listnr Text-to-Speech API
security:
- listnrToken: []
tags:
- name: Voices
description: List the AI voices available on Listnr.
paths:
/available-voices:
get:
operationId: listAvailableVoices
tags:
- Voices
summary: List available voices
description: Returns the voices available on Listnr, optionally filtered by language, gender, and style.
parameters:
- name: lang
in: query
required: false
description: Filter voices by language.
schema:
type: string
- name: gender
in: query
required: false
description: Filter voices by gender.
schema:
type: string
- name: style
in: query
required: false
description: Filter voices by style or tone.
schema:
type: string
responses:
'200':
description: A list of available voices.
content:
application/json:
schema:
$ref: '#/components/schemas/VoicesResponse'
'401':
$ref: '#/components/responses/Unauthorized'
components:
schemas:
Voice:
type: object
properties:
voice:
type: string
description: The voice identifier.
language:
type: string
description: The language of the voice.
gender:
type: string
description: The gender of the voice.
supportedStyles:
type: array
description: Voice styles supported by this voice.
items:
type: string
VoicesResponse:
type: object
properties:
voices:
type: array
items:
$ref: '#/components/schemas/Voice'
Error:
type: object
properties:
success:
type: boolean
message:
type: string
responses:
Unauthorized:
description: Missing or invalid API key.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
securitySchemes:
listnrToken:
type: apiKey
in: header
name: x-listnr-token
description: Personal API key generated in the Listnr dashboard at voices.listnr.tech. Keep it server-side; never expose it in the browser or front-end code.