Glossário

Por que o limite de caracteres do Threads conta emojis como bytes UTF-8

Taras Shynkarenko
Taras Shynkarenko
Atualizado: 9 min de leitura
Por que o limite de caracteres do Threads conta emojis como bytes UTF-8Por que o limite de caracteres do Threads conta emojis como bytes UTF-8

TL;DR, Resposta Rápida

9 min de leitura

As publicações de texto no Threads têm teto de 500 caracteres, e a Meta conta cada emoji pelo número de bytes UTF-8 em vez de contar como um único caractere. Uma carinha sorridente custa 4, uma mão apontando com tom de pele custa 8 e um emoji de família de quatro pessoas custa 25. É por isso que uma publicação que o seu contador marca como 475 caracteres pode ser recusada pelo Threads em 517.

Qual é o limite de caracteres do Threads?

A Meta define o limite de caracteres do Threads em 500 caracteres para publicações de texto e conta cada emoji pelo número de bytes UTF-8 em vez de contar como um único caractere. As duas regras estão na documentação da API do Threads, em Single thread posts, numa lista de dois itens que a Meta chama de Limitations. Para efeito de comparação, o Bluesky limita uma publicação a 300 grafemas e o Mastodon documenta 500 caracteres como padrão, então o número em si não tem nada de excepcional e o que diferencia o Threads é o método de contagem.

O número 500 aparece em dois lugares na documentação da Meta. A regra dos emojis aparece em apenas um deles. Quem lê a página de visão geral e para por ali leva metade da especificação.

LimiteValor documentadoPágina da Meta
Tamanho de uma publicação de texto500 caracteresPosts, Overview
Contagem de emojisNúmero de bytes UTF-8Posts
Itens de um carrosselMínimo de 2, máximo de 20Posts, Overview
Links por publicação5 ou menosPosts
Tamanho de uma tag de tópicoDe 1 a 50 caracteresPosts
Publicações publicadas250 por período móvel de 24 horasOverview
Respostas1.000 por período móvel de 24 horasOverview
Exclusões100 por período móvel de 24 horasOverview
Buscas por localização500 por período móvel de 24 horasOverview

Por que os contadores de caracteres discordam do Threads?

Os contadores discordam do Threads porque contam um emoji como um caractere e o Threads conta como vários. A frase da Meta é curta o bastante para citar por inteiro: "Emojis are counted as the number of UTF-8 bytes." A mesma nota se repete na linha do parâmetro text do endpoint POST /{threads-user-id}/threads, redigida assim: "For the post character limit, emojis are counted as the number of UTF-8 bytes."

É toda a explicação que a Meta dá, e é aí que a documentação começa a discordar de si mesma. A expressão "number of UTF-8 bytes" é um hyperlink, e ele aponta para o pacote npm grapheme-splitter. Um divisor de grafemas agrupa pontos de código naquilo que o leitor enxerga como um caractere só. Não tem nada a ver com tamanho em bytes. Ou seja, a documentação manda contar bytes e depois aponta para uma ferramenta que conta a unidade oposta, sem nenhuma frase ligando as duas.

A conciliação fica por sua conta. Divida a string em grafemas primeiro, que é o que o pacote linkado faz, e depois cobre de cada grafema de emoji o seu tamanho em bytes UTF-8 em vez de 1. A Meta nunca soletra isso. Todo contador que pula a segunda metade informa um número baixo demais, e todo contador que aplica a regra de bytes à string inteira informa um número alto demais para texto acentuado ou não latino.

Uma pessoa digitando no celular enquanto escolhe emojis para uma publicação.

Quantos caracteres um emoji custa no Threads?

Um emoji custa entre 3 e 25 caracteres do limite de caracteres do Threads, dependendo de quantos pontos de código o compõem. Emojis fora do Basic Multilingual Plane ocupam 4 bytes cada. O seletor de variação U+FE0F, que transforma um símbolo em emoji colorido, ocupa 3. O zero width joiner U+200D, que solda as partes, ocupa 3. Modificadores de tom de pele ocupam 4.

EmojiPontos de códigoOs contadores dizemO Threads conta
U+272813
U+270513
😀U+1F60014
🔥U+1F52514
❤️U+2764 U+FE0F16
👉🏽U+1F449 U+1F3FD18
🏳️‍🌈U+1F3F3 U+FE0F U+200D U+1F308114
👩‍👩‍👧‍👦U+1F469 U+200D U+1F469 U+200D U+1F467 U+200D U+1F466125

O emoji de família é o que estraga o calendário. Ele se lê como um glifo único, fica no mesmo teclado de emojis que os outros e come 5 por cento da publicação sozinho. Uma bandeira do arco-íris custa mais do que uma palavra de catorze letras.

Uma publicação que passa no seu contador e falha no Threads

Pegue 470 caracteres de texto simples e feche com cinco emojis: 🎉 ❤️ 👉🏽 🧵 👩‍👩‍👧‍👦. Um contador de grafemas informa 475, folgadamente dentro do teto, então a publicação parece segura.

