app.bsky.notification.getGroupedNotifications
{
"$type": "com.atproto.lexicon.schema",
"defs": {
"contactMatchNotification": {
"description": "A contact of the requesting account joined Bluesky.",
"properties": {
"actor": {
"format": "did",
"type": "string"
}
},
"required": [
"actor"
],
"type": "object"
},
"followBackNotification": {
"description": "An actor followed the requesting account back, possibly via a starter pack.",
"properties": {
"actor": {
"format": "did",
"type": "string"
},
"starterPack": {
"format": "at-uri",
"type": "string"
}
},
"required": [
"actor"
],
"type": "object"
},
"followGroup": {
"description": "Group of actors who followed the requesting account.",
"properties": {
"items": {
"items": {
"ref": "#followItem",
"type": "ref"
},
"minLength": 1,
"type": "array"
}
},
"required": [
"items"
],
"type": "object"
},
"followItem": {
"description": "An actor who followed the requesting account, possibly via a starter pack.",
"properties": {
"actor": {
"format": "did",
"type": "string"
},
"starterPack": {
"format": "at-uri",
"type": "string"
}
},
"required": [
"actor"
],
"type": "object"
},
"generatorLikeGroup": {
"description": "Group of likes by different actors on the same feed generator.",
"properties": {
"generator": {
"format": "at-uri",
"type": "string"
},
"items": {
"items": {
"ref": "#generatorLikeItem",
"type": "ref"
},
"minLength": 1,
"type": "array"
}
},
"required": [
"generator",
"items"
],
"type": "object"
},
"generatorLikeItem": {
"description": "One actor who liked the feed generator in the group.",
"properties": {
"actor": {
"format": "did",
"type": "string"
}
},
"required": [
"actor"
],
"type": "object"
},
"group": {
"description": "Contains common metadata and kind-specific data for a notification group or individual notification.",
"properties": {
"count": {
"minimum": 1,
"type": "integer"
},
"id": {
"maxLength": 256,
"type": "string"
},
"indexedAt": {
"format": "datetime",
"type": "string"
},
"isRead": {
"type": "boolean"
},
"kind": {
"refs": [
"#likeGroup",
"#multiPostLikeGroup",
"#repostGroup",
"#likeViaRepostGroup",
"#repostViaRepostGroup",
"#followGroup",
"#subscribedPostGroup",
"#generatorLikeGroup",
"#replyNotification",
"#quoteNotification",
"#mentionNotification",
"#followBackNotification",
"#verifiedNotification",
"#unverifiedNotification",
"#starterPackJoinedNotification",
"#contactMatchNotification"
],
"type": "union"
}
},
"required": [
"id",
"isRead",
"indexedAt",
"count",
"kind"
],
"type": "object"
},
"likeGroup": {
"description": "Group of likes by different actors on the same post.",
"properties": {
"items": {
"items": {
"ref": "#likeItem",
"type": "ref"
},
"minLength": 1,
"type": "array"
},
"post": {
"format": "at-uri",
"type": "string"
}
},
"required": [
"post",
"items"
],
"type": "object"
},
"likeItem": {
"description": "One actor who liked the group's post.",
"properties": {
"actor": {
"format": "did",
"type": "string"
}
},
"required": [
"actor"
],
"type": "object"
},
"likeViaRepostGroup": {
"description": "Group of likes by different actors on the same post via the requesting account's repost.",
"properties": {
"items": {
"items": {
"ref": "#likeViaRepostItem",
"type": "ref"
},
"minLength": 1,
"type": "array"
},
"post": {
"format": "at-uri",
"type": "string"
},
"viaRepost": {
"format": "at-uri",
"type": "string"
}
},
"required": [
"post",
"viaRepost",
"items"
],
"type": "object"
},
"likeViaRepostItem": {
"description": "One actor who liked the group's post via the requesting account's repost.",
"properties": {
"actor": {
"format": "did",
"type": "string"
}
},
"required": [
"actor"
],
"type": "object"
},
"main": {
"description": "[UNSTABLE - DO NOT USE THIS ENDPOINT WHILE THIS NOTE IS HERE] Enumerate notifications for the requesting account, pre-grouped for rendering. Supersedes listNotifications. Requires auth.",
"output": {
"encoding": "application/json",
"schema": {
"properties": {
"cursor": {
"maxLength": 1024,
"type": "string"
},
"groups": {
"description": "Notification groups or individual notifications, newest first. Clients should ignore kinds they do not recognize. Grouping behavior depends on the kind and selected feed.",
"items": {
"ref": "#group",
"type": "ref"
},
"type": "array"
},
"relatedViews": {
"description": "Reusable views referenced by notifications. Views shared across notifications appear once to avoid duplication. Each group contributes only its first 10 of each related view to this array. Ex: for a group containing likes in a post, we might have a large number of likeItem (e.g., 50) in a group, but only the profile views for the newest 10 items will be included here.",
"items": {
"refs": [
"app.bsky.actor.defs#profileViewDetailed",
"app.bsky.feed.defs#blockedPost",
"app.bsky.feed.defs#generatorView",
"app.bsky.feed.defs#notFoundPost",
"app.bsky.feed.defs#postView",
"app.bsky.graph.defs#starterPackView"
],
"type": "union"
},
"type": "array"
},
"seenAt": {
"format": "datetime",
"type": "string"
}
},
"required": [
"groups"
],
"type": "object"
}
},
"parameters": {
"properties": {
"cursor": {
"maxLength": 1024,
"type": "string"
},
"feed": {
"default": "all",
"description": "Which notification feed to return. Grouping behavior varies by feed: notifications about follows might be grouped in 'all' and ungrouped (or rather, in single-item groups) in 'followers'.",
"knownValues": [
"all",
"people-i-follow",
"conversations",
"followers",
"activity"
],
"maxLength": 32,
"type": "string"
},
"limit": {
"default": 30,
"description": "Maximum number of groups to return.",
"maximum": 50,
"minimum": 1,
"type": "integer"
}
},
"type": "params"
},
"type": "query"
},
"mentionNotification": {
"description": "A post mentioning the requesting account.",
"properties": {
"parent": {
"format": "at-uri",
"type": "string"
},
"post": {
"format": "at-uri",
"type": "string"
}
},
"required": [
"post"
],
"type": "object"
},
"multiPostLikeGroup": {
"description": "Group of likes by the same actor on different posts.",
"properties": {
"actor": {
"format": "did",
"type": "string"
},
"items": {
"items": {
"ref": "#multiPostLikeItem",
"type": "ref"
},
"minLength": 2,
"type": "array"
}
},
"required": [
"actor",
"items"
],
"type": "object"
},
"multiPostLikeItem": {
"description": "One post which was liked by the group's actor.",
"properties": {
"post": {
"format": "at-uri",
"type": "string"
}
},
"required": [
"post"
],
"type": "object"
},
"quoteNotification": {
"description": "A post quoting a post by the requesting account.",
"properties": {
"parent": {
"format": "at-uri",
"type": "string"
},
"post": {
"format": "at-uri",
"type": "string"
}
},
"required": [
"post"
],
"type": "object"
},
"replyNotification": {
"description": "A reply to a post by the requesting account or to a thread they are participating in.",
"properties": {
"parent": {
"format": "at-uri",
"type": "string"
},
"post": {
"format": "at-uri",
"type": "string"
}
},
"required": [
"post",
"parent"
],
"type": "object"
},
"repostGroup": {
"description": "Group of reposts by different actors of the same post.",
"properties": {
"items": {
"items": {
"ref": "#repostItem",
"type": "ref"
},
"minLength": 1,
"type": "array"
},
"post": {
"format": "at-uri",
"type": "string"
}
},
"required": [
"post",
"items"
],
"type": "object"
},
"repostItem": {
"description": "One actor who reposted the group's post.",
"properties": {
"actor": {
"format": "did",
"type": "string"
}
},
"required": [
"actor"
],
"type": "object"
},
"repostViaRepostGroup": {
"description": "Group of reposts by different actors of the same post via the requesting account's repost.",
"properties": {
"items": {
"items": {
"ref": "#repostViaRepostItem",
"type": "ref"
},
"minLength": 1,
"type": "array"
},
"post": {
"format": "at-uri",
"type": "string"
},
"viaRepost": {
"format": "at-uri",
"type": "string"
}
},
"required": [
"post",
"viaRepost",
"items"
],
"type": "object"
},
"repostViaRepostItem": {
"description": "One actor who reposted the group's post via the requesting account's repost.",
"properties": {
"actor": {
"format": "did",
"type": "string"
}
},
"required": [
"actor"
],
"type": "object"
},
"starterPackJoinedNotification": {
"description": "An actor joined Bluesky via a starter pack created by the requesting account.",
"properties": {
"actor": {
"format": "did",
"type": "string"
},
"starterPack": {
"format": "at-uri",
"type": "string"
}
},
"required": [
"actor",
"starterPack"
],
"type": "object"
},
"subscribedPostGroup": {
"description": "Group of new posts by actors the requesting account subscribes to.",
"properties": {
"items": {
"items": {
"ref": "#subscribedPostItem",
"type": "ref"
},
"minLength": 1,
"type": "array"
}
},
"required": [
"items"
],
"type": "object"
},
"subscribedPostItem": {
"description": "One new post by an actor the requesting account subscribes to.",
"properties": {
"actor": {
"format": "did",
"type": "string"
},
"post": {
"format": "at-uri",
"type": "string"
}
},
"required": [
"actor",
"post"
],
"type": "object"
},
"unverifiedNotification": {
"description": "A verification of the requesting account was removed.",
"properties": {
"actor": {
"format": "did",
"type": "string"
}
},
"required": [
"actor"
],
"type": "object"
},
"verifiedNotification": {
"description": "An actor verified the requesting account.",
"properties": {
"actor": {
"format": "did",
"type": "string"
}
},
"required": [
"actor"
],
"type": "object"
}
},
"id": "app.bsky.notification.getGroupedNotifications",
"lexicon": 1
}
Metadata
- DID
-
did:plc:4v4y5r3lwsbtmsxhile2ljac - CID
-
bafyreihyv25gx7iysovm7k7nohyb4i5yiutkvtbyk6hzwhm5cnu3apim3m - Indexed At
- 2026-10-01 21:43 UTC
- AT-URI
-
at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.notification.getGroupedNotifications
Version History (4 versions)
Referenced Schemas (6)
Similar Lexicons
Lexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.
-
Enumerate notifications for the requesting account. Requires auth.
-
Enumerate notifications for the requesting account. Requires auth.
-
Enumerate notifications for the requesting account. Requires auth.
-
Notifications for the authenticated viewer (newest first). Includes read items; AppView may drop items older than 30 days.
-
Paginated notifications addressed to the requesting viewer, newest first. The viewer DID is read from the service-auth JWT (`iss` claim) — no `?viewer=` query parameter.