Skip to main content

Threads

Using hosted SimplePost? See connection requirements. The credential setup below is for your own SDK, local CLI, or self-hosted integration.

Threads posting uses Meta's Threads API. Users authorize a Threads account and SimplePost posts with the resulting access token and user ID.

Content support​

Current hosted app and core source

CapabilitySimplePost support
Text / caption (characters)500 text
Media20 items max; 20 images max; 20 videos max; Mixed media supported
Image size8 MiB maximum
Video size1 GiB maximum

These validation limits also match published SDK 1.5.0.

Provider permissions and quotas still apply. SimplePost storage can impose a lower upload limit. MB/GB use decimal bytes; MiB/GiB use binary bytes.

Set up credentials​

  1. Create a Meta developer app.
  2. Add the Threads API product.
  3. Configure OAuth redirect URIs for your app or Scheduler deployment.
  4. Request the scopes required for creating Threads posts.
  5. Authorize the Threads account.
  6. Store the access token and Threads user ID.

Provider review requirements vary depending on whether you only post for yourself or support external users.

The CLI does not bundle a Threads OAuth app. To use it from the CLI, supply your own client secret through SIMPLE_POST_THREADS_CLIENT_SECRET before running simplepost account add threads.

Environment variables​

THREADS_ACCESS_TOKEN=
THREADS_USER_ID=

Both variables must be set together.

SDK example​

await post({
content: {
text: "Hello Threads",
media: [{ type: "image", path: "./photo.jpg" }],
},
platforms: ["threads"],
});

Reply to a Threads post:

await post({
content: { text: "A reply" },
platforms: ["threads"],
options: {
threads: { replyToId: "1234567890" },
},
});

REST server account​

Add this entry under accounts in the self-hosted REST server's accounts.json:

{
"id": "threads-main",
"platform": "threads",
"username": "yourbrand",
"credentials": {
"accessToken": "...",
"userId": "1234567890"
}
}