Tasks

Browse the API reference and sample payloads for Time Magic integrations.

Tasks

Tasks belong to projects.

List tasks for a project

Subscription required

Endpoint: /api/projects/:project_id/tasks

Returns tasks for the given project.

Response body

{
  "tasks": [
    {
      "id": "<task_uuid>",
      "name": "Design review",
      "task_type": "default"
    }
  ]
}

Get task

Subscription required

Endpoint: /api/tasks/:id

Returns a task by UUID.

Response body

{
  "task": {
    "id": "<task_uuid>",
    "name": "Design review",
    "task_type": "default"
  }
}

Create task

Endpoint: /api/projects/:project_id/tasks

Create a task in a project. task_type can be default or permanent.

Request body

{
  "task": {
    "name": "Design review",
    "task_type": "default"
  }
}

Response body

{
  "task": {
    "id": "<task_uuid>",
    "name": "Design review",
    "task_type": "default"
  }
}

Update task

Endpoint: /api/tasks/:id

Update a task.

Request body

{
  "task": {
    "name": "Design review",
    "task_type": "permanent"
  }
}

Response body

{
  "task": {
    "id": "<task_uuid>",
    "name": "Design review",
    "task_type": "permanent"
  }
}

Start tracking

Endpoint: /api/tasks/:id?event=start_tracking

Start tracking a task.

Use the event query parameter to start tracking.

Response body

{
  "task": {
    "id": "<task_uuid>",
    "name": "Design review",
    "task_type": "permanent"
  }
}

Stop tracking

Endpoint: /api/tasks/:id?event=stop_tracking

Stop tracking time for a task.

Use the event query parameter to stop tracking and close the active time entry.

Response body

{
  "task": {
    "id": "<task_uuid>",
    "name": "Design review",
    "task_type": "permanent"
  }
}

Start without tracking

Endpoint: /api/tasks/:id?event=start_without_tracking

Move a task to in progress without creating a time entry.

Use the event query parameter to start without time tracking.

Response body

{
  "task": {
    "id": "<task_uuid>",
    "name": "Design review",
    "task_type": "permanent"
  }
}

Pause tracking

Endpoint: /api/tasks/:id?event=stop_tracking

Pause a task without an active time entry.

Use the event query parameter to pause a task when no time entry is running.

Response body

{
  "task": {
    "id": "<task_uuid>",
    "name": "Design review",
    "task_type": "permanent"
  }
}

Finish task

Endpoint: /api/tasks/:id?event=finish

Finish a task and close any active time entry.

Use the event query parameter to mark the task as completed.

Response body

{
  "task": {
    "id": "<task_uuid>",
    "name": "Design review",
    "task_type": "permanent",
    "status": "completed"
  }
}

Delete task

Endpoint: /api/tasks/:id

Delete a task.

Response body

{
  "status": "deleted"
}