Skip to content
Inferect
DocsPlatform

API Reference

Every route, how it's authenticated, and what to expect when it fails.

8 min read

Authentication

SurfaceMethod
Data plane — /v1/chat/completions, /v1/models, /v1/routing/explain, provider ops, dashboard/billing readsAPI key: Authorization: Bearer <API_KEY>
Control plane — auth, account, org, members, keys, credentials, provider config, policiesSession token from login, or an API key via the BFF
DashboardBrowser session; the BFF injects credentials so the browser never touches a raw token

Data plane

MethodPathDoes
POST/v1/chat/completionsOpenAI-compatible chat completion, streaming included
GET/v1/modelsList models available to your org
POST/v1/routing/explainExplain what would be chosen, without dispatching anything
GET/v1/providers/statusLive provider health
POST/v1/providers/syncSync the model catalogue for every configured provider
POST/v1/providers/{provider}/syncSync the catalogue for one provider
POST/v1/providers/{provider}/testTest a configured credential

Control plane

AreaRoutes
AuthPOST /v1/auth/{register,login,logout,refresh,password/forgot,password/reset}
AccountGET /v1/me · POST /v1/me/password
OrganizationGET/PUT /v1/orgs/current
MembersGET/POST /v1/members · DELETE /v1/members/{userID}
API keysGET/POST /v1/apikeys · DELETE /v1/apikeys/{id}
BYOK credentialsGET/POST /v1/credentials · DELETE /v1/credentials/{id}
ProvidersGET /v1/providers · PUT /v1/providers/{name}
PoliciesGET /v1/policies · PUT /v1/policies/{cache,routing,shadow,optimization}
DashboardGET /v1/dashboard/{overview,providers,cache,recommendations,experiments,audit,optimization,requests}
BillingGET /v1/billing/{plans,subscription,entitlements,usage} · POST /v1/billing/{checkout,portal,webhook}
OpsGET /livez, /readyz, /version, /metrics

Streaming, in practice

stream.sh
bash
curl -N -X POST https://api.inferect.online/v1/chat/completions \
  -H "Authorization: Bearer <INFERECT_API_KEY>" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-3-5-sonnet",
    "stream": true,
    "messages": [{ "role": "user", "content": "Stream a haiku about routing." }]
  }'

Errors

Data-plane errors follow the OpenAI error envelope, so your existing client SDK handles them without modification. Control-plane errors return JSON with a machine-readable code and a human-readable message.

StatusMeans
401Missing or invalid API key / session
403Authenticated, but not entitled or not authorized for this action
404Not found — or not visible to your org, by design of RLS
429Rate limit or quota exceeded
5xxUpstream provider or platform error — check /v1/routing/explain and /v1/providers/status

Rate limits & quota

Limits scale with your plan rather than being hardcoded per route — they're entitlement-driven. GET /v1/billing/entitlements shows exactly what your org is bound by right now.

No OpenAPI spec yet

This page is the contract, for now

A published OpenAPI/Swagger document doesn't exist yet — this reference is authoritative in the meantime. Tracked on the Roadmap.