There is no configuration file to maintain. Kontinent is configured by the key you send and the model id you address. What follows are the values the gateway enforces on every request.
| Limit | Value | Notes |
|---|
| Request body size | 2 MiB | Larger bodies return 400 invalid_request. |
| Required fields | model | A missing model returns 400 invalid_request. messages is validated by the provider. |
| Model id format | provider/model | e.g. mistral/mistral-medium-3.5. Unknown ids return 404. |
| Auth | Authorization: Bearer sk-kt-... | Required on everything except /healthz. |
| Limit | Value | Notes |
|---|
| Rate limit | Per key, in requests per minute | Sliding window of two 1-minute buckets. |
| Limiter behavior | Fail-open | Infrastructure trouble never blocks your requests. |
| Credit check | Optimistic | A small overdraft, bounded by your RPM, is possible by design. |
| Credit reconciliation | About 60 s | Background worker; a top-up lifts suspension immediately. |
| Exhausted balance | 402 insufficient_credits | Hard failure until a top-up lands. |
See Rate limits & credits for the full behavior.
| Timeout | Value | Notes |
|---|
| Overall stream deadline | None | Streams may run as long as the provider keeps sending. |
| Upstream response headers | 300 s | Time until the provider sends headers. For non-stream this is the whole generation. |
| Idle upstream (stream) | 90 s | Cut after 90 s of silence; provider chunks act as keep-alives. |
| Idle at the load balancer | 300 s | The load balancer sits in front of the gateway. |
| Key revocation propagation | About 30 s | Revoking and disabling. Expiry takes up to about 5 minutes. |
| Single streamed event | 4 MiB | A larger SSE event from the provider ends the stream with an error. |
| Property | Value |
|---|
| Platform availability | At least 99% per calendar month (terms of use, section 7); not per model |
| Failover triggers | Upstream 429, 5xx, 401/403, connection errors |
| Failover window | Before the first streamed byte |
| Route chain | Primary, plus a standby on another provider for many models; any chain via a routing policy |
See Maximum availability.
| Convention | Value |
|---|
| Money unit | Integer micro-EUR: 1 EUR = 1,000,000 µEUR |
| Price unit | Per million tokens, split into input and output rates |
| Billing model | Prepaid; each request debits the exact cost of its tokens |
| Rounding | No floating point; each request's cost is rounded down to a whole µEUR |
| Tier | Meaning |
|---|
strict | An EU-owned provider that Kontinent rates as sovereign. |
pragmatic | Served from the EU, but by a provider with a non-EU parent or one that runs on third-party cloud infrastructure. |
| Kind | Endpoint |
|---|
chat | POST /v1/chat/completions |
embedding | POST /v1/embeddings |
transcription | POST /v1/audio/transcriptions |
speech | POST /v1/audio/speech |
Audio limits: uploads up to 25 MiB per file (26 MiB per request), speech input up to 4096 characters (1000 for ovh/nvr-tts-de-de). A transcription upload must finish within 5 minutes. At most 4 transcriptions run at once per gateway instance, and a fifth waits up to 10 seconds for a slot; beyond that you get 503 transcriptions_busy with Retry-After: 10.
| Setting | Range | Notes |
|---|
| Smart router | none | Classifies each request and picks among the models you configured. |
| Model pool | You choose | Frontier, open-weight, or mixed. Sovereignty still applies. |
| Cost-quality threshold | 1 to 10 | Optional. Used when the pool mixes cheaper open-weight models with stronger ones. |
| Custom routers | none | Other methods: latency, throughput, error rate. Combined with classification or used alone. |
See Price & performance.
| Data | Stored |
|---|
| Prompt and completion bodies | Never |
| Token counts (prompt/completion/total) | Yes |
| Latency and HTTP status | Yes |
| Model id and computed cost | Yes |
See Privacy & retention.