https://docs.bsky.app/docs/advanced-guides/moderation
Moderation in Bluesky consists of multiple, stackable systems, including:
Developers building client applications should understand how to apply labels (#2) and user controls (#3). For more complete details, see the Labels Specification.
Labels are published by moderation services, which are either hardcoded into the application or chosen by the user. They are attached to records in the responses under the labels
key.
A label is published with the following information:
{
/** DID of the actor who created this label. */
src: string
/** AT URI of the record, repository (account), or other resource that this label applies to. */
uri: string
/** Optionally, CID specifying the specific version of 'uri' resource this label applies to. */
cid?: string
/** The short string name of the value or type of this label. */
val: string
/** If true, this is a negation label, overwriting a previous label. */
neg?: boolean
/** Timestamp when this label was created. */
cts: string
}
The value of a label will determine its behavior. Some example label values are porn
, gore
, and spam
.
Label values are strings. They currently must only be lowercase a-z or a dash character ^[a-z-]+$
. Some of them start with !
, but that can only be used by global label values.
Label values are interpreted by their definitions. Those definitions include these attributes:
blurs
which may be content
or media
or none
severity
which may be alert
or inform
or none
defaultSetting
which may be hide
or warn
or ignore
adultOnly
which is boolean