# Teamspaces

Groups of pages with their own members. Open teamspaces are visible to every member; closed and private ones are not.

## Endpoints

- [Update a teamspace](https://developers.lydie.co/api/teamspaces/update-a-teamspace.md): `PATCH /v1/teamspaces/{teamspaceId}`
- [Delete a teamspace](https://developers.lydie.co/api/teamspaces/delete-a-teamspace.md): `DELETE /v1/teamspaces/{teamspaceId}`
- [Join an open teamspace](https://developers.lydie.co/api/teamspaces/join-an-open-teamspace.md): `POST /v1/teamspaces/{teamspaceId}/join`
- [Leave a teamspace](https://developers.lydie.co/api/teamspaces/leave-a-teamspace.md): `POST /v1/teamspaces/{teamspaceId}/leave`
- [List teamspace members](https://developers.lydie.co/api/teamspaces/list-teamspace-members.md): `GET /v1/teamspaces/{teamspaceId}/members`
- [Add someone to a teamspace](https://developers.lydie.co/api/teamspaces/add-someone-to-a-teamspace.md): `POST /v1/teamspaces/{teamspaceId}/members`
- [Remove someone from a teamspace](https://developers.lydie.co/api/teamspaces/remove-someone-from-a-teamspace.md): `DELETE /v1/teamspaces/{teamspaceId}/members/{userId}`
- [Change a teamspace member's role](https://developers.lydie.co/api/teamspaces/change-a-teamspace-members-role.md): `POST /v1/teamspaces/{teamspaceId}/members/{userId}/role`
- [Restore a deleted teamspace](https://developers.lydie.co/api/teamspaces/restore-a-deleted-teamspace.md): `POST /v1/teamspaces/{teamspaceId}/restore`
- [List teamspaces](https://developers.lydie.co/api/teamspaces/list-teamspaces.md): `GET /v1/workspaces/{workspaceId}/teamspaces`
- [Create a teamspace](https://developers.lydie.co/api/teamspaces/create-a-teamspace.md): `POST /v1/workspaces/{workspaceId}/teamspaces`

## The Teamspace object

- `id` (string, required): (1–64 chars)
- `workspaceId` (string, required): (1–64 chars)
- `name` (string, required)
- `description` (string, required)
- `icon` (string, required, nullable)
- `visibility` (string, required): One of: `open`, `closed`, `private`.
- `isDefault` (boolean, required)
- `myRole` (string, required, nullable): One of: `owner`, `member`.
- `createdAt` (timestamp, required)
- `updatedAt` (timestamp, required)
- `deletedAt` (timestamp, optional, nullable)

```json
{
  "id": "string",
  "workspaceId": "01JCQ3TZ0WJ8K4M2X7T9R6N1PA",
  "name": "Notes",
  "description": "string",
  "icon": null,
  "visibility": "open",
  "isDefault": false,
  "myRole": null,
  "createdAt": "2026-11-12T09:30:00.000Z",
  "updatedAt": "2026-11-12T09:30:00.000Z",
  "deletedAt": null
}
```
