---
title: "Create space"
method: POST
path: "/api/spaces"
tags: ["Space"]
---

# Create space

`POST /api/spaces`

## Request

- Base URL: `https://makefx.app`
- URL: `https://makefx.app/api/spaces`
- Auth: one of:
  - OAuth 2 (authorization code, authorization URL `https://makefx.app/api/oauth/authorize`, token URL `https://makefx.app/api/oauth/token`, scopes: `write`)
  - API key in cookie `auth_token`

Creates one account-scoped space. An address derived from the name is numbered past a collision; a space_id the caller names is never suffixed and answers 409 if it is taken.

## Headers

- `API-Version` '2026-09-10'

## Request body

- object
  - `account_id` string
  - `name` string, required
  - `space_id` string

## Response `200`

Success

- object
  - `space` object, required
    - `space_id` string, required
    - `account_id` string, required
    - `role` 'owner' | 'editor' | 'viewer', required
    - `name` string, required
    - `asset_count` integer, required
    - `is_public` boolean, required
    - `created_at` string, date-time, required
    - `updated_at` string, date-time, required
    - `web_url` string, uri, required

## Other responses

- `400`: The request did not match the schema
- `401`: No valid credentials. WWW-Authenticate names the protected resource metadata to start from
- `403`: The credentials are valid but not enough: the token lacks the scope, or the action needs a browser session rather than an app token
- `404`: Not found
- `409`: The local space id is already reserved in this account
- `429`: Rate limited. RateLimit names the policy; Retry-After says when to try again
- `500`: Internal server error

---

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