Back to Blog
8 min read

What's the Threads Character Limit?

Threads caps a post at 500 characters, links included. Officially, emoji count as UTF-8 bytes. Through us, longer text is refused up front.

What's the Threads Character Limit?

Short answer: 500 characters. Meta’s Threads API documentation states it plainly: “Text posts are limited to 500 characters.” “Emojis are counted as the number of UTF-8 bytes.” Through Status 200 Uploads, a Threads post can have up to 500 characters, “links and hashtags included.” Longer text is refused before Threads is called, so nothing is cut without you knowing. A publish request over that cap comes back 400 api_error; nothing was sent. Sources: Threads posts (opened 13 November 2026) and Post and schedule to Threads (checked 26 October 2026).

This is not a repeat of Can You Schedule Threads Posts?. That guide is about whether you can plan a post ahead of time. This one is about the 500-character cap, how Meta counts it, and how we apply it when you post through the REST API or MCP.

Key Takeaways

Point Details
The cap is 500 characters Official Threads API: “Text posts are limited to 500 characters.” Through us: up to 500, links and hashtags included.
Official emoji rule Meta: “Emojis are counted as the number of UTF-8 bytes.” One emoji can use more than one of the 500.
Over-limit text is refused, not silently trimmed Through us, longer text is refused before Threads is called. A publish request returns 400 api_error.
Official long-form is a separate feature Meta documents a text attachment of up to 10,000 characters on a text-only post. We do not document that attachment through us; our cap is 500.
Check first with a dry run or MCP dryRun: true runs every publish check and sends nothing. Through MCP, status200_validate_post flags a text over the Threads limit before anything is sent.

What Meta documents for a Threads post

Meta’s Threads posts documentation is the official rule set for apps that publish through the Threads API. Under Limitations it says: “Text posts are limited to 500 characters.” It then says: “Emojis are counted as the number of UTF-8 bytes.” The same emoji note is repeated on the text parameter: “For the post character limit, emojis are counted as the number of UTF-8 bytes.”

That is the official API rule. A post that is heavy on emoji can hit 500 sooner than a character count in an editor suggests. We do not document a separate product-side emoji counter of our own; the official wording is what Meta publishes, and our cap through Status 200 Uploads is 500 characters.

The official API also allows a text attachment on a text-only post or reply: “up to 10,000 characters and a link.” That attachment cannot be added to a post that already has a poll or a link attachment. It is Meta’s own long-form option. Our Threads page does not list text attachments, and we do not claim them through Status 200 Uploads. Through us, the documented limit is 500 characters.

Status 200 Uploads posts through our own Meta app, so you do not register a Threads developer app or go through App Review. The next section is what our product pages say we accept and how an over-limit request is answered.

What you can send through Status 200 Uploads

Post and schedule to Threads (checked 26 October 2026) is the product page for this. You can post “a text post of up to 500 characters, text with an image or a video, or a carousel of up to 20 files,” now or at a scheduled time (up to 365 days ahead), from the REST API, Python, n8n or an AI app such as Claude. You sign in on Threads itself (OAuth). Threads is on every plan, Free included. See pricing.

At a glance on that page, and on platform file limits:

Kind Limit through us
Text Up to 500 characters, links and hashtags included. Longer text is refused before Threads is called. A post with neither text nor a file is refused.
Image One image, up to 8 MB. A larger image is refused before Threads is called.
Video One video, up to 1 GB and 5 minutes (Threads’ own limit).
Carousel 2 to 20 files in one post.

A text-only post needs no file. You can send the same idea to Threads and another network in separate API requests; each network keeps its own limit, “so keep the text within the shortest one, or give LinkedIn a longer text of its own.”

When we change or flag something, the answer (and History) names it with a code. Your original file is never changed. The code that matters for the cap is caption_over_limit: “In a dry run or a scheduled post, a caption longer than Threads allows is flagged.” For a publish request, the error table is more specific: HTTP 400, code api_error — “The text is over 500 characters, or the post has neither text nor a file. Nothing was sent to Threads.” Shorten the text and send it again. The FAQ on the same page puts it this way: “Unlike most networks, where a dry run only warns, a longer Threads text is refused with 400 api_error before Threads is called, so you can shorten it and send it again.”

Our Threads API guide restates the official 500-character cap, the UTF-8 byte rule for emoji, and the “at most 5 links” rule on the official API, then repeats the product line: “Up to 500 characters. Longer text is refused before Threads is called, so nothing is cut without you knowing.”

Check a Threads post with a dry run or MCP

