OpenAI models and capabilities

OpenAI’s model line in 2026 has three families on the platform API: the GPT generative line (GPT-5 / GPT-5-mini / GPT-5-nano + GPT-4o / GPT-4o-mini as workhorses, GPT-4 Turbo / GPT-3.5 as legacy), the o-series reasoning line (o3 / o3-mini / o4-mini / o1 / o1-pro — extended thinking by default; higher latency, higher quality on hard problems), and the specialty models (embeddings, Whisper, TTS, DALL-E 3 / gpt-image-1 for vision generation). The model-selection question is fundamentally tier (frontier vs cheap), reasoning depth (use the o-series only when you need it; reasoning tokens are billed and slow), and modality (Realtime for voice, gpt-image-1 for images, Whisper for transcription). The biggest 2025 change was GPT-5 taking over as default frontier model; the biggest API-surface change was the Responses API becoming the primary endpoint with Chat Completions still supported but no longer the default in new docs.

See also

1. GPT-5 family (current frontier, 2025-2026 release)

Per OpenAI announcements + platform.openai.com/docs/models as cross-referenced via developers.openai.com. GPT-5 launched in 2025 as the successor to GPT-4o; the family follows a similar three-tier shape.

FeatureGPT-5GPT-5-miniGPT-5-nano
API ID (alias)gpt-5gpt-5-minigpt-5-nano
Pinned snapshotgpt-5-2025-XX-XX (date varies)gpt-5-mini-2025-XX-XXgpt-5-nano-2025-XX-XX
Approximate input price (USD / MTok)~$2.50 - $5~$0.25 - $0.50~$0.05 - $0.10
Approximate output price (USD / MTok)~$10 - $15~$1 - $2~$0.40 - $0.80
Context window128k - 256k tokens (observed 200k typical)128k+128k+
Modalitiestext + image (multimodal)text + imagetext
Vision supportYesYesLimited
Audio in/outvia Realtime (gpt-realtime)via Realtimen/a
Tokenizero200k_base (cl100k_base predecessor)o200k_baseo200k_base
Use caseFrontier coding, reasoning, complex agenticHigh-throughput production defaultCheap classification / extraction

Status note: pricing for GPT-5 has shifted multiple times during 2025-2026. The ranges above are observed; verify current rates on the live pricing page before committing budget. The dateless aliases (gpt-5, gpt-5-mini, gpt-5-nano) resolve to the latest pinned snapshot — pin to the dated ID for stability.

2. GPT-4o family (still production-ready)

The GPT-4o (“omni”) line was the dominant production default from 2024 into 2025 — still fully supported through 2026 and many teams remain on it for cost / stability reasons.

FeatureGPT-4oGPT-4o-miniGPT-4o-realtime
API IDgpt-4ogpt-4o-minigpt-4o-realtime-preview
Pinned snapshotgpt-4o-2024-11-20 (and several others)gpt-4o-mini-2024-07-18gpt-4o-realtime-preview-2024-12-17
Input price (USD / MTok)$2.50$0.15$5 text / $100 audio
Output price (USD / MTok)$10.00$0.60$20 text / $200 audio
Cached input discount50 % (e.g. $1.25 / MTok cached)50 %50 %
Context window128k tokens128k tokens128k tokens
Max output16,384 tokens (gpt-4o) / 16,384 (gpt-4o-mini)samesame
Modalities (input)text + imagetext + imagetext + image + audio
Modalities (output)text + (audio via Realtime)texttext + audio (real-time)
Knowledge cutoffOct 2023Oct 2023Oct 2023
Tokenizero200k_baseo200k_baseo200k_base

Pricing snapshot from platform.openai.com/docs/pricing reference:

  • GPT-4o: $2.50 input / $10.00 output / $1.25 cached input — solid workhorse
  • GPT-4o-mini: $0.15 input / $0.60 output / $0.075 cached input — best price/performance until GPT-5-mini

3. o-series reasoning models

Models that think before answering — internal chain-of-thought tokens (billed as output) precede the visible response. Generally higher latency, much higher quality on hard problems (competition math, code generation, scientific reasoning).

Featureo3o3-minio4-minio1o1-pro
API IDo3o3-minio4-minio1o1-pro
StatusLatest reasoning frontierCheap-tier reasoningHybrid reasoning + speedOriginal reasoning modelHigher-compute o1 variant
Input price (USD / MTok)~$15 (premium)~$1.10~$3~$15~$150
Output price (USD / MTok)~$60~$4.40~$12~$60~$600
Context window200k+200k+200k+200k200k
Max output (incl. reasoning tokens)100k100k100k32k (lower)100k
reasoning.effort paramlow / medium / highsamesamelow / medium / high(preset high)
Tool supportYes (function calling)YesYesLimited (no streaming)Limited
VisionYesLimitedYesNoNo
Stream outputYesYesYesNo (response delivered atomic)No
System messagesTreated as developer messagessamesamesamesame

