Opus 5 took the flagship spot on July 24, 2026, but Opus 4.8 didn't go anywhere. It's still in the Claudexia lineup, carrying two roles at once: the fallback target for Opus 5, and a standalone choice for teams that already tuned their setup around it.
Why 4.8 is still running
When Opus 5's safety classifier flags a request, the call automatically routes to Opus 4.8 instead of erroring out. That means some slice of your traffic gets served by 4.8 regardless, even if you're calling 5 on purpose. Keeping this model disabled or unreachable would be odd, part of the system already depends on it.
On top of that, 4.8 is a solid workhorse on its own. Teams that tuned prompts, tooling, and evals around its behavior before 5 shipped get predictable results without a migration.
When to pin to 4.8 instead of 5
A few situations where an explicit pin on claude-opus-4.8 is more sensible than moving to the flagship:
- Production is already stable on 4.8. If prompts, few-shot examples, and response parsing are tuned to a specific model's behavior, switching revisions is a regression risk you should test for, not get bundled in with an update for free.
- You depend on predictable tool behavior. Opus 5 can change its tool set mid-conversation, but if your logic assumes the tool list is fixed at the start of a session, 4.8 is closer to the contract your code was written against.
- You're mid-comparison before migrating. Until you've run your own eval dataset against Opus 5 and seen the delta, it's safer to keep production on 4.8 and test 5 in parallel.
How to call Opus 4.8
Same base URL, same key, only the model id changes:
curl https://api.claudexia.tech/v1/messages \
-H "x-api-key: sk_cdx_..." \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{
"model": "claude-opus-4.8",
"max_tokens": 1024,
"messages": [{"role": "user", "content": "Draft a migration plan for moving the service to a new DB schema"}]
}'
Python via the OpenAI-compatible endpoint:
from openai import OpenAI
client = OpenAI(api_key="sk_cdx_...", base_url="https://api.claudexia.tech/v1")
resp = client.chat.completions.create(
model="claude-opus-4.8",
messages=[{"role": "user", "content": "Draft a migration plan for the service"}],
)
print(resp.choices[0].message.content)
Both the Anthropic Messages format and OpenAI Chat Completions work on the same endpoint, so switching SDKs doesn't require a new key or a new domain.
Compatibility with the fallback logic
Since Opus 5 already knows how to fall back to 4.8 on its own, it's worth keeping an explicit branch in your own code too: if a claude-opus-5 call returns an error or times out, retrying against claude-opus-4.8 gives you a fallback path without waiting for the model's built-in fallback to kick in. This matters most in agentic chains, where one stuck step blocks everything downstream.
Pinning doesn't change the price
Through Claudexia every Opus revision costs the same: $0.4 per million input tokens and $0.4 per million output tokens. Pinning to a specific revision adds no markup and earns no discount, the bill only depends on token volume. Estimate your own numbers with the calculator on the site, and per-key usage shows up separately in the dashboard.
When it's still worth moving to 5
If your task is bottlenecked on speed in long agentic runs, or you need to change tools mid-conversation, those are exactly the two things Opus 5 improved on. Outside of that there's no rush, 4.8 keeps working until Anthropic announces otherwise.
In short
Opus 4.8 isn't a legacy model, it's an active workhorse and the fallback target for the flagship. Pin to it explicitly if production is already tuned to its behavior or you're still comparing revisions. Call it as claude-opus-4.8 at the same price as Opus 5.