gpt-5.6-luna is the cheapest model on codexkey: $0.1 per million tokens, for input and for output alike. That is three times cheaper than Sonnet and four times cheaper than Opus. The catalog also has Haiku (claude-haiku-5.5, claude-haiku-4.5), and Luna fills the same niche in the GPT line: cheap mechanical work.
One caveat up front. Luna comes from a different family, not Claude. It accepts requests in both the Anthropic Messages format and the OpenAI Chat Completions format, but how it answers your own prompts has to be checked separately. A prompt copied over from Sonnet word for word may give a different result.
What Luna is good for
Bulk classification. Sort tickets into categories, score the sentiment of a review, rank incoming mail by urgency. These tasks have clear boundaries and short answers, and at volume Luna holds up where flagship pricing would wreck your unit economics.
Extraction. Pull a name, date, amount and status out of an email or document and put them into JSON. The shape of the answer is fixed in advance, so the model does not need to reason. It only has to find the data and move it over.
Log parsing. Split an error string into parts, spot a pattern in a stack trace, bring mismatched logs into one form. The work is repetitive and there is a lot of it.
Format conversion. CSV to JSON, YAML to TOML, one markdown dialect to another. The rules are simple and the data is plentiful.
Where Luna is weaker
Do not expect the reasoning of Sonnet or Opus from Luna. When a task needs a plan with several steps, debugging of unfamiliar code, or several conflicting requirements held in mind at once, Luna loses the thread noticeably sooner than the larger models. Do not make it the last link of a chain, where everything has to be pulled together. Put it where the answer is short and the rule is clear.
A working example
from openai import OpenAI
client = OpenAI(api_key="sk_cdx_your_key_here", base_url="https://api.codexkey.online/v1")
resp = client.chat.completions.create(
model="gpt-5.6-luna",
messages=[
{"role": "system", "content": "Classify the ticket into one of: bug, question, feature. Reply with one word."},
{"role": "user", "content": "Save button stopped working after the update."},
],
)
print(resp.choices[0].message.content)
The same request can be built in the Anthropic Messages format too. The key and the endpoint stay the same, and only the structure of the request body changes.
What it costs in practice
Take ticket classification. 100,000 tickets a month, a short prompt of 200 tokens and a one-word answer of 20 tokens. Input comes to 20 million tokens, which is $2. Output is 2 million tokens, another $0.2. A little over $2 a month for work that a person used to do by hand, or that nobody did.
The two-stage pipeline
The scheme that works: the flagship formulates the rule once, and Luna applies it to a thousand items. Opus or Sonnet study a sample and derive the criterion, after which Luna labels the whole batch for pennies. You think expensively once, then execute cheaply at any scale.
Checking it on your own data
Run one sample through Luna and through Sonnet and compare accuracy by hand on a hundred examples. The calculator on the site shows the difference in the bill at different volumes, and the per-key statistics tell you what a particular step of your pipeline costs.
In short
Luna wins on volume: one call costs pennies, and the difference shows when there are thousands of calls. Classification, extraction, log parsing and format conversion are cheapest on it. Where the task calls for reasoning and pulling everything together, take a model a class higher and check its behavior separately, because the family is different.