Skip to main content
// ple

// blog / news

OpenAI prompt objects shut down on November 30, 2026: a migration checklist

If any of your Responses API calls pass a prompt object (an id, a version and variables), the dashboard feature behind it has an end date. Here is what OpenAI says, a checklist, and an honest note on where a prompt library fits.

What OpenAI says

Checked on October 16, 2026 against OpenAI's own pages (links at the end):

  • June 3, 2026: the deprecations page lists "Reusable prompts" as announced, with prompt creation de-emphasized in the platform.
  • November 30, 2026: the same entry says the v1/prompts API and reusable prompt objects are scheduled to shut down.
  • OpenAI's recommendation, in the entry and in the migration guide: move the prompt content into your application code, keep it versioned there with git, review and tests or evals, and replace prompt variables with typed function arguments.

One thing we did not find: the migration guide describes moving prompts into code, not a bulk export of the prompt objects you already have. Treat getting the text out as your job, and do it while the objects are still reachable.

A five-step checklist

The steps follow OpenAI's guide, with the first two added because they are what people forget:

checklist
1. Find every Responses API call that passes a prompt object
   (id, version, variables). Grep for the "prompt" parameter.
2. Copy each prompt's current text while it is still reachable.
   Note which version you actually run, and each variable's name.
3. Move it into a prompt builder in your code. Variables become
   typed arguments.
4. Send the built messages as input instead of the prompt object.
5. Keep static content first and dynamic content last, so
   prompt caching still works.

OpenAI's prompting guide says the same about where production prompts belong: in code, versioned, reviewed and rolled back like any other change. We covered the wider picture in what Anthropic, Google and OpenAI agree on.

Where a prompt library fits, and where it doesn't

Production prompts belong in your code, as OpenAI says. PromptLikeEngineer does not serve prompts to your app at runtime, and it is not a replacement for a prompt object in a deployed service.

It helps before a prompt ships: comparing versions, keeping the history and the reason for each change, and reusing the same text in Claude Code, Cursor or Codex while you iterate. If you would rather not paste the old prompts into a repo one by one, a library is also a reasonable place to park the text while you work out the builder functions.

What the import supports

In Settings → Import & export, you can import a JSON array of objects with a title and content: up to 50 per import. Anything over your plan's prompt limit is skipped and reported, and if you are already at your plan's project limit the import stops with a message. Imported prompts land in a private project named Imported Prompts. {{name}} placeholders work as variables.

prompts.json
[
  {
    "title": "support-reply",
    "content": "You are a support agent for {{product}}.\nReply to this ticket in a {{tone}} tone:\n\n{{ticket}}"
  },
  {
    "title": "ticket-triage",
    "content": "Classify the ticket below as bug, billing or how-to. Answer with one word.\n\n{{ticket}}"
  }
]

Export goes the other way and is open on every plan: JSON, an AGENTS.md section or a Claude Skill (see your data). That is how you keep an exit open, whichever tool holds the text. For how libraries compare, see the tools comparison.

Sources

All read on October 16, 2026: Migrate from prompt objects · Deprecations · Prompting. Dates and wording can change; check OpenAI's pages before you plan around them.