---
title: "Finalize browser install"
method: POST
path: "/install/finish"
tags: ["Install"]
---

# Finalize browser install

`POST /install/finish`

Persists settings, runtime secrets, and install outputs, then schedules the install-mode process to exit cleanly. Requires the one-time install token.

## Response `202`

Install persisted successfully; restart handoff in progress

- InstallFinishResponse — Response returned after install outputs are persisted successfully.
  - `status` 'completing', required
  - `restart_url` string, uri, required
  - `dev_token` string — Dev token used to bootstrap login. Only included when the operator chose the personal access token flow; GitHub App installs rely on OAuth and do not receive a dev token.

## Other responses

- `401` — Invalid or missing install token
- `422` — Install session is incomplete
- `500` — Install persistence failed

---

[API](https://skmtc.net/fabro-sh/apis/fabro-run-api.md) · [All operations](https://skmtc.net/fabro-sh/apis/fabro-run-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/fabro-sh/fabro-run-api/revisions/52f1d8aaf083/schema)
