models/OpenAI/O4-Mini
OpenAI

O4-Mini

text
Playground →Compare

OpenAI's fast, lightweight reasoning model optimized for multi-step problem solving at lower cost.

MODALITIES
text + vision
INPUT
$1.10 /1M
OUTPUT
$4.40 /1M
CONTEXT
200K tok
MAX OUTPUT
100K tok
USAGE
2.2B
0% market share
RELEASED
2026-05-22

O4-Mini (openai/o4-mini) is a text model from OpenAI, released 2026-05-22. Context window: 200,000 tokens; max output 100,000. Pricing via AIgateway: input $1.10/M tokens, output $4.40/M tokens. Capabilities: tools, streaming, vision, json, reasoning. Call it via https://api.aigateway.sh/v1/chat/completions with the OpenAI SDK — set model="openai/o4-mini". Best for: Chatbots, Content generation, Agentic workflows.

model · openai/o4-minifamily · o-series

Use this model

model: openai/o4-mini
curl https://api.aigateway.sh/v1/chat/completions \
  -H "Authorization: Bearer $AIGATEWAY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"openai/o4-mini","messages":[{"role":"user","content":"hello"}],"stream":true}'

Capabilities

Tool callingStreamingVisionJSON modeReasoning
CONTEXT
200,000 tok
MAX OUTPUT
100,000 tok

Strengths

  • General-purpose chat
  • Long context
  • Tool use

Use cases

ChatbotsContent generationAgentic workflows

Adoption

2.2B tokens
579.7K requests · 0% of tracked market volume
See the full leaderboard →
Aggregate usage across the open model ecosystem (as of 2026-05-30).

Pricing

Input$1.10 / 1M tokens
Output$4.40 / 1M tokens
You pay pass-through · 5% applied at credit top-up, not per-call.
Try in playground →CompareAPI referenceSee usage ranking →

Collections

More text models →More from OpenAIFrontier models →Free-tier models →
API schema

Call O4-Mini from any OpenAI SDK

POST https://api.aigateway.sh/v1/chat/completions·Content-Type: application/json·Auth: Bearer sk-aig-...
Model-specific notes
  • Returns chain-of-thought in message.reasoning_content (non-streaming) and delta.reasoning_content (streaming). Safe to display or ignore — it's separate from content.
  • Use max_completion_tokens instead of max_tokens. Our gateway accepts either and translates.

Request body

json
{
  "model": "openai/o4-mini",
  "messages": [
    { "role": "system", "content": "You are a helpful assistant." },
    { "role": "user",   "content": "Hello!" }
  ],
  "temperature": 0.7,
  "top_p": 0.95,
  "max_completion_tokens": 1024,
  "reasoning_effort": "high",   // none | low | medium | high — deeper = more thorough, more tokens
  "stream": false,
  "tools": [
    {
      "type": "function",
      "function": {
        "name": "get_weather",
        "description": "Get current weather for a city",
        "parameters": {
          "type": "object",
          "properties": {
            "city": { "type": "string" }
          },
          "required": ["city"]
        }
      }
    }
  ],
  "tool_choice": "auto",
  "parallel_tool_calls": true,
  "response_format": { "type": "json_object" }

  // For vision: messages[].content can be an array of
  //   { type: "text", text: "..." }  and
  //   { type: "image_url", image_url: { url: "https://..." } }
}

Response

json
{
  "id": "chatcmpl-abc123",
  "object": "chat.completion",
  "created": 1776947082,
  "model": "openai/o4-mini",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "Hello! How can I help you today?",
      "reasoning_content": "The user asked..."  // O4-Mini chain-of-thought,
        "tool_calls": [
          {
            "id": "call_abc123",
            "type": "function",
            "function": {
              "name": "get_weather",
              "arguments": "{\"city\":\"Tokyo\"}"
            }
          }
        ]
      },
      "finish_reason": "stop"   // or "tool_calls" when calling a function
    }
  ],
  "usage": {
    "prompt_tokens": 24,
    "completion_tokens": 12,
    "total_tokens": 36
  }
}

