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
- Sign in and open Settings, API keys.
- Create a key. The secret (
xpl_...) is shown once, so copy it now. - 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-668.preview.experientiallabs.ai/v1 and pass a model slug. Everything else is the standard OpenAI request.
POST /v1/chat/completions
curl "https://api-pr-668.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-668.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-668.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.