Use Claude Desktop With a Third-Party API: Full Setup Guide

September 4, 2026 Updated: October 20, 2026 · By Taylor Yang · #AI #AI Tools #Developer Tools

Claude Desktop can route requests to a third-party API. Here is how to set up the gateway, API key, and model list, and how to fix the errors that trip people up.

Diagram showing Claude Desktop sending model requests through a third-party gateway to a third-party model

Newer Claude Desktop builds include a feature called Third-party inference. What it does is simple: you keep the Claude client interface, but the step that actually generates the answer runs on a third-party API you connect yourself.

🎯 Bottom line: this is not “free Claude Opus.” It is the Claude client plus someone else’s model. The interface comes from Anthropic; the answer quality depends on whichever API you plug in.

The practical payoff: you do not have to buy Claude Pro or Max, and your requests do not have to go to Anthropic’s own models. If you already have API credit with MiniMax, GLM, Kimi, or a similar provider, Claude Desktop can use it directly. This guide uses a MiniMax Token Plan as the example, but the logic is the same for any Anthropic-compatible service.

Claude Desktop sends the model request to a third-party gateway, and the third-party model generates the answer
Claude Desktop sends the model request to a third-party gateway, and the third-party model generates the answer

1. What you need before you start

Only two things:

  1. A recent Claude Desktop build with Developer Mode turned on. The path is Developer → Configure third-party inference.
  2. A Base URL and an API key from a third-party model service. The Base URL is the endpoint every Claude Desktop request will be sent to. MiniMax’s example address is https://api.minimax.cn/anthropic, and the key usually starts with sk-cp-.

The endpoint has to be an Anthropic-compatible API, meaning a service whose request and response formats mirror Anthropic’s own API. Only then can Claude Desktop talk to it without a translation layer.

2. Step one: configure the connection

The Connection page decides one thing only: where Claude Desktop sends model requests, and what credentials it sends them with.

For MiniMax or any other compatible service, set Connection to Gateway (the intermediary address that forwards your requests), then fill in the rest.

1. What each field does

FieldMiniMax exampleWhat it does
ConnectionGatewayTells the client to route requests through a third-party inference gateway
Credential kindStatic API keyAuthenticates with one fixed API key
Gateway base URLhttps://api.minimax.cn/anthropicThe provider’s Anthropic-compatible endpoint
Gateway API keysk-cp-xxxxxxYour Token Plan key
Gateway auth schemebearerSends the key as Authorization: Bearer
Artifact preview iframe originLeave emptyCustom artifact / file preview domain; most people never need it
Custom inference headersLeave emptyOnly for providers that require extra request headers
Stream idle timeout300How long (in seconds) a streaming response may sit idle

2. Put only the key itself in the API key field

The most common mistake here is pasting the auth prefix along with the key. The correct value is:

sk-cp-xxxxxxxxxxxxxxxx

⚠️ Do not write Bearer sk-cp-xxxxxxxx. You already selected bearer under Gateway auth scheme, so the client builds Authorization: Bearer sk-cp-xxxxxxxx for you. Add the prefix twice and authentication fails.

3. Run Test connection before anything else

There is a Test connection button in the top-right corner of the Connection page. Click it. A green result like this one:

Inference — 1-token completion in 4323 ms · via static key

confirms three things: the Base URL is reachable, the API key passes authentication, and the client can get one inference response back from the gateway.

💡 Here is the part people misread: a successful Test connection does not mean the setup is finished. It only proves the route works. The model list is a separate problem.

3. Step two: configure the models

The Models section controls something different: which models show up in the client, and which model name gets sent to the gateway.

1. Model discovery: use it if it works, turn it off if it errors

With Model discovery enabled, Claude Desktop calls the gateway’s model list endpoint on its own, for example:

https://api.minimax.cn/anthropic/v1/models

In theory that saves you the work. In practice, third-party endpoints do not always return the shape Claude Desktop expects, so you may see:

Gateway returned no usable models

That message does not mean the API is down. It only means the client could not parse the response into models it considers usable. When it happens, switch discovery off and enter the models by hand instead of fighting it.

2. Model list: the source of the client’s model picker

Models you add manually appear directly in the Claude Desktop model picker, and the first entry is usually the default. Only two fields matter here: Model ID and Display name. They are not the same thing at all.

3. Model ID vs. Display name

Model ID decides which model the request is actually routed to, while Display name only changes the label shown in the interface
Model ID decides which model the request is actually routed to, while Display name only changes the label shown in the interface

1) Model ID is the real routing name

It is the value the client puts in the request body:

{
  "model": "some-model-id"
}

Some Claude Desktop versions validate the format here and expect something that looks like a Claude route, such as claude-sonnet-4-5.

That creates a mismatch: your third-party API may only recognize MiniMax-M3, while the client only lets you enter claude-sonnet-4-5. Something has to translate between the two names:

