---
title: "Golden Gate combinatorial library"
method: POST
path: "/golden_gate_library"
tags: ["Enzymes & cloning"]
---

# Golden Gate combinatorial library

`POST /golden_gate_library`

## Request

- Base URL: `https://seqbench.com/api/v1`
- URL: `https://seqbench.com/api/v1/golden_gate_library`
- Auth: none required

Every combination of interchangeable part plasmids, assembled. Give the alternatives at each position — three promoters, four coding sequences, two terminators, one backbone — and it builds all twenty-four, reporting which close into a plasmid, which do not and why, and whether two combinations built the same molecule (nearly always one part under two names, which makes the library smaller than it looks). Interchangeability is MEASURED rather than taken from a kit table: parts are alternatives at a position when the enzyme releases the same overhang pair from each, which is true of a published standard and of your own, and cannot disagree with the plasmid in the tube. Past 500 combinations it refuses with the number rather than building the first few.

## Request body

- object
  - `positions` object[], required: The positions, in no particular order: [{ role, parts: [{ name, sequence, circular }] }]. `role` is a label ("promoter", "CDS") and never decides anything — the overhangs do. A position with one part is a fixed position, which is what a backbone usually is.
  - `enzyme` 'BsaI' | 'BsmBI' | 'BbsI' | 'SapI': Type IIS enzyme (BsaI, BsmBI, BbsI, SapI).

## Response `200`

Tool ran successfully.

- SuccessResponse: Standard success envelope returned by every single-tool call.
  - `ok` unknown, required
  - `tool` string, required: The tool slug that ran.
  - `result` object, required: Tool-specific output object. Its shape depends on the tool — call `GET /{tool}` or see the docs for each tool's fields.
  - `gate` GateResult
    - `pass` boolean, required: True if and only if every hard check passed.
    - `checks` GateCheck[], required
      - `id` string, required
      - `label` string, required
      - `severity` 'hard' | 'soft', required
      - `pass` boolean, required
      - `message` string, required
      - `value` number
      - `threshold` string
    - `notChecked` string[], required: Honest list of what this gate does NOT verify.
  - `provenance` Provenance, required
    - `apiVersion` string, required
    - `tool` union, required: Tool slug, or an array of slugs (one per step) for a workflow.
      - string
      - string[]
    - `generatedAt` string, date-time, required: ISO 8601 timestamp of when the result was generated.

## Other responses

- `400`: Invalid argument or the tool could not run.
- `404`: Unknown tool.
- `429`: Rate limited (metered tools only). Body carries code `rate_limited` and retryable `true`; honor the Retry-After header.
- `503`: A metered tool is momentarily at capacity. The identical request should succeed after Retry-After; body carries code `upstream_unavailable`.

---

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