Skip to content

app.bsky.feed.post

Lexicon Version: 1

Type: record

Record containing a Bluesky post.

Record Key: tid

Record Properties:

NameTypeReq’dDescriptionConstraints
textstringThe primary post content. May be an empty string, if there are embeds.Max Length: 3000
Max Graphemes: 300
entitiesArray of #entityDEPRECATED: replaced by app.bsky.richtext.facet.
facetsArray of app.bsky.richtext.facetAnnotations of text (mentions, URLs, hashtags, etc)
reply#replyRef
embedUnion of:
  app.bsky.embed.images
  app.bsky.embed.video
  app.bsky.embed.external
  app.bsky.embed.record
  app.bsky.embed.recordWithMedia
langsArray of stringIndicates human language of post primary text content.Max Items: 3
labelsUnion of:
  com.atproto.label.defs#selfLabels
Self-label values for this post. Effectively content warnings.
tagsArray of stringAdditional hashtags, in addition to any included in post text and facets.Max Items: 8
createdAtstringClient-declared timestamp when this post was originally created.Format: datetime

Type: object

Properties:

NameTypeReq’dDescriptionConstraints
rootcom.atproto.repo.strongRef
parentcom.atproto.repo.strongRef

Type: object

Deprecated: use facets instead.

Properties:

NameTypeReq’dDescriptionConstraints
index#textSlice
typestringExpected values are ‘mention’ and ‘link’.
valuestring

Type: object

Deprecated. Use app.bsky.richtext instead — A text segment. Start is inclusive, end is exclusive. Indices are for utf16-encoded strings.

Properties:

NameTypeReq’dDescriptionConstraints
startintegerMin: 0
endintegerMin: 0

{
"lexicon": 1,
"id": "app.bsky.feed.post",
"defs": {
"main": {
"type": "record",
"description": "Record containing a Bluesky post.",
"key": "tid",
"record": {
"type": "object",
"required": [
"text",
"createdAt"
],
"properties": {
"text": {
"type": "string",
"maxLength": 3000,
"maxGraphemes": 300,
"description": "The primary post content. May be an empty string, if there are embeds."
},
"entities": {
"type": "array",
"description": "DEPRECATED: replaced by app.bsky.richtext.facet.",
"items": {
"type": "ref",
"ref": "#entity"
}
},
"facets": {
"type": "array",
"description": "Annotations of text (mentions, URLs, hashtags, etc)",
"items": {
"type": "ref",
"ref": "app.bsky.richtext.facet"
}
},
"reply": {
"type": "ref",
"ref": "#replyRef"
},
"embed": {
"type": "union",
"refs": [
"app.bsky.embed.images",
"app.bsky.embed.video",
"app.bsky.embed.external",
"app.bsky.embed.record",
"app.bsky.embed.recordWithMedia"
]
},
"langs": {
"type": "array",
"description": "Indicates human language of post primary text content.",
"maxLength": 3,
"items": {
"type": "string",
"format": "language"
}
},
"labels": {
"type": "union",
"description": "Self-label values for this post. Effectively content warnings.",
"refs": [
"com.atproto.label.defs#selfLabels"
]
},
"tags": {
"type": "array",
"description": "Additional hashtags, in addition to any included in post text and facets.",
"maxLength": 8,
"items": {
"type": "string",
"maxLength": 640,
"maxGraphemes": 64
}
},
"createdAt": {
"type": "string",
"format": "datetime",
"description": "Client-declared timestamp when this post was originally created."
}
}
}
},
"replyRef": {
"type": "object",
"required": [
"root",
"parent"
],
"properties": {
"root": {
"type": "ref",
"ref": "com.atproto.repo.strongRef"
},
"parent": {
"type": "ref",
"ref": "com.atproto.repo.strongRef"
}
}
},
"entity": {
"type": "object",
"description": "Deprecated: use facets instead.",
"required": [
"index",
"type",
"value"
],
"properties": {
"index": {
"type": "ref",
"ref": "#textSlice"
},
"type": {
"type": "string",
"description": "Expected values are 'mention' and 'link'."
},
"value": {
"type": "string"
}
}
},
"textSlice": {
"type": "object",
"description": "Deprecated. Use app.bsky.richtext instead -- A text segment. Start is inclusive, end is exclusive. Indices are for utf16-encoded strings.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "integer",
"minimum": 0
},
"end": {
"type": "integer",
"minimum": 0
}
}
}
}
}