app.zeens.notification.listNotifications

zeens.app

{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "actor": {
      "properties": {
        "avatar": {
          "type": "string"
        },
        "did": {
          "format": "did",
          "type": "string"
        },
        "displayName": {
          "type": "string"
        },
        "handle": {
          "type": "string"
        }
      },
      "required": [
        "did"
      ],
      "type": "object"
    },
    "main": {
      "description": "List notifications for the authenticated Zeens user. Merges likes, replies, follows, group-membership and group-photo events from the firehose.",
      "output": {
        "encoding": "application/json",
        "schema": {
          "properties": {
            "cursor": {
              "type": "string"
            },
            "notifications": {
              "items": {
                "ref": "#notification",
                "type": "ref"
              },
              "type": "array"
            },
            "seenAt": {
              "format": "datetime",
              "type": "string"
            }
          },
          "required": [
            "notifications"
          ],
          "type": "object"
        }
      },
      "parameters": {
        "properties": {
          "actors": {
            "description": "Required comma-separated allowlist of author DIDs (the Zeens membership set). Only notifications authored by one of these DIDs are returned, so activity that reached the repo from Bluesky or another atproto client is excluded. An empty list returns nothing.",
            "type": "string"
          },
          "cursor": {
            "description": "Pagination cursor (ISO-8601 timestamp of the oldest notification in the previous page).",
            "type": "string"
          },
          "limit": {
            "default": 50,
            "maximum": 100,
            "minimum": 1,
            "type": "integer"
          },
          "recipient": {
            "description": "DID whose notifications to fetch. The AppView trusts this value; auth is enforced at the SvelteKit layer.",
            "format": "did",
            "type": "string"
          }
        },
        "required": [
          "recipient",
          "actors"
        ],
        "type": "params"
      },
      "type": "query"
    },
    "notification": {
      "properties": {
        "author": {
          "description": "Who caused the notification (the liker, replier, follower, inviter, etc.).",
          "ref": "#actor",
          "type": "ref"
        },
        "extra": {
          "description": "Reason-specific payload (e.g. group DID, role, accept/decline flag).",
          "type": "unknown"
        },
        "indexedAt": {
          "format": "datetime",
          "type": "string"
        },
        "isRead": {
          "type": "boolean"
        },
        "labels": {
          "items": {
            "type": "unknown"
          },
          "type": "array"
        },
        "reason": {
          "description": "The type of notification.",
          "knownValues": [
            "like",
            "reply",
            "follow",
            "article-like",
            "article-reply",
            "comment_like",
            "comment_reply",
            "group-member-added",
            "group-photo-added",
            "group-invite",
            "group-photo-invite",
            "group-photo-invite-accepted"
          ],
          "type": "string"
        },
        "reasonSubject": {
          "description": "For like/reply/article-like: AT-URI of the subject post/article. For group events: AT-URI of the group record.",
          "format": "at-uri",
          "type": "string"
        },
        "recordUri": {
          "description": "Same as uri — present for compatibility with bsky notification shape.",
          "format": "at-uri",
          "type": "string"
        },
        "uri": {
          "description": "AT-URI of the triggering record (the like, reply, follow, groupMember, etc.).",
          "format": "at-uri",
          "type": "string"
        }
      },
      "required": [
        "uri",
        "author",
        "reason",
        "recordUri",
        "isRead",
        "indexedAt"
      ],
      "type": "object"
    }
  },
  "id": "app.zeens.notification.listNotifications",
  "lexicon": 1
}

Validate Record

Validate a record against app.zeens.notification.listNotifications

Validation Options
Treat any remaining unresolved references as valid

Metadata

DID
did:plc:pwpuqwge6g7xrjmfbw73uycw
CID
bafyreidalie367wcg76xtzy6p2rc3xhsoqxnljcporeetyncrqukifj5wq
Indexed At
2026-10-22 16:31 UTC
AT-URI
at://did:plc:pwpuqwge6g7xrjmfbw73uycw/com.atproto.lexicon.schema/app.zeens.notification.listNotifications

Similar Lexicons

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

Lexicon Garden

@