o3-mini
o3-mini is a cost-efficient reasoning model in the o3 family, delivering strong chain-of-thought performance on math, code, and science at a fraction of full o3's cost, with configurable reasoning effort for flexible cost-quality tradeoffs.
View API reference- Input and output price
- Prices from: Input $1.10, Output $4.40, Per 1M tokens
- 24h uptime
- Loading AI Gateway uptime
import { streamText } from 'ai'
const result = streamText({ model: 'openai/o3-mini', prompt: 'Why is the sky blue?'})Copy link to headingPlayground
Try out o3-mini by OpenAI. Usage is billed to your team at API rates. Free users (those who haven't made a payment) get $5 of credits every 30 days.
o3-mini
Copy link to headingProviders
Route requests across multiple providers. Copy a provider slug to set your preference. Visit the docs for more info. Using a provider means you agree to their terms, listed under Legal.
| Provider |
|---|
Copy link to headingUptime24 hours
Direct request success rate on AI Gateway and per-provider. Visit the docs for more info.
Copy link to headingThroughput24 hours
P50 throughput on live AI Gateway traffic, in tokens per second (TPS). Visit the docs for more info.
Copy link to headingLatency24 hours
P50 time to first token (TTFT) on live AI Gateway traffic, in milliseconds. View the docs for more info.
Getting started
Call o3-mini through AI Gateway with the AI SDK generateText and streamText functions, or through the OpenAI Chat Completions, OpenAI Responses, and Anthropic Messages APIs by changing the base URL. AI Gateway authenticates the request and routes it to an available provider.
Install the AI SDK (pnpm add ai dotenv), create an API key from the API Keys page, and set it as AI_GATEWAY_API_KEY in your environment. Full setup is covered in the text generation quickstart.
import { generateText } from 'ai';import 'dotenv/config';
async function main() { const result = await generateText({ model: 'openai/o3-mini', prompt: 'Why is the sky blue?', });
console.log(result.text);}
main().catch(console.error);Top-level parameters
The same o3-mini request in each API format AI Gateway supports.
import { generateText } from 'ai';import 'dotenv/config';
async function main() { const result = await generateText({ model: 'openai/o3-mini', system: 'You are a concise technical assistant.', prompt: 'Summarize the tradeoffs between static generation and SSR.', maxOutputTokens: 1024, });
console.log(result.text);}
main().catch(console.error);Standard parameters like prompt, messages, temperature, and tools work as documented in the AI SDK docs. These are the parameters with model-specific behavior.
| Parameter | Type | Required | Description |
|---|---|---|---|
model | string | Yes | Model ID in the form creator/model, e.g. openai/o3-mini. AI Gateway routes the request to an available provider. |
maxOutputTokens | number | No | Hard cap on generated tokens. o3-mini supports up to 100,000 output tokens. Reasoning tokens count toward this limit. |
reasoning | 'provider-default' | 'none' | 'minimal' | 'low' | 'medium' | 'high' | 'xhigh' | No | Provider-agnostic reasoning effort, available in AI SDK 7 or later. Maps to the provider’s native reasoning configuration; reasoning settings under providerOptions take precedence when both are set. See the Reasoning section below. |
providerOptions | Record<string, JSONValue> | No | AI Gateway routing options under gateway, plus any provider-native options under the provider’s own namespace — see the table below. |
Input limits
| Input | Formats | Sources | Max count | Max size | Limits |
|---|---|---|---|---|---|
| Text | — | — | — | — | Prompt and response share the 200K-token context window |
Provider options
Set AI Gateway routing options under providerOptions.gateway. For provider-specific options, pass them under the provider’s namespace as documented by the AI SDK.
Learn more in the AI SDK openai provider docs.
import { generateText } from 'ai';import 'dotenv/config';
async function main() { const result = await generateText({ model: 'openai/o3-mini', prompt: 'Why is the sky blue?', providerOptions: { gateway: { only: ['azure', 'openai'], }, }, });
console.log(result.text);}
main().catch(console.error);These AI Gateway routing options apply to every model. Provider-specific options pass through under the provider’s own namespace (for example providerOptions.anthropic) exactly as documented by the AI SDK.
| Parameter | Type | Required | Description |
|---|---|---|---|
providerOptions.gateway.only | string[] | No | Restrict routing to these provider slugs. Requests fail over only within the listed providers. |
providerOptions.gateway.order | string[] | No | Preferred provider order. Listed providers are tried first; unlisted providers remain available as fallbacks. |
providerOptions.gateway.sort | 'cost' | 'ttft' | 'tps' | No | Rank candidate providers by price, time to first token, or tokens per second instead of the default routing order. |
providerOptions.gateway.zeroDataRetention | boolean | No | Route only to providers with a zero-data-retention policy for this model. |
Routing across providers
AI Gateway serves the same model through multiple providers and fails over automatically. order expresses a preference while keeping every provider eligible; only is a hard allowlist — if none of the listed providers are available the request fails instead of falling back.
Options under a provider's own namespace (for example providerOptions.anthropic) are forwarded to that provider with the request. Providers ignore option namespaces that don't apply to them, so it is safe to set provider options alongside gateway routing options.
Reasoning
AI Gateway bridges reasoning across every API format. The AI SDK exposes a provider-agnostic top-level reasoning level (none, minimal, low, medium, high, or xhigh); the Chat Completions and Responses formats take the same effort under reasoning.effort; and the Anthropic Messages format uses a native thinking token budget. Whichever you send, the gateway maps it to the target model’s native configuration, converting between effort levels and token budgets as needed. Reasoning-related settings under providerOptions take full precedence over the top-level reasoning value and are never merged. Reasoning tokens typically count toward your output-token usage, though how they’re reported and billed varies by provider.
Learn more in the AI Gateway reasoning guide.
import { generateText } from 'ai';import 'dotenv/config';
async function main() { const result = await generateText({ model: 'openai/o3-mini', prompt: 'Explain the Monty Hall problem step by step.', reasoning: 'high', });
console.log(result.text);}
main().catch(console.error);Tool calling
Expose tools the model can call. Define each tool’s inputs with a Zod schema.
import { generateText, tool } from 'ai';import { z } from 'zod';import 'dotenv/config';
async function main() { const result = await generateText({ model: 'openai/o3-mini', prompt: 'What is the weather in San Francisco?', tools: { getWeather: tool({ description: 'Get the current weather for a location', inputSchema: z.object({ location: z.string() }), execute: async ({ location }) => ({ location, temperatureC: 18 }), }), }, });
console.log(result.text);}
main().catch(console.error);Copy link to headingAbout o3-mini
o3-mini was released on January 31, 2025 as the cost-efficient tier of the o3 reasoning model family. It continues the pattern established by o1-mini: delivering strong chain-of-thought reasoning on structured domains (mathematics, coding, science) at a fraction of the full model's cost.
The model supports the reasoning_effort parameter, letting you control reasoning depth per request. Low effort for straightforward technical queries conserves tokens and reduces cost; high effort for competition-level problems applies the full reasoning capability. This flexibility lets you use o3-mini as the default for all technical queries rather than maintaining a routing layer.
With a context window of 200K tokens and support for the standard API features, o3-mini handles the same types of requests as full o3. The tradeoff is concentrated in reasoning depth: on the hardest problems, full o3 will produce more thorough analysis.
Copy link to headingWhat To Consider When Choosing a Provider
- Configuration: o3-mini makes chain-of-thought reasoning affordable enough to run on every request rather than reserving it for the hardest problems. The
reasoning_effortparameter enables further cost optimization. - Configuration: Like o1-mini before it, o3-mini concentrates its reasoning capability on structured problem domains rather than broad general knowledge.
- Zero Data Retention: Zero Data Retention is available for this model. It is offered on a per-provider and model basis. See the documentation for details.
- Authentication: AI Gateway authenticates requests using an API key or OIDC token. You do not need to manage provider credentials directly.
Copy link to headingWhen to Use o3-mini
Best for
- Math and science reasoning: Competition-level problems, derivations, and quantitative analysis at accessible cost
- Code reasoning: Algorithm analysis, debugging, and optimization with step-by-step deliberation
- High-frequency reasoning pipelines: Per-request chain-of-thought on technical workloads at scale
- Education platforms: Tutoring and problem-solving assistance with visible reasoning steps
- Cost-optimized reasoning: Tasks that benefit from deliberation but don't justify full o3 pricing
Consider alternatives when
- Maximum reasoning quality: Full o3 for the hardest problems where every increment of accuracy matters
- Broader knowledge needed: Full o3 or GPT-5 for tasks requiring wide-ranging factual recall
- Fastest reasoning: O4-mini for a newer cost-efficient reasoning option with vision support
- General-purpose tasks: GPT-5 mini for workloads that don't benefit from chain-of-thought
Copy link to headingConclusion
o3-mini makes chain-of-thought reasoning broadly accessible by bringing o3-family performance to a cost tier that scales. For technical workloads on AI Gateway where per-request reasoning is desirable but full o3 pricing is not, it provides the right balance.
Copy link to headingFrequently Asked Questions
How does o3-mini compare to o1-mini?
o3-mini is the next generation of cost-efficient reasoning, delivering stronger performance on key benchmarks while maintaining the affordability that makes per-request reasoning practical.
Does o3-mini support the
reasoning_effortparameter?Yes. You can control reasoning depth per request, enabling cost optimization across mixed-difficulty workloads.
What context window does o3-mini support?
200K tokens, matching the o3 family.
When should I use full o3 instead?
When the hardest problems require maximum reasoning depth and the quality gap between mini and full is consequential for your application.
How does AI Gateway handle authentication for o3-mini?
AI Gateway accepts a single API key or OIDC token for all requests. You don't embed OpenAI credentials in your application; AI Gateway routes and authenticates on your behalf.
What are typical latency characteristics?
This page shows live throughput and time-to-first-token metrics measured across real AI Gateway traffic.