fyi.atstore.listing.detail

atstore.fyi

{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "link": {
      "properties": {
        "label": {
          "description": "Optional human-readable label, especially useful when type is 'other'.",
          "maxGraphemes": 50,
          "maxLength": 100,
          "type": "string"
        },
        "type": {
          "description": "The kind of link.",
          "knownValues": [
            "privacy",
            "terms",
            "support",
            "contact",
            "docs",
            "blog",
            "changelog",
            "source",
            "status",
            "other"
          ],
          "type": "string"
        },
        "url": {
          "description": "The destination URL.",
          "format": "uri",
          "type": "string"
        }
      },
      "required": [
        "type",
        "url"
      ],
      "type": "object"
    },
    "main": {
      "description": "Public protocol or app listing in the AT Store directory. Images are stored as repo blobs (Kitchen-style); the web app caches HTTPS URLs in Postgres separately.",
      "key": "tid",
      "record": {
        "properties": {
          "appTags": {
            "items": {
              "maxLength": 96,
              "type": "string"
            },
            "maxLength": 64,
            "type": "array"
          },
          "categorySlug": {
            "description": "Browse category keys (e.g. protocol/pds). First entry is the primary category for legacy surfaces.",
            "items": {
              "maxLength": 256,
              "type": "string"
            },
            "maxLength": 32,
            "minLength": 1,
            "type": "array"
          },
          "createdAt": {
            "format": "datetime",
            "type": "string"
          },
          "description": {
            "maxLength": 20000,
            "type": "string"
          },
          "externalUrl": {
            "description": "Primary product or project URL.",
            "format": "uri",
            "maxLength": 2048,
            "type": "string"
          },
          "heroImage": {
            "accept": [
              "image/png",
              "image/jpeg",
              "image/webp",
              "image/gif",
              "image/svg+xml"
            ],
            "description": "Hero / cover image blob.",
            "maxSize": 12000000,
            "type": "blob"
          },
          "icon": {
            "accept": [
              "image/png",
              "image/jpeg",
              "image/webp",
              "image/gif",
              "image/svg+xml"
            ],
            "description": "Square / app icon (uploaded to repo via com.atproto.repo.uploadBlob).",
            "maxSize": 2000000,
            "type": "blob"
          },
          "links": {
            "description": "Relevant links for the app, including trust/compliance, support, and project resources.",
            "items": {
              "ref": "#link",
              "type": "ref"
            },
            "maxLength": 12,
            "type": "array"
          },
          "migratedFromAtUri": {
            "description": "When this listing.detail record supersedes a prior record in another repo (e.g. moved from the AT Store publisher to a product owner PDS), the at:// URI of that prior fyi.atstore.listing.detail record.",
            "format": "at-uri",
            "maxLength": 8192,
            "type": "string"
          },
          "name": {
            "maxLength": 640,
            "type": "string"
          },
          "productAccountDid": {
            "description": "Bluesky DID for the product, app, or tool (not the AT Store publisher). Handle is resolved and stored in Postgres only.",
            "maxLength": 2048,
            "type": "string"
          },
          "screenshots": {
            "items": {
              "accept": [
                "image/png",
                "image/jpeg",
                "image/webp",
                "image/gif",
                "image/svg+xml"
              ],
              "maxSize": 12000000,
              "type": "blob"
            },
            "maxLength": 20,
            "type": "array"
          },
          "slug": {
            "description": "Stable URL slug; unique within the publishing account.",
            "maxLength": 512,
            "minLength": 1,
            "type": "string"
          },
          "tagline": {
            "maxLength": 300,
            "type": "string"
          },
          "updatedAt": {
            "format": "datetime",
            "type": "string"
          }
        },
        "required": [
          "slug",
          "name",
          "tagline",
          "externalUrl",
          "icon",
          "heroImage",
          "categorySlug",
          "createdAt",
          "updatedAt"
        ],
        "type": "object"
      },
      "type": "record"
    }
  },
  "id": "fyi.atstore.listing.detail",
  "lexicon": 1
}

Validate Record

Validate a record against fyi.atstore.listing.detail

Validation Options
Treat any remaining unresolved references as valid

Metadata

DID
did:plc:dvy6bdnofdfc4php4s5b457d
CID
bafyreico3oumjzos64fe7yfd2d5zvdiecy65kgucefvbjiiubgofu5225u
Indexed At
2026-04-23 03:48 UTC
AT-URI
at://did:plc:dvy6bdnofdfc4php4s5b457d/com.atproto.lexicon.schema/fyi.atstore.listing.detail

Version History (6 versions)

Similar Lexicons

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

  • Fetch one public verified listing. Provide exactly one of `uri` (fyi.atstore.listing.detail AT URI) or `externalUrl` (unique storefront URL); `externalUrl` uses the same matching rules as the former resolve endpoint.

  • A third-party or community listing for an app built on or for the AT Protocol.

  • AT Store app profile for discovery and TAP ingestion (Kitchen-style).

  • The canonical self-published profile for an app built on or for the AT Protocol.

  • A user or project profile in the Atmosphere registry. Created by the account owner on their PDS; one record per account. Reviews, ratings, moderation, and other social data live in sibling com.atmosphereaccount.registry…

Lexicon Garden

@