---
title: "Approve a hotfix request"
method: POST
path: "/app/{appId}/hotfixRequests/{requestId}/approve"
tags: ["hotfix requests"]
---

# Approve a hotfix request

`POST /app/{appId}/hotfixRequests/{requestId}/approve`

## Request

- Base URL: `https://api.runway.team`
- URL: `https://api.runway.team/app/{appId}/hotfixRequests/{requestId}/approve`
- Auth: API key in header `X-API-Key`

Requires CreateHotfix permission. finalProposal is optional and defaults to the current proposal. If it changes the current proposal, prior approvals are reset before the caller's approval is recorded. Approval can create the resulting release once the required approval count is reached.

## Path parameters

- `appId` string, required
- `requestId` string, required

## Request body

- object
  - `expectedRevision` integer, required
  - `finalProposal` HotfixProposal
    - `releaseType` 'hotfix' | 'rollback', required
    - `proposedVersion` string, required
    - `releaseName` string
    - `base` CreateReleaseBaseTag: Hotfixes only. The release tag to branch the hotfix from. Defaults to the tag of the latest completed release. Must match an existing release tag on the app, otherwise the request is rejected.
      - `name` string, required: The name of the release tag, as returned by `GET /app/{appId}/releaseTags`. The version that tag marks is accepted here too, so both `v1.0.0` and `1.0.0` resolve to the same tag.
    - `shouldCreateBranch` boolean
    - `shouldBumpVersionOnBranch` boolean
    - `commitsToCherryPick` string[]
    - `rollbackSourceVersion` string
    - `rollbackResigningStrategy` 'localResign' | 'ciResign'
    - `shouldMatchPreviousPhasedRelease` boolean
    - `destinationOptions` object
      - `action` 'include' | 'exclude'
      - `destinationIds` string[]

## Response `200`

Updated hotfix request

- HotfixRequestDetail
  - `request` HotfixRequest
    - `id` string
    - `status` 'pending' | 'approving' | 'approved' | 'rejected' | 'cancelled'
    - `proposal` HotfixProposal
      - `releaseType` 'hotfix' | 'rollback', required
      - `proposedVersion` string, required
      - `releaseName` string
      - `base` CreateReleaseBaseTag: Hotfixes only. The release tag to branch the hotfix from. Defaults to the tag of the latest completed release. Must match an existing release tag on the app, otherwise the request is rejected.
        - `name` string, required: The name of the release tag, as returned by `GET /app/{appId}/releaseTags`. The version that tag marks is accepted here too, so both `v1.0.0` and `1.0.0` resolve to the same tag.
      - `shouldCreateBranch` boolean
      - `shouldBumpVersionOnBranch` boolean
      - `commitsToCherryPick` string[]
      - `rollbackSourceVersion` string
      - `rollbackResigningStrategy` 'localResign' | 'ciResign'
      - `shouldMatchPreviousPhasedRelease` boolean
      - `destinationOptions` object
        - `action` 'include' | 'exclude'
        - `destinationIds` string[]
    - `justification` string
    - `formFieldValues` HotfixRequestFormFieldValue[]
      - `fieldId` string, required
      - `value` string, required
    - `finalProposal` HotfixProposal
      - `releaseType` 'hotfix' | 'rollback', required
      - `proposedVersion` string, required
      - `releaseName` string
      - `base` CreateReleaseBaseTag: Hotfixes only. The release tag to branch the hotfix from. Defaults to the tag of the latest completed release. Must match an existing release tag on the app, otherwise the request is rejected.
        - `name` string, required: The name of the release tag, as returned by `GET /app/{appId}/releaseTags`. The version that tag marks is accepted here too, so both `v1.0.0` and `1.0.0` resolve to the same tag.
      - `shouldCreateBranch` boolean
      - `shouldBumpVersionOnBranch` boolean
      - `commitsToCherryPick` string[]
      - `rollbackSourceVersion` string
      - `rollbackResigningStrategy` 'localResign' | 'ciResign'
      - `shouldMatchPreviousPhasedRelease` boolean
      - `destinationOptions` object
        - `action` 'include' | 'exclude'
        - `destinationIds` string[]
    - `createdBy` string
    - `createdAt` string, date-time
    - `updatedAt` string, date-time
    - `revision` integer
    - `terminalReason` string
    - `terminalAt` string, date-time
    - `terminalBy` string
    - `resultingReleaseId` string
    - `approvalCount` integer
  - `auditEvents` object[]
  - `approvals` object[]

---

[API](https://skmtc.dev/runway/apis/runway-rest-api.md) - [All operations](https://skmtc.dev/runway/apis/runway-rest-api/llms.txt) - [OpenAPI document](https://skmtc.dev/runway/apis/runway-rest-api/revisions/081109863a9a?raw)
