List queue-entry state history for several pull requests
Returns up to 50 pull requests’ complete queue-entry timelines in one response — the batch form of GET /v2/pull-requests/{id}/queue-entry-history, and the equivalent of v1’s getSubmittedPullRequests with includeTimeline.
limit counts pull requests, not transitions, and every group carries that pull request’s whole timeline (oldest-first by default; send direction=newest for v1’s includeTimeline order), so one call answers for the whole set and each group is complete on arrival. A page’s byte size therefore follows the data rather than a fixed row count: for a pull request with an exceptionally long timeline, page within it using the single-pull-request endpoint instead.
An id naming a pull request in another organization, or one that was never enqueued, comes back as an empty group rather than an error — this route never 404s, so diff the ids you asked for against the groups you got.
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.
Query Parameters
Page size, between 1 and 100.
1 <= x <= 10025
Opaque cursor from a previous response's nextCursor. A cursor is bound to the operation and filter it was minted for.
"AQEKZm9vYmFy"
Set true to include total in the response. Costs an extra COUNT query, so it is off by default.
false
Order of the transitions within a timeline. oldest (the default) reads the log forward; newest matches v1's includeTimeline order, so the current transition is the first row rather than the last.
oldest, newest "oldest"
Comma-separated pull request ids, at most 50 — v1's own batch ceiling. A member that is not a uuid is a 400 naming it; a repeated id is read once. Ids are normalized to lowercase in the response (and for paging), so diff against the lowercased set you asked for.
"6f1d2c3b-4a59-4e6f-8a7b-9c0d1e2f3a4b,7a2e3d4c-5b60-4f71-9b8c-0d1e2f3a4b5c"
Response
A page of pull requests, each with its timeline
100Opaque cursor for the next page, or null on the last page. Pass it back verbatim as cursor; do not construct or inspect one.
"AQEKZm9vYmFy"
True when another page is available.
true
Total rows matching the filter. Present only when the request set includeTotal=true.
1247