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,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.
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
| Capability | Threads | TikTok | YouTube | X / Twitter | ||||
|---|---|---|---|---|---|---|---|---|
| Create post | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Coming soon |
| Update post | No | Yes (text only) | Yes (text only) | No | No | Yes | No | Coming soon |
| Delete post | Yes | Yes | Yes | Yes | No | Yes | Yes | Coming soon |
| Schedule | Yes | Yes | Yes | Yes | No | No | No | Coming soon |
| First comment | Yes (best-effort) | No | No | No | No | No | No | No |
| Image | Yes | Yes | Yes | Yes | Yes (1-35) | Thumbnail | No | Coming soon |
| Video | Yes (as Reel) | Yes | Yes | Yes | Yes | Yes | No | No |
| Carousel | Yes (2-10) | Yes (2-10) | Yes (2-20) | Yes (2-20) | Photo carousel only | No | No | No |
| Max media per post | 10 | 10 | 20 | 20 | 35 (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.
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 sharedPostDraft fields:
| Field | Threads | TikTok | YouTube | X / Twitter | ||||
|---|---|---|---|---|---|---|---|---|
text | Caption (max 2200 chars) | Post message | Commentary | Post text (max 500 chars) | Video description | Video description | Tweet text (max 280) | Summary |
media_ids | Presigned URLs; determines image/video/carousel | First URL only; photo or video | Presigned URLs; image or video | Presigned URLs | Presigned URLs; video or photo carousel | Single video URL | Not supported (text only) | Single image URL |
first_comment | Posted as a comment after publish (best-effort, non-blocking) | Not supported | Not supported | Not supported | Not supported | Not supported | Not supported | Not supported |
scheduled_at | Deferred publish | Deferred publish | Deferred publish | Deferred publish | Not supported | Not supported | Not supported | Not 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).
| Platform | Required fields | Notable optional fields |
|---|---|---|
| None | alt_text, location_id, share_to_feed, cover_url | |
| None | link, picture (text posts only; photo posts ignore platform_data) | |
| None | No platform_data keys supported | |
| Threads | None | reply_control, link_attachment |
| TikTok | privacy_level | media_type, brand_content_toggle, disable_duet, disable_stitch, disable_comment, is_aigc, video_cover_timestamp_ms |
| YouTube | None | category_id, tags, made_for_kids, embeddable, notify_subscribers |
| X / Twitter | None | reply_settings (everyone, following, verified) |
| None (defaults to STANDARD) | topicType (STANDARD, EVENT, OFFER, ALERT), updateMask |
Required OAuth scopes
| Platform | Scopes |
|---|---|
instagram_business_basic, instagram_business_manage_comments, instagram_business_manage_messages, instagram_business_content_publish | |
pages_show_list, pages_read_engagement, pages_read_user_content, pages_manage_engagement, pages_manage_metadata, pages_messaging, pages_manage_posts, public_profile, business_management | |
r_liteprofile, r_organization_social, w_organization_social, r_organization_social_feed, w_organization_social_feed, rw_organization_admin | |
| Threads | threads_basic, threads_content_publish, threads_read_replies, threads_delete |
| TikTok | user.info.basic, user.info.profile, video.publish, video.upload |
| YouTube | https://www.googleapis.com/auth/youtube.force-ssl |
| X / Twitter | tweet.read, tweet.write, tweet.moderate.write, users.read, dm.read, dm.write, like.write, offline.access (BYOK; you configure your own app) |
https://www.googleapis.com/auth/business.manage (Coming soon) |
Per-platform deep dives
Images, videos, reels, carousels. Meta Graph API.
Text, photo, and video posts. Facebook Pages API.
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.
Business Profile local posts. Coming soon.