Skip to main content

How Synthetic works

Synthetic is a subscription service that runs open-source coding LLMs on dedicated infrastructure and serves them over an OpenAI-compatible (and Anthropic-compatible) API. Instead of paying per-token, you pay a flat monthly subscription and get a generous rate-limit budget covering every model on the platform. It’s positioned as a direct alternative to Claude’s 20/monthand20/month and 200/month plans for developers who do a lot of coding: the same price point, several-times-higher rate limits, and your choice of open-source models. Kodus reaches Synthetic through the OpenAI-compatible endpoint, so there are no adapter changes — just BYOK credentials.

Plans at a glance

Pricing and rate limits change. Always confirm at synthetic.new/pricing before choosing a tier.
PlanPriceRate limit
Monthly~30/mo(30/mo (1/day)~500 messages per 5-hour window
Enterprise / usage-basedcontact Syntheticpay-per-token option
  • All standard models are covered by the subscription — pick any of them by changing the model field.
  • Rate limits are enforced on a 5-hour rolling window, not per month — plan concurrency to fit inside that window.
  • Synthetic does not train on your prompts/completions and deletes API data within 14 days.
Synthetic exposes models using a HuggingFace-style prefix (hf:org/model). A few strong picks for code review:
Model idNotes
hf:zai-org/GLM-4.6GLM family; balanced for general-purpose review.
hf:moonshotai/Kimi-K2-InstructLong-context Kimi K2 — great on large PRs.
hf:Qwen/Qwen3-Coder-480B-A35B-InstructStrong specialized coder.
hf:deepseek-ai/DeepSeek-V3.1DeepSeek V3.1; strong agentic/coding behavior.
See the full catalog at dev.synthetic.new/docs/openai/models.

Creating an API Key

A Synthetic account with an active subscription is required to use the API.
  1. Go to synthetic.new and sign up or log in.
  2. Subscribe to a plan at synthetic.new/pricing.
  3. Open the developer console and create an API key. Copy it immediately — you will not see the full key again.

Configure Synthetic in Kodus

The primary flow is BYOK on Kodus Cloud. Self-hosted installs can use environment variables as a secondary option.
  1. In the Kodus web UI, open Settings → BYOK and click Edit on the Main model (or Fallback).
  2. Toggle the form into Custom mode so you can enter a base URL and a free-text model name.
  3. Fill the fields:
    FieldValue
    ProviderOpenAI Compatible
    API Keyyour Synthetic API key
    Base URLhttps://api.synthetic.new/openai/v1
    Modele.g. hf:zai-org/GLM-4.6 (use the hf: prefix and the full HuggingFace path)
    Max Concurrent Requestsstart at 3–5 to fit the 5-hour budget on bigger PRs
    Max Output Tokensleave default unless you hit truncation
  4. Save. Kodus validates against the endpoint and surfaces any 401 / 404 immediately.
  5. Open any PR to trigger a review; the BYOK status badge in Settings turns green on the first successful call.
The 500-messages-per-5-hours budget is per subscription, not per PR. For teams doing heavy continuous review, keep Max Concurrent Requests low enough that one big multi-file PR doesn’t eat the window, or split the work across multiple subscriptions.
Configure Synthetic as Main and keep an OpenAI or Anthropic key as Fallback — when the 5-hour window fills up, Kodus automatically fails over and reviews keep flowing.

Option 2 — Self-hosted (environment variables)

If you run Kodus in Fixed Mode (single global provider, no per-org BYOK), configure Synthetic in the .env of your API + worker containers:
# Synthetic configuration (Fixed Mode)
API_LLM_PROVIDER_MODEL="hf:zai-org/GLM-4.6"                    # any model id from the catalog
API_OPENAI_FORCE_BASE_URL="https://api.synthetic.new/openai/v1"
API_OPEN_AI_API_KEY="your-synthetic-api-key"
This path is only needed for self-hosted Kodus installs that deliberately disable BYOK. If BYOK is enabled on your self-hosted instance, prefer Option 1 — the UI-based flow is the same as on Cloud.
Restart the API and worker containers after editing .env, then verify:
docker-compose logs api worker | grep -iE "synthetic|api\.synthetic"
For the full self-hosted setup (domains, security keys, database, webhooks, reverse proxy), follow the generic VM deployment guide and only swap the LLM block for the one above.

When to pick Synthetic

  • Your primary model is open-source (Kimi, DeepSeek, Qwen Coder, GLM) and you want a single flat-rate bill instead of juggling per-provider token spend.
  • **You’re comparing to Claude Max (200/mo)forreviewthroughputSyntheticat200/mo)** for review throughput — Synthetic at 30/mo delivers several times the rate-limit budget for similarly-capable coding models.
  • You want strong data posture — Synthetic is explicit about no-training and 14-day prompt/completion retention.
Pick pay-per-token (Moonshot, Fireworks, Together, Groq) instead if traffic is bursty, or a different subscription (Z.AI GLM Coding Plan) if you specifically want the GLM family with tiered commits.

Troubleshooting

  • The subscription budget is per 5-hour rolling window, not per hour or per month. Check how many requests you’ve sent recently in the Synthetic dashboard.
  • Either wait for the window to roll forward, lower Max Concurrent Requests in BYOK, or upgrade/stack plans.
  • Configure a Fallback BYOK provider so reviews keep running while you’re rate-limited.
  • Confirm the key is active and the subscription is current in the Synthetic dashboard.
  • Make sure there are no trailing spaces or quotes in the .env value.
  • Some larger models may cold-start the first time they’re used after a period of inactivity.
  • If first-call latency is blocking Kodus health checks, warm the model by issuing a tiny test request before opening PRs.
  • Confirm your server can reach api.synthetic.new.
  • Review API and worker logs for the exact upstream error.