---
title: "Create or return the signed-in principal’s one stable personal workspace and current usage."
method: POST
path: "/v1/browser/bootstrap"
---

# Create or return the signed-in principal’s one stable personal workspace and current usage.

`POST /v1/browser/bootstrap`

## Request

- Base URL: `http://127.0.0.1:8080`
- URL: `http://127.0.0.1:8080/v1/browser/bootstrap`
- Auth: HTTP bearer

Uses a verified first-party Clerk session. Creation atomically adds owner membership and the fixed onboarding grant once. Replay requires live membership and never restores revoked ownership.

## Response `200`

Existing active personal workspace.

- BrowserBootstrap
  - `workspaceId` string, required
  - `created` boolean, required
  - `usage` Usage, required: Response counts for observability. These values never gate acceptance or create a charge.
    - `acceptedResponses` integer, required: Lifetime accepted response count.
    - `monthAcceptedResponses` integer, required: Accepted response count in the current UTC month.

## Other responses

- `201`: Personal workspace created.
- `400`: Invalid input, resource identifier or workspace selection.
- `401`: Missing/invalid bearer credential, including wrong collection credential.
- `403`: The credential scope, membership or role does not permit this operation.
- `429`: Admission or collection rate limit reached. Honor Retry-After in seconds; admission usually returns1, the collection minute window returns60.
- `500`: Internal failure; do not assume a write failed. Retry only with its original idempotency key and payload.
- `503`: Distributed request admission is temporarily unavailable. No protected handler ran; honor Retry-After.

---

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