Skip to Content
APIResourcesAdmin APIWorkspace (Public API)

Workspace (Public API)

Get and update workspace settings. Scoped to the API key’s workspace. GET returns id, name, rootFolderId, archiveFolderId (use archiveFolderId with GET /items/:id/items to list archived items). Placeholder: Update and branding/whitelabelling are not yet implemented.

Get workspace

GET /api/v2/workspace

Returns the workspace for the API key (id, name, rootFolderId, archiveFolderId). Use archiveFolderId with GET /items/:id/items to list archived items.

GET /api/v2/workspace
curl "https://api.markup.io/api/v2/workspace" \ -X GET \ -H "Authorization: Bearer <API-KEY-SECRET>" \ -H "Markup-API-Version: 2023-02-22" \ -H "Content-Type: application/json"
200 OK
{ "data": { "id": "some id", "name": "some name", "rootFolderId": "some rootFolderId" } }

Response Body - WorkspaceResponse

Create workspace

POST /api/v2/workspace

Create a new workspace in the API key’s organization. Only organization-scoped API keys can call this; workspace-scoped keys receive 403. Body: name (required). Returns 201 with WorkspaceResponse (id, name, rootFolderId, archiveFolderId).

POST /api/v2/workspace
curl "https://api.markup.io/api/v2/workspace" \ -X POST \ -H "Authorization: Bearer <API-KEY-SECRET>" \ -H "Markup-API-Version: 2023-02-22" \ -H "Content-Type: application/json" \ --data '{ "name": "My New Workspace" }'
200 OK
{ "data": { "id": "some id", "name": "some name", "rootFolderId": "some rootFolderId" } }

Response Body - WorkspaceResponse

Request Body CreateWorkspacePublicRequest

OptionType
name string

Workspace display name.

Update workspace

PATCH /api/v2/workspace

Update workspace name and/or slug. Pass workspaceId in query/body for org-scoped keys. Body: { name?: string, slug?: string }. At least one required. Returns 200 with WorkspaceResponse.

PATCH /api/v2/workspace
curl "https://api.markup.io/api/v2/workspace" \ -X PATCH \ -H "Authorization: Bearer <API-KEY-SECRET>" \ -H "Markup-API-Version: 2023-02-22" \ -H "Content-Type: application/json" \ --data '{}'
200 OK
{ "data": { "id": "some id", "name": "some name", "rootFolderId": "some rootFolderId" } }

Response Body - WorkspaceResponse

Request Body UpdateWorkspacePublicRequest

OptionType
name optionalstring
slug optionalstring

Delete workspace

DELETE /api/v2/workspace

Delete a workspace. Organization-scoped API keys can delete any workspace in the org (pass workspaceId in query or body). Workspace-scoped API keys can delete only the workspace they manage (no workspaceId needed). Returns 204 on success.

DELETE /api/v2/workspace
curl "https://api.markup.io/api/v2/workspace" \ -X DELETE \ -H "Authorization: Bearer <API-KEY-SECRET>" \ -H "Markup-API-Version: 2023-02-22" \ -H "Content-Type: application/json"
Response
204 No Content

WorkspaceResponse

OptionType
id string
name string
rootFolderId string