TrechoContadorThreads
Corpo do texto470470
🎉 U+1F38914
❤️ U+2764 U+FE0F16
👉🏽 U+1F449 U+1F3FD18
🧵 U+1F9F514
👩‍👩‍👧‍👦125
Total475517

O Threads vê 517 e recusa a publicação. A diferença é de 42, e 21 vêm de um único emoji. Troque a família de quatro pessoas por 👪 U+1F46A, que é um ponto de código e 4 bytes, e a mesma publicação cai para 496 e é publicada. Nada mudou na redação.

É também por isso que três contadores diferentes dão três respostas diferentes para a mesma string. O String.prototype.length do JavaScript informa 491 para essa publicação, porque conta unidades de código UTF-16. Array.from(post).length informa 483, porque conta pontos de código. Um divisor de grafemas informa 475. O Threads quer 517, e nenhum dos três métodos nativos produz esse número.

Um programador lê código em um monitor, o tipo de lógica de contagem que uma checagem de tamanho exige.

Como contar uma publicação do Threads do jeito que o Threads conta?

Conte uma publicação do Threads dividindo o texto em grafemas, cobrando 1 por grafema comum e o tamanho em bytes UTF-8 por grafema de emoji. O Intl.Segmenter cuida da divisão no navegador e no Node sem nenhuma dependência.

const segmenter = new Intl.Segmenter('en', { granularity: 'grapheme' });
const encoder = new TextEncoder();
const EMOJI = /\p{Extended_Pictographic}/u;
 
function threadsLength(text) {
  let total = 0;
  for (const { segment } of segmenter.segment(text)) {
    total += EMOJI.test(segment) ? encoder.encode(segment).length : 1;
  }
  return total;
}
 
threadsLength(post); // 517

Não recorra a Buffer.byteLength(text, 'utf8') como atalho. Por acaso ele devolve 517 no exemplo acima, mas só porque o corpo do texto é ASCII puro. Rode sobre "café" e ele devolve 5 onde o leitor conta 4. Rode sobre texto em japonês e ele triplica a contagem, porque cada kana tem 3 bytes. A Meta enuncia a regra de bytes para emojis e para mais nada.

O que expõe a lacuna que a Meta não preencheu. A documentação nunca define o que é um caractere para as outras 500 vagas. Não há frase alguma dizendo se "こんにちは" conta como 5 ou como 15, se um acento combinante conta como 1 ou como 2, ou se um caractere não ASCII comum é medido em pontos de código, grafemas ou bytes. Se você publica num idioma que não é ASCII, a única posição honesta é que o limite fica sem documentação nas bordas, então deixe folga em vez de mirar exatamente 500.

AdaptlyPost
AdaptlyPost

Teste grátis de 7 dias

Análises multiplataforma

Caixa Social

Assistente com IA

Quatro formas de contar a mesma publicação
String.prototype.length491
Array.from(post).length483
Divisor de grafemas475
Contagem do Threads517
Comprimento da string, pontos de código, grafemas e a contagem própria do Threads para a mesma publicação de exemplo.

O que mais rejeita uma publicação do Threads além do tamanho?

Os links rejeitam uma publicação antes do tamanho. O Threads restringe uma publicação a 5 links ou menos, e desde 22 de dezembro de 2025 uma publicação que leve mais falha já na criação do contêiner de mídia, POST /{threads-user-id}/threads, com o código de erro THREADS_API__LINK_LIMIT_EXCEEDED. A Meta conta URLs únicas, então um link_attachment que repete uma URL já presente em text conta uma vez, enquanto um link_attachment apontando para um destino novo soma um ao total.

As tags de tópico têm regra própria. Uma tag precisa ter de 1 a 50 caracteres, não pode conter ponto nem e comercial, e só a primeira tag válida da publicação é usada. Tags escritas dentro do texto também terminam em espaços, arrobas, pontos de exclamação, pontos de interrogação, vírgulas, ponto e vírgula e dois-pontos, o que faz uma tag escrita no meio da frase acabar antes do que o autor pretendia.

Carrosséis têm teto de 20 itens com mínimo de 2, e a Meta é explícita: "Publishing a carousel counts as a single post." A referência é a cota de 250 publicações. Você lê a sua cota restante em GET /{threads-user-id}/threads_publishing_limit, que devolve quota_usage junto de um objeto config com quota_total de 250 e quota_duration de 86400 segundos.

O que a Meta não publica é um erro nomeado para quem passa de 500. Existe um código documentado para links demais e nenhum para texto demais. Como você não tem uma string de erro específica para capturar, a checagem precisa acontecer no seu próprio código antes de a requisição sair.

Onde o adaptlypost entra

O adaptlypost publica no Threads pela API, então a mesma regra de 500 caracteres e a mesma aritmética de emojis valem para uma publicação agendada e para uma digitada na hora. Os limites da plataforma pertencem ao Threads. O que uma ferramenta de agendamento muda é quando você fica sabendo deles, porque um rascunho criado num calendário de conteúdo é conferido muito antes do horário de envio, e não no momento em que falha.

