---
title: "Annealing temperature by polymerase"
method: POST
path: "/annealing_temperature"
tags: ["Primers & oligos"]
---

# Annealing temperature by polymerase

`POST /annealing_temperature`

## Request

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

Annealing temperature and a full cycling program for a primer PAIR, under the rule the polymerase's own vendor publishes — which is not one rule, and is only defined against the vendor's own Tm. For NEB products the Tm is computed exactly as NEB's Tm calculator computes it (SantaLucia 1998 nearest-neighbor with NEB's salt correction, at that product's own buffer and primer concentration — the same primer's Tm moves ~10 °C between NEB buffers) and NEB's calculator rule is applied to it: Q5 at Tm + 1, Phusion at 0.93 × Tm + 7.5 (both ABOVE the Tm), Taq/OneTaq/LongAmp at Tm − 5, Vent/Deep Vent at Tm − 2 above 20 nt, with NEB's ceilings. Toyobo KOD One is Tm − 5 at the salt and oligo concentration its manual names, Takara PrimeSTAR Max a FIXED 55 °C the primer Tm plays no part in (its own 2(A+T)+4(G+C)−5 sets only the annealing time), and a generic Taq/Pfu row applies the Tm − 3 to − 5 rule of thumb to a default-condition nearest-neighbor Tm. Returns denaturation/annealing/extension steps, cycle count, magnesium guidance, the Tm basis and vendor document behind each figure, and the same primers under every other polymerase in the table for comparison.

## Request body

- object
  - `forwardPrimer` string, required: Forward primer, 5'→3'.
  - `reversePrimer` string, required: Reverse primer, 5'→3'.
  - `polymerase` string, required: Polymerase or master mix. One of: q5, phusion, neb_taq, onetaq, vent, deepvent, longamp, primestar_max, kod_one, taq, pfu. Common product spellings are accepted (e.g. "Q5 Hot Start", "KOD One", "PrimeSTAR Max").
  - `ampliconBp` integer: Expected product length (bp), used for the extension time. Omit to get the per-kb rate without a time.
  - `highComplexityTemplate` boolean: Genomic or otherwise complex template. Where the vendor publishes a second, slower extension rate for one, it is used.

## 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)
