Get a merge queue
Returns one merge queue, including its full configuration object.
Authorizations
An API key, sent as Authorization: Bearer <key>. An organization admin creates one in the Trunk app under Settings → Developer → API Keys and chooses the permissions it holds. A key with none can read merge queues but change nothing in them. Permissions cover merge queues and test-result uploads, including the quarantine lookups a CI run makes before it uploads; any key can call the other Flaky Tests and Dynamic CI endpoints, including their writes.
Path Parameters
The merge queue's id.
"xK9mP2nQ"
Response
The merge queue
"xK9mP2nQ"
Resolve with GET /v2/repositories/{id}.
"7c9e6679-7425-40de-944b-e07fc1f90ae7"
"main"
The queue's lifecycle state. switchingModes is a transient conversion state during which config and mode writes are refused.
running, paused, draining, switchingModes "running"
The engine a queue runs. queue tests entries in strict arrival order, one line. graph builds a dependency graph and may test entries speculatively in parallel, which merges faster but can require bisection to attribute a failure. Changing mode is a real conversion, not a flag flip — see mergeQueues.switchModes.
queue, graph "queue"
Who owns the queue's configuration. terraform — the last write came from Terraform, identified on any queue write (create, config, pause/resume/drain, mode switch) by a User-Agent or X-Source header containing terraform or opentofu, case-insensitively — the same rule as v1. terraformWithDrift — Terraform owned it and a later write was not identified as Terraform's, so the live configuration may differ from the plan. Any such write counts, including pause/resume from other automation. manual — never written by Terraform.
manual, terraform, terraformWithDrift When the queue was created.
"2026-07-24T20:26:04.000Z"
When the queue's own record last changed — its state or configuration. Not affected by entries moving through it.
"2026-07-28T11:02:31.000Z"
Absolute browsable URL of the repository at its provider (not a Trunk API URL).
"https://github.com/acme/widgets"
Path — not an absolute URL — of this queue's pull-request collection on the Trunk API. Resolve it against the server URL; do not fetch it as-is.
"/v2/merge-queues/xK9mP2nQ/pull-requests"
A queue's full configuration. requiredStatuses (what must pass) is a merge-protection control rather than a tuning knob, so treat write access to this object as security-relevant.
The queue's page in the Trunk web app. Absent when the repository has no keyed organization (no slug to address it by).
"https://app.trunk.io/acme/merge-queue/xK9mP2nQ"