TL;DR, Quick Answer
6 min readMeta restricts Threads posts to 5 links or fewer. Starting December 22, 2025, a post with more than 5 fails at the media creation step, POST /{threads-user-id}/threads, with the error code THREADS_API__LINK_LIMIT_EXCEEDED. Meta counts unique URLs: a URL repeated in text counts once, and a link_attachment that matches a URL in text is "only counted once, rather than twice." Meta does not say whether URLs inside a text attachment's plaintext count, or how it treats http and https versions of the same address.
What is the Threads API link limit?
Meta's Threads API link limit allows 5 unique URLs per post, and since December 22, 2025 a media container with a sixth fails at creation with the error code THREADS_API__LINK_LIMIT_EXCEEDED. The rule sits under Links in Meta's Threads posts guide as a one-line bullet, "The number of links is restricted to 5 or less," followed by a warning box:
Starting December 22, 2025, Threads posts containing more than 5 links will fail to post during the media creation step (
POST /{threads-user-id}/threads) with the error code:THREADS_API__LINK_LIMIT_EXCEEDED.
The Threads changelog announced the change on December 8, 2025 and logged it again on December 22, 2025 with the same sentence: "Threads posts with more than 5 links will fail to post with the error THREADS_API__LINK_LIMIT_EXCEEDED."
This is the only post limit in the Threads documentation with its own error string. The 500 character cap on text has none, as covered in how the Threads API 500 character limit treats topic tags.
How does Meta count links in a Threads post?
Meta counts unique URLs across the text field and the link_attachment parameter together. The posts guide gives three rules:
- "All unique URLs found in the text field are counted as links."
- "If the
link_attachmentfield contains a URL that is different from all URLs in the text field, it is counted as an additional link." - "If the
link_attachmentURL is the same as any URL in the text field, it is only counted once, rather than twice."
Meta then works three examples, reproduced here as written:
In text | In link_attachment | Meta's count |
|---|---|---|
| www.facebook.com | www.facebook.com | 1 link |
| www.instagram.com, www.threads.com | www.facebook.com | 3 links |
| www.example.com, www.example.com, www.test.com | www.test.com | 2 links |
The third row is the useful one. Four URL mentions produce a count of 2, because repeats collapse and the attachment matches a URL already in the text. The inverse is what catches people: six different URLs in a list of "resources" fail even when the post reads as short.
What does Meta treat as a URL?
Meta's examples use bare domains such as www.facebook.com, with no https:// in front. So the counter does not wait for a scheme before it counts something as a link, and a domain typed in plain prose adds to the total.
Beyond that, Meta is silent. The posts guide does not say whether http://example.com and https://example.com are one URL or two, whether a trailing slash or a query string makes a new URL, or whether a domain without www matches one with it. The examples only ever repeat a URL character for character. Until Meta documents normalisation, count any two strings that differ as two links, and write the same URL identically everywhere it appears in a post.
- Bare domains such as www.facebook.com count as links
- A URL repeated character for character counts once
- A link_attachment matching a URL in text counts once
- http versus https versions of one address
- A trailing slash or a query string
- A domain with www versus without

Where in the publishing flow does the error appear?
At container creation, which is step one. Threads publishing takes two calls: POST /{threads-user-id}/threads creates a media container, and POST /{threads-user-id}/threads_publish turns it into a live post. Meta names the first call as the point of failure.
That placement has two consequences. The post never reaches the publish step, so it never touches the 250-post publishing quota, which Meta enforces on threads_publish. The mechanics of that quota are in the Threads API 250 posts per day limit. And no container ID comes back, so there is nothing to poll. The troubleshooting page's container status values, such as EXPIRED and ERROR, apply only to containers that exist, and its list of error messages covers video and audio processing only.
Meta documents the error as a code string. It does not document the HTTP status or a numeric error code that accompanies it, so match on THREADS_API__LINK_LIMIT_EXCEEDED in the response rather than on a number.
Does the limit apply to image, video and carousel posts?
Meta's wording leaves this open. The Limitations list under Links opens with "This feature is only available for text-only posts. It will not work with image, video, or carousel posts," and the 5-link bullet is the next line in the same list. The first bullet describes link_attachment, which the parameter table also restricts: "Can only be used for media_type=TEXT posts."
The warning box itself says "Threads posts containing more than 5 links," with no media type attached, and an image or video post can still carry URLs in its text. Meta gives no example for that case. The safe reading is that 5 unique URLs is the ceiling for any post type, since nothing in the docs says a caption on an image post is exempt.
AdaptlyPost
Start Your 7-Day Free Trial
All-platform analytics
Social Inbox
AI-powered assistant
How do text attachments change the count?
Text attachments bring their own copy of the rule. The Text Attachments page, which covers long-form writing "with up to 10,000 characters and a link," repeats the 5-link bullet, the December 22, 2025 warning and the same three examples, with link_attachment_url inside the text_attachment object taking the place of link_attachment.
It adds one restriction: "If there is already a link attachment in the main post, a link attachment cannot be added in the text attachment." So a post has one attachment link at most, in one place or the other.
The gap is the plaintext field. It can hold up to 10,000 characters, and Meta's counting rules name only URLs "found in the text field" and the attachment URL. They never mention URLs written inside plaintext. Meta does not say those are exempt, and it does not say they count. Keep the unique total across text, plaintext and the attachment at 5 or fewer and the question never comes up.

