Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.social-api.ai/llms.txt

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

The Posts API is a content publishing API: one endpoint to publish and schedule photos, videos, carousels, stories, and reels across Instagram, Facebook, TikTok, LinkedIn, YouTube, and Threads, with per-platform delivery status. Publishing uses a single endpoint, POST /v1/posts, with per-platform behavior controlled by the platform_data field. This page compares capabilities across all platforms at a glance. For full details on a specific platform, see the deep-dive pages linked below. Use POST /v1/posts/validate to check constraints before publishing, and GET /v1/posts/validate to fetch platform-specific constraints (e.g. TikTok’s per-creator privacy levels and duration limits).

Capability matrix

CapabilityInstagramFacebookLinkedInThreadsTikTokYouTubeX / TwitterGoogle
Create postYesYesYesYesYesYesYesComing soon
Update postNoYes (text only)Yes (text only)NoNoYesNoComing soon
Delete postYesYesYesYesNoYesYesComing soon
ScheduleYesYesYesYesNoNoNoComing soon
First commentYes (best-effort)NoNoNoNoNoNoNo
ImageYesYesYesYesYes (1-35)ThumbnailNoComing soon
VideoYes (as Reel)YesYesYesYesYesNoNo
CarouselYes (2-10)Yes (2-10)Yes (2-20)Yes (2-20)Photo carousel onlyNoNoNo
Max media per post1010202035 (photo) / 1 (video)1 (video + thumb)0 (text only)1

Deleting posts

DELETE /v1/posts/{pid} is best-effort and never lets the dashboard drift from the platform. For a draft, scheduled, or failed post (nothing was ever published), the post is removed locally. For a published post, SocialAPI calls each platform’s delete API in turn:
  • If the platform deletes the copy, that target is cleared.
  • If the platform does not support deletion (for example TikTok) or the delete call fails, that copy stays live and the post is kept (shrunk to the targets that are still live), not removed. A post is fully removed only when no live copy remains.
The response is a per-platform result, not a bare acknowledgement:
{
  "success": true,
  "deleted": false,
  "results": [
    { "platform": "instagram", "account_id": "acc_...", "outcome": "deleted" },
    { "platform": "tiktok", "account_id": "acc_...", "outcome": "not_supported", "message": "Operation not supported for this platform" }
  ]
}
deleted is true only when the post was fully removed. Each entry in results has an outcome of deleted, not_supported, or failed. A failed target can be retried; a not_supported target must be removed on the platform itself. See DELETE /v1/posts/{pid} in the API reference for the full schema.

Core field handling

How each platform interprets the shared PostDraft fields:
FieldInstagramFacebookLinkedInThreadsTikTokYouTubeX / TwitterGoogle
textCaption (max 2200 chars)Post messageCommentaryPost text (max 500 chars)Video descriptionVideo descriptionTweet text (max 280)Summary
media_idsPresigned URLs; determines image/video/carouselFirst URL only; photo or videoPresigned URLs; image or videoPresigned URLsPresigned URLs; video or photo carouselSingle video URLNot supported (text only)Single image URL
first_commentPosted as a comment after publish (best-effort, non-blocking)Not supportedNot supportedNot supportedNot supportedNot supportedNot supportedNot supported
scheduled_atDeferred publishDeferred publishDeferred publishDeferred publishNot supportedNot supportedNot supportedNot supported

Platform-specific platform_data summary

Each platform accepts optional fields inside platform_data.<platform>. For the full reference, see the per-platform page. Pass these inside each target’s platform_data object (per-target overrides supported).
PlatformRequired fieldsNotable optional fields
InstagramNonealt_text, location_id, share_to_feed, cover_url
FacebookNonelink, picture (text posts only; photo posts ignore platform_data)
LinkedInNoneNo platform_data keys supported
ThreadsNonereply_control, link_attachment
TikTokprivacy_levelmedia_type, brand_content_toggle, disable_duet, disable_stitch, disable_comment, is_aigc, video_cover_timestamp_ms
YouTubeNonecategory_id, tags, made_for_kids, embeddable, notify_subscribers
X / TwitterNonereply_settings (everyone, following, verified)
GoogleNone (defaults to STANDARD)topicType (STANDARD, EVENT, OFFER, ALERT), updateMask

Required OAuth scopes

PlatformScopes
Instagraminstagram_business_basic, instagram_business_manage_comments, instagram_business_manage_messages, instagram_business_content_publish
Facebookpages_show_list, pages_read_engagement, pages_read_user_content, pages_manage_engagement, pages_manage_metadata, pages_messaging, pages_manage_posts, public_profile, business_management
LinkedInr_liteprofile, r_organization_social, w_organization_social, r_organization_social_feed, w_organization_social_feed, rw_organization_admin
Threadsthreads_basic, threads_content_publish, threads_read_replies, threads_delete
TikTokuser.info.basic, user.info.profile, video.publish, video.upload
YouTubehttps://www.googleapis.com/auth/youtube.force-ssl
X / Twittertweet.read, tweet.write, tweet.moderate.write, users.read, dm.read, dm.write, like.write, offline.access (BYOK; you configure your own app)
Googlehttps://www.googleapis.com/auth/business.manage (Coming soon)

Per-platform deep dives

Instagram

Images, videos, reels, carousels. Meta Graph API.

Facebook

Text, photo, and video posts. Facebook Pages API.

LinkedIn

Organization page posts. LinkedIn Marketing API.

Threads

Text, image, video posts. Threads API.

TikTok

Video and photo carousel posts. TikTok Content Posting API.

YouTube

Video uploads. YouTube Data API v3.

X / Twitter

Tweets with text or images. X API v2.

Google

Business Profile local posts. Coming soon.