TL;DR, Quick Answer
7 min readThreads caps a video at 5 minutes. Meta's launch post of July 5, 2023 promised "videos up to 5 minutes in length" in the app, and the Threads API states "300 seconds (5 minutes) maximum, minimum longer than 0 seconds." The API also demands MOV or MP4, 23 to 60 FPS, 1920 horizontal pixels at most and a file of 1 GB or less. When a video fails, the container status returns ERROR with a message such as INVALID_DURATION.
What is the Threads video length limit?
The maximum Threads video length is 5 minutes, and the rule holds for posts made in the app and for posts published through the Threads API. Meta set the app figure at launch. Its announcement of July 5, 2023, "Introducing Threads: A New Way to Share With Text," says posts "can be up to 500 characters long and include links, photos, and videos up to 5 minutes in length."
The Threads API writes the same ceiling in seconds. The Video Specifications list on Meta's overview page and again on the posts guide reads:
Duration: 300 seconds (5 minutes) maximum, minimum longer than 0 seconds.
So the minimum sets no practical floor. A one-second clip passes the duration check. A clip at 5 minutes and 1 second fails it. Trim anything longer before you upload it.
Is the Threads app limit the same as the API limit?
The Threads app and the Threads API share the 5-minute ceiling, but only the API documents it in the current docs. The Threads Help Centre article "Start a new thread on Threads" says a thread "can include short pieces of text, links, photos, videos or any combination of them," and then walks through Add from gallery without giving a duration, a file size or a format. The 2023 launch post remains Meta's only public statement of the app limit, and the Help Centre has published no newer figure.
The API side is far more detailed, and it is the side that matters for scheduled posts, since every third-party scheduler publishes through it.
| Rule | Threads app | Threads API |
|---|---|---|
| Maximum duration | 5 minutes, from the 2023 launch post | 300 seconds (5 minutes) |
| Minimum duration | Not documented | Longer than 0 seconds |
| Maximum file size | Not documented | 1 GB |
| Formats | Not documented | MOV or MP4 |
| Where the rule lives | Meta newsroom, July 5, 2023 | Threads API overview and posts guide |
If you edit on a phone and post by hand, the 5-minute rule is the only one Meta states. If a tool publishes the video for you, every row in the API column applies.

