{"id":144,"date":"2026-09-08T19:20:43","date_gmt":"2026-09-08T22:20:43","guid":{"rendered":"https:\/\/postping.com.br\/blog\/api-instagram-publicar-limites\/"},"modified":"2026-09-08T19:20:43","modified_gmt":"2026-09-08T22:20:43","slug":"api-instagram-publicar-limites","status":"publish","type":"post","link":"https:\/\/postping.com.br\/blog\/api-instagram-publicar-limites\/","title":{"rendered":"API do Instagram aceita 100 posts por dia e recusa filtros"},"content":{"rendered":"<p>Cem publica\u00e7\u00f5es em 24 horas. Esse \u00e9 o teto que a documenta\u00e7\u00e3o de publica\u00e7\u00e3o da Meta imp\u00f5e hoje a uma conta do Instagram, e \u00e9 o n\u00famero mais generoso de todo o conjunto de regras que ela descreve. O resto da lista \u00e9 restri\u00e7\u00e3o, e \u00e9 nesse resto que est\u00e1 a resposta para o que a API do Instagram deixa automatizar: ela automatiza um ato s\u00f3, o de publicar. Escolher o que vai no post, montar a arte no formato aceito, escrever a legenda e decidir a hora continuam do seu lado da linha. A fronteira entre os dois lados obedece a uma decis\u00e3o de produto da Meta, n\u00e3o a um limite t\u00e9cnico, e ela se moveu quatro vezes nos \u00faltimos nove meses.<\/p>\n<h2>Cinco tipos de m\u00eddia e nada fora dessa lista<\/h2>\n<p>A cria\u00e7\u00e3o de m\u00eddia aceita cinco valores em <code>media_type<\/code>: <code>IMAGE<\/code>, <code>VIDEO<\/code>, <code>REELS<\/code>, <code>STORIES<\/code> e <code>CAROUSEL<\/code>. Os tr\u00eas primeiros e o story recebem a m\u00eddia por <code>image_url<\/code> ou <code>video_url<\/code>; o carrossel recebe uma lista de containers j\u00e1 criados no par\u00e2metro <code>children<\/code>, limitada a dez itens entre imagens, v\u00eddeos ou uma mistura dos dois.<\/p>\n<p>O carrossel tem uma particularidade que vale para quem publica muito: ele conta como uma publica\u00e7\u00e3o s\u00f3 no teto di\u00e1rio. Dez imagens em um carrossel gastam a mesma cota que uma foto avulsa. Tem tamb\u00e9m uma regra de enquadramento que costuma pegar quem monta arte fora do padr\u00e3o: a propor\u00e7\u00e3o considerada \u00e9 a da primeira imagem, e as demais s\u00e3o cortadas com base nela. Um carrossel com a primeira arte em quadrado e a segunda em retrato sai com a segunda cortada, e n\u00e3o h\u00e1 par\u00e2metro na chamada para pedir outra coisa.<\/p>\n<p>Antes de qualquer um desses cinco tipos existir para voc\u00ea, a conta precisa ser profissional do Instagram e o aplicativo precisa carregar as permiss\u00f5es de publica\u00e7\u00e3o. Com o login do Instagram s\u00e3o <code>instagram_business_basic<\/code> e <code>instagram_business_content_publish<\/code>. Conta pessoal n\u00e3o entra nessa API por nenhum caminho.<\/p>\n<h2>A imagem precisa morar num endere\u00e7o p\u00fablico e ser JPEG<\/h2>\n<p>Voc\u00ea n\u00e3o envia o arquivo. Voc\u00ea envia uma URL, e os servidores da Meta v\u00e3o buscar a imagem nesse endere\u00e7o. Isso muda o desenho de qualquer automa\u00e7\u00e3o feita a partir de um site: a arte precisa estar acess\u00edvel de fora, sem login, sem prote\u00e7\u00e3o de hotlink, sem estar num ambiente de homologa\u00e7\u00e3o atr\u00e1s de autentica\u00e7\u00e3o b\u00e1sica.<\/p>\n<p>O formato aceito \u00e9 JPEG, e s\u00f3. Formatos estendidos como MPO e JPS ficam de fora. Etiqueta de compras e filtros n\u00e3o s\u00e3o suportados. S\u00e3o quatro linhas curtas na se\u00e7\u00e3o de limita\u00e7\u00f5es da documenta\u00e7\u00e3o, e cada uma delas j\u00e1 derrubou o fluxo de algu\u00e9m que tinha certeza de que o problema estava no token.<\/p>\n<p>A falha aparece assim na pr\u00e1tica. Em mar\u00e7o de 2026, usu\u00e1rios do Mixpost registraram na <a href=\"https:\/\/github.com\/inovector\/mixpost\/issues\/197\">issue 197 do projeto<\/a> que a publica\u00e7\u00e3o no Instagram parou de funcionar enquanto Facebook e Bluesky continuavam recebendo o mesmo arquivo. A resposta da Meta vinha assim: c\u00f3digo <code>9004<\/code>, subc\u00f3digo <code>2207052<\/code>, mensagem <code>Only photo or video can be accepted as media type<\/code>, e um <code>error_user_msg<\/code> dizendo que a m\u00eddia n\u00e3o p\u00f4de ser buscada a partir da URI. O campo depois de <code>URI:<\/code> estava vazio. O erro fala em tipo de m\u00eddia, o problema era o endere\u00e7o da imagem. Quem l\u00ea o c\u00f3digo sem ler a mensagem de usu\u00e1rio passa horas mexendo no lugar errado.<\/p>\n<h2>O container expira em 24 horas, e por isso agendar continua sendo problema seu<\/h2>\n<p>Publicar s\u00e3o dois pedidos. O primeiro cria o container e devolve um identificador; o segundo manda publicar aquele identificador. Entre os dois, a Meta processa a m\u00eddia, e a documenta\u00e7\u00e3o recomenda consultar o estado do container uma vez por minuto, por no m\u00e1ximo cinco minutos. O campo de estado responde <code>IN_PROGRESS<\/code>, <code>FINISHED<\/code>, <code>ERROR<\/code>, <code>EXPIRED<\/code> ou <code>PUBLISHED<\/code>.<\/p>\n<p>O que n\u00e3o existe em lugar nenhum dessa sequ\u00eancia \u00e9 um par\u00e2metro de hor\u00e1rio. N\u00e3o h\u00e1 como criar um container hoje pedindo que ele apare\u00e7a no feed na ter\u00e7a \u00e0s nove. O container \u00e9 uma sala de espera com prazo: se n\u00e3o for publicado em 24 horas, ele expira e vira <code>EXPIRED<\/code>. Qualquer agendamento acontece do lado de fora, na sua fila, no seu cron, no seu WordPress, e o que chega na Meta \u00e9 sempre um pedido para publicar agora.<\/p>\n<p>Quem monta a esteira precisa manter em casa um rel\u00f3gio, um registro do que j\u00e1 foi enviado e uma decis\u00e3o sobre o que fazer quando o container volta com <code>ERROR<\/code>. Republicar por reflexo, sem checar se a primeira tentativa passou, \u00e9 o caminho mais r\u00e1pido para dois posts iguais no feed.<\/p>\n<h2>Publicado \u00e9 publicado, e o que d\u00e1 para mudar depois \u00e9 quase nada<\/h2>\n<p>No objeto de m\u00eddia do Instagram, a refer\u00eancia lista uma d\u00fazia de campos leg\u00edveis, incluindo <code>caption<\/code>, <code>permalink<\/code>, <code>alt_text<\/code> e <code>media_type<\/code>. Na se\u00e7\u00e3o de atualiza\u00e7\u00e3o h\u00e1 um par\u00e2metro. Um. O <code>comment_enabled<\/code>, que liga e desliga coment\u00e1rios.<\/p>\n<p>A legenda n\u00e3o se edita pela API. O erro de digita\u00e7\u00e3o que saiu \u00e0s sete da manh\u00e3 continua l\u00e1 \u00e0s sete da noite, e o \u00fanico caminho para corrigir \u00e9 abrir o aplicativo na m\u00e3o ou apagar o post. Apagar, ali\u00e1s, \u00e9 recurso novo: a API de exclus\u00e3o de m\u00eddia entrou no changelog em 3 de dezembro de 2025, cobrindo posts que n\u00e3o sejam an\u00fancios, stories, reels e \u00e1lbuns de carrossel inteiros. Antes disso nem isso existia. E apagar para republicar corrigido custa os coment\u00e1rios, as curtidas e o permalink que voc\u00ea j\u00e1 espalhou.<\/p>\n<p>Toda a qualidade do post, ent\u00e3o, precisa estar resolvida antes do primeiro pedido, e isso muda o peso de onde vem a legenda. No Post Ping, ela \u00e9 escrita por IA a partir do texto do pr\u00f3prio artigo, no tom de voz configurado para o site, e existe a op\u00e7\u00e3o de aprova\u00e7\u00e3o pr\u00e9via por e-mail antes de qualquer coisa sair. Essa \u00e9 a \u00fanica janela de corre\u00e7\u00e3o que a API deixa aberta, e ela fecha no instante em que o container \u00e9 publicado.<\/p>\n<h2>Cem publica\u00e7\u00f5es por dia \u00e9 um teto em que quase ningu\u00e9m encosta<\/h2>\n<p>A cota \u00e9 de cem publica\u00e7\u00f5es por conta em uma janela m\u00f3vel de 24 horas, e existe um endpoint para consultar o quanto dela j\u00e1 foi gasto: <code>GET \/IG_ID\/content_publishing_limit<\/code>. Janela m\u00f3vel significa que n\u00e3o h\u00e1 zeramento \u00e0 meia-noite. A cota devolve o que foi usado conforme cada publica\u00e7\u00e3o completa 24 horas de idade.<\/p>\n<p>Para um blog que publica um ou dois artigos por dia, esse n\u00famero \u00e9 irrelevante e vai continuar sendo. Ele vira assunto em dois cen\u00e1rios. O primeiro \u00e9 a ag\u00eancia que assume uma carteira e resolve levar o acervo antigo para o feed de um cliente de uma vez; a partir do cent\u00e9simo pedido, os seguintes s\u00e3o recusados at\u00e9 a janela andar. O segundo \u00e9 o teste malfeito: um la\u00e7o que republica em erro consome cota real, e a cota \u00e9 da conta do cliente, n\u00e3o da sua.<\/p>\n<p>O teto que realmente aparece no dia a dia \u00e9 outro, e n\u00e3o est\u00e1 na cota. \u00c9 o acesso: token vencido, permiss\u00e3o revogada quando algu\u00e9m mudou o papel na P\u00e1gina, aplicativo que perdeu uma autoriza\u00e7\u00e3o. A publica\u00e7\u00e3o para, a cota est\u00e1 intacta, e o painel n\u00e3o avisa nada at\u00e9 voc\u00ea olhar.<\/p>\n<h2>O story sai sem figurinha de link, e isso muda o desenho do card<\/h2>\n<p>A publica\u00e7\u00e3o de story pela API \u00e9 uma linha na documenta\u00e7\u00e3o: crie o container com <code>media_type<\/code> igual a <code>STORIES<\/code>. N\u00e3o h\u00e1 par\u00e2metro descrito para figurinha de link, enquete, men\u00e7\u00e3o, localiza\u00e7\u00e3o ou m\u00fasica. O que a API entrega \u00e9 a imagem ou o v\u00eddeo ocupando a tela, e nada mais em cima dele.<\/p>\n<p>O campo <code>alt_text<\/code>, que a Meta abriu para imagens, tamb\u00e9m n\u00e3o vale aqui: a pr\u00f3pria documenta\u00e7\u00e3o diz que reels e stories n\u00e3o s\u00e3o suportados. H\u00e1 uma assimetria a\u00ed: em 22 de junho de 2026 a Meta lan\u00e7ou a m\u00e9trica <code>link_clicks<\/code> nas estat\u00edsticas de story, que conta toques em figurinha de link. D\u00e1 para medir o toque em uma figurinha que a API n\u00e3o deixa voc\u00ea colocar.<\/p>\n<p>Quem publica story por automa\u00e7\u00e3o, ent\u00e3o, trabalha com o que sobra: a chamada precisa estar desenhada dentro da arte, e o destino do clique precisa ser um endere\u00e7o que a pessoa alcance por conta pr\u00f3pria. Na pr\u00e1tica isso empurra o tr\u00e1fego para o link do perfil, que \u00e9 onde a conversa sobre <a href=\"https:\/\/postping.com.br\/blog\/alternativa-linktree-dominio-proprio\/\">ter a p\u00e1gina de links no seu pr\u00f3prio dom\u00ednio<\/a> deixa de ser prefer\u00eancia e vira quest\u00e3o de funcionamento. O card de story do Post Ping sai em 9:16 respeitando a zona segura da interface, com a chamada para o link do perfil impressa na arte, justamente porque a camada de figurinhas n\u00e3o est\u00e1 dispon\u00edvel para quem publica por fora do aplicativo.<\/p>\n<h2>O caso de quem prefere continuar publicando \u00e0 m\u00e3o<\/h2>\n<p>Se o Instagram \u00e9 o produto, e n\u00e3o o canal, a vers\u00e3o publicada por API \u00e9 um post pior. Enquete, caixinha de pergunta, men\u00e7\u00e3o clic\u00e1vel, colabora\u00e7\u00e3o no ato da publica\u00e7\u00e3o, \u00e1udio em alta escolhido na hora da edi\u00e7\u00e3o: nada disso passa por essa porta. Um perfil que vive de intera\u00e7\u00e3o em story perde a ferramenta principal ao automatizar, e nenhuma economia de tempo compensa isso.<\/p>\n<p>A fronteira at\u00e9 andou nessa dire\u00e7\u00e3o. Em 1 de junho de 2026 a Meta abriu a API de \u00e1udio, que permite buscar sons originais de reels e o acervo da Sound Collection; em 3 de dezembro de 2025 apareceram os reels de teste, via <code>trial_params<\/code>; em 22 de abril de 2026 entraram os r\u00f3tulos de publicidade em parceria e a possibilidade de curtir e comentar pela API. A superf\u00edcie criativa est\u00e1 sendo aberta aos poucos.<\/p>\n<p>Aos poucos, por\u00e9m, \u00e9 a express\u00e3o exata. Enquanto a edi\u00e7\u00e3o de verdade continuar acontecendo dentro do aplicativo, a conta que compete por intera\u00e7\u00e3o continua sendo publicada por gente. O que sobra do outro lado \u00e9 grande e \u00e9 o caso mais comum entre quem tem blog: o post que anuncia um artigo. Esse post \u00e9 uma arte, uma legenda e um link. Ele n\u00e3o usa nada do que a API recusa, e fazer \u00e0 m\u00e3o dez vezes por semana o que sai igual em toda publica\u00e7\u00e3o \u00e9 onde o tempo some sem contrapartida.<\/p>\n<h2>O que sobra de p\u00e9 quando a Meta mexe na lista de novo<\/h2>\n<p>A cad\u00eancia das mudan\u00e7as est\u00e1 registrada: exclus\u00e3o de m\u00eddia e reels de teste em dezembro de 2025; m\u00e9tricas de compartilhamento, colabora\u00e7\u00e3o e curtida em abril de 2026; \u00e1udio e o par\u00e2metro <code>is_ai_generated<\/code>, que marca conte\u00fado gerado por IA, em junho de 2026; a vers\u00e3o 26 da Graph API em 29 de julho de 2026. Em nove meses a lista do que d\u00e1 para automatizar mudou quatro vezes, sempre para mais, sem nenhum aviso que chegue at\u00e9 voc\u00ea por outro canal que n\u00e3o o changelog.<\/p>\n<p>Isso tem uma consequ\u00eancia de projeto. Automa\u00e7\u00e3o que amarra a gera\u00e7\u00e3o da legenda e da arte ao passo de publica\u00e7\u00e3o quebra junto quando a Meta mexe no passo de publica\u00e7\u00e3o. Separar as duas coisas custa quase nada na hora de montar e paga sozinho na primeira mudan\u00e7a de vers\u00e3o: o material continua sendo produzido, e s\u00f3 a chamada precisa acompanhar. Vale tamb\u00e9m n\u00e3o construir fluxo em cima de comportamento que a documenta\u00e7\u00e3o n\u00e3o descreve. Muito do que se l\u00ea por a\u00ed sobre figurinha de link em story publicado por API descreve o que funcionava em alguma combina\u00e7\u00e3o de vers\u00e3o e conta, n\u00e3o o que est\u00e1 escrito.<\/p>\n<p>Quem desenha o fluxo aceitando a lista de hoje, com a URL p\u00fablica, o JPEG, as 24 horas do container e a legenda que n\u00e3o volta atr\u00e1s, tem uma esteira que roda sozinha por meses. Quem desenha esperando que a lista seja outra descobre a diferen\u00e7a no dia da publica\u00e7\u00e3o, com o post j\u00e1 no ar. O caminho completo, do artigo no WordPress at\u00e9 o post no ar nas duas redes, est\u00e1 em <a href=\"https:\/\/postping.com.br\/blog\/wordpress-instagram-facebook-automatico\/\">publicar do WordPress no Instagram e no Facebook automaticamente<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A API do Instagram publica foto, story, reel e carrossel, mas s\u00f3 em JPEG, com container de 24 horas e sem editar legenda depois. O que muda no seu fluxo.<\/p>\n","protected":false},"author":1,"featured_media":143,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"class_list":["post-144","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-publicacao-automatica"],"_links":{"self":[{"href":"https:\/\/postping.com.br\/blog\/wp-json\/wp\/v2\/posts\/144","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/postping.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/postping.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/postping.com.br\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/postping.com.br\/blog\/wp-json\/wp\/v2\/comments?post=144"}],"version-history":[{"count":0,"href":"https:\/\/postping.com.br\/blog\/wp-json\/wp\/v2\/posts\/144\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/postping.com.br\/blog\/wp-json\/wp\/v2\/media\/143"}],"wp:attachment":[{"href":"https:\/\/postping.com.br\/blog\/wp-json\/wp\/v2\/media?parent=144"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/postping.com.br\/blog\/wp-json\/wp\/v2\/categories?post=144"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/postping.com.br\/blog\/wp-json\/wp\/v2\/tags?post=144"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}