Spaces
Create and manage spaces (top-level containers) and see who has access.
Get All Spaces
Returns the location workspace (`id`, `name`) and every space the token can access. Marketplace example: bootstrap a Projects UI by listing spaces, then create a folder/list under one space.
Create Space
Creates a top-level space (optional privacy + `userIds` when private). A default list is seeded server-side but is not returned on the public response.
Get Space
Fetches one space by id, including name, privacy, and color.
Update Space
Updates space fields such as name, color, or privacy. `color` must be one of the 16 palette swatches. When setting `isPrivate: true`, `userIds` is required and those users are granted access (add-only — omitting a user does not revoke). Revoke with `DELETE /projects/spaces/{spaceId}/users/{userId}`. Setting `isPrivate: false` makes the space public for the location; existing direct grants remain but no longer gate access while public.
Delete Space
Deletes a space. Response: `{ 'success': true }` (no `id`). Nested folders, lists, and related data follow the product delete rules for that space.
Get Users With Space Access
Lists users with access as one unified `users` page (`source`: `direct` | `inherited`). `skip` / `limit` / `total` apply to the combined list (direct first). No name/email/photo and no `query` filter. Revoke a direct grant with `DELETE /projects/spaces/{spaceId}/users/{userId}`. PATCH `userIds` only adds grants.
Revoke Space Member
Revokes a direct user grant on the space. Idempotent if the grant is already absent. Does not change `isPrivate`. Inherited access from ancestors is unchanged.