Get started
Limits
Every limit the platform holds an organisation to besides its plan's, as its staff set it, and how to read them from code.
These are the limits that belong to the platform rather than to your plan: how many tools an agent may have, how large an upload may be, how many of your generations may be unfinished at once, and more — and the defaults your agents run on where neither the agent nor your organisation sets one: the model, when a conversation is continued or greeted again, what a reply recalls of a person and when a conversation is read for facts, how much knowledge goes in the prompt, how a tool call is bounded. Your plan’s own limits — its requests an hour and at once, its voices, agents and end users — are on Usage.
The platform’s staff may change them, so this page lists them as they stood when these docs were built, and every page of the API reference names a limit by its key rather than by a number. A request past a limit is refused with the status the reference gives, and the error’s message names the number.
| Limit | Key | Now | Built in |
|---|---|---|---|
| Requests a minute, when a plan names none | limits.org.requests_per_minute |
300 | 300 |
| Uploaded files in an organisation’s library | limits.org.asset_uploads |
2,000 | 2,000 |
| Voices an organisation may keep | limits.org.voices |
25 | 25 |
| Knowledge entries an organisation may hold | limits.org.knowledge_entries |
1,000 | 1,000 |
| Unfinished images an organisation may hold | limits.org.active_generations.image |
8 | 8 |
| Unfinished videos an organisation may hold | limits.org.active_generations.video |
4 | 4 |
| Unfinished queued speech generations an organisation may hold | limits.org.active_generations.tts |
6 | 6 |
| Unfinished queued transcriptions an organisation may hold | limits.org.active_generations.stt |
8 | 8 |
| Unfinished skyboxes an organisation may hold | limits.org.active_generations.skybox |
2 | 2 |
| Tools in an organisation’s library | limits.org.tools |
200 | 200 |
| Tools on one agent | limits.agent.tools |
20 | 20 |
| Conversations one end user’s key may open a minute | limits.end_user.opens_per_minute |
60 | 60 |
| The longest an ephemeral key may live | limits.ephemeral.max_ttl_seconds |
30 days (2,592,000 seconds) | 30 days (2,592,000 seconds) |
| The most credits one ephemeral key may hold | limits.ephemeral.max_credits |
100,000 credits | 100,000 credits |
| An uploaded image’s size | limits.uploads.image_bytes |
40 MiB | 40 MiB |
| An uploaded recording’s size | limits.uploads.audio_bytes |
200 MiB | 200 MiB |
| A voice’s recording’s size | limits.uploads.voice_bytes |
20 MiB | 20 MiB |
| The model of an agent that names none | agents.model |
gemini-3.1-flash-lite |
gemini-3.1-flash-lite |
| Quiet before a continued conversation is greeted again | agents.greeting.resume_after_minutes |
15 minutes | 15 minutes |
| How old a conversation may be and still be continued | agents.sessions.resume_max_age_days |
7 days | 7 days |
| Rounds of tool calls in one reply | agents.tools.max_rounds |
3 | 3 |
| Tool calls run at once | agents.tools.calls_per_round |
5 | 5 |
| How long an ask-first tool waits for a yes | agents.tools.confirm_for_minutes |
10 minutes | 10 minutes |
| A tool’s answer, at most | agents.tools.result_max_bytes |
16,384 bytes | 16,384 bytes |
| A conversation reports its tools’ failures every | agents.tools.report_every_minutes |
5 minutes | 5 minutes |
| What a reply recalls of a person, in characters | agents.memory.recall.budget_chars |
6,000 | 6,000 |
| Recall’s share for the most recent facts | agents.memory.recall.recent_share |
0.25 | 0.25 |
| What one reading reads of a conversation, in characters | agents.memory.reading.transcript_chars |
200,000 | 200,000 |
| Messages a reading reads before what is new | agents.memory.reading.context_messages |
6 | 6 |
| A conversation is read for facts after | agents.memory.facts.idle_minutes |
15 minutes | 15 minutes |
| A failed reading is tried again after | agents.memory.facts.retry_minutes |
30 minutes | 30 minutes |
| A replaced or removed fact is kept, hidden, for | agents.memory.facts.replaced_kept_days |
30 days | 30 days |
| A conversation is compacted at | agents.memory.compaction.default_threshold_tokens |
32,000 | 32,000 |
| Messages a compaction keeps word for word | agents.memory.compaction.keep_messages |
6 | 6 |
| A compaction’s notes, at most | agents.memory.compaction.max_output_tokens |
4,000 | 4,000 |
| Knowledge put in the prompt, in auto | agents.knowledge.inline_budget_tokens |
8,000 | 8,000 |
| Knowledge put in the prompt, at most | agents.knowledge.prompt_cap_tokens |
32,000 | 32,000 |
| Pieces a lookup hands the model | agents.knowledge.default_results |
4 | 4 |
| A lookup’s least similarity | agents.knowledge.min_score |
0.6 | 0.6 |
| A tool’s failures that mail its organisation | agents.tools.failures_to_mail |
20 | 20 |
| A tool’s failures are counted over | agents.tools.failure_window_minutes |
60 minutes | 60 minutes |
| A failing tool mails at most every | agents.tools.mail_every_hours |
24 hours | 24 hours |
| A streamed transcription’s pieces at ElevenLabs at once | speech.stt.stream_concurrency |
6 | 6 |
| An image not done this long after its submit fails | jobs.generation.deadline.image_minutes |
15 minutes | 15 minutes |
| A clip not done this long after its submit fails | jobs.generation.deadline.video_minutes |
30 minutes | 30 minutes |
| A skybox not made this long after its submit fails | jobs.generation.deadline.skybox_minutes |
20 minutes | 20 minutes |
| A skybox’s exports not ready this much later fail | jobs.generation.deadline.skybox_export_minutes |
20 minutes | 20 minutes |
| Requests’ contents are kept for | platform.retention.requests_days |
90 days | 90 days |
Reading them from code
Section titled “Reading them from code”GET /v1/platform/limits answers them as they stand now. It needs no key: every limit is listed in one page, each with its key, label, value, unit and the platform’s built-in default. A size is in bytes, a time in its unit — ms, seconds, minutes or days — and credits are whole credits; a model is its id.
curl https://api.lumavox.ai/v1/platform/limitsFrom your server, @lumavox/server reads them with limits() (Server SDK).