Schedule one or more posts for later publishing to Bluesky. Supports single posts, threads, and reply posts.
Input
application/jsondisableQuotePosts
boolean
Optional
Whether to disable quote posts
parentPostId
string
Optional
Chronosky-internal scheduled post ID of the parent post (for scheduling threads or replies). Not an AT Protocol URI or Record Key.
maxLength: 100 bytesposts
array
Required
Array of posts to schedule (1 element = single post, multiple = thread)
maxLength: 25 itemsminLength: 1 itemsscheduledAt
stringdatetime
Required
Scheduled publish time
maxLength: 100 bytesthreadgateRules
array
Optional
Thread gate rules to control who can reply
maxLength: 5 itemsOutput
application/jsonid
string
Required
Chronosky schedule ID (parent post ID for threads)
postCount
integer
Optional
Number of posts created (1 for single post, N for thread)
scheduledAt
stringdatetime
Required
An RFC 3339 formatted timestamp.
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": [
"posts",
"scheduledAt"
],
"properties": {
"posts": {
"type": "array",
"items": {
"type": "object",
"required": [
"text"
],
"properties": {
"text": {
"type": "string",
"maxLength": 3000,
"description": "Post text content",
"maxGraphemes": 300
},
"embed": {
"refs": [
"app.bsky.embed.images",
"app.bsky.embed.external",
"app.bsky.embed.record",
"app.bsky.embed.recordWithMedia"
],
"type": "union",
"description": "Embedded content (images, external links, records)"
},
"langs": {
"type": "array",
"items": {
"type": "string",
"format": "language"
},
"maxLength": 3,
"description": "Language codes (ISO 639-1)"
},
"facets": {
"type": "array",
"items": {
"ref": "app.bsky.richtext.facet",
"type": "ref"
},
"maxLength": 50,
"description": "Rich text facets (mentions, links, tags)"
},
"labels": {
"ref": "com.atproto.label.defs#selfLabels",
"type": "ref",
"description": "Self-applied content labels for content warnings (AT Protocol standard)."
},
"createdAt": {
"type": "string",
"format": "datetime",
"maxLength": 100,
"description": "Post creation timestamp (optional)"
}
}
},
"maxLength": 25,
"minLength": 1,
"description": "Array of posts to schedule (1 element = single post, multiple = thread)"
},
"scheduledAt": {
"type": "string",
"format": "datetime",
"maxLength": 100,
"description": "Scheduled publish time"
},
"parentPostId": {
"type": "string",
"maxLength": 100,
"description": "Chronosky-internal scheduled post ID of the parent post (for scheduling threads or replies). Not an AT Protocol URI or Record Key."
},
"threadgateRules": {
"type": "array",
"items": {
"refs": [
"app.bsky.feed.threadgate#mentionRule",
"app.bsky.feed.threadgate#followerRule",
"app.bsky.feed.threadgate#followingRule",
"app.bsky.feed.threadgate#listRule"
],
"type": "union"
},
"maxLength": 5,
"description": "Thread gate rules to control who can reply"
},
"disableQuotePosts": {
"type": "boolean",
"description": "Whether to disable quote posts"
}
}
},
"encoding": "application/json"
},
"output": {
"schema": {
"type": "object",
"required": [
"id",
"scheduledAt"
],
"properties": {
"id": {
"type": "string",
"maxLength": 100,
"description": "Chronosky schedule ID (parent post ID for threads)"
},
"postCount": {
"type": "integer",
"description": "Number of posts created (1 for single post, N for thread)"
},
"scheduledAt": {
"type": "string",
"format": "datetime",
"maxLength": 100
}
}
},
"encoding": "application/json"
},
"description": "Schedule one or more posts for later publishing to Bluesky. Supports single posts, threads, and reply posts."
}