o3 — price, context and performance

o3 is a OpenAI model with a 200K context window supporting Reasoning, Tools, Files, Vision. Input $2.00, output $8.00 per 1M tokens.

Overview

VendorOpenAI
Context200K
CapabilitiesReasoning, Tools, Files, Vision
API formatsopenai, openai-response, openai-response-compact, anthropic, gemini, openai-alpha-search
Billing formulap * 2 + cr * 0.5 + c * 8
Deliberate o-series reasoner for hard math, coding, and multi-step analysis

Pricing

PlanMultiplierInputOutputCached inputNote
Base price1×$2.00$8.00$0.50
Eco0.3×$0.60$2.40$0.15Standard — standard reasoning, moderate stability.
default0.6×$1.20$4.80$0.30Standard — standard reasoning, moderate stability.
Plus1×$2.00$8.00$0.50High — strong reasoning, stable.
Pro2×$4.00$16.00$1.00Enterprise — full reasoning, high stability.
Max4×$8.00$32.00$2.00Premium — max reasoning & stability.

Only groups enabled for this model are listed.

Performance

API endpointhttps://api.airai.cc/v1
OpenAI-compatibleOpenAI-compatible

FAQ

How much does o3 cost?
Input $2.00, output $8.00 per 1M tokens.
What is the context window of o3?
o3 has a 200K context window: the combined token limit for input and output in a single request.
How do I call o3 from code?
Point base_url to https://api.airai.cc/v1 and set model to o3. The API is fully OpenAI compatible.
Why does o3 return error 429?
429 is a rate limit response. Lower your concurrency, retry with backoff, or switch to a plan with a larger quota.

Model comparison

ModelVendorInputOutputContext
o3OpenAI$2.00$8.00200K
gpt-5.1-2025-11-13OpenAI$1.25$10.00not specified
gpt-3.5-turbo-instructOpenAI$1.50$2.00not specified
gpt-5.4-mini-2026-03-17OpenAI$0.75$4.50not specified
gpt-4o-miniOpenAI$0.15$0.60128K
gpt-5.3-codex-sparkOpenAI$1.75$14.00128K
gpt-4o-mini-2024-07-18OpenAI$0.15$0.60not specified
gpt-4.1-mini-2025-04-14OpenAI$0.40$1.60not specified
gpt-image-2OpenAI$5.00$30.00not specified
gpt-3.5-turbo-1106OpenAI$1.00$2.00not specified
gpt-4-1106-previewOpenAI$10.00$30.00not specified
gpt-6-solOpenAI$2.00$10.00not specified
text-embedding-ada-002OpenAI$0.10—8.2K

Troubleshooting

429 is a rate limit response. Lower your concurrency, retry with backoff, or switch to a plan with a larger quota.

Common causes

  • Too many concurrent requests
  • Quota of the current plan exhausted
  • Retrying immediately without backoff

How to fix

  • Limit concurrency and retry with exponential backoff
  • Switch to a plan with a larger quota
  • Cache repeated requests

How to connect

curl https://api.airai.cc/v1/chat/completions \
  -H "Authorization: Bearer <YOUR_API_KEY>" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "o3",
    "messages": [{"role": "user", "content": "Hello"}]
  }'
from openai import OpenAI

client = OpenAI(
    api_key="<YOUR_API_KEY>",
    base_url="https://api.airai.cc/v1"
)

response = client.chat.completions.create(
    model="o3",
    messages=[{"role": "user", "content": "Hello"}]
)
print(response.choices[0].message.content)
import OpenAI from "openai";

const client = new OpenAI({
  apiKey: "<YOUR_API_KEY>",
  baseURL: "https://api.airai.cc/v1"
});

const response = await client.chat.completions.create({
  model: "o3",
  messages: [{ role: "user", content: "Hello" }]
});
console.log(response.choices[0].message.content);
const OpenAI = require("openai");

const client = new OpenAI({
  apiKey: "<YOUR_API_KEY>",
  baseURL: "https://api.airai.cc/v1"
});

client.chat.completions.create({
  model: "o3",
  messages: [{ role: "user", content: "Hello" }]
}).then((r) => console.log(r.choices[0].message.content));

Replace <YOUR_API_KEY> with the API Key from your token settings.

Compatible endpoints

openaiopenai-responseopenai-response-compactanthropicgeminiopenai-alpha-search

Gemini SDK · TypeScript

import { GoogleGenerativeAI } from "@google/generative-ai";

const genAI = new GoogleGenerativeAI("<YOUR_API_KEY>");
const model = genAI.getGenerativeModel({ model: "o3" });

const result = await model.generateContent(
  "Explain quantum entanglement in one paragraph."
);
console.log(result.response.text());

Authentication

All requests must include the Authorization: Bearer <TOKEN> header. Anthropic-format endpoints also accept the x-api-key header. Generate your API Key on the Tokens page, where you can scope access by model, group, IP, and rate limits.

Supported parameters

ParameterTypeDefaultRangeDescription
temperaturefloat10–2Sampling temperature; lower is more stable
top_pfloat10–1Nucleus sampling cumulative probability
max_tokensinteger——Maximum tokens in the response
frequency_penaltyfloat0−2–2Penalizes repeated high-frequency tokens
presence_penaltyfloat0−2–2Encourages introducing new topics
stopstring[]null≤ 4Up to 4 strings that stop generation
seedintegernull—Seed for more reproducible sampling
ninteger1—Number of candidate completions
streambooleanfalse—Stream tokens via SSE
response_formatobject——Force JSON output or schema-conformant results
toolsarray——Function/tool declarations the model can call
tool_choicestring | objectauto—Tool selection strategy or specific tool name
logprobsbooleanfalse—Return log probabilities for each token
top_logprobsintegernull0–20Number of top probabilities returned per token
logit_biasmap——Logit bias mapping per token
userstring——End-user identifier for risk auditing

Rate limits

TierRPMTPMRPD
Eco990398K20K
Test980393K20K

Data updated: 2026-10-10 15:55

Technical SupportLive Support
Back to Top