Free Plan
Everything the Draven AI API gives you at no cost: which models you can call for free, the daily limits that apply, and when it's worth moving to a paid plan.
/v1/chat/completions (or /v1/audio/speech for the free TTS voice) with a :free model id. Get a key from dravenai.lat under Developers → API; see Generating an API Key.What's included for free
The Free plan covers two things, and only these two — there is no free tier for image generation, embeddings, rerank, or the web search tool. Those are billed products with no :free variant, and always require wallet balance.
- 12 free chat/completions models (listed below), each with
pricing: { prompt: 0, completion: 0 }in USD — they never touch your wallet, they draw from a shared daily credit pool instead. - One free TTS voice,
deepgram/aura-2:free(Deepgram's Aura-2, 91 voices across 7 languages: English, Spanish, Dutch, French, German, Italian, Japanese) — it draws from the same credit pool as the free chat models, but is billed differently: by input characters, not tokens (see how credits work below).
Both are available to any valid API key, on any plan — there's nothing to activate. You just call /v1/chat/completions or /v1/audio/speech with a :free model id.
Free chat models
Capabilities vary a lot between them — check vision and thinking before picking one for a multimodal or reasoning task. This table is pulled live from /v1/models (cached for your browser session), so it's always current — including the credit rate and the tokens/minute limit for each one.
/v1/models…How the daily credit pool works
Every account — not every API key — gets 10,000 credits/day, on a rolling 24-hour window. Creating more keys never gives you more credits; all of them draw from the same pool. Only :free models touch this pool: any model with paid: true skips it entirely and bills your wallet at its real per-token price instead.
Each free model charges its own rate per 1,000 units of usage, and that unit is different depending on the endpoint:
- Chat models (
/v1/chat/completions) are charged per 1,000 tokens, counting input and output combined — a long prompt with a short reply costs the same as a short prompt with a long reply, token for token. - The free TTS voice (
/v1/audio/speech,deepgram/aura-2:free) is charged per 1,000 input characters of the text you send to be spoken, at … credits / 1k characters — there's no token count involved since the output is audio, not text, and the model has no "output" side to meter. At that rate, 10,000 credits buy about … input characters/day if spent entirely on TTS.
Because the rate varies by model, the same 10,000 credits/day buys a very different daily budget depending on which chat model you use (grouped by rate, live from /v1/models):
These budgets assume you spend the whole pool on one model. In practice the pool is shared: mixing a cheap-rate model and an expensive-rate model on the same day draws down the same 10,000 credits, so using one reduces what's left for the other. A single request's max_tokens is also silently capped to whatever remains of your daily budget at that model's rate, so one oversized request can't blow through the daily limit in one shot.
Daily and per-minute limits
These apply per user, not per API key.
| Limit | Value | Applies to |
|---|---|---|
| Requests per IP | 10 in-flight, at the same time | Every endpoint, free/guest plans (Pro and admin are exempt — Pro has its own per-account concurrency limit instead, see the Pro plan docs) — this is concurrency, not a per-minute count: it's about how many requests from that IP are open right now, not how many happened in the last 60 seconds |
| Requests per account | 10 / minute | Free models only |
| Credits | 10,000 / day | Free chat models + the free TTS voice, one shared pool |
| Tokens / minute, per model | 12,000 | Every free chat model (12 currently), input + output combined — see the per-model table above |
| Shared daily quota | 50 / day | Free-plan accounts only — a separate account-level cap on top of credits, see below |
Paid models are a separate, unlimited pool
Any model without a :free suffix (paid: true in the catalog) skips the credit system and the 50/day quota entirely. There's no daily request cap on paid models — you're billed per token at the model's real price until your wallet balance runs out. This also means image generation, embeddings, rerank, and web search are always paid: none of them have a free tier or a :free id, and all of them require a positive wallet balance regardless of plan.
When Free is enough
- Prototyping a chat integration before committing to a specific paid model.
- Low-traffic personal tools, bots, or scripts that stay well under 10 requests/minute and 10,000 credits/day.
- Tasks that fit an 8k–131k context window and don't need vision, e.g.
mistralai/mistral-nemo:freefor everyday chat at the cheapest credit rate (see the table above for the current rate and daily budget). - Lightweight reasoning tasks using a
thinking: truefree model likeopenai/gpt-oss-120b:free, within its daily credit budget. - Testing basic image-input prompts with a Gemma vision model, or short voice snippets with
deepgram/aura-2:free, before moving to a paid model for production volume.
When to move to a paid plan
- You need image generation, embeddings, rerank, or web search — none of these exist for free, ever.
- You're hitting the 10 requests/minute cap, the 50/day quota, or running out of daily credits.
- You need a model outside the free list — larger context, stronger reasoning, or better throughput (
tokensPerSecond/latencySecondsvary a lot between the free models). - You're building something with real users, where unlimited paid requests and predictable per-token billing matter more than a shared daily cap.
Errors you'll run into on the Free plan
All errors from /v1/* use the same envelope as the OpenAI API (error.message, error.type, error.param, error.code). The ones most specific to free-model usage:
| Status | Type | When it happens |
|---|---|---|
| 401 | authentication_error | Missing, malformed, or invalid API key. |
| 400 | invalid_request_error | Missing model/messages, unsupported input/output modality for the chosen model, or estimated input already exceeds the model's context window. |
| 404 | not_found_error | The free model id doesn't exist or was typed wrong — check it against /v1/models. |
| 429 | rate_limit_error | Any of the five limits above was hit — see the exact messages below. |
| 503 | api_error | The model is temporarily unavailable on our side. |
| 502 | api_error | The upstream provider returned an error or an empty response. |
429 messages, by limit
- Per-IP concurrency (10 in-flight at once) —
Too many requests at once from your connection. Please wait for one to finish and try again. - Per-account requests (10/min) —
Rate limit reached for requests. Limit: 10/min. - Daily credits exhausted —
You have reached your daily credit limit (10,000 credits/day — this model costs N credits per 1k tokens, input + output combined). - Shared daily quota (Free-plan accounts, 50/day) —
Daily usage limit reached for free models (50/day on the free plan). Try again tomorrow or upgrade to Pro. - Per-model tokens/minute (12,000) —
Rate limit reached for model '<model>'. Limit: 12,000 tokens/min (input + output).
{
"error": {
"message": "You have reached your daily credit limit (10,000 credits/day — this model costs 600 credits per 1k tokens, input + output combined).",
"type": "rate_limit_error",
"param": null,
"code": null
}
}
All 429s carry a Retry-After header (seconds) telling you when to try again, and are safe to retry after that window — back off exponentially rather than hammering the endpoint. 502/503 are also safe to retry; 400/401/404 won't succeed on retry without fixing the request itself. See Errors for the full error reference and Rate Limits for how each limit is enforced.