What you can rely on.
Layer X1 is built to be the boring part of your stack. This page is the contract: the behaviors you can design an agent around, stated as outcomes — not implementation.
Always on
Zero downtime is the design target, not a status-page apology. Serving is watched and rebalanced continuously, and capacity is provisioned so that your traffic never depends on any single model deployment being healthy.
- No scheduled maintenance windows — the API does not go down on purpose.
- Model launches, catalog updates, and platform releases are invisible in-band: no API version bumps that break a running agent.
Sessions keep moving
Agent runs are long and stateful, so the guarantee that matters is continuity: if a model can't answer, the engine keeps your session moving. You don't write failover lists, health checks, or fallback logic — a request that can be served, will be.
When a response genuinely cannot be produced, you get a clean, protocol-shaped 5xx that says so (The model did not return a response. Please retry.) — transient by design, built to be retried. See Errors for the recipe.
Honest streams
A stream either completes or tells you it didn't. If a streamed turn cannot finish, it ends with a protocol-shaped error event — you will never receive a silent empty 200 that your agent mistakes for "the model had nothing to say."
Predictable limits
Rate limiting is boring on purpose — published numbers, standard signals, machine-readable timing:
| Behavior | Contract |
|---|---|
| Published limits | Requests/min and concurrency per plan, printed on Plans & limits — no unpublished throttles to discover in production. |
| Self-pacing | Every response carries x-ratelimit-* headers so clients can slow down before hitting the limit. |
| On the limit | 429 with retry-after in seconds — never a hang, never a dropped connection. |
| Out of usage | Sessions are never interrupted mid-run. Near the edge of a plan, the heaviest models pace to your plan while everything else keeps full speed. |