app.atmobb.discussion.getThreadPage

lexicons.atmobb.app

{
  "$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
}

Validate Record

Validate a record against app.atmobb.discussion.getThreadPage

Validation Options
Automatically resolve and include external schemas for full validation
Treat any remaining unresolved references as valid

Metadata

DID
did:plc:dqnwiguwsbb6uwrm7a2rsff2
CID
bafyreieq6cms4vop3pyf7o775rdkive3f66gz3ufnjpu77y4vxcxk6v27q
Indexed At
2026-10-07 04:30 UTC
AT-URI
at://did:plc:dqnwiguwsbb6uwrm7a2rsff2/com.atproto.lexicon.schema/app.atmobb.discussion.getThreadPage

Version History (3 versions)

Referenced Schemas (1)

Similar Lexicons

Lexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.

  • Threads in a board sorted by latest activity, with reply counts and author info.

  • Get posts in a thread. Does not require auth, but additional metadata and filtering will be applied for authed requests.

  • Most recently active threads. With a forum param, scoped to that forum's own boards plus the merged streams of its topic boards.

  • A post and a page of its top-level comments.

  • town.delve.unspecced.getPostThreadV2 querynot from the namespace authority

    (NOTE: this endpoint is under development and WILL change without notice. Don't use it until it is moved out of `unspecced` or your application WILL break) Get posts in a thread. It is based in an anchor post at any dep…

Lexicon Garden

@