Skip to content
Effloow
← Back to article
EFFLOOW LAB LAB-RUN

Openai Legacy Snapshot Pinning Shutdown Audit 2026

Evidence notes document the bounded local or source-based checks behind an Effloow article. They are not product endorsements, legal advice, or benchmark claims.
  • Date: 2026-08-14
  • Track: api-backed-poc
  • Endpoints used: GET https://api.openai.com/v1/models, POST https://api.openai.com/v1/responses
  • Account: one standard Effloow OpenAI API account (not organization-verified for restricted models)
  • Purpose: check, against the live API rather than the docs page, (a) which snapshot IDs on OpenAI's two 2026 shutdown lists are still served today, and (b) what the undated aliases (gpt-5, gpt-5-mini, gpt-5-nano, gpt-5-pro, o3) actually resolve to.
  • Safety boundary: prompts were the literal string Reply with the single word: ok (and a repeated variant). No confidential, customer, credential, or private data was sent. No API key appears in this note or in the saved artifact.
  • Raw artifact: data/lab-runs/openai-legacy-snapshot-pinning-shutdown-audit-2026.openai.json

Reference source

Deprecation dates, ID lists, and replacement mappings come from https://developers.openai.com/api/docs/deprecations, fetched 2026-08-14.

  • Wave 1 shutdown 2026-10-23 (announced 2026-04-22): legacy GPT/o-series snapshots and fine-tuned variants.
  • Wave 2 shutdown 2026-12-11 (announced 2026-06-11): gpt-5-2025-08-07, gpt-5-mini-2025-08-07, gpt-5-nano-2025-08-07, gpt-5-pro-2025-10-06, o3-2025-04-16, o3-pro-2025-06-10.

Command 1 — list what this account can actually see

req = urllib.request.Request(
    "https://api.openai.com/v1/models",
    headers={"Authorization": f"Bearer {key}"},
)
ids = sorted(m["id"] for m in json.load(urllib.request.urlopen(req))["data"])

Result: 126 model IDs returned.

Presence check against the two shutdown lists:

Model ID Wave Still listed 2026-08-14
gpt-3.5-turbo-0125 1 (2026-10-23) yes
gpt-4-0613 1 yes
gpt-4-1106-preview 1 no
gpt-4-turbo 1 yes
gpt-4.1-nano 1 yes
gpt-4o-2024-05-13 1 yes
gpt-image-1 1 yes
o1-2024-12-17 1 yes
o1-pro-2025-03-19 1 yes
o3-mini-2025-01-31 1 yes
o4-mini-2025-04-16 1 yes
gpt-5-2025-08-07 2 (2026-12-11) yes
gpt-5-mini-2025-08-07 2 yes
gpt-5-nano-2025-08-07 2 yes
gpt-5-pro-2025-10-06 2 yes
o3-2025-04-16 2 yes
o3-pro-2025-06-10 2 no

Replacements gpt-5.6-sol, gpt-5.6-terra, gpt-5.6-luna, gpt-image-2 are all present. The bare string gpt-5.6 is not a valid ID on its own.

Command 2 — what do the undated aliases resolve to?

payload = {"model": "gpt-5", "input": "Reply with the single word: ok",
           "max_output_tokens": 16, "reasoning": {"effort": "low"}}
# read response["model"] from the Responses API result
Requested model model field in the response On a shutdown list?
gpt-5 gpt-5-2025-08-07 yes — 2026-12-11
gpt-5-mini gpt-5-mini-2025-08-07 yes — 2026-12-11
gpt-5-nano gpt-5-nano-2025-08-07 yes — 2026-12-11
gpt-5-pro gpt-5-pro-2025-10-06 yes — 2026-12-11
o3 o3-2025-04-16 yes — 2026-12-11
gpt-5-2025-08-07 gpt-5-2025-08-07 yes — 2026-12-11
gpt-5.6-sol gpt-5.6-sol no

All five undated aliases in the gpt-5 / o3 families resolved, on this account on this date, to exactly the dated snapshot scheduled for removal on 2026-12-11.

Requests with max_output_tokens: 16 returned status: "incomplete" on the reasoning models. That is expected at that ceiling and does not affect the resolved model ID, which was the thing under test.

Command 3 — token cost of the reasoning.mode: "pro" swap

gpt-5-pro-2025-10-06 and o3-pro-2025-06-10 are both documented as replaced by gpt-5.6-sol with reasoning.mode: pro — a parameter, not a model. Same prompt, same model ID, only the reasoning object differs:

Prompt Reasoning object input_tokens output_tokens
Reply with the single word: ok (13 tok) {"effort": "low"} 13 5
same {"mode": "pro"} 1530 30
same string repeated 20x (167 tok) {"effort": "low"} 167 5
same repeated string {"mode": "pro"} 2145 30

Observed overhead on this account: +1,517 input tokens on the short prompt and +1,978 on the longer one. Two request pairs only. This is not a benchmark and says nothing about output quality.

Command 4 — error shapes an audit script must distinguish

Requested model HTTP Error
gpt-5-2025-08-08 (does not exist) 400 model_not_found — "The requested model 'gpt-5-2025-08-08' does not exist."
o3-pro-2025-06-10 404 "Your organization must be verified to use the model o3-pro-2025-06-10."

The o3-pro failure is an entitlement message, not a deprecation message. A probe-based audit cannot tell "retired" from "not entitled on this account" from the error alone.

What failed / could not be established

  • Could not test o3-pro-2025-06-10 behaviour at all: this account is not organization-verified.
  • Cannot generalise the 126-model list beyond this account and date. /v1/models is account-scoped.
  • No latency, quality, or cost-parity comparison between any retiring snapshot and its replacement was attempted. That remains [DATA NOT AVAILABLE].
  • Fine-tuned models on retiring bases were not tested; this account holds none.
  • Alias resolution is observed behaviour on 2026-08-14, not a documented contract. OpenAI can repoint an alias at any time, which is exactly why the observation is worth re-running rather than trusting.

Read the article

This note supports the public article and records what was actually checked.

Open article →

Get the runs we publish next

One short weekly dispatch with new guides, tools, and what we actually tested. No spam, unsubscribe anytime.