Overview
Connect Threads, capabilities, and known limits.
Schedule and automate Threads posts with text, images, carousels, and video. Native support for reply chains, quotes, and reposts, plus reply moderation and normalized analytics.
| Page | Topics |
|---|---|
| Posts | Publish text, image, video, multi-image. Threads, quotes, schedule, delete |
| Engagement | Repost / unrepost; list, create, delete replies |
| Analytics | Views, likes, replies, reposts, quotes |
Quick Reference
| Property | Value |
|---|---|
| Character limit | 500 |
| Images per carousel | 20 |
| Videos per post | 1 |
| Image formats | JPEG, PNG |
| Image max size | 8 MB |
| Video format | MP4 (H.264 / AAC) |
| Video max size | 1 GB |
| Video max duration | 5 minutes |
| Post types | Text, Image, Video, Carousel, Thread |
| Scheduling | Yes, with IANA timezone |
| Editing published posts | No |
| Comments | Replies only (list, reply, delete) |
| Inbox (DMs) | No |
| Analytics | Yes (views, likes, replies, reposts, quotes) |
Before You Start
Threads has a 500 character limit on everything. Posts, captions, and thread segments alike. This is the #1 cause of failed posts when cross-posting from platforms with higher limits.
Additional requirements:
- Text, image, video, and carousel posts all accept an optional 500-character caption
- Carousels accept up to 20 items and can mix images and videos
- Threads enforces a rate limit of roughly 250 API-published posts per 24-hour window
- Media URLs must be publicly reachable HTTPS. Threads downloads them during publishing
- There is no like or bookmark API, and posts cannot be edited after publishing
Connect
Open Dashboard → Connections and connect Threads.
Complete the consent screen. Onepostly requests all scopes below in a single OAuth flow.
Grab the account id from the connections list:
const { connections: list } = await connections.listConnections();
const th = list.find((c) => c.platform === "threads");
// th.id is your accountIdIf you later get a permission error on an action that should work, reconnect Threads once.
OAuth Scopes
| Scope | What it enables |
|---|---|
threads_basic | Account identity (id, username, avatar) |
threads_content_publish | Publish text, images, carousels, and video |
threads_read_replies | Read replies to your posts |
threads_manage_replies | Create and hide replies |
threads_manage_insights | Read post metrics |
threads_delete | Delete published posts |
Token Lifetime
| Token | Lifetime | Behavior |
|---|---|---|
| Access token | ~60 days | Refreshed automatically by Onepostly |
| Refresh token | No | Not used. After expiry or revocation, reconnect the account |
Capabilities
| Action | Supported | Notes |
|---|---|---|
| Text-only post | Yes | Max 500 characters |
| Image post | Yes | Single image URL + optional text |
| Multi-image | Yes | 2 to 20 URLs, images and videos can be mixed |
| Video post | Yes | Single video URL |
| Thread (reply chain) | Yes | Root post plus 1 to 25 replies via threadItems with per-post media |
| Quote | Yes | Quote another Threads post |
| Schedule | Yes | Cancel any time before it publishes |
| Remote delete | Yes | Removes the post and its replies |
| Replies (comments) | Yes | List, create, delete, hide |
| Topic tag | Yes | topicTag (1-50 chars, no . or &) |
| First comment | Yes | firstComment posts as a reply to the root (max 500 chars) |
| Repost / unrepost | Yes | X-style retweet endpoints |
| Analytics | Yes | Views, likes, replies, reposts, quotes |
| Stories | No | Not a Threads API capability |
| Like / bookmark | No | Threads has no like or bookmark API |
What You Can't Do
These features are not available through the Threads API:
- Stories
- Polls
- GIF search
- Editing posts after publishing
- Creating top-level comments (replies only)
- Liking comments or posts
- Sending DMs