> ## Documentation Index
> Fetch the complete documentation index at: https://developers.bottari.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# 댓글 목록 읽기

> 페이지나 블록의 댓글을 만든 순서로 읽습니다. 댓글 읽기 권한이 필요합니다.

댓글과 답글을 만든 순서로 읽습니다. `댓글 읽기` 권한이 필요합니다. 댓글 쓰기는 제공하지 않습니다.

**Authorization** `string` *required*

`Bearer <토큰>` 형식입니다. [토큰 자세히 알아보기 →](https://developers.bottari.ai/ko/auth/tokens.md)

**Bottari-Version** `string`

선택 항목입니다. `2026-03-11`만 받습니다. 빼면 현재 버전을 사용하고, 다른 값을 보내면 400을 반환합니다.

**block\_id** `string` *required*

페이지 ID나 블록 ID입니다. 형식은 검사하지 않고, 없는 ID는 404입니다.

**page\_size** `number` (default: 100)

1\~100입니다.

**start\_cursor** `string`

앞 응답의 `next_cursor`입니다. 다음 댓글의 ID입니다.

## 반환하는 댓글

| `block_id` | 결과 |
| - | - |
| 페이지 ID | 페이지에 단 댓글과 그 답글입니다. 블록이 사라진 댓글도 여기로 옮겨 옵니다. 남아 있는 블록의 댓글은 여기에 나오지 않습니다. |
| 블록 ID | 그 블록에 단 댓글과 그 답글입니다. 글에 단 댓글도 그 글이 있는 블록의 댓글입니다. |

* 해결한 스레드는 답글까지 목록에서 빠집니다. [댓글 읽기](https://developers.bottari.ai/ko/api-reference/comments/retrieve.md)로는 읽을 수 있습니다.
* 지운 댓글은 목록에서 빠집니다. 스레드를 지우면 답글까지 지워집니다.
* 블록이 사라진 댓글을 그 블록 ID로 읽으면 `rich_text: []`입니다. 페이지 ID나 [댓글 읽기](https://developers.bottari.ai/ko/api-reference/comments/retrieve.md)로는 내용을 받습니다.
* 페이지 댓글의 `discussion_id`는 스레드마다 다릅니다. 답글의 `discussion_id`는 스레드 첫 댓글과 같습니다.
* 휴지통에 있는 행의 댓글은 `rich_text: []`와 `original_content_deleted: true`로 반환합니다. 행을 되살리면 내용이 돌아옵니다.

## 댓글 객체

하위 문서 카드의 글에 단 댓글은 `parent`가 `{문서 ID}.{블록}` 형식입니다. 이 ID로 블록을 읽으면 404이지만, 여기의 `block_id`로는 사용할 수 있습니다.

**id** `string`

댓글 ID입니다.

**parent** `object`

`{ "type": "page_id", "page_id": "..." }` 또는 `{ "type": "block_id", "block_id": "..." }`입니다. 답글은 스레드 첫 댓글과 같습니다.

**discussion\_id** `string`

스레드 ID입니다. 첫 댓글의 ID와 같습니다.

**created\_time** `string`

만든 시각입니다. 분 단위 UTC입니다.

**last\_edited\_time** `string`

고친 시각입니다. 고친 적이 없으면 만든 시각입니다.

**created\_by** `object`

`{ "object": "user", "id": "..." }`입니다.

**rich\_text** `object[]`

텍스트 조각 배열입니다. 2,000자씩 나뉩니다. 문단 사이에는 줄바꿈 조각이 있습니다. 첨부만 있는 댓글은 `[]`입니다.

**display\_name** `object`

사람이 쓴 댓글은 `{ "type": "user", "resolved_name": "이름" }`이고, Bottari가 쓴 댓글은 `{ "type": "integration", "resolved_name": "보따리" }`입니다. `사용자 정보`가 `없음`이면 사람의 `resolved_name`은 비어 있습니다.

**original\_content\_deleted** `boolean`

원래 내용이나 블록이 사라졌거나 행이 휴지통에 있으면 `true`입니다.

**has\_pending\_attachments** `boolean`

항상 `false`입니다.

## 오류

| 상태 | `code` | 원인 |
| - | - | - |
| 400 | `validation_error` | `block_id`가 없거나, `page_size`가 틀렸거나, `start_cursor`가 이 문서의 댓글이 아닙니다. |
| 403 | `restricted_resource` | `댓글 읽기`가 꺼져 있습니다. |
| 404 | `object_not_found` | 없거나 연동이 읽을 수 없는 페이지 또는 블록입니다. |

공통 오류는 [공통 규칙](https://developers.bottari.ai/ko/api-reference/overview.md#오류)에서 확인할 수 있습니다.

```bash curl theme={null}
curl "https://api.bottari.ai/v1/comments?block_id=exampleRow01&page_size=50" \
  -H "Authorization: Bearer $BOTTARI_TOKEN" \
  -H "Bottari-Version: 2026-03-11"
```

```json 200 theme={null}
{
  "object": "list",
  "results": [
    {
      "object": "comment",
      "id": "exampleCmt01",
      "parent": {
        "type": "page_id",
        "page_id": "exampleRow01"
      },
      "discussion_id": "exampleCmt01",
      "created_time": "2026-01-15T02:30:00.000Z",
      "last_edited_time": "2026-01-15T02:30:00.000Z",
      "created_by": {
        "object": "user",
        "id": "11111111-1111-4111-8111-111111111111"
      },
      "rich_text": [
        {
          "type": "text",
          "text": {
            "content": "확인했습니다.",
            "link": null
          },
          "annotations": {
            "bold": true,
            "italic": false,
            "strikethrough": false,
            "underline": false,
            "code": false,
            "color": "default"
          },
          "plain_text": "확인했습니다.",
          "href": null
        }
      ],
      "display_name": {
        "type": "user",
        "resolved_name": "김예시"
      },
      "original_content_deleted": false,
      "has_pending_attachments": false
    }
  ],
  "next_cursor": null,
  "has_more": false,
  "type": "comment",
  "comment": {},
  "request_id": "33333333-3333-4333-8333-333333333333"
}
```

```json 400 theme={null}
{
  "object": "error",
  "status": 400,
  "code": "validation_error",
  "message": "query failed validation: query.block_id should be defined, instead was `undefined`.",
  "request_id": "33333333-3333-4333-8333-333333333333"
}
```

```json 403 theme={null}
{
  "object": "error",
  "status": 403,
  "code": "restricted_resource",
  "message": "Insufficient permissions for this endpoint.",
  "request_id": "33333333-3333-4333-8333-333333333333"
}
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.