social.coves.community.post.update
{
"$type": "com.atproto.lexicon.schema",
"defs": {
"main": {
"description": "Update an existing post",
"errors": [
{
"description": "Post not found",
"name": "PostNotFound"
},
{
"description": "User is not authorized to edit this post",
"name": "NotAuthorized"
},
{
"description": "The post changed between being read and being written, so the edit was composed against content that no longer stands. Re-read the post and re-apply the edit; the server does not merge, because re-applying server-side would silently erase a change the editor never saw.",
"name": "ConcurrentModification"
},
{
"description": "The service holds no credentials it can write to the author's repository with. Distinct from an expired caller session: signing in again is the fix for a person and no fix at all for a non-interactive author whose stored grant was revoked.",
"name": "NoAuthorCredentials"
},
{
"description": "DEPRECATED, retained for backward compatibility: no edit window is enforced - a post is editable by its author for as long as it exists. This name ships on main; removing a declared error is a non-additive break, so it stays declared until a new-NSID change retires it.",
"name": "EditWindowExpired"
},
{
"description": "DEPRECATED, retained for backward compatibility: never emitted. Refusals this once covered are answered by name instead - an edit naming a different community is an InvalidRequest validation error, and a post whose collection is not editable is the same. This name ships on main; removing a declared error is a non-additive break, so it stays declared until a new-NSID change retires it.",
"name": "InvalidUpdate"
}
],
"input": {
"encoding": "application/json",
"schema": {
"properties": {
"content": {
"description": "Updated content - main text for text posts, description for media, etc.",
"maxGraphemes": 50000,
"maxLength": 500000,
"type": "string"
},
"editNote": {
"description": "DEPRECATED, retained for backward compatibility: an optional note explaining the edit. This field ships on main; removing it is a non-additive break, so it stays declared as an optional input until a new-NSID change retires it.",
"maxGraphemes": 300,
"maxLength": 3000,
"type": "string"
},
"embed": {
"description": "Updated embedded content (note: changing embed type may be restricted)",
"refs": [
"social.coves.embed.images",
"social.coves.embed.video",
"social.coves.embed.external",
"social.coves.embed.post"
],
"type": "union"
},
"facets": {
"description": "Updated annotations for rich text (mentions, links, formatting, block structure)",
"items": {
"ref": "social.coves.richtext.facet",
"type": "ref"
},
"maxLength": 200,
"type": "array"
},
"labels": {
"description": "Updated self-applied content labels",
"ref": "com.atproto.label.defs#selfLabels",
"type": "ref"
},
"langs": {
"description": "Updated languages (ISO 639-1)",
"items": {
"format": "language",
"type": "string"
},
"maxLength": 3,
"type": "array"
},
"tags": {
"description": "Updated topic tags",
"items": {
"maxGraphemes": 64,
"maxLength": 640,
"type": "string"
},
"maxLength": 8,
"type": "array"
},
"title": {
"description": "Updated title",
"maxGraphemes": 300,
"maxLength": 3000,
"type": "string"
},
"uri": {
"description": "AT-URI of the post to update",
"format": "at-uri",
"type": "string"
}
},
"required": [
"uri"
],
"type": "object"
}
},
"output": {
"encoding": "application/json",
"schema": {
"properties": {
"cid": {
"description": "New CID of the updated post",
"format": "cid",
"type": "string"
},
"uri": {
"description": "AT-URI of the updated post",
"format": "at-uri",
"type": "string"
}
},
"required": [
"uri",
"cid"
],
"type": "object"
}
},
"type": "procedure"
}
},
"id": "social.coves.community.post.update",
"lexicon": 1
}
Metadata
- DID
-
did:web:coves.social - CID
-
bafyreidkpnqlqdbus5l5bhlbabpkc4j5k3hc4ujzk552iniqv4ey2xr73e - Indexed At
- 2026-09-07 20:28 UTC
- AT-URI
-
at://did:web:coves.social/com.atproto.lexicon.schema/social.coves.community.post.update
Version History (2 versions)
Referenced Schemas (6)
Similar Lexicons
Lexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.
-
social.coves.community.comment.update procedure
Update an existing comment's content, facets, embed, languages, or labels. Threading references (reply.root and reply.parent) are immutable and cannot be changed.
-
app.chronosky.schedule.updatePost procedure
Update a scheduled post. Only PENDING posts can be updated.
-
social.coves.community.post.create procedure
Create a new post in a community
-
app.didpic.write.updatePost procedure
Edit an existing app.didpic.feed.post record via putRecord on the authenticated viewer's own PDS, mediated by the AppView using its server-held session (confidential OAuth client only). The image, aspectRatio, and creat…
-
app.bivri.feed.updateArtwork procedure
Edit an artwork the authenticated member owns. Only the fields present in the request change; the rest of the record is preserved as it stands at the member's PDS.