Update an existing post
Input
Encoding
application/jsoncontent
string
Optional
Updated content - main text for text posts, description for media, etc.
maxLength: 100000 bytesmaxGraphemes: 10000 graphemeseditNote
string
Optional
Optional note explaining the edit
maxLength: 3000 bytesmaxGraphemes: 300 graphemesembed
union
Optional
Updated embedded content (note: changing embed type may be restricted)
facets
array
Optional
Updated annotations for rich text (mentions, links, formatting, block structure)
maxLength: 200 itemslabels
refcom.atproto.label.defs#selfLabels
Optional
Updated self-applied content labels
langs
array
Optional
Updated languages (ISO 639-1)
maxLength: 3 itemstags
array
Optional
Updated topic tags
maxLength: 8 itemstitle
string
Optional
Updated title
maxLength: 3000 bytesmaxGraphemes: 300 graphemesuri
stringat-uri
Required
AT-URI of the post to update
Output
Encoding
application/jsoncid
stringcid
Required
New CID of the updated post
uri
stringat-uri
Required
AT-URI of the updated post
Errors
PostNotFound
Post not found NotAuthorized
User is not authorized to edit this post EditWindowExpired
Edit window has expired (posts can only be edited within 24 hours) InvalidUpdate
Invalid update operation (e.g., changing post type) Try It
Requests are sent directly from your browser. Some servers may block requests due to CORS.
View raw schema
{
"type": "procedure",
"input": {
"schema": {
"type": "object",
"required": [
"uri"
],
"properties": {
"uri": {
"type": "string",
"format": "at-uri",
"description": "AT-URI of the post to update"
},
"tags": {
"type": "array",
"items": {
"type": "string",
"maxLength": 640,
"maxGraphemes": 64
},
"maxLength": 8,
"description": "Updated topic tags"
},
"embed": {
"refs": [
"social.coves.embed.images",
"social.coves.embed.video",
"social.coves.embed.external",
"social.coves.embed.post"
],
"type": "union",
"description": "Updated embedded content (note: changing embed type may be restricted)"
},
"langs": {
"type": "array",
"items": {
"type": "string",
"format": "language"
},
"maxLength": 3,
"description": "Updated languages (ISO 639-1)"
},
"title": {
"type": "string",
"maxLength": 3000,
"description": "Updated title",
"maxGraphemes": 300
},
"facets": {
"type": "array",
"items": {
"ref": "social.coves.richtext.facet",
"type": "ref"
},
"maxLength": 200,
"description": "Updated annotations for rich text (mentions, links, formatting, block structure)"
},
"labels": {
"ref": "com.atproto.label.defs#selfLabels",
"type": "ref",
"description": "Updated self-applied content labels"
},
"content": {
"type": "string",
"maxLength": 100000,
"description": "Updated content - main text for text posts, description for media, etc.",
"maxGraphemes": 10000
},
"editNote": {
"type": "string",
"maxLength": 3000,
"description": "Optional note explaining the edit",
"maxGraphemes": 300
}
}
},
"encoding": "application/json"
},
"errors": [
{
"name": "PostNotFound",
"description": "Post not found"
},
{
"name": "NotAuthorized",
"description": "User is not authorized to edit this post"
},
{
"name": "EditWindowExpired",
"description": "Edit window has expired (posts can only be edited within 24 hours)"
},
{
"name": "InvalidUpdate",
"description": "Invalid update operation (e.g., changing post type)"
}
],
"output": {
"schema": {
"type": "object",
"required": [
"uri",
"cid"
],
"properties": {
"cid": {
"type": "string",
"format": "cid",
"description": "New CID of the updated post"
},
"uri": {
"type": "string",
"format": "at-uri",
"description": "AT-URI of the updated post"
}
}
},
"encoding": "application/json"
},
"description": "Update an existing post"
}