The OpenAI Assistants API is gone. As of today, August 26, 2026, every call to /v1/assistants
, /v1/threads
, and /v1/threads/runs
returns a hard error. No degraded mode. No grace period. No extension. If your app hasn’t been migrated, it’s broken right now. And if you didn’t manually export your Thread history before today, that conversation data is gone — OpenAI will not recover it for you.
The Blast Radius Extends Past OpenAI’s API #
If you’re only thinking about api.openai.com, you’re missing half the picture. Azure OpenAI’s Assistants API died at the same time — Microsoft aligned its retirement to August 26 despite earlier guidance that suggested Azure users were safe. Anyone who d migration based on that earlier communication is in the same broken state today.
Third-party platforms took the hit too. Zapier deprecated all ChatGPT (OpenAI) steps that used the Assistants API. Zaps built on those steps stopped working today. No-code workflows, internal automation, anything running through an Assistants-API-backed integration — all of it needs to be rebuilt.
What Survived and What Didn’t #
Not everything is gone. Vector stores and uploaded files persist and remain accessible through the Responses API’s file search tool. That’s the one piece OpenAI handled for you.
Everything else is on you. Assistant definitions don’t carry over. Thread histories don’t carry over. OpenAI did not provide an automated migration tool for Threads to Conversations — they said explicitly they wouldn’t, back when the sunset was announced a year ago. If you didn’t export your Thread data manually before today, it’s permanently gone.
This Is Not an Endpoint Swap #
The most dangerous misconception right now is that migrating to the Responses API means swapping a few endpoint URLs. It doesn’t. The architecture is fundamentally different.
The old model was built around persistent objects: an Assistant stored your model config and instructions, a Thread stored conversation history, a Run executed the logic. State management was handled for you. The new model strips all of that out. You pass model, instructions, and input inline on every call. State is your responsibility.
For lightweight continuity, pass previous_response_id
and set store: true
. For robust multi-turn conversation history, use the Conversations API. Neither is automatic.
assistant = client.beta.assistants.create(model="gpt-4o", instructions="...")
thread = client.beta.threads.create()
client.beta.threads.messages.create(thread_id=thread.id, role="user", content="...")
run = client.beta.threads.runs.create_and_poll(thread_id=thread.id, assistant_id=assistant.id)
response = client.responses.create(
model="gpt-4o",
instructions="...",
input="...",
store=True
)
client.responses.create(
model="gpt-4o",
instructions="...",
input="...",
previous_response_id=response.id
)
Azure users have a different destination: Microsoft Foundry Agent Service, not just the Responses API. If you’re running on Azure and you migrate to the wrong target, you’ll rebuild twice.
The Silent Failures Nobody Warned You About #
The hard errors are obvious. What isn’t is the class of silent failures that show up during migration — not as exceptions, but as degraded behavior. A DEV Community post identified three: tool loops wired incorrectly produce wrong outputs with no error; forgetting store: true
silently breaks conversation continuity; files that survived the transition need to be explicitly re-linked in Responses API calls or they simply don’t get used. These are the bugs that make it past your initial testing and into production.
What to Do Right Now #
If your app is broken today, the path is:
Stop the bleeding: Return a maintenance message to users rather than letting them hit API errors.Migrate to Responses API: Replace your Assistant + Thread + Run pattern with inline Responses API calls. CheckOpenAI’s official migration guidefor a full object-model mapping.Add state management: Useprevious_response_id
for simple chains; Conversations API for full thread persistence.Azure users: Target Foundry Agent Service. The Responses API route alone won’t cover your Azure-specific features.Audit Zapier and third-party tools: Any integration built on Assistants API needs rebuilding in whatever replacement the platform offers.
For detailed deprecation timelines across all affected APIs, bookmark OpenAI’s deprecations page — more are coming. The o3 API snapshots retire December 11, 2026. Three image APIs follow shortly after.
The Bigger Pattern #
Today’s shutdown isn’t an isolated event. The Assistants API was OpenAI’s attempt to abstract away complexity — threads, runs, and persistent assistants were supposed to make stateful AI applications easier. The problem is that abstraction also hid what was actually happening, making it harder to debug and optimize. The Responses API is more explicit: you control state, you control context, you own the logic. That’s a better foundation for production agentic systems, even if the migration is painful.
OpenAI also retired o3 from ChatGPT today (API access persists until December) and removed GPT-4.5 from the model picker. The message is consistent: the API surface is consolidating around Responses, and the models consolidating around the current-generation lineup. If you haven’t done a full audit of your OpenAI API dependencies recently, today is the forcing function.
We covered the migration steps back in August when the deadline was still ahead. If you missed that window, the steps are the same — just more urgent.