---
title: "/discussions/:discussionId"
method: GET
path: "/v1/discussions/{discussionId}"
tags: ["Discussions"]
---

# /discussions/:discussionId

`GET /v1/discussions/{discussionId}`

## Request

- Base URL: `api.air.inc` (relative, and the document’s source URL is not known)
- URL: `api.air.inc/v1/discussions/{discussionId}`
- Auth: one of:
  - API key in header `x-api-key` and API key in header `x-air-workspace-id`
  - HTTP bearer and API key in header `x-air-workspace-id`
- TypeScript: <https://skmtc.dev/air/apis/air-api/docs/v1/discussions/:discussionId/get.ts> (a function with typed inputs; its response is checked against the schema)

Get one discussion, including its first 10 comments.

A discussion you cannot view is 404, the same as a missing one.
`boardId` is present only when the stored board is active and you can
view it.

Requires the `comments.read` OAuth scope.

## Response `200`

Discussion

- Discussion
  - `id` string, uuid, required
  - `resolved` boolean, required
  - `createdAt` string, date-time, nullable, required: When the first comment was created.
  - `lastCommentedAt` string, date-time, nullable, required: When the latest comment was created. A reply moves this.
  - `asset` object, required
    - `id` string, uuid, required
  - `assetVersion` object, required
    - `id` string, uuid, required: The asset version id. This is `assetVersionId` on create.
    - `version` integer, required
  - `boardId` string, uuid: Present only when the discussion has an active stored board and the caller can view that board. Otherwise the field is omitted.
  - `annotations` DiscussionAnnotation[], required
    - union: An annotation as stored. Annotations saved outside the public API may fall outside the limits on `DiscussionAnnotationInput`, so this schema only states what every read guarantees.
      - BoxAnnotation
        - `type` 'box', required
        - `timestamp` number: Seconds into a video. Omitted for a still image.
        - `endTimestamp` number: End of the time range in seconds, when one was saved.
        - `coordinates` object, required: Top-left corner as fractions of the frame.
          - `x` number, required
          - `y` number, required
        - `dimensions` object, required: Width and height as fractions of the frame.
          - `width` number, required
          - `height` number, required
        - `color` string, required: `#RRGGBB` when created through this API. An annotation saved elsewhere may use another color format.
        - `pageNumber` integer: Document page, from 1. Omitted for an image or video.
      - PencilAnnotation
        - `type` 'pencil', required
        - `timestamp` number: Seconds into a video. Omitted for a still image.
        - `endTimestamp` number: End of the time range in seconds, when one was saved.
        - `lines` object[], required
          - `coordinates` object[], required: Points as fractions of the frame. A stored line may have a single point.
            - `x` number, required
            - `y` number, required
          - `lineWidth` number, required
          - `color` string, required: `#RRGGBB` when created through this API. An annotation saved elsewhere may use another color format.
          - `pageNumber` integer: Document page, from 1. Omitted for an image or video.
  - `comments` CommentList, required
    - `data` DiscussionComment[], required
      - `id` string, uuid, required
      - `discussionId` string, uuid, required
      - `body` string, required: Plain text with mentions rendered as `@Display Name`. Escape this before rendering HTML.
      - `createdAt` string, date-time, required
      - `updatedAt` string, date-time, required: Equal to `createdAt` until the first edit that changes the stored text. An edit is `updatedAt !== createdAt`.
      - `author` DiscussionAuthor, required
        - `type` 'workspace_account' | 'anonymous', required
        - `id` string, uuid: Present when `type` is `workspace_account`. The account id.
        - `displayName` string, nullable, required
      - `mentions` DiscussionMention[], required
        - `id` string, uuid, required: Account id. The same id as `GET /v1/members` `id`.
        - `displayName` string, nullable, required
    - `pagination` CursorPage, required
      - `hasMore` boolean, required
      - `cursor` string, nullable, required: Present when `hasMore` is true. Send it as the next `cursor`.
    - `total` integer, required

## Other responses

- `404`: Discussion not found, or you cannot view it

## Changes

- **2026-11-03** `8e6005b272a1`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/air/apis/air-api/changes/v1/discussions/:discussionId/get.md)

---

[API](https://skmtc.dev/air/apis/air-api.md) - [All operations](https://skmtc.dev/air/apis/air-api/llms.txt) - [OpenAPI document](https://skmtc.dev/air/apis/air-api/revisions/8e6005b272a1?raw)
