API Reference

Complete reference for all Wave Form API endpoints.

Base URL
https://wave-form-api.onrender.com

This is your API base URL. All endpoints are relative to this URL.

Authentication
Required for POST /tts/synthesize endpoint

Include your API key in the X-API-Key header:

X-API-Key: YOUR_API_KEY

Get your API key from the developer dashboard.

POST /tts/synthesize
Generate speech from text with expressive markup

Request

POST https://wave-form-api.onrender.com/tts/synthesize Headers: X-API-Key: YOUR_API_KEY Content-Type: application/json Body: { "text": "string (required) - Text to synthesize, supports markup", "provider_id": "string (required) - One of: cartesia, elevenlabs, hume, inworld, orpheus", "voice_id": "string (required) - Voice identifier from provider" }

Request Fields

FieldTypeRequiredDescription
textstringYesText to synthesize. Supports markup syntax for actions and delivery.
provider_idstringYesOne of: cartesia, elevenlabs, hume, inworld, orpheus
voice_idstringYesVoice identifier from the selected provider

Success Response (200)

{ "provider_id": "cartesia", "audio": "base64_encoded_mp3_string", "metadata": { "duration": 3.5, "size_bytes": 123456, "model": "sonic-english" } }

Error Responses

Status CodeDescription
400Invalid request (missing fields, invalid provider)
401Invalid or missing API key
402Insufficient credits
404Provider not found
500Server error

Error Response Format:

{ "detail": "Error message string" }

Need a voice_id? Head to the script editor, choose a provider, and select a voice—there’s a “Copy voice ID” button right in the voice picker dialog. Use that ID directly in the API. We're adding more voices every day!

GET /tts/providers
List all available TTS providers

Request

GET https://wave-form-api.onrender.com/tts/providers Headers: None required

Success Response (200)

{ "providers": ["cartesia", "elevenlabs", "hume", "inworld", "orpheus"] }
GET /tts/providers/{provider_id}/voices
Get available voices for a specific provider

Request

GET https://wave-form-api.onrender.com/tts/providers/{provider_id}/voices Headers: None required Path Parameter: provider_id (one of: cartesia, elevenlabs, hume, inworld, orpheus)

Success Response (200)

{ "provider_id": "cartesia", "voices": [ { "id": "voice_123", "name": "Rachel", "audio": "base64_encoded_sample" } ] }