--- summary: "Use Synthetic's Anthropic-compatible API in OpenClaw" read_when: - You want to use Synthetic as a model provider - You need a Synthetic API key or base URL setup title: "Synthetic" --- [Synthetic](https://synthetic.new) exposes Anthropic-compatible endpoints. OpenClaw provides it through the official `@openclaw/synthetic-provider` plugin and uses the Anthropic Messages API. | Property | Value | | -------- | ------------------------------------- | | Provider | `synthetic` | | Auth | `SYNTHETIC_API_KEY` | | API | Anthropic Messages | | Base URL | `https://api.synthetic.new/anthropic` | ## Getting started ```bash openclaw plugins install @openclaw/synthetic-provider openclaw gateway restart ``` Get a `SYNTHETIC_API_KEY` from your Synthetic account, or let onboarding prompt you for one. ```bash openclaw onboard --auth-choice synthetic-api-key ``` Onboarding sets the default model to: ```text synthetic/hf:MiniMaxAI/MiniMax-M3 ``` OpenClaw's Anthropic client appends `/v1` to the base URL automatically, so use `https://api.synthetic.new/anthropic` (not `/anthropic/v1`). If Synthetic changes its base URL, override `models.providers.synthetic.baseUrl`. ## Config example ```json5 { env: { vars: { SYNTHETIC_API_KEY: "sk-..." } }, agents: { defaults: { model: { primary: "synthetic/hf:MiniMaxAI/MiniMax-M3" }, models: { "synthetic/hf:MiniMaxAI/MiniMax-M3": { alias: "MiniMax M3" } }, }, }, models: { mode: "merge", providers: { synthetic: { baseUrl: "https://api.synthetic.new/anthropic", apiKey: "${SYNTHETIC_API_KEY}", api: "anthropic-messages", models: [ { id: "hf:MiniMaxAI/MiniMax-M3", name: "MiniMax M3", reasoning: true, input: ["text", "image"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 65536, }, ], }, }, }, } ``` ## Built-in catalog All Synthetic models use cost `0` (input/output/cache). See Synthetic's [current model list](https://dev.synthetic.new/docs/api/models) for service availability. | Model ID | Context window | Max tokens | Reasoning | Input | | --------------------------------------------------- | -------------- | ---------- | --------- | ------------ | | `hf:MiniMaxAI/MiniMax-M3` | 262,144 | 65,536 | yes | text + image | | `hf:moonshotai/Kimi-K2.7-Code` | 262,144 | 8,192 | yes | text + image | | `hf:nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-NVFP4` | 262,144 | 8,192 | yes | text | | `hf:openai/gpt-oss-120b` | 131,072 | 8,192 | yes | text | | `hf:Qwen/Qwen3.6-27B` | 262,144 | 81,920 | yes | text + image | | `hf:zai-org/GLM-4.7-Flash` | 196,608 | 131,072 | yes | text | | `hf:zai-org/GLM-5.2` | 524,288 | 131,072 | yes | text | Model refs use the form `synthetic/`. Use `openclaw models list --provider synthetic` to see all models available on your account. If you enable a model allowlist (`agents.defaults.modelPolicy.allow`), add every Synthetic model you plan to use. Models not in the allowlist are hidden from the agent. If Synthetic changes its API endpoint, override the base URL: ```json5 { models: { providers: { synthetic: { baseUrl: "https://new-api.synthetic.new/anthropic", }, }, }, } ``` OpenClaw still appends `/v1` automatically. ## Related Provider rules, model refs, and failover behavior. Full config schema including provider settings. Synthetic dashboard and API docs.