Destination · publishing reference
Threads publishing reference for Postdom
This Threads publishing reference explains the OAuth connection, profile-level audience, omitted topic tag, enforced media checks, and returned outcome.
Human authorization boundary
Threads publishing reference connection requirements
A human completes the destination connection. The agent receives the resulting account ID—not the social credential—and supplies that exact account ID to publish_video.
connectionOAuth
prerequisiteNo additional Postdom prerequisite is recorded beyond an eligible account.
current source surfacepost
Configured output
What Postdom sends to Threads
The public tool accepts product-level publishing fields. Postdom builds destination settings after validation; callers cannot smuggle an undocumented settings object through publish_video.
settings- omitted
Postdom sends neither Meta's optional topic_tag nor a visibility field.
Postdom sends no Threads settings or visibility field. The profile's public or private state determines audience outside Postdom.
{
"platform": "threads",
"settings": {}
}Enforced, documented, or unknown
Threads publishing limits
Every row comes from the current @postdom/core registry. “Postdom enforced” means the source contract checks the fact. A recommendation, documented-but-unenforced fact, or unpublished value must not be presented as a passed validation.
caption max chars
4000
Postdom contract · verified 2026-08-21T00:00:00.000Z
Evidence reference retained in the core registry.
media max bytes
524,288,000 bytes
Postdom contract · verified 2026-08-21T00:00:00.000Z
Evidence reference retained in the core registry.
video max seconds
600
Postdom contract · verified 2026-08-21T00:00:00.000Z
Evidence reference retained in the core registry.
video mime types
video/mp4, video/quicktime
Postdom contract · verified 2026-08-21T00:00:00.000Z
Evidence reference retained in the core registry.
image mime types
image/jpeg, image/png, image/gif, image/webp
Postdom contract · verified 2026-08-21T00:00:00.000Z
Evidence reference retained in the core registry.
posts text
500
Unit: characters · Field: text · Scope: POST /{threads-user-id}/threads
Platform evidence · verified 2026-09-03T00:00:00.000Z
Qualification
Meta states this 500-character limit for text posts, not separately for media captions. Postdom applies it to the same text field on media posts as a conservative gate; that may reject text Meta would accept, rather than admit text Meta rejects.
video max seconds
300
Platform evidence · verified 2026-09-03T00:00:00.000Z
Official sourceaspect ratio
minimum: 0.01; maximum: 10
Platform evidence · verified 2026-09-03T00:00:00.000Z
Official sourceresolution max horizontal pixels
1920
Platform evidence · verified 2026-09-03T00:00:00.000Z
Official sourcevideo mime types
video/mp4, video/quicktime
Platform evidence · verified 2026-09-03T00:00:00.000Z
Official sourceresolution min pixels
Not published
Platform evidence · verified 2026-09-03T00:00:00.000Z
Official sourcevideo max bytes
1,000,000,000 bytes
Platform evidence · verified 2026-09-03T00:00:00.000Z
Qualification
Meta's own figure - "1 GB maximum" on the Threads posting reference - and an order of magnitude above Postdom's 500 MB global cap. No request Postdom accepts can reach it, so a gate would be unreachable and a violation test for it would pass on the global rule while proving nothing about Threads. Decimal rather than binary: the source says "1 GB" in prose with no convention stated, and the decimal reading is the smaller one, which is the safe error for a maximum. Reclassify the day the global cap rises above it.
video min seconds
exclusive minimum: 0
Platform evidence · verified 2026-09-03T00:00:00.000Z
Qualification
Meta publishes a minimum "longer than 0 seconds". mediaUploadPreflightRequestSchema declares duration_seconds as a positive integer, so no request can express a duration this rule would reject. An enforced minimum no request can violate is unenforceable by construction - the same reason X's half-second floor is recorded here rather than gated. This sat in shortFormVideoLimits as not_published, which asserted the opposite of what Meta's page says.
Result boundary
How to verify the Threads outcome
This page does not claim an authenticated Threads media publication, analytics response, or setting the configured adapter does not send.
Never collapse a workflow state into success
Store the Postdom post ID, read the exact destination state with get_publish, and preserve a missing public URL, approval state, terminal refusal, or provider error exactly as returned.
Nine modeled fields
Threads metric availability
The matrix records evidence states, not guaranteed live values. Unverified and never remain null with a reason; zero remains a measured zero.
viewsViewsRequired view count in a normalized snapshot.
Not verified
Always null with an explicit reason.
likesLikesRequired like count in a normalized snapshot.
Not verified
Always null with an explicit reason.
commentsCommentsRequired comment count in a normalized snapshot.
Not verified
Always null with an explicit reason.
sharesSharesRequired share count in a normalized snapshot.
Not verified
Always null with an explicit reason.
savesSavesNullable saved or favorited count.
Not verified
Always null with an explicit reason.
watch_time_sWatch timeNullable total watch time in seconds.
Not verified
Always null with an explicit reason.
avg_watch_pctAverage watchNullable average watched percentage.
Not verified
Always null with an explicit reason.
completion_pctCompletionNullable completion percentage.
Not verified
Always null with an explicit reason.
follower_deltaFollower deltaNullable follower-change field.
Not verified
Always null with an explicit reason.
Verification scope
Threads evidence boundary
Contract evidence is not an observed publication
These pages describe source-backed product contracts. They do not represent an authenticated end-to-end publication or analytics test.
Inspect the connected tool schema before acting. Current source may be ahead of the separately published @postdom/mcp helper.
Use the contract
Publish with explicit authority and outcomes
Create a workspace, connect an eligible account, and let the agent use only the fields exposed by the connected schema.