From 41968e4f700c9cba277aa9af927bd1110a3f0fc4 Mon Sep 17 00:00:00 2001
From: "mintlify[bot]" <109931778+mintlify[bot]@users.noreply.github.com>
Date: Tue, 29 Sep 2026 16:42:59 +0000
Subject: [PATCH] docs: draft changelog entry for Merge Queue API v2
---
changelog/2026-09-29-merge-queue-api-v2.mdx | 25 +++++++++++++++++++++
changelog/index.mdx | 6 +++++
docs.json | 1 +
merge-queue/changelog.mdx | 8 +++++++
4 files changed, 40 insertions(+)
create mode 100644 changelog/2026-09-29-merge-queue-api-v2.mdx
diff --git a/changelog/2026-09-29-merge-queue-api-v2.mdx b/changelog/2026-09-29-merge-queue-api-v2.mdx
new file mode 100644
index 00000000..cc766cec
--- /dev/null
+++ b/changelog/2026-09-29-merge-queue-api-v2.mdx
@@ -0,0 +1,25 @@
+---
+title: "Merge Queue: API v2"
+description: "A new REST API for Merge Queue with ID-based endpoints, scoped API keys, consistent pagination, and secretless impacted target uploads from GitHub Actions."
+slug: merge-queue-api-v2
+date: 2026-09-29
+category: Merge Queue
+type: new-feature
+---
+
+**The v2 Merge Queue API is here.**
+
+v2 lets you manage merge queues and the pull requests in them, read the order the queue will test them in, and inspect every verification run. It's hosted at `https://api.trunk.io/v2`.
+
+## New features
+
+- **ID-based endpoints.** Address queues and pull requests by ID instead of repository and branch in every request body. Reads use `GET`, and changes use `POST`, `PATCH`, `PUT`, or `DELETE`.
+- **Scoped API keys.** Admins create keys under **Settings → Developer → API Keys** and grant only the permissions each integration needs, such as merging, setting priority, or skipping batching. A key with no permissions can still read queues, which is all a dashboard needs. See [Authentication](/merge-queue/reference/api-v2#authentication).
+- **Secretless uploads from GitHub Actions.** The `trunk-io/login` action lets a job upload impacted targets with the run's own GitHub credential, with no Trunk secret to store or rotate. It also works on pull requests from forks. See [Upload impacted targets from GitHub Actions](/merge-queue/reference/api-v2/github-actions).
+
+## Updates
+
+- **Consistent pagination and errors.** Every list returns the same `data`, `nextCursor`, and `hasMore` envelope. Every error uses one shape.
+- **Direct to queue from the API.** You can now send a pull request to the queue before branch protection is satisfied, using a key with the **Merge PRs with direct to queue** permission.
+
+The [v1 API](/merge-queue/reference/merge) keeps working unchanged. When you're ready to move, the [migration guide](/merge-queue/reference/api-v2/migrate-from-v1) maps every v1 endpoint to v2 and includes a prompt you can hand to a coding agent. Browse the full [v2 reference](/merge-queue/reference/api-v2) for every endpoint.
diff --git a/changelog/index.mdx b/changelog/index.mdx
index c7f4bb27..9ed114a3 100644
--- a/changelog/index.mdx
+++ b/changelog/index.mdx
@@ -8,6 +8,12 @@ rss: true
### September 2026
+
+ **[Merge Queue: API v2](/changelog/2026-09-29-merge-queue-api-v2)**
+
+ A new REST API for Merge Queue with ID-based endpoints, scoped API keys, consistent pagination, and secretless impacted target uploads from GitHub Actions.
+
+
**[Flaky Tests: Test Collections](/changelog/2026-09-15-flaky-tests-test-collections)**
diff --git a/docs.json b/docs.json
index 0f0029fa..f7abdcfa 100644
--- a/docs.json
+++ b/docs.json
@@ -924,6 +924,7 @@
{
"group": "September",
"pages": [
+ "changelog/2026-09-29-merge-queue-api-v2",
"changelog/2026-09-15-flaky-tests-test-collections"
]
},
diff --git a/merge-queue/changelog.mdx b/merge-queue/changelog.mdx
index dd3a09b2..82462b65 100644
--- a/merge-queue/changelog.mdx
+++ b/merge-queue/changelog.mdx
@@ -7,6 +7,14 @@ og:title: "Trunk Merge Queue changelog"
## 2026
+### September 2026
+
+
+ **[Merge Queue: API v2](/changelog/2026-09-29-merge-queue-api-v2)**
+
+ A new REST API for Merge Queue with ID-based endpoints, scoped API keys, consistent pagination, and secretless impacted target uploads from GitHub Actions.
+
+
### August 2026