---
title: "Complete a task"
method: POST
path: "/v1/tasks/{taskId}/complete"
tags: ["tasks"]
---

# Complete a task

`POST /v1/tasks/{taskId}/complete`

## Request

- Base URL: `https://api.flowral.app`
- URL: `https://api.flowral.app/v1/tasks/{taskId}/complete`
- Auth: one of:
  - HTTP bearer
  - OAuth 2 (client credentials, token URL `https://api.flowral.app/v1/oauth/token`, scopes: `work:write`)

In progress → done, and the response says what that unblocked — which is the next question every time. Refused if sub-tasks are outstanding or a required deliverable has not been handed in.

## Path parameters

- `taskId` string, required

## Request body

- object
  - `comment` string: Optional note recorded on the completion.

## Response `200`

SUCCESS

## Other responses

- `401`: UNAUTHORIZED
- `403`: FORBIDDEN · PLAN_REQUIRED · INSUFFICIENT_SCOPE
- `404`: NOT_FOUND
- `409`: TASK_BLOCKED · SUBTASKS_OUTSTANDING · DELIVERABLE_REQUIRED · ALREADY_DONE
- `429`: RATE_LIMITED

---

[API](https://skmtc.dev/flowral/apis/flowral-api.md) · [All operations](https://skmtc.dev/flowral/apis/flowral-api/llms.txt) · [OpenAPI document](https://skmtc.dev/flowral/apis/flowral-api/revisions/6cd2337b682c?raw)
