Threads

Threads scheduling for agencies

Postwoo publishes to Threads through Meta's official Threads API with the same two-step container flow Meta uses for Instagram, checks the 500-character limit before you schedule, and reports the insights Threads actually exposes.

What agencies use it for

  • Text posts with a link preview, image, video and carousel posts
  • Reuse your Instagram content with Threads-specific captions
  • Views, likes, replies, reposts and quotes per post
  • Follower totals and profile views over time
Capability matrix

Exactly what Threads allows

Live from the integration itself. Statuses move from pending verification to supported only after an end-to-end check with approved credentials.

OAuth connectionThreads OAuth (no PKCE) + th_exchange_token for a 60-day token that refreshes itself (th_refresh_token). Needs a Meta app with the "Access the Threads API" use case; threads_content_publish and threads_manage_insights need App Review for anyone but app roles.pending
Account discoveryGET /me?fields=id,username,name,threads_profile_picture_url,threads_biography — one Threads profile per connection.pending
Location discoveryThreads profiles have no sub-locations.not possible
Publish text postsPOST /{user-id}/threads media_type=TEXT → POST /{user-id}/threads_publish. Text ≤500 characters.pending
Publish a single imagemedia_type=IMAGE with a public image_url (JPEG/PNG ≤8 MB) + optional alt_text; container is polled before threads_publish.pending
Publish multiple imagesCarousel: one container per item with is_carousel_item=true, then media_type=CAROUSEL with children=… (Postwoo caps at 10 items; the API documents up to 20).pending
Publish videomedia_type=VIDEO with a public video_url (MP4/MOV ≤1 GB, ≤5 min); GET /{container-id}?fields=status,error_message is polled until FINISHED before publishing.pending
Attach a linkTEXT posts carry link_attachment=<url> (Threads renders the preview). With media the URL is appended to the text instead.pending
Call-to-action buttonThreads has no call-to-action buttons.not possible
Native platform schedulingThe Threads API has no scheduled publish time; Postwoo schedules and publishes at the right time.not possible
Delete postsDELETE /{media-id} — documented for the Threads API but not yet exercised live.pending
Edit published postsThreads posts cannot be edited through the API.not possible
Direct media uploadMedia must be a publicly reachable HTTPS URL that Meta downloads; Postwoo serves uploads from its media storage (APP_URL / S3).not possible
Account-level analyticsGET /{user-id}/threads_insights?metric=views,likes,replies,reposts,quotes,followers_count&since&until — views as a daily series, the rest as window totals; followers_count is lifetime only.pending
Post-level analyticsGET /{media-id}/insights?metric=views,likes,replies,reposts,quotes,shares (lifetime values).pending
Read reviewsThreads has no reviews.not possible
Reply to reviewsThreads has no reviews.not possible
Delete review repliesThreads has no reviews.not possible
Real-time webhooksThreads webhooks (replies/mentions) need a verified callback URL and the threads_manage_replies permission; not built yet.planned
Token & permission healthGET /me probe + token expiry check (Threads exposes no debug_token endpoint we rely on).pending
Read business profileBusiness profile management (hours, Q&A, profile photos) is only implemented for Google Business Profile in Postwoo.not possible
Update opening hoursBusiness profile management (hours, Q&A, profile photos) is only implemented for Google Business Profile in Postwoo.not possible
Read questions & answersBusiness profile management (hours, Q&A, profile photos) is only implemented for Google Business Profile in Postwoo.not possible
Answer questionsBusiness profile management (hours, Q&A, profile photos) is only implemented for Google Business Profile in Postwoo.not possible
Upload profile photosBusiness profile management (hours, Q&A, profile photos) is only implemented for Google Business Profile in Postwoo.not possible
Hashtag lookupHashtag lookup uses Instagram's official hashtag search; Postwoo does not implement it for this platform.not possible
Post a first commentAutomatic first comments are only implemented for Instagram in Postwoo.not possible
Read commentsGET /{media-id}/conversation (threads_read_replies) for the account's recent posts published through Postwoo — Threads has no account-wide replies feed for other people's replies.pending
Reply to commentsPOST /{user-id}/threads media_type=TEXT reply_to_id=… then threads_publish (threads_manage_replies).pending
Hide commentsPOST /{reply-id}/manage_reply hide=true|false (threads_manage_replies); DELETE /{reply-id} for the profile's own replies.pending
Read direct messagesThe Threads API has no direct messages.not possible
Reply to direct messagesThe Threads API has no direct messages.not possible
Image alt textW14: alt_text on IMAGE (and carousel item) containers. From memory, not verified live.pending
Custom video coverPostwoo does not send a custom video cover here (no official cover field implemented); the platform picks its own thumbnail.not possible
Limits

Platform limits we enforce before you schedule

The composer checks these for every target so a post is never queued only to fail later.

Text length500 characters
Images per post10
Videos per post10
Image typesjpeg, png
  • Text: up to 500 characters (Threads counts characters, including the appended link when media is attached).
  • Images: JPEG or PNG, ≤8 MB, aspect ratio between 10:1 and 1:10, width ≤1440 px recommended. Video: MP4/MOV, H.264 + AAC, ≤1 GB, ≤5 minutes.
  • Two or more media items become a carousel (images and videos may be mixed). Postwoo caps carousels at 10 items; the API documents up to 20.
  • A link is attached as a preview card on text-only posts (link_attachment); with media it is appended to the text.
  • Media must be downloadable by Meta from a public HTTPS URL (APP_URL / S3), exactly like Instagram.
  • Threads allows 250 API-published posts per profile per rolling 24 hours (plus 1,000 replies).
Access

What the platform requires

  • A Meta app with the "Access the Threads API" use case. It has its own Threads App ID and secret (THREADS_APP_ID / THREADS_APP_SECRET), separate from the Facebook/Instagram app id, and its own redirect URI (…/oauth/threads/callback).
  • Permissions threads_basic, threads_content_publish, threads_manage_insights, threads_manage_replies and threads_read_replies. Until App Review grants Advanced Access only app roles (admins/developers/testers) can connect; the app must also be switched to Live mode.
  • The connecting user must own the Threads profile; there is no agency/page-style delegation on Threads.
  • Long-lived tokens last 60 days and are refreshed with th_refresh_token once they are at least 24 hours old; Postwoo refreshes them automatically before expiry.
  • Media is fetched by Meta from a public HTTPS URL; a public APP_URL or S3 storage is required.
  • Rate limit: 250 API publishes per profile per 24 hours (checked by Meta via /{user-id}/threads_publishing_limit).

Postwoo handles the app side. You connect with an account that has the right role on the platform.

FAQ

Questions, answered honestly

Is Threads connected through my Instagram connection?

No. Threads has its own API, its own Meta app use case and its own login. You connect each Threads profile separately; it usually takes one click if you are already signed in to Instagram.

Why must Postwoo be reachable from the internet?

Meta downloads images and videos for Threads from a public link, exactly like Instagram. Postwoo serves your uploads from its media storage, so the instance needs a public address or S3 storage.

Can Postwoo edit a published Threads post?

No. The Threads API does not allow editing, so Postwoo does not offer it. Deleting is built against the official endpoint and is still being verified with a live account.

Other integrations

Google Business ProfileFacebook PagesInstagramLinkedInYouTubeTikTokPinterestBluesky

Ready to woo your clients?

Start free, connect a Google Business Profile, and see real reviews and metrics in the feed within minutes.