# app.atmobb.discussion.getThreadPage

> Published by [lexicons.atmobb.app](https://lexicon.garden/identity/did:plc:dqnwiguwsbb6uwrm7a2rsff2)

✓ This is the authoritative definition for this NSID.

## Links

- [View on Lexicon Garden](https://lexicon.garden/lexicon/did:plc:dqnwiguwsbb6uwrm7a2rsff2/app.atmobb.discussion.getThreadPage)
- [Documentation](https://lexicon.garden/lexicon/did:plc:dqnwiguwsbb6uwrm7a2rsff2/app.atmobb.discussion.getThreadPage/docs)
- [Examples](https://lexicon.garden/lexicon/did:plc:dqnwiguwsbb6uwrm7a2rsff2/app.atmobb.discussion.getThreadPage/examples)

## Definitions

### `app.atmobb.discussion.getThreadPage`

**Type**: `query`

One page of a thread: the thread, total reply count, and a page of replies in chronological order, with author profiles and worn stamps hydrated. The thread carries its moderation flags for the viewing forum (hidden, locked, pinned).

#### Parameters

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `cursor` | `string` | No |  |
| `forum` | `string` (did) | Yes |  |
| `limit` | `integer` | No |  |
| `reply` | `string` (at-uri) | No | Return the page holding this reply instead of the cursor's page. Its chronological position comes back as replyIndex. |
| `thread` | `string` (at-uri) | Yes |  |
| `viewer` | `string` (did) | No | The reader, for their own poll votes. |

#### Output

**Encoding**: `application/json`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `cursor` | `string` | No |  |
| `poll` | `unknown` | No | Vote counts per option, voter total, and the viewer's votes, when the thread has a poll. |
| `replies` | `array` | Yes | Each item is shaped like #postView. |
| `replyCount` | `integer` | No |  |
| `replyIndex` | `integer` | No |  |
| `thread` | `unknown` | No | Shaped like #postView, plus origin and the moderation flags hidden, locked, lockedAt, and pinned. |

### `app.atmobb.discussion.getThreadPage#postView`

**Type**: `object`

The fields a thread and each reply share: the post itself and its author, hydrated.

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `author` | `string` (did) | Yes |  |
| `authorPosts` | `integer` | No | Deprecated and no longer rendered: the author's post count on this forum. Kept for older clients. |
| `authorProfile` | `unknown` | No | The author's app.atmobb.actor.profile record, when they have one. |
| `authorStamps` | `array` | No | The stamps the author wears on the viewing forum, in order. |
| `authorTotalPosts` | `integer` | No | Deprecated and no longer rendered: the author's post count across every indexed forum. Kept for older clients. |
| `cid` | `string` (cid) | No |  |
| `indexedAt` | `string` (datetime) | No |  |
| `uri` | `string` (at-uri) | Yes |  |
| `value` | `unknown` | Yes | The thread or reply record. |

## Raw Schema

```json
{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "main": {
      "description": "One page of a thread: the thread, total reply count, and a page of replies in chronological order, with author profiles and worn stamps hydrated. The thread carries its moderation flags for the viewing forum (hidden, locked, pinned).",
      "output": {
        "encoding": "application/json",
        "schema": {
          "properties": {
            "cursor": {
              "type": "string"
            },
            "poll": {
              "description": "Vote counts per option, voter total, and the viewer's votes, when the thread has a poll.",
              "type": "unknown"
            },
            "replies": {
              "description": "Each item is shaped like #postView.",
              "items": {
                "type": "unknown"
              },
              "type": "array"
            },
            "replyCount": {
              "type": "integer"
            },
            "replyIndex": {
              "type": "integer"
            },
            "thread": {
              "description": "Shaped like #postView, plus origin and the moderation flags hidden, locked, lockedAt, and pinned.",
              "type": "unknown"
            }
          },
          "required": [
            "replies"
          ],
          "type": "object"
        }
      },
      "parameters": {
        "properties": {
          "cursor": {
            "type": "string"
          },
          "forum": {
            "format": "did",
            "type": "string"
          },
          "limit": {
            "default": 25,
            "maximum": 100,
            "minimum": 1,
            "type": "integer"
          },
          "reply": {
            "description": "Return the page holding this reply instead of the cursor's page. Its chronological position comes back as replyIndex.",
            "format": "at-uri",
            "type": "string"
          },
          "thread": {
            "format": "at-uri",
            "type": "string"
          },
          "viewer": {
            "description": "The reader, for their own poll votes.",
            "format": "did",
            "type": "string"
          }
        },
        "required": [
          "thread",
          "forum"
        ],
        "type": "params"
      },
      "type": "query"
    },
    "postView": {
      "description": "The fields a thread and each reply share: the post itself and its author, hydrated.",
      "properties": {
        "author": {
          "format": "did",
          "type": "string"
        },
        "authorPosts": {
          "description": "Deprecated and no longer rendered: the author's post count on this forum. Kept for older clients.",
          "type": "integer"
        },
        "authorProfile": {
          "description": "The author's app.atmobb.actor.profile record, when they have one.",
          "type": "unknown"
        },
        "authorStamps": {
          "description": "The stamps the author wears on the viewing forum, in order.",
          "items": {
            "ref": "app.atmobb.forum.getStamps#trayEntry",
            "type": "ref"
          },
          "maxLength": 6,
          "type": "array"
        },
        "authorTotalPosts": {
          "description": "Deprecated and no longer rendered: the author's post count across every indexed forum. Kept for older clients.",
          "type": "integer"
        },
        "cid": {
          "format": "cid",
          "type": "string"
        },
        "indexedAt": {
          "format": "datetime",
          "type": "string"
        },
        "uri": {
          "format": "at-uri",
          "type": "string"
        },
        "value": {
          "description": "The thread or reply record.",
          "type": "unknown"
        }
      },
      "required": [
        "uri",
        "author",
        "value"
      ],
      "type": "object"
    }
  },
  "id": "app.atmobb.discussion.getThreadPage",
  "lexicon": 1
}
```