What other video specs does the Threads API check?
The Threads API checks nine properties besides duration, and Meta lists them under Video Specifications:
| Property | Threads API requirement |
|---|---|
| Container | MOV or MP4 (MPEG-4 Part 14), no edit lists, moov atom at the front of the file |
| Video codec | HEVC or H264, progressive scan, closed GOP, 4:2:0 chroma subsampling |
| Audio codec | AAC, 48 kHz sample rate maximum, mono or stereo |
| Frame rate | 23 to 60 FPS |
| Width | 1920 horizontal pixels maximum |
| Aspect ratio | Between 0.01:1 and 10:1, with 9:16 recommended "to avoid cropping or blank space" |
| Video bitrate | VBR, 100 Mbps maximum |
| Audio bitrate | 128 kbps |
| File size | 1 GB maximum |
Two rows are easy to miss. The moov atom must sit at the front of the file, and not every export preset puts it there, so look for a "fast start" or "web optimised" option. And the frame rate floor of 23 FPS rejects slow-motion or timelapse exports saved at lower rates.
The 1 GB cap and the 5-minute cap interact. At the 100 Mbps bitrate ceiling, a 300-second video comes to 30,000 megabits, which is 3.75 GB, far over the file limit. A full-length 5-minute upload stays inside 1 GB at an average of 26.7 Mbps or less, so a high-bitrate master breaks the size rule before it gets anywhere near the duration rule.
What happens when a video is too long for the Threads API?
A Threads video longer than 300 seconds does not publish, and Meta's troubleshooting page points to the container status as the place to find out why. Threads publishing takes two calls: POST /{threads-user-id}/threads creates a media container with media_type=VIDEO and a video_url, and POST /{threads-user-id}/threads_publish turns the container into a post. Meta fetches the file itself, and the parameter table warns, "We will cURL your video using the URL provided so it must be on a public server."
When threads_publish does not return a media ID, Meta's troubleshooting page says to query GET /{threads-container-id}?fields=status,error_message. The status comes back as one of five values: EXPIRED, ERROR, FINISHED, IN_PROGRESS or PUBLISHED. An ERROR carries one of ten messages. Meta lists them by name only, with no description of each, but the names line up with the spec table above:
INVALID_DURATION, the one that matches the 300-second rule.INVALID_BIT_RATE,INVALID_FRAME_RATEandINVALID_ASPEC_RATIO, which match the bitrate, frame rate and aspect ratio rows. Meta spells the aspect ratio code without the T.INVALID_AUDIO_CHANNELSandINVALID_AUDIO_CHANNEL_LAYOUT, which match the mono or stereo rule.FAILED_DOWNLOADING_VIDEO, which points at thevideo_urlfetch.FAILED_PROCESSING_VIDEO,FAILED_PROCESSING_AUDIOandUNKNOWN.
Meta recommends waiting "on average 30 seconds" before publishing a container, and querying a video container's status "once per minute, for no more than 5 minutes." A container that nobody publishes within 24 hours turns EXPIRED. Meta does not document whether a container that ends in ERROR counts against the 250-post daily quota, which the Threads API 250 posts per day limit explains is enforced on the publish call.
Does the 5-minute limit apply to each video in a carousel?
The 5-minute limit applies to each video in a Threads carousel separately, because every carousel item is its own media container. The posts guide builds a carousel in three steps: one container per image or video with is_carousel_item=true, then a carousel container that lists them in children, then the publish call. The carousel section adds no video rules of its own, so each child meets the same Video Specifications as a single video post.
AdaptlyPost
Start Your 7-Day Free Trial
All-platform analytics
Social Inbox
AI-powered assistant
Meta allows 2 to 20 children, and the mechanics of that range are in how the Threads API carousel maximum items cap works. Meta documents no combined duration or combined file size across a carousel. On paper, 20 videos of 300 seconds each is a valid carousel, though each one still needs its own 1 GB or smaller file and its own processing pass.
Text length is a separate budget. The 500-character cap applies to the text field whether the post carries a video or not, and the Threads character limit covers how Meta counts it.

