Docs
Bluesky

Comments

List, create, and delete replies on published Bluesky posts.

Manage replies on a published Bluesky destination.

List

const { comments } = await comments.listComments({
  id: postId,
  destinationId,
  limit: 25,
});
result = await comments.list_comments(
    id=post_id, {post_id, destination_id=destination_id, limit=25}
)
comments = result["comments"]
curl "https://api.onepostly.com/v1/posts/POST_ID/comments?destinationId=DEST_ID&limit=25" \
  -H "x-api-key: op_YOUR_KEY"
QueryRequiredNotes
destinationIdRecommendedTarget destination when the post has multiple
limitNo1–100 (default 25)
cursorNoNot used

Create

const { comment } = await comments.createComment({
  id: postId,
    createCommentBody: {
      destinationId,
      text: "Thanks! https://example.com @handle.bsky.social",
      // parentCommentId: "OPTIONAL_AT_URI",
    },
  });
result = await comments.create_comment(
    id=post_id,
    create_comment_body={post_id, "destinationId": destination_id, "text": "Thanks! https://example.com @handle.bsky.social", # parent_comment_id="OPTIONAL_AT_URI"},
)
comment = result["comment"]
curl -X POST https://api.onepostly.com/v1/posts/POST_ID/comments \
  -H "x-api-key: op_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "destinationId": "DEST_ID",
    "text": "Thanks! https://example.com @handle.bsky.social",
    "parentCommentId": "OPTIONAL_AT_URI"
  }'
BodyNotes
destinationIdRequired
textRequired, max 300 characters. Mentions and links are detected automatically
parentCommentIdOptional. ID of a reply to nest under, or omit to reply to the post

Delete

await comments.deleteComment({ id: postId, commentId });;
await comments.delete_comment(id=post_id, comment_id=comment_id)
curl -X DELETE "https://api.onepostly.com/v1/posts/POST_ID/comments/COMMENT_ID?destinationId=DEST_ID" \
  -H "x-api-key: op_YOUR_KEY"

COMMENT_ID is the ID of the reply. Only your own replies can be deleted.

See also