ExperientialDocs
Sign in

Reference

API reference

The OpenAI-compatible inference API and the management API a customer drives with an organization key.

Conventions

Base URL for this deployment is https://api-pr-668.preview.experientiallabs.ai: inference lives under /v1 and management under /api. Every call authenticates with Authorization: Bearer <key>, with one exception: the catalog reads (GET /api/models*) are public and keyless. Without a key you get the public catalog; send your key to also see the rows your organization owns. The OpenAI-compatible GET /v1/models, by contrast, requires your key.

One org key reaches everything below. It cannot mint or revoke keys (that is a web-session action), change another key's limits, or reach platform-admin routes. Writes act for the key's own organization; tenancy scopes every call to it.

Inference (/v1)

The OpenAI-compatible surface. Point any OpenAI client at https://api-pr-668.preview.experientiallabs.ai/v1. See the Quickstart for runnable calls and Errors for the failure envelope.

EndpointPurpose
GET /v1/modelsList the model slugs this key can call.
POST /v1/chat/completionsOpenAI Chat Completions; stream: true for SSE.
POST /v1/responsesOpenAI Responses; stream: true for SSE; previous_response_id continues on any worker.
POST /v1/messagesAnthropic Messages (Claude Code and Anthropic SDKs); x-api-key or Bearer; Anthropic-enveloped errors.
GET /v1/promptsPull your org's captured prompts (opt-in, Settings → Observability): oldest-first pages behind an after_captured_at + after_request_id keyset cursor; 30-day window.

Catalog, custom models, and waterfalls (/api)

Read the catalog and manage your org's custom models and waterfalls. See Models for request and response shapes.

EndpointPurpose
GET /api/modelsThe catalog; filter by modality, category, provider, price, context; sort and page.
GET /api/models/{slug}One model: row, deployments, and default waterfall.
GET /api/models/{slug}/providersA model's deployments.
POST /api/modelsCreate a custom model (row plus at least one deployment).
POST /api/models/{slug}/providersAdd a deployment or local variant to a model.
GET /api/models/{slug}/waterfallRead the default chain and your org override.
PUT /api/models/{slug}/waterfallReplace the ordered chain (model_provider_ids).

Provider connections (/api)

Connect and verify the provider keys that back the pass-through lane. Reads never return secret material.

EndpointPurpose
GET /api/orgs/{org_id}/provider-connectionsList your org's provider connections (no secrets).
PUT /api/orgs/{org_id}/provider-connections/{provider}Connect or rotate a provider key (secret + config).
POST /api/orgs/{org_id}/provider-connections/{provider}/checkVerify a connection.
POST /api/orgs/{org_id}/provider-connections/{provider}/spend-refreshRefresh a provider's reported spend.

Usage and keys (/api)

Read your own usage and spend and list your keys. Usage reads take org_id; an API key reads at scope=org (scope=self needs an end-user session).

EndpointPurpose
GET /api/gateway/usage/dailyGrouped usage rollup (group_by day, model, or member).
GET /api/gateway/usage/eventsThe paginated per-request usage stream.
GET /api/gateway/catalogAliases as your org resolves them, each with its lane.
GET /api/gateway/keys/{api_key_id}/limitsRead a key's effective guardrails — daily spend cap, requests/minute, tokens/minute — with platform defaults included; null means uncapped.
GET /api/keysList your org's API keys (never secrets).

Machine-readable reference

Agents should read /llms.txt, which carries this surface, the error table, and the core loop in one plain-text file.