Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.axiomancer.io/llms.txt

Use this file to discover all available pages before exploring further.

RouteShift exposes two compatibility surfaces and one admin surface:
SurfaceBase URLAuthUse for
OpenAI-compatiblehttps://proxy.routeshift.io/v1Authorization: Bearer sk-proxy-…Chat, completions, embeddings, models.
Anthropic-compatiblehttps://proxy.routeshift.io/anthropic/v1x-api-key: sk-proxy-…Anthropic Messages API.
Adminhttps://api.routeshift.io/adminAuthorization: Bearer ROUTESHIFT_ADMIN_TOKENMint keys, query usage, manage aliases.

Virtual keys

All three surfaces accept the same sk-proxy-… virtual key, except the admin surface, which requires a separate admin token scoped to the workspace. Admin tokens are minted at Settings → API tokens and never expire automatically — rotate them on your own schedule.
ROUTESHIFT_ADMIN_TOKEN does not fall back to a virtual sk-proxy-… key. If you call an admin endpoint with a virtual key, RouteShift returns 401. This is deliberate — virtual keys should never carry workspace-admin scope.

Rate limits

Each virtual key carries its own RPM and TPM caps (see Virtual API keys). When a cap is hit, RouteShift returns:
HTTP/1.1 429 Too Many Requests
X-RouteShift-Reason: rpm_exceeded   # or tpm_exceeded, budget_exceeded
Retry-After: 7
Retry-After is in seconds and reflects when the bucket will have capacity again.

Errors

RouteShift mirrors the upstream provider’s error format whenever possible. Proxy-side errors carry an X-RouteShift-Reason header so you can distinguish proxy failures from upstream failures:
ReasonStatusMeaning
key_revoked401Virtual key was revoked.
key_expired401Virtual key passed expires_at.
model_not_allowed403Model isn’t in this key’s allowlist.
rpm_exceeded429Per-key requests-per-minute cap hit.
tpm_exceeded429Per-key tokens-per-minute cap hit.
budget_exceeded429Monthly budget hit; resets at start of next UTC month.
cost_ceiling_exceeded429Per-request cost ceiling hit during a fallback chain.
no_provider_key503No provider key available for the resolved upstream.
upstream_cooldown503All credentials for this provider are in cooldown.