---
title: "A thread, or a reply"
description: "`{body, version?, anchor?, quote?, in_reply_to?}`. A thread takes\n`anchor` (Plannotator's fields, as written) or `quote` (plain words,\nstored as Plannotator's external annotation: blockId `external`,\noffsets 0); neither: the whole artifact. `version` defaults to the\nnewest. A reply names `in_reply_to` and takes neither; it joins the\nthread's root. Members named with `@login` are recorded. Send an\nIdempotency-Key to make a retry safe (200 with `pando-replayed`).\nRefused: 409 too_many_threads, too_many_replies; 400\ntoo_many_mentions; 413 too_large (body or anchor).\n"
---

> Documentation Index
> Fetch the complete documentation index at: https://docs.gitpando.com/llms.txt
> Use this file to discover all available pages before exploring further.

Path: Pando API › artifacts

`POST /v1/monorepos/{owner}/{monorepo}/artifacts/{id}/comments`

`{body, version?, anchor?, quote?, in_reply_to?}`. A thread takes
`anchor` (Plannotator's fields, as written) or `quote` (plain words,
stored as Plannotator's external annotation: blockId `external`,
offsets 0); neither: the whole artifact. `version` defaults to the
newest. A reply names `in_reply_to` and takes neither; it joins the
thread's root. Members named with `@login` are recorded. Send an
Idempotency-Key to make a retry safe (200 with `pando-replayed`).
Refused: 409 too_many_threads, too_many_replies; 400
too_many_mentions; 413 too_large (body or anchor).

## Authentication

Requires one of the following:

- `credential`, http, header `Authorization`
- `session`, apiKey, in cookie

## Path parameters

- `addArtifactComment.path.owner` (string, required) — The monorepo's owner, a namespace (a person's login or an organization). Matched without case.
  - pattern `^[a-z0-9](?:[a-z0-9]|-(?=[a-z0-9])){0,38}$`
- `addArtifactComment.path.monorepo` (string, required) — The monorepo's name within its owner (or an old name). Matched without case.
  - pattern `^[a-z0-9](?:[a-z0-9._]|-(?!-)){0,38}$`
- `addArtifactComment.path.id` (string, required)

## Code samples

### cURL

```curl
curl --request POST \
  --url https://app.gitpando.com/v1/monorepos/string/string/artifacts/string/comments \
  --header 'Authorization: Bearer <token>'
```

### TypeScript

```typescript
const url = 'https://app.gitpando.com/v1/monorepos/string/string/artifacts/string/comments';
const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};

fetch(url, options)
  .then(res => res.json())
  .then(json => console.log(json))
  .catch(err => console.error(err));
```

### Python

```python
import requests

url = "https://app.gitpando.com/v1/monorepos/string/string/artifacts/string/comments"

headers = {"Authorization": "Bearer <token>"}

response = requests.post(url, headers=headers)

print(response.text)
```

## Responses

### 201

Made

#### Example

```json
{
  "id": "string",
  "artifact": "string",
  "version": 0,
  "thread": "string",
  "in_reply_to": "string",
  "anchor": null,
  "body": "string",
  "body_version": 0,
  "author": "string",
  "machine": "string",
  "mentions": [
    "string"
  ],
  "state": "open",
  "resolved_by": "string",
  "resolved_at": "2019-08-24T14:15:22Z",
  "created_at": "2019-08-24T14:15:22Z",
  "updated_at": "2019-08-24T14:15:22Z"
}
```

- `addArtifactComment.response.201.id` (string, required)
- `addArtifactComment.response.201.artifact` (string, required)
- `addArtifactComment.response.201.version` (integer, required) — The version it was made on.
- `addArtifactComment.response.201.thread` (string, required) — The root's id.
- `addArtifactComment.response.201.in_reply_to` (string | null, required)
- `addArtifactComment.response.201.anchor` (unknown, required) — Plannotator's placing fields and Pando's context, opaque; null: the whole artifact. Roots only.
- `addArtifactComment.response.201.body` (string | null, required) — Null once deleted.
- `addArtifactComment.response.201.body_version` (integer, required)
- `addArtifactComment.response.201.author` (string, required)
- `addArtifactComment.response.201.machine` (string | null, required)
- `addArtifactComment.response.201.mentions` (array<string>, required)
- `addArtifactComment.response.201.state` (string, required)
  - one of `"open"`, `"resolved"`
- `addArtifactComment.response.201.resolved_by` (string | null, required)
- `addArtifactComment.response.201.resolved_at` (string | null, required)
  - format `date-time`
- `addArtifactComment.response.201.created_at` (string, required)
  - format `date-time`
- `addArtifactComment.response.201.updated_at` (string, required)
  - format `date-time`


Source: https://docs.gitpando.com/api/artifacts/addArtifactComment/index.md
