---
title: "Create a public demo workspace for one company"
method: POST
path: "/api/demo/provision"
---

# Create a public demo workspace for one company

`POST /api/demo/provision`

## Request

- Base URL: `https://app.atisbo.dev`
- URL: `https://app.atisbo.dev/api/demo/provision`
- Auth: none declared

Provisions a new, permanent Atisbo tenant seeded from a company's own public feedback (no data is invented). Rate limited per IP, per company and globally; all limits fail closed. Returns 422 with code NO_PUBLIC_FOOTPRINT when too little public feedback exists to build a real demo — a product answer, not an error. Creates a permanent tenant, so a network-dropped retry matters: send an Idempotency-Key to get the original response replayed instead of a second tenant.

## Headers

- `Idempotency-Key` string
- `X-API-Version` string

## Request body

- object
  - `company_name` string, required
  - `company_domain` string: Optional; improves de-duplication and search accuracy.

## Response `200`

Demo workspace created.

- object
  - `ok` true, required
  - `link_url` string, uri, required
  - `seed_total` integer
  - `note` string

## Other responses

- `400`: Invalid request body, or an X-API-Version header that is not a well-formed semantic version (code: invalid_api_version).
- `409`: The Idempotency-Key was already used with a different request body.
- `422`: Not enough public feedback exists for this company (code: NO_PUBLIC_FOOTPRINT).
- `429`: A per-IP, per-company, or global rate limit was reached.

---

[API](https://skmtc.dev/atisbo/apis/atisbo-api.md) · [All operations](https://skmtc.dev/atisbo/apis/atisbo-api/llms.txt) · [OpenAPI document](https://skmtc.dev/atisbo/apis/atisbo-api/revisions/708d199a2378?raw)