O problema da contagem fica mais sério quando um mesmo rascunho vai para várias redes ao mesmo tempo, que é o caso normal na publicação multiplataforma. O mesmo emoji custa um valor diferente em cada rede, então uma legenda ajustada para uma não é automaticamente segura em outra. Se você escreve legendas com o gerador de legendas com IA, trate emoji como orçamento e não como enfeite, e mantenha o arremate final curto. Para o agendamento em si, veja a ferramenta de agendamento do Threads, e para o que essas publicações renderam depois, análises do Threads.

Perguntas frequentes

O limite de caracteres do Threads é de 500 caracteres?

Sim. A Meta documenta o limite de caracteres do Threads como 500 caracteres para publicações de texto, informado na lista Limitations da página Threads Posts e repetido na lista Other Limitations da página Threads Overview. O número não mudou na documentação desde a atualização de 14 de abril de 2026.

Por que minha publicação do Threads é recusada se o contador diz que estou abaixo de 500?

O seu contador cobra 1 por emoji e o Threads cobra o tamanho em bytes UTF-8 do emoji. Cinco emojis podem somar 40 ou mais à contagem real, então uma publicação que um contador marca como 475 caracteres pode chegar a 517 no Threads. Emojis compostos, montados com zero width joiners, são os piores, com até 25 cada.

Quantos caracteres um emoji usa no Threads?

Entre 3 e 25. Um símbolo como ✨ custa 3, um emoji padrão como 😀 custa 4, um coração com seletor de variação custa 6, uma mão com tom de pele custa 8, e o emoji de família de quatro pessoas 👩‍👩‍👧‍👦 custa 25. O custo é a soma dos tamanhos em bytes UTF-8 de cada ponto de código do emoji.

O limite de caracteres do Threads vale para respostas e legendas de carrossel?

A Meta documenta o limite de 500 caracteres para publicações de texto e aplica a regra de bytes de emoji ao parâmetro text tanto em publicações simples quanto em contêineres de carrossel. Respostas têm cota separada de 1.000 por período móvel de 24 horas, que é uma contagem de respostas e não um limite de tamanho.

Que erro o Threads retorna quando uma publicação é longa demais?

A Meta não publica um código de erro para quem passa de 500 caracteres. O único erro de publicação documentado desse tipo é THREADS_API__LINK_LIMIT_EXCEEDED, retornado por POST /{threads-user-id}/threads quando uma publicação leva mais de 5 links. Valide o tamanho no seu próprio código antes de chamar o endpoint.

Quantas publicações um perfil do Threads pode publicar por dia?

  1. A Meta limita um perfil a 250 publicações publicadas via API dentro de um período móvel de 24 horas, e um carrossel de até 20 imagens ou vídeos conta como uma publicação nesse total. Consulte GET /{threads-user-id}/threads_publishing_limit para ler quota_usage contra um quota_total de 250.

Como posso verificar minha cota restante de publicações no Threads antes de publicar?

Chame GET /{threads-user-id}/threads_publishing_limit e leia quota_usage em relação ao objeto config retornado. A Meta define ali um quota_total de 250 e um quota_duration de 86400 segundos, o que corresponde à janela móvel de 24 horas para publicações. Consultar esse endpoint antes de enviar um lote de publicações mostra quanto da cota do dia já foi usado.

A publicação falha já na etapa de criação do contêiner de mídia, POST /{threads-user-id}/threads, com o código de erro THREADS_API__LINK_LIMIT_EXCEEDED. Essa regra vale desde 22 de dezembro de 2025, e a Meta conta URLs únicas em vez de cada menção de link, então um link_attachment que repete uma URL já presente no texto conta apenas uma vez. Não existe um erro equivalente e específico para ultrapassar o limite de 500 caracteres.

Qual o tamanho máximo de uma tag de tópico no Threads?

Uma tag de tópico do Threads deve ter de 1 a 50 caracteres e não pode conter ponto nem comercial (&). Apenas a primeira tag válida de uma publicação é usada, e uma tag escrita no meio do texto termina antes do esperado ao encontrar um espaço, um arroba ou uma pontuação como ponto de exclamação, vírgula ou dois-pontos.

Quantas imagens ou vídeos um carrossel do Threads pode ter?

Um carrossel do Threads precisa de pelo menos 2 itens e permite no máximo 20. A Meta conta o carrossel inteiro como uma única publicação em relação à cota diária de 250, independentemente de quantos itens ele tenha.

AdaptlyPost
AdaptlyPost

Teste grátis de 7 dias

Análises multiplataforma

Caixa Social

Assistente com IA

Este artigo foi útil para você?

Conte-nos o que você achou!

Veja-nos mais no Google

Um clique marca a AdaptlyPost como fonte preferida e nossos artigos passam a aparecer mais acima nas suas Principais notícias, no modo IA e nas visões gerais com IA.

Antes de ir...

AdaptlyPost

AdaptlyPost

Agende seu conteúdo em todas as plataformas

Gerencie todas as suas contas de redes sociais em um só lugar com o AdaptlyPost.

Análises multiplataforma

Caixa Social

Assistente com IA

Termos relacionados do glossário

Artigos Relacionados