app.bsky.notification.getGroupedNotifications

bsky-lexicons.bsky.social

{
  "$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"
            },
            "relatedProfileViews": {
              "description": "A map of actor DID to app.bsky.actor.defs#profileViewDetailed. Typed dictionary values are unsupported by this lexicon version.",
              "type": "unknown"
            },
            "relatedRecordViews": {
              "description": "A map of AT URI to reusable app.bsky.feed.defs#postView, app.bsky.feed.defs#notFoundPost, app.bsky.feed.defs#blockedPost, app.bsky.graph.defs#starterPackView, or app.bsky.feed.defs#generatorView. Views shared across notifications appear once to avoid duplication. Typed dictionary values are unsupported by this lexicon version.",
              "type": "unknown"
            },
            "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"
          },
          "utcOffset": {
            "default": 0,
            "description": "Offset from UTC in minutes, positive east, used to determine local day boundaries when grouping. Groups never span the current day boundary. Defaults to UTC.",
            "maximum": 840,
            "minimum": -720,
            "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
}

Validate Record

Validate a record against app.bsky.notification.getGroupedNotifications

Validation Options
Treat any remaining unresolved references as valid

Metadata

DID
did:plc:4v4y5r3lwsbtmsxhile2ljac
CID
bafyreiabwse5z2vz5za6wwxmn6rujugz33wnvdv2gesvv4xo3oeie2wmem
Indexed At
2026-09-30 19:58 UTC
AT-URI
at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.notification.getGroupedNotifications

Version History (4 versions)

Similar Lexicons

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

Lexicon Garden

@