# OpenAI

> Configure openai deployments and understand provider-specific behavior.

URL: https://boelabs.com/en/docs/ai-gateway/providers-openai
Language: English

## Configure a deployment

Send this body to `POST /admin/deployments` with an operator credential. Replace the example
credentials and choose a model available to your provider account. See
[Creating deployments](https://boelabs.com/docs/ai-gateway/creating-deployments) for the shared configuration fields.

```json
{ "publicModel": "gpt-5.5", "adapterKey": "openai", "upstreamModel": "gpt-5.5", "credentials": { "apiKey": "sk-..." } }
```

## Behavior and limitations

- **Credentials**: `apiKey` only.
- **Text transport**: Responses for every public text endpoint, including Chat Completions and
  Messages. Set `transportOverrides["text.generate"]` to `chat_completions` when a deployment needs
  Chat-only features. Incompatible features are rejected before contacting the provider.
- **Reasoning**: `openai_effort` (`reasoning_effort`) on reasoning-family models. Chat variants
  (e.g. `gpt-5.2-chat-latest`) are non-reasoning — the real API rejects `reasoning_effort` on them, and the
  catalog declares them without a `reasoning` spec accordingly. On GPT-5.6, `xhigh` and `max`
  are separate tiers and are forwarded unchanged.
- **Encrypted reasoning round-trips through the client.** On reasoning-capable models the upstream
  call sets `store: false` and requests `include: ["reasoning.encrypted_content"]`; the
  encrypted state is returned to the client (native `reasoning` items on `/v1/responses`,
  message-level `provider_specific_fields` on `/v1/chat/completions`) and replayed upstream when
  echoed back. Responses are therefore never stored in your OpenAI account. See
  [Provider-specific fields](https://boelabs.com/docs/ai-gateway/provider-specific-fields).
- **Responses WebSocket:** public WebSocket sessions terminate at the gateway. The OpenAI adapter
  opens a separate upstream `/responses` WebSocket, maps public response ids to private upstream ids,
  and uses incremental continuation while the same deployment remains selected. Routing to another
  deployment reconstructs the full canonical context instead of leaking or forwarding provider
  events directly.
- **Images**: `gpt-image-*` models; always returns `b64_json` regardless of requested
  `response_format` (see [Images](https://boelabs.com/docs/ai-gateway/images)).
- **Videos**: Sora profiles are included for OpenAI-shaped compatibility, but OpenAI's current docs
  mark the Sora 2 Videos API deprecated with shutdown scheduled for September 24, 2026.
- Catalog: `src/adapters/openai/catalog.json`.

## Next steps

- [Creating deployments](https://boelabs.com/docs/ai-gateway/creating-deployments) — the full request shape.
- [Reasoning](https://boelabs.com/docs/ai-gateway/reasoning) — the `openai_effort` kind in detail.
- [Videos](https://boelabs.com/docs/ai-gateway/videos) — the async video lifecycle.

