fyi.atstore.listing.detail
{
"$type": "com.atproto.lexicon.schema",
"defs": {
"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"
},
"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
}
Metadata
- DID
-
did:plc:dvy6bdnofdfc4php4s5b457d - CID
-
bafyreigkuqax7u47rrljax7svnuqb633ho2oqimtvbodfsmgabuatmjhty - Indexed At
- 2026-04-23 00:44 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.
-
community.lexicon.app.entry record
A third-party or community listing for an app built on or for the AT Protocol.
-
fyi.atstore.profile record
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…