# PostEverywhere Threads API Guide > Threads API post guide: publish and schedule Threads posts via REST. Reply controls, auto first comments, images and video. **Source:** https://posteverywhere.ai/docs/platforms/threads **Section:** Platforms **API reference:** https://posteverywhere.ai/docs/api/reference --- Publish text posts, image posts, and video posts to Threads (by Meta). PostEverywhere handles Threads' Publishing API to create posts with reply controls, first comments, and [media attachments](/docs/api/init-media-upload) through a single call. For a general overview of all supported platforms, see the [Introduction](/docs). ## Connect your Threads account to PostEverywhere Connect Threads from the dashboard with OAuth, or headlessly from code: mint a [connect link](/docs/api/create-connect-link) and hand it to the account owner - no dashboard session needed. Both flows are covered in [Connecting Accounts](/docs/connecting-accounts). ## What you can post to Threads | Content Type | Media Required | Description | |-------------|---------------|-------------| | **Text post** | None | Plain text post, up to 500 characters. | | **Image post** | Image(s) | Post with one or more attached images. | | **Video post** | Video (MP4) | Post with a single video attachment. | Threads is designed for short-form text conversations. Posts are limited to 500 characters, making concise writing essential. ## Threads-specific options in the API Use the `platform_content.threads` object to customise your Threads post: ```json { "platform_content": { "threads": { "content": "Threads post (max 500 chars)", "settings": { "replyControl": "everyone", "firstComment": "First comment text" } } } } ``` ### Settings Reference | Setting | Type | Default | Description | |---------|------|---------|-------------| | `content` | string | N/A | Override the default text with a Threads-specific version. Max 500 characters. | | `settings.replyControl` | string | `"everyone"` | Who can reply to this post. See values below. | | `settings.firstComment` | string | N/A | Text posted as the first reply after publishing. | ### Reply Controls | Value | Description | |-------|-------------| | `everyone` | Anyone on Threads can reply. | | `following` | Only accounts you follow can reply. | | `mentioned` | Only accounts mentioned in the post can reply. | ## Publish to Threads: a working request ### Schedule a Threads Text Post ```bash curl -X POST https://app.posteverywhere.ai/api/v1/posts \ -H "Authorization: Bearer $POSTEVERYWHERE_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "content": "Default text for other platforms", "account_ids": [2295], "scheduled_for": "2026-04-15T12:00:00Z", "timezone": "America/New_York", "platform_content": { "threads": { "content": "Hot take: the best social media strategy is being genuinely helpful.\n\nNo growth hacks. No engagement bait. Just answer questions and share what you know.\n\nAgree or disagree?", "settings": { "replyControl": "everyone" } } } }' ``` ### Schedule a Threads Post with Image and First Comment ```bash curl -X POST https://app.posteverywhere.ai/api/v1/posts \ -H "Authorization: Bearer $POSTEVERYWHERE_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "content": "Our new feature just shipped!", "account_ids": [2295], "media_ids": ["e1f2a3b4-c5d6-7890-1234-ef0123456789"], "scheduled_for": "2026-04-15T18:00:00Z", "timezone": "UTC", "platform_content": { "threads": { "content": "We just shipped bulk scheduling to PostEverywhere.\n\nSchedule up to 50 posts in a single API call.\n\nFull details below:", "settings": { "replyControl": "everyone", "firstComment": "Docs: https://posteverywhere.ai/docs/quick-start\n\n7-day trial, cancel anytime." } } } }' ``` ### Schedule a Restricted-Reply Announcement ```bash curl -X POST https://app.posteverywhere.ai/api/v1/posts \ -H "Authorization: Bearer $POSTEVERYWHERE_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "content": "Scheduled maintenance notice", "account_ids": [2295], "platform_content": { "threads": { "content": "Scheduled maintenance tonight 11pm-1am ET.\n\nAll systems will be back online by 1am.\n\nFollow @posteverywhere for updates.", "settings": { "replyControl": "mentioned" } } } }' ``` ## Threads limits: characters, media and video | Requirement | Limit | |-------------|-------| | Post text length | 500 characters | | Image formats | JPEG, PNG, WebP, HEIC | | Image max file size | 20 MB | | Video format | MP4 (H.264) | | Video max file size | 500 MB | | Video duration | Up to 5 minutes | | Recommended image ratio | 1:1 (square), 4:5 (portrait) or 9:16 | | Links in post | Supported (auto-previewed by Threads) | ## Getting better results on Threads - **Write for conversation.** Threads is built for dialogue. Posts that ask questions, share opinions, or invite debate get significantly more engagement than announcements. End with a question or a take that people want to respond to. - **Use `replyControl` strategically.** Set replies to `"mentioned"` for announcements where you do not want noise (maintenance notices, official statements). Use `"everyone"` for posts designed to spark conversation. - **Keep it under 500 characters.** Unlike other platforms where longer posts perform well, Threads rewards brevity. Get to the point quickly. If you need more space, use `firstComment` to add context without bloating the main post. ## Common questions about posting to Threads ### Can I attach images or video to a Threads post? Yes. [Upload your media](/docs/api/init-media-upload) using the Upload Media endpoint, then pass the returned UUID in the `media_ids` array in your [Create Post](/docs/api/create-post) request. Threads supports images (JPEG, PNG, WebP, HEIC) up to 20 MB and video (MP4) up to 500 MB and 5 minutes long. ### How do I restrict replies on a Threads post? Set `settings.replyControl` in the `platform_content.threads` object. Options are `"everyone"` (default), `"following"` (only accounts you follow), or `"mentioned"` (only accounts mentioned in the post). Use `"mentioned"` for announcements where you want to limit noise. ### What is the character limit for Threads posts? Threads posts are limited to 500 characters. Unlike LinkedIn or Facebook where longer posts perform well, Threads rewards brevity. If you need more space, use the `firstComment` setting to add context or links in a reply posted automatically after publishing. ### Does Threads support link previews? Yes. When you include a URL in your Threads post text, Threads automatically generates a link preview card. You do not need a separate `link` setting like on Facebook or Pinterest -- just include the URL directly in the `content` field. ### Can I edit a Threads post after it's published? No. The Threads Publishing API does not let third-party apps modify a live post, and `PATCH /v1/posts/:id` only accepts `scheduled` or `draft` status. To change a published post, edit it directly in the Threads app, or delete and recreate. ## Other platforms you can publish to - **[X (Twitter)](/docs/platforms/x-twitter)** -- similar short-form text post format and conversational style - **[Instagram](/docs/platforms/instagram)** -- owned by Meta, visual-first companion platform - **[LinkedIn](/docs/platforms/linkedin)** -- longer-form professional text posts ## Related Threads and API reference pages - [API Reference -- Create Post](/docs/api/create-post) - [Upload Media](/docs/api/init-media-upload) - [Quick Start Guide](/docs/quick-start) - [Threads Scheduler on PostEverywhere](https://posteverywhere.ai/threads-scheduler) **Related:** [Threads media requirements](/docs/media-requirements) · [testing posts safely](/docs/testing) · [posting to Threads via API](/blog/post-to-threads-api) · [the PostEverywhere social media API](/social-media-api)