---
title: "Get Task"
method: GET
path: "/v2.0/tasks/{taskId}"
tags: ["Tasks & Appointments V2"]
---

# Get Task

`GET /v2.0/tasks/{taskId}`

Returns a single task or appointment by ID. Tasks and appointments share the same taskId namespace; the endpoint resolves the target automatically.

Caller must have manage permission on the task's lead.

## Path parameters

- `taskId` integer, required

## Headers

- `Authorization` string, required

## Response `200`

Task or appointment retrieved successfully.

- TaskV2SingleResponse — Wrapped response for GET /v2.0/tasks/{taskId}. The task entry is returned under the 'task' key.
  - `task` TaskResponseV2
    - `id` integer — The Id of the task
    - `leadId` integer — The lead(Id) associated with the task
    - `creatorId` integer — The creator's Id of the task
    - `content` string — The content of the task
    - `type` string — The type of the task
    - `startAt` string — When this task/appointment starts. ISO8601 format with timezone, e.g., '2026-03-01T15:00:00GMT'
    - `endAt` string — When this task/appointment ends (or expected completion time for regular tasks). ISO8601 format with timezone
    - `timeZoneCode` string — Timezone code for this task/appointment
    - `allDay` boolean — Whether this is an all-day event
    - `finishFlag` boolean — If the task is finished or not
    - `overdueFlag` boolean — If the task is overdue or not
    - `finishTime` string — The finish time of the task
    - `createTime` string — The create time of the task
    - `lastUpdate` string — The last update time of the task
    - `leadName` string — The lead's name associated with the task
    - `leadEmail` string — The lead's email associated with the task
    - `leadPhone` string — The lead's phone associated with the task
    - `leadFirstName` string — The lead's first name of the task
    - `leadLastName` string — The lead's last name of the task
    - `reminderType` integer — The reminder's type of the task
    - `assignedRole` string — The role of the task assigned to
    - `assignedUser` string — The user of the task assigned to
    - `teamId` integer — The team's Id associated with the task
    - `subject` string — The subject of the task
    - `body` string — The body of the task
    - `assignedUserId` integer — The user's Id of the task assigned to
    - `pipelineId` integer — The pipeline(Id) of the associated lead
    - `queryInfo` string — The queryInfo of the task
    - `leadUserId` integer — The lead's user Id associated with the task
    - `queryId` integer — The queryId of the task
    - `address` string — Address for appointment type tasks

## Other responses

- `400` — Caller has no access to the owning lead (20017 PERMISSION_DENIED).
- `401` — Missing or invalid authentication token.
- `404` — Task or appointment does not exist (TASK_NOT_EXIST).
- `500` — Internal server error.

---

[API](https://skmtc.net/lofty/apis/lofty-service-open-apis.md) · [All operations](https://skmtc.net/lofty/apis/lofty-service-open-apis/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/lofty/lofty-service-open-apis/versions/23e640467118/schema)
