API
Authenticate and generate speech with SexyVoice API.
Base URL
Use https://sexyvoice.ai as the API host.
Authentication
All endpoints require a Bearer API key that you create in Dashboard -> API Keys.
curl -X GET 'https://sexyvoice.ai/api/v1/models' \
-H 'Authorization: Bearer sk_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'Request ID
Every response includes a server-generated request-id header (format: req_sv_<hex>).
Use it when contacting support or debugging failures.
Quick Start
curl
curl -X POST 'https://sexyvoice.ai/api/v1/speech' \
-H 'Authorization: Bearer sk_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \
-H 'Content-Type: application/json' \
-d '{
"model": "gpro",
"voice": "achernar",
"input": "Hello from SexyVoice API",
"style": "calm",
"seed": 1234
}'TypeScript (gpro)
const response = await fetch('https://sexyvoice.ai/api/v1/speech', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.SEXYVOICE_API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
model: 'gpro',
voice: 'achernar',
input: 'Hello from TypeScript',
style: 'happy',
seed: 42,
}),
});
const requestId = response.headers.get('request-id');
const json = await response.json();TypeScript (Grok)
const response = await fetch('https://sexyvoice.ai/api/v1/speech', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.SEXYVOICE_API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
model: 'xai',
voice: 'eve',
input: 'Hello from Grok! [laugh] This sounds great.',
response_format: 'wav',
}),
});
const json = await response.json();
// json.url contains the generated audio URLCheck Billing Balance
curl -X GET 'https://sexyvoice.ai/api/v1/billing' \
-H 'Authorization: Bearer sk_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'Python (gpro)
import requests
response = requests.post(
'https://sexyvoice.ai/api/v1/speech',
headers={
'Authorization': f'Bearer {API_KEY}',
'Content-Type': 'application/json',
},
json={
'model': 'gpro',
'voice': 'achernar',
'input': 'Hello from Python',
'style': 'warm',
'seed': 42,
},
timeout=30,
)
request_id = response.headers.get('request-id')
print(request_id, response.status_code, response.json())Python (Grok)
import requests
response = requests.post(
'https://sexyvoice.ai/api/v1/speech',
headers={
'Authorization': f'Bearer {API_KEY}',
'Content-Type': 'application/json',
},
json={
'model': 'xai',
'voice': 'eve',
'input': 'Hello from Grok! <whisper>This is a secret.</whisper>',
'response_format': 'mp3',
},
timeout=30,
)
print(response.status_code, response.json())Next Steps
- Use the endpoint pages in this section for each request/response contract.
- See Grok Voices & Speech Tags for the full Grok tag reference.
- See Error Codes for the centralized error taxonomy.