> clickup-core-workflow-b

Manage ClickUp workspaces, spaces, folders, lists, and views via API v2. Use when creating project structures, organizing spaces and lists, or managing the ClickUp hierarchy programmatically. Trigger: "clickup space", "clickup folder", "clickup list", "clickup views", "create clickup space", "organize clickup workspace", "clickup hierarchy".

fetch
$curl "https://skillshub.wtf/jeremylongshore/claude-code-plugins-plus-skills/clickup-core-workflow-b?format=md"
SKILL.mdclickup-core-workflow-b

ClickUp Core Workflow B — Spaces, Folders, Lists & Views

Overview

Manage the ClickUp organizational hierarchy: Workspace > Space > Folder > List. Also covers views (list, board, calendar, gantt) and tags.

Space Operations

POST   /api/v2/team/{team_id}/space          Create Space
GET    /api/v2/team/{team_id}/space           Get Spaces
GET    /api/v2/space/{space_id}               Get Space
PUT    /api/v2/space/{space_id}               Update Space
DELETE /api/v2/space/{space_id}               Delete Space
// Create a Space with ClickApps enabled
async function createSpace(teamId: string, name: string) {
  return clickupRequest(`/team/${teamId}/space`, {
    method: 'POST',
    body: JSON.stringify({
      name,
      multiple_assignees: true,
      features: {
        due_dates: { enabled: true, start_date: true, remap_due_dates: true },
        time_tracking: { enabled: true },
        tags: { enabled: true },
        time_estimates: { enabled: true },
        checklists: { enabled: true },
        custom_fields: { enabled: true },
        points: { enabled: false },
      },
    }),
  });
}

Folder Operations

POST   /api/v2/space/{space_id}/folder        Create Folder
GET    /api/v2/space/{space_id}/folder         Get Folders
GET    /api/v2/folder/{folder_id}              Get Folder
PUT    /api/v2/folder/{folder_id}              Update Folder
DELETE /api/v2/folder/{folder_id}              Delete Folder
async function createFolder(spaceId: string, name: string) {
  return clickupRequest(`/space/${spaceId}/folder`, {
    method: 'POST',
    body: JSON.stringify({ name }),
  });
}

List Operations

POST   /api/v2/folder/{folder_id}/list         Create List in Folder
POST   /api/v2/space/{space_id}/list            Create Folderless List
GET    /api/v2/folder/{folder_id}/list           Get Lists in Folder
GET    /api/v2/space/{space_id}/list              Get Folderless Lists
GET    /api/v2/list/{list_id}                    Get List
PUT    /api/v2/list/{list_id}                    Update List
DELETE /api/v2/list/{list_id}                    Delete List
// Create list with custom statuses
async function createList(folderId: string, name: string) {
  return clickupRequest(`/folder/${folderId}/list`, {
    method: 'POST',
    body: JSON.stringify({
      name,
      content: 'List description here',
      due_date: Date.now() + 604800000, // 1 week from now
      priority: 2,
      status: 'to do',
    }),
  });
}

// Create folderless list (directly in space)
async function createFolderlessList(spaceId: string, name: string) {
  return clickupRequest(`/space/${spaceId}/list`, {
    method: 'POST',
    body: JSON.stringify({ name }),
  });
}

View Operations

POST   /api/v2/list/{list_id}/view             Create List View
POST   /api/v2/folder/{folder_id}/view          Create Folder View
POST   /api/v2/team/{team_id}/view             Create Workspace View
GET    /api/v2/view/{view_id}                   Get View
GET    /api/v2/view/{view_id}/task              Get View Tasks
DELETE /api/v2/view/{view_id}                   Delete View

Supported view types: list, board, calendar, gantt, table, timeline, workload, activity, map, chat.

async function createBoardView(listId: string, name: string) {
  return clickupRequest(`/list/${listId}/view`, {
    method: 'POST',
    body: JSON.stringify({
      name,
      type: 'board',
      grouping: { field: 'status', dir: 1 },
      sorting: { fields: [{ field: 'due_date', dir: 1 }] },
    }),
  });
}

Tag Operations

GET    /api/v2/space/{space_id}/tag             Get Space Tags
POST   /api/v2/task/{task_id}/tag/{tag_name}    Add Tag to Task
DELETE /api/v2/task/{task_id}/tag/{tag_name}     Remove Tag from Task

Build a Complete Project Structure

async function scaffoldProject(teamId: string, projectName: string) {
  // 1. Create space
  const space = await createSpace(teamId, projectName);

  // 2. Create folders for phases
  const folders = await Promise.all(
    ['Planning', 'Development', 'QA', 'Deployment'].map(name =>
      createFolder(space.id, name)
    )
  );

  // 3. Create lists in each folder
  for (const folder of folders) {
    await createList(folder.id, `${folder.name} Tasks`);
  }

  // 4. Create a board view on the development folder
  const devFolder = folders[1];
  const lists = await clickupRequest(`/folder/${devFolder.id}/list`);
  await createBoardView(lists.lists[0].id, 'Sprint Board');

  return { space, folders };
}

Error Handling

StatusCauseSolution
400Missing name fieldName is required for spaces/folders/lists
403Insufficient permissionsNeed admin access for space creation
404Invalid parent IDVerify team_id/space_id/folder_id

Resources

Next Steps

For error troubleshooting, see clickup-common-errors.

┌ stats

installs/wk0
░░░░░░░░░░
github stars1.7K
██████████
first seenMar 23, 2026
└────────────

┌ repo

jeremylongshore/claude-code-plugins-plus-skills
by jeremylongshore
└────────────