Between Luna at $0.1 and Opus at $0.3, the GPT line has two intermediate tiers: gpt-5.6-terra at $0.2 and gpt-5.6-sol at $0.3. They take on tasks that Luna can no longer handle and where the flagship would be too much.
Terra: a step up from Luna
Terra costs twice what Luna does, but reasons noticeably more confidently. Reach for it when a task is a little harder than plain classification: explain a decision in a couple of sentences, merge data from several sources, process mixed input that a rigid template cannot cover. It is a model for the middle of a pipeline, where accuracy matters and multi-step logic is not needed.
Sol: the top GPT tier
Sol costs $0.3, the same as Sonnet. It is the strongest model of the GPT line on codexkey, and on price it competes directly with the Claude mid tier. People take Sol when they specifically need a GPT-family model: a different style of answer, different behavior on certain prompts, or compatibility with a pipeline already built around GPT.
Terra versus Sol: how to choose
The rule is simple: if Terra solves the task, do not overpay for Sol. Run a test set through both models and compare errors, not the overall impression of the answers. If you see no difference in quality, save the cents. If Terra keeps missing on edge cases, the $0.1 gap per million tokens pays for itself fast in fewer retries.
Sol versus Sonnet: price is not the argument
Sol and claude-sonnet-5 cost the same: $0.3 per million tokens in each direction. Choosing between them, as between Opus versions, comes down to behavior, not the bill. If your pipeline is already tuned for Claude, Sonnet's output style will feel more familiar. If you keep both families in case one provider has an outage, Sol is a sensible backup at the same price.
A working example
from anthropic import Anthropic
client = Anthropic(
api_key="sk_cdx_your_key_here",
base_url="https://api.codexkey.online",
)
message = client.messages.create(
model="gpt-5.6-sol",
max_tokens=1024,
messages=[{"role": "user", "content": "Merge these three reports into one table and flag the discrepancies."}],
)
print(message.content[0].text)
The same call over OpenAI Chat Completions differs only in the shape of the request body. The key and the base URL stay as they are.
How to mix models in one pipeline
Nothing stops you from putting Terra on preprocessing and Sol on the step that needs a better answer. One key works across the whole line and both API formats live on one endpoint, so changing the model comes down to editing one line in a config and does not need a new integration.
An example: Terra first filters the incoming stream and drops the obvious junk, then Sol works through the remainder and writes a full answer. The first step has high volume and price matters. The second has lower volume, and accuracy matters instead.
Comparing on your own task
The calculator on the site works out the difference in the bill between Terra, Sol and Sonnet at your volumes. The per-key statistics show which model actually eats the budget in production, as opposed to a test run.
In short
Terra fits the middle of a pipeline, where you need accuracy without deep reasoning. Sol is for tasks a class higher, and it costs the same as Sonnet. Between Sol and Sonnet, choose by the model's behavior and not by money: the price is identical.