Correction, 2026-09-02: pricing. An earlier version of this post said premium provider tokens are billed at the provider's rate with zero markup. That was not accurate: InferAll bills premium tokens at its own published per-token rates, which sit above the underlying provider cost. Current rates are on /pricing. The post has been corrected; nothing else about the models or the setup has changed.
OpenAI's reasoning model family — o1, o3, o3-mini, o4-mini — is now available through InferAll's OpenAI-compatible endpoint. Same SDK you already use, same ifu_... key.
| Model | Input | Output | Best for |
|---|---|---|---|
o3 |
$10.00/M | $40.00/M | Hardest reasoning, math proofs, complex code |
o4-mini |
$1.10/M | $4.40/M | Reasoning at lower cost — most tasks |
o3-mini |
$1.10/M | $4.40/M | Previous generation (same tier) |
o1 |
$15.00/M | $60.00/M | Deliberate reasoning, slower |
All at OpenAI's published list rates.
Quick start
Using a new key? A no-card trial key routes to the free NIM models only, so the paid model in these snippets returns a 402 until you add a card. To get a working first call right now, keep everything below and swap the model to
nvidia/nemotron-3-ultra-550b-a55b.
from openai import OpenAI
client = OpenAI(
base_url="https://api.inferall.ai/v1",
api_key="ifu_your_key_here", # get one at inferall.ai/keys
)
# o3 — for hard problems
response = client.chat.completions.create(
model="openai/o3",
messages=[
{"role": "user", "content": "Prove that there are infinitely many prime numbers."}
],
)
# o4-mini — reasoning at lower cost
response = client.chat.completions.create(
model="openai/o4-mini",
messages=[
{"role": "user", "content": "Debug this Python code: ..."}
],
)
print(response.choices[0].message.content)
The only difference from calling OpenAI directly: base_url="https://api.inferall.ai/v1". Your existing code, streaming, and tool use all work unchanged.
TypeScript
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.inferall.ai/v1",
apiKey: process.env.INFERALL_API_KEY,
});
const response = await client.chat.completions.create({
model: "openai/o4-mini",
messages: [
{ role: "user", content: "Write a SQL query to find the top 10 customers by revenue in the last 90 days." }
],
});
console.log(response.choices[0].message.content);
When to use each model
o4-mini is the default choice for most tasks that need reasoning. It's 9× cheaper than o3 and handles most real-world problems — debugging, code generation, complex queries, structured data extraction. Most teams find o3 is only necessary for research-grade proofs, very hard math, or safety-critical reasoning where maximum accuracy matters.
o3 is for the problems where o4-mini genuinely struggles — multi-step deduction, long-horizon planning, formal proofs. If you're not sure, start with o4-mini and only step up when you see it fail.
o1 is the previous generation of deliberate reasoner. o3 is significantly more capable at similar or lower cost — there's no strong reason to use o1 in new projects.
Same key for everything else
The same ifu_... key that calls o3 also routes to:
- GPT-4.1 / GPT-4.1-mini / GPT-4.1-nano
- Claude Opus 4 / Sonnet 4
- Gemini 2.5 Flash / Pro
- 10+ NVIDIA NIM open models at our open-model rate
Switch between providers by changing one string. Useful when you want to compare o4-mini vs Claude Opus 4 on a hard task, or fall back to GPT-4.1-mini for cheaper follow-up calls after o3 generates the plan.
Note on reasoning token behavior
OpenAI's o-series models think before they respond. They generate internal reasoning tokens that count toward your usage but aren't returned in the output. InferAll passes the full response through unchanged, so usage.completion_tokens includes both reasoning and output tokens as reported by OpenAI.
Sign up at inferall.ai/keys and fund a key with the $5 starter pack — usage credit you can spend on o3, o4-mini, or any other model at our published per-token rates (inferall.ai/models).