Updated 2026-06-25

DeepSeek Anthropic API Model Mapping: verify the real model route before you trust the UI

One of the easiest DeepSeek mistakes in Anthropic-style clients is assuming that an accepted request means the model string was honored exactly. DeepSeek's official Anthropic API guide says otherwise: Claude-style names are mapped onto DeepSeek models by rule, and unsupported model names can silently fall back to `deepseek-v4-flash`. That makes provider-side verification more important than the client label.

1. The official Anthropic endpoint is simple

DeepSeek's official Anthropic API guide says the route is `https://api.deepseek.com/anthropic`. That is the clean baseline for Anthropic-style SDKs, Claude Code, and related developer-mode experiments.

This matters because teams often overcomplicate the setup and then debug the wrong layer. If the endpoint, key, and protocol family are correct, the next question is not whether the request launched. It is which DeepSeek model actually served it.

Sources checked

2. Claude-style names are mapped by published rule

DeepSeek does not leave Claude-name handling ambiguous. The official guide says model names beginning with `claude-opus` map to `deepseek-v4-pro`, while names beginning with `claude-haiku` or `claude-sonnet` map to `deepseek-v4-flash`.

That rule is useful when a client insists on Claude-shaped names, but it also means you should describe the route honestly. This is DeepSeek serving DeepSeek models through a published mapping layer, not a native Claude backend.

Official Claude-name mapping published by DeepSeek
Incoming model nameDeepSeek route
`claude-opus*``deepseek-v4-pro`
`claude-haiku*``deepseek-v4-flash`
`claude-sonnet*``deepseek-v4-flash`

3. Unsupported model names can silently become Flash

The highest-signal operational warning on the page is short but important: when you pass an unsupported model name to DeepSeek's Anthropic API, the backend automatically maps it to `deepseek-v4-flash`.

That means a request can appear healthy while still missing your intended Pro route. If a desktop client, SDK wrapper, or gateway rewrites the model string in a way DeepSeek does not recognize, you may be benchmarking Flash while believing you are paying for or testing Pro.

import anthropic

client = anthropic.Anthropic(
    base_url="https://api.deepseek.com/anthropic",
    api_key="YOUR_DEEPSEEK_KEY",
)

message = client.messages.create(
    model="deepseek-v4-pro",
    max_tokens=1000,
    messages=[{"role": "user", "content": "Inspect this patch"}],
)

Sources checked

4. Claude Desktop developer mode is a routing trick, not proof of equivalence

The same official guide says that when using the new Claude Desktop app's developer mode, changing only the base URL and API key can bypass the app's model-name restrictions. That is useful, but it does not prove every downstream feature behaves exactly like Anthropic's own backend.

A DeepSeek-first explanation should keep the boundary clear: developer mode can help a client accept the route, while DeepSeek's published mapping logic decides whether the traffic lands on Pro or Flash.

5. How to verify the route actually used

Do not stop at a green request. Confirm the exact model string in provider-side usage, logs, or response metadata where available. Then compare latency, spend, and output quality against a direct `deepseek-v4-pro` request so you know whether the client-side alias preserved the route you expected.

If your next problem is endpoint family choice, continue with `/guides/deepseek-openai-vs-anthropic-api-routing`. If your next problem is tool-call replay and `reasoning_content`, continue with `/guides/deepseek-thinking-mode-tool-calls`.

FAQ

What does DeepSeek map `claude-opus*` to?

DeepSeek's official Anthropic API guide says `claude-opus*` maps to `deepseek-v4-pro`.

What does DeepSeek map `claude-sonnet*` or `claude-haiku*` to?

The official guide says both route to `deepseek-v4-flash`.

What happens if I send an unsupported model name?

DeepSeek says the Anthropic API backend automatically maps unsupported model names to `deepseek-v4-flash`.

Does Claude Desktop developer mode mean I am using Anthropic's backend?

No. The DeepSeek-first interpretation is that the client accepts a Claude-style route while DeepSeek serves the request through its Anthropic-compatible endpoint and mapping rules.

How should I verify that I really hit Pro?

Check provider-side usage or logs and compare behavior against a direct request that explicitly uses `deepseek-v4-pro`.

DeepSeek's Anthropic compatibility is useful precisely because it is concrete, not magical. Claude-style aliases are a mapping layer, unsupported names can silently fall back to Flash, and the only trustworthy way to confirm Pro is to verify the real route after the request lands.

Related model comparisons

Continue from this guide into structured DeepSeek-first comparison pages with model tables, routing advice, and pricing context.