VoiceKeep API
Add AI voice cloning and text-to-speech to your application. Generate speech in 10 languages with 24 curated voices or your own cloned voices.
// AUTHENTICATION
API Key Authentication
API keys are available on Pro and Studio plans. Create keys from your account settings. Each key has a configurable rate limit and can be revoked independently.
Pass your API key in one of two ways:
// QUICKSTART
Generate Speech in 30 Seconds
Python
python
import requests
API_KEY = "vc_your_api_key_here"
headers = {"Authorization": f"Bearer {API_KEY}"}
# List available voices
voices = requests.get(
"https://api.voicekeep.io/api/v1/voices",
headers=headers,
).json()
# Generate speech
response = requests.post(
"https://api.voicekeep.io/api/v1/generations",
headers=headers,
json={
"voice_id": voices["voices"][0]["id"],
"text": "Hello world!",
},
)
generation = response.json()
print(f"Generation queued: {generation['id']}")JavaScript
javascript
const API_KEY = "vc_your_api_key_here";
// List available voices
const voicesRes = await fetch(
"https://api.voicekeep.io/api/v1/voices",
{ headers: { Authorization: `Bearer ${API_KEY}` } },
);
const { voices } = await voicesRes.json();
// Generate speech
const genRes = await fetch(
"https://api.voicekeep.io/api/v1/generations",
{
method: "POST",
headers: {
Authorization: `Bearer ${API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
voice_id: voices[0].id,
text: "Hello world!",
}),
},
);
const generation = await genRes.json();
console.log("Generation queued:", generation.id);// RATE LIMITS
Rate Limits by Plan
| Plan | Characters | Burst | API Access |
|---|---|---|---|
| Free | 3,000/mo | 5/min | No |
| Creator | 100,000/mo | 10/min | No |
| Pro | 500,000/mo | 20/min | Yes |
| Studio | 2,000,000/mo | 40/min | Yes |
Rate limit headers are included in every response: X-RateLimit-Limit, X-RateLimit-Remaining, X-Characters-Used, X-Characters-Remaining.
// RESPONSE HEADERS
Useful Response Headers
// FAQ