Skip to content
DEVELOPERS

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.

REST API

Standard REST endpoints for voice management, TTS generation, conversations, and audiobook creation.

API Key Auth

Authenticate with Bearer token or x-api-key header. Keys are scoped per-user with configurable rate limits.

Usage Headers

Every response includes X-Characters-Used, X-RateLimit-Remaining, and queue depth headers.

OpenAPI Spec

Full OpenAPI 3.1 schema with interactive Swagger UI and ReDoc documentation.

// 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:

OPTION 1: AUTHORIZATION HEADER

Authorization: Bearer vc_your_api_key_here

OPTION 2: X-API-KEY HEADER

x-api-key: vc_your_api_key_here

// 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

PlanCharactersBurstAPI Access
Free3,000/mo5/minNo
Creator100,000/mo10/minNo
Pro500,000/mo20/minYes
Studio2,000,000/mo40/minYes

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

  • x-request-idUnique request identifier for debugging
  • X-RateLimit-LimitMax requests per window
  • X-RateLimit-RemainingRequests remaining in window
  • X-Characters-UsedCharacters consumed this billing cycle
  • X-Characters-RemainingCharacters remaining this cycle
  • X-Characters-LimitTotal character quota for your plan
  • X-Queue-DepthCurrent TTS processing queue depth
  • Retry-AfterSeconds to wait (on 429 responses)

// FAQ

Frequently Asked Questions

How do I authenticate with the VoiceKeep API?
Create an API key from your account settings (Pro or Studio plan required). Pass it via the Authorization header as 'Bearer vc_your_key' or via the x-api-key header. Keys can be revoked independently from your settings page.
What languages does the VoiceKeep TTS API support?
10 languages: English, Chinese, Japanese, Korean, French, German, Spanish, Arabic, Portuguese, and Dutch. Cross-lingual generation lets you clone a voice in one language and generate speech in another.
What are the API rate limits?
Pro plans include 500,000 characters/month with 20 generations/minute burst. Studio plans include 2,000,000 characters/month with 40 generations/minute burst. Rate limit headers (X-RateLimit-Remaining, X-Characters-Remaining) are included in every response.
Does the API support custom voice cloning?
Yes. Upload a 5–25 second WAV audio sample via POST /api/v1/voices, and the API creates a custom cloned voice. Use it for generation in any supported language.
What audio formats does the API return?
WAV (24kHz, default) and MP3 for single generations. M4B with chapter markers for audiobook exports. All audio includes C2PA provenance metadata for AI content disclosure.
Open API ReferenceReDoc ReferenceOpenAPI JSON