app.zeens.getSubjectCovers

zeens.app

{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "cover": {
      "description": "One subject. Returned even when it has no cover image, so a caller can tell a subject with no picture from a URI it could not resolve.",
      "properties": {
        "cid": {
          "description": "The cover blob. Absent when the subject has no cover image, or when a private collection's cover is withheld.",
          "format": "cid",
          "type": "string"
        },
        "collection": {
          "description": "The subject's NSID: app.zeens.zeen or app.zeens.collection. The caller draws a zeen at its 1:1.414 page ratio and a collection square.",
          "type": "string"
        },
        "did": {
          "description": "The repo the blob lives on, which is NOT always the subject's author -- a zeen page can hold another user's photo, and the CDN needs the owning repo.",
          "format": "did",
          "type": "string"
        },
        "title": {
          "description": "The zeen's title or the collection's name, for a subject with no cover to fall back on.",
          "type": "string"
        },
        "uri": {
          "format": "at-uri",
          "type": "string"
        }
      },
      "required": [
        "uri",
        "collection"
      ],
      "type": "object"
    },
    "main": {
      "description": "Cover thumbnails for a batch of zeen / collection URIs. Deliberately narrow -- URIs in, cover refs out -- so a notifications list can draw a preview per row without a round trip each. getCollection takes one uri and returns the whole record plus an item count; a zeen had no AppView read at all and getZeen goes to the author's PDS for every page's full text to find one cid.",
      "output": {
        "encoding": "application/json",
        "schema": {
          "properties": {
            "covers": {
              "items": {
                "ref": "#cover",
                "type": "ref"
              },
              "type": "array"
            }
          },
          "required": [
            "covers"
          ],
          "type": "object"
        }
      },
      "parameters": {
        "properties": {
          "uris": {
            "description": "Comma-separated AT-URIs, up to 50 (the notifications page size). Values beyond that are ignored. Mixed lexicons are expected: a notifications page holds zeen likes and collection likes together.",
            "type": "string"
          }
        },
        "required": [
          "uris"
        ],
        "type": "params"
      },
      "type": "query"
    }
  },
  "id": "app.zeens.getSubjectCovers",
  "lexicon": 1
}

Validate Record

Validate a record against app.zeens.getSubjectCovers

Validation Options
Treat any remaining unresolved references as valid

Metadata

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

Similar Lexicons

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

  • Fetch a single collection record + a recent-items preview for the cover. Returns 404 if visibility=private and viewer != owner.

  • For a viewer, list which of their own collections (private + public) currently contain a given subject URI. Each match includes the parent collection's name, rkey, and visibility. Used by the 'Add to collection' modal t…

Lexicon Garden

@