---
title: "Promote a patch to a channel."
method: POST
path: "/apps/{appId}/patches/promote"
tags: ["patches"]
---

# Promote a patch to a channel.

`POST /apps/{appId}/patches/promote`

## Request

- Base URL: `https://api.shorebird.dev/api/v1`
- URL: `https://api.shorebird.dev/api/v1/apps/{appId}/patches/promote`
- Auth: one of:
  - HTTP bearer
  - HTTP bearer

Moves the patch onto the channel. When the channel is protected the
patch does not move: an approval request is filed instead, replacing
any pending one for the same release and channel, and the answer is
`409` (`patch_approval_required`) with a message linking to the
request in the console.

## Request body

- PromotePatchRequest: The request body for POST /apps/{appId}/patches/promote.
  - `patch_id` integer, required: The ID of the patch.
  - `channel_id` integer, required: The ID of the channel.

## Response `204`

The patch was promoted.

## Other responses

- `409`: The channel is protected, so an approval request was filed instead (`patch_approval_required`).
- `default`: Standard error response. Emitted for any non-2xx status where a body can be decoded into an [ErrorResponse].

## Changes

- **2026-11-05** `941da8871d10`: 2 info
  - added the non-success response with the status `409`
  - added the optional property `documentation_url` to the response with the `default` status

[Operation history](https://skmtc.dev/shorebird/apis/shorebird-codepush-api/changes/apps/:appId/patches/promote/post.md)

---

[API](https://skmtc.dev/shorebird/apis/shorebird-codepush-api.md) - [All operations](https://skmtc.dev/shorebird/apis/shorebird-codepush-api/llms.txt) - [OpenAPI document](https://skmtc.dev/shorebird/apis/shorebird-codepush-api/revisions/941da8871d10?raw)
