Threads
Threads publishing uses the official Threads API: create a media container, wait until its status is finished, then publish. Nothing is posted by automating threads.com.
Checked against Posts, access tokens, long-lived tokens, replies, and insights.
What you can send
Section titled “What you can send”| Kind | Rule |
|---|---|
| Text | 500 characters. Emoji count as their UTF-8 bytes. At most 5 unique links. |
| Link | A text post plus one https link card. The card is not available on an image, video, or carousel. |
| Image | One JPEG or PNG, up to 8 MB. Threads downloads it from a public https link. |
| Video | One MP4 or MOV, up to 5 minutes and 1 GB. Threads downloads it. |
| Carousel | 2 to 20 images or videos. Counts as one post. |
A profile can publish 250 posts in 24 hours. A first comment is a reply after Threads accepts the post. Other people’s replies are on Inbox and listening. Keyword search and direct messages are not part of this connection.
How media is delivered
Section titled “How media is delivered”Threads downloads each image and video from a public https link. The product builds that link from MEDIA_PUBLIC_ORIGIN and a signed /media/pull/{token} path. If the public origin is missing or is not https, publish fails before a container is created.
Set up the Meta app
Section titled “Set up the Meta app”- Open developers.facebook.com/apps and add the Threads API use case. The Threads app id can be different from a Facebook app id.
- Add the redirect URI exactly:
{APP_PUBLIC_ORIGIN}/api/connect/threads/callback. Check the dashboard for a trailing slash it may have added. - Request
threads_basic,threads_content_publish,threads_manage_replies,threads_read_replies, andthreads_manage_insights. - Add Threads testers and publish to a tester profile first.
threads_content_publishneeds advanced access from App Review before anyone who is not a tester can publish. Request advanced access for the reply and insights permissions at the same time. - Put the Threads app id and secret in
THREADS_CLIENT_IDandTHREADS_CLIENT_SECRET. - Set
MEDIA_PUBLIC_ORIGINandMEDIA_SIGNING_KEY(at least 16 characters). - Set
THREADS_HTTP_ALLOW_NETWORK=1only on the server that may callgraph.threads.com.
A short-lived token is exchanged for a long-lived token of about 60 days. Refresh extends a token that is still valid. Threads asks that a token be at least a day old before it is refreshed.