---
title: "Pin an Archivio document to a task"
method: POST
path: "/api/v1/rest/attivita/tasks/{id}/documents"
tags: ["Activities"]
---

# Pin an Archivio document to a task

`POST /api/v1/rest/attivita/tasks/{id}/documents`

## Request

- Base URL: `https://api.custodo.ai`
- URL: `https://api.custodo.ai/api/v1/rest/attivita/tasks/{id}/documents`
- Auth: HTTP bearer

Pins a document that is ALREADY in the Archivio to a task — the panel’s «Allega dall’Archivio». It uploads nothing: file a new document with documents_upload first. `title` is what the task shows for it — the title documents_search or documents_get gave — and it outlives the document, so one deleted later stays a visibly broken link. Whoever can see the task can open what is pinned to it, so the member behind this credential must be able to open the document in the Archivio themselves; any other id answers not-found. Needs a task they may edit (as attivita_update_task does); a task holds at most 50 attachments. Idempotent: a document pinned already answers with its attachment and `attached: false`.

## Path parameters

- `id` string, uuid, required

## Headers

- `X-Tenant-Id` string, uuid

## Request body

- object
  - `document_id` string, uuid, required: An Archivio document — an id from documents_search or documents_get.
  - `title` string, required: The document’s title as the Archivio shows it.

## 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)
