Free.ai

kokoro
Free budget30,000 shared tokens/day · 1,000 API requests/month · WAV
Rate limitsnot published
Shared daily free allowance info
Free accounts share 30,000 internal tokens per day and 1,000 API requests per month across eligible self-hosted models. No card is required. These are shared account allowances, not grants per model. Kokoro returns WAV audio; other formats are not supported by this adapter. Automatic key validation is inconclusive because the tested public endpoints did not distinguish valid and bogus credentials. Use your own Free.ai key for generation. Verified 2026-10-11 against the free-account dashboard and live Kokoro output. https://free.ai/api/ https://free.ai/account/#api-keys

Get this model the moment it changes

Limits move, models get replaced, better ones launch. Premium routers see this page's data live. Free routers see last month's.

Go live · $19/yr →

Use it

FreeLLMAPI is a self-hosted router you run yourself. Install it, paste in your free Free.ai key, and kokoro answers on an OpenAI-compatible endpoint at http://localhost:3001/v1. No credit card, no hosted middleman: your prompts and your provider keys never leave your machine.

Install the router (macOS, Linux, WSL)
curl -fsSL https://freellmapi.co/install.sh | bash
Install the router (Windows PowerShell)
iwr -useb https://freellmapi.co/install.ps1 | iex
Call kokoro with curl
curl http://localhost:3001/v1/audio/speech \
  -H "Authorization: Bearer freellmapi-your-unified-key" \
  -H "Content-Type: application/json" \
  -d '{"model": "kokoro", "input": "Hello from FreeLLMAPI."}' \
  --output speech.mp3
The same request in Python (openai)
from openai import OpenAI

client = OpenAI(
    base_url="http://localhost:3001/v1",
    api_key="freellmapi-your-unified-key",
)

with client.audio.speech.with_streaming_response.create(
    model="kokoro",
    input="Hello from FreeLLMAPI.",
) as resp:
    resp.stream_to_file("speech.mp3")

The router answers on /v1/audio/speech and every other OpenAI surface, plus the Anthropic Messages API, so existing clients need only a new base_url. Swap the model id for auto and the router picks the best free model that is still under its limits. Full reference: docs/api.md.