Loading
Live demos

gpt-4.1, gpt-4.1-mini and gpt-4.1-nano shut down

gpt-4.1-nano shuts down on 23 October 2026 (replacement: gpt-5.6-luna). gpt-4.1 and gpt-4.1-mini on 14 January 2027 (replacement: gpt-6-luna, cheaper than both).

Checked on

gpt-4.1 OpenAI

Shutdown date: 14 January 2027

Official replacement: gpt-6-luna

Price per million tokens (input / output): $2 / $8 → $0.10 / $0.50

What changes in your code

  • Change the name in model. If it lives in an environment variable or in an n8n, Make or Zapier setting, change it there.
  • The new models reason by default (medium): slower and more tokens. To answer like the old one, set reasoning_effort: "none" in Chat Completions or reasoning: { effort: "none" } in the Responses API.
  • If you send temperature, top_p or logprobs, keep reasoning at none: at any other level the API rejects them (per the GPT-5.4 and GPT-6 guides).
  • max_tokens is deprecated: use max_completion_tokens (or max_output_tokens in Responses). With reasoning on, that limit is spent on reasoning too: leave room.
  • Function calling in Chat Completions only works with reasoning_effort: "none". To reason and call tools together, move to the Responses API.
  • The new models don’t support the old /v1/completions endpoint or fine-tuning (each model’s page says so).

Example code

Python
from openai import OpenAI
client = OpenAI()  # reads OPENAI_API_KEY from the environment

resp = client.chat.completions.create(
    model="gpt-6-luna",              # was: "gpt-4.1"
    reasoning_effort="none",    # answers like the old one, no reasoning
    max_completion_tokens=500,  # was: max_tokens=500
    messages=[{"role": "user", "content": "Hello"}],
)
print(resp.choices[0].message.content)
Node.js
import OpenAI from "openai";
const client = new OpenAI(); // reads OPENAI_API_KEY from the environment

const resp = await client.chat.completions.create({
  model: "gpt-6-luna",             // was: "gpt-4.1"
  reasoning_effort: "none",   // answers like the old one, no reasoning
  max_completion_tokens: 500, // was: max_tokens: 500
  messages: [{ role: "user", content: "Hello" }],
});
console.log(resp.choices[0].message.content);

Sources: OpenAI · Deprecations · Upgrading to GPT-5.6 · Using GPT-6 · Chat Completions API

gpt-4.1-mini OpenAI

Shutdown date: 14 January 2027

Official replacement: gpt-6-luna

Price per million tokens (input / output): $0.40 / $1.60 → $0.10 / $0.50

Sources: OpenAI · Deprecations

gpt-4.1-nano OpenAI

Shutdown date: 23 October 2026

Official replacement: gpt-5.6-luna

Price per million tokens (input / output): $0.10 / $0.40 → $0.20 / $1.20

Sources: OpenAI · Deprecations

ft:gpt-4.1-nano OpenAI

Shutdown date: 23 October 2026

Official replacement: gpt-5.6-luna

What changes in your code

  • A fine-tuned model is switched off the same day as its base model.
  • The models OpenAI recommends instead don’t support fine-tuning (each one’s page says so): what your model learned has to move into the prompt, with examples, or into a search over your documents.
  • From 06/01/2027 not even existing fine-tuning customers can create new fine-tuning jobs.

Example code

Python
from openai import OpenAI
client = OpenAI()  # reads OPENAI_API_KEY from the environment

resp = client.chat.completions.create(
    model="gpt-5.6-luna",              # was: "ft:gpt-4.1-nano"
    reasoning_effort="none",    # answers like the old one, no reasoning
    max_completion_tokens=500,  # was: max_tokens=500
    messages=[{"role": "user", "content": "Hello"}],
)
print(resp.choices[0].message.content)
Node.js
import OpenAI from "openai";
const client = new OpenAI(); // reads OPENAI_API_KEY from the environment

const resp = await client.chat.completions.create({
  model: "gpt-5.6-luna",             // was: "ft:gpt-4.1-nano"
  reasoning_effort: "none",   // answers like the old one, no reasoning
  max_completion_tokens: 500, // was: max_tokens: 500
  messages: [{ role: "user", content: "Hello" }],
});
console.log(resp.choices[0].message.content);

Sources: OpenAI · Deprecations · OpenAI · gpt-5.6-terra

We’ll email you before your model is switched off

One email 30 days before and another 7 days before the official date, with the replacement and what changes in the code. Free, no account, no marketing.

Which models does your app use?
More models (40)

Using more than one model? Paste your code into the free checker.

Open the checker

Got a whole repository? Check it at once from the terminal, with nothing to install:

npx -y github:ericc2005t/ai-model-sunset

The code, on GitHub →

Questions

Why does nano go first?
It was in April 2026’s announcement; gpt-4.1 and gpt-4.1-mini were in 14/10/2026’s. Those are the official page’s dates.
Does gpt-5.6-luna cost more than gpt-4.1-nano?
Yes: $0.20 / $1.20 per million tokens against $0.10 / $0.40. gpt-6-luna costs $0.10 / $0.50.

Rather I fix it for you? Model swap, €79; full migration, €290–490. I reply within 24 h with a fixed price.

Ask for the fix: I reply within 24 h

No calls and nothing to pay here. Tell me what your app runs on and what breaks: I reply in writing within 24 h with a fixed price and a timeline.

What you need