ExperientialDocs
Sign in

Get started

Quickstart

Point your existing OpenAI client at the gateway and make your first call in under a minute. Chat Completions and the Responses API, streaming included.

Get a key

  1. Sign in and open Settings, API keys.
  2. Create a key. The secret (xpl_...) is shown once, so copy it now.
  3. Export it for the snippets below: export EXPLABS_API_KEY=xpl_...

For the pass-through lane, also connect a provider key in Settings. For the platform-funded lane, nothing more is needed: calls draw down your credits.

Your first call

Set base_url to https://api-pr-683.preview.experientiallabs.ai/v1 and pass a model slug. Everything else is the standard OpenAI request.

POST /v1/chat/completions
curl "https://api-pr-683.preview.experientiallabs.ai/v1/chat/completions" \
-H "Authorization: Bearer $EXPLABS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "claude-opus-5", "messages": [{"role": "user", "content": "Hello"}]}'

Stream the response

Set stream: true to receive server-sent events as tokens arrive.

Streaming
curl -N "https://api-pr-683.preview.experientiallabs.ai/v1/chat/completions" \
-H "Authorization: Bearer $EXPLABS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "claude-opus-5", "stream": true, "messages": [{"role": "user", "content": "Hello"}]}'

Use the Responses API

The gateway also serves the OpenAI Responses API at /v1/responses, streaming included.

POST /v1/responses
curl "https://api-pr-683.preview.experientiallabs.ai/v1/responses" \
-H "Authorization: Bearer $EXPLABS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "claude-opus-5", "input": "Hello"}'
previous_response_id continues a prior response on any worker instance. Continuations are retained for a bounded window; an unknown or expired id fails closed with 400 continuation_unavailable, in which case resend the full conversation.

Next

Walk the full self-serve loop in The core loop, or see how the catalog and provider waterfalls work in Models.