threads_publish_video
Publish a video post on Threads with captions, alt text, topic tags, quote posts, spoiler marking, geo-gating, and location tagging. Waits for video processing and supports cross-share to Instagram Stories.
Instructions
Publish a video post on Threads. Waits for video processing. Supports topic tag, quote post, alt text, spoiler flag, cross-share to Instagram Stories, geo-gating via allowlisted_country_codes, and location tagging via location_id. Note: cross-share to IG Stories may silently fail for video posts (the Threads post still publishes).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| text | No | Caption text | |
| alt_text | No | Alt text for accessibility (max 1000 chars) | |
| topic_tag | No | Topic tag for the post (1-50 chars, no periods or ampersands) | |
| video_url | Yes | Public HTTPS URL of the video (MP4/MOV, max 1GB, up to 5 min) | |
| is_spoiler | No | Mark content as spoiler | |
| location_id | No | Location ID for tagging the post. Use threads_search_locations to find IDs. Requires the threads_location_tagging permission on the access token. | |
| quote_post_id | No | ID of a post to quote | |
| reply_control | No | Who can reply to this post. One of: 'everyone' (default — anyone can reply), 'accounts_you_follow' (only profiles the author follows), 'mentioned_only' (only profiles @-mentioned in the post), 'parent_post_author_only' (only the author of the post being replied to — applies when this post is itself a reply, not a quote), or 'followers_only' (only the author's followers). See https://developers.facebook.com/docs/threads/reply-management/ for the authoritative list. | |
| share_to_ig_story | No | Cross-share this post to linked Instagram as a Story. 'light' = normal, 'dark' = dark mode. Requires threads_share_to_instagram permission and a linked Instagram account. The Threads post still publishes even if cross-share fails. | |
| allowlisted_country_codes | No | ISO 3166-1 alpha-2 country codes (e.g., ['US','CA','GB']) restricting post visibility to those countries (geo-gating). Requires the account to be eligible — check `is_eligible_for_geo_gating` via `threads_get_profile`. The creator can always see their own posts regardless. Codes are normalized to uppercase and sent comma-joined (e.g., 'US,CA') as required by the API. |