---
title: "Generate a design from a plain-English brief"
method: POST
path: "/v1/ai/synthesize"
tags: ["AI"]
---

# Generate a design from a plain-English brief

`POST /v1/ai/synthesize`

## Request

- Base URL: `https://electronics-architect.com`
- URL: `https://electronics-architect.com/v1/ai/synthesize`
- Auth: HTTP bearer

Scope: `ai`. Decrements the monthly synthesis counter (Pro 5, Team 15; an account with its own AI key is not metered). At most 5 calls an hour per account through the API, across all its keys (429 RATE_LIMITED). At most 3 syntheses run at once per account on the server that takes the request, the editor's included; a 4th is 429 SOLVE_IN_PROGRESS with `Retry-After: 30` and does not count against the hourly limit. Returns the generated design, already solved, with the same disclaimer the editor shows. Pro and Team only: a Free account is refused with 403 PLAN_REQUIRED (one sentence and the trial link).

## Request body

- object
  - `prompt` string, required
  - `conversationHistory` object[]

## Response `200`

The generated design and its solve.

- object
  - `designJson` object
  - `simulationResults` object
  - `componentCount` integer
  - `connectionCount` integer
  - `remaining` unknown
  - `disclaimer` string

## Other responses

- `400`: INVALID_REQUEST.
- `401`: No key, a browser token instead of a key, an unknown key, or a revoked key (code KEY_REVOKED).
- `402`: QUOTA_EXHAUSTED.
- `403`: The key lacks a required scope (INSUFFICIENT_SCOPE), or the call needs a plan the account does not have (PLAN_REQUIRED): on the Free plan, compare, exports, Monte Carlo jobs, AI synthesis, a design with more than one sheet, or a save, share or key past the Free limits; or a team key whose team is no longer paid for.
- `422`: UNPROCESSABLE — the model returned an unusable design; retry or rephrase.
- `429`: RATE_LIMITED: the key's per-minute allowance is used up (or, before any key is recognised, too many requests from one address presented an unknown or revoked key). On the routes that solve inside the request (solve, verify, derating, compare, exports, ai/review, ai/synthesize) it can also be SOLVE_IN_PROGRESS: this account already has 3 calls of that kind running on the server that took the request (solves, AI reviews and syntheses are each counted separately). `Retry-After` is set either way; for SOLVE_IN_PROGRESS it is 2 s for solves and 30 s for AI reviews and syntheses.
- `502`: UPSTREAM_UNAVAILABLE — the model call failed.

---

[API](https://skmtc.dev/electronics-architect/apis/electronics-architect-api.md) · [All operations](https://skmtc.dev/electronics-architect/apis/electronics-architect-api/llms.txt) · [OpenAPI document](https://skmtc.dev/electronics-architect/apis/electronics-architect-api/revisions/98066184ba67?raw)
