---
title: "Create a space"
method: POST
path: "/spaces"
---

# Create a space

`POST /spaces`

Creates a new Ghost space. Requires user authentication (JWT).
API keys cannot be used to create spaces.
When no name is provided, the space is named after its owner
(e.g. "Jane Doe's space").

## Request body

- CreateSpaceRequest — Request to create a new space.
  - `name` string — Name for the new space. When omitted, the space is named after its owner (e.g. "Jane Doe's space").

## Response `201`

Space created

- Space — A Ghost space.
  - `id` string, required — Space ID.
  - `name` string, required — Space name.
  - `role` 'owner' | 'admin' | 'developer' | 'viewer' — A member's role within a space. The `owner` role belongs to the user who created the space; every space has exactly one owner, so `owner` is never accepted as an input when granting a role. On the `Space` schema, this is the caller's own role in the space, omitted for API-key authentication (API keys are space-scoped and carry no member identity).

## Other responses

- `default` — Error response

---

[API](https://skmtc.net/timescale/apis/ghost-api.md) · [All operations](https://skmtc.net/timescale/apis/ghost-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/timescale/ghost-api/versions/808022f897be/schema)
