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.
tid
Timestamp-based ID
Properties
appTags
array
of
string
Optional
No description available.
maxLength: 64 itemscategorySlug
array
of
string
Required
Browse category keys (e.g. protocol/pds). First entry is the primary category for legacy surfaces.
maxLength: 32 itemsminLength: 1 itemscreatedAt
string
datetime
Required
An RFC 3339 formatted timestamp.
description
string
Optional
No description available.
maxLength: 20000 bytesexternalUrl
string
uri
Required
Primary product or project URL.
maxLength: 2048 bytesheroImage
blob
Optional
Hero / cover image blob.
maxSize: 12.0 MBicon
blob
Required
Square / app icon (uploaded to repo via com.atproto.repo.uploadBlob).
maxSize: 2.0 MBlinks
array
of
ref
#link
Optional
Relevant links for the app, including trust/compliance, support, and project resources.
maxLength: 12 itemsmigratedFromAtUri
string
at-uri
Optional
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.
maxLength: 8192 bytesname
string
Required
No description available.
maxLength: 640 bytesproductAccountDid
string
Optional
Bluesky DID for the product, app, or tool (not the AT Store publisher). Handle is resolved and stored in Postgres only.
maxLength: 2048 bytesscreenshots
array
of
blob
Optional
No description available.
maxLength: 20 itemsslug
string
Required
Stable URL slug; unique within the publishing account.
maxLength: 512 bytesminLength: 1 bytestagline
string
Required
No description available.
maxLength: 300 bytesupdatedAt
string
datetime
Required
An RFC 3339 formatted timestamp.
View raw schema
{
"key": "tid",
"type": "record",
"record": {
"type": "object",
"required": [
"slug",
"name",
"tagline",
"externalUrl",
"icon",
"categorySlug",
"createdAt",
"updatedAt"
],
"properties": {
"icon": {
"type": "blob",
"accept": [
"image/png",
"image/jpeg",
"image/webp",
"image/gif",
"image/svg+xml"
],
"maxSize": 2000000,
"description": "Square / app icon (uploaded to repo via com.atproto.repo.uploadBlob)."
},
"name": {
"type": "string",
"maxLength": 640
},
"slug": {
"type": "string",
"maxLength": 512,
"minLength": 1,
"description": "Stable URL slug; unique within the publishing account."
},
"links": {
"type": "array",
"items": {
"ref": "#link",
"type": "ref"
},
"maxLength": 12,
"description": "Relevant links for the app, including trust/compliance, support, and project resources."
},
"appTags": {
"type": "array",
"items": {
"type": "string",
"maxLength": 96
},
"maxLength": 64
},
"tagline": {
"type": "string",
"maxLength": 300
},
"createdAt": {
"type": "string",
"format": "datetime"
},
"heroImage": {
"type": "blob",
"accept": [
"image/png",
"image/jpeg",
"image/webp",
"image/gif",
"image/svg+xml"
],
"maxSize": 12000000,
"description": "Hero / cover image blob."
},
"updatedAt": {
"type": "string",
"format": "datetime"
},
"description": {
"type": "string",
"maxLength": 20000
},
"externalUrl": {
"type": "string",
"format": "uri",
"maxLength": 2048,
"description": "Primary product or project URL."
},
"screenshots": {
"type": "array",
"items": {
"type": "blob",
"accept": [
"image/png",
"image/jpeg",
"image/webp",
"image/gif",
"image/svg+xml"
],
"maxSize": 12000000
},
"maxLength": 20
},
"categorySlug": {
"type": "array",
"items": {
"type": "string",
"maxLength": 256
},
"maxLength": 32,
"minLength": 1,
"description": "Browse category keys (e.g. protocol/pds). First entry is the primary category for legacy surfaces."
},
"migratedFromAtUri": {
"type": "string",
"format": "at-uri",
"maxLength": 8192,
"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."
},
"productAccountDid": {
"type": "string",
"maxLength": 2048,
"description": "Bluesky DID for the product, app, or tool (not the AT Store publisher). Handle is resolved and stored in Postgres only."
}
}
},
"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."
}