---
title: "Complete an activity"
method: POST
path: "/api/v1/rest/crm/activities/{id}/complete"
tags: ["CRM"]
---

# Complete an activity

`POST /api/v1/rest/crm/activities/{id}/complete`

## Request

- Base URL: `https://api.custodo.ai`
- URL: `https://api.custodo.ai/api/v1/rest/crm/activities/{id}/complete`
- Auth: HTTP bearer

Marks an open activity done, which is what moves the deal’s next action forward and resets its idle clock. `completed_at` defaults to now, and backdating a call written up later is normal. `outcome` and `duration_minutes` are added to what is already there and never clear it. An activity that is ALREADY completed is refused — moving that moment would rewrite what the reports counted — so correct one with crm_update_activity instead.

## Path parameters

- `id` string, uuid, required

## Headers

- `X-Tenant-Id` string, uuid

## Request body

- object
  - `completed_at` string, date-time: When it happened, ISO-8601 with a timezone. Defaults to now; backdating a call written up later is normal.
  - `outcome` string: How it went, in a few words. Never clears what is already there.
  - `duration_minutes` integer: How long it took, in minutes.

## Response `200`

Done. `data` is the tool’s own answer.

- RestResult
  - `ok` true, required
  - `data` unknown, required

## Other responses

- `400`: The arguments did not validate: `error.message` names the field, what it expects and what arrived.
- `401`: No API key, or one that is malformed, unknown, revoked or expired.
- `403`: The call never ran: the module is off for this organisation, the credential lacks the permission or the module, the tier does not cover it, or the tool is destructive and the key was not minted for that.
- `404`: Nothing with that id in this organisation.
- `409`: The record is in a state that does not allow it — under legal hold, already sent, already closed. `error.code` says which.
- `422`: The tool ran and refused, in a sentence of its own (`TOOL_REFUSED`): the message says what to change. Retrying the same call will not help.
- `429`: The API key has spent its minute, or its day. Every request a key makes counts. See `Retry-After`.

---

[API](https://skmtc.dev/custodo/apis/custodo-integrazioni.md) · [All operations](https://skmtc.dev/custodo/apis/custodo-integrazioni/llms.txt) · [OpenAPI document](https://skmtc.dev/custodo/apis/custodo-integrazioni/revisions/16d336d3ec2a?raw)
