Skip to main content

Spaces API

Manage spaces within a workspace.

List Spaces

GET /v1/spaces

Returns all spaces in a workspace.

Parameters

ParameterTypeRequiredDescription
workspaceIdstringYesWorkspace ID

Example Request

curl "http://localhost:3000/api/spaces?workspaceId=ws_123" \
-H "Authorization: Bearer $API_KEY"

Example Response

{
"data": [
{
"id": "space_abc123",
"name": "Engineering",
"slug": "engineering",
"description": "Technical documentation",
"icon": "code",
"visibility": "public",
"workspaceId": "ws_123",
"createdAt": "2024-08-01T10:00:00Z",
"pageCount": 45
}
]
}

Get Space

GET /v1/spaces/:spaceId

Returns details for a specific space.

Parameters

ParameterTypeRequiredDescription
spaceIdstringYesSpace ID
workspaceIdqueryYesWorkspace ID

Example Response

{
"data": {
"id": "space_abc123",
"name": "Engineering",
"slug": "engineering",
"description": "Technical documentation and guides",
"icon": "code",
"visibility": "public",
"workspaceId": "ws_123",
"createdAt": "2024-08-01T10:00:00Z",
"updatedAt": "2025-01-15T14:00:00Z",
"pageCount": 45,
"memberCount": 12
}
}

Create Space

POST /v1/spaces

Creates a new space.

Body Parameters

ParameterTypeRequiredDescription
workspaceIdstringYesWorkspace ID
namestringYesSpace name
descriptionstringNoSpace description
slugstringNoURL slug (auto-generated if omitted)
iconstringNoEmoji or icon
visibilitystringNopublic or private

Example Request

curl -X POST "http://localhost:3000/api/spaces" \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"workspaceId": "ws_123",
"name": "Product",
"description": "Product documentation and specs",
"visibility": "public"
}'

Update Space

PUT /v1/spaces/:spaceId

Updates an existing space.

Body Parameters

ParameterTypeRequiredDescription
workspaceIdstringYesWorkspace ID
namestringNoNew name
descriptionstringNoNew description
iconstringNoNew icon
visibilitystringNoNew visibility

Delete Space

DELETE /v1/spaces/:spaceId

Deletes a space and all its pages.

danger

This action is irreversible. All pages in the space will be deleted.

Parameters

ParameterTypeRequiredDescription
spaceIdstringYesSpace ID
workspaceIdqueryYesWorkspace ID

List Space Members

GET /v1/spaces/:spaceId/members

Returns members with access to this space.

Example Response

{
"data": [
{
"id": "user_123",
"name": "John Doe",
"email": "john@acme.com",
"role": "admin",
"addedAt": "2024-08-01T10:00:00Z"
}
]
}

Add Space Member

POST /v1/spaces/:spaceId/members

Adds a member to the space.

Body Parameters

ParameterTypeRequiredDescription
workspaceIdstringYesWorkspace ID
userIdsstring[]NoUser IDs to add
groupIdsstring[]NoGroup IDs to add
rolestringYesRole: admin, editor, viewer

Update Space Permissions

PUT /v1/spaces/:spaceId/permissions

Updates permissions for a user or group.

Body Parameters

ParameterTypeRequiredDescription
workspaceIdstringYesWorkspace ID
targetIdstringYesUser or group ID
rolestringYesNew role
isGroupbooleanNoTrue if targetId is a group

Remove Space Member

DELETE /v1/spaces/:spaceId/members/:userId

Removes a member from the space.