{
"id": "support.supper.comments.listComments",
"defs": {
"link": {
"type": "object",
"required": [
"uri"
],
"properties": {
"uri": {
"type": "string",
"format": "uri",
"description": "HTTP(S) link annotated by this facet."
}
}
},
"main": {
"type": "query",
"output": {
"schema": {
"type": "object",
"required": [
"comments",
"total"
],
"properties": {
"total": {
"type": "integer",
"minimum": 0,
"description": "Exact number of indexed comments matching this query across all pages."
},
"cursor": {
"type": "string",
"maxLength": 4096
},
"comments": {
"type": "array",
"items": {
"ref": "#commentView",
"type": "ref"
}
}
}
},
"encoding": "application/json"
},
"parameters": {
"type": "params",
"required": [
"subject"
],
"properties": {
"uri": {
"type": "string",
"format": "at-uri",
"description": "Optional exact support.supper.comment AT URI. When present, the result contains at most that one indexed comment and cursor must be omitted."
},
"limit": {
"type": "integer",
"default": 50,
"maximum": 100,
"minimum": 1
},
"cursor": {
"type": "string",
"maxLength": 4096,
"description": "Opaque cursor from a previous response."
},
"subject": {
"type": "string",
"format": "at-uri",
"description": "AT URI of the site.standard.document, support.supper.feed.post, fm.plyr.track, or support.supper.poll.poll whose comments should be listed. The service must reject subjects outside those collections."
}
}
},
"description": "List public support.supper.comment records attached to one site.standard.document, support.supper.feed.post, fm.plyr.track, or support.supper.poll.poll across commenter repositories. This query returns portable public record data only; moderation and record deletion remain visible through the indexed protocol state."
},
"facet": {
"type": "object",
"required": [
"index",
"features"
],
"properties": {
"index": {
"ref": "#byteSlice",
"type": "ref"
},
"features": {
"type": "array",
"items": {
"refs": [
"#link",
"#mention"
],
"type": "union",
"closed": false
},
"maxLength": 5,
"minLength": 1
}
}
},
"mention": {
"type": "object",
"required": [
"did"
],
"properties": {
"did": {
"type": "string",
"format": "did"
}
}
},
"replyRef": {
"type": "object",
"required": [
"root",
"parent"
],
"properties": {
"root": {
"ref": "com.atproto.repo.strongRef",
"type": "ref",
"description": "Strong reference to the top-level support.supper.comment. Its subject must exactly match the comment view's subject."
},
"parent": {
"ref": "com.atproto.repo.strongRef",
"type": "ref",
"description": "Strong reference to the support.supper.comment being replied to. Its subject must exactly match the comment view's subject."
}
}
},
"byteSlice": {
"type": "object",
"required": [
"byteStart",
"byteEnd"
],
"properties": {
"byteEnd": {
"type": "integer",
"minimum": 0
},
"byteStart": {
"type": "integer",
"minimum": 0
}
}
},
"commentView": {
"type": "object",
"required": [
"uri",
"cid",
"author",
"subject",
"plaintext",
"createdAt",
"indexedAt"
],
"properties": {
"cid": {
"type": "string",
"format": "cid",
"description": "CID of the exact comment record generation returned in this view."
},
"uri": {
"type": "string",
"format": "at-uri",
"description": "AT URI of the indexed support.supper.comment record."
},
"reply": {
"ref": "#replyRef",
"type": "ref"
},
"author": {
"type": "string",
"format": "did",
"description": "DID of the repository that authored the comment."
},
"facets": {
"type": "array",
"items": {
"ref": "#facet",
"type": "ref"
},
"maxLength": 100
},
"subject": {
"type": "string",
"format": "at-uri",
"description": "Exact site.standard.document, support.supper.feed.post, fm.plyr.track, or support.supper.poll.poll AT URI to which this comment is attached."
},
"createdAt": {
"type": "string",
"format": "datetime",
"description": "Timestamp authored in the source record. Clients must not use this user-controlled value for thread ordering."
},
"indexedAt": {
"type": "string",
"format": "datetime",
"description": "AppView ingestion timestamp used as the authoritative ordering time."
},
"plaintext": {
"type": "string",
"maxLength": 20000,
"maxGraphemes": 2000
}
}
}
},
"$type": "com.atproto.lexicon.schema",
"lexicon": 1
}