app.zeens.getEngagement
{
"$type": "com.atproto.lexicon.schema",
"defs": {
"engagement": {
"properties": {
"likeCount": {
"type": "integer"
},
"uri": {
"format": "at-uri",
"type": "string"
},
"viewer": {
"ref": "#viewerState",
"type": "ref"
}
},
"required": [
"uri",
"likeCount"
],
"type": "object"
},
"main": {
"description": "Like count and the viewer's own like for any record URI, one or a batch. Subject-agnostic: post_engagement is keyed by subject URI and the like hook counts likes on anything, so this serves zeens, events, articles and posts without a branch per lexicon. Pass `uris` to ask about a whole listing in one call -- the profile and studio Zeens tabs list from the author's repo, which carries no engagement, so without a batch each card would need its own round trip.",
"output": {
"encoding": "application/json",
"schema": {
"properties": {
"engagements": {
"description": "Present for a `uris` request. One entry per requested uri, in request order.",
"items": {
"ref": "#engagement",
"type": "ref"
},
"type": "array"
},
"likeCount": {
"type": "integer"
},
"uri": {
"format": "at-uri",
"type": "string"
},
"viewer": {
"ref": "#viewerState",
"type": "ref"
}
},
"required": [],
"type": "object"
}
},
"parameters": {
"properties": {
"uri": {
"description": "A single record. Returns the bare object shape (uri/likeCount/viewer), which LikeButton and the zeen page depend on.",
"format": "at-uri",
"type": "string"
},
"uris": {
"description": "Comma-separated AT-URIs, up to 100. Returns an `engagements` array instead of the single-record fields, with one entry per requested uri -- including subjects with no engagement row, which come back as a known 0 rather than being omitted (the caller draws nothing for \"unknown\" and a 0 for \"none yet\", and those differ).",
"type": "string"
},
"viewer": {
"description": "When given, the response carries this viewer's own like record.",
"format": "did",
"type": "string"
}
},
"required": [],
"type": "params"
},
"type": "query"
},
"viewerState": {
"properties": {
"like": {
"description": "AT-URI of the viewer's like record, absent when they have not liked it. The record uri rather than a boolean, because unliking deletes it and a boolean would force a second lookup at the moment the user taps.",
"format": "at-uri",
"type": "string"
}
},
"type": "object"
}
},
"id": "app.zeens.getEngagement",
"lexicon": 1
}
Metadata
- DID
-
did:plc:pwpuqwge6g7xrjmfbw73uycw - CID
-
bafyreibftu6zz3bn7ixqs3atnma27qokumjlkolcm2psq4kalo7ia3f6fq - Indexed At
- 2026-10-22 16:31 UTC
- AT-URI
-
at://did:plc:pwpuqwge6g7xrjmfbw73uycw/com.atproto.lexicon.schema/app.zeens.getEngagement
Similar Lexicons
Lexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.
-
app.bsky.feed.getLikes query
Get like records which reference a subject (by AT-URI and CID).
-
Get like records which reference a subject (by AT-URI and CID).
-
so.sprk.feed.getLikes query
Get like records which reference a subject (by AT-URI and CID).
-
Get likes for a subject (video or comment).
-
Get the like count for a game and whether the authenticated user has liked it.