Key parameter — reasoning.effort: controls how much the model “thinks” before answering. low is roughly 1k reasoning tokens; high can be 20k+. Billing includes reasoning tokens as output, so high-effort o3 calls can cost surprisingly much — a “simple” question on o3 with effort=high can produce $1+ of reasoning tokens before the visible answer.

When to use o-series:

  • Hard math problems where GPT-5 / GPT-4o gets it wrong
  • Code generation requiring multi-step reasoning
  • Scientific Q&A demanding multi-hop logic
  • Complex agent planning where one big think beats many small calls

When NOT to use o-series:

  • Chat / dialog (high latency degrades UX)
  • Streaming UX where partial output matters (o1 doesn’t stream)
  • Simple extraction / classification (waste of reasoning tokens)
  • Tool-heavy workflows (the model can reason → call tool → reason → ... but it’s expensive)

4. Legacy models

FeatureGPT-4 TurboGPT-4GPT-3.5 Turbo
API IDgpt-4-turbogpt-4gpt-3.5-turbo
StatusStill callable, deprecatingDeprecatedDeprecated (still GA but discouraged)
Input / Output (USD / MTok)$10 / $30$30 / $60$0.50 / $1.50
Context window128k8k - 32k16k
Modalitiestext + image (Turbo Vision)texttext

Migrate GPT-4 / GPT-4 Turbo → GPT-4o / GPT-5; migrate GPT-3.5 → GPT-4o-mini / GPT-5-nano. Per OpenAI deprecations, legacy IDs continue to work but new builds should target current generation.

5. Embedding models

Per platform.openai.com/docs/guides/embeddings:

ModelDefault dimsMax input tokensPrice (USD / MTok)Notes
text-embedding-3-large3,0728,191$0.13Truncatable to smaller dims via dimensions param
text-embedding-3-small1,5368,191$0.02Default for most workloads; very cheap
text-embedding-ada-002 (legacy)1,5368,191$0.10Older; use only for back-compat

text-embedding-3-* supports the dimensions parameter for Matryoshka truncation — smaller dim → less storage / faster ANN at minor quality loss.

client.embeddings.create(
    model="text-embedding-3-large",
    input=["chunk 1", "chunk 2"],
    dimensions=1024,           # truncate to 1024 from the natural 3072
)

6. Audio models

ModelPurposePriceNotes
whisper-1Speech-to-text (ASR)$0.006 / minuteTranslation also available
gpt-4o-transcribeTranscription via GPT-4ovariesHigher quality than Whisper for some languages
gpt-4o-mini-transcribeCheap transcriptionvaries
tts-1Text-to-speech (standard)$15 / 1M chars6 built-in voices
tts-1-hdText-to-speech (HD quality)$30 / 1M charsSame voices, better quality
gpt-4o-ttsTTS via GPT-4ovariesMore expressive, longer-context

TTS voices: alloy, echo, fable, onyx, nova, shimmer — plus newer voices like ash, coral, sage, verse (varies by model). Choose per-call.

7. Image models

ModelPurposePricingNotes
dall-e-3Image generation$0.040 - $0.080 per image (size / quality)Larger sizes + HD more expensive
gpt-image-1Newer image gen (multi-input editing)variesNative image input + edit; more controllable
dall-e-2 (legacy)Image generationcheaperLower quality, used for variations

DALL-E 3 sizes: 1024x1024, 1024x1792, 1792x1024. Quality: standard or hd. Style: vivid or natural.

img = client.images.generate(
    model="dall-e-3",
    prompt="A cat astronaut on the moon.",
    size="1024x1024",
    quality="hd",
    style="vivid",
    n=1,
)
print(img.data[0].url)

8. Pricing details beyond per-token

Batch API

50 % discount on input + output via the Batch API. 24-hour SLA. See batch-and-fine-tuning-openai.

Automatic prompt caching

50 % discount on cached input tokens for any prompt ≥ 1,024 tokens. Automatic — no breakpoints. 5-10 minute cache window. See prompt-caching-openai.

Realtime API

Separate pricing — typically higher per-token for audio. See realtime-api-openai.

Fine-tuning

OperationCost
Training (gpt-4o-mini)~$3 / 1M training tokens
Training (gpt-3.5-turbo)~$8 / 1M training tokens
Inference (fine-tuned model)Premium over base — varies per model
Reinforcement fine-tuning (RFT)Preview pricing

