---
title: "Complete/reopen activity"
method: POST
path: "/v2/activities/{id}/complete"
tags: ["Activities"]
---

# Complete/reopen activity

`POST /v2/activities/{id}/complete`

Mark an activity as completed, or reopen a previously completed one. Body is optional; `completed` defaults to `true`. Reopening (`completed: false`) a non-custom activity (created automatically from a stage template) that is no longer on the deal's current stage is rejected with `400` — the internal service would otherwise soft-delete it instead of reopening it. Completions made through this endpoint carry no user attribution (`completed_by` stays `null`). Requires the `ACTIVITIES_API` feature flag and an API key with the `activities:write` scope.

## Path parameters

- `id` string, uuid, required

## Headers

- `api-token` string, required

## Request body

- object
  - `completed` boolean — true to complete the activity, false to reopen it.

## Response `200`

The updated activity object

- object
  - `status` integer — Response status
  - `data` Activity
    - `id` string, uuid
    - `title` string
    - `type` 'CALL' | 'MAIL' | 'SCHEDULE' | 'TASK' | 'MEETING' | 'WHATSAPP' | 'INSTAGRAM'
    - `content` string, nullable — Free-text body. For WHATSAPP/INSTAGRAM this is the message text (read from the message body the Clint UI renders); for CALL/MAIL/TASK it is the notes field.
    - `template_id` string, uuid, nullable — UUID of the attached WhatsApp Official message template, or null when none is attached.
    - `completed` boolean
    - `completed_at` string, date-time, nullable
    - `completed_by` string, uuid, nullable
    - `due_at` string, date-time, nullable — Public alias of the internal to_check_at column.
    - `custom` boolean — true when the activity was created manually (via the API or UI); false when generated automatically from a stage template.
    - `no_show` boolean
    - `stage_id` string, uuid
    - `created_at` string, date-time
    - `updated_at` string, date-time, nullable
    - `deal` object, nullable
      - `id` string, uuid
      - `status` 'OPEN' | 'WON' | 'LOST', nullable
      - `origin_id` string, uuid
      - `stage_id` string, uuid
      - `contact` object, nullable
        - `id` string, uuid
        - `name` string, nullable

## Other responses

- `400` — Cannot reopen a stage-template activity from a previous stage
- `401` — Authentication error - invalid or missing api-token
- `403` — This feature is not available for your account.
- `404` — Activity not found

---

[API](https://skmtc.net/clint/apis/clint-api.md) · [All operations](https://skmtc.net/clint/apis/clint-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/clint/clint-api/versions/12b8f9eff943/schema)
