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.
Overview
This guide shows you how to create and manage scheduled social media posts across supported platforms using the Dash API. You can publish posts immediately, schedule them for a future time, or save them as drafts. This allows you to automate content publishing directly from your own tools or workflows.Supported Platforms
The Scheduler API supports the following platforms:- TikTok
- YouTube
- X
- Threads
- Snapchat
- Bluesky
Use Case
You can use the scheduling API to automate and manage social publishing directly from your own tools.Content Calendar Automation
Schedule posts across multiple platforms from your internal CMS or content calendar. This allows marketing teams to plan campaigns without using the Dash UI.
Product Launch Scheduling
Queue posts to publish at exact times during launches, events, or announcements. Posts can be scheduled days or weeks in advance.
Draft Review Workflows
Save posts as drafts so teams can review content before publishing.
Bulk Post Scheduling
Programmatically schedule large batches of posts across platforms, useful for agencies or large content pipelines.
Before You Start
You’ll need:- API Key: Get this from the Dash Social Developer section
- Brand ID: Available in your developer settings or next to your brand name in the platform
API Quickstart
Make your first API call in less than a minute and confirm your API key is working.
Scheduling Workflow
Scheduling a post with the Dash API follows three steps:- Upload media to the Dash Library
- Create a scheduled post for the platform
- Manage the post using the returned
idfrom the scheduler response
Key Concepts
Scheduler id
- Returned when a scheduled post is created
- Used to retrieve, update, or delete the post
status
Defines how the post should behave.
| Status | Behavior |
|---|---|
AUTOPUBLISHING | Post is set to publish immediately |
SCHEDULED | Post publishes at the specified timestamp |
DRAFT | Post is saved as a draft |
auto_publish
Controls whether the post will publish automatically or require manual publishing.
| Value | Behavior |
|---|---|
true | The post will automatically publish at the scheduled time. |
false | The post will not publish automatically. Users associated with the brand will receive a push notification in the Dash mobile app reminding them to publish the post. |
auto_publish is disabled because they only work with automatic publishing:
first_commentis not supported for Instagram and Facebook whenauto_publishis disabled.
media_id
- Returned when media is uploaded to Dash
- Used when attaching image or video media to a post
- When scheduling a post, include this value inside the
media_idsarray - Required for some platforms, post types, and auto-publish posts
- Not required for supported caption-only posts or some draft posts without media
Media Requirements by Platform
Media requirements vary by platform and post type.| Platform | Caption-only Post | Draft Without Media | Media Requirements |
|---|---|---|---|
| ❌ | ✅ | POST, REEL, and STORY drafts can be created without media. Auto-publish posts require media_ids. | |
| TikTok | ❌ | ✅ | Drafts can be created without media. Auto-publish posts require video media. |
| ✅ | ✅ | Standard POST can be caption-only. REEL requires video media. | |
| X | ✅ | ✅ | Caption-only posts are supported. |
| Threads | ✅ | ✅ | Caption-only posts are supported. |
| ✅ | ✅ | Caption-only posts are supported. | |
| YouTube | ❌ | ❌ | Requires video media. |
| Snapchat | ❌ | ❌ | STORY requires image or video. SPOTLIGHT requires video media. |
| ✅ | ✅ | Drafts can be created without media. Auto-publish posts require media. title and a Pinterest board are required. | |
| Bluesky | ✅ | ✅ | Caption-only posts are supported. Image posts support up to 4 images. Mixed media and video are not supported. |
Media Support by Platform
Some platforms support multiple media items or mixed media types, while others require a single media asset.| Platform | Media Types | Media Count | Mixed Media | Notes |
|---|---|---|---|---|
| Instagram Post | Image, Video | Up to 10 | ✅ | Supports mixed media (images and videos in the same post). |
| Instagram Reel | Video | 1 | ❌ | Reels only support a single video. |
| Instagram Story | Image, Video | 1 auto-publish, multiple for drafts | ❌ | Multiple media can only be saved as drafts. Auto-publish posts support a single media item. |
| TikTok | Video | 1 | ❌ | TikTok posts must contain a single video. |
| Facebook Post | Image, Video | Up to 10 images or 1 video | ❌ | Images and videos cannot be mixed. |
| Facebook Reel | Video | 1 | ❌ | Reels must contain a single video. |
| Image, Video | 20 images or 1 video | ❌ | Image posts support 20 images. Video posts support only one video. | |
| YouTube | Video | 1 | ❌ | YouTube posts must contain a single video. |
| Threads | Image | 20 | ❌ | Threads currently supports multiple images only. |
| X | Image, Video | Up to 4 images or 1 video | ❌ | Images and videos cannot be mixed. |
| Snapchat Story | Image, Video | 1 | ❌ | Stories support either image or video. |
| Snapchat Spotlight | Video | 1 | ❌ | Spotlight posts must contain a single video. |
| Image, Video | 1 | ❌ | Pins support a single image or a single video. Mixed media is not supported. | |
| Bluesky | Image | Up to 4 | ❌ | Bluesky supports image posts only. Mixed media and video are not supported. |
Publishing Modes
Most platforms support three publishing behaviors.| Mode | status | auto_publish | timestamp |
|---|---|---|---|
| Publish Immediately | AUTOPUBLISHING | true | Not required |
| Schedule for Later | SCHEDULED | true | Required |
| Save as Draft | DRAFT | true or false | Optional |
- Some platforms do not support
auto_publish: false. - LinkedIn, Snapchat and YouTube require
auto_publish: true. - Threads and Bluesky always publish with
auto_publish: true, even iffalseis provided (the value is ignored). statuscontrols the state of the post (draft, scheduled, or publishing immediately).auto_publishcontrols the publishing method (auto-publish vs. send notification / publish via mobile).- A post with
status: "DRAFT"can be created with eitherauto_publish: trueorfalse, depending on platform support.
Platform Comparison
| Platform | Endpoint | Caption Field | Media Types | Special Fields |
|---|---|---|---|---|
/instagram/scheduled_posts | caption | Image, Video | post_type, first_comment | |
| X | /twitter/scheduled_posts | tweet_status | Image, Video | — |
/facebook/scheduled_posts | message | Image, Video | post_type,first_comment, link | |
| TikTok | /tiktok/scheduled_posts | text | Video only | disable_comment, disable_duet, disable_stitch |
| Threads | /threads/scheduled_posts | text | Image, Video | — |
/linkedin/scheduled_posts | text | Image, Video | — | |
| YouTube | /youtube/scheduled_posts | title, description | Video only | declared_made_for_kids |
| Snapchat | /snapchat/scheduled_posts | description | Image, Video | post_type, save_to_profile, locale |
/pinterest/scheduled_posts | note | Image, Video | meta.title, meta.pinterestBoard, link | |
| Bluesky | /bluesky/scheduled_posts* | text | Image only | — |
Implementation
Step 1: Upload Media (optional)
If your post includes images or videos, upload the media to the Dash Library first. This returns amedia_id that you can include when creating the scheduled post.
If your post does not include media (for example, a text-only or link-based post), you can skip this step. Jump to Step 2
Upload Media To Dash Social Library
Upload media directly from your CMS to your Dash Social Library
Response
media_id. You’ll include this value in media_ids when creating the scheduled post.
Step 2: Create a Scheduled Post
When creating a scheduled post, includemedia_ids only when required by the platform or post type.
Some platforms support caption-only or link-based posts without media, while others require media for all posts or for auto-publish posts.
Endpoint
Request
Instagram Fields
| Parameter | Description |
|---|---|
post_type | Required. Available value:FEED, STORY, or REEL |
caption | Post caption |
first_comment | Optional first comment (not supported when auto_publish: false) |
post_typedetermines whether the post is aFEED,STORY, orREEL.first_commentis not supported whenauto_publishisfalse.- Auto-publish posts must include media.
X (Twitter)
Endpoint
Request
X Fields
| Parameter | Description |
|---|---|
tweet_status | Tweet text |
- Standard X posts support up to 280 characters.
- Accounts with X Premium can publish posts up to 25,000 characters.
Endpoint
Request
Facebook Fields
| Parameter | Description |
|---|---|
post_type | Required. Available value:POST or REEL |
message | Post caption |
first_comment | Optional first comment (not supported when auto_publish: false) |
link | Optional link preview |
- Standard
POSTcan be created without media. REELposts require video media.first_commentis not supported whenauto_publishisfalse.
TikTok
TikTok only supports video uploads.Endpoint
Request
TikTok Fields
| Parameter | Description |
|---|---|
text | Caption for the TikTok post. |
disable_comment | Optional. Set to true to disable comments on the post. |
disable_duet | Optional. Set to true to prevent users from creating duets with the video. |
disable_stitch | Optional. Set to true to prevent users from stitching the video. |
- TikTok posts require video media for auto-publish.
- Only one video can be attached to a TikTok post.
Threads
Endpoint
Request
auto_publishis always treated astrue.- Threads supports caption-only posts.
- Multiple images can be attached to a post.
Endpoint
Request
auto_publish: falseis not supported.- LinkedIn supports caption-only posts.
- Image posts can include multiple images, but video posts support one video only.
YouTube
YouTube supports video uploads only.Endpoint
Request
YouTube Fields
| Parameter | Description |
|---|---|
title | Required. Title of the YouTube video. |
description | Optional description for the video. |
declared_made_for_kids | Required. Indicates whether the content is made for kids (true or false) for COPPA compliance. |
auto_publish: falseis not supported.media_idsis required for YouTube posts.- Only one video can be attached to a post.
- The video must be uploaded to the Dash Library before scheduling.
Snapchat
Snapchat supports two post types:- Story posts can use image or video media
- Spotlight posts require a video
Endpoint
post_type: "STORY" to create a Snapchat Story post. Note that post caption (description) is not available for Snapchat Story post.
post_type: "SPOTLIGHT" to create a Snapchat Spotlight post. Spotlight posts must use video media.
Snapchat Fields
| Parameter | Description |
|---|---|
post_type | Required. Available values: STORY or SPOTLIGHT. |
description | Optional caption text for SPOTLIGHT posts. Not supported for STORY posts. |
save_to_profile | Boolean. Required for SPOTLIGHT posts. Saves the post to the public Snapchat profile. |
locale | Required for SPOTLIGHT posts. Locale for the post, for example en_US. |
auto_publish: falseis not supported.media_idsis required for Snapchat posts.STORYposts support image or video and do not supportdescription.SPOTLIGHTposts support video only.save_to_profileandlocaleare required forSPOTLIGHTposts.
- a valid board ID
- a title
- media for auto-publish posts
Step 1: Get a Pinterest Board
Before creating a Pinterest scheduled post, retrieve the available boards for the brand.Step 2: Create the Scheduled Post
Pinterest Fields
| Parameter | Description |
|---|---|
meta.pinterestBoard | Required. The Pinterest board where the Pin will be published. Include the entire board object returned from the boards endpoint. |
meta.title | Required. Title of the Pin. |
note | Optional description for the Pin. |
link | Optional destination URL for the Pin. |
- A valid Pinterest board is required to create a scheduled post.
titleis required for all Pinterest posts.- Draft posts can be created without media.
- Auto-publish posts require media.
- Pinterest supports image or video Pins.
- Pins support 1 media item only.
- When possible, link directly to the destination page. Pinterest may reject certain redirects or URL shorteners.
Bluesky
Bluesky supports caption-only posts and image posts.- Caption-only posts are supported
- Image posts can include up to 4 images
- Video is not supported
- Mixed media is not supported
Endpoint
auto_publishis always treated astrue.- Bluesky supports caption-only posts.
- Image posts support up to 4 images.
- Bluesky supports image media only.
- Mixed media and video are not supported.
Scheduler Response Format
Creating a scheduled post returns the scheduled post object. All platforms return the same core response structure, with some additional platform-specific fields depending on the channel.Common Response Fields
| Field | Description |
|---|---|
id | Unique ID of the scheduled post. Use this value to retrieve, update, or delete the post. |
brand_id | ID of the brand associated with the scheduled post. |
status | Current post status, such as DRAFT, SCHEDULED, or AUTOPUBLISHING. |
auto_publish | Indicates whether the post will publish automatically. |
timestamp | Scheduled publish time, if set. |
media_ids | Array of media IDs attached to the post. |
media | Expanded media objects attached to the post. |
created_at | Time the scheduled post was created. |
updated_at | Time the scheduled post was last updated. |
approval_policy | Approval policy applied to the post. |
approval_status | Current approval state of the post. |
approval_requests | Approval requests associated with the post. |
Platform-Specific Fields
Some platforms return additional fields in the response. For example:- Instagram may return fields such as
caption,first_comment, andpost_type - X may return
tweet_status - Facebook may return
message,link, andpost_type - Pinterest may return
note,link, andmeta - Snapchat may return
description,post_type,save_to_profile, andlocale
Example Response
Manage Scheduled Posts
Once a post is scheduled, you can retrieve, update, or delete it using theid returned from the response.
Get All Scheduled Posts
Retrieve all scheduled posts for a brand within a specified time range.Query Parameters
| Parameter | Description |
|---|---|
brand_ids | Required. The ID of the brand whose scheduled posts you want to retrieve. |
start | Recommended. Start of the date range (ISO 8601 format with timezone offset, for example 2026-03-22T00:00:00). Omitting this may result in slow response times. |
end | Recommended. End of the date range (ISO 8601 format with timezone offset, for example 2026-03-28T23:59:59). Omitting this may result in slow response times. |
sort | Sort order for results. Available values: TIMESTAMP, UPDATED_AT. Prefix with - for descending order (for example, -TIMESTAMP). |
media_v2 | Set to true to returns media data in the current format. |
- Replace
{platform}in the URL with the platform path for the channel you want to query. See the Platform Comparison table for the full list of endpoint paths. startandendare optional but strongly recommended. Without them, the API will query all posts for the brand, which can result in slow response times.- Timezone offsets are supported in the
startandendparameters.
Query Parameters
| Parameter | Description |
|---|---|
brand_ids | Required. The ID of the brand whose scheduled posts you want to retrieve. |
start | Required. Start of the date range (ISO 8601 format with timezone offset, for example 2026-03-22T00:00:00-04:00). |
end | Required. End of the date range (ISO 8601 format with timezone offset, for example 2026-03-28T23:59:59-04:00). |
sort | Sort order for results. Available values: TIMESTAMP, UPDATED_AT. Prefix with - for descending order (for example, -TIMESTAMP). |
media_v2 | Required. Must be set to true. Returns media data in the current format. |
- Replace
{platform}in the URL with the platform name (for example,instagram,facebook,tiktok). startandenddefine the window of scheduled post timestamps to return.- Timezone offsets are supported in the
startandendparameters.
Get a Scheduled Post
Retrieve the full details of a scheduled post.Update a Scheduled Post
UsePATCH to update specific fields without replacing the entire post.
Delete a Scheduled Post
Remove a scheduled post so it will not be published.Common Errors
| Error | Cause |
|---|---|
Invalid media_id | Media was not uploaded or belongs to another brand |
Missing timestamp | Required when status = SCHEDULED |
| Unsupported media type | For example, using an image for TikTok |
| Invalid platform field | Using the wrong caption parameter |
Final Outcome
After completing this guide:- Your media is uploaded to Dash
- Your post is scheduled for publishing
- You receive an
idin the scheduler response that you can use to manage the post later
Next Steps
You can extend this workflow by:- Scheduling posts across multiple platforms
- Automating content calendars
- Retrieving scheduled posts for reporting
- Building internal publishing tools using the Scheduler API