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.
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.
| Endpoint | Purpose |
|---|---|
| GET /v1/models | List the model slugs this key can call. |
| POST /v1/chat/completions | OpenAI Chat Completions; stream: true for SSE. |
| POST /v1/responses | OpenAI Responses; stream: true for SSE; previous_response_id continues on any worker. |
| POST /v1/messages | Anthropic Messages (Claude Code and Anthropic SDKs); x-api-key or Bearer; Anthropic-enveloped errors. |
| GET /v1/prompts | Pull 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.
| Endpoint | Purpose |
|---|---|
| GET /api/models | The 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}/providers | A model's deployments. |
| POST /api/models | Create a custom model (row plus at least one deployment). |
| POST /api/models/{slug}/providers | Add a deployment or local variant to a model. |
| GET /api/models/{slug}/waterfall | Read the default chain and your org override. |
| PUT /api/models/{slug}/waterfall | Replace 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.
| Endpoint | Purpose |
|---|---|
| GET /api/orgs/{org_id}/provider-connections | List 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}/check | Verify a connection. |
| POST /api/orgs/{org_id}/provider-connections/{provider}/spend-refresh | Refresh 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).
| Endpoint | Purpose |
|---|---|
| GET /api/gateway/usage/daily | Grouped usage rollup (group_by day, model, or member). |
| GET /api/gateway/usage/events | The paginated per-request usage stream. |
| GET /api/gateway/catalog | Aliases as your org resolves them, each with its lane. |
| GET /api/gateway/keys/{api_key_id}/limits | Read a key's effective guardrails — daily spend cap, requests/minute, tokens/minute — with platform defaults included; null means uncapped. |
| GET /api/keys | List 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.