The platform page documents a POST /api/v2/posts cURL for a Threads text post (platform threads and content.text). The API docs add dryRun: true: every check a publish makes is run, nothing is sent, and a check is not counted in your API key's request count (it is not counted in usage_count). An Idempotency-Key is the documented way to name one request.

This example is that documented request, with dryRun and the documented Idempotency-Key value. No authenticated request was sent to collect this package.

curl -i -X POST 'https://status200uploads.com/api/v2/posts' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer rl_your_api_key' \
  -H 'Idempotency-Key: 8e03978e-40d5-43e8-bc93-6894a57f9324' \
  -d '{"dryRun": true, "post": {"accountId": "@yourprofile", "platform": "threads", "content": {"text": "Version 2 is out today. What should we build next?"}}}'

If the text is over 500 characters, expect 400 api_error and shorten it before you publish. The same check is how an AI app should work: the Threads page documents status200_validate_post on our hosted MCP — “a text over the Threads limit is flagged before anything is sent” — then status200_schedule_post or a publish tool to send it. MCP is on paid plans from Beginner; the REST API, including this dry run, is on every plan, Free included.

FAQ

What is the Threads character limit? 500 characters. Meta’s Threads posts documentation: “Text posts are limited to 500 characters.” Through us: up to 500 characters, links and hashtags included.

Do emoji and links count toward the 500? Links and hashtags are included in the 500 through us. Officially, “Emojis are counted as the number of UTF-8 bytes,” so one emoji can use more than one of the 500. We do not document a separate product-side emoji counter.

What happens if my Threads text is longer than 500 characters? Through us it is refused before Threads is called. A publish request returns 400 api_error: “The text is over 500 characters… Nothing was sent to Threads.” Shorten it and send it again. A dry run or status200_validate_post lets you see that before anything is sent.

Can I post more than 500 characters with a text attachment? The official Threads API documents a text attachment of up to 10,000 characters on a text-only post or reply. Our product pages do not list that attachment, and we do not claim it through Status 200 Uploads. Through us, the documented cap is 500.

Can I schedule a Threads post? Yes. Schedule up to 365 days ahead, or send it now, with post.scheduledFor on the same API request. See Can You Schedule Threads Posts?.

Do I need my own Threads developer app? No. You sign in on Threads itself (OAuth). Posts go out through our Meta app, on every plan, Free included.


Sourced

  • Threads posts — Meta developer documentation: “Text posts are limited to 500 characters.” “Emojis are counted as the number of UTF-8 bytes.” The text parameter repeats the UTF-8 byte rule. Opened 13 November 2026 (Europe/Ljubljana). Wayback 20260922054641 exists; the id_ replay was not a readable quote of the 500-character line, so the live page is quoted.
  • Text attachments — Meta developer documentation: “up to 10,000 characters and a link” on a text-only post or reply; not with a poll or an existing link attachment. Opened 13 November 2026. Wayback 20260818200534 exists; live page quoted (id_ replay not a readable quote).
  • Post and schedule to Threads (checked 26 October 2026): “a text post of up to 500 characters”; “Up to 500 characters. Longer text is refused before Threads is called, so nothing is cut without you knowing.” “links and hashtags included.” 400 api_error when the text is over 500; “Unlike most networks, where a dry run only warns, a longer Threads text is refused with 400 api_error before Threads is called.” Documented cURL, Python len(text) > 500 check, MCP status200_validate_post, 8 MB / 1 GB / 5 minutes / 2–20 carousel, 365-day schedule, Threads on every plan (Free included), OAuth. Opened 13 November 2026; no Wayback snapshot returned today.
  • Threads API Guide: official 500 / UTF-8 emoji / at most 5 links, and the product line “Up to 500 characters. Longer text is refused before Threads is called.” Opened 13 November 2026; no Wayback snapshot returned today.
  • Platform file limits: Threads images 8 MB, videos 1 GB, “Up to 20 media per carousel. Videos up to 5 minutes. Text limit 500 characters.” Opened 13 November 2026. Wayback 20260715072441 exists; article uses live numbers (archive may differ).
  • API documentation: dryRun: true runs every publish check and sends nothing; “is not counted in usage_count.” Documented Idempotency-Key. Missing or not allowed network fields include “Threads text over 500 characters or more than 20 files.” Opened 13 November 2026. Wayback 20260715080314 exists; dry-run claims follow the live page (archive may differ).
  • Can You Schedule Threads Posts?: linked to distinguish scheduling from the character cap. Opened 13 November 2026.