See batch-and-fine-tuning-openai.

Hosted-tool surcharges (Responses API)

  • file_search — small per-storage-day fee on vector store; per-search call cost
  • web_search_preview — per-search fee
  • computer_use_preview — premium per-token rate
  • code_interpreter — per-container-hour rate

Exact rates change frequently; check current pricing page.

9. Programmatic model discovery

from openai import OpenAI
client = OpenAI()
for m in client.models.list():
    print(m.id, m.created, m.owned_by)

The list endpoint returns active models for your account. Note: model IDs in the list are pinned snapshots and aliases — gpt-5 and gpt-5-2025-XX-XX both appear when both are available. Filter accordingly.

10. Capability flags by model

10.1 Tool / function calling

Almost universal across current models. Notable exceptions:

  • o1 — limited tool support (no streaming with tools)
  • o1-pro — same
  • Embedding / Audio / Image models — no tools (they’re not chat models)

10.2 Vision input

ModelVisionNotes
GPT-5 familyMultimodal native
GPT-4o familyMultimodal native
o3 / o4-miniYes (later additions)
o3-miniLimited / no
o1 / o1-proText-only
GPT-4-turboVision GA
GPT-3.5Text-only

detail: "low" reduces image cost to a flat ~85 tokens; detail: "high" adds tiles. See vision-and-multimodal-openai.

10.3 Structured outputs (strict JSON schema)

Modelresponse_format: json_schema strict
GPT-5 family
GPT-4o family✅ (gpt-4o-2024-08-06 and later)
o3 / o4-mini
o1✅ (later snapshots)
Older GPT-4 / GPT-3.5❌ — use response_format: json_object (loose JSON mode)

See structured-outputs-openai.

10.4 Prompt caching

Automatic for all current chat models when prompt ≥ 1,024 tokens. No opt-in. See prompt-caching-openai.

10.5 Parallel tool calls

Supported on all current chat models. Set parallel_tool_calls=False to force serial. o-series models may execute serially under the hood even with the flag on (reasoning step happens once, all tool calls picked together).

11. Tokenizer reference

Model familyTokenizerUse in tiktoken
GPT-5 familyo200k_basetiktoken.encoding_for_model("gpt-5")
GPT-4o familyo200k_basetiktoken.encoding_for_model("gpt-4o")
o-serieso200k_basetiktoken.encoding_for_model("o1")
GPT-4 / GPT-4-turbocl100k_basetiktoken.encoding_for_model("gpt-4")
GPT-3.5cl100k_basetiktoken.encoding_for_model("gpt-3.5-turbo")
text-embedding-3-*cl100k_baseSame

The o200k_base switch matters for cost estimation — same English text often tokenizes ~10 % shorter on o200k_base than cl100k_base. Don’t reuse old token-count math when migrating from GPT-4-turbo to GPT-4o or GPT-5.

12. Endpoint types (cloud providers)

SurfaceHostnameAuth
OpenAI Platformapi.openai.comAPI key
Azure OpenAI<resource>.openai.azure.comAzure AD / managed identity / API key
Workload Identity (cloud-native)SameShort-lived tokens from K8s / Azure / GCP service accounts

Azure OpenAI uses different model IDs (deployment names) but the same API shape via AzureOpenAI client. See openai-api-and-sdks.

13. Benchmark snapshot

Per OpenAI launch posts + developer blog. Treat as directional.

BenchmarkGPT-5GPT-4oo3o3-miniNotes
MMLUmid 90slow 90shigh 90smid 90sKnowledge breadth
GPQA Diamondmid 80shigh 50shigh 80shigh 70sGraduate STEM (o-series shine)
AIME 2024 (math)high 80slow 20smid 90smid 80so-series specialty
SWE-bench VerifiedstrongmidstrongstrongCoding
HumanEvalsaturated (~95+)high 80smid 90slow 90sSaturated; rarely cited

Per OpenAI engineering posts 2025-Q4. The o-series numbers on AIME and GPQA are the headline — reasoning models materially outperform regular GPT-5/4o on hard math + science.

14. Versioning convention

OpenAI’s model IDs follow <base>[-<minor>]-<YYYY-MM-DD>:

  • gpt-4o-2024-11-20 — pinned snapshot
  • gpt-4o — alias resolving to the latest pinned snapshot
  • gpt-4o-mini — alias
  • gpt-4o-mini-2024-07-18 — pinned

For production, always pin to the dated ID. Aliases silently advance to new snapshots when OpenAI ships an update — behavior can change underneath you.

For Azure OpenAI, you bind a deployment name to a model version at deploy time; the deployment name is what you call in the API.

15. Further reading