claude-sonnet-4-5
        ↓
     Gateway (alias mapping)
        ↓
MiniMax-M3

So do not stop at “the client is not showing a red warning.” Confirm that your provider accepts that route name, or that it offers model alias mapping. Without a mapping, the request still fails.

2) Display name is only a label

It takes no part in any request; it just changes what the model picker shows. Set it to MiniMax-M3 so you can tell at a glance what you are talking to.

Model ID = the route the request actually uses
Display name = the name humans see

4. The tempting toggles you should leave alone for now

Most people never need to touch the remaining advanced settings.

FieldWhat it is forUsual setting
Default to 1M contextWhether to prefer the 1M variant when a model has both a standard and a 1M versionOff
Offer 1M-context variantAdds a separate 1M-context entry for the current modelOnly if the provider supports it
Tier aliasMaps a third-party model to a Claude tier label such as sonnet or opusLeave empty unless you need it
Show estimated costShows estimated spend on the Usage pageOff
Network proxy / Proxy server URL / PAC URLRoutes the client through its own proxyEmpty unless you need a proxy
Save Changes / Apply Changes / Discard ChangesSave, apply, or discard the current configAlways Apply when you are done

1. Neither 1M-context toggle creates context out of thin air

Default to 1M context means: when a model exists in both a standard and a 1M-context version, should the client prefer the latter by default. Offer 1M-context variant just adds an extra 1M entry to the picker.

Both are client-side display and selection logic. Neither gives the backend more context capacity. Unless your provider explicitly says the deployment accepts a one-million-token context, leave them off.

2. Tier alias: leave it empty unless you have a reason

Its job is to attach a Claude tier label to a model, such as sonnet or opus. Some client features may use that label to decide which tier a model belongs to.

If you are connecting MiniMax but want certain behavior handled as if it were Sonnet tier, entering sonnet is possible in principle. Without a clear reason, empty is safer. Do not fill it in just to look sophisticated.

3. Show estimated cost: the number is probably wrong

Claude Desktop estimates spend using Anthropic’s pricing. You are on MiniMax, where the plan, token prices, caching rules, and credit system all work differently.

The result: a number that looks precise but has little to do with what you actually pay. Unless you have configured the correct price multipliers yourself, turning it off saves confusion.

4. Network proxy: leave it blank if your connection already works

If your machine can already reach the third-party API, leave these fields empty. Fill in Proxy server URL only for corporate networks, unusual proxy setups, or when you specifically want Claude Desktop to use its own HTTP proxy, for example http://127.0.0.1:7890 or http://proxy.example.com:8080.

PAC URL (Proxy Auto-Config, a script file that decides which requests go through a proxy) is mainly an enterprise thing, and looks like http://example.com/proxy.pac. If you do not know what PAC is, you almost certainly do not need it.

5. Always click Apply Changes when you are done

There are three buttons at the bottom: Discard Changes, Save Changes, and Apply Changes.

Save Changes mostly stores the configuration. Apply Changes is what makes Claude Desktop actually run on your third-party inference setup. Saving without applying is the usual reason people think their config “did not take effect.”

6. The three problems you are most likely to hit

Work through them in the order shown below: confirm the connection first, then the model list, then the routing name.

The troubleshooting path from Test connection to Apply Changes, and what to check when each step fails
The troubleshooting path from Test connection to Apply Changes, and what to check when each step fails

1. Test connection passes, but chat does not work

Check Model ID first. A successful connection only proves the endpoint is reachable. Chatting adds one more condition: whether the third-party API recognizes the model name the client sends. If the two disagree, the request still fails.

2. “Gateway returned no usable models”

Common. Turn off Model discovery and fill in Model list manually.

3. Entering MiniMax-M3 triggers a Model ID format error

Your client version validates Model ID in Claude style: it accepts claude-sonnet-4-5 but rejects MiniMax-M3.

Keep in mind that changing Display name to MiniMax-M3 only changes the label; the backend model stays the same. What you actually need is a correct mapping along this chain:

Claude Desktop Model ID
        ↓
Third-party gateway
        ↓
The real MiniMax model

If the platform itself offers no alias mapping, you need an extra compatibility gateway to translate model names.

7. Who this setup is for

If you like the Claude Desktop interface, do not want to pay for Claude Max, and already hold API credit with MiniMax, GLM, Kimi, or similar, third-party inference is worth setting up once. After that, you can treat Claude Desktop as a client for third-party AI models: switching providers later mostly means changing the Base URL, API key, auth scheme, and model route, not the client.

The whole flow in one line: Developer Mode → Third-party inference → Gateway → enter Base URL and API key → Test connection → configure Model list → Apply Changes.

✅ Only two things really break. Verify each one after setup:

  • Is the endpoint reachable? Check that Test connection returns a green 1-token response.

  • Does the gateway recognize your Model ID? Check that one real conversation returns normally.