> ## Documentation Index
> Fetch the complete documentation index at: https://docs.phoneuse.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Changelog

> What changed on the surfaces you install or call, and how to find out when a shape moves.

This page is kept under one rule, and the rule explains why the page is short.

**An entry appears here only when a published artifact can be pointed at and
dated.** A version on npm is one of those. A decision, a commit message, or an
internal note is not, because none of them tells you when a change reached
you. Where we cannot date something honestly, the entry is left out rather
than estimated.

## HTTP API and MCP tool surface

The entries in this section are not written by hand. Each time this site is
published, the contract fingerprints and the MCP tool names are compared with
the previous publish, and anything that moved gets an entry dated to that
publish: operations and tools added, operations whose shape changed, and
operations and tools removed. A rename is listed as one only when the change
that made it declared it; otherwise it appears as a removal and an addition. A
publish that moved nothing adds nothing.

Two kinds of change are invisible to that comparison, because neither is in a
fingerprint: what a webhook delivery carries, and what travels inside a field
the spec publishes as a bare object. Those are written by hand, in
[Changes the fingerprints cannot see](#changes-the-fingerprints-cannot-see).

### HTTP API and MCP tools, 2026-10-05

* Removed. `DELETE /v1/app-library/versions/{versionId}`. Reason given: Custom APK uploads and their library operations are permanently retired; managed catalog installations are a separate feature.
* Removed. `GET /v1/app-library/apps`. Reason given: Custom APK uploads and their library operations are permanently retired; managed catalog installations are a separate feature.
* Removed. `GET /v1/app-library/apps/{appId}`. Reason given: Custom APK uploads and their library operations are permanently retired; managed catalog installations are a separate feature.
* Removed. `GET /v1/app-library/apps/{appId}/versions`. Reason given: Custom APK uploads and their library operations are permanently retired; managed catalog installations are a separate feature.
* Removed. `GET /v1/app-library/deletions/{deletionId}`. Reason given: Custom APK uploads and their library operations are permanently retired; managed catalog installations are a separate feature.
* Removed. `GET /v1/app-library/jobs`. Reason given: Custom APK uploads and their library operations are permanently retired; managed catalog installations are a separate feature.
* Removed. `GET /v1/app-library/jobs/{jobId}`. Reason given: Custom APK uploads and their library operations are permanently retired; managed catalog installations are a separate feature.
* Removed. `GET /v1/app-library/jobs/{jobId}/targets`. Reason given: Custom APK uploads and their library operations are permanently retired; managed catalog installations are a separate feature.
* Removed. `GET /v1/app-library/jobs/{jobId}/targets/{targetId}/attempts`. Reason given: Custom APK uploads and their library operations are permanently retired; managed catalog installations are a separate feature.
* Removed. `GET /v1/app-library/policy`. Reason given: Custom APK uploads and their library operations are permanently retired; managed catalog installations are a separate feature.
* Removed. `GET /v1/app-library/previews/{previewId}`. Reason given: Custom APK uploads and their library operations are permanently retired; managed catalog installations are a separate feature.
* Removed. `GET /v1/app-library/previews/{previewId}/targets`. Reason given: Custom APK uploads and their library operations are permanently retired; managed catalog installations are a separate feature.
* Removed. `GET /v1/app-library/uploads/{uploadId}`. Reason given: Custom APK uploads and their library operations are permanently retired; managed catalog installations are a separate feature.
* Removed. `GET /v1/app-library/uploads/{uploadId}/parts`. Reason given: Custom APK uploads and their library operations are permanently retired; managed catalog installations are a separate feature.
* Removed. `GET /v1/app-library/versions/{versionId}`. Reason given: Custom APK uploads and their library operations are permanently retired; managed catalog installations are a separate feature.
* Removed. `GET /v1/app-packages/{uploadId}`. Reason given: Custom APK uploads and their library operations are permanently retired; managed catalog installations are a separate feature.
* Removed. `PATCH /v1/app-library/apps/{appId}`. Reason given: Custom APK uploads and their library operations are permanently retired; managed catalog installations are a separate feature.
* Removed. `POST /v1/app-library/jobs`. Reason given: Custom APK uploads and their library operations are permanently retired; managed catalog installations are a separate feature.
* Removed. `POST /v1/app-library/jobs/{jobId}/retry`. Reason given: Custom APK uploads and their library operations are permanently retired; managed catalog installations are a separate feature.
* Removed. `POST /v1/app-library/jobs/{jobId}/stop`. Reason given: Custom APK uploads and their library operations are permanently retired; managed catalog installations are a separate feature.
* Removed. `POST /v1/app-library/previews`. Reason given: Custom APK uploads and their library operations are permanently retired; managed catalog installations are a separate feature.
* Removed. `POST /v1/app-library/uploads`. Reason given: Custom APK uploads and their library operations are permanently retired; managed catalog installations are a separate feature.
* Removed. `POST /v1/app-library/uploads/{uploadId}/abort`. Reason given: Custom APK uploads and their library operations are permanently retired; managed catalog installations are a separate feature.
* Removed. `POST /v1/app-library/uploads/{uploadId}/complete`. Reason given: Custom APK uploads and their library operations are permanently retired; managed catalog installations are a separate feature.
* Removed. `POST /v1/app-library/uploads/{uploadId}/parts/{partNumber}/url`. Reason given: Custom APK uploads and their library operations are permanently retired; managed catalog installations are a separate feature.
* Removed. `POST /v1/app-library/uploads/{uploadId}/publish`. Reason given: Custom APK uploads and their library operations are permanently retired; managed catalog installations are a separate feature.
* Removed. `POST /v1/app-library/versions/{versionId}/archive`. Reason given: Custom APK uploads and their library operations are permanently retired; managed catalog installations are a separate feature.
* Removed. `POST /v1/app-library/versions/{versionId}/restore`. Reason given: Custom APK uploads and their library operations are permanently retired; managed catalog installations are a separate feature.
* Removed. `POST /v1/app-packages`. Reason given: Custom APK uploads and their library operations are permanently retired; managed catalog installations are a separate feature.
* Removed. `PUT /v1/app-packages/{uploadId}/content`. Reason given: Custom APK uploads and their library operations are permanently retired; managed catalog installations are a separate feature.
* Removed. MCP tool `create_app_job`. Reason given: Custom APK uploads and their library operations are permanently retired; managed catalog installations are a separate feature.
* Removed. MCP tool `get_app_job`. Reason given: Custom APK uploads and their library operations are permanently retired; managed catalog installations are a separate feature.
* Removed. MCP tool `get_app_preview`. Reason given: Custom APK uploads and their library operations are permanently retired; managed catalog installations are a separate feature.
* Removed. MCP tool `get_app_upload`. Reason given: Custom APK uploads and their library operations are permanently retired; managed catalog installations are a separate feature.
* Removed. MCP tool `install_app`. Reason given: Custom APK uploads and their library operations are permanently retired; managed catalog installations are a separate feature.
* Removed. MCP tool `list_app_job_targets`. Reason given: Custom APK uploads and their library operations are permanently retired; managed catalog installations are a separate feature.
* Removed. MCP tool `list_app_jobs`. Reason given: Custom APK uploads and their library operations are permanently retired; managed catalog installations are a separate feature.
* Removed. MCP tool `list_app_preview_targets`. Reason given: Custom APK uploads and their library operations are permanently retired; managed catalog installations are a separate feature.
* Removed. MCP tool `list_app_versions`. Reason given: Custom APK uploads and their library operations are permanently retired; managed catalog installations are a separate feature.
* Removed. MCP tool `list_apps`. Reason given: Custom APK uploads and their library operations are permanently retired; managed catalog installations are a separate feature.
* Removed. MCP tool `preview_app_operation`. Reason given: Custom APK uploads and their library operations are permanently retired; managed catalog installations are a separate feature.
* Removed. MCP tool `publish_app_upload`. Reason given: Custom APK uploads and their library operations are permanently retired; managed catalog installations are a separate feature.
* Removed. MCP tool `reserve_app_upload`. Reason given: Custom APK uploads and their library operations are permanently retired; managed catalog installations are a separate feature.
* Removed. MCP tool `retry_app_targets`. Reason given: Custom APK uploads and their library operations are permanently retired; managed catalog installations are a separate feature.
* Removed. MCP tool `stop_app_targets`. Reason given: Custom APK uploads and their library operations are permanently retired; managed catalog installations are a separate feature.
* Changed. The shape of `GET /v1/app-library/inventory` moved: fingerprint `c633e579b227a186` is now `4359ebe9cbff82fd`.
* Changed. The shape of `GET /v1/app-library/inventory/refreshes/{refreshId}/results` moved: fingerprint `ce91ec9cb141dccc` is now `1e3574cb9795908c`.
* Changed. The shape of `POST /v1/app-library/inventory/refreshes` moved: fingerprint `235720f6ae50d088` is now `6cc80ea7254fb558`.
* Added. `GET /v1/app-store/catalog`.
* Added. `GET /v1/app-store/installations`.
* Added. `GET /v1/app-store/installations/by-request/{requestKey}`.
* Added. `GET /v1/app-store/installations/{installationId}`.
* Added. `POST /v1/app-store/installations`.

### HTTP API and MCP tools, 2026-10-05

* Removed. `DELETE /v1/copilot/automation-defaults/{id}`.
* Removed. `DELETE /v1/files/{fileId}`.
* Removed. `GET /v1/copilot/automation-defaults`.
* Removed. `GET /v1/devices/{deviceId}/file-transfers`.
* Removed. `GET /v1/devices/{deviceId}/file-transfers/{transferId}`.
* Removed. `GET /v1/files`.
* Removed. `GET /v1/phone-number-eligibility`.
* Removed. `PATCH /v1/copilot/automation-defaults`.
* Removed. `POST /v1/devices/{deviceId}/file-transfers`.
* Removed. `POST /v1/file-transfers`.
* Removed. `POST /v1/files`.
* Removed. `POST /v1/files/{fileId}/complete`.
* Removed. `POST /v1/files/{fileId}/parts/{partNumber}/url`.

### HTTP API and MCP tools, 2026-10-05

* Changed. The shape of `GET /v1/fulfilments` moved: fingerprint `9d87ccbf0d01318a` is now `a57e156f5305bafd`.
* Changed. The shape of `GET /v1/skus` moved: fingerprint `b32659727f5c5dd7` is now `46d804dcf5b07374`.
* Changed. The shape of `POST /v1/checkout-sessions` moved: fingerprint `9f3b7af5b2a77606` is now `d8795a0afef8856c`.

### HTTP API and MCP tools, 2026-10-05

* Changed. The shape of `GET /v1/fulfilments` moved: fingerprint `30f1e1b79864a9a5` is now `9d87ccbf0d01318a`.

### HTTP API and MCP tools, 2026-10-04

* Added. `POST /v1/file-transfers`.

### HTTP API and MCP tools, 2026-10-04

* Changed. The shape of `POST /v1/files` moved: fingerprint `8ef0d6063aaa567e` is now `2370d3fa472ced4a`.
* Added. `DELETE /v1/files/{fileId}`.
* Added. `GET /v1/files`.

### HTTP API and MCP tools, 2026-10-04

* Changed. The shape of `GET /v1/app-library/apps` moved: fingerprint `620dda44e0682952` is now `66f3800649843a45`.
* Changed. The shape of `GET /v1/app-library/apps/{appId}` moved: fingerprint `090fba60dba2ddbc` is now `86e6a26c924568b3`.
* Changed. The shape of `PATCH /v1/app-library/apps/{appId}` moved: fingerprint `1f03b3f6ef0b745c` is now `efc6d84b0445a9f8`.
* Changed. The shape of `POST /v1/app-library/uploads/{uploadId}/publish` moved: fingerprint `4e634fbfb2baaa5c` is now `c9a0739e75f095fb`.

### HTTP API and MCP tools, 2026-10-04

* Changed. The shape of `GET /v1/fulfilments` moved: fingerprint `b6a912c5b62a24f7` is now `30f1e1b79864a9a5`.
* Changed. The shape of `POST /v1/checkout-sessions` moved: fingerprint `1f23e1ffdd2a8b2e` is now `9f3b7af5b2a77606`.

### HTTP API and MCP tools, 2026-10-04

* Changed. The shape of `POST /v1/checkout-sessions` moved: fingerprint `c527f120581abe92` is now `1f23e1ffdd2a8b2e`.

### HTTP API and MCP tools, 2026-10-04

* Changed. The shape of `GET /v1/copilot/threads/{id}` moved: fingerprint `acbdf6d484dc6f9b` is now `6c02e3a4fc71f80d`.

### HTTP API and MCP tools, 2026-10-04

* Changed. The shape of `POST /v1/billing/portal-sessions` moved: fingerprint `292ec8cc7de85905` is now `ee1225818fdeab1a`.

### HTTP API and MCP tools, 2026-10-03

* Added. `GET /v1/devices/{deviceId}/file-transfers`.
* Added. `GET /v1/devices/{deviceId}/file-transfers/{transferId}`.
* Added. `POST /v1/devices/{deviceId}/file-transfers`.

### HTTP API and MCP tools, 2026-10-03

* Added. `POST /v1/files`.
* Added. `POST /v1/files/{fileId}/complete`.
* Added. `POST /v1/files/{fileId}/parts/{partNumber}/url`.

### HTTP API and MCP tools, 2026-10-03

* Changed. The shape of `GET /v1/skus` moved: fingerprint `baa98a4e17a172f4` is now `b32659727f5c5dd7`.

### HTTP API and MCP tools, 2026-10-03

* Changed. The shape of `DELETE /v1/api-keys/current` moved: fingerprint `ede45c8efef4e7da` is now `2568cf855fa0d4ec`.
* Changed. The shape of `DELETE /v1/api-keys/{id}` moved: fingerprint `fd0e24ddda430e6a` is now `127026348c43481c`.
* Changed. The shape of `DELETE /v1/copilot/automation-defaults/{id}` moved: fingerprint `dd7f69104957de09` is now `5fd9022d25f82e1c`.
* Changed. The shape of `DELETE /v1/copilot/threads/{id}` moved: fingerprint `bc66b4f578a235a1` is now `4645c1e5b0f85ec1`.
* Changed. The shape of `DELETE /v1/devices/{deviceId}/lease` moved: fingerprint `e85e64d3c2bcaef8` is now `9415a8406f875734`.
* Changed. The shape of `DELETE /v1/webhooks/{webhookId}` moved: fingerprint `8b698553403c99df` is now `313a2e7b3d95ce82`.
* Changed. The shape of `GET /v1/admission` moved: fingerprint `f7aa822968eb07dc` is now `5512c92b2a3cd6e5`.
* Changed. The shape of `GET /v1/api-keys` moved: fingerprint `4c5d4ca3c65cf901` is now `21bf78f8286896d3`.
* Changed. The shape of `GET /v1/api-keys/current` moved: fingerprint `46aa96f91f96c1a2` is now `5b1b5e27cab09e15`.
* Changed. The shape of `GET /v1/app-packages/{uploadId}` moved: fingerprint `cc9dc1804b465221` is now `47f989fd27bb1b2e`.
* Changed. The shape of `GET /v1/billing/upcoming` moved: fingerprint `b5a016d76ab2c492` is now `1e318ceb42b26d1e`.
* Changed. The shape of `GET /v1/cli-sessions/{userCode}` moved: fingerprint `56808ddb51155b2e` is now `4ca184793879254a`.
* Changed. The shape of `GET /v1/copilot/automation-defaults` moved: fingerprint `f6454dc5e0480da4` is now `961fd59b8dac48f0`.
* Changed. The shape of `GET /v1/copilot/threads` moved: fingerprint `45d0ef6a595c3615` is now `6220d1ffe6c7faa0`.
* Changed. The shape of `GET /v1/copilot/threads/{id}` moved: fingerprint `17710206d662bcb5` is now `acbdf6d484dc6f9b`.
* Changed. The shape of `GET /v1/copilot/threads/{id}/stream` moved: fingerprint `bffb249526f4e3a7` is now `7a3331f9363a4aed`.
* Changed. The shape of `GET /v1/devices` moved: fingerprint `e255f756070f1804` is now `9dd9274d610a179b`.
* Changed. The shape of `GET /v1/devices/{deviceId}` moved: fingerprint `e90ecbcdc520a5cf` is now `d05d1b635721a9c3`.
* Changed. The shape of `GET /v1/devices/{deviceId}/driving` moved: fingerprint `b2ae6fb0bca7a922` is now `15df33f94a38b558`.
* Changed. The shape of `GET /v1/devices/{deviceId}/screenshot` moved: fingerprint `5496d77578e3d599` is now `d71dcc3cd9616837`.
* Changed. The shape of `GET /v1/frames/{frameId}` moved: fingerprint `3af35158b3c904e9` is now `5df720f291c770f6`.
* Changed. The shape of `GET /v1/fulfilments/{id}/estimate-history` moved: fingerprint `acf1fbe8fe84fc0d` is now `91a8db1d9100f24f`.
* Changed. The shape of `GET /v1/fulfilments/{id}/renewal-status` moved: fingerprint `5142eb3ef4015c6b` is now `a69b81bf56c71b0f`.
* Changed. The shape of `GET /v1/leases` moved: fingerprint `c9b1159a47f9ad61` is now `07c9b1d810172174`.
* Changed. The shape of `GET /v1/me/notification-preferences` moved: fingerprint `4ddfd8d29eef3a80` is now `5961954260c353f5`.
* Changed. The shape of `GET /v1/notifications` moved: fingerprint `67fd9cdfdb93647a` is now `8d48f3a2a5672e32`.
* Changed. The shape of `GET /v1/phone-number-eligibility` moved: fingerprint `0f39bcb06cf42c91` is now `abd0507d8c967f89`.
* Changed. The shape of `GET /v1/receipts` moved: fingerprint `2a0da7e3cbd6f442` is now `9fd9b9a8bd80addc`.
* Changed. The shape of `GET /v1/receipts/{idempotencyKey}` moved: fingerprint `c1e21559cc98cba0` is now `27482c67e7c5d689`.
* Changed. The shape of `GET /v1/runs` moved: fingerprint `6297b21fde2babd0` is now `d32a6d4b1018727c`.
* Changed. The shape of `GET /v1/runs/{runId}` moved: fingerprint `3f6fc660233e2689` is now `7254348bcdf878b0`.
* Changed. The shape of `GET /v1/time` moved: fingerprint `16fc873d71ab267b` is now `5de249af9a09c006`.
* Changed. The shape of `GET /v1/usage` moved: fingerprint `1cc7f97fced7536d` is now `fe7a524f89072bad`.
* Changed. The shape of `GET /v1/webhooks` moved: fingerprint `adfcb421a995cfb8` is now `780240aa23c16ec3`.
* Changed. The shape of `GET /v1/webhooks/{webhookId}/deliveries` moved: fingerprint `c7f46eea421acddc` is now `207d21ac32cc6cd7`.
* Changed. The shape of `PATCH /v1/api-keys/{id}` moved: fingerprint `06382650a9541099` is now `17f7f3b85a7c00a1`.
* Changed. The shape of `PATCH /v1/copilot/automation-defaults` moved: fingerprint `9a56a282f62efbf0` is now `db5d2d57dcef7fbc`.
* Changed. The shape of `PATCH /v1/copilot/threads/{id}` moved: fingerprint `97d0ce2c56c6ce0a` is now `3786df61af85bfa0`.
* Changed. The shape of `PATCH /v1/devices/{deviceId}` moved: fingerprint `198b3990f7046451` is now `f972b9748d24953c`.
* Changed. The shape of `PATCH /v1/devices/{deviceId}/lease` moved: fingerprint `5766c8ed776d284a` is now `a91a9ffd0c4a612a`.
* Changed. The shape of `PATCH /v1/me/notification-preferences` moved: fingerprint `b4deff15f148860e` is now `222b0242db648b02`.
* Changed. The shape of `PATCH /v1/webhooks/{webhookId}` moved: fingerprint `df102f51aa147233` is now `a839d484f0071c42`.
* Changed. The shape of `POST /mcp` moved: fingerprint `63b42f4bccf1b88a` is now `a8ce2dc84704b2d3`.
* Changed. The shape of `POST /v1/api-keys` moved: fingerprint `dd1d0a972386f970` is now `49849c9f6bd44c94`.
* Changed. The shape of `POST /v1/api-keys/{id}/rotate` moved: fingerprint `63e79021e92b55e9` is now `543880d244c7861f`.
* Changed. The shape of `POST /v1/app-packages` moved: fingerprint `cbc119691f064c3e` is now `734fd0a0b96124ca`.
* Changed. The shape of `POST /v1/billing/portal-sessions` moved: fingerprint `ee662674c45fd9fa` is now `292ec8cc7de85905`.
* Changed. The shape of `POST /v1/checkout-sessions` moved: fingerprint `f0581ce04ca26cf5` is now `c527f120581abe92`.
* Changed. The shape of `POST /v1/cli-sessions` moved: fingerprint `2420d38b679208bc` is now `49466938747586a9`.
* Changed. The shape of `POST /v1/cli-sessions/token` moved: fingerprint `e4869828189519fa` is now `303ab0e1674a3d47`.
* Changed. The shape of `POST /v1/cli-sessions/{userCode}/approve` moved: fingerprint `16a2a44744a517db` is now `29c171e90398bebc`.
* Changed. The shape of `POST /v1/cli-sessions/{userCode}/deny` moved: fingerprint `31110ca3f796d056` is now `d65d7fd46b33c97e`.
* Changed. The shape of `POST /v1/console/events` moved: fingerprint `e292e612c88d966f` is now `3ce7102c86b80c82`.
* Changed. The shape of `POST /v1/copilot` moved: fingerprint `acff7f5148ca1fc9` is now `ad516a6f7b55c575`.
* Changed. The shape of `POST /v1/copilot/approvals` moved: fingerprint `b2789587012595ee` is now `2def393d6618957a`.
* Changed. The shape of `POST /v1/copilot/commands` moved: fingerprint `2430028d0aebc3e3` is now `96c0c08ca839dea1`.
* Changed. The shape of `POST /v1/copilot/threads/{id}/stop` moved: fingerprint `1f4ec90d9c21123b` is now `a6f5b97b1d5ec559`.
* Changed. The shape of `POST /v1/devices/take` moved: fingerprint `8dbc4f20fd93ec50` is now `ceb3d25425c4eec0`.
* Changed. The shape of `POST /v1/devices/{deviceId}/actions` moved: fingerprint `d45e9d0955ee0c4b` is now `9cdfd8361653e621`.
* Changed. The shape of `POST /v1/devices/{deviceId}/lease` moved: fingerprint `d36943492c0ac518` is now `2ccbc93a425cef14`.
* Changed. The shape of `POST /v1/devices/{deviceId}/live-session` moved: fingerprint `158c96c7b3d1216a` is now `d9243c37044b00e5`.
* Changed. The shape of `POST /v1/devices/{deviceId}/stop` moved: fingerprint `be9bc6095208d439` is now `60694644c1859695`.
* Changed. The shape of `POST /v1/devices/{deviceId}/stream` moved: fingerprint `82c23215b1993467` is now `e02f68d127de9afa`.
* Changed. The shape of `POST /v1/devices/{deviceId}/wake` moved: fingerprint `f1454f742ecd9f76` is now `0ca825080b80fc3e`.
* Changed. The shape of `POST /v1/fulfilments/{id}/cancel` moved: fingerprint `693600e0e5d30b15` is now `3646b193e9ce2030`.
* Changed. The shape of `POST /v1/fulfilments/{id}/cancel-renewal` moved: fingerprint `b34ffa54b502becb` is now `80fe152d345e33ac`.
* Changed. The shape of `POST /v1/fulfilments/{id}/return` moved: fingerprint `693600e0e5d30b15` is now `3646b193e9ce2030`.
* Changed. The shape of `POST /v1/notifications/read` moved: fingerprint `c87dc4141a99872c` is now `7168d0ba8c68ff22`.
* Changed. The shape of `POST /v1/receipts/{idempotencyKey}/reviewed` moved: fingerprint `e92d5f045a83dccd` is now `7de13b692c093074`.
* Changed. The shape of `POST /v1/runs` moved: fingerprint `7a756e58f844f9d1` is now `bae32ebbe9ac7cf0`.
* Changed. The shape of `POST /v1/runs/{runId}/cancel` moved: fingerprint `9715e0e4884b7e6e` is now `16159beedc679d57`.
* Changed. The shape of `POST /v1/runs/{runId}/pause` moved: fingerprint `d73ccf237fcfd539` is now `b2cc5f5a263b0f31`.
* Changed. The shape of `POST /v1/runs/{runId}/resume` moved: fingerprint `ad1864ad5cbc579f` is now `e59994e31ac63c4c`.
* Changed. The shape of `POST /v1/webhooks` moved: fingerprint `2fb5898890290e6e` is now `de12a70f4a40c26b`.
* Changed. The shape of `POST /v1/webhooks/{webhookId}/rotate` moved: fingerprint `52728176b958ba18` is now `352c7df363c16e1a`.
* Changed. The shape of `POST /v1/webhooks/{webhookId}/test` moved: fingerprint `1a779d09043ac024` is now `2525b5b26dd40f5d`.
* Changed. The shape of `PUT /v1/app-packages/{uploadId}/content` moved: fingerprint `dee89d4a28c910c8` is now `2ca571f2585e1453`.

### HTTP API and MCP tools, 2026-10-03

* Changed. The shape of `GET /healthz` moved: fingerprint `15b85882830569db` is now `67b4fa8fca0dd4b8`.

### HTTP API and MCP tools, 2026-10-02

* Changed. The shape of `GET /v1/app-library/policy` moved: fingerprint `fb84f81069d8a35e` is now `6f978842fb295ed7`.

### HTTP API and MCP tools, 2026-10-02

* Changed. The shape of `POST /v1/app-library/uploads/{uploadId}/publish` moved: fingerprint `7d0d5b448a8df800` is now `4e634fbfb2baaa5c`.

### HTTP API and MCP tools, 2026-10-02

* Changed. The shape of `GET /.well-known/oauth-protected-resource` moved: fingerprint `006fcfd7d5a85eba` is now `31bd6a8aba089614`.
* Changed. The shape of `GET /.well-known/oauth-protected-resource/mcp` moved: fingerprint `006fcfd7d5a85eba` is now `31bd6a8aba089614`.
* Changed. The shape of `GET /v1/api-keys` moved: fingerprint `9c9f1476ded55c69` is now `4c5d4ca3c65cf901`.
* Changed. The shape of `GET /v1/api-keys/current` moved: fingerprint `2fd321d2c8dce1de` is now `46aa96f91f96c1a2`.
* Changed. The shape of `PATCH /v1/api-keys/{id}` moved: fingerprint `9608d49dd15bb121` is now `06382650a9541099`.
* Changed. The shape of `POST /v1/api-keys` moved: fingerprint `9a2b06ecd8c6c571` is now `dd1d0a972386f970`.
* Changed. The shape of `POST /v1/api-keys/{id}/rotate` moved: fingerprint `3e9dfa4d50e5ba0a` is now `63e79021e92b55e9`.
* Changed. The shape of `POST /v1/cli-sessions/token` moved: fingerprint `846e0dc7b09c54b8` is now `e4869828189519fa`.
* Changed. The shape of `POST /v1/cli-sessions/{userCode}/approve` moved: fingerprint `4f6d28fbb230d7e4` is now `16a2a44744a517db`.
* Added. `DELETE /v1/app-library/versions/{versionId}`.
* Added. `GET /v1/app-library/apps`.
* Added. `GET /v1/app-library/apps/{appId}`.
* Added. `GET /v1/app-library/apps/{appId}/versions`.
* Added. `GET /v1/app-library/deletions/{deletionId}`.
* Added. `GET /v1/app-library/device-capabilities`.
* Added. `GET /v1/app-library/inventory`.
* Added. `GET /v1/app-library/inventory/refreshes/{refreshId}`.
* Added. `GET /v1/app-library/inventory/refreshes/{refreshId}/results`.
* Added. `GET /v1/app-library/jobs`.
* Added. `GET /v1/app-library/jobs/{jobId}`.
* Added. `GET /v1/app-library/jobs/{jobId}/targets`.
* Added. `GET /v1/app-library/jobs/{jobId}/targets/{targetId}/attempts`.
* Added. `GET /v1/app-library/policy`.
* Added. `GET /v1/app-library/previews/{previewId}`.
* Added. `GET /v1/app-library/previews/{previewId}/targets`.
* Added. `GET /v1/app-library/requests/{requestKey}`.
* Added. `GET /v1/app-library/uploads/{uploadId}`.
* Added. `GET /v1/app-library/uploads/{uploadId}/parts`.
* Added. `GET /v1/app-library/versions/{versionId}`.
* Added. `PATCH /v1/app-library/apps/{appId}`.
* Added. `POST /v1/app-library/inventory/refreshes`.
* Added. `POST /v1/app-library/jobs`.
* Added. `POST /v1/app-library/jobs/{jobId}/retry`.
* Added. `POST /v1/app-library/jobs/{jobId}/stop`.
* Added. `POST /v1/app-library/previews`.
* Added. `POST /v1/app-library/uploads`.
* Added. `POST /v1/app-library/uploads/{uploadId}/abort`.
* Added. `POST /v1/app-library/uploads/{uploadId}/complete`.
* Added. `POST /v1/app-library/uploads/{uploadId}/parts/{partNumber}/url`.
* Added. `POST /v1/app-library/uploads/{uploadId}/publish`.
* Added. `POST /v1/app-library/versions/{versionId}/archive`.
* Added. `POST /v1/app-library/versions/{versionId}/restore`.
* Added. MCP tool `create_app_job`.
* Added. MCP tool `get_app_inventory`.
* Added. MCP tool `get_app_inventory_refresh`.
* Added. MCP tool `get_app_job`.
* Added. MCP tool `get_app_preview`.
* Added. MCP tool `get_app_request`.
* Added. MCP tool `get_app_upload`.
* Added. MCP tool `list_app_device_capabilities`.
* Added. MCP tool `list_app_inventory_refresh_results`.
* Added. MCP tool `list_app_job_targets`.
* Added. MCP tool `list_app_jobs`.
* Added. MCP tool `list_app_preview_targets`.
* Added. MCP tool `list_app_versions`.
* Added. MCP tool `list_apps`.
* Added. MCP tool `preview_app_operation`.
* Added. MCP tool `publish_app_upload`.
* Added. MCP tool `refresh_app_inventory`.
* Added. MCP tool `reserve_app_upload`.
* Added. MCP tool `retry_app_targets`.
* Added. MCP tool `stop_app_targets`.

### HTTP API and MCP tools, 2026-10-02

* Changed. The shape of `GET /v1/devices/{deviceId}/driving` moved: fingerprint `c9d6bea00309dea4` is now `b2ae6fb0bca7a922`.
* Changed. The shape of `GET /v1/runs` moved: fingerprint `3c7c18fd5ca5b7e4` is now `6297b21fde2babd0`.
* Changed. The shape of `GET /v1/runs/{runId}` moved: fingerprint `345536479c95f200` is now `3f6fc660233e2689`.
* Changed. The shape of `POST /v1/runs/{runId}/cancel` moved: fingerprint `790f1ff4498167ea` is now `9715e0e4884b7e6e`.
* Changed. The shape of `POST /v1/runs/{runId}/pause` moved: fingerprint `1173bf007be64e6e` is now `d73ccf237fcfd539`.
* Changed. The shape of `POST /v1/runs/{runId}/resume` moved: fingerprint `e05aec8c68877d15` is now `ad1864ad5cbc579f`.

### HTTP API and MCP tools, 2026-10-02

* Changed. The shape of `GET /v1/devices/{deviceId}/proxy` moved: fingerprint `8a0fb83f8048d2ae` is now `3bc7af1c01ebee9e`.
* Changed. The shape of `GET /v1/proxies` moved: fingerprint `eb356b464cdfbc7f` is now `54954c38abac2a42`.
* Changed. The shape of `GET /v1/proxies/{proxyId}` moved: fingerprint `078ed9ad7c662a9d` is now `b11e7bb849915d0f`.
* Changed. The shape of `GET /v1/proxy-orders` moved: fingerprint `35d204c3539e7381` is now `34e145a2a53335a9`.
* Changed. The shape of `GET /v1/proxy-orders/{orderId}` moved: fingerprint `c3a014f3b579e10f` is now `2fc1ea62980803e8`.
* Changed. The shape of `GET /v1/proxy-products` moved: fingerprint `99fc2742fb7c586d` is now `2cb9f77d29bd30d6`.
* Changed. The shape of `GET /v1/proxy-products/{productId}` moved: fingerprint `2daf971681ec1883` is now `b1a6be876c43fbba`.
* Changed. The shape of `GET /v1/proxy-quotes/{quoteId}` moved: fingerprint `532e61fa58f43c40` is now `2cf16f7adee861ed`.
* Changed. The shape of `POST /v1/proxy-operations` moved: fingerprint `110e1484dea3c970` is now `2d9b79bde9c7102c`.
* Changed. The shape of `POST /v1/proxy-orders` moved: fingerprint `65d4925bc1ca84c5` is now `e04f9a1888014472`.

### HTTP API and MCP tools, 2026-10-02

* Changed. The shape of `GET /healthz` moved: fingerprint `85c945a5c98ddcd7` is now `15b85882830569db`.

### HTTP API and MCP tools, 2026-10-01

* Added. `GET /v1/phone-number-eligibility`.

### HTTP API and MCP tools, 2026-10-01

* Changed. The shape of `POST /v1/api-keys` moved: fingerprint `3178d5a1bb673bb6` is now `9a2b06ecd8c6c571`.
* Changed. The shape of `POST /v1/api-keys/{id}/rotate` moved: fingerprint `eb20edeaf87d4eaa` is now `3e9dfa4d50e5ba0a`.
* Changed. The shape of `POST /v1/cli-sessions/{userCode}/approve` moved: fingerprint `2d8ee586cb71d7e8` is now `4f6d28fbb230d7e4`.

### HTTP API and MCP tools, 2026-10-01

* Added. `GET /v1/devices/{deviceId}/proxy`.
* Added. `GET /v1/proxies`.
* Added. `GET /v1/proxies/{proxyId}`.
* Added. `GET /v1/proxy-operations`.
* Added. `GET /v1/proxy-operations/{operationId}`.
* Added. `GET /v1/proxy-orders`.
* Added. `GET /v1/proxy-orders/{orderId}`.
* Added. `GET /v1/proxy-products`.
* Added. `GET /v1/proxy-products/{productId}`.
* Added. `GET /v1/proxy-quotes/{quoteId}`.
* Added. `PATCH /v1/proxies/{proxyId}`.
* Added. `POST /v1/proxies/{proxyId}/archive`.
* Added. `POST /v1/proxy-operations`.
* Added. `POST /v1/proxy-orders`.
* Added. `POST /v1/proxy-orders/{orderId}/cancel`.
* Added. `POST /v1/proxy-orders/{orderId}/checkout`.
* Added. `POST /v1/proxy-quotes`.

### HTTP API and MCP tools, 2026-09-30

* Added. `GET /v1/app-packages/{uploadId}`.
* Added. `POST /v1/app-packages`.
* Added. `PUT /v1/app-packages/{uploadId}/content`.

### HTTP API and MCP tools, 2026-09-29

* Changed. The shape of `POST /v1/console/events` moved: fingerprint `7413d5a36da7ae6c` is now `e292e612c88d966f`.

### HTTP API and MCP tools, 2026-09-29

* Changed. The shape of `DELETE /v1/api-keys/current` moved: fingerprint `df5e1c6324c6a43e` is now `ede45c8efef4e7da`.
* Changed. The shape of `DELETE /v1/api-keys/{id}` moved: fingerprint `f5e4821e4d404d9f` is now `fd0e24ddda430e6a`.
* Changed. The shape of `DELETE /v1/copilot/automation-defaults/{id}` moved: fingerprint `e92fd4e9daeb0114` is now `dd7f69104957de09`.
* Changed. The shape of `DELETE /v1/copilot/threads/{id}` moved: fingerprint `5e6e2b2403d0353f` is now `bc66b4f578a235a1`.
* Changed. The shape of `DELETE /v1/devices/{deviceId}/lease` moved: fingerprint `b899d9af74047623` is now `e85e64d3c2bcaef8`.
* Changed. The shape of `DELETE /v1/webhooks/{webhookId}` moved: fingerprint `43653be33b222698` is now `8b698553403c99df`.
* Changed. The shape of `GET /healthz` moved: fingerprint `43cdacd79b7aea91` is now `85c945a5c98ddcd7`.
* Changed. The shape of `GET /v1/admission` moved: fingerprint `a21ab0aefbcc0189` is now `f7aa822968eb07dc`.
* Changed. The shape of `GET /v1/api-keys` moved: fingerprint `cdd8f84cc547c7e9` is now `9c9f1476ded55c69`.
* Changed. The shape of `GET /v1/api-keys/current` moved: fingerprint `b20b4de662a87bce` is now `2fd321d2c8dce1de`.
* Changed. The shape of `GET /v1/billing/upcoming` moved: fingerprint `0dca876aab1a4bff` is now `b5a016d76ab2c492`.
* Changed. The shape of `GET /v1/cli-sessions/{userCode}` moved: fingerprint `ea41e78e743d67b8` is now `56808ddb51155b2e`.
* Changed. The shape of `GET /v1/copilot/automation-defaults` moved: fingerprint `7928a21d76eef7d1` is now `f6454dc5e0480da4`.
* Changed. The shape of `GET /v1/copilot/threads` moved: fingerprint `834e3c459eac6069` is now `45d0ef6a595c3615`.
* Changed. The shape of `GET /v1/copilot/threads/{id}` moved: fingerprint `8073860469634ab4` is now `17710206d662bcb5`.
* Changed. The shape of `GET /v1/copilot/threads/{id}/stream` moved: fingerprint `3695f0e4d16752ca` is now `bffb249526f4e3a7`.
* Changed. The shape of `GET /v1/devices` moved: fingerprint `e7aba39bfe155e7a` is now `e255f756070f1804`.
* Changed. The shape of `GET /v1/devices/{deviceId}` moved: fingerprint `68d25aaef27f2cbc` is now `e90ecbcdc520a5cf`.
* Changed. The shape of `GET /v1/devices/{deviceId}/driving` moved: fingerprint `f73b6c29540415ae` is now `c9d6bea00309dea4`.
* Changed. The shape of `GET /v1/devices/{deviceId}/screenshot` moved: fingerprint `4069f32756110eaa` is now `5496d77578e3d599`.
* Changed. The shape of `GET /v1/frames/{frameId}` moved: fingerprint `eba60e5e2c9e0baa` is now `3af35158b3c904e9`.
* Changed. The shape of `GET /v1/fulfilments` moved: fingerprint `fc2f650b993a9bf2` is now `b6a912c5b62a24f7`.
* Changed. The shape of `GET /v1/fulfilments/{id}/estimate-history` moved: fingerprint `c3f6a723bcc22c1a` is now `acf1fbe8fe84fc0d`.
* Changed. The shape of `GET /v1/leases` moved: fingerprint `9d2763721e2a86ff` is now `c9b1159a47f9ad61`.
* Changed. The shape of `GET /v1/me/notification-preferences` moved: fingerprint `cd64d726a5230682` is now `4ddfd8d29eef3a80`.
* Changed. The shape of `GET /v1/notifications` moved: fingerprint `62572ef90eb56e3c` is now `67fd9cdfdb93647a`.
* Changed. The shape of `GET /v1/receipts` moved: fingerprint `0f71b23de36cc6b8` is now `2a0da7e3cbd6f442`.
* Changed. The shape of `GET /v1/receipts/{idempotencyKey}` moved: fingerprint `2e636a5bc0483369` is now `c1e21559cc98cba0`.
* Changed. The shape of `GET /v1/runs` moved: fingerprint `577072a724afb874` is now `3c7c18fd5ca5b7e4`.
* Changed. The shape of `GET /v1/runs/{runId}` moved: fingerprint `a75c5c6d6301b874` is now `345536479c95f200`.
* Changed. The shape of `GET /v1/skus` moved: fingerprint `bb7a9e3a52a08eb3` is now `baa98a4e17a172f4`.
* Changed. The shape of `GET /v1/time` moved: fingerprint `96922d023a616c2e` is now `16fc873d71ab267b`.
* Changed. The shape of `GET /v1/usage` moved: fingerprint `dbf374d6a8f5b361` is now `1cc7f97fced7536d`.
* Changed. The shape of `GET /v1/webhooks` moved: fingerprint `f63735e2ac0c746f` is now `adfcb421a995cfb8`.
* Changed. The shape of `GET /v1/webhooks/{webhookId}/deliveries` moved: fingerprint `8b0c814a85f62986` is now `c7f46eea421acddc`.
* Changed. The shape of `PATCH /v1/api-keys/{id}` moved: fingerprint `3b79c800f3dcc3ef` is now `9608d49dd15bb121`.
* Changed. The shape of `PATCH /v1/copilot/automation-defaults` moved: fingerprint `ca0a1bb96c5ae70d` is now `9a56a282f62efbf0`.
* Changed. The shape of `PATCH /v1/copilot/threads/{id}` moved: fingerprint `d09a75cd08f8b680` is now `97d0ce2c56c6ce0a`.
* Changed. The shape of `PATCH /v1/devices/{deviceId}` moved: fingerprint `e36db972e547c4b3` is now `198b3990f7046451`.
* Changed. The shape of `PATCH /v1/devices/{deviceId}/lease` moved: fingerprint `46c469d75abf68ee` is now `5766c8ed776d284a`.
* Changed. The shape of `PATCH /v1/me/notification-preferences` moved: fingerprint `ba4bdfaa3017b5d2` is now `b4deff15f148860e`.
* Changed. The shape of `PATCH /v1/webhooks/{webhookId}` moved: fingerprint `0f4d49d04f581efb` is now `df102f51aa147233`.
* Changed. The shape of `POST /mcp` moved: fingerprint `1c38629b8fd53d1d` is now `63b42f4bccf1b88a`.
* Changed. The shape of `POST /v1/api-keys` moved: fingerprint `815e887b3c92da4d` is now `3178d5a1bb673bb6`.
* Changed. The shape of `POST /v1/api-keys/{id}/rotate` moved: fingerprint `32f46a28955b5843` is now `eb20edeaf87d4eaa`.
* Changed. The shape of `POST /v1/billing/portal-sessions` moved: fingerprint `8be207dda5207860` is now `ee662674c45fd9fa`.
* Changed. The shape of `POST /v1/checkout-sessions` moved: fingerprint `083c071c611a0019` is now `f0581ce04ca26cf5`.
* Changed. The shape of `POST /v1/cli-sessions` moved: fingerprint `64e28afa99e3f1d1` is now `2420d38b679208bc`.
* Changed. The shape of `POST /v1/cli-sessions/token` moved: fingerprint `dd775e39ff1297cb` is now `846e0dc7b09c54b8`.
* Changed. The shape of `POST /v1/cli-sessions/{userCode}/approve` moved: fingerprint `0a0f44137f3c1bcf` is now `2d8ee586cb71d7e8`.
* Changed. The shape of `POST /v1/cli-sessions/{userCode}/deny` moved: fingerprint `9a6ec7ea1e33e32d` is now `31110ca3f796d056`.
* Changed. The shape of `POST /v1/console/events` moved: fingerprint `c3d65838a165ef56` is now `7413d5a36da7ae6c`.
* Changed. The shape of `POST /v1/copilot` moved: fingerprint `619fd77c3dc9339d` is now `acff7f5148ca1fc9`.
* Changed. The shape of `POST /v1/copilot/approvals` moved: fingerprint `baf0e51d4bb078ce` is now `b2789587012595ee`.
* Changed. The shape of `POST /v1/copilot/commands` moved: fingerprint `8d967a36a70053f0` is now `2430028d0aebc3e3`.
* Changed. The shape of `POST /v1/copilot/threads/{id}/stop` moved: fingerprint `b7c8943e5fa9c575` is now `1f4ec90d9c21123b`.
* Changed. The shape of `POST /v1/devices/take` moved: fingerprint `685f6e4584a2b1f0` is now `8dbc4f20fd93ec50`.
* Changed. The shape of `POST /v1/devices/{deviceId}/actions` moved: fingerprint `5959c328c6d8aa96` is now `d45e9d0955ee0c4b`.
* Changed. The shape of `POST /v1/devices/{deviceId}/lease` moved: fingerprint `e363c930071a9d79` is now `d36943492c0ac518`.
* Changed. The shape of `POST /v1/devices/{deviceId}/live-session` moved: fingerprint `e9730e8919e45e06` is now `158c96c7b3d1216a`.
* Changed. The shape of `POST /v1/devices/{deviceId}/stop` moved: fingerprint `ec795d8f2157462c` is now `be9bc6095208d439`.
* Changed. The shape of `POST /v1/devices/{deviceId}/stream` moved: fingerprint `e2f664a282f6338e` is now `82c23215b1993467`.
* Changed. The shape of `POST /v1/devices/{deviceId}/wake` moved: fingerprint `caefb03847fcf6a6` is now `f1454f742ecd9f76`.
* Changed. The shape of `POST /v1/fulfilments/{id}/cancel` moved: fingerprint `bafd48570a085178` is now `693600e0e5d30b15`.
* Changed. The shape of `POST /v1/fulfilments/{id}/return` moved: fingerprint `bafd48570a085178` is now `693600e0e5d30b15`.
* Changed. The shape of `POST /v1/notifications/read` moved: fingerprint `cbb50100f79e2bb0` is now `c87dc4141a99872c`.
* Changed. The shape of `POST /v1/receipts/{idempotencyKey}/reviewed` moved: fingerprint `3d574a3a05ce59e2` is now `e92d5f045a83dccd`.
* Changed. The shape of `POST /v1/runs` moved: fingerprint `f57171b481517066` is now `7a756e58f844f9d1`.
* Changed. The shape of `POST /v1/runs/{runId}/cancel` moved: fingerprint `b5f7915c3c107868` is now `790f1ff4498167ea`.
* Changed. The shape of `POST /v1/runs/{runId}/pause` moved: fingerprint `3d35bff4e2b57d9f` is now `1173bf007be64e6e`.
* Changed. The shape of `POST /v1/runs/{runId}/resume` moved: fingerprint `31c7dad781ef20c5` is now `e05aec8c68877d15`.
* Changed. The shape of `POST /v1/webhooks` moved: fingerprint `9d06da8b27728917` is now `2fb5898890290e6e`.
* Changed. The shape of `POST /v1/webhooks/{webhookId}/rotate` moved: fingerprint `8ee3b6c73f195228` is now `52728176b958ba18`.
* Changed. The shape of `POST /v1/webhooks/{webhookId}/test` moved: fingerprint `83d923320bda9408` is now `1a779d09043ac024`.
* Added. `GET /v1/fulfilments/{id}/renewal-status`.
* Added. `POST /v1/fulfilments/{id}/cancel-renewal`.

### HTTP API and MCP tools, 2026-09-28

* Changed. The shape of `GET /v1/devices` moved: fingerprint `9b6a728bfe815156` is now `e7aba39bfe155e7a`.
* Changed. The shape of `GET /v1/devices/{deviceId}` moved: fingerprint `de9390dfd686abf2` is now `68d25aaef27f2cbc`.
* Changed. The shape of `PATCH /v1/devices/{deviceId}` moved: fingerprint `f762d457536c9510` is now `e36db972e547c4b3`.

### HTTP API and MCP tools, 2026-09-28

* Changed. The shape of `GET /v1/devices` moved: fingerprint `072c21afd98860b7` is now `9b6a728bfe815156`.
* Changed. The shape of `GET /v1/devices/{deviceId}` moved: fingerprint `5ae9f2fb7b2419fb` is now `de9390dfd686abf2`.
* Changed. The shape of `PATCH /v1/devices/{deviceId}` moved: fingerprint `9539daa01895e8f9` is now `f762d457536c9510`.

### HTTP API and MCP tools, 2026-09-28

* Added. `GET /gateway/v1/releases/current`.

### HTTP API and MCP tools, 2026-09-28

* Changed. The shape of `GET /healthz` moved: fingerprint `de7ccc7df2f673a1` is now `43cdacd79b7aea91`.

### HTTP API and MCP tools, 2026-09-28

* Changed. The shape of `GET /healthz` moved: fingerprint `fc56fd6a3dfebbb5` is now `de7ccc7df2f673a1`.

### HTTP API and MCP tools, 2026-09-28

* Changed. The shape of `GET /healthz` moved: fingerprint `c0c8d0bd8c75a34b` is now `fc56fd6a3dfebbb5`.

### HTTP API and MCP tools, 2026-09-28

* Changed. The shape of `GET /healthz` moved: fingerprint `d8a599b61de18fd9` is now `c0c8d0bd8c75a34b`.

### HTTP API and MCP tools, 2026-09-26

* Changed. The shape of `GET /healthz` moved: fingerprint `e1c7893c41f693ac` is now `d8a599b61de18fd9`.

### HTTP API and MCP tools, 2026-09-26

* Changed. The shape of `GET /healthz` moved: fingerprint `14f95c1bba60c4e0` is now `e1c7893c41f693ac`.
* Added. `POST /v1/console/events`.
* Added. `POST /webhooks/livekit`.

### HTTP API and MCP tools, 2026-09-26

* Added. `POST /gateway/enroll`.

### HTTP API and MCP tools, 2026-09-25

* Changed. The shape of `GET /healthz` moved: fingerprint `a764472d659983c5` is now `14f95c1bba60c4e0`.

### HTTP API and MCP tools, 2026-09-25

* Changed. The shape of `GET /v1/devices` moved: fingerprint `ec2fbcdaa95e06b6` is now `072c21afd98860b7`.
* Changed. The shape of `GET /v1/devices/{deviceId}` moved: fingerprint `d22750b4dfb2b50f` is now `5ae9f2fb7b2419fb`.
* Changed. The shape of `GET /v1/devices/{deviceId}/screenshot` moved: fingerprint `7bc6e87966a0dc16` is now `4069f32756110eaa`.
* Changed. The shape of `PATCH /v1/devices/{deviceId}` moved: fingerprint `ea868eddc1f029b6` is now `9539daa01895e8f9`.
* Changed. The shape of `POST /v1/devices/{deviceId}/actions` moved: fingerprint `251ac9a0fecd3cdb` is now `5959c328c6d8aa96`.
* Added. `GET /v1/time`.
* Added. `POST /v1/devices/{deviceId}/stop`.
* Added. `POST /v1/devices/{deviceId}/stream`.

### HTTP API and MCP tools, 2026-09-24

* Changed. The shape of `GET /.well-known/oauth-protected-resource` moved: fingerprint `d92f969962990042` is now `006fcfd7d5a85eba`.
* Changed. The shape of `GET /.well-known/oauth-protected-resource/mcp` moved: fingerprint `d92f969962990042` is now `006fcfd7d5a85eba`.
* Changed. The shape of `GET /v1/api-keys` moved: fingerprint `7b73e9aecb6975f0` is now `cdd8f84cc547c7e9`.
* Changed. The shape of `GET /v1/api-keys/current` moved: fingerprint `ff52c00cb9c297a3` is now `b20b4de662a87bce`.
* Changed. The shape of `PATCH /v1/api-keys/{id}` moved: fingerprint `35aa3bbcf6dc8cdb` is now `3b79c800f3dcc3ef`.
* Changed. The shape of `POST /v1/api-keys` moved: fingerprint `e40b28687cf45504` is now `815e887b3c92da4d`.
* Changed. The shape of `POST /v1/api-keys/{id}/rotate` moved: fingerprint `7ae2481be5b3cb1d` is now `32f46a28955b5843`.
* Changed. The shape of `POST /v1/cli-sessions/token` moved: fingerprint `b717144d56d7ef8a` is now `dd775e39ff1297cb`.
* Changed. The shape of `POST /v1/cli-sessions/{userCode}/approve` moved: fingerprint `bdf341f775d50a88` is now `0a0f44137f3c1bcf`.

### HTTP API and MCP tools, 2026-09-24

* Added. `DELETE /v1/api-keys/current`.
* Added. `GET /v1/api-keys/current`.
* Added. `GET /v1/cli-sessions/{userCode}`.
* Added. `POST /v1/cli-sessions`.
* Added. `POST /v1/cli-sessions/token`.
* Added. `POST /v1/cli-sessions/{userCode}/approve`.
* Added. `POST /v1/cli-sessions/{userCode}/deny`.

### HTTP API and MCP tools, 2026-09-24

* Changed. The shape of `GET /v1/fulfilments` moved: fingerprint `4655e376a518f488` is now `fc2f650b993a9bf2`.
* Changed. The shape of `GET /v1/notifications` moved: fingerprint `13e2855ada3c8d69` is now `62572ef90eb56e3c`.

### HTTP API and MCP tools, 2026-09-23

* Changed. The shape of `GET /healthz` moved: fingerprint `ca8d4efb257cffc7` is now `a764472d659983c5`.
* Changed. The shape of `GET /v1/skus` moved: fingerprint `cfa15a2c72a38c2c` is now `bb7a9e3a52a08eb3`.
* Changed. The shape of `POST /v1/checkout-sessions` moved: fingerprint `7d70b3b60515725e` is now `083c071c611a0019`.

### HTTP API and MCP tools, 2026-09-23

* Changed. The shape of `POST /v1/copilot` moved: fingerprint `0fb3d76804dac135` is now `619fd77c3dc9339d`.

### HTTP API and MCP tools, 2026-09-23

* Changed. The shape of `GET /v1/notifications` moved: fingerprint `8157035f57fce56d` is now `13e2855ada3c8d69`.
* Changed. The shape of `GET /v1/skus` moved: fingerprint `70cd68f6992b64d1` is now `cfa15a2c72a38c2c`.

### HTTP API and MCP tools, 2026-09-23

* Changed. The shape of `DELETE /v1/api-keys/{id}` moved: fingerprint `1351253ab1c5328c` is now `f5e4821e4d404d9f`.
* Changed. The shape of `DELETE /v1/copilot/automation-defaults/{id}` moved: fingerprint `0cef8860ef4dacad` is now `e92fd4e9daeb0114`.
* Changed. The shape of `DELETE /v1/copilot/threads/{id}` moved: fingerprint `5ae1c87ce116c156` is now `5e6e2b2403d0353f`.
* Changed. The shape of `DELETE /v1/devices/{deviceId}/lease` moved: fingerprint `cd23643e603be41a` is now `b899d9af74047623`.
* Changed. The shape of `DELETE /v1/webhooks/{webhookId}` moved: fingerprint `3a6d2d2112f61f2f` is now `43653be33b222698`.
* Changed. The shape of `GET /v1/admission` moved: fingerprint `8d6dfe41e13d9691` is now `a21ab0aefbcc0189`.
* Changed. The shape of `GET /v1/api-keys` moved: fingerprint `4a2d69e45d0f8da3` is now `7b73e9aecb6975f0`.
* Changed. The shape of `GET /v1/billing/upcoming` moved: fingerprint `6be6d04d844fcde5` is now `0dca876aab1a4bff`.
* Changed. The shape of `GET /v1/copilot/automation-defaults` moved: fingerprint `219e7fe6fdc233f9` is now `7928a21d76eef7d1`.
* Changed. The shape of `GET /v1/copilot/threads` moved: fingerprint `ab08c0f17ff93b29` is now `834e3c459eac6069`.
* Changed. The shape of `GET /v1/copilot/threads/{id}` moved: fingerprint `99f09ae350647f32` is now `8073860469634ab4`.
* Changed. The shape of `GET /v1/copilot/threads/{id}/stream` moved: fingerprint `bd14d9cb19834c78` is now `3695f0e4d16752ca`.
* Changed. The shape of `GET /v1/devices` moved: fingerprint `68bda2bd93799cc2` is now `ec2fbcdaa95e06b6`.
* Changed. The shape of `GET /v1/devices/{deviceId}` moved: fingerprint `c95ef16659fca7c6` is now `d22750b4dfb2b50f`.
* Changed. The shape of `GET /v1/devices/{deviceId}/driving` moved: fingerprint `8733972db746cd22` is now `f73b6c29540415ae`.
* Changed. The shape of `GET /v1/devices/{deviceId}/screenshot` moved: fingerprint `179b9a4fde1b49ef` is now `7bc6e87966a0dc16`.
* Changed. The shape of `GET /v1/frames/{frameId}` moved: fingerprint `fa7e536d7e236c00` is now `eba60e5e2c9e0baa`.
* Changed. The shape of `GET /v1/fulfilments/{id}/estimate-history` moved: fingerprint `9b9ac46a00876fa7` is now `c3f6a723bcc22c1a`.
* Changed. The shape of `GET /v1/leases` moved: fingerprint `121a83c4a6adaa48` is now `9d2763721e2a86ff`.
* Changed. The shape of `GET /v1/me/notification-preferences` moved: fingerprint `c01ebf367ba112b6` is now `cd64d726a5230682`.
* Changed. The shape of `GET /v1/notifications` moved: fingerprint `722539ef72c0d537` is now `8157035f57fce56d`.
* Changed. The shape of `GET /v1/receipts` moved: fingerprint `fb902c0ef21b7a24` is now `0f71b23de36cc6b8`.
* Changed. The shape of `GET /v1/receipts/{idempotencyKey}` moved: fingerprint `1ec3308f586a71de` is now `2e636a5bc0483369`.
* Changed. The shape of `GET /v1/runs` moved: fingerprint `37e03cbdac05d31f` is now `577072a724afb874`.
* Changed. The shape of `GET /v1/runs/{runId}` moved: fingerprint `3efdfc8b317ad5d0` is now `a75c5c6d6301b874`.
* Changed. The shape of `GET /v1/usage` moved: fingerprint `8491b51d442b553c` is now `dbf374d6a8f5b361`.
* Changed. The shape of `GET /v1/webhooks` moved: fingerprint `a929507a33318a43` is now `f63735e2ac0c746f`.
* Changed. The shape of `GET /v1/webhooks/{webhookId}/deliveries` moved: fingerprint `355efeb65abeba54` is now `8b0c814a85f62986`.
* Changed. The shape of `PATCH /v1/api-keys/{id}` moved: fingerprint `c4da3fb6fb5022c7` is now `35aa3bbcf6dc8cdb`.
* Changed. The shape of `PATCH /v1/copilot/automation-defaults` moved: fingerprint `8c9db68907dedadb` is now `ca0a1bb96c5ae70d`.
* Changed. The shape of `PATCH /v1/copilot/threads/{id}` moved: fingerprint `1793b89337d7d1b5` is now `d09a75cd08f8b680`.
* Changed. The shape of `PATCH /v1/devices/{deviceId}` moved: fingerprint `c6031da3015bb0b7` is now `ea868eddc1f029b6`.
* Changed. The shape of `PATCH /v1/devices/{deviceId}/lease` moved: fingerprint `5bd47aa4fde8eb41` is now `46c469d75abf68ee`.
* Changed. The shape of `PATCH /v1/me/notification-preferences` moved: fingerprint `1829e3fb46616b0e` is now `ba4bdfaa3017b5d2`.
* Changed. The shape of `PATCH /v1/webhooks/{webhookId}` moved: fingerprint `c37f069ed6ffe831` is now `0f4d49d04f581efb`.
* Changed. The shape of `POST /mcp` moved: fingerprint `dec98b1cdd3afd23` is now `1c38629b8fd53d1d`.
* Changed. The shape of `POST /v1/api-keys` moved: fingerprint `75c18c2cd14ceffc` is now `e40b28687cf45504`.
* Changed. The shape of `POST /v1/api-keys/{id}/rotate` moved: fingerprint `17f3d7fca10f0393` is now `7ae2481be5b3cb1d`.
* Changed. The shape of `POST /v1/checkout-sessions` moved: fingerprint `419098ce9867508d` is now `7d70b3b60515725e`.
* Changed. The shape of `POST /v1/copilot` moved: fingerprint `8e0ac61287a675d0` is now `0fb3d76804dac135`.
* Changed. The shape of `POST /v1/copilot/approvals` moved: fingerprint `b43ab33b3538cb78` is now `baf0e51d4bb078ce`.
* Changed. The shape of `POST /v1/copilot/commands` moved: fingerprint `02689647bc3fd4db` is now `8d967a36a70053f0`.
* Changed. The shape of `POST /v1/copilot/threads/{id}/stop` moved: fingerprint `f66fa6ea3baaa234` is now `b7c8943e5fa9c575`.
* Changed. The shape of `POST /v1/devices/take` moved: fingerprint `5d7bd28f1e1a5f85` is now `685f6e4584a2b1f0`.
* Changed. The shape of `POST /v1/devices/{deviceId}/actions` moved: fingerprint `b16dcb4c0c646c7b` is now `251ac9a0fecd3cdb`.
* Changed. The shape of `POST /v1/devices/{deviceId}/lease` moved: fingerprint `9dfdbf8c417754d4` is now `e363c930071a9d79`.
* Changed. The shape of `POST /v1/devices/{deviceId}/live-session` moved: fingerprint `0391c45944ffc9ab` is now `e9730e8919e45e06`.
* Changed. The shape of `POST /v1/devices/{deviceId}/wake` moved: fingerprint `0ee72cfe1bba7e50` is now `caefb03847fcf6a6`.
* Changed. The shape of `POST /v1/fulfilments/{id}/cancel` moved: fingerprint `b67ef4be1f473159` is now `bafd48570a085178`.
* Changed. The shape of `POST /v1/fulfilments/{id}/return` moved: fingerprint `b67ef4be1f473159` is now `bafd48570a085178`.
* Changed. The shape of `POST /v1/notifications/read` moved: fingerprint `2caff5f56d93231b` is now `cbb50100f79e2bb0`.
* Changed. The shape of `POST /v1/receipts/{idempotencyKey}/reviewed` moved: fingerprint `1c49d6c798858eeb` is now `3d574a3a05ce59e2`.
* Changed. The shape of `POST /v1/runs` moved: fingerprint `a794e5ba193e0d50` is now `f57171b481517066`.
* Changed. The shape of `POST /v1/runs/{runId}/cancel` moved: fingerprint `6fde98089ed35512` is now `b5f7915c3c107868`.
* Changed. The shape of `POST /v1/runs/{runId}/pause` moved: fingerprint `fa9538fe90d28606` is now `3d35bff4e2b57d9f`.
* Changed. The shape of `POST /v1/runs/{runId}/resume` moved: fingerprint `92dce316bf33f2a4` is now `31c7dad781ef20c5`.
* Changed. The shape of `POST /v1/webhooks` moved: fingerprint `fd72dd556d8c8147` is now `9d06da8b27728917`.
* Changed. The shape of `POST /v1/webhooks/{webhookId}/rotate` moved: fingerprint `094c35eb0d3028dd` is now `8ee3b6c73f195228`.
* Changed. The shape of `POST /v1/webhooks/{webhookId}/test` moved: fingerprint `cd748bc5a1faea40` is now `83d923320bda9408`.
* Added. `POST /v1/billing/portal-sessions`.

### HTTP API and MCP tools, 2026-09-23

* Added. `POST /webhooks/clerk`.

### HTTP API and MCP tools, 2026-09-22

* Changed. The shape of `GET /healthz` moved: fingerprint `6582c4776cc8e80a` is now `ca8d4efb257cffc7`.
* Changed. The shape of `GET /v1/billing/upcoming` moved: fingerprint `35263974095b1d62` is now `6be6d04d844fcde5`.
* Changed. The shape of `GET /v1/notifications` moved: fingerprint `c98249adccef6bfe` is now `722539ef72c0d537`.

### HTTP API and MCP tools, 2026-09-22

* Added. `POST /webhooks/stripe`.

### HTTP API and MCP tools, 2026-09-21

* Changed. The shape of `GET /v1/skus` moved: fingerprint `b2b5cf3f36eecc53` is now `70cd68f6992b64d1`.

### HTTP API and MCP tools, 2026-09-21

* Changed. The shape of `GET /v1/devices` moved: fingerprint `168a1e34395d81b5` is now `68bda2bd93799cc2`.
* Changed. The shape of `GET /v1/devices/{deviceId}` moved: fingerprint `509deff6694b3ea7` is now `c95ef16659fca7c6`.
* Changed. The shape of `PATCH /v1/devices/{deviceId}` moved: fingerprint `4267bc5f25f3eea2` is now `c6031da3015bb0b7`.

### HTTP API and MCP tools, 2026-09-21

* Changed. The shape of `GET /v1/runs` moved: fingerprint `b928c81e10d4c2a7` is now `37e03cbdac05d31f`.
* Changed. The shape of `GET /v1/runs/{runId}` moved: fingerprint `3dbb56ecec62844c` is now `3efdfc8b317ad5d0`.
* Changed. The shape of `POST /v1/runs/{runId}/cancel` moved: fingerprint `0b29bc0248a3fadc` is now `6fde98089ed35512`.
* Changed. The shape of `POST /v1/runs/{runId}/pause` moved: fingerprint `12a9d4ad9f6f4591` is now `fa9538fe90d28606`.
* Changed. The shape of `POST /v1/runs/{runId}/resume` moved: fingerprint `c5a6a8605e5a7901` is now `92dce316bf33f2a4`.
* Added. `GET /v1/frames/{frameId}`.

### HTTP API and MCP tools, 2026-09-21

* Changed. The shape of `DELETE /v1/api-keys/{id}` moved: fingerprint `8673120cc6b5fc82` is now `1351253ab1c5328c`.
* Changed. The shape of `DELETE /v1/copilot/automation-defaults/{id}` moved: fingerprint `64d8632363f6dd07` is now `0cef8860ef4dacad`.
* Changed. The shape of `DELETE /v1/copilot/threads/{id}` moved: fingerprint `eeafa5b8707c1aa9` is now `5ae1c87ce116c156`.
* Changed. The shape of `DELETE /v1/devices/{deviceId}/lease` moved: fingerprint `e1550c8338d33ded` is now `cd23643e603be41a`.
* Changed. The shape of `DELETE /v1/webhooks/{webhookId}` moved: fingerprint `0556a29de20886f3` is now `3a6d2d2112f61f2f`.
* Changed. The shape of `GET /v1/admission` moved: fingerprint `19696235c57fac2a` is now `8d6dfe41e13d9691`.
* Changed. The shape of `GET /v1/api-keys` moved: fingerprint `1e1c4786d5d8c81f` is now `4a2d69e45d0f8da3`.
* Changed. The shape of `GET /v1/billing/upcoming` moved: fingerprint `46e89e8f02075496` is now `35263974095b1d62`.
* Changed. The shape of `GET /v1/copilot-allowance` moved: fingerprint `8c5ff8172b2fab86` is now `87ce788065163101`.
* Changed. The shape of `GET /v1/copilot/automation-defaults` moved: fingerprint `6829594780b28914` is now `219e7fe6fdc233f9`.
* Changed. The shape of `GET /v1/copilot/threads` moved: fingerprint `64c88e0656207256` is now `ab08c0f17ff93b29`.
* Changed. The shape of `GET /v1/copilot/threads/{id}` moved: fingerprint `f9d845aa07f628ea` is now `99f09ae350647f32`.
* Changed. The shape of `GET /v1/copilot/threads/{id}/stream` moved: fingerprint `c151083d8fdcdb1b` is now `bd14d9cb19834c78`.
* Changed. The shape of `GET /v1/devices` moved: fingerprint `818fa9f7a8689698` is now `168a1e34395d81b5`.
* Changed. The shape of `GET /v1/devices/{deviceId}` moved: fingerprint `3eb025fc71aba5ae` is now `509deff6694b3ea7`.
* Changed. The shape of `GET /v1/devices/{deviceId}/driving` moved: fingerprint `71e8df18cc052ca6` is now `8733972db746cd22`.
* Changed. The shape of `GET /v1/devices/{deviceId}/screenshot` moved: fingerprint `2a1d16fae6e182f8` is now `179b9a4fde1b49ef`.
* Changed. The shape of `GET /v1/fulfilments` moved: fingerprint `254df8efba6891a8` is now `4655e376a518f488`.
* Changed. The shape of `GET /v1/fulfilments/{id}/estimate-history` moved: fingerprint `0e6ee682516ce488` is now `9b9ac46a00876fa7`.
* Changed. The shape of `GET /v1/leases` moved: fingerprint `304ef3aa20c17d05` is now `121a83c4a6adaa48`.
* Changed. The shape of `GET /v1/me/notification-preferences` moved: fingerprint `316bf96e0d31b44e` is now `c01ebf367ba112b6`.
* Changed. The shape of `GET /v1/notifications` moved: fingerprint `789cd7c5b962dc49` is now `c98249adccef6bfe`.
* Changed. The shape of `GET /v1/receipts` moved: fingerprint `53e1ee2246e304da` is now `fb902c0ef21b7a24`.
* Changed. The shape of `GET /v1/receipts/{idempotencyKey}` moved: fingerprint `ecc1bcdd6e08aa09` is now `1ec3308f586a71de`.
* Changed. The shape of `GET /v1/runs` moved: fingerprint `b5de8bab4434ca34` is now `b928c81e10d4c2a7`.
* Changed. The shape of `GET /v1/runs/{runId}` moved: fingerprint `eaefe32c8985fcd6` is now `3dbb56ecec62844c`.
* Changed. The shape of `GET /v1/skus` moved: fingerprint `7ab63e3711bff143` is now `b2b5cf3f36eecc53`.
* Changed. The shape of `GET /v1/usage` moved: fingerprint `86d4e13938b869bd` is now `8491b51d442b553c`.
* Changed. The shape of `GET /v1/webhooks` moved: fingerprint `d0c263bb375ef039` is now `a929507a33318a43`.
* Changed. The shape of `GET /v1/webhooks/{webhookId}/deliveries` moved: fingerprint `d84cfd45ab723048` is now `355efeb65abeba54`.
* Changed. The shape of `PATCH /v1/api-keys/{id}` moved: fingerprint `edb9c26504feff1b` is now `c4da3fb6fb5022c7`.
* Changed. The shape of `PATCH /v1/copilot/automation-defaults` moved: fingerprint `472a1c11fefd2582` is now `8c9db68907dedadb`.
* Changed. The shape of `PATCH /v1/copilot/threads/{id}` moved: fingerprint `63d6ae4258590c0e` is now `1793b89337d7d1b5`.
* Changed. The shape of `PATCH /v1/devices/{deviceId}` moved: fingerprint `1514b8906d076807` is now `4267bc5f25f3eea2`.
* Changed. The shape of `PATCH /v1/devices/{deviceId}/lease` moved: fingerprint `a8d617b89eb1cd14` is now `5bd47aa4fde8eb41`.
* Changed. The shape of `PATCH /v1/me/notification-preferences` moved: fingerprint `f37c032b61f310d0` is now `1829e3fb46616b0e`.
* Changed. The shape of `PATCH /v1/webhooks/{webhookId}` moved: fingerprint `8691f4ee94f387b7` is now `c37f069ed6ffe831`.
* Changed. The shape of `POST /mcp` moved: fingerprint `2402cb5e32b96260` is now `dec98b1cdd3afd23`.
* Changed. The shape of `POST /v1/api-keys` moved: fingerprint `d0fd810b97e12a99` is now `75c18c2cd14ceffc`.
* Changed. The shape of `POST /v1/api-keys/{id}/rotate` moved: fingerprint `5598b2313e06918d` is now `17f3d7fca10f0393`.
* Changed. The shape of `POST /v1/checkout-sessions` moved: fingerprint `0511c35acce166ca` is now `419098ce9867508d`.
* Changed. The shape of `POST /v1/copilot` moved: fingerprint `937da5baf857131f` is now `8e0ac61287a675d0`.
* Changed. The shape of `POST /v1/copilot/approvals` moved: fingerprint `1a9e1b8df732b737` is now `b43ab33b3538cb78`.
* Changed. The shape of `POST /v1/copilot/commands` moved: fingerprint `9111c9715be98d9c` is now `02689647bc3fd4db`.
* Changed. The shape of `POST /v1/copilot/threads/{id}/stop` moved: fingerprint `747189d1b29984e5` is now `f66fa6ea3baaa234`.
* Changed. The shape of `POST /v1/devices/take` moved: fingerprint `94bad117ddc653dd` is now `5d7bd28f1e1a5f85`.
* Changed. The shape of `POST /v1/devices/{deviceId}/actions` moved: fingerprint `eaebdf57ef775c6d` is now `b16dcb4c0c646c7b`.
* Changed. The shape of `POST /v1/devices/{deviceId}/lease` moved: fingerprint `28771d2cd4faaf18` is now `9dfdbf8c417754d4`.
* Changed. The shape of `POST /v1/devices/{deviceId}/live-session` moved: fingerprint `92b0a414aa237e2f` is now `0391c45944ffc9ab`.
* Changed. The shape of `POST /v1/devices/{deviceId}/wake` moved: fingerprint `a14393037d6ac212` is now `0ee72cfe1bba7e50`.
* Changed. The shape of `POST /v1/fulfilments/{id}/cancel` moved: fingerprint `36951a3d486e584e` is now `b67ef4be1f473159`.
* Changed. The shape of `POST /v1/fulfilments/{id}/return` moved: fingerprint `36951a3d486e584e` is now `b67ef4be1f473159`.
* Changed. The shape of `POST /v1/notifications/read` moved: fingerprint `8a2764c00a9b2eff` is now `2caff5f56d93231b`.
* Changed. The shape of `POST /v1/receipts/{idempotencyKey}/reviewed` moved: fingerprint `a0ed8ccdaa6d377d` is now `1c49d6c798858eeb`.
* Changed. The shape of `POST /v1/runs` moved: fingerprint `b5b1404a74c62d0b` is now `a794e5ba193e0d50`.
* Changed. The shape of `POST /v1/runs/{runId}/cancel` moved: fingerprint `d54f66ac74a4b546` is now `0b29bc0248a3fadc`.
* Changed. The shape of `POST /v1/runs/{runId}/pause` moved: fingerprint `a9ed3cf38c671484` is now `12a9d4ad9f6f4591`.
* Changed. The shape of `POST /v1/runs/{runId}/resume` moved: fingerprint `5a2fa0ab35e67afd` is now `c5a6a8605e5a7901`.
* Changed. The shape of `POST /v1/webhooks` moved: fingerprint `ec5b86818e0ca15c` is now `fd72dd556d8c8147`.
* Changed. The shape of `POST /v1/webhooks/{webhookId}/rotate` moved: fingerprint `f3d57bb5859a0be5` is now `094c35eb0d3028dd`.
* Changed. The shape of `POST /v1/webhooks/{webhookId}/test` moved: fingerprint `b03100d84bbd8953` is now `cd748bc5a1faea40`.

### HTTP API and MCP tools, 2026-09-21

* Changed. The shape of `GET /v1/devices/{deviceId}/driving` moved: fingerprint `179853a96bc7a269` is now `71e8df18cc052ca6`.
* Changed. The shape of `GET /v1/leases` moved: fingerprint `df5290f50cfb4d05` is now `304ef3aa20c17d05`.
* Changed. The shape of `GET /v1/receipts` moved: fingerprint `fa8bac2d8ff98d36` is now `53e1ee2246e304da`.
* Changed. The shape of `GET /v1/receipts/{idempotencyKey}` moved: fingerprint `cb8ea7070a3da9af` is now `ecc1bcdd6e08aa09`.
* Changed. The shape of `GET /v1/runs` moved: fingerprint `282c36f5cb60c1b2` is now `b5de8bab4434ca34`.
* Changed. The shape of `GET /v1/runs/{runId}` moved: fingerprint `2360bc37e6fe00ea` is now `eaefe32c8985fcd6`.
* Changed. The shape of `POST /v1/runs` moved: fingerprint `de9f9e6ed85f465f` is now `b5b1404a74c62d0b`.
* Changed. The shape of `POST /v1/runs/{runId}/cancel` moved: fingerprint `d1fc111d2b4487e3` is now `d54f66ac74a4b546`.
* Changed. The shape of `POST /v1/runs/{runId}/pause` moved: fingerprint `09da7d79d6106e77` is now `a9ed3cf38c671484`.
* Changed. The shape of `POST /v1/runs/{runId}/resume` moved: fingerprint `9b794525d6ae97c6` is now `5a2fa0ab35e67afd`.
* Added. `POST /v1/copilot/threads/{id}/stop`.

### HTTP API and MCP tools, 2026-09-21

* Changed. The shape of `GET /v1/devices` moved: fingerprint `cd7d995dcdb4f1d5` is now `818fa9f7a8689698`.
* Changed. The shape of `GET /v1/devices/{deviceId}` moved: fingerprint `69f8e835f88bff47` is now `3eb025fc71aba5ae`.
* Changed. The shape of `GET /vrx/{runToken}/v1/devices` moved: fingerprint `fa80397a26c76602` is now `b9ec62bdc4169b80`.
* Changed. The shape of `GET /vrx/{runToken}/v1/devices/{deviceId}/screenshot` moved: fingerprint `a91016de7508d68c` is now `42892550a5111203`.
* Changed. The shape of `GET /vrx/{runToken}/v1/health` moved: fingerprint `9b9295bb71d96b39` is now `1312d92abbc2e88b`.
* Changed. The shape of `PATCH /v1/devices/{deviceId}` moved: fingerprint `b5a45783a6b6fc51` is now `1514b8906d076807`.
* Changed. The shape of `POST /v1/devices/take` moved: fingerprint `ae22b78dd970aa3e` is now `94bad117ddc653dd`.
* Changed. The shape of `POST /v1/runs` moved: fingerprint `a6775e75b07ad75b` is now `de9f9e6ed85f465f`.
* Changed. The shape of `POST /vrx/{runToken}/v1/devices/{deviceId}/actions` moved: fingerprint `f8c05a19c6ac0526` is now `d52e408e99afcab3`.
* Changed. The shape of `POST /vrx/{runToken}/v1/report` moved: fingerprint `b4acfea0169cc81f` is now `760a12de9026ecc6`.

### HTTP API and MCP tools, 2026-09-21

* Changed. `GET /tasks` is renamed to `GET /v1/runs`. Its shape changed as well, so re-pin its fingerprint. Reason given: /tasks -> /v1/runs.
* Changed. `GET /runs/{agentRunId}` and `GET /tasks/{taskId}` are now the single route `GET /v1/runs/{runId}`. The shape changed as well, so re-pin the fingerprint. Reasons given: /runs -> /v1/runs; /tasks -> /v1/runs.
* Changed. `POST /tasks` is renamed to `POST /v1/runs`. Its shape changed as well, so re-pin its fingerprint. Reason given: /tasks -> /v1/runs.
* Changed. `POST /tasks/{taskId}/cancel` is renamed to `POST /v1/runs/{runId}/cancel`. Its shape changed as well, so re-pin its fingerprint. Reason given: /tasks -> /v1/runs.
* Changed. `POST /tasks/{taskId}/pause` is renamed to `POST /v1/runs/{runId}/pause`. Its shape changed as well, so re-pin its fingerprint. Reason given: /tasks -> /v1/runs.
* Changed. `POST /tasks/{taskId}/resume` is renamed to `POST /v1/runs/{runId}/resume`. Its shape changed as well, so re-pin its fingerprint. Reason given: /tasks -> /v1/runs.
* Changed. MCP tool `cancel_task` is renamed to `cancel_run`. Reason given: cancel\_task -> cancel\_run.
* Changed. MCP tool `list_tasks` is renamed to `list_runs`. Reason given: list\_tasks -> list\_runs.
* Changed. MCP tool `resume_task` is renamed to `resume_run`. Reason given: resume\_task -> resume\_run.
* Changed. MCP tool `run_task` is renamed to `start_run`. Reason given: run\_task -> start\_run.
* Changed. MCP tool `task_monitor` is renamed to `get_run`. Reason given: task\_monitor -> get\_run.
* Removed. `DELETE /v1/schedules/{scheduleId}`. Reason given: the six /v1/schedules REST routes are withdrawn before launch and nothing replaces them.
* Removed. `GET /v1/schedules`. Reason given: the six /v1/schedules REST routes are withdrawn before launch and nothing replaces them.
* Removed. `GET /v1/schedules/{scheduleId}`. Reason given: the six /v1/schedules REST routes are withdrawn before launch and nothing replaces them.
* Removed. `PATCH /v1/schedules/{scheduleId}`. Reason given: the six /v1/schedules REST routes are withdrawn before launch and nothing replaces them.
* Removed. `POST /v1/schedules`. Reason given: the six /v1/schedules REST routes are withdrawn before launch and nothing replaces them.
* Removed. `POST /v1/schedules/{scheduleId}/run`. Reason given: the six /v1/schedules REST routes are withdrawn before launch and nothing replaces them.
* Changed. The shape of `DELETE /v1/api-keys/{id}` moved: fingerprint `cec92d1d2bee2f68` is now `8673120cc6b5fc82`.
* Changed. The shape of `DELETE /v1/copilot/automation-defaults/{id}` moved: fingerprint `a3a2c758a8813cbe` is now `64d8632363f6dd07`.
* Changed. The shape of `DELETE /v1/copilot/threads/{id}` moved: fingerprint `2882dc082cee9dfc` is now `eeafa5b8707c1aa9`.
* Changed. The shape of `DELETE /v1/devices/{deviceId}/lease` moved: fingerprint `3805b0e0d7758038` is now `e1550c8338d33ded`.
* Changed. The shape of `DELETE /v1/webhooks/{webhookId}` moved: fingerprint `d99dd9ed217b371c` is now `0556a29de20886f3`.
* Changed. The shape of `GET /.well-known/oauth-protected-resource` moved: fingerprint `a9df7149bc5b949d` is now `d92f969962990042`.
* Changed. The shape of `GET /.well-known/oauth-protected-resource/mcp` moved: fingerprint `a9df7149bc5b949d` is now `d92f969962990042`.
* Changed. The shape of `GET /v1/admission` moved: fingerprint `759a7964208858f1` is now `19696235c57fac2a`.
* Changed. The shape of `GET /v1/api-keys` moved: fingerprint `6ebb3ade7ddafbac` is now `1e1c4786d5d8c81f`.
* Changed. The shape of `GET /v1/billing/upcoming` moved: fingerprint `0a56d3b54f615df8` is now `46e89e8f02075496`.
* Changed. The shape of `GET /v1/copilot-allowance` moved: fingerprint `11ba7dbc68ce640c` is now `8c5ff8172b2fab86`.
* Changed. The shape of `GET /v1/copilot/automation-defaults` moved: fingerprint `7aded6a8afe1b66a` is now `6829594780b28914`.
* Changed. The shape of `GET /v1/copilot/threads` moved: fingerprint `1d1d7ec2434ac491` is now `64c88e0656207256`.
* Changed. The shape of `GET /v1/copilot/threads/{id}` moved: fingerprint `a2131f0575aff1cf` is now `f9d845aa07f628ea`.
* Changed. The shape of `GET /v1/copilot/threads/{id}/stream` moved: fingerprint `6a833c7bbacdf295` is now `c151083d8fdcdb1b`.
* Changed. The shape of `GET /v1/devices` moved: fingerprint `d74625a81ff70da8` is now `cd7d995dcdb4f1d5`.
* Changed. The shape of `GET /v1/devices/{deviceId}` moved: fingerprint `123dbc0fb03f4809` is now `69f8e835f88bff47`.
* Changed. The shape of `GET /v1/devices/{deviceId}/driving` moved: fingerprint `b442eddcbcfefcac` is now `179853a96bc7a269`.
* Changed. The shape of `GET /v1/devices/{deviceId}/screenshot` moved: fingerprint `8e9027d6d574c268` is now `2a1d16fae6e182f8`.
* Changed. The shape of `GET /v1/fulfilments` moved: fingerprint `a7bc66f37435f79b` is now `254df8efba6891a8`.
* Changed. The shape of `GET /v1/fulfilments/{id}/estimate-history` moved: fingerprint `5ccae923ae2dd3c3` is now `0e6ee682516ce488`.
* Changed. The shape of `GET /v1/leases` moved: fingerprint `f0d0bcc2569cc2f3` is now `df5290f50cfb4d05`.
* Changed. The shape of `GET /v1/me/notification-preferences` moved: fingerprint `0ddf9b592a7c3a5b` is now `316bf96e0d31b44e`.
* Changed. The shape of `GET /v1/notifications` moved: fingerprint `46c7fe2e2b8dc56d` is now `789cd7c5b962dc49`.
* Changed. The shape of `GET /v1/receipts` moved: fingerprint `b605221a32491536` is now `fa8bac2d8ff98d36`.
* Changed. The shape of `GET /v1/receipts/{idempotencyKey}` moved: fingerprint `bc5b0c46b471de34` is now `cb8ea7070a3da9af`.
* Changed. The shape of `GET /v1/skus` moved: fingerprint `66169d32b5376cff` is now `7ab63e3711bff143`.
* Changed. The shape of `GET /v1/usage` moved: fingerprint `d636e68e4ac9e0d8` is now `86d4e13938b869bd`.
* Changed. The shape of `GET /v1/webhooks` moved: fingerprint `0b7bd0976025cac9` is now `d0c263bb375ef039`.
* Changed. The shape of `GET /v1/webhooks/{webhookId}/deliveries` moved: fingerprint `2116bba639c81068` is now `d84cfd45ab723048`.
* Changed. The shape of `PATCH /v1/api-keys/{id}` moved: fingerprint `9ed2d3fb558316f8` is now `edb9c26504feff1b`.
* Changed. The shape of `PATCH /v1/copilot/automation-defaults` moved: fingerprint `d7827b862ac24b89` is now `472a1c11fefd2582`.
* Changed. The shape of `PATCH /v1/copilot/threads/{id}` moved: fingerprint `e167c586f5939d5a` is now `63d6ae4258590c0e`.
* Changed. The shape of `PATCH /v1/devices/{deviceId}` moved: fingerprint `997ae27908061b7b` is now `b5a45783a6b6fc51`.
* Changed. The shape of `PATCH /v1/devices/{deviceId}/lease` moved: fingerprint `f5f541aec6784082` is now `a8d617b89eb1cd14`.
* Changed. The shape of `PATCH /v1/me/notification-preferences` moved: fingerprint `ec7372a2b5c35bd8` is now `f37c032b61f310d0`.
* Changed. The shape of `PATCH /v1/webhooks/{webhookId}` moved: fingerprint `e0dd367bc76eb877` is now `8691f4ee94f387b7`.
* Changed. The shape of `POST /mcp` moved: fingerprint `db90642df351573c` is now `2402cb5e32b96260`.
* Changed. The shape of `POST /v1/api-keys` moved: fingerprint `767a36cc5e5f51f0` is now `d0fd810b97e12a99`.
* Changed. The shape of `POST /v1/api-keys/{id}/rotate` moved: fingerprint `df42f0c99b28741b` is now `5598b2313e06918d`.
* Changed. The shape of `POST /v1/checkout-sessions` moved: fingerprint `4fdc689adeb901d0` is now `0511c35acce166ca`.
* Changed. The shape of `POST /v1/copilot` moved: fingerprint `03b02d41b09322aa` is now `937da5baf857131f`.
* Changed. The shape of `POST /v1/copilot/approvals` moved: fingerprint `99c1f4c45e1f8be8` is now `1a9e1b8df732b737`.
* Changed. The shape of `POST /v1/copilot/commands` moved: fingerprint `11694194ea4ee022` is now `9111c9715be98d9c`.
* Changed. The shape of `POST /v1/devices/take` moved: fingerprint `6f550d9ffe7128de` is now `ae22b78dd970aa3e`.
* Changed. The shape of `POST /v1/devices/{deviceId}/actions` moved: fingerprint `ff1deb5da13fb202` is now `eaebdf57ef775c6d`.
* Changed. The shape of `POST /v1/devices/{deviceId}/lease` moved: fingerprint `9485e3c14c730ab3` is now `28771d2cd4faaf18`.
* Changed. The shape of `POST /v1/devices/{deviceId}/live-session` moved: fingerprint `e97bc5ac3d2f83f8` is now `92b0a414aa237e2f`.
* Changed. The shape of `POST /v1/devices/{deviceId}/wake` moved: fingerprint `fcd638fbc11b13db` is now `a14393037d6ac212`.
* Changed. The shape of `POST /v1/fulfilments/{id}/cancel` moved: fingerprint `ac0db66e2c13edaa` is now `36951a3d486e584e`.
* Changed. The shape of `POST /v1/fulfilments/{id}/return` moved: fingerprint `ac0db66e2c13edaa` is now `36951a3d486e584e`.
* Changed. The shape of `POST /v1/notifications/read` moved: fingerprint `7e371b3f018bc203` is now `8a2764c00a9b2eff`.
* Changed. The shape of `POST /v1/receipts/{idempotencyKey}/reviewed` moved: fingerprint `47151a0b9864ef3d` is now `a0ed8ccdaa6d377d`.
* Changed. The shape of `POST /v1/webhooks` moved: fingerprint `f80ff8ffe463e1df` is now `ec5b86818e0ca15c`.
* Changed. The shape of `POST /v1/webhooks/{webhookId}/rotate` moved: fingerprint `3eb1402b871d1adb` is now `f3d57bb5859a0be5`.
* Changed. The shape of `POST /v1/webhooks/{webhookId}/test` moved: fingerprint `838d2f9c2ac3c257` is now `b03100d84bbd8953`.
* Added. MCP tool `pause_run`.

## Changes the fingerprints cannot see

### Webhook payloads and copilot approvals, 2026-09-25

Changed. On the `run.ended` webhook, the field that carries the run's own
handle is named `runId`. It was `taskId`. A receiver reading `taskId` now reads
nothing: the field is absent rather than empty, so a strict parser fails and a
lenient one records an undefined id. `agentRunId`, the shareable id beside it,
is unchanged. See [Webhooks](/guides/webhooks) for the full payload.

Changed. In the copilot, the approval reason code for starting a run is
`start_run`. It was `run_task`. It is the value of `reason.code` on an approval
card, and the value an answer echoes back when it echoes one. The other three
codes are unchanged. Nothing rejects the old spelling loudly, so a client that
switches on this code will quietly draw its fallback card for a run it should
be naming.

Changed. `GET /v1/receipts` and `GET /v1/receipts/:idempotencyKey` no longer
carry `userId` or `viaCopilot` at the top level of a receipt. Read
`actor.userId` and `actor.viaCopilot`, which carry the same values. The
`Receipt` schema never declared the two top-level fields, so no fingerprint
moved.

## Other ways to find out what moved

An entry above tells you that a shape moved and when it was published. Three
things tell you more.

* **Read the generated references for what the surface is today.** The
  [API reference](/api) and the [tool reference](/mcp/reference) are produced
  from the source the server registers, so they cannot describe something that
  does not exist or leave out something that does. They are regenerated and
  republished with this site.
* **Pin the contract fingerprints to find out when a shape you parse moves.**
  That is a mechanism you can wire into your own pipeline today, and it is
  stronger than watching a page, because it fails your build rather than
  waiting to be read. See
  [Versioning and compatibility](/api/versioning#pin-the-shape-you-parse).
* **Read [Versioning and compatibility](/api/versioning)** for what we do and
  do not promise about `/v1`, stated plainly, including the policy for
  breaking changes after launch.

## Command line interface

The CLI is published to npm as `phonebase`, and its version is the npm
package's version. Every date below is the publish time npm recorded, so
`npm view phonebase time --json` checks this section without you having to
trust this page.

### 0.3.0, not yet published

This entry is written ahead of the publish and carries no date yet. Backfill
it when `publish-cli` has run.

Added. `phonebase login` logs the CLI in without copying a key by hand. It
prints a link and a short code and opens your browser; approve the request in
the console and the terminal receives a new API key for your organization,
named after the computer, and stores it in the macOS Keychain, the Linux
Secret Service, or a file only you can read. `phonebase login --with-key`
stores a key you already have after the server confirms it.
`phonebase whoami` shows the organization, key id, scopes and expiry of the
key in use and where it came from. `phonebase logout` revokes the stored key
and removes it from the machine.

Changed. Commands talk to the hosted control plane, `https://mcp.phonebase.co`,
unless `--server` says otherwise. They used to default to
`http://127.0.0.1:8788`, so a command against a control plane on your own
machine now needs `--server http://127.0.0.1:8788`, or
`PHONEBASE_SERVER=http://127.0.0.1:8788` set once in the shell.
`PHONEBASE_API_KEY` still takes precedence over a stored login, so CI keeps
working unchanged.

Security. `PHONEBASE_DEV_TOKEN` is now sent only to a loopback server. A
command that would have sent it anywhere else refuses and says how to target
a local control plane or log in to the hosted one.

Also in 0.3.0. These changes were prepared as 0.2.2, which was never
published; they ship in 0.3.0 instead.

Added. `phonebase <command> --help` now answers about that command: its usage
line, what each positional argument takes, the flags it reads and one runnable
example. Until now `--help` was read before the command word was, so all
sixteen commands printed the same index, and `phonebase swipe --help` listed
the signature without saying which of the two coordinate pairs the gesture
starts from.

Breaking, in a patch release, and called that rather than "changed": a
script on 0.2.1 that ran `phonebase rows list --server ...` exited 0 and now
exits 2. A flag a command does not read is now a usage error and exits 2,
which is what a misspelled flag already did. `phonebase devices --lease X` and
`phonebase doctor --json` used to be accepted in full and then ignored, so
there was no way to tell a flag that had taken effect from one that had not.
`--server` counts as one of these on `phonebase rows` and `phonebase mcp`:
neither talks to a control plane. `--help` and `--version` remain accepted
everywhere, because they ask about the CLI rather than about a command.

Fixed. `phonebase run --watch` on a `self_hosted` run now prints the worker URL
once, to an interactive terminal, before it starts watching. It used to print
nothing, so the worker had no way to reach the run and the run stayed `queued`
until its deadline. Where the URL has no safe place to go, `--json` or a stderr
that is not a terminal, `--executor self_hosted --watch` is refused before
anything starts, and a run your credential's default made `self_hosted` is
canceled at once with the remedy named.

Fixed. `phonebase run` without `--watch` no longer suggests
`phonebase run ... --watch` to follow the run, because that command starts a
new run. It names `GET /v1/runs/<runId>` and the `get_run` tool instead.

### 0.2.1, 2026-09-21

Fixed. Every command works again. `0.2.0` installed from npm and did nothing:
`phonebase --help`, `--version`, `doctor` and `devices` each exited 0 having
printed nothing at all. The entry guard decided whether it had been started as
a program by testing whether `argv[1]` ended in `main.js`, and npm installs a
bin as a symlink named `phonebase`, so on every installed copy the answer was
no and the program never ran. Running it out of a checkout was unaffected,
which is why it reached the registry. If you installed `0.2.0`, upgrade; there
is nothing to un-do, because it never did anything.

### 0.2.0, 2026-09-21

Withdrawn in favour of 0.2.1: as published, no command produced any output.
The changes below were in it and are in 0.2.1.

Security. `phonebase run` no longer writes the run's worker URL, which carries
the run token, to a stderr nobody is watching: when stderr is not a terminal
and neither `--json` nor `--watch` was given, the command is refused before a
run starts. Every earlier version is affected.

Added. Seven commands: `swipe`, `long-press`, `type`, `key`, `open`, `ui` and
`renew`, so a lease no longer expires under you and every gesture the service
offers can be sent from a terminal. `phonebase run` also prints the step budget
and deadline the run was actually given.

Added. `phonebase doctor` has an `auth` row, which passes only when a key is set
and listing devices with it succeeds, and otherwise says whether no key was set,
the key was rejected, or something else failed.

Changed. A remote control plane refusing your credential now reads
`not authenticated: set PHONEBASE_API_KEY` instead of saying the control plane
cannot be reached. `phonebase doctor` exits 1 on node 20 or 21, which the
package never supported.

### 0.1.3, 2026-09-02

Docs. The README on the package page documents `--version`.

### 0.1.2, 2026-09-02

Added. `phonebase --version` prints the CLI's own version, and asks nothing of
the network to do it. The package also carries its license file from this
release onwards, so the terms are in the tarball rather than only named by it.

### 0.1.1, 2026-09-02

Fixed. A link in the README on the package page pointed at a documentation
page that does not exist.

### 0.1.0, 2026-09-02

Added. First published release of the CLI. See
[Installation](/cli/installation).

## Before this record

The first artifact this page can date is the CLI release above. Changes made
before 2026-09-02 are not listed, because there is no published thing to date
them against, and a list assembled from memory is the kind of changelog that
is worse than none.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.