Skip to main content
POST
  1. After submission, a task_id will be returned. If you provided a callback_url, when the task status becomes finished or failed, a POST request will be sent to the callback_url.
  2. Regardless of whether callback_url is provided, you can retrieve the result through the unified Query Task Status endpoint.
xai-tts-1 converts a text into low-latency expressive speech audio using xAI TTS through fal. Results are returned as task files, matching the standard image, video, 3D, and audio task response structure.

Models

  • xai-tts-1 - xAI TTS v1 text-to-speech generation

Required parameters

  • text: Text to convert to speech
    • Length: 1-15000 characters
    • Supports expressive speech tags such as [laugh], [pause], [sigh], <whisper>text</whisper>, and <slow>text</slow>

Optional parameters

  • voice: Voice preset. Supported values: eve, ara, rex, sal, leo. Default: eve
  • language_code: BCP-47 language code or auto for automatic detection. Default: auto
  • output_format: Audio output configuration object:
    • codec: mp3, wav, pcm, mulaw, or alaw. Default: mp3
    • sample_rate: 8000, 16000, 22050, 24000, 44100, or 48000. Default: 24000
    • bit_rate: 32000, 64000, 96000, 128000, 192000, or null. Only applicable for MP3. Default: 128000

Examples

Notes

Supported Languages

Supported values: auto, en, ar-EG, ar-SA, ar-AE, bn, zh, fr, de, hi, id, it, ja, ko, pt-BR, pt-PT, ru, es-MX, es-ES, tr, vi.
  • PoYo’s public parameter name is language_code; it is mapped to fal’s language field upstream.
  • PoYo’s public parameter name is text; it is mapped to fal’s text field upstream.
  • Query status through the standard task status API.
  • Successful responses return files, where the generated speech uses file_type: audio.

Authorizations

Authorization
string
header
required

All API endpoints require Bearer Token authentication.

Create an API key: sign in to PoYo, open Dashboard → API Key at poyo.ai/dashboard/api-key, and click to create a key.

Add it to the request header:

Body

application/json
model
enum<string>
required

Model identifier.

Available options:
xai-tts-1
Example:

"xai-tts-1"

input
object
required
callback_url
string<uri>

Webhook callback URL for result notifications

Example:

"https://your-domain.com/callback"

Response

Task submitted successfully

code
enum<integer>
required

Business status code. 200 means success; any other value means the request failed. Always check this field: some validation errors return HTTP 200 with code: 400 in the body.

  • 200: Success
  • 400: Invalid request parameters
  • 401: Missing or invalid API key
  • 402: Insufficient credits
  • 403: Permission denied
  • 404: Resource not found
  • 408: Request timeout
  • 429: Rate limit exceeded
  • 500: Internal server error
  • 502: Upstream service error
  • 503: Service unavailable

See Error Codes for details.

Available options:
200,
400,
401,
402,
403,
404,
408,
429,
500,
502,
503
Example:

200

data
object
required