Create post
POST/social-media-posting/:locationId/posts
Create posts for all supported platforms. It is possible to create customized posts per channel by using the same platform account IDs in a request and hitting the create post API multiple times with different summaries and account IDs per platform.
The content and media limitations, as well as platform rate limiters corresponding to the respective platforms, are provided in the following reference link:
Link: Platform Limitations
Request
API Version
v3Location ID (also known as Sub-Account ID) for the business location.
- application/json
- Body
- Example (auto)
Bodyrequired
- All accounts share the same
summaryand the samemediaarray. summaryis trimmed to the strictest character limit among the selected platforms. Adding a Bluesky account (300 chars) therefore trims the caption to 300 for Facebook, Instagram and LinkedIn in that same request.mediais capped to each platform's own maximum at publish time (e.g. Bluesky publishes the first 4 items, Instagram the first 10).- To keep full-length, platform-specific captions, send one request per platform - one post per platform, each with only that platform's account IDs.
- Required for non-draft posts
- Must be a non-empty array
- All account IDs must be valid connected accounts for the location
- You can include custom values/variables in the content (e.g.,
{{contact.name}}) - Hashtags: Use
#hashtagformat. Instagram allows max 30 hashtags. - Mentions: Use platform-specific mention format (see
mentionsfield for structured mentions) - Instagram/Facebook Story: Caption NOT supported for direct publishing
- Facebook, LinkedIn, GMB: Content OR media is required (at least one)
- Facebook 63,206 · LinkedIn 3,000 · Instagram / TikTok 2,200 · Google 1,500 · Pinterest 800 · Threads 500 · Bluesky 300
- Example:
accountIdscovering Facebook + Instagram + Bluesky trims the caption to 300 characters on all three. - Instagram/Facebook Stories without push-notification publishing force the limit to 0, dropping the caption entirely.
- To keep the full caption on each platform, send one request per platform instead of one request mixing platforms.
draft- Post saved as draft, not yet ready for publishingscheduled- Post scheduled for future publishing (requiresscheduleDate)in_review- Post pending approval (requiresscheduleDateandpostApprovalDetails)published- Post has been publishedin_progress- Post is currently being processedpending- Post is awaiting platform processing for Instagram media container creationfailed- Post publishing failednotification_sent- Story notification sent (for manual story posting)deleted- Post has been deletedscheduledorin_reviewstatus requiresscheduleDateto be set- Submitting for review (
in_review) requirespostApprovalDetails.approver; approve/reject actions reuse the stored approver - Draft posts skip most validations (accountIds, media requirements)
-
TikTok: posted once the video becomes publicly viewable (~1-3 min), not instantly
-
TikTok: only public videos support a follow-up comment. Set
privacyLeveltoPUBLIC_TO_EVERYONE— friends-only and private videos are not supported - Like
summary, the follow-up comment is trimmed to the strictest limit among the post's platforms, not to each platform's own limit — a post that includes Bluesky (300) trims the comment to 300 everywhere. Send one request per platform to keep the full comment on each. post- Standard feed post (all platforms)story- Temporary 24-hour story (Instagram, Facebook)reel- Short-form video content (Instagram, Facebook, TikTok, YouTube)- Reels require exactly 1 video
- Stories: Caption not supported for Instagram/Facebook
- Facebook Groups do not support Reels
postAsPdf: Set totrueto post images as a PDF carousel documentpdfTitle: Title for the PDF document (max 100 characters)- Max 9 images/videos for regular posts
- Max 300 pages for PDF carousel
- Max PDF size: 100 MB
boardIds: Object mapping account OAuth IDs to Pinterest board IDstitle: Pin title (max 100 characters)link: Destination URL for the pin (max 2048 characters)- Max 1 image/video per pin
- Caption max 800 characters
type: Post type (post,story,reel)- Facebook Groups do NOT support Reels
- Reels require exactly 1 video
- Stories do not support captions
type: Post type (post,story,reel)collaborators: Map of account IDs to Instagram usernames for collaboration invites (max 5 per account)showOnFeed: Show reel on profile feed (for reels)- Media is REQUIRED for all Instagram posts
- Max 30 hashtags allowed in caption
- Stories do not support captions
- Collaborators: Posts/Reels only (NOT Stories)
- Reels require exactly 1 video
title: Video title (max 100 characters)type: Video type (videofor regular videos,shortfor YouTube Shorts)privacyLevel: Video visibility (private,public,unlisted)- Max 1 video per post
- Caption (description) max 5,000 characters
- Video is REQUIRED for YouTube posts
typefield is requiredtitle: Post title (max 1,000 characters)postAsUser: Map of account IDs to user objects (id, name, avatar)notifyAllGroupMembers: Send notification to all group members- Max 4 media items
- Caption max 100,000 characters
Account IDs for the post. Each account ID identifies a connected social media account.
Get IDs from: Get Accounts API — use the id field from each account.
One request = one post, shared across every account in this list.
Validations:
Post content/caption text. Character limits vary by platform.
Custom Values & Hashtags:
Validations:
Trimming across multiple platforms:
One post carries ONE caption for every account in accountIds, so the caption is silently trimmed to the strictest limit among the selected platforms — not to each platform's own limit.
Reference: Platform Limitations Guide
Post Media Data. Per-platform media limits are listed in the reference link in the API description.
Across multiple platforms: the same media array is sent to every account in accountIds and capped to each platform's own maximum at publish time — the array is NOT reduced to the strictest limit the way summary is. An 8-item array publishes 8 items to Facebook and the first 4 to Bluesky.
Send one request per platform if a platform needs a different set of media.
Post status indicating the current state of the post.
Available Status Values:
Validations:
draftscheduledin_reviewpublishedin_progresspendingfailednotification_sentdeletedSchedule Date. Required when status is scheduled or in_review.
Selected Best Time slot for scheduling
User ID of the creator who is creating/managing the post. Must be a valid 24-character hex ID.
Get User IDs from: Get User API — use the id field from the user object.
Validation: Must be a valid 24-character hex ID.
Follow-up comment to be posted immediately after the main post is published.
Supported Platforms: Facebook, Instagram, LinkedIn, Community, Threads, Bluesky, YouTube, TikTok
NOT Supported: GBP (Google Business Profile), Pinterest
Use Case: Great for adding hashtags, additional context, or engagement prompts without cluttering the main post.
Reference: Platform Limitations Guide
Og Tags Meta Data
Type of post to create. Determines the format and platform requirements.
Available Types:
Customize Per Platform:
You can specify different content/types per platform using facebookPostDetails.type, instagramPostDetails.type, etc.
Validations:
poststoryreelPost Approval Details
Flag indicating if the schedule datetime was manually updated. Used for tracking rescheduled posts.
Array of Tag IDs to associate with the post for organization and filtering.
Get Tag IDs from: Get Tags API — use the _id field from each tag.
Validation: All IDs must be valid 24-character hex IDs.
Category ID to organize the post. Categories help group related posts.
Get Category IDs from: Get Categories API — use the _id field.
Validation: Must be a valid 24-character hex ID.
Apply watermark to media in this post.
Note: Watermarks are applied to images only. Videos are not watermarked.
Tiktok Post Details
GMB Post Details
User ID of the user creating/managing the post. Required for OAuth channel posts (non-draft).
LinkedIn-specific post configuration.
Key Fields:
Limits:
Reference: Platform Limitations Guide
Pinterest-specific post configuration. Required when posting to Pinterest accounts.
Required Fields:
Optional Fields:
Get Board IDs: Use the Pinterest boards API or retrieve from connected account details.
Limits:
Reference: Platform Limitations Guide
Facebook-specific post configuration.
Key Fields:
Restrictions:
Reference: Platform Limitations Guide
Instagram-specific post configuration.
Key Fields:
Collaborators Structure:
{ "accountId": ["username1", "username2"] }
Where accountId is from Get Accounts API and usernames are Instagram handles without @.
Restrictions:
Reference: Platform Limitations Guide
YouTube-specific post configuration.
Key Fields:
Limits:
Requirements:
Community-specific post configuration for platform Communities.
Required Fields:
Optional Fields:
Limits:
{
"accountIds": [
"aF3KhyL8JIuBwzK3m7Ly_iVrVJ2uoXNF0wzcBzgl5_12554616564525983496"
],
"summary": "Hello World! Check out our latest updates. #social #marketing",
"media": [
{
"url": "https://example.com/image.jpg",
"type": "image/jpeg",
"caption": "Sample caption"
}
],
"status": "draft",
"scheduleDate": "2024-01-15T10:00:00Z",
"selectedBestTime": "2024-01-15T10:00:00Z",
"createdBy": "65f151c99bc2bf3aaf970d72",
"followUpComment": "What do you think? Let us know in the comments!",
"ogTagsDetails": {
"metaImage": "https://example.com/image.jpg",
"metaLink": "https://www.yahoo.com/",
"ogTitle": "Page Title",
"ogDescription": "Page Description"
},
"type": "post",
"postApprovalDetails": {
"approver": "iVrVJ2uoXNF0wzcBzgl5",
"approvalStatus": "pending"
},
"scheduleTimeUpdated": true,
"tags": [
"65f151c99bc2bf3aaf970d72",
"65f151c99bc2bf3aaf970d73"
],
"categoryId": "65f151c99bc2bf3aaf970d72",
"applyWatermark": true,
"tiktokPostDetails": {
"privacyLevel": "PUBLIC_TO_EVERYONE",
"enableComment": true,
"enableDuet": false
},
"gmbPostDetails": {
"gmbEventType": "STANDARD",
"actionType": "BOOK",
"url": "https://example.com"
},
"userId": "sdfdsfdsfEWEsdfsdsW32dd",
"linkedinPostDetails": {
"visibility": "PUBLIC"
},
"pinterestPostDetails": {
"boardId": "123456789",
"title": "Pin Title"
},
"facebookPostDetails": {
"type": "feed"
},
"instagramPostDetails": {
"type": "feed",
"share_to_feed": true
},
"youtubePostDetails": {
"title": "Video Title",
"privacyStatus": "public"
},
"communityPostDetails": {
"type": "text"
}
}
Successful response
- application/json
- Schema
- Example (auto)
Schema
Success or Failure
Status Code
Message
Requested Results
{
"success": true,
"statusCode": 201,
"message": "Created Post",
"results": {
"post": {
"_id": "61bb16833b3f2791f9715be2",
"locationId": "ve9EPM428h8vShlRW1KT",
"status": "published"
}
}
}