TL;DR, Resposta Rápida
9 min de leituraA Meta define instagram_business_content_publish como permissão "to create organic feed photo and video posts on behalf of a business user" e lista instagram_business_basic como sua dependência. É o escopo do Business Login for Instagram; apps no Facebook Login for Business pedem instagram_content_publish. Todo endpoint de publicação exige o par, o App Review quer um screencast do login mais um post real, e o escopo não pode ser aprovado pela exceção de app privado.
O que o instagram_business_content_publish concede?
A Meta define o escopo instagram_business_content_publish em uma única frase na Permissions Reference: "The instagram_business_content_publish permission allows an app to create organic feed photo and video posts on behalf of a business user."
A linha de uso permitido acrescenta o limite: "Manage the organic content creation process for Instagram (for example, post photos and videos) on behalf of an Instagram business account."
Duas palavras dessa definição fazem quase todo o trabalho. Orgânico descarta qualquer coisa paga, então o escopo não encosta em anúncios, posts impulsionados ou promoção. Em nome de um usuário de negócio significa que a permissão só alcança contas que a concederam ao seu app, e a Meta declara esse limite de forma geral na visão geral da Instagram Platform: "a permission only allows access to data created by the app user who granted the permission."
O escopo também nunca viaja sozinho. A Meta lista uma dependência para ele, instagram_business_basic, e essa dependência não é formalidade. O basic carrega a identidade da conta; o publish carrega a escrita. Pedir publish sem basic deixa o app sem nenhuma forma de resolver o ID de usuário do Instagram que todo endpoint de publicação exige no caminho.

Quais endpoints exigem o escopo?
Quatro, e a Meta imprime o mesmo par de permissões na tabela de requisitos de cada página de referência.
| Endpoint | O que faz | Permissões para o Instagram Login |
|---|---|---|
POST /<IG_ID>/media | Cria o contêiner de mídia | instagram_business_basic, instagram_business_content_publish |
POST /<IG_ID>/media_publish | Publica o contêiner | instagram_business_basic, instagram_business_content_publish |
GET /<IG_CONTAINER_ID> | Lê o status do contêiner | instagram_business_basic, instagram_business_content_publish |
GET /<IG_ID>/content_publishing_limit | Lê o uso atual da cota | instagram_business_basic, instagram_business_content_publish |
A terceira linha pega as pessoas de surpresa. Checar se um contêiner terminou o processamento é uma leitura, e mesmo assim exige o escopo de publicação, porque o contêiner é um artefato da publicação e não um pedaço de dado de perfil. Um app que pediu só o basic não consegue criar nada e também não consegue ver nada sobre o que falhou em criar.
A quarta linha importa para agendamento. Ler a cota está atrás do mesmo escopo que a gasta, então um app não consegue checar quanto espaço sobrou numa conta antes de pedir permissão para postar. Isso vale saber quando você está construindo em cima das cotas de contêiner e de publicação que a API aplica por conta.
Repare no que falta na lista. Nada sobre legendas, texto alternativo, marcações de usuário ou localização tem permissão própria. Esses são parâmetros do POST /<IG_ID>/media, o que significa que o limite de 2.200 caracteres na legenda e suas sub-regras de tags são aplicados pelo endpoint, e não por um escopo que você possa pedir à parte.
Como ele se relaciona com os outros escopos do Instagram?
Ele pertence a um de dois conjuntos paralelos, e qual conjunto você usa é decidido pelo seu fluxo de login, não pela sua lista de recursos.
| Business Login for Instagram | Facebook Login for Business |
|---|---|
instagram_business_basic | instagram_basic |
instagram_business_content_publish | instagram_content_publish |
instagram_business_manage_comments | instagram_manage_comments |
instagram_business_manage_messages | instagram_manage_messages |
| Recurso Human Agent | instagram_manage_insights |
pages_show_list, pages_read_engagement | |
| Human Agent, Instagram Public Content Access |
O infixo _business_ é a pista. Esses escopos existem para apps em que os usuários entram com credenciais do Instagram e batem em graph.instagram.com. Os nomes mais curtos existem para apps em que os usuários entram com credenciais do Facebook, a conta profissional está vinculada a uma Página do Facebook, e as chamadas vão para graph.facebook.com.
A coluna do Facebook Login carrega uma bagagem extra que a coluna do Instagram não tem. Publicar por esse fluxo também precisa de pages_read_engagement, e a Meta acrescenta uma condicional: se o usuário do app recebeu seu papel na Página através do Business Manager, o app precisa também de ads_management ou ads_read. São escopos de publicidade exigidos para um post orgânico, puramente por causa de como o papel na Página foi atribuído.
Há mais uma assimetria que vale ler antes de se comprometer. A tabela de tarefas de Página da Meta mapeia o que um usuário pode fazer numa Página com o que ele pode conceder ao seu app, e tanto Content (PROFILE_PLUS_CREATE_CONTENT) quanto Full control (PROFILE_PLUS_FULL_CONTROL) concedem instagram_content_publish. Não existe tabela equivalente para instagram_business_content_publish, porque o Business Login for Instagram não tem Página no meio. Sob o Facebook Login, um usuário que perde a tarefa Content na Página faz o seu app perder a capacidade de publicar, sem que nada mude no seu app.
O tempo de vida dos tokens é compartilhado pelos dois fluxos. O código de autorização vale por uma hora, o token de acesso de curta duração em que ele vira vale por uma hora, e o token de longa duração pelo qual você o troca vale por 60 dias e pode ser renovado antes de expirar. Esse ciclo de renovação é o mesmo por trás do token de longa duração do Facebook de 60 dias, e é a peça de qualquer configuração de automação do Instagram com mais chance de quebrar em silêncio.