How do you fix THREADS_API__LINK_LIMIT_EXCEEDED?
Meta's own instruction is one line: "If you receive this error, reduce the number of unique links in your post to 5 or less." In practice that means counting before you call the API:
- Extract every URL and bare domain from
text, pluslink_attachmentortext_attachment.link_attachment_url. - Collapse exact duplicates.
- If more than 5 remain, drop links or move them into a reply, which is created as a separate post through the same endpoint with
reply_to_idand so carries its own count.
A scheduler should run that check when a post is written, not when it fires, because a failure at 03:00 is a missed slot. The same goes for the character count and the daily quota. For keeping a queue clean, see how to schedule Threads posts. The limit belongs to Threads, so every Threads scheduling tool works inside the same 5.
Frequently asked questions
What does THREADS_API__LINK_LIMIT_EXCEEDED mean?
It means the post contained more than 5 unique links. Since December 22, 2025, Meta rejects such posts during the media creation step, POST /{threads-user-id}/threads, and returns this error code instead of a container ID.
Does the same link twice count as two links?
No. Meta counts "All unique URLs found in the text field," so a URL repeated in text counts once. A link_attachment that matches a URL already in text "is only counted once, rather than twice."
Does link_attachment count toward the 5-link limit?
Only when it adds a new URL. Meta states that a link_attachment different from every URL in text "is counted as an additional link," while one that matches a URL in text adds nothing to the count.
When did Threads start enforcing the link limit?
On December 22, 2025. Meta announced it in the Threads changelog on December 8, 2025, and the warning in the posts guide begins "Starting December 22, 2025."
Does a failed link-limit post use up the 250-post daily quota?
Meta enforces the 250-post limit on POST /{threads-user-id}/threads_publish, and the link-limit error arrives earlier, at container creation. A post rejected for too many links never reaches the publish call.
Can I share more than 5 links in a Threads thread?
Meta counts links per post. A reply is a separate post, created through the same container endpoint with reply_to_id, so spreading links across a post and its replies keeps each one under the limit. Meta documents no combined cap across a thread.
How many links can a Threads post have?
A Threads post can have 5 unique URLs. Meta's posts guide says "The number of links is restricted to 5 or less," and a sixth link fails at container creation with THREADS_API__LINK_LIMIT_EXCEEDED. A URL repeated in the post counts once.
Does a domain without https:// count as a link?
Meta's examples use bare domains such as www.facebook.com and count them as links. So the counter does not wait for a scheme. A domain typed in plain prose adds to the total.
Are http and https versions of the same URL one link or two?
Meta does not say. The posts guide only repeats URLs character for character, so treat two strings that differ as two links. Write the same URL identically everywhere it appears.
AdaptlyPost
Start Your 7-Day Free Trial
All-platform analytics
Social Inbox
AI-powered assistant
Do URLs in a text attachment's plaintext count toward the limit?
Meta does not say. Its counting rules name URLs in the text field and the attachment URL, and never mention plaintext. Keep the unique total across text, plaintext and the attachment at 5 or fewer.
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 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.


What the Threads Video Length Limit Is in the App and the API
The Threads video length limit is 5 minutes in the app and 300 seconds in the API, with a 1 GB file cap. Here is how Meta checks each video.


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.


What the LinkedIn Post Limit per Day Really Is, and Where It Comes From
The LinkedIn post limit per day has no public number. The API counts requests: 150 a day per member on Share on LinkedIn, reset at midnight UTC.


Picking the Best Threads Image Size for Posts and Carousels
The Threads image size rules from Meta: JPEG or PNG, 8 MB per file, 320 to 1440 pixels wide, a 10:1 aspect ratio limit and 2 to 20 carousel items.

