Overview
The Lazybird Speech API lets you list available voices and generate MP3 speech from text or SSML.
Base URL:
1https://api.lazybird.app/v1Authentication
Create an API key from your Lazybird Studio settings, then send it with each request.
Preferred header:
1X-API-Key: YOUR_API_KEYYou can also pass the key as an api_key query parameter when a tool cannot set headers:
1https://api.lazybird.app/v1/voices?api_key=YOUR_API_KEYKeep API keys private. Do not expose them in browser code, mobile apps, public repositories, or client-side logs.
Agent skill
When you are using an AI coding agent, install the official Lazybird API skill so the agent has the current API shape, examples, and integration gotchas available in context.
1npx skills add lazybirdai/skills --agent codex --skill lazybird-apiQuickstart
Generate speech with a known voice ID:
1curl -X POST "https://api.lazybird.app/v1/generate-speech" \2 -H "X-API-Key: $LAZYBIRD_API_KEY" \3 -H "Content-Type: application/json" \4 --output speech.mp3 \5 --data '{6 "voiceId": "msa.en-US.SerenaMultilingual",7 "text": "My name is Serena and I am a voice from Lazybird."8 }'The response is an MP3 audio file. Save the response body to a file instead of trying to display it as JSON.
Check service status
1GET /statusReturns the current API health.
Example:
1curl "https://api.lazybird.app/v1/status"Response:
1{2 "status": "ok"3}List voices
1GET /voicesReturns voices that can be used with generate-speech.
Example:
1curl "https://api.lazybird.app/v1/voices" \2 -H "X-API-Key: $LAZYBIRD_API_KEY"Response:
1[2 {3 "id": "msa.en-US.Jenny",4 "displayName": "Jenny",5 "language": "English (United States)",6 "gender": "Female",7 "previewText": "Hi, I am Jenny.",8 "avatar": "https://example.com/avatar.jpg"9 }10]Use the id value as voiceId when generating speech.
Generate speech
1POST /generate-speechGenerates speech with the selected voice and returns an MP3 audio file.
Headers:
| Header | Required | Value |
|---|---|---|
X-API-Key |
Yes | Your Lazybird API key |
Content-Type |
Yes | application/json |
Body:
| Field | Type | Required | Description |
|---|---|---|---|
voiceId |
string | Yes | Voice ID from /voices |
text |
string | No | Plain text to convert to speech |
ssml |
string | No | SSML content. Use this instead of text when you need pauses or speech markup. |
settings |
object | No | Optional voice settings for this generation |
Provide either text or ssml.
Plain text example
1curl -X POST "https://api.lazybird.app/v1/generate-speech" \2 -H "X-API-Key: $LAZYBIRD_API_KEY" \3 -H "Content-Type: application/json" \4 --output speech.mp3 \5 --data '{6 "voiceId": "msa.en-US.SerenaMultilingual",7 "text": "My name is Serena and I am a voice from Lazybird."8 }'SSML example
1curl -X POST "https://api.lazybird.app/v1/generate-speech" \2 -H "X-API-Key: $LAZYBIRD_API_KEY" \3 -H "Content-Type: application/json" \4 --output speech.mp3 \5 --data '{6 "voiceId": "msa.en-US.SerenaMultilingual",7 "ssml": "<speak>My name is Serena <break time=\"1s\"/> and I am a voice from Lazybird.</speak>"8 }'Voice settings example
All settings fields are optional.
1{2 "voiceId": "msa.en-US.SerenaMultilingual",3 "text": "This line is slower and slightly higher pitched.",4 "settings": {5 "style": "sad",6 "speed": 0.7,7 "pitch": 1.2,8 "volume": 1,9 "styleIntensity": 110 }11}Settings:
| Field | Type | Description |
|---|---|---|
style |
string | Speaking style or tone, when supported by the selected voice |
speed |
number | Speech speed. 1 is normal speed. |
pitch |
number | Voice pitch. 1 is the default pitch. |
volume |
number | Output volume. 1 is the default volume. |
styleIntensity |
number | Strength of the selected speaking style |
Responses
Successful generate-speech requests return an MP3 file.
1HTTP/1.1 200 OK2Content-Type: audio/mpegIf a request fails, check that your API key is valid, the voiceId exists, and the request includes either text or ssml.
Testing tips
- Make API requests from a server environment, not browser code.
- Start by calling
/voicesand copying a voice ID from the response. - Save
generate-speechresponses with--output speech.mp3. - Keep SSML valid XML. Escape quotation marks correctly when sending SSML inside JSON.