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

Published SDK 1.3.1 (also used by local CLI 1.3.1)

CapabilitySimplePost support
Text / caption (characters)500 text
Media1 item max; 1 image max; 1 video max; No mixed images/video
Image size8 MiB maximum
Video size1 GiB maximum

Hosted-account CLI posts use the app's rules. Installing the published SDK or CLI does not include later core changes. See release scope.

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"
}
}