Pricing

Credit-based pricing for text-to-speech generation.

Credit Costs by Model

ModelCredits per 1,000 CharactersQualitySpeed
rapid-flash 3 credits Good Fastest
aura-lite 5 credits Good Fast
rapid-max 8 credits Very Good Fast
aura-prime 10 credits Excellent Medium
aura-max 15 credits Premium Slower

Cost Examples

Content TypeCharactersRapid-FlashAura-PrimeAura-Max
Short notification 100 0.3 credits 1 credit 1.5 credits
Paragraph 500 1.5 credits 5 credits 7.5 credits
Blog post 2,000 6 credits 20 credits 30 credits
Article 5,000 15 credits 50 credits 75 credits
Book chapter 10,000 30 credits 100 credits 150 credits

Check Your Credits

curl "https://yourvoic.com/api/v1/user/credits" \
  -H "X-API-Key: your_api_key"

Response

{
    "credits": 10000,
    "used_this_month": 2500,
    "plan": "pro",
    "renewal_date": "2024-02-01"
}

Credit Usage Headers

Every TTS response includes credit information in headers:

HeaderDescription
X-Credits-UsedCredits consumed for this request
X-Credits-RemainingYour remaining credit balance
import requests

response = requests.post(
    "https://yourvoic.com/api/v1/tts/generate",
    headers={"X-API-Key": "your_api_key"},
    json={"text": "Hello world!", "voice": "Peter"}
)

credits_used = response.headers.get("X-Credits-Used")
credits_remaining = response.headers.get("X-Credits-Remaining")

print(f"Credits used: {credits_used}")
print(f"Credits remaining: {credits_remaining}")

Optimizing Credit Usage

Choose the Right Model

  • Notifications/IVR: Use rapid-flash (3 credits/1K chars)
  • General content: Use aura-lite (5 credits/1K chars)
  • Professional content: Use aura-prime (10 credits/1K chars)
  • Audiobooks: Use aura-max (15 credits/1K chars)

Batch Processing

Process multiple texts in parallel to maximize throughput:

import asyncio
import aiohttp

async def generate_audio(session, text, voice="Peter"):
    async with session.post(
        "https://yourvoic.com/api/v1/tts/generate",
        headers={"X-API-Key": "your_api_key"},
        json={"text": text, "voice": voice, "model": "aura-lite"}
    ) as response:
        return await response.read()

async def batch_process(texts):
    async with aiohttp.ClientSession() as session:
        tasks = [generate_audio(session, text) for text in texts]
        return await asyncio.gather(*tasks)

# Process multiple texts
texts = ["Hello", "World", "From", "YourVoic"]
audios = asyncio.run(batch_process(texts))

Rate Limits

Rate limits vary by plan. Exceeding limits returns HTTP 429.

Need More Credits?

Visit your dashboard to purchase additional credits or upgrade your plan.