---
title: "Approve the exact plan"
method: POST
path: "/browser-sessions/{sid}:approve"
tags: ["Cloud browser"]
---

# Approve the exact plan

`POST /browser-sessions/{sid}:approve`

## Request

- Base URL: `https://api.customdomain.ai/v1`
- URL: `https://api.customdomain.ai/v1/browser-sessions/{sid}:approve`
- Auth: HTTP bearer

Works once, only in `plan_ready`, only within the approval window (180 seconds), and only with the exact current plan hash. A wrong hash writes nothing. If the records changed after the plan was made, the session returns to `checking` with a fresh plan and a new hash.

## Path parameters

- `sid` string, required

## Request body

- object
  - `plan_hash` string, required: All 64 hex characters of the plan hash on screen.

## Response `202`

Applying.

- object
  - `state` 'applying'

## Other responses

- `401`: Error envelope: {code, title, details}.
- `409`: `browser_plan_mismatch` (not the current plan) or `browser_wrong_state` (not in `plan_ready`, or already approved).
- `410`: `browser_expired`: the approval window ran out.

---

[API](https://skmtc.dev/customdomain/apis/customdomain-control-plane-api.md) · [All operations](https://skmtc.dev/customdomain/apis/customdomain-control-plane-api/llms.txt) · [OpenAPI document](https://skmtc.dev/customdomain/apis/customdomain-control-plane-api/revisions/34d89cb7a7cd?raw)
