Publish a new bud as a continuation of an existing parent. The caller must be signed in. The AppView writes an ink.branchline.bud record to the caller's PDS and mirrors it into the local read cache so the new bud is immediately navigable. Rejection reasons mirror ink.branchline.bud create validation — 500-word limit on `text`, 24h parent growing window, self-reply, etc. Root buds are not created through this procedure; they are written directly to an allowlisted author's PDS and picked up by the indexer.
Input
application/jsonformatting
array
Optional
Byte-offset inline formatting spans over `text`.
parentUri
stringat-uri
Required
AT-URI of the parent bud being continued.
text
string
Required
No description available.
maxLength: 20000 bytestitle
string
Required
No description available.
maxLength: 1200 bytesmaxGraphemes: 120 graphemesOutput
application/jsoncid
stringcid
Required
A content identifier (CID) referencing immutable data.
uri
stringat-uri
Required
An AT Protocol URI (e.g., at://did:plc:xyz/app.bsky.feed.post/abc).
Errors
Unauthorized
The caller is not signed in. ParentNotFound
The parent bud does not exist in the AppView. SelfReply
The caller is the parent bud's author. Buds cannot continue themselves. ParentGrowing
The parent bud is still inside its 24h growing window. WordLimitExceeded
The bud text exceeds the 500-word ceiling. 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": [
"parentUri",
"title",
"text"
],
"properties": {
"text": {
"type": "string",
"maxLength": 20000
},
"title": {
"type": "string",
"maxLength": 1200,
"maxGraphemes": 120
},
"parentUri": {
"type": "string",
"format": "at-uri",
"description": "AT-URI of the parent bud being continued."
},
"formatting": {
"type": "array",
"items": {
"ref": "ink.branchline.bud#formatSpan",
"type": "ref"
},
"description": "Byte-offset inline formatting spans over `text`."
}
}
},
"encoding": "application/json"
},
"errors": [
{
"name": "Unauthorized",
"description": "The caller is not signed in."
},
{
"name": "ParentNotFound",
"description": "The parent bud does not exist in the AppView."
},
{
"name": "SelfReply",
"description": "The caller is the parent bud's author. Buds cannot continue themselves."
},
{
"name": "ParentGrowing",
"description": "The parent bud is still inside its 24h growing window."
},
{
"name": "WordLimitExceeded",
"description": "The bud text exceeds the 500-word ceiling."
}
],
"output": {
"schema": {
"type": "object",
"required": [
"uri",
"cid"
],
"properties": {
"cid": {
"type": "string",
"format": "cid"
},
"uri": {
"type": "string",
"format": "at-uri"
}
}
},
"encoding": "application/json"
},
"description": "Publish a new bud as a continuation of an existing parent. The caller must be signed in. The AppView writes an ink.branchline.bud record to the caller's PDS and mirrors it into the local read cache so the new bud is immediately navigable. Rejection reasons mirror ink.branchline.bud create validation — 500-word limit on `text`, 24h parent growing window, self-reply, etc. Root buds are not created through this procedure; they are written directly to an allowlisted author's PDS and picked up by the indexer."
}