---
title: "Tasks - get task status"
method: GET
path: "/api/v1/tasks/{taskId}"
tags: ["Tasks"]
---

# Tasks - get task status

`GET /api/v1/tasks/{taskId}`

Returns the current status and metadata of a task.

## Path parameters

- `taskId` string, uuid, required

## Response `200`

Task status

- TaskDetailResponse — Success envelope containing a single task's full details
  - `ok` true, required
  - `data` TaskDetail, required — Complete task status including lifecycle timestamps, progress, and result metadata
    - `taskId` string, uuid, required — Unique task identifier for polling and result retrieval
    - `kind` 'cad' | 'model' | 'convert-simple' | 'convert-advanced' | 'pipeline' | 'compound' | 'tenant', required — Type of work: 'cad' (single operation), 'model' (parametric model), 'convert-simple'/'convert-advanced' (file conversion), 'pipeline' (sequential chain), 'compound' (parallel batch), 'tenant' (tenant-scoped)
    - `label` string, required — Human-readable task label
    - `status` 'waiting' | 'queued' | 'processing' | 'completed' | 'failed' | 'cancelled' | 'expired', required — Task lifecycle state: waiting (pending dependencies), queued (in queue), processing (actively computing), completed (result available), failed (error occurred), cancelled (user-cancelled), expired (result TTL exceeded)
    - `progress` number, nullable, required — Completion percentage (0–100) or null if progress is not tracked for this task kind
    - `error` string, nullable, required — Error message when status is 'failed'. Null for all other statuses.
    - `resultParts` object, nullable, required — Available result files keyed by format (e.g. 'glb', 'step'). Null until task completes.
    - `metadata` object, nullable, required — Additional task metadata (e.g. resolved parameters, model name). Shape varies by task kind.
    - `createdAt` string, required — ISO 8601 timestamp when the task was created
    - `startedAt` string, nullable, required — ISO 8601 timestamp when processing began. Null if still queued.
    - `finishedAt` string, nullable, required — ISO 8601 timestamp when the task completed (success or failure). Null if still running.
    - `expiresAt` string, required — ISO 8601 timestamp when task results will be automatically deleted

## Other responses

- `404` — Not found

## Changes

- **2026-04-30** `bef883f8a334` — 8 breaking, 1 warning, 13 info
  - response property `data/error` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `data/finishedAt` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `data/metadata` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `data/progress` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - …18 more
- **2026-04-17** `5eb4ed0f33c7` — 16 breaking, 2 warning, 8 info
  - the response property `data/error` became nullable for the status `200`
  - the response property `data/finishedAt` became nullable for the status `200`
  - the response property `data/metadata` became nullable for the status `200`
  - the response property `data/progress` became nullable for the status `200`
  - …22 more

[Change history](https://skmtc.dev/bitbybit-dev/apis/bitbybit-cad-cloud-api/changes/api/v1/tasks/:taskId/get.md)

---

[API](https://skmtc.dev/bitbybit-dev/apis/bitbybit-cad-cloud-api.md) · [All operations](https://skmtc.dev/bitbybit-dev/apis/bitbybit-cad-cloud-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/bitbybit-dev/bitbybit-cad-cloud-api/revisions/1135d4473bc2/schema)