AdaptlyPost
Teste grátis de 7 dias
Análises multiplataforma
Caixa Social
Assistente com IA
O que o App Review pede?
Duas respostas escritas e um screencast, e a Meta publica o texto exato dos três.
O enunciado da descrição do caso de uso: "Provide specific examples of why your app requires the instagram_business_content_publish permission to create and publish organic feed photo and video posts on behalf of other businesses."
Os requisitos do screencast, citados na íntegra:
Demonstrate the complete Instagram login process on your app platform, showing how your app user grants your app this permission
Demonstrate creating a new organic feed photo post on behalf of a business user
Show how to add a caption, hashtags, and other metadata, and post to the business user's Instagram feed
Leia isso como uma lista de tomadas. O revisor quer a tela de consentimento na câmera, um post real criado pela sua interface, e os campos de legenda e hashtag preenchidos antes de ele sair. Uma gravação que começa depois do login, ou que mostra um post já publicado, deixa de fora dois dos três requisitos.
A revisão só se torna necessária a partir de um limiar específico, que a Meta amarra à propriedade e não à escala. O Standard Access "is intended for apps that will only be used by people who have roles on them", e "If your app only serves your Instagram professional account or an account you manage, Standard Access is all your app needs." O Advanced Access é o nível "required if your app serves Instagram professional accounts that you don't own or manage", e ele "requires App Review and Business Verification."
Ou seja, um publicador interno de uma conta só não precisa de revisão. Qualquer coisa em que um cliente faça login precisa de revisão mais verificação de negócio, e a Meta acrescenta um aviso sobre os testes no meio do caminho: "Because of the limited scope of Standard Access, some features might not work properly until your app has been granted Advanced Access."
Existe uma saída de emergência, e a publicação está excluída dela. Para apps que os revisores não conseguem testar, a Meta escreve: "If reviewers are unable to test your app because it is behind a private intranet, has no user interface, or has not implemented Facebook Login for Business, you can request approval only for the following permissions: instagram_basic, instagram_manage_comments." Nenhum dos dois escopos de publicação aparece nessa lista. Um publicador headless sem interface não tem caminho documentado até o Advanced Access para postar.
Por que o escopo diz feed se a API publica stories e reels?
Porque a Meta nunca atualizou o texto da permissão para casar com o endpoint. A descrição do escopo diz "organic feed photo and video posts" desde que foi escrita, enquanto o POST /<IG_ID>/media aceita valores de media_type iguais a CAROUSEL, REELS e STORIES, e a tabela de requisitos daquela referência lista esse mesmo escopo para todos eles.
Nada na Permissions Reference menciona stories, reels ou carrosséis. Nada na referência de mídia restringe o escopo a posts de feed. Os dois documentos descrevem a mesma permissão com larguras diferentes, e o endpoint é o que de fato é aplicado.
A consequência prática é de revisão, não de execução. Seu screencast é avaliado contra as palavras da referência de permissões, e essas palavras pedem um post de foto no feed. Demonstrar um reel ou um story significa demonstrar algo que a lista do revisor não nomeia. Grave o post de feed que os requisitos pedem e depois mostre o resto.
Uma segunda divergência de texto fica ao lado dessa. A linha de uso permitido da Meta diz "post photos and videos", enquanto a seção de Limitations do guia de Content Publishing diz "Filters are not supported" e "Shopping tags are not supported." O escopo concede mais do que o endpoint implementa.
Perguntas frequentes
O que é instagram_business_content_publish?
É a permissão da Instagram Platform que, nas palavras da Meta, "allows an app to create organic feed photo and video posts on behalf of a business user." É o escopo do Business Login for Instagram, usado com o host graph.instagram.com.
AdaptlyPost
Teste grátis de 7 dias
Análises multiplataforma
Caixa Social
Assistente com IA
O instagram_business_content_publish precisa de outra permissão ao lado?
Sim. A Meta lista instagram_business_basic como sua dependência, e a tabela de requisitos de todo endpoint de publicação nomeia os dois escopos juntos.
Qual a diferença entre instagram_business_content_publish e instagram_content_publish?
O fluxo de login. O primeiro é concedido pelo Business Login for Instagram, em que os usuários entram com credenciais do Instagram. O segundo é concedido pelo Facebook Login for Business e exige também instagram_basic e pages_read_engagement.
Publicar stories ou reels precisa de permissão diferente?
Não. O mesmo escopo cobre os valores de media_type iguais a REELS, STORIES e CAROUSEL, ainda que a descrição da permissão só mencione posts de feed.
Um app que publica na própria conta do Instagram precisa de App Review?
Não. A Meta afirma que o Standard Access basta se o seu app "only serves your Instagram professional account or an account you manage." Advanced Access, App Review e Business Verification passam a valer assim que o app atende contas que você não possui.
Um app headless consegue aprovar o escopo de publicação?
Não pela exceção de app privado. A Meta limita esse caminho a instagram_basic e instagram_manage_comments, e nenhum dos escopos de publicação aparece na lista.
Um app pode consultar sua cota de publicação antes de ter o escopo?
Consultar antes não é possível. O endpoint GET /<IG_ID>/content_publishing_limit exige o mesmo escopo instagram_business_content_publish que os endpoints que consomem essa cota, então a cota restante fica invisível até que a permissão já tenha sido concedida.
Legendas e hashtags precisam de uma permissão própria?
Isso não exige uma permissão própria. Legendas, hashtags, texto alternativo, marcações de usuário e localizações são parâmetros de POST /<IG_ID>/media em vez de escopos independentes, então o limite de caracteres da legenda e suas regras de marcação são aplicados por esse endpoint, não por uma permissão pedida à parte.
Por que o Facebook Login for Business às vezes exige uma permissão de anúncios só para publicar?
Publicar por esse fluxo já exige pages_read_engagement além de instagram_content_publish e instagram_basic. Se o papel do usuário do app na Page veio do Business Manager, a Meta também exige ads_management ou ads_read, uma condição ligada a como o papel foi atribuído, não ao conteúdo do post.
O que o screencast do App Review precisa mostrar para esse escopo?
Três coisas: a tela de login do Instagram em que o usuário concede a permissão, um post de foto no feed orgânico criado em tempo real pela interface do app, e os campos de legenda e hashtags preenchidos antes da publicação. Uma gravação que começa depois do login ou mostra um post já publicado deixa de cumprir dois desses três requisitos.
Coloque isso em prática com o AdaptlyPost
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
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


