GPT-6 API Cost Explained: When Luna Is Enough and When to Pay for Astra
GPT-6 API pricing for Luna, Sol and Astra per 1M tokens, how to estimate the cost of a request, which tier fits which job, plus Python, Node and curl code.
OpenAI sells GPT-6 as three models, and their token rates are far apart: GPT-6 Luna at $0.108 / $0.54 per 1M tokens, GPT-6 Sol at $2.16 / $10.80 per 1M tokens and GPT-6 Astra at $10.80 / $54.00 per 1M tokens. On Kadraris you pay for tokens from a prepaid balance in USD. There is no plan to subscribe to and no monthly minimum. My working setup: Sol by default, Luna for volume, Astra only for the requests Sol gets wrong.
This guide starts with the cost math, then goes through the three tiers, the code, and the habits that keep the bill small.
The formula behind every GPT-6 bill
Rates are quoted per million tokens, with one rate for input and another for output. Input is everything you send: system prompt, earlier turns, attached documents. Output is what the model writes back.
cost = input_tokens / 1,000,000 * input_rate
+ output_tokens / 1,000,000 * output_rateExample to plug numbers into: send a 20K-token document and get a 2K-token answer, and you pay 0.02 times the input rate plus 0.002 times the output rate.
After each call, the response carries usage with prompt_tokens and completion_tokens. Those two numbers are what you are billed for, so log them if you want real figures instead of estimates.
Where the extra tokens come from
- Thinking tokens. All GPT-6 models reason before they answer. That reasoning is billed as output, so a hard question with a one-line answer may still cost as much as a long reply.
- Conversation history. A chat resends earlier turns every time. Message number ten pays input for messages one to nine.
- Large prompts. The window holds 1.05M tokens, which makes it easy to paste an entire repository. Every one of those tokens is charged, so send only what the task needs.
Three tiers, one family
OpenAI shipped the family in September 2026. Astra went out first, on September 3, and Sol and Luna arrived on September 22. According to OpenAI, the two smaller models were trained with methods close to Astra's so they inherit some of its gains at lower cost. Each one reads text and images and writes text.
| Model | Price per 1M (in / out) | Context / max output |
|---|---|---|
| GPT-6 Luna | $0.108 / $0.54 per 1M tokens | 1.05M / 128K |
| GPT-6 Sol | $2.16 / $10.80 per 1M tokens | 1.05M / 128K |
| GPT-6 Astra | $10.80 / $54.00 per 1M tokens | 1.05M / 128K |
The gap between Luna and Astra is about a hundredfold. At a few requests that is pocket change; at thousands of requests per day it decides whether a feature makes sense.
Luna: fast and cheap
OpenAI suggests Luna for chat, classification and light agent tasks. It shares the 1.05M context with Sol, so it can take in a long log or report in a single call. It simply reasons less deeply about what it reads.
Sol: the everyday workhorse
Sol sits in the middle. OpenAI aims it at hard work you want to run many times without flagship prices. I use it first for coding, agents that call tools, and analysis of long documents.
Astra: the flagship
OpenAI describes Astra as its strongest model overall and highlights software engineering, computer use, browsing, security, science and professional work. It earns its price where a better answer saves hours of someone's time. Porting note from OpenAI's changelog: Astra does not accept custom temperature or top_p, so remove them from older code before switching.
GPT-6.1 Sol
OpenAI released GPT-6.1 Sol on September 29 as a Sol update at the same base price. The Kadraris catalog currently lists gpt-6-sol. Check the model list or GET /v1/models?category=chat for what is live. When a new id appears, your code changes in one place: the model field.
Picking a tier for your workload
Start with the cheapest model that still does the job well, and move up only for the cases that need it.
- Luna: short and repetitive tasks. Ticket tagging, pulling fields from emails or invoices, first replies in support chat, summaries.
- Sol: tasks that need thought. Writing and debugging code, planning a migration, comparing two contracts, agents with several tools.
- Astra: the hard cases Sol fails, or work where an error costs more than the price gap. Architecture reviews, risk analysis, a final check on output from cheaper models.
The quickest way to decide is a small test on your own data. Pick 20 to 50 real examples, run them through Luna and Sol, and compare quality against cost. If Luna handles nine out of ten, it usually pays to send everything to Luna and escalate the rest to Sol. Code for running one prompt on several models is in switching LLM models in Python. For head-to-head notes see GPT-6 Sol vs GPT-6 Astra.
Code: OpenAI SDK pointed at Kadraris
Kadraris API exposes an OpenAI-compatible /v1/chat/completions. Keep the official SDK and change two things: the base URL and the key.
pip install openai
export KADRARIS_API_KEY=sk-kd-...Python:
import os
from openai import OpenAI
client = OpenAI(
base_url="https://kadraris.com/v1",
api_key=os.environ["KADRARIS_API_KEY"],
)
resp = client.chat.completions.create(
model="gpt-6-sol",
messages=[
{"role": "system", "content": "Be concise."},
{"role": "user",
"content": "Risks of moving MySQL 5.7 to 8.4?"},
],
)
print(resp.choices[0].message.content)
# billed tokens: prompt_tokens + completion_tokens
print(resp.usage)Node.js:
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://kadraris.com/v1",
apiKey: process.env.KADRARIS_API_KEY,
});
const resp = await client.chat.completions.create({
model: "gpt-6-luna",
messages: [{
role: "user",
content: "Tag this ticket: 'I cannot log in'. " +
"Options: account, billing, bug.",
}],
});
console.log(resp.choices[0].message.content);curl:
curl https://kadraris.com/v1/chat/completions \
-H "Authorization: Bearer $KADRARIS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "gpt-6-astra",
"messages": [{"role": "user",
"content": "Find gaps in this test plan."}]}'stream: true and tools behave as they do in OpenAI's own API. Details are in the chat completions docs, and the LLM API page lists the other chat models on the same key.

