API
The gateway address is https://jatevo.ai. Use your individual team key; provider credentials stay on the server. Team mode is on by default.
Request formats
| Format | Path | Connection support |
|---|---|---|
| OpenAI Chat | POST /v1/chat/completions | Compatible APIs, GLM, DeepSeek and configured engines |
| Responses | POST /v1/responses | Compatible APIs and configured engines |
| Anthropic Messages | POST /v1/messages | Claude API and compatible engines |
| Anthropic token count | POST /v1/messages/count_tokens | Claude API and compatible engines |
| Gemini | POST /v1beta/models/<provider/model>:generateContent | Gemini API and compatible engines |
| Gemini streaming | POST /v1beta/models/<provider/model>:streamGenerateContent | Gemini API and compatible engines |
| Models | GET /v1/models | Catalog filtered by member and key permissions |
Send Authorization: Bearer <key>, x-api-key: <key>, or x-goog-api-key: <key>. Query-string credentials are refused. A provider name does not imply every format is supported; unsupported combinations return a clear error.
Models and routing
Public model IDs are provider/model, such as the exact IDs shown in Connections and Set up a tool. The /v1/models catalog includes wires metadata listing each model's supported protocols. The gateway validates permissions against the resolved provider and model, then sends the original model ID to that connection. When a bare model name appears on multiple providers, the gateway refuses it as ambiguous.
Several enabled connections for the same provider/model rotate on successive requests. No implicit retry or cross-provider fallback occurs. Disable a connection to remove it from selection. An adapter endpoint must serve only its declared provider so the namespace remains meaningful.
Limits
The effective permission is the intersection of the member policy and key policy. Revocation, expiry, suspension, provider/model permission, daily allowance, RPM, concurrency and maximum output are checked before dispatch. Additional keys consume the same member allowance.
Admission reserves a conservative input estimate plus a capped output allowance atomically. Missing usage or interrupted streams retain their reservation as a charge. Measured provider usage replaces estimates when available. Provider-reported usage can exceed an estimate, so this is not a guaranteed vendor billing ceiling. Finite token allowances currently require self-contained text requests; remote media and server-stored conversation references are refused. See team gateway.
Streaming
Chat, Responses and Messages use stream: true. Gemini uses :streamGenerateContent. Responses are streamed with backpressure and usage is settled at completion. Client cancellation aborts the upstream request and retains conservative accounting when final usage is unavailable. Persistent WebSocket inference is currently refused; use HTTP/SSE.
Errors
| Status | Meaning |
|---|---|
| 400 | Invalid input, ambiguous model, unsupported format, or unsupported bounded-usage input |
| 401 | Missing, invalid, rotated, revoked or expired key |
| 403 | Disabled member or denied provider/model/output policy |
| 404 | Unknown model or route |
| 413 | Request exceeds the gateway body limit |
| 429 | Token reservation, request-rate or concurrency limit reached |
| 502 / 504 | Upstream connection failed or timed out |
Provider errors preserve the provider's status when a response is received. The gateway's own errors include a message and machine-readable code. Prompt and answer bodies are not stored in the usage history.
Usage
Usage shows the member's own request records; administrators can inspect team totals. Each record carries key, provider, model, timestamps, status, token usage and whether usage was measured or charged conservatively. Historical 0.1 engine records remain separate from gateway requests to avoid double counting during migration.
At /app/usage, select Today, a rolling 24 hours, or 7, 14, 30 or 60 UTC calendar days (including today). The default is 14 days. The key filter and clickable provider nodes apply to totals, charts, the routing map and request details together. The map shows recorded activity, including failed and running requests, rather than provider health. Each member sees only their own traffic, including when filtering by a key.
Details show the newest 200 matching requests, with input, cached input, output, allowance charge, accounting source, HTTP status and duration. CSV exports the newest 1,000 matching records for the same period and filters. Cached input means cache reads already included in input tokens; it is never added again to the allowance charge. Missing breakdowns, including requests recorded before this feature, remain unknown. Aggregate totals disclose how many requests reported a value. Estimated cost is unavailable: the gateway does not yet store per-model pricing.
Cache reads come from the provider's usage metadata: OpenAI cached tokens, Claude cache reads, and Gemini usage metadata. Prompt and response contents are not retained for analytics.