Record containing a blog post. Compatible with site.standard.document.
tid
Timestamp-based ID
Properties
bskyPostRef
ref
com.atproto.repo.strongRef
Optional
Strong reference to a Bluesky post.
content
union
Optional
Open union for content. Supports markdown and other formats via $type.
coverImage
blob
Optional
Cover image. Less than 1MB.
maxSize: 1.0 MBdescription
string
Optional
A brief description or excerpt from the post.
maxLength: 30000 bytesmaxGraphemes: 3000 graphemeslangs
array
of
string
language
Optional
Indicates human language of post content.
maxLength: 3 itemsparent
string
at-uri
Optional
AT-URI of the parent message being replied to.
path
string
Optional
Combine with site URL to construct a canonical URL to the post.
publishedAt
string
datetime
Required
Timestamp of the post's publish time.
root
string
at-uri
Optional
AT-URI of the root message in a thread.
site
string
uri
Required
Points to a publication record (at://) or a publication URL (https://).
tags
array
of
string
Optional
Tags to categorize the post.
textContent
string
Optional
Plaintext representation of the post content. Should not contain markdown or other formatting.
title
string
Required
Title of the post.
maxLength: 5000 bytesmaxGraphemes: 500 graphemestranslations
ref
#translationMap
Optional
Translations of the post in other languages.
updatedAt
string
datetime
Optional
Timestamp of the post's last edit.
View raw schema
{
"key": "tid",
"type": "record",
"record": {
"type": "object",
"required": [
"site",
"title",
"publishedAt"
],
"properties": {
"path": {
"type": "string",
"description": "Combine with site URL to construct a canonical URL to the post."
},
"root": {
"type": "string",
"format": "at-uri",
"description": "AT-URI of the root message in a thread."
},
"site": {
"type": "string",
"format": "uri",
"description": "Points to a publication record (at://) or a publication URL (https://)."
},
"tags": {
"type": "array",
"items": {
"type": "string",
"maxLength": 1280,
"maxGraphemes": 128
},
"description": "Tags to categorize the post."
},
"langs": {
"type": "array",
"items": {
"type": "string",
"format": "language"
},
"maxLength": 3,
"description": "Indicates human language of post content."
},
"title": {
"type": "string",
"maxLength": 5000,
"description": "Title of the post.",
"maxGraphemes": 500
},
"parent": {
"type": "string",
"format": "at-uri",
"description": "AT-URI of the parent message being replied to."
},
"content": {
"refs": [],
"type": "union",
"closed": false,
"description": "Open union for content. Supports markdown and other formats via $type."
},
"updatedAt": {
"type": "string",
"format": "datetime",
"description": "Timestamp of the post's last edit."
},
"coverImage": {
"type": "blob",
"accept": [
"image/*"
],
"maxSize": 1000000,
"description": "Cover image. Less than 1MB."
},
"bskyPostRef": {
"ref": "com.atproto.repo.strongRef",
"type": "ref",
"description": "Strong reference to a Bluesky post."
},
"description": {
"type": "string",
"maxLength": 30000,
"description": "A brief description or excerpt from the post.",
"maxGraphemes": 3000
},
"publishedAt": {
"type": "string",
"format": "datetime",
"description": "Timestamp of the post's publish time."
},
"textContent": {
"type": "string",
"description": "Plaintext representation of the post content. Should not contain markdown or other formatting."
},
"translations": {
"ref": "#translationMap",
"type": "ref",
"description": "Translations of the post in other languages."
}
}
},
"description": "Record containing a blog post. Compatible with site.standard.document."
}