Synthetic exposes Anthropic-compatible endpoints. Genesis registers it as the synthetic provider 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

Get an API key

Obtain a `SYNTHETIC_API_KEY` from your Synthetic account, or let the
onboarding wizard prompt you for one.

Run onboarding

```bash
genesis onboard --auth-choice synthetic-api-key
```

Verify the default model

After onboarding the default model is set to:
```
synthetic/hf:MiniMaxAI/MiniMax-M2.5
```
Genesis'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

{
  env: { SYNTHETIC_API_KEY: "sk-..." },
  agents: {
    defaults: {
      model: { primary: "synthetic/hf:MiniMaxAI/MiniMax-M2.5" },
      models: { "synthetic/hf:MiniMaxAI/MiniMax-M2.5": { alias: "MiniMax M2.5" } },
    },
  },
  models: {
    mode: "merge",
    providers: {
      synthetic: {
        baseUrl: "https://api.synthetic.new/anthropic",
        apiKey: "${SYNTHETIC_API_KEY}",
        api: "anthropic-messages",
        models: [
          {
            id: "hf:MiniMaxAI/MiniMax-M2.5",
            name: "MiniMax M2.5",
            reasoning: false,
            input: ["text"],
            cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
            contextWindow: 192000,
            maxTokens: 65536,
          },
        ],
      },
    },
  },
}

Built-in catalog

All Synthetic models use cost 0 (input/output/cache).

Model ID Context window Max tokens Reasoning Input
hf:MiniMaxAI/MiniMax-M2.5 192,000 65,536 no text
hf:moonshotai/Kimi-K2-Thinking 256,000 8,192 yes text
hf:zai-org/GLM-4.7 198,000 128,000 no text
hf:deepseek-ai/DeepSeek-R1-0528 128,000 8,192 no text
hf:deepseek-ai/DeepSeek-V3-0324 128,000 8,192 no text
hf:deepseek-ai/DeepSeek-V3.1 128,000 8,192 no text
hf:deepseek-ai/DeepSeek-V3.1-Terminus 128,000 8,192 no text
hf:deepseek-ai/DeepSeek-V3.2 159,000 8,192 no text
hf:meta-llama/Llama-3.3-70B-Instruct 128,000 8,192 no text
hf:meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8 524,000 8,192 no text
hf:moonshotai/Kimi-K2-Instruct-0905 256,000 8,192 no text
hf:moonshotai/Kimi-K2.5 256,000 8,192 yes text + image
hf:openai/gpt-oss-120b 128,000 8,192 no text
hf:Qwen/Qwen3-235B-A22B-Instruct-2507 256,000 8,192 no text
hf:Qwen/Qwen3-Coder-480B-A35B-Instruct 256,000 8,192 no text
hf:Qwen/Qwen3-VL-235B-A22B-Instruct 250,000 8,192 no text + image
hf:zai-org/GLM-4.5 128,000 128,000 no text
hf:zai-org/GLM-4.6 198,000 128,000 no text
hf:zai-org/GLM-5 256,000 128,000 yes text + image
hf:deepseek-ai/DeepSeek-V3 128,000 8,192 no text
hf:Qwen/Qwen3-235B-A22B-Thinking-2507 256,000 8,192 yes text
Model refs use the form `synthetic/`. Use `genesis models list --provider synthetic` to see all models available on your account.

Model allowlist

If you enable a model allowlist (`agents.defaults.models`), add every
Synthetic model you plan to use. Models not in the allowlist will be hidden
from the agent.

Base URL override

If Synthetic changes its API endpoint, override the base URL in your config:

```json5
{
  models: {
    providers: {
      synthetic: {
        baseUrl: "https://new-api.synthetic.new/anthropic",
      },
    },
  },
}
```

Remember that Genesis appends `/v1` automatically.

Related