O que o endpoint content_publishing_limit do Instagram devolve
O endpoint content_publishing_limit do Instagram devolve quota_usage mais um bloco config com quota_total 50 e quota_duration de 86400 segundos.


Meta fixa em 1.000 o limite de caracteres do alt_text na API do Instagram
Meta limita a 1.000 o limite de caracteres do alt_text na API do Instagram e o restringe a imagens estáticas. Reels e stories não aceitam texto alternativo.


Como funciona um gerador de feeds do Bluesky, do lexicon ao feed no ar
Um gerador de feeds do Bluesky é um serviço HTTPS que responde a uma consulta XRPC. Os lexicons, a entrada no documento DID, o JWT e as lacunas nos docs.
Artigos Relacionados


Por que a métrica contas que interagiram no Instagram não é igual a interações
A métrica contas que interagiram no Instagram conta contas únicas, não ações, e os campos da API não correspondem mais aos rótulos do app.


Por que Bluesky facets byteStart byteEnd contam bytes, não caracteres
Os offsets Bluesky facets byteStart byteEnd contam bytes UTF-8, não índices UTF-16 do JavaScript. O aviso do lexicon, um exemplo e código que acerta.


O que a Meta diz sobre visitas ao perfil do Instagram e tudo o que fica de fora
A definição da Meta para visitas ao perfil do Instagram cabe em uma frase, sem janela de atribuição, sem regra de deduplicação e sem garantia de unicidade.

