---
title: "Reset all three companies to the published demo baseline"
method: POST
path: "/demo/reset"
tags: ["Administration"]
---

# Reset all three companies to the published demo baseline

`POST /demo/reset`

## Request

- Base URL: `https://ledgerhq.pro/api/v1`
- URL: `https://ledgerhq.pro/api/v1/demo/reset`
- Auth: one of:
  - HTTP bearer and API key in header `x-organization-id`
  - HTTP bearer and API key in header `x-organization-id`

Owner/admin route. Requires the single-use token from reset-preview and confirmed=true. The reset serializes per workspace, prepares statement objects before changing rows, rebuilds all three companies transactionally with stable ids, validates balances/counts, preserves login/access/sponsorship/audit evidence, and never scopes outside the caller's demo firm.

## Request body

- object
  - `confirmationToken` string, required
  - `confirmed` true, required
  - `reason` string, nullable

## Response `200`

Completed reset or currently running reset

## Other responses

- `409`: Expired/stale token or workspace state conflict
- `default`: Error response

---

[API](https://skmtc.dev/ledgerhq-pro/apis/ledgerhq-bookkeeping-api.md) · [All operations](https://skmtc.dev/ledgerhq-pro/apis/ledgerhq-bookkeeping-api/llms.txt) · [OpenAPI document](https://skmtc.dev/ledgerhq-pro/apis/ledgerhq-bookkeeping-api/revisions/9a8269f0a586?raw)
