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 merge-queue permissions it holds; a key with none can read merge queues but change nothing. Those permissions scope merge queue only: every key can use the Flaky Tests and Dynamic CI endpoints, including their writes, whatever permissions it holds.
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. Two fields are merge-protection controls rather than tuning knobs — requiredStatuses (what must pass) and allowedBotSubmitters (who may enqueue) — 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"