Skip to content

Commit 1c309e6

Browse files
committed
docs(providers/openai): note OpenAI Realtime requires Platform credits, not Codex/ChatGPT subscription (#76498)
Realtime voice (Voice Call realtime.provider: openai and Control UI Talk with talk.provider: openai) goes through the public OpenAI Platform Realtime API and needs an OPENAI_API_KEY whose organization has funded Platform credits. Codex/ChatGPT subscription quota does not cover this route, so an install whose openai-codex/* chat works fine can still hit insufficient_quota / 'You exceeded your current quota' on the first Realtime turn. Adds an inline note next to the Realtime row of the OpenAI capability matrix and a follow-up Note block that explains the symptom, the fix (top up Platform credits + configure OPENAI_API_KEY), and why openai-codex is not registered as a realtime voice provider. This was the central confusion in #76498. Documenting it inline prevents the same fail-then-discover loop for the next user.
1 parent 9c2a6a8 commit 1c309e6

2 files changed

Lines changed: 37 additions & 14 deletions

File tree

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1851,6 +1851,7 @@ Docs: https://docs.openclaw.ai
18511851
- Agents/read tool: treat positive offsets beyond EOF as empty ranges instead of surfacing the upstream read error, so stale pagination cursors no longer crash tool calls while unrelated read failures still fail loud. Fixes #62466. (#75536) Thanks @vyctorbrzezowski.
18521852
- Google/Gemini: normalize retired Gemini 3 Pro Preview refs left in Google API-key onboarding model allowlists and fallbacks, so setup-emitted config keeps testing `google/gemini-3.1-pro-preview` instead of `google/gemini-3-pro-preview`.
18531853
- Telegram/context: bound selected topic context to the active session so messages from before `/new` or `/reset` are not replayed into later turns. (#80848) Thanks @VACInc.
1854+
- Docs/providers/openai: clarify that OpenAI Realtime voice goes through the OpenAI Platform Realtime API and requires Platform credits — Codex/ChatGPT subscription quota does not cover this route. Fixes #76498. Thanks @lonexreb.
18541855
- Google/Gemini: normalize retired nested Gemini 3 Pro Preview ids when resolving exact configured proxy-provider refs, so `kilocode/google/gemini-3-pro-preview` resolves to `kilocode/google/gemini-3.1-pro-preview` for Gemini 3.1 testing.
18551856
- CLI: strip generic OSC terminal escape payloads from sanitized output fields, preventing clipboard/title escape bodies from leaking into commitment tables and other terminal-safe text. Thanks @shakkernerd.
18561857
- Codex app-server: match connector-backed plugin approval elicitations by stable connector id so enabled destructive actions no longer fall through to display-name-only rejection.

docs/providers/openai.md

Lines changed: 36 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -81,20 +81,42 @@ explicit runtime config.
8181

8282
## OpenClaw feature coverage
8383

84-
| OpenAI capability | OpenClaw surface | Status |
85-
| ------------------------- | -------------------------------------------------------------------------------- | ------------------------------------------------------ |
86-
| Chat / Responses | `openai/<model>` model provider | Yes |
87-
| Codex subscription models | `openai/<model>` with `openai-codex` OAuth | Yes |
88-
| Legacy Codex model refs | `openai-codex/<model>` or `codex-cli/<model>` | Repaired by doctor to `openai/<model>` |
89-
| Codex app-server harness | `openai/<model>` with omitted runtime or provider/model `agentRuntime.id: codex` | Yes |
90-
| Server-side web search | Native OpenAI Responses tool | Yes, when web search is enabled and no provider pinned |
91-
| Images | `image_generate` | Yes |
92-
| Videos | `video_generate` | Yes |
93-
| Text-to-speech | `messages.tts.provider: "openai"` / `tts` | Yes |
94-
| Batch speech-to-text | `tools.media.audio` / media understanding | Yes |
95-
| Streaming speech-to-text | Voice Call `streaming.provider: "openai"` | Yes |
96-
| Realtime voice | Voice Call `realtime.provider: "openai"` / Control UI Talk | Yes |
97-
| Embeddings | memory embedding provider | Yes |
84+
| OpenAI capability | OpenClaw surface | Status |
85+
| ------------------------- | --------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------- |
86+
| Chat / Responses | `openai/<model>` model provider | Yes |
87+
| Codex subscription models | `openai/<model>` with `openai-codex` OAuth | Yes |
88+
| Legacy Codex model refs | `openai-codex/<model>` or `codex-cli/<model>` | Repaired by doctor to `openai/<model>` |
89+
| Codex app-server harness | `openai/<model>` with omitted runtime or provider/model `agentRuntime.id: codex` | Yes |
90+
| Server-side web search | Native OpenAI Responses tool | Yes, when web search is enabled and no provider pinned |
91+
| Images | `image_generate` | Yes |
92+
| Videos | `video_generate` | Yes |
93+
| Text-to-speech | `messages.tts.provider: "openai"` / `tts` | Yes |
94+
| Batch speech-to-text | `tools.media.audio` / media understanding | Yes |
95+
| Streaming speech-to-text | Voice Call `streaming.provider: "openai"` | Yes |
96+
| Realtime voice | Voice Call `realtime.provider: "openai"` / Control UI Talk `talk.realtime.provider: "openai"` | Yes (requires OpenAI Platform credits, not Codex/ChatGPT subscription) |
97+
| Embeddings | memory embedding provider | Yes |
98+
99+
<Note>
100+
OpenAI Realtime voice (used by Voice Call's `realtime.provider: "openai"` and
101+
Control UI Talk with `talk.realtime.provider: "openai"`) goes through the
102+
public **OpenAI Platform Realtime API**, which is billed against OpenAI
103+
Platform credits rather than Codex/ChatGPT subscription quota. An account
104+
with healthy Codex OAuth that runs `openai-codex/*` chat models without
105+
issue can still hit `insufficient_quota` / "You exceeded your current
106+
quota" on the first Realtime turn if the same OpenAI organization has no
107+
Platform billing set up.
108+
109+
Fix: top up Platform credits at
110+
[platform.openai.com/account/billing](https://platform.openai.com/account/billing)
111+
for the organization backing your realtime credentials. Realtime accepts
112+
either a Platform `OPENAI_API_KEY` (configured via `talk.realtime.providers.openai.apiKey`
113+
for Control UI Talk, or `plugins.entries.voice-call.config.realtime.providers.openai.apiKey`
114+
for Voice Call) or an `openai-codex` OAuth profile whose underlying
115+
organization has Platform billing — both routes mint Realtime client secrets
116+
through the Platform API, so either way the org needs funded Platform
117+
credits. For chat turns you can still use `openai-codex/*` against the same
118+
OpenClaw install; Realtime is the one route that needs Platform billing.
119+
</Note>
98120

99121
## Memory embeddings
100122

0 commit comments

Comments
 (0)