app.zeens.notification.listNotifications

List notifications for the authenticated Zeens user. Merges likes, replies, follows, group-membership and group-photo events from the firehose.

Repository @zeens.app did:plc:pwpuqwge6g7xrjmfbw73uycw namespace authority
Details · query
Kindquery
Authoritynotification.zeens.app
Indexed
cid bafyreidalie367wcg76xtzy6p2rc3xhsoqxnljcporeetyncrqukifj5wq

Checks

Valid
JSONDownload
{
  "$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
}