threads_publish_text
Publish text-only posts on Threads. Auto-publish uses a single API call for speed and reliability. Supports links, polls, GIFs, topic tags, and long-form text.
Instructions
Publish a text-only post on Threads. By default publishes in a single API call via auto_publish_text=true (faster and avoids the 4279009 'container not propagated' race condition). Supports optional link attachment, poll, GIF, topic tag, quote post, cross-share to Instagram Stories, and text_attachment for long-form content (up to 10,000 chars with optional styling and link). text_attachment cannot be combined with poll_options or link_attachment. Set auto_publish=false to fall back to the legacy two-step create-then-publish flow.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Post text (max 500 chars) | |
| reply_control | No | Who can reply | |
| link_attachment | No | URL to attach as a link preview card (max 5 links per post). Cannot be combined with text_attachment. | |
| topic_tag | No | Topic tag for the post (1-50 chars, no periods or ampersands) | |
| quote_post_id | No | ID of a post to quote | |
| poll_options | No | Poll options (2-4 choices, each 1-25 chars). Creates a poll attachment. | |
| gif_id | No | GIPHY GIF ID | |
| gif_provider | No | GIF provider. Only GIPHY is currently supported. | |
| alt_text | No | Alt text for accessibility (max 1000 chars) | |
| is_spoiler | No | Mark content as spoiler | |
| 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. | |
| text_attachment | No | Long-form text attachment (max 10,000 chars). Renders as expandable 'Read more' block beneath the primary text. Cannot be combined with poll_options or link_attachment. | |
| text_attachment_link | No | URL to include inside the text attachment card. Requires text_attachment. | |
| text_attachment_styling | No | Text formatting for the text attachment. Ranges must not overlap. | |
| auto_publish | No | When true (default), combine container creation and publishing into a single API call via auto_publish_text=true — one HTTP request instead of two, and no risk of the 4279009 'container not propagated yet' race. Set to false to fall back to the legacy two-step flow (POST /threads, then POST /threads_publish). |