GPT-5.6 Terra, Sol, and Luna: how they differ and when to use which
Similarly named models with no stated difference. Here's how to find out in a couple of requests which one fits your workload.
4 min · · Updated · models
Update, October 2026. GPT-5.6 Terra (
gpt-5.6-terra) is currently unavailable in Zukko. Current model list: the Models page orGET https://api.zukko.pro/v1/models. Closest replacement:gpt-5.6-sol.
The GPT-5.6 line in the catalog had three ids: gpt-5.6-terra, gpt-5.6-sol, and gpt-5.6-luna; gpt-5.6-sol and gpt-5.6-luna are available now. These are OpenAI-compatible models with extended thinking and a 1,000,000-token context window (not every model in the catalog is like that: GLM has 128K and no vision). The catalog doesn't publish a spec sheet spelling out how they differ in quality or speed, and guessing from the names — Terra, Sol, Luna — is a bad strategy: a name guarantees nothing about a model's size or behavior.
What you can learn without spending a token
Before comparing models on real requests, it's worth checking price and limits first — no key required:
curl https://api.zukko.pro/v1/models/info | jq '.data[] | select(.id | startswith("gpt-5.6"))'/v1/models/info returns extended details: limits and pricing per model. If the per-token price of the variants differs noticeably (Sol is $0.30, Luna $0.10 per 1M tokens), that's already a practical signal — the pricier model in a line is usually meant for harder tasks, the cheaper one for volume.
A plain list confirming the models exist, without the details, is even simpler:
curl https://api.zukko.pro/v1/modelsComparing on the same request
The most honest way to see the difference is to run an identical prompt through the available models in the line and compare not just the text but the headers that come back with it.
import requests
KEY = "fetch_your_key"
PROMPT = "Explain the difference between optimistic locking and pessimistic locking using an account balance update as an example"
for model in ["gpt-5.6-sol", "gpt-5.6-luna"]:
resp = requests.post(
"https://api.zukko.pro/v1/chat/completions",
headers={"Authorization": f"Bearer {KEY}"},
json={
"model": model,
"messages": [{"role": "user", "content": PROMPT}],
"max_tokens": 600,
},
timeout=120,
)
cost = resp.headers.get("X-Zukko-Cost-Micros")
print(model, "cost_micros=", cost, "len=", len(resp.json()["choices"][0]["message"]["content"]))X-Zukko-Cost-Micros shows the cost of that specific request in micro-dollars — a million micro-dollars equals one dollar. Run a dozen prompts typical of your own workload this way and you get an actual price and output-length comparison for your task, not an abstract benchmark from someone else's post.
Counting tokens ahead of time on the OpenAI-compatible path
There's no free token-counting endpoint for /v1/chat/completions and /v1/responses equivalent to /v1/messages/count_tokens on the Anthropic-compatible side — that one only counts for Claude models. For the GPT-5.6 line it's more practical to rely on the usage field in the response itself and on the history via GET /v1/usage.
Extended thinking is equally available on both available models
Since the GPT-5.6 line has extended thinking and a 1M context window, the difference between Sol and Luna isn't whether the feature exists — it's how each one handles a task once it's turned on, and what that costs in price and latency. Checking that takes the same approach: an identical request, compared on cost and output.
If a model in the line gets retired
When a model in the line is switched off (as already happened to gpt-5.6-terra), a request to it returns 503 model_disabled — not a 404 and not model_retired. Look for a replacement in the current GET https://api.zukko.pro/v1/models list or on the Models page in the dashboard; for Terra the closest replacement is gpt-5.6-sol.
If you're used to gpt-4o or gpt-4
Those ids don't exist in this catalog — they're old names from the direct OpenAI API, not something temporarily disabled. Moving to the gateway means explicitly picking one of the current ids: gpt-5.6-sol, gpt-5.6-luna for the GPT line, or a model from another family — claude-sonnet-5, glm-5.3, and so on (current list: GET https://api.zukko.pro/v1/models) — if the task allows switching vendors too, not just versions. There's no automatic name mapping: the old id just returns 404 model_not_found.
Balance before and after — an honest total cost check
If the comparison isn't one request but a batch of several dozen, it's easier to check total balance rather than sum X-Zukko-Cost-Micros line by line:
curl https://api.zukko.pro/v1/balance -H "Authorization: Bearer fetch_your_key"Run the batch on one model, check balance before and after, then repeat for the other model — that shows the real total cost difference across the models on your actual volume without manually adding up per-request headers.
If you're comparing through a tool, not directly
If test requests go through Cursor, Cline, or another OpenAI-compatible tool rather than a standalone script, first make sure the base is set with the /v1 suffix: https://api.zukko.pro/v1. Without it, a model comparison turns into a comparison of 404 errors — the most common reason "the model isn't responding" has nothing to do with the choice between Sol and Luna.
The practical takeaway
Without a published spec sheet, comparing Sol and Luna by description alone doesn't get you far. Use /v1/models/info for price, and your own run of representative requests for quality. It takes five minutes and a few cents, and gives you an answer for your actual task instead of a general opinion about the line.
zukko
Pay 25×
less
for Claude Code & ChatGPT
One fetch_* key and base URL api.zukko.pro — for Cursor, Claude Code, Codex, and any SDK.
Related articles
- xAI Grok API: Connecting Grok 4.7, Price and the 256K ContextHow to call grok-4.7 through an OpenAI-compatible API, what to do about the 256K context limit and what typical requests cost. Plus a comparison with Grok 4.6.
- GPT-6 Astra or Claude Fable 5.1: Two Top Models by Price and IndexTwo premium models with the same intelligence index and different Zukko prices. We price a single request and an agent session with cache, and explain how to choose on your own data.
- Qwen or DeepSeek via API: Price, Context and Intelligence IndexFour models, one task and an honest calculation: what a run costs on Qwen 3.8 Max and Flash versus DeepSeek V4 Pro and V4.1 Flash.
- Prompt Engineering Examples: 12 Ready-Made Templates for WorkTwelve prompt templates for everyday tasks: what each one says, why it is built that way, and what a single API call costs.