OpenAI 2026 — Responses, o-series, Realtime & Assistants sunset.
Fifteen deep-dive guides on the newer OpenAI APIs and the biggest migration deadline of 2026. Covers the Responses API replacing Chat Completions for new work, o-series reasoning-model quirks, Realtime API voice agents, and the Assistants API sunset scheduled for August 26, 2026. Every page has tested Python code, real error messages, and the fixes that solve 90% of cases.
Install & verify
All code samples target the OpenAI Python SDK 1.60+ with Python 3.11+.
pip install --upgrade openai
# Verify version 1.60+ for Responses API, Conversations, and Realtime helpers
python -c "import openai; print(openai.__version__)"
Responses API
The new default surface for OpenAI. Every new capability — built-in tools, MCP, computer use, deep research — ships here first. Migrate from Chat Completions and get familiar with the state model, tools, and streaming.
o-series reasoning models
The reasoning-model family (o3, o4-mini, GPT-5 reasoning) has its own token accounting, parameter restrictions, and structured output quirks. These four pages cover the failures teams hit in the first week with reasoning models.
Realtime API — voice agents
Building voice agents on gpt-realtime. Transport selection is architecture-level; audio format, tool calling, and turn detection are configuration-level. Each has its own way to break.
Assistants API sunset — migration to Responses
The Assistants API sunsets August 26, 2026. These three migration guides cover threads → conversations, file_search wire changes, and rewriting run polling as streaming events. Start now — the deadline is firm.
Weekly OpenAI digest
Every new error we document plus model releases, deprecation notices, and reliability patterns from teams shipping on Responses, Realtime, and o-series in production. Free, one email per week, unsubscribe anytime.
Quick reference — where to look first
| If you see... | Start here |
|---|---|
NotFoundError: Invalid URL (POST /v1/response) | #136 · Chat Completions → Responses |
AttributeError: 'Response' has no attribute 'choices' | #136 · Chat Completions → Responses |
cannot use both previous_response_id and conversation | #137 · State management |
file_search requires vector_store_ids | #138 · Built-in tools |
| Streaming events silent, wrong event names | #139 · Streaming events |
| o-series empty response, finish_reason=length | #140 · Reasoning exhausted budget |
Unsupported parameter 'temperature' for model o3 | #142 · Unsupported parameters |
| Realtime WebRTC connection fails, 401 handshake | #144 · Realtime transport |
| Realtime model responds slow/deep, garbled audio | #145 · Audio format |
| Realtime model silent after tool call | #146 · Function calling |
| Model cuts user off / doesn't allow interruption | #147 · Turn detection |
| Assistants API deprecation warning header | #148 · Migration overview |