A document record representing a published article, blog post, or other content. Documents can belong to a publication or exist independently.
tid
Timestamp-based ID
Properties
bskyPostRef
ref
com.atproto.repo.strongRef
Optional
Strong reference to a Bluesky post. Useful to keep track of comments off-platform.
content
union
Optional
Open union used to define the record's content. Each entry must specify a $type and may be extended with other lexicons to support additional content formats.
coverImage
blob
Optional
Image to used for thumbnail or cover image. Less than 1MB is size.
maxSize: 1.0 MBdescription
string
Optional
A brief description or excerpt from the document.
maxLength: 3000 bytesmaxGraphemes: 300 graphemespath
string
Optional
Combine with site or publication url to construct a canonical URL to the document. Prepend with a leading slash.
publishedAt
string
datetime
Required
Timestamp of the documents publish time.
site
string
uri
Required
Points to a publication record (at://) or a publication url (https://) for loose documents. Avoid trailing slashes.
tags
array
of
string
Optional
Array of strings used to tag or categorize the document. Avoid prepending tags with hashtags.
textContent
string
Optional
Plaintext representation of the documents contents. Should not contain markdown or other formatting.
title
string
Required
Title of the document.
maxLength: 1280 bytesmaxGraphemes: 128 graphemesupdatedAt
string
datetime
Optional
Timestamp of the documents last edit.
View raw schema
{
"key": "tid",
"type": "record",
"record": {
"type": "object",
"required": [
"site",
"title",
"publishedAt"
],
"properties": {
"path": {
"type": "string",
"description": "Combine with site or publication url to construct a canonical URL to the document. Prepend with a leading slash."
},
"site": {
"type": "string",
"format": "uri",
"description": "Points to a publication record (at://) or a publication url (https://) for loose documents. Avoid trailing slashes."
},
"tags": {
"type": "array",
"items": {
"type": "string",
"maxLength": 100,
"maxGraphemes": 50
},
"description": "Array of strings used to tag or categorize the document. Avoid prepending tags with hashtags."
},
"title": {
"type": "string",
"maxLength": 1280,
"description": "Title of the document.",
"maxGraphemes": 128
},
"content": {
"refs": [],
"type": "union",
"closed": false,
"description": "Open union used to define the record's content. Each entry must specify a $type and may be extended with other lexicons to support additional content formats."
},
"updatedAt": {
"type": "string",
"format": "datetime",
"description": "Timestamp of the documents last edit."
},
"coverImage": {
"type": "blob",
"accept": [
"image/*"
],
"maxSize": 1000000,
"description": "Image to used for thumbnail or cover image. Less than 1MB is size."
},
"bskyPostRef": {
"ref": "com.atproto.repo.strongRef",
"type": "ref",
"description": "Strong reference to a Bluesky post. Useful to keep track of comments off-platform."
},
"description": {
"type": "string",
"maxLength": 3000,
"description": "A brief description or excerpt from the document.",
"maxGraphemes": 300
},
"publishedAt": {
"type": "string",
"format": "datetime",
"description": "Timestamp of the documents publish time."
},
"textContent": {
"type": "string",
"description": "Plaintext representation of the documents contents. Should not contain markdown or other formatting."
}
}
},
"description": "A document record representing a published article, blog post, or other content. Documents can belong to a publication or exist independently."
}