Threads

Threads works well for short conversational copy and thread-like multi-post flows. UniPost treats it like a text-first platform with optional media and native thread behavior.

Short-form text, media, and native threaded conversations.

At a glance

Publishing
Supported
Scheduling
Supported
Analytics
Supported
Inbox
Limited
Connection
OAuth via Meta — Quickstart and White-label both supported

Feature matrix

FeatureSupportNotes
Text postsUp to 500 characters
Image postsSingle image or carousel
Video postsSingle video or carousel
Carousel2-20 items, mixed media allowed
ThreadsUse thread_position
SchedulingUse scheduled_at
Inbox (replies)Routed as threads_reply
First commentXUse threads instead

Known constraints

LimitationWhy
Daily safety cap250 publishes/day per connected Threads account (UTC reset). Failed posts do not count toward the cap.
No first-comment flowUse thread_position for follow-up content
No DMsThreads API does not expose direct messages today

Publishing

Ready to publish?Use the shared Publishing guide for hosted URLs, local file uploads, preflight validation, and async publish status. Then use the Threads examples below for platform-specific payload shape.

Publish examples by surface

Each example calls POST/v1/posts with Bearer auth. Swap the account_ids for your own, then copy the snippet for your language.

Text-only post

Thread

Media & field requirements

FieldRequiredLimitsNotes
captionOptional500 charsShort-form conversational copy
media_urls or media_idsOptionalsingle asset or 2-20 carouselUse media_urls for hosted assets or media_ids for local files uploaded via POST/v1/media. Mixed media allowed only in carousel flow.
thread_positionOptional1-indexedPreferred over first_comment
first_commentRejectedn/aValidate will catch this before publish

Hosted URLs: pass the public URL in media_urls. Local files: reserve an upload with POST/v1/media, PUT the bytes to the returned upload_url, then publish with media_ids. Full flow in the Publishing guide.

Media specifications

Per-surface limits for text, images, and video. These are the source of truth UniPost uses for preflight validation and media optimization — treat hard-limit values as enforced and "recommended" values as platform guidance.

Post

Text-first post with optional single asset or a 2 – 20 item carousel. Each thread entry repeats these limits.

TypeRequirementValue
TextCharacter limit500 chars per post
TextPer thread entry500 chars each
ImageFormatsJPEG, PNG (WebP and GIF accepted but may fail — prefer JPEG/PNG)
ImageMax per post1 (single) or up to 20 children in a carousel
ImageMax file size8 MB per image
ImageMin width320 px
ImageAspect ratioFlexible; 4:5 recommended for feed prominence
ImageRecommended1,080 × 1,350 (4:5), 1,080 × 1,080 (1:1), 1,080 × 608 (16:9)
VideoFormatsMP4, MOV
VideoMax per post1 standalone, or mixed into a carousel (≤ 20 children total)
VideoMax file size1 GB
VideoDurationUp to 5 min
VideoAspect ratios9:16, 1:1, 16:9 all accepted
VideoResolution1,080p recommended
VideoFrame rate30 fps recommended
VideoCodecH.264 + AAC-LC (128 kbps)

Analytics

MetricSupportNotes
ImpressionsSupported
LikesSupported
Comments / repliesSupported
Shares / repostsSupported
ReachXNot exposed per-post
SavesXNot exposed by Threads
Video viewsXNot exposed per-post today

Inbox

Threads surfaces replies to your posts. DMs are not part of the Threads API today.

SurfaceSupportNotes
Replies to your postsSource threads_reply
Direct messages (DMs)XNot supported by the Threads API
Reply from UniPostOne reply per item supported

Connection modes

Pick the setup that matches how the account is owned. Quickstart is fastest when you publish to your own accounts; White-label is required when your customers bring their own accounts through a branded flow. Full setup details in Quickstart and White-label.

ModeBest forApp / credentialsAvailability
QuickstartFast setup — UniPost handles OAuthUniPost-managed appFree / paid quota
White-labelYour customers connect their own accountsYour OAuth appPaid plans only

Validation errors

CodeWhat it means
caption_too_longCaption exceeds 500 characters
first_comment_unsupportedThreads should use thread_position instead
too_many_mediaMore than 20 carousel items supplied

Next steps