Topping up and protecting the balance
Chat models on Kadraris are paid per token from a prepaid balance:
- prices in USD, visible before you send a request,
- minimum top-up $10, with quick amounts of $10, $25, $50 and $100,
- no expiry, no subscription, no minimum commitment,
- a failed request costs nothing,
- one key also works for Claude, Gemini, DeepSeek and the image, video and music models.

Getting started takes three steps: create an account, add funds, and make an API key in the dashboard. Put a monthly spend limit on the key. Once a request would go over it, the API answers 403, so a runaway loop stops at the limit. I keep a separate key with a low limit just for Astra.

Five habits that lower the bill
- Send traffic by difficulty. Luna takes the bulk, Sol only what Luna misses. A small dictionary in your code maps task types to models.
- Trim the system prompt. It rides along with every call. 2K tokens of instructions across 10K daily calls adds up to 20M input tokens.
- Cap the answer. Set
max_tokens, especially when the reply should be short. - Shorten the history. Keep the last few turns and a brief summary of older ones.
- Log
usage. Work out cost from your own traffic. Table estimates rarely match production.
For cheap models beyond OpenAI, see the cheapest LLM API in 2026. For Anthropic's flagship, read Claude Opus 5.5 API pricing.
Questions
Does Astra cost more per answer even when the answer is short?
Often, yes. Its rate is much higher, and reasoning tokens count as output even if the final reply is one line. Check completion_tokens in usage to see the real size.
Can I switch from Sol to Luna without rewriting my app?
Yes. Change the model string from gpt-6-sol to gpt-6-luna. The endpoint, the SDK and the message format stay the same.
What happens if a script loops and keeps calling Astra?
If the key has a monthly limit, the API returns 403 once the next request would exceed it. That is why a separate low-limit key for expensive models is worth the minute it takes to set up.
Is there a free tier or trial credit?
No. Kadraris has no free plan or starter credit. You top up from $10, the balance does not expire, and failed requests are not charged.


























