FerrymanFerryman
← All articles

Troubleshooting

Threads rejected a post with several links: how to count unique URLs

Fix THREADS_API__LINK_LIMIT_EXCEEDED by counting unique URLs the way Threads documents it, including a separate link attachment, then trim the post to five.

By Ferryman··4 min read

What the error means

Meta's Threads API documentation says the number of links in a post is restricted to 5 or fewer, and that a post containing more than 5 links fails during the media creation step with the error THREADS_API__LINK_LIMIT_EXCEEDED. In other words, the post was refused before anything became public. Nothing needs to be deleted from Threads, and the fix is in the post's content rather than in your account connection or permissions.

The limit is about links, not length. Threads also documents a 500-character limit for text posts, and a short post can still fail if it lists six different addresses. When a link-heavy post fails on Threads but publishes on other networks, check the link count before you investigate tokens, media, or timing. The documentation was checked on October 19, 2026; platform limits change, so confirm the current page before relying on the exact number.

How Threads counts links

The rule has three parts. Every unique URL found in the text field counts as a link. A URL in the separate link_attachment field counts as one more link only when it differs from every URL in the text. If the attachment repeats a URL that already appears in the text, it is counted once, not twice. Repeating the same address several times in the text also counts once.

The first three rows below are Meta's own examples. They show that addresses written without https://, such as www.facebook.com, are still treated as links, so plain domains in a list are not a way around the limit. Meta also notes that link attachments are available only for text-only posts, not for image, video, or carousel posts.

Text field containsLink attachmentLinks counted
www.facebook.comwww.facebook.com1 (same URL, counted once)
www.instagram.com and www.threads.comwww.facebook.com3 (the attachment is a different URL)
www.example.com twice and www.test.comwww.test.com2 (each unique URL once)
Six different article URLsNone6, over the limit: the post is rejected

Worked example: trimming a resource roundup

This is an illustrative example, not a customer post. A creator writes a weekly roundup: one sentence each about six articles, every sentence ending in its link, plus a link to their own newsletter. That is seven unique URLs, so Threads rejects it even though the text fits well under 500 characters. Shortening the sentences does not help, because the count is unchanged.

There are three honest ways to fix it. Keep the five links readers most need and name the other sources in plain text. Replace several links with one link to a page that collects them, such as the newsletter issue itself, which turns seven links into two or three. Or split the roundup into a short thread where each post stays within the limit; replies are separate posts, so check each one on its own rather than assuming the count carries over. Whatever you choose, keep the most important link in the first post, since some readers never open the replies.

  1. Copy the exact text you tried to publish, including any link attachment.
  2. List every URL, including bare domains such as www.example.com, and remove exact duplicates.
  3. Add the link attachment only if it differs from every URL already in the text.
  4. If the total is above 5, cut, combine, or move links into replies until each post has 5 or fewer.
  5. Publish again and open the live post to confirm the remaining links point where you expect.

Treat near-duplicates as separate links

Meta's examples show identical URLs collapsing into one. They do not say that slightly different versions of the same page are merged. The same article with and without a tracking parameter, with a trailing slash, or on http and https may be counted as different links. If a post sits near the limit, use one exact form of each URL so the count you make by hand matches what Threads sees.

This matters most for tagged links. If you add campaign parameters for measurement, give each destination a single tagged version of the address instead of mixing a tagged and an untagged copy in one post. That keeps the link count predictable and your referral reports cleaner at the same time.

When Threads is one of several destinations

Other networks have their own rules, so a post that publishes on X, Bluesky, or LinkedIn can still fail on Threads because of its links alone. If you write once and publish to several places, count links against the strictest destination before you schedule, or prepare a shorter Threads version of the post. Ferryman does not count Threads links for you before sending, so check link-heavy posts yourself.

If Threads has already rejected a post that went out elsewhere, do not resend the whole post to every destination. Fix the Threads version and publish only the destination that failed, so you do not create duplicates on the networks that accepted it. The recovery checklist linked below walks through that process step by step.

Sources & further reading

Written by Ferryman. Sources checked Oct 19, 2026. Platform rules can change; consult the linked documentation for current requirements.