Skip to content

Tasks

Create, read, update, archive and restore tasks. Task titles are user content — returned verbatim, never normalised.

GET

/tasks

Lists tasks visible to the key’s user, newest first.

Query parameters

  • projectIdintegeroptionalFilter to one project
  • statusstringoptionaltodo · in_progress · internal_review · client_review · completed
  • prioritystringoptionallow · medium · high
  • assigneeIdstringoptionalFilter to one assignee
  • limitintegeroptionalPage size, default 25, max 100
  • offsetintegeroptionalNumber of results to skip, default 0
  • fieldsstringoptionalComma-separated field names to trim the response to
  • expandstringoptionalComma-separated relations to include in full — comments
GET

/tasks/{id}

Gets full details of one task, including its last 10 comments.

Query parameters

  • fieldsstringoptionalComma-separated field names to trim the response to
POST

/tasks

Creates a task in a project.

Body parameters

  • projectIdintegerrequiredProject to create the task in
  • namestringrequiredTask title
  • descriptionstringoptionalRich-text description (HTML)
  • statusstringoptionalDefaults to todo
  • prioritystringoptionallow · medium · high, defaults to medium
  • assigneeIdstringoptionalUser ID to assign
  • categoryIdintegeroptionalJob-role category ID
  • typeIdintegeroptionalOutput/type ID
  • startDatedateoptionalISO 8601 date
  • deadlinedateoptionalISO 8601 date
  • customEstimatedHoursstringoptionalOverrides the category/type default time estimate
PATCH

/tasks/{id}

Updates one or more fields. Omitted fields are left unchanged. Tasks aren’t moved to a different project via this endpoint.

Body parameters

  • namestringoptionalTask title
  • descriptionstringoptionalRich-text description (HTML)
  • statusstringoptionalOne of the five board statuses
  • prioritystringoptionallow · medium · high
  • assigneeIdstringoptionalUser ID to assign, or null to unassign
  • startDatedateoptionalISO 8601 date
  • deadlinedateoptionalISO 8601 date
  • customEstimatedHoursstringoptionalOverrides the category/type default time estimate
POST

/tasks/{id}/archive

Archives a task. Archived tasks are read-only until restored.

POST

/tasks/{id}/unarchive

Restores a previously archived task.

View example
List tasks
curl "https://klaarin.com/api/v1/tasks?projectId=42&status=in_progress&limit=25" \
  -H "Authorization: Bearer kl_live_9f2ac…"
Response
{
  "data": [
    {
      "id": 318,
      "name": "Review homepage copy",
      "status": "in_progress",
      "priority": "high",
      "assignee": { "id": "clx...", "name": "Bayu Pratama", "email": "bayu@floothink.com" },
      "project": { "id": 42, "name": "Website Redesign" },
      "tags": ["urgent", "client-facing"],
      "deadline": "2026-08-07",
      "isArchived": false
    }
  ],
  "meta": { "total": 128, "limit": 25, "offset": 0, "hasMore": true }
}