Platform documentation

Tasks API

Tasks API

Overview

Tasks use short public codes (taskCode, listCode, templateCode, parentCode) - not UUIDs. Responses use camelCase. Discovery endpoints help you find codes before create/update.

Endpoints

  • GET /tasks - list tasks

  • GET /tasks/{taskCode} - get one task

  • POST /tasks - create task (optional listCode, parentCode, templateCode, assignees, OKR/KPI/wiki links)

  • PATCH /tasks/{taskCode} - update fields, move list/parent, change assignees, link OKR/KPI/wiki

  • GET /tasks/folders - folder hierarchy with nested lists (listCode on each list)

  • GET /tasks/lists - flat list of task lists

  • GET /tasks/lists/{listCode} - list metadata

  • GET /tasks/lists/{listCode}/tasks - list or create tasks in a list

  • GET /tasks/templates - list templates

  • GET /tasks/templates/{templateCode} - template structure preview (no task creation)

  • POST /tasks/templates/{templateCode}/tasks - instantiate template

  • GET /tasks/members - assignable workspace members (email, firstName, lastName)

Scopes

tasks:read for GET; tasks:write for POST and PATCH. User needs Tasks page read/create/update permission.

Limits

  • Up to 7 nesting levels (root depth 0)

  • Up to 1,000 subtasks per parent (including nested)

  • Up to 50,000 tasks per list (subtasks count toward the list total)

  • Recurring settings are removed when a task has 500+ subtasks

List tasks (GET /tasks)

  • limit, offset - pagination

  • status - todo | in_progress | completed

  • listCode - filter by short list code from GET /tasks/lists

  • assigneeEmail - filter by assignee email

  • search - match title or description (case-insensitive)

  • includeSubtasks - when false (default), only top-level tasks

curl "https://api.elevale.app/v1/workspaces/{workspaceId}/tasks?limit=10&listCode=l8k2mnp4x" \
  -H "Authorization: Bearer elv_pat_..."

Get task (GET /tasks/{taskCode})

Returns task detail with taskCode, listCode, parentCode, assigneeEmails, subtaskCount, and linked okrId / kpiId / wikiPageSlug when set.

curl "https://api.elevale.app/v1/workspaces/{workspaceId}/tasks/t4idqd7wa" \
  -H "Authorization: Bearer elv_pat_..."

Folders (GET /tasks/folders)

Returns nested folders; each folder includes lists with listCode, name, and orderIndex. Use listCode on create or PATCH to place tasks.

Create body (POST /tasks or POST .../lists/{listCode}/tasks)

  • title (required unless templateCode) - string

  • description, status, priority, dueDate - optional

  • listCode - short list code (optional on POST /tasks; implied when posting under /lists/{listCode}/tasks)

  • parentCode / parentId - create as subtask under parent taskCode

  • templateCode - instantiate a template (body fields override template root)

  • assigneeEmail / assigneeEmails - workspace member email(s)

  • okrId - link OKR UUID from GET /okrs

  • kpiId - link KPI UUID from GET /kpis

  • wikiPageSlug - link wiki page slug from GET /wiki/pages

curl -X POST "https://api.elevale.app/v1/workspaces/{workspaceId}/tasks" \
  -H "Authorization: Bearer elv_pat_..." \
  -H "Content-Type: application/json" \
  -d '{"title":"Follow up","parentCode":"t4idqd7wa","listCode":"l8k2mnp4x","assigneeEmail":"[email protected]"}'

Template preview (GET /tasks/templates/{templateCode})

Read-only structure of the template tree (titles, priorities, nested children) before calling POST .../templates/{templateCode}/tasks.

Update body (PATCH /tasks/{taskCode})

  • title, description, status, priority, dueDate - standard fields

  • listCode - move task to a list

  • clearList - true to remove from list

  • parentCode / parentId - move under another task

  • clearParent - true to promote to top-level

  • assigneeEmail / assigneeEmails - replace assignees

  • clearAssignees - true to remove all assignees

  • okrId, kpiId, wikiPageSlug - link or unlink (null to clear)

curl -X PATCH "https://api.elevale.app/v1/workspaces/{workspaceId}/tasks/t4idqd7wa" \
  -H "Authorization: Bearer elv_pat_..." \
  -H "Content-Type: application/json" \
  -d '{"status":"in_progress","listCode":"l8k2mnp4x"}'

Related

Personal access tokens (PATs) · Scopes and permissions · Reading data (GET API)