Skip to main content
POST
/
bluesky
/
scheduled_posts
Create a Bluesky post
curl --request POST \
  --url https://scheduler.dashsocial.com/bluesky/scheduled_posts \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "approval_requests": [
    {
      "requested_by_user_id": 123,
      "review_user_id": 123
    }
  ],
  "auto_publish": true,
  "board_ids": [
    1
  ],
  "brand_id": 1,
  "campaign_ids": [
    1
  ],
  "content_tag_ids": [
    1
  ],
  "duplicate_to_brand_ids": [
    1
  ],
  "media_ids": [
    1
  ],
  "post_group_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "rss_feed_id": 123,
  "rss_guid": "<string>",
  "rss_publish_date": "2023-11-07T05:31:56Z",
  "sort_index": 123,
  "text": "<string>",
  "timestamp": "2023-11-07T05:31:56Z"
}
'
{
  "code": 123,
  "errors": {},
  "message": "<string>",
  "status": "<string>"
}

Documentation Index

Fetch the complete documentation index at: https://developer.dashsocial.com/llms.txt

Use this file to discover all available pages before exploring further.

This endpoint has platform-specific fields and publishing rules. See the full scheduling guide for a complete walkthrough including media upload, publishing modes, and examples.

Bluesky-specific fields

ParameterDescription
textPost caption text

Publishing modes

Modestatusauto_publishtimestamp
Publish immediatelyAUTOPUBLISHINGtrueNot required
Schedule for laterSCHEDULEDtrueRequired
Save as draftDRAFTtrue or falseOptional

Example request

{
  "auto_publish": true,
  "brand_id": 144,
  "status": "SCHEDULED",
  "media_ids": [650431494, 650482495, 650419615, 650418969],
  "timestamp": "2026-03-12T22:30:00.000Z",
  "text": "A few recent favorites from our spring inspiration board."
}

Notes

  • auto_publish is always treated as true, even if false is provided.
  • Caption-only posts (no media) are supported.
  • Image posts support up to 4 images.
  • Bluesky supports image media only. Video and mixed media are not supported.

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json
approval_policy
enum<string>

The approval policy of the approval request

Available options:
APPROVAL_REQUIRED,
APPROVAL_NOT_REQUIRED
approval_requests
object[]

The list of approval requests associated with the post.

auto_publish
boolean

Whether the post should be auto published.

board_ids
integer[]

The list of the board ids associated with the post.

Required range: x >= 0
brand_id
integer

The id of the brand to which the post belongs.

Required range: x >= 0
campaign_ids
integer[]

The list of the campaign ids associated with the post.

Required range: x >= 0
content_tag_ids
integer[]

The list of the content tag ids associated with the post.

Required range: x >= 0
creation_source
enum<string>

To identify the user or the application that created the post.

Available options:
RSS_FEED
duplicate_to_brand_ids
integer[]
write-only

The list of duplicate to brand ids.

Maximum array length: 55
Required range: x >= 0
media_ids
integer[]

The list of the media ids attached to the post.

Required range: x >= 0
post_group_id
string<uuid>

The id of the post group associated with the post.

rss_feed_id
integer | null

Foreign key reference to the RSS feed table.

rss_guid
string | null

The unique identifier coming from RSS Feed.

rss_publish_date
string<date-time> | null

The timestamp of when an RSS feed item was published

sort_index
number

The sorted index for unscheduled posts.

status
enum<string>

The current status of the post.

Available options:
AUTOPUBLISHING,
DRAFT,
EXPIRED,
FAILED,
IMPORTED,
MISSING_APPROVALS,
PARTIALLY_FAILED,
POSTED,
SCHEDULED,
SKIPPED,
USERS_NOTIFIED
text
string

Text content of the Bluesky post

timestamp
string<date-time> | null

The scheduled date & time for publishing the post.

Response

Unprocessable Entity

code
integer

Error code

errors
object

Errors

message
string

Error message

status
string

Error name