Threads link limit: 5 unique URLs per post, checked before publish
Threads allows 5 unique URLs per post and returns THREADS_API__LINK_LIMIT_EXCEEDED past that. Count unique links in the caption before posting a Sume clip.

A Threads post may contain at most 5 unique URLs. Since 22 December 2025, going over returns the error THREADS_API__LINK_LIMIT_EXCEEDED, so count unique links in the caption before you publish.
Sume only produces the video. The caption and its links stay in your Threads API call, which makes the check a few lines in your own pipeline.
What exactly is limited?
The limit counts unique URLs, not link occurrences. Repeating one URL does not use a second slot.
| Item | Value |
|---|---|
| Maximum unique URLs per post | 5 |
| Error past the limit | THREADS_API__LINK_LIMIT_EXCEEDED |
| Enforced since | 22 December 2025 |
How do I count unique URLs?
The sample uses a simple regex and a set. A real caption may need a stricter URL parser, so treat this as a pre-flight guard, not a guarantee.
import re
def unique_links(caption):
return set(re.findall(r"https?://[^\s]+", caption))
caption = "Demo https://a.example/x and https://a.example/x plus https://b.example"
links = unique_links(caption)
print(len(links), "unique", "OK" if len(links) <= 5 else "TOO MANY")What should a Sume pipeline do on a failure?
Do not re-render. A link error is a caption problem, and the finished MP4 is already a durable media.sume.com URL, which the Sume docs say does not expire. Fix the caption and publish again with the same video_url.
That keeps the render cost at one trim or timeline job instead of one per attempt.
Sources
Related posts
More in Integrations
- Threads topic tag: 1 to 50 characters, no periods or ampersands
Meta's Threads API accepts a topic tag of 1 to 50 characters and rejects periods and ampersands. Validate the tag in code before you publish a Sume clip.
- TikTok import get_transcript: TikTok only, plan the Instagram fallback
get_transcript on media-imports is TikTok only; Instagram imports return no transcript. Fallback: video_inspect transcribe at $0.01 a minute.
- TruGen and Avatario avatar IDs in LiveKit vs a Sume avatar handle
In LiveKit, TruGen and Avatario pick a face with an avatar_id. Sume uses a stable avatar_handle you create yourself. Here is how they differ.
- Truth Social 15-minute video limit and Sume's 900-second trim cap
Truth Social accepts videos up to 15 minutes and 450 MB. Sume video trim outputs top out at 900 seconds, so one trim job fits. How to cut a longer source.
Written by Sume