Declaration of an aggregator service that can post to communities. Published in the aggregator's own repository. Similar to app.bsky.feed.generator and app.bsky.labeler.service.
literal:self
Fixed literal value
Properties
avatar
blob
Optional
Avatar image for bot identity
maxSize: 1.0 MBconfigSchema
unknown
Optional
JSON Schema describing config options for this aggregator. Communities use this to know what configuration fields are available.
createdAt
string
datetime
Required
An RFC 3339 formatted timestamp.
description
string
Optional
Description of what this aggregator does
maxLength: 3000 bytesmaxGraphemes: 300 graphemesdid
string
did
Required
DID of the aggregator service (must match repo DID)
displayName
string
Required
Human-readable name (e.g., 'RSS News Aggregator')
maxLength: 640 bytesmaxGraphemes: 64 graphemesmaintainer
string
did
Optional
DID of person/organization maintaining this aggregator
sourceUrl
string
uri
Optional
URL to aggregator's source code (for transparency)
View raw schema
{
"description": "Declaration of an aggregator service that can post to communities. Published in the aggregator's own repository. Similar to app.bsky.feed.generator and app.bsky.labeler.service.",
"key": "literal:self",
"record": {
"properties": {
"avatar": {
"accept": [
"image/png",
"image/jpeg",
"image/webp"
],
"description": "Avatar image for bot identity",
"maxSize": 1000000,
"type": "blob"
},
"configSchema": {
"description": "JSON Schema describing config options for this aggregator. Communities use this to know what configuration fields are available.",
"type": "unknown"
},
"createdAt": {
"format": "datetime",
"type": "string"
},
"description": {
"description": "Description of what this aggregator does",
"maxGraphemes": 300,
"maxLength": 3000,
"type": "string"
},
"did": {
"description": "DID of the aggregator service (must match repo DID)",
"format": "did",
"type": "string"
},
"displayName": {
"description": "Human-readable name (e.g., 'RSS News Aggregator')",
"maxGraphemes": 64,
"maxLength": 640,
"type": "string"
},
"maintainer": {
"description": "DID of person/organization maintaining this aggregator",
"format": "did",
"type": "string"
},
"sourceUrl": {
"description": "URL to aggregator's source code (for transparency)",
"format": "uri",
"type": "string"
}
},
"required": [
"did",
"displayName",
"createdAt"
],
"type": "object"
},
"type": "record"
}