Update a queued pull request's entry
Requires Set priority on PRs to send priorityValue or priorityName, Skip batching to send allowBatching, and Merge PRs with direct to queue to send direct. Lower priorityValue numbers go first, from 0 to 255. The named priorities are urgent (0), high (10), medium (100, the default), and low (200). Raising an entry that is already queued doesn’t restart anything: the new priority applies the next time the entry is placed in the queue. An entry still notReady set to urgent restarts lower-priority entries already testing when it enters the queue.
Patches a live queue entry; an omitted field leaves that attribute unchanged. priorityValue and priorityName are mutually exclusive. skipsTheLine is not settable — it is derived from priorityValue === 0, so send that instead. direct sends the entry directly to the queue past unmet readiness (it needs the Merge PRs with direct to queue permission, and a signed-in user also needs repository-admin permission). allowBatching: false gives the entry a test run of its own.
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 pull request's id.
"0f8fad5b-d9cb-469f-a165-70867728950e"
Body
Patches one or more attributes of a live queue entry; at least one must be sent. priorityValue and priorityName are mutually exclusive. skipsTheLine is not accepted — it is derived from priorityValue === 0, so send that. An omitted field leaves that attribute of the entry unchanged.
0 <= x <= 2551Send the pull request directly to the queue past unmet readiness (branch protection, failing required checks), merging via Trunk's bypass app. It does not skip the queue's own tests. It needs the Merge PRs with direct to queue permission, and a signed-in user also needs repository-admin permission. false clears it. Reflected as QueueEntry.direct.
false
Whether this entry may be tested in a batch with others. false gives it a test run of its own. Sending this field at all needs the Skip batching permission. Omit to leave the entry's current setting alone.
false
Response
The updated pull request
A pull request Trunk has indexed. There is no nested repository object — resolve repositoryId with GET /v2/repositories/{id}.
"0f8fad5b-d9cb-469f-a165-70867728950e"
"7c9e6679-7425-40de-944b-e07fc1f90ae7"
4901
"feat: terminate /v2 at the gateway"
"phil/implement-remaining-apis"
The head commit of the pull request as Trunk last indexed it. Compare against a verification run's testedPullRequests[].sha to tell whether a run tested the current head or a superseded one — a mismatch means the branch moved after that run started.
"9c58bf40e5c1a2b3d4e5f60718293a4b5c6d7e8f"
The branch this pull request targets. Must match the queue's targetBranch to be enqueueable — readiness.doesBaseBranchMatch reports that check.
"main"
"octocat"
True when this pull request's queue entry is non-terminal.
true
"2026-07-28T10:55:00.000Z"
Omitted until the provider sync has populated it.
"https://github.com/acme/widgets/pull/4901"
The pull request's state at the provider, as Trunk last indexed it — not its queue state, which is QueueEntry.state.
open, closed, merged "open"
A pull request's queue membership. A pull request has at most one at a time, and resubmitting it to the same queue reuses this record. An entry the queue tears down is replaced, so a later submission can carry a different id and mergeQueueId.
The pull request's page in the Trunk web app. Absent when the repository has no keyed organization.
"https://app.trunk.io/acme/pull/4901?repo=1a2b3c4d"
Whether the authenticated user authored this pull request. Provided on the queue pull-request list (GET /merge-queues/{id}/pull-requests); absent elsewhere and when the caller is not a signed-in user.
true
CI on the head commit. Null when the repository has no CI data. Absent from lists, from a lookup of more than one pull request, and when the CI read failed.