Skip to content

Content types

The content_type field selects both the rendering pipeline and the fields that matter. Set it once on create. It cannot be changed later.

content_typeDescriptionKey fields
text_onlyPlain text post with no media.body_text
photoSingle image with optional caption.body_text, media_assets[image]
slideshowMulti-slide image carousel (TikTok/Instagram slides).slide_copy[], media_assets[image][]
carouselInstagram sidecar carousel (up to 10 images).body_text, media_assets[image][]
videoStandard video post.body_text, media_assets[video]
talking_headRendered talking-head video with an overlay caption.hook_text, body_text, media_assets[video]
video_hookShort vertical video with a large hook overlay in the first seconds.hook_text, body_text, media_assets[video]
reelInstagram Reels or TikTok short-form vertical video.body_text, media_assets[video]
story24-hour ephemeral vertical post.`media_assets[image
  • video vs reel: use reel for 9:16 vertical short-form that should be promoted as a Reel/TikTok. Facebook will auto-promote 9:16 videos to Reels regardless, but explicitly setting reel tells the pipeline to render for Reels-first delivery.
  • talking_head vs video_hook: both are rendered by the video engine and support editor scripts. talking_head is oriented around a speaker with subtitle overlay; video_hook foregrounds a hook line for two to three seconds before revealing the body.
  • slideshow vs carousel: slideshow is TikTok/Instagram-slides-style with per-slide text baked into the image. carousel is Instagram sidecar with the same body caption applied to all slides.

Not every content type is publishable on every platform. The API rejects mismatched combinations at create time. For example, a text_only post targeting instagram returns 422 unprocessable_entity. See Platforms for the compatibility matrix.