Platform options examples
Copy safe platform-specific options for the publishing destinations that most often need extra configuration.
platform_posts[], each platform_options object is already scoped to one destination. Put fields such as privacy_status or mediaType directly inside it.Choose one request shape
The recommended platform_posts[] shape uses a flat platform_options object. The Legacy account_ids shape uses a top-level object nested by platform name. Do not combine those formats.
| Shape | Options path | Use |
|---|---|---|
| Recommended | platform_posts[].platform_options.privacy_status | Use for new integrations and per-account overrides. |
| Legacy account_ids | platform_options.youtube.privacy_status | Use only with the older top-level account_ids request shape. |
| Invalid mixed shape | platform_posts[].platform_options.youtube.privacy_status | Do not nest the platform name inside platform_posts[]. |
Validate before publishing
Send the exact payload to POST/v1/posts/validate before calling POST/v1/posts. Validation catches request-shape, account, media, and platform constraints without publishing the post.
YouTube
YouTube requires a title and explicit made_for_kids selection. API requests default to private when privacy_status is omitted, so set it to public when the upload should be public. Google may still force uploads from an unverified API project to private.
For Shorts, supply an eligible square or vertical video no longer than three minutes. shorts: true adds a Shorts hint, but it does not resize, crop, or guarantee that YouTube classifies the upload as a Short. YouTube native scheduling requires privacy_status: private with publish_at.
Set mediaType to feed, reels, or story. A Story accepts exactly one image or one video; use a feed carousel for multiple assets.
For a complete Story workflow, see Publish Instagram Stories.
TikTok
Make privacy and interaction controls explicit. If a post promotes a third-party brand, set brand_content_toggle to true; use brand_organic_toggle for your own brand. The duet and stitch fields apply to videos; omit them for photo carousels.
A Reel requires exactly one video and cannot include a link. For a link-only feed post, omit media_ids and media_urls; Facebook rejects requests that combine link and media.
Every Pin requires a numeric board_id and exactly one image or video. title and link are optional.
Common mistakes
| Symptom | Likely cause | Resolution |
|---|---|---|
| Options appear to be ignored | A platform name is nested inside platform_posts[].platform_options. | Remove the platform-name wrapper and keep the destination options flat. |
| YouTube upload is private | privacy_status was omitted, so the API defaulted to private. | Send privacy_status: public and verify that the Google API project is approved for public uploads. |
| Instagram Story publishes as another surface | mediaType is missing or is not story. | Send mediaType: story with exactly one media asset. |
| Facebook request fails with link and media | Facebook does not accept both in the same destination post. | Publish either a link-only feed post or a media post. |
| Pinterest validation fails | board_id is missing or the Pin has the wrong number of assets. | Send a numeric board_id and exactly one image or video. |
References
Use the Create Post API Reference for the complete endpoint contract, and check the platform pages for media limits and supported capabilities.