---
title: "Mark a task as complete"
method: POST
path: "/completeTask"
tags: ["Task"]
---

# Mark a task as complete

`POST /completeTask`

## Request

- Base URL: `https://www.taskade.com/api/v2`
- URL: `https://www.taskade.com/api/v2/completeTask`
- Auth: OAuth 2 and HTTP bearer
  - Authorization code: `https://www.taskade.com/oauth2/authorize`
  - Token URL: `https://www.taskade.com/oauth2/token`

A task with a recurrence rolls its due date forward instead of being checked off; `item.recurred` reports which happened.

## Request body

- object
  - `projectId` string, required: The project the task lives in
  - `taskId` string, required: The task ID (from `listTasks`)

## Response `200`

Default response

- object
  - `ok` true, required
  - `item` object, required
    - `id` string, required
    - `text` string
    - `completed` boolean
    - `recurred` boolean, required

---

[API](https://skmtc.dev/taskade/apis/taskade-public-api-v2.md) - [All operations](https://skmtc.dev/taskade/apis/taskade-public-api-v2/llms.txt) - [OpenAPI document](https://skmtc.dev/taskade/apis/taskade-public-api-v2/revisions/45f0e74ec083?raw)
