Alex Getmanearly AI signals

GPT-5.4

OpenAI

Released Updated
Context window
1M
1,050,000 tokens
Max output
128K
128,000 tokens
Input / Output
text, image → text

Timeline

  1. · API availability · evidence link · evidence link · evidence link
  2. · Product update · evidence link
Input / output price · USD / 1M tokens
ModelEvidence linksInput / output price
gpt-5.4
batch · long context
openai
API route unavailable
$2.50 (Input > 272,000 tokens) / $11.25 (Input > 272,000 tokens)
gpt-5.4
batch · short context
openai
API route unavailable
$1.25 (Input ≤ 272,000 tokens) / $7.50 (Input ≤ 272,000 tokens)
gpt-5.4
fast · short context
openai
API route unavailable
$5.00 (Input ≤ 272,000 tokens) / $30.00 (Input ≤ 272,000 tokens)
gpt-5.4
flex · long context
openai
API route unavailable
$2.50 (Input > 272,000 tokens) / $11.25 (Input > 272,000 tokens)
gpt-5.4
flex · short context
openai
API route unavailable
$1.25 (Input ≤ 272,000 tokens) / $7.50 (Input ≤ 272,000 tokens)
gpt-5.4
standard · long context
openai
API route unavailable
$5.00 (Input > 272,000 tokens) / $22.50 (Input > 272,000 tokens)
gpt-5.4
standard · short context
openai
API route unavailable
$2.50 (Input ≤ 272,000 tokens) / $15.00 (Input ≤ 272,000 tokens)
  1. · Evidence links · OpenAI · official articles
  2. · Confirmed use · OpenAI · official articles · Introducing GPT-5.4
  3. · Evidence links · OpenAI · official articles
    Excerpt
    GPT‑5.4 was tested with a longer, updated blocklist
  4. · Evidence links · OpenAI · official articles
    Excerpt
    GPT‑5.4 could not
  5. · Catalogue listing · GitHub · openai/openai-node · code
    Excerpt
    replacements. */ model: | 'gpt-6-astra' | 'gpt-6.1-sol' | 'gpt-6.1-terra' | 'gpt-6-sol' | 'gpt-6-luna' | 'gpt-5.6-sol' | 'gpt-5.6-terra' | 'gpt-5.6-luna' | 'gpt-5.5' | 'gpt-5.5-2026-04-23' | 'gpt-5.4' | 'gpt-5.4-mini' | 'gpt-5.4-nano' | 'gpt-5.4-mini-2026-03-17' | 'gpt-5.4-nano-2026-03-17' | 'gpt-5.3-chat-latest' | 'gpt-5.2' | 'gpt-5.2-2025-12-11' | 'gpt-5.2-chat-latest' | 'gpt-5.2-pro' | 'gpt-5.2-pro-2025-12-11' | 'gpt-5.1' | 'gpt-5.1-2025-11-13' | 'gpt-5.1-codex' | 'gpt-5.1-mini' | 'gpt-5.1-chat-latest' | 'gpt-5' | 'gpt-5-mini' | 'gpt-5-nano' | 'gpt-5-2025-08-07' | 'gpt-5-mini-2025-08-07' | 'gpt-5-nano-2025-08-07' | 'gpt-5-chat-latest' | 'gpt-4.1' | 'gpt-4.1-mini' | 'gpt-4.1-nano' | 'gpt-4.1-2025-04-14' | 'gpt-4.1-mini-
  6. · Catalogue listing · GitHub · openai/codex · code
    Excerpt
    ope fallback migration metadata // to the owning provider, since other providers may still support the same model slug. let (target_model, current_name, target_name) = match (model_provider_id, model) { (OPENAI_PROVIDER_ID, "gpt-5.4") => ("gpt-6-sol", "GPT-5.4", "GPT-6 Sol"), (AMAZON_BEDROCK_PROVIDER_ID, "openai.gpt-5.4") => ( "openai.gpt-6-sol", "GPT-5.4 on Amazon Bedrock", "GPT-6 Sol on Amazon Bedrock", ), (OPENAI_PROVIDER_ID, "gpt-5.4-mini") => ("gpt-6-luna", "GPT-5.4 Mini", "GPT-6 Luna"), _ => return None, }; let availability = if model == "openai.gpt-5.4" { "no longer offered in Codex" } else { "no longer available" }; Some(ModelUpgrade { id: target_model.to_string(), migration_config_key: model.to_string(), model_link: None,
  7. · Catalogue listing · GitHub · openai/openai-agents-python · code
    Excerpt
    eturn isinstance(model, str) and model.startswith("computer-use-preview") @classmethod def _is_ga_computer_model(cls, model: str | ChatModel | None) -> bool: return isinstance(model, str) and ( model.startswith("gpt-5.4") or model.startswith("gpt-5.5") ) @classmethod def resolve_computer_tool_model( cls, *, request_model: str | ChatModel | None, tools: Sequence[Tool] | None, ) -> str | ChatModel | None: if not cls._has_computer_tool(tools): return None return request_model @classmethod def _should_use_preview_computer_tool( cls, *, model: str | ChatModel | None, tool_choice: Literal["auto", "required", "none"] | str | MCPToolChoice | None, ) -> bool: # Choose the computer tool wire shape from the effective request m
  8. · Catalogue listing · GitHub · openai/codex · code
    Excerpt
    root.join(".mcp.json"), r#"{"mcpServers":{"repository-server":{"command":"repository-server"}}}"#, )?; std::fs::write(&global_config, "model = \"gpt-5.4\"\n")?; let home_dir = codex_home.path().display().to_string(); let mut mcp = TestAppServer::builder() .with_codex_home(codex_home.path()) .without_auto_env() .with_env_overrides(&[("HOME", Some(home_dir.as_str()))]) .build_initialized_with_timeout(DEFAULT_TIMEOUT) .awa

    This code reference does not establish a working model identifier.

  9. · Catalogue listing · GitHub · openai/codex · code
    Excerpt
    , ) .expect("in-memory metrics client") } #[test] fn extension_metrics_preserve_session_metadata_tags() { let metrics = test_metrics_client(); let session_telemetry = SessionTelemetry::new( ThreadId::new(), "gpt-5.4", "gpt-5.4", /*account_id*/ None, /*account_email*/ None, Some(TelemetryAuthMode::Chatgpt), "test_originator".to_string(), /*log_user_prompts*/ false, "tty".to_string(), SessionSource::Cli, ) .with_metrics_service_name("test_service") .with_metrics(metrics.clone()); let extension_metrics = super::extension_metrics::from_session_telemetry(session_telemetry); extension_metrics.histogram( "codex.test.extension", /*value*/ 7, &[ ("component", "skills"), ("app.version", "extension-version"), ("

    This code reference does not establish a working model identifier.

  10. · Catalogue listing · GitHub · openai/openai-agents-python · code
    Excerpt
    , history[:], False) def _strip_orphaned_assistant_ids( items: list[TResponseInputItem], ) -> list[TResponseInputItem]: """Remove ``id`` from assistant messages when their paired reasoning items are missing. Some models (e.g. gpt-5.4) return compacted output that retains assistant message IDs even after stripping the reasoning items those IDs reference. Sending these orphaned IDs back to ``responses.create`` causes a 400 error because the API expects the paired reasoning item for each assistant message ID. This function detects and removes those orphaned IDs so the compacted history can be used safely. """ if not items: return items has_reasoning = any( isinstance(item, dict) and item.get("type") == "reasoning" for item in items ) if has_reasoning: return items cleaned: list[TResponseInputIt

    This code reference does not establish a working model identifier.

  11. · Catalogue listing · GitHub · openai/openai-python · code
    Excerpt
    -sol", "gpt-6.1-terra", "gpt-6-sol", "gpt-6-luna", "gpt-5.6-sol", "gpt-5.6-terra", "gpt-5.6-luna", "gpt-5.5", "gpt-5.5-2026-04-23", "gpt-5.4", "gpt-5.4-mini", "gpt-5.4-nano", "gpt-5.4-mini-2026-03-17", "gpt-5.4-nano-2026-03-17", "gpt-5.3-chat-latest", "gpt-5.2", "gpt-5.2-2025-12-11", "gpt-5.2-chat-latest", "gpt-5.2-pro", "gpt-5.2-pro-2025-12-11", "gpt-5.1", "gpt-5.1-2025-11-13", "gpt-5.1-codex", "gpt-5.1-mini", "gpt-5.1-chat-latest", "gpt-5", "gpt-5-mini", "gpt-5-nano", "gpt-5-2025-08-07", "gpt-5-mini-2025-08-07", "gpt-5-n
  12. · Catalogue listing · GitHub · openai/openai-agents-js · code
    Excerpt
    return [...new Set([normalized, withoutPinnedDate])]; } const SANDBOX_CONTEXT_WINDOWS_1M = new Set([ 'gpt-6-astra', 'gpt-6-sol', 'gpt-6-luna', 'gpt-6.1-sol', 'gpt-5.6', 'gpt-5.6-sol', 'gpt-5.6-terra', 'gpt-5.6-luna', 'gpt-5.4', 'gpt-5.4-2026-03-05', 'gpt-5.4-pro', 'gpt-5.4-pro-2026-03-05', 'gpt-4.1', 'gpt-4.1-2025-04-14', 'gpt-4.1-mini', 'gpt-4.1-mini-2025-04-14', 'gpt-4.1-nano', 'gpt-4.1-nano-2025-04-14', ]); const SANDBOX_CONTEXT_WINDOWS_400K = new Set([ 'gpt-5', 'gpt-5-codex', 'gpt-5-mini', 'gpt-5-nano', 'gpt-5-pro', 'gpt-5.1', 'gpt-5.1-codex', 'gpt-5.1-codex-max', 'gpt-5.1-codex-mini', 'gpt-5.2', 'gpt-5.2-codex', 'gpt-5.2-codex-cyber', 'gpt-5.2-pro', 'gpt-5.3-codex', 'gpt-5.3-codex-spark', 'gpt-5.4-mini', 'gpt-5.4-nano', ]); const SANDBOX_CONTEXT_WINDOWS_200K = new Set([ 'codex-mini-latest',
  13. · Evidence links · OpenAI · Model release notes
    Excerpt
    GPT‑5.4 Thinking also has improved context window management that supports its ability to think for longer
  14. · Evidence links · OpenAI · Codex changelog
    Excerpt
    Introducing GPT-5.4 in Codex GPT-5.4 is now available in Codex as OpenAI's most capable and efficient frontier model for professional work
  15. · Evidence links · OpenAI · ChatGPT release notes
    Excerpt
    GPT‑5.4 Thinking also has improved context window management that supports its ability to think for longer
  16. · Evidence links · GitHub · openai/codex · PR
    Excerpt
    #44930 Embed friendly instructions in bundled GPT-5.4 and GPT-5.5
  17. · Alex's posts · Alex Getman
    Excerpt
    Using GPT 5.6 Luna Max, you get the power of March’s flagship GPT 5.4 xhigh for one thirteenth of its price.

Signals 2

Specifications

GPT-5.4 is a model from OpenAI, released on 5 Mar 2026. The context window is 1,050,000 tokens. The maximum output is 128,000 tokens.

Context window
1,050,000
Max output
128,000
Input
text · image
Output
text

Questions

What is the context window of GPT-5.4?

The context window is 1,050,000 tokens. The maximum output is 128,000 tokens.

When was GPT-5.4 released?

On 5 Mar 2026.