Record containing a forum topic post.
tid
Timestamp-based ID
Properties
category
string
record-key
Required
Category record key (slug) within the community. Follows AT Protocol record key syntax.
maxLength: 640 bytesmaxGraphemes: 64 graphemescommunity
string
did
Required
DID of the community where this record was created. Immutable origin identifier for cross-community attribution.
content
union
Required
Post body content. Open union for extensible content formats.
facets
array
of
ref
app.bsky.richtext.facet
Optional
Annotations of text (mentions, URLs, hashtags, etc).
labels
union
Optional
Self-label values for content maturity (e.g., sexual, nudity, graphic-media).
langs
array
of
string
language
Optional
BCP 47 language tags indicating the primary language(s) of the content.
maxLength: 3 itemspublishedAt
string
datetime
Required
Client-declared timestamp when this post was originally published.
site
string
Optional
Reference to a site.standard.publication record (at:// URI) or publication URL (https://). Enables cross-app content discovery.
maxLength: 5000 bytestags
array
of
string
Optional
Topic tags. Lowercase alphanumeric + hyphens.
maxLength: 25 itemstitle
string
Required
Topic title.
maxLength: 2000 bytesminLength: 1 bytesmaxGraphemes: 200 graphemesView raw schema
{
"key": "tid",
"type": "record",
"record": {
"type": "object",
"required": [
"title",
"content",
"community",
"category",
"publishedAt"
],
"properties": {
"site": {
"type": "string",
"maxLength": 5000,
"description": "Reference to a site.standard.publication record (at:// URI) or publication URL (https://). Enables cross-app content discovery."
},
"tags": {
"type": "array",
"items": {
"type": "string",
"maxLength": 300,
"minLength": 1,
"maxGraphemes": 30
},
"maxLength": 25,
"description": "Topic tags. Lowercase alphanumeric + hyphens."
},
"langs": {
"type": "array",
"items": {
"type": "string",
"format": "language"
},
"maxLength": 3,
"description": "BCP 47 language tags indicating the primary language(s) of the content."
},
"title": {
"type": "string",
"maxLength": 2000,
"minLength": 1,
"description": "Topic title.",
"maxGraphemes": 200
},
"facets": {
"type": "array",
"items": {
"ref": "app.bsky.richtext.facet",
"type": "ref"
},
"description": "Annotations of text (mentions, URLs, hashtags, etc)."
},
"labels": {
"refs": [
"com.atproto.label.defs#selfLabels"
],
"type": "union",
"description": "Self-label values for content maturity (e.g., sexual, nudity, graphic-media)."
},
"content": {
"refs": [
"forum.barazo.richtext#markdown"
],
"type": "union",
"description": "Post body content. Open union for extensible content formats."
},
"category": {
"type": "string",
"format": "record-key",
"maxLength": 640,
"description": "Category record key (slug) within the community. Follows AT Protocol record key syntax.",
"maxGraphemes": 64
},
"community": {
"type": "string",
"format": "did",
"description": "DID of the community where this record was created. Immutable origin identifier for cross-community attribution."
},
"publishedAt": {
"type": "string",
"format": "datetime",
"description": "Client-declared timestamp when this post was originally published."
}
}
},
"description": "Record containing a forum topic post."
}