Label definition builder
BlueSky moderation labeler and tag builder
Draft custom label value definitions, labeler service policy JSON, and unsigned sample labels for AT Protocol moderation workflows before a developer builds the actual labeler service.
Build label JSON
Custom label values use lowercase letters and dashes. Global values that start with ! are reserved and should not be created here.
Generated JSON
{
"labelValueDefinition": {
"identifier": "needs-source",
"severity": "inform",
"blurs": "none",
"defaultSetting": "warn",
"adultOnly": false,
"locales": [
{
"lang": "en",
"name": "Needs source",
"description": "Marks posts where a citation or primary source would help readers evaluate the claim."
}
]
},
"labelerServiceRecord": {
"$type": "app.bsky.labeler.service",
"policies": {
"labelValues": [
"needs-source"
],
"labelValueDefinitions": [
{
"identifier": "needs-source",
"severity": "inform",
"blurs": "none",
"defaultSetting": "warn",
"adultOnly": false,
"locales": [
{
"lang": "en",
"name": "Needs source",
"description": "Marks posts where a citation or primary source would help readers evaluate the claim."
}
]
}
]
},
"subjectTypes": [
"record"
],
"subjectCollections": [
"app.bsky.feed.post"
],
"reasonTypes": [
"com.atproto.moderation.defs#reasonOther"
],
"createdAt": "2026-06-21T22:26:16.923Z"
},
"sampleUnsignedLabel": {
"src": "did:web:moderation.example.com",
"uri": "at://did:plc:example123/app.bsky.feed.post/3example",
"val": "needs-source",
"cts": "2026-06-21T22:26:16.923Z"
},
"headersForClients": {
"requestHeader": "atproto-accept-labelers: did:web:moderation.example.com",
"note": "Clients include labeler DIDs to request labels from selected labelers. This tool does not subscribe users or publish labels."
}
}