How do you prepare a video to fit the Threads limits?
Export the video to the API spec first, then check duration and size, because a file that meets the codec rules is easy to trim and a trimmed file with the wrong codec still fails. A working order:
- Cut the edit to 300 seconds or less. A video at exactly 5:00 passes; 5:01 does not.
- Export as MP4 with H264 or HEVC video and AAC audio in mono or stereo, with fast start turned on so the moov atom lands at the front.
- Set the frame rate between 23 and 60 FPS and the width at 1920 pixels or less. Vertical 9:16 at 1080 by 1920 fits both rules.
- Keep the file at 1 GB or less. For a full 5-minute video, that means an average bitrate of 26.7 Mbps or less.
- Host the file at a public URL that Meta can fetch without a login or cookie.
- After creating the container, poll its status once a minute until it reads
FINISHED, then publish.
Instagram publishes Reels under a different set of rules, and every limit the Instagram Reels API puts on your video lists them. A video cut for Reels does not automatically meet the Threads spec, so check both tables before cross-posting one file.
Does a scheduler change the Threads video length limit?
No scheduler changes the Threads video length limit, because Meta applies the 300-second rule to every API call, whoever makes it. AdaptlyPost publishes text, image, link and carousel posts to Threads, including carousels that mix images and video, alongside Instagram, TikTok, YouTube, X, Facebook, LinkedIn, Pinterest, Bluesky and Mastodon from one dashboard, and the Threads scheduling tool works inside Meta's limits like every other publisher. The length is set by the file you upload, so trim and export it to spec before it enters the queue. For planning when those posts go out, see how to schedule Threads posts.
Frequently asked questions
How long can a Threads video be?
A Threads video can be 5 minutes long. Meta's launch post promised "videos up to 5 minutes in length," and the Threads API states "300 seconds (5 minutes) maximum." A video at 5 minutes and 1 second fails.
Is there a minimum Threads video length?
The Threads API requires a video "longer than 0 seconds," so there is no practical minimum. A one-second clip passes the duration check. The app has no documented minimum either.
What is the maximum Threads video file size?
The Threads API accepts video files of 1 GB or less. Meta does not publish a file size limit for videos uploaded in the app. A full 5-minute video stays inside 1 GB at an average bitrate of 26.7 Mbps or less.
What does INVALID_DURATION mean on Threads?
INVALID_DURATION is one of the ten error messages a Threads media container returns with a status of ERROR, read through GET /{threads-container-id}?fields=status,error_message. Meta lists it by name without a description, and the name matches the 300-second duration rule. Trim the video to 300 seconds or less and create a new container.
Can a Threads carousel contain videos longer than 5 minutes in total?
Meta documents no combined duration cap across a Threads carousel. Each of the 2 to 20 children is a separate container that must meet the 300-second and 1 GB rules on its own. The total running time across items has no stated limit.
Which video format does Threads accept?
The Threads API accepts MOV or MP4 containers with HEVC or H264 video and AAC audio. The file needs the moov atom at the front, a frame rate of 23 to 60 FPS and a width of 1920 pixels or less. Meta recommends a 9:16 aspect ratio.
Why does the moov atom's position matter for a Threads video upload?
The Threads API requires the moov atom at the front of the MOV or MP4 file, and not every export preset places it there. Look for a "fast start" or "web optimised" option when you export. Meta's error list has no message for a misplaced moov atom, so a file that breaks this rule can fail without naming the cause.
Does Threads require vertical video?
Threads does not require vertical video. Meta recommends a 9:16 aspect ratio "to avoid cropping or blank space," but the API accepts any ratio between 0.01:1 and 10:1, so landscape and square clips still pass. Shooting upright in 9:16 fits comfortably inside that range.
How long does Threads take to process a video before you can publish it?
Meta recommends waiting an average of 30 seconds before publishing a container, then polling its status once a minute for up to 5 minutes. A container that stays unpublished for 24 hours turns EXPIRED and has to be recreated. Meta publishes no typical processing time for a video.
AdaptlyPost
Start Your 7-Day Free Trial
All-platform analytics
Social Inbox
AI-powered assistant
Can AdaptlyPost schedule Threads videos automatically?
AdaptlyPost auto-publishes scheduled Threads posts through Meta's official API, including carousels that mix images and video, alongside Instagram, TikTok, YouTube, X, Facebook, LinkedIn, Pinterest, Bluesky and Mastodon. Every post still goes through Meta's own checks, so the 300-second and 1 GB limits apply the same way they would to a manual API call. Trim and export the file to spec before it enters the queue.
Put this into practice with AdaptlyPost
Was This Article Helpful?
Let us know what you think!
See us more often in Google
One click marks AdaptlyPost as a preferred source, so our articles sit higher in your Top Stories, AI Mode, and AI Overviews.
Before you go...
AdaptlyPost
Schedule your content across all platforms
Manage all your social media accounts in one place with AdaptlyPost.
All-platform analytics
Social Inbox
AI-powered assistant
Related Glossary Terms


How the Threads API Link Limit Counts URLs in a Post
The Threads API link limit is 5 unique URLs per post. A sixth fails container creation with THREADS_API__LINK_LIMIT_EXCEEDED. Here is how Meta counts them.


How the Threads API 250 Posts Per Day Limit Works
Meta's Threads API 250 posts per day limit is a 24-hour moving window on publishes. Carousels count once, and one endpoint reports what a profile has left.


How the Threads API 500 Character Limit Treats topic_tag
The Threads API 500 character limit applies to the text field. topic_tag is a separate parameter capped at 50 characters, and Meta never says whether it counts.
Related Articles


How the Threads API Carousel Maximum Items Cap Works
Meta sets the Threads API carousel maximum items cap at 20 children and a minimum of 2. Here is the per-item container flow and what a bad carousel returns.


Three Answers to How Long Can Facebook Reels Be, by Where You Post
How long can Facebook reels be? Any length in the app since 2025, 3 to 90 seconds through the Reels API, and 30 seconds in groups, per Meta's own pages.


What the Pinterest Video Length Limit Is for Video Pins and Ads
The Pinterest video length limit is 4 seconds to 15 minutes for a video Pin, with a 2 GB file cap. Idea ads stop at 5 minutes, quiz ads at 60 seconds.

