OpenAI
GPT-6 Luna
openai/gpt-6-luna
The fast, cost-efficient model in OpenAI's GPT-6 series, suited to high-volume and latency-sensitive workloads such as chat, classification, and lightweight agentic tasks.
RoleThe in-app chat and classifier
$0.100
In / M
$0.500
Out / M
1.1M
Context
- AA intelligence index
- 27.9
- Inputs
- file, image, text
- Outputs
- text
- Tools
- Listed
- Structured output
- Listed
- Reasoning
- Listed
- Weights
- Not verified
- Listed
- Sep 22, 2026
01 · What it's good at
Use it for this.
Three jobs this model is built for, and the ones to give to something else.
01
In-app chat where latency matters
02
Classification and tagging at volume
03
Lightweight agents with one or two tools
Skip it for
- Calibrated probabilities. OpenAI also lists GPT-6 Luna Decisions for that
02 · Example tasks
What you'd actually send it.
Real inputs, not a benchmark. Paste one into the snippet below to try it.
You send
You are the help assistant for a budgeting app. Answer in under 80 words and link the right settings page.
Why this model
Chat and latency-sensitive workloads lead the listing.
03 · Your stack
Where it sits: Do the volume.
Put it at the front of your product: the chat box, the auto-tagger, the first responder. Hand off to Sol when a request is hard.
Layer 01
Retrieve
Layer 02
Plan & reason
Layer 03 · this model
Do the volume
Layer 04
Gate & route
Layer 05
Draw, speak, listen
04 · Wire it up
One request. Paste and run.
Uses OpenRouter, so one key works for every model on this site. Set OPENROUTER_API_KEY and swap the prompt for one of the tasks above.
// OpenRouter speaks the OpenAI Chat Completions format.
const res = await fetch("https://openrouter.ai/api/v1/chat/completions", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.OPENROUTER_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"model": "openai/gpt-6-luna",
"messages": [
{
"role": "system",
"content": "You are the help assistant for a budgeting app. Answer in under 80 words."
},
{
"role": "user",
"content": "How do I split a transaction between two categories?"
}
],
"reasoning": {
"effort": "none"
}
}),
});
const data = await res.json();
console.log(data.choices[0].message.content);
05 · Watch out for
Gotchas.
Reasoning can be set to
nonefor the lowest latency.Batch pricing is listed separately for offline jobs.
Sources
Lessons are written from each model's listing and the linked docs. We don't publish our own benchmark numbers; the index above is Artificial Analysis, as shown on OpenRouter.
Keep learning