Streaming (SSE) — set "stream": true

// 1. Role announcement (first chunk):
data: {"choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}

// 2. Reasoning chunks (O4-Mini thinks first):
data: {"choices":[{"index":0,"delta":{"reasoning_content":"The user "},"finish_reason":null}]}
data: {"choices":[{"index":0,"delta":{"reasoning_content":"wants..."},"finish_reason":null}]}

// 3. Content chunks (final answer):
data: {"choices":[{"index":0,"delta":{"content":"Hello"},"finish_reason":null}]}
data: {"choices":[{"index":0,"delta":{"content":"!"},"finish_reason":null}]}

// Tool-call chunks (when the assistant calls a function):
data: {"choices":[{"index":0,"delta":{"tool_calls":[
  {"index":0,"id":"call_abc","type":"function",
   "function":{"name":"get_weather","arguments":""}}]},"finish_reason":null}]}
data: {"choices":[{"index":0,"delta":{"tool_calls":[
  {"index":0,"function":{"arguments":"{\"city\":"}}]},"finish_reason":null}]}
data: {"choices":[{"index":0,"delta":{"tool_calls":[
  {"index":0,"function":{"arguments":"\"Tokyo\"}"}}]},"finish_reason":null}]}
// Concat arguments fragments by index → {"city":"Tokyo"}

// Finish chunk:
data: {"choices":[{"index":0,"delta":{},"finish_reason":"stop"}]}

// Terminator:
data: [DONE]

Quickstart

# pip install aigateway-py openai
# aigateway-py adds sub-accounts, evals, replays, jobs, webhook verify.
# openai SDK covers chat — drop-in per our SDK's own guidance.
from openai import OpenAI

client = OpenAI(
    base_url="https://api.aigateway.sh/v1",
    api_key="sk-aig-...",
)

stream = client.chat.completions.create(
    model="openai/o4-mini",
    messages=[{"role": "user", "content": "Hello!"}],
    stream=True,
)
for chunk in stream:
    print(chunk.choices[0].delta.content or "", end="", flush=True)

# O4-Mini returns chain-of-thought in message.reasoning_content —
# display it in a collapsed "show thinking" UI or just ignore it.

Errors

401authentication_errorInvalid or missing API key
402insufficient_creditsWallet empty (PAYG only)
404not_foundUnknown model or endpoint
429rate_limit_errorOver per-minute limit — see Retry-After header
500server_errorUpstream provider failed (retryable)
503service_unavailableUpstream saturated (retryable)
Full docs →API reference →OpenAPI spec →llms.txt →

Frequently asked questions

What is O4-Mini?
OpenAI's fast, lightweight reasoning model optimized for multi-step problem solving at lower cost. It is a text model from OpenAI, accessible via AIgateway's OpenAI-compatible API at slug openai/o4-mini.
How much does O4-Mini cost via AIgateway?
Input costs $1.10 per 1M tokens; output costs $4.40 per 1M tokens. Pass-through plus a 5% platform fee applied at top-up, not per call.
What is the context window of O4-Mini?
200,000 tokens. Maximum output is 100,000 tokens.
How do I call O4-Mini from my code?
Point the OpenAI SDK at https://api.aigateway.sh/v1 with your AIgateway key and set model to "openai/o4-mini". The request and response shapes match OpenAI exactly.
Does O4-Mini support streaming, tool calling, vision, and JSON mode?
Streaming — yes. Tool calling — yes. Vision — yes. JSON mode — yes. Prompt caching — no.
What are the best use cases for O4-Mini?
Chatbots, Content generation, Agentic workflows. Key strengths: General-purpose chat; Long context; Tool use.
Can I bring my own OpenAI API key (BYOK)?
Yes. Attach a OpenAI key in your AIgateway dashboard and this model flips to pass-through — you pay OpenAI directly and AIgateway waives the 5% platform fee on those calls.