---
title: "Mark a manual action task as completed"
method: POST
path: "/api/v1/complete_task"
tags: ["Tasks"]
---

# Mark a manual action task as completed

`POST /api/v1/complete_task`

## Request

- Base URL: `https://api.pymaia.com`
- URL: `https://api.pymaia.com/api/v1/complete_task`
- Auth: HTTP bearer

Mark a manual action task as completed. Requires the lease_token from lease_task. The system will trigger the relevant platform sync; verification of the change happens automatically based on the task verifier_kind.

## Request body

- object
  - `task_id` string, uuid, required
  - `lease_token` string, uuid, required
  - `summary` string, required: Brief description of what was done in the browser
  - `screenshots` string[]: Optional. Public URLs of screenshots that prove the change.

## Response `200`

Tool executed successfully

- object
  - `ok` boolean
  - `result` unknown
  - `duration_ms` number

## Other responses

- `400`: Invalid params or handler error
- `401`: Missing or invalid Bearer token
- `403`: Missing required scope(s) (`denied_scope`), or the tool's module is disabled for the organization (`module_disabled`, with `why`, `fix` and `module`)
- `404`: Tool not found, internal-only, or excluded for OAuth connectors
- `429`: Rate limit exceeded

---

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