Skip to main content
A Space is a community container — a named area where users can post entities, discuss in threads, and interact under configurable membership and permission rules. Spaces support hierarchical nesting, customizable read/post permissions, avatar and banner images, and an optional digest/newsletter webhook. The API returns three space shapes depending on context:
  • Space — the standard shape, returned when fetching a list of spaces.
  • SpaceDetailed — returned when fetching a single space by ID, shortId, or slug. A superset of Space with added permission and hierarchy context.
  • SpacePreview — a minimal snapshot, never returned as a standalone response. Only appears embedded inside SpaceDetailed as the shape of parentSpace and each item in childSpaces[].

Space

PropertyTypeDescription
idstringUnique space identifier (UUID).
shortIdstringShort human-readable ID for the space (URL-safe, generated automatically).
projectIdstringThe project this space belongs to.
slugstring | nullOptional URL-friendly slug. Unique per project when set.
namestringDisplay name of the space (3–100 characters).
descriptionstring | nullOptional description (up to 1,000 characters).
userIdstringID of the space creator/owner.
avatarFileIdstring | nullID of the space’s avatar image file.
avatarFileFile | undefinedPopulated avatar file object. Only present when include: "files" is requested.
bannerFileIdstring | nullID of the space’s banner image file.
bannerFileFile | undefinedPopulated banner file object. Only present when include: "files" is requested.
readingPermission"anyone" | "members"Who can read content in the space.
postingPermission"anyone" | "members" | "admins"Who can post content in the space.
requireJoinApprovalbooleanWhether joining requires moderator/admin approval. When true, new joins enter pending status.
parentSpaceIdstring | nullID of the parent space, if this is a sub-space.
depthnumberNesting depth (0 for root spaces, incremented for each sub-level). Maximum depth is 10.
metadataRecord<string, any>Arbitrary key-value data attached to the space. Up to 1 MB.
isMemberboolean | undefinedWhether the authenticated user is a member of this space. Only present when the user is signed in.
membersCountnumberComputed count of active members.
childSpacesCountnumberComputed count of direct child spaces.
createdAtDateTimestamp when the space was created.
updatedAtDateTimestamp when the space was last updated.

SpaceDetailed

Returned when fetching a single space by ID, shortId, or slug. Includes all Space fields plus the following:
PropertyTypeDescription
memberPermissionsSpaceMemberPermissions | nullThe authenticated user’s resolved permissions in this space. null if the user is not a member.
parentSpaceSpacePreview | nullPreview of the parent space. null for root-level spaces.
childSpacesSpacePreview[]Preview of up to 10 immediate child spaces.

SpacePreview

A minimal space shape used only as an embedded reference — never returned directly by any endpoint. Appears as SpaceDetailed.parentSpace (the space one level up) and inside SpaceDetailed.childSpaces[] (spaces one level down).
PropertyTypeDescription
idstringSpace UUID.
shortIdstringShort identifier.
namestringDisplay name.
slugstring | nullURL slug.
avatarFileIdstring | nullAvatar file ID.
readingPermission"anyone" | "members" | undefinedReading permission level.
parentSpaceIdstring | null | undefinedParent space reference.
depthnumber | undefinedNesting depth.

SpaceMemberPermissions

Included in SpaceDetailed.memberPermissions for authenticated users who are members.
PropertyTypeDescription
isAdminbooleanWhether the user is an admin of this space.
isModeratorbooleanWhether the user is a moderator of this space.
isMemberbooleanWhether the user has an active membership.
status"pending" | "active" | "banned" | nullThe user’s membership status.
canPostbooleanWhether the user can post entities in this space.
canModeratebooleanWhether the user can perform moderation actions.
canReadbooleanWhether the user can read content in this space.