{
"id": "support.supper.feed.listCandidates",
"defs": {
"main": {
"type": "query",
"output": {
"schema": {
"type": "object",
"required": [
"candidates"
],
"properties": {
"cursor": {
"type": "string",
"maxLength": 8192
},
"candidates": {
"type": "array",
"items": {
"refs": [
"#standardSiteCandidate",
"#pollCandidate"
],
"type": "union",
"closed": false
}
}
}
},
"encoding": "application/json"
},
"parameters": {
"type": "params",
"required": [
"authors",
"sources",
"before"
],
"properties": {
"limit": {
"type": "integer",
"default": 50,
"maximum": 100,
"minimum": 1
},
"before": {
"type": "string",
"format": "datetime",
"description": "Inclusive immutable upper bound for this feed snapshot."
},
"cursor": {
"type": "string",
"maxLength": 8192,
"description": "Opaque keyset cursor from a previous response."
},
"authors": {
"type": "array",
"items": {
"type": "string",
"format": "did"
},
"maxLength": 100,
"minLength": 1,
"description": "Author DIDs whose indexed public records may be returned."
},
"sources": {
"type": "array",
"items": {
"type": "string",
"maxLength": 32,
"knownValues": [
"standard-site",
"poll"
]
},
"maxLength": 2,
"minLength": 1
}
}
},
"description": "List public feed candidates indexed by the Supper AppView for a bounded set of author DIDs. No authentication is required. This discovery projection includes site.standard.document and support.supper.poll.poll records; source records remain authoritative and consumers must enforce their own moderation and access rules."
},
"plyrEmbed": {
"type": "object",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"format": "uri",
"description": "Validated public URL of the Plyr track embedded by the source document."
}
}
},
"pollEmbed": {
"type": "object",
"required": [
"uri",
"cid"
],
"properties": {
"cid": {
"type": "string",
"format": "cid",
"description": "CID of the exact embedded support.supper.poll.poll record generation."
},
"uri": {
"type": "string",
"format": "at-uri",
"description": "AT URI of the support.supper.poll.poll record embedded by the source document."
}
}
},
"pollCandidate": {
"type": "object",
"required": [
"uri",
"cid",
"author",
"sortAt",
"question",
"options"
],
"properties": {
"cid": {
"type": "string",
"format": "cid",
"description": "CID of the exact support.supper.poll.poll generation represented by this candidate."
},
"uri": {
"type": "string",
"format": "at-uri",
"description": "AT URI of the indexed support.supper.poll.poll source record."
},
"author": {
"type": "string",
"format": "did"
},
"sortAt": {
"type": "string",
"format": "datetime"
},
"options": {
"type": "array",
"items": {
"type": "string",
"maxLength": 1000,
"maxGraphemes": 100
},
"maxLength": 10,
"minLength": 2
},
"question": {
"type": "string",
"maxLength": 3000,
"maxGraphemes": 300
}
}
},
"standardSiteCandidate": {
"type": "object",
"required": [
"uri",
"cid",
"author",
"sortAt",
"sourceEmbeds"
],
"properties": {
"cid": {
"type": "string",
"format": "cid",
"description": "CID of the exact site.standard.document generation represented by this candidate."
},
"uri": {
"type": "string",
"format": "at-uri",
"description": "AT URI of the indexed site.standard.document source record."
},
"author": {
"type": "string",
"format": "did"
},
"sortAt": {
"type": "string",
"format": "datetime"
},
"bskyPostRef": {
"ref": "com.atproto.repo.strongRef",
"type": "ref"
},
"sourceEmbeds": {
"type": "array",
"items": {
"refs": [
"#pollEmbed",
"#plyrEmbed"
],
"type": "union",
"closed": false
},
"maxLength": 16
}
}
}
},
"$type": "com.atproto.lexicon.schema",
"lexicon": 1
}