API Reference
Complete reference for all Wave Form API endpoints.
Base URL
https://wave-form-api.onrender.comThis 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_KEYGet 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
| Field | Type | Required | Description |
|---|---|---|---|
| text | string | Yes | Text to synthesize. Supports markup syntax for actions and delivery. |
| provider_id | string | Yes | One of: cartesia, elevenlabs, hume, inworld, orpheus |
| voice_id | string | Yes | Voice 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 Code | Description |
|---|---|
| 400 | Invalid request (missing fields, invalid provider) |
| 401 | Invalid or missing API key |
| 402 | Insufficient credits |
| 404 | Provider not found |
| 500 | Server 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 requiredSuccess 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"
}
]
}