Guia

Como Automatizar Posts no Instagram Publique Reels, carrosséis e Stories com uma chamada de API

A Graph API oficial do Instagram exige revisão de app do Facebook, uma conta Business vinculada a uma Página do Facebook e um fluxo OAuth de várias etapas. O Upload-Post cuida de tudo isso nos bastidores. Uma chamada de API, um endpoint, e o seu Reel, foto ou carrossel está publicado. Este guia cobre tudo o que você precisa para automatizar posts no Instagram, com exemplos de código reais.

Por que automatizar posts no Instagram via API

Se você já postou manualmente pelo app do Instagram, conhece o processo: abrir o app, escolher um arquivo, escrever uma legenda, adicionar hashtags, marcar pessoas, escolher uma imagem de capa e finalmente tocar em publicar. Agora multiplique isso por cinco posts por dia em várias contas de clientes.

A página da plataforma Instagram explica o que o Upload-Post suporta especificamente no Instagram. A versão resumida: você pode postar Reels, fotos únicas, carrosséis (posts com várias imagens) e Stories por um único endpoint de API de redes sociais. Sem revisão de app do Facebook, sem renovação de tokens, sem a complexidade da Graph API.

O Upload-Post permite até 50 posts no Instagram por conta a cada 24 horas corridas, o que é mais que suficiente para a maioria dos casos. Se você precisa postar em outras plataformas ao mesmo tempo, veja como postar em todas as plataformas de uma vez.

Poste um Reel do Instagram via API

Os Reels são o principal formato de conteúdo do Instagram. Para postar um vídeo como Reel, envie uma requisição POST para o endpoint de upload com media_type definido como REELS. Você também pode controlar como o Reel aparece no feed usando share_mode.

curl -X POST https://api.upload-post.com/api/upload \
  -H "Authorization: Apikey sua-api-key-aqui" \
  -F "[email protected]" \
  -F "user=mybrand" \
  -F "title=Behind the scenes of our new product launch" \
  -F "platform[]=instagram" \
  -F "media_type=REELS" \
  -F "share_mode=FEED_AND_REELS" \
  -F "audio_name=Original Audio" \
  -F "cover_url=https://example.com/cover.jpg"

Veja o que faz cada parâmetro específico do Instagram:

  • media_type=REELS diz ao Instagram para tratar o vídeo como um Reel, e não como um vídeo comum do feed.
  • share_mode=FEED_AND_REELS publica tanto na aba Reels quanto no feed principal. Use REELS_ONLY para deixar o Reel fora da grade do feed.
  • audio_name define o nome da faixa de áudio que os espectadores veem no Reel.
  • cover_url define uma imagem de capa personalizada. Sem ela, o Instagram escolhe um frame do vídeo.

Um upload bem-sucedido retorna o ID do job e o status da plataforma:

{
  "success": true,
  "job_id": "job_reel_abc123",
  "platforms": {
    "instagram": {
      "status": "processing",
      "user": "mybrand"
    }
  }
}

Você também pode usar share_to_feed=true ou share_to_feed=false no lugar de share_mode. Os dois fazem a mesma coisa. Use thumb_offset para escolher um frame específico do vídeo como thumbnail (valor em milissegundos).

Poste fotos e carrosséis

Para fotos únicas ou posts em carrossel (várias imagens), use o endpoint /api/upload_photos. Envie vários arquivos no parâmetro photos[] para criar um carrossel automaticamente.

curl -X POST https://api.upload-post.com/api/upload_photos \
  -H "Authorization: Apikey sua-api-key-aqui" \
  -F "photos[][email protected]" \
  -F "photos[][email protected]" \
  -F "photos[][email protected]" \
  -F "user=mybrand" \
  -F "title=Our top 3 product picks this month" \
  -F "platform[]=instagram" \
  -F "instagram_first_comment=#productpicks #trending #shopnow"

Quando você envia mais de um arquivo em photos[], o Instagram cria um post em carrossel. As pessoas deslizam pelas imagens na ordem em que você as enviou. Um único arquivo cria um post de foto normal. O Instagram aceita até 10 imagens por carrossel.

Você pode usar instagram_title para definir uma legenda só para o Instagram quando publica o mesmo conteúdo em várias plataformas ao mesmo tempo. Isso é útil quando a legenda do Instagram precisa de hashtags ou menções diferentes das que você usa nas outras redes.

Publique um primeiro comentário automaticamente

O parâmetro instagram_first_comment adiciona automaticamente um comentário ao seu post logo depois que ele é publicado. É uma das estratégias mais populares no Instagram: manter a legenda limpa e mover todas as hashtags para o primeiro comentário.

curl -X POST https://api.upload-post.com/api/upload \
  -H "Authorization: Apikey sua-api-key-aqui" \
  -F "[email protected]" \
  -F "user=mybrand" \
  -F "title=Quick tutorial: how to use our app" \
  -F "platform[]=instagram" \
  -F "media_type=REELS" \
  -F "instagram_first_comment=#tutorial #howto #apptips #tech #productdemo"

Por que usar um primeiro comentário em vez de colocar as hashtags na legenda? O algoritmo do Instagram trata hashtags no primeiro comentário da mesma forma que hashtags na legenda para fins de descoberta, mas a legenda fica mais limpa. Muitas marcas e criadores preferem assim porque o post fica focado na mensagem, e não num muro de hashtags.

Use colaboradores e marcações de usuários

Os posts em Colaboração do Instagram permitem que duas contas sejam coautoras de um mesmo conteúdo. O post aparece nos dois perfis, e o engajamento (curtidas, comentários, compartilhamentos) é somado. Use o parâmetro collaborators para convidar colaboradores.

curl -X POST https://api.upload-post.com/api/upload \
  -H "Authorization: Apikey sua-api-key-aqui" \
  -F "[email protected]" \
  -F "user=mybrand" \
  -F "title=Excited to announce our partnership with @partneraccount" \
  -F "platform[]=instagram" \
  -F "media_type=REELS" \
  -F "collaborators=partneraccount,otheraccount" \
  -F "user_tags=partneraccount,photographer_jane" \
  -F "location_id=123456789"
  • collaborators recebe uma lista de nomes de usuário do Instagram separados por vírgula. Os convidados recebem uma notificação para aceitar a colaboração.
  • user_tags marca usuários no próprio post, como marcar pessoas numa foto pelo app.
  • location_id adiciona uma localização ao post. Você encontra IDs de localização pela busca de locais do Instagram ou pela API do Facebook Places.

Agende posts no Instagram

Adicione scheduled_date a qualquer requisição de upload para publicar num horário futuro. A data deve estar no formato ISO-8601, e você pode informar um timezone se quiser.

curl -X POST https://api.upload-post.com/api/upload \
  -H "Authorization: Apikey sua-api-key-aqui" \
  -F "[email protected]" \
  -F "user=mybrand" \
  -F "title=Good morning! New content dropping today." \
  -F "platform[]=instagram" \
  -F "media_type=REELS" \
  -F "scheduled_date=2025-09-15T09:00:00Z" \
  -F "timezone=America/New_York"

Você também pode usar add_to_queue=true em vez de uma data específica. A fila escolhe o próximo horário livre com base na programação que você configurou, o que é ideal para subir conteúdo em lote sem escolher horários na mão. Veja o guia completo de agendamento para configurar filas, editar posts agendados e gerenciar o seu calendário de conteúdo.

Automatize com Python

O SDK oficial para Python facilita a criação de scripts de automação. Instale com pip install upload-post e use o UploadPostClient para falar com a API. Para um tutorial completo, veja o guia de automação com Python.

Aqui está um script completo que posta um Reel, envia um carrossel de fotos e agenda conteúdo para a semana:

from upload_post import UploadPostClient
from datetime import datetime, timedelta

client = UploadPostClient(api_key="your-api-key-here")

# 1. Post a Reel immediately
reel_response = client.upload_video(
    video_path="/path/to/reel.mp4",
    title="Novo guia do produto",
    user="mybrand",
    platforms=["instagram"],
    media_type="REELS",
    share_mode="FEED_AND_REELS",
    instagram_first_comment="#newproduct #walkthrough #tech"
)
print(f"Reel enviado: {reel_response['job_id']}")

# 2. Post a carousel of photos
carousel_response = client.upload_photos(
    photo_paths=[
        "/path/to/photo1.jpg",
        "/path/to/photo2.jpg",
        "/path/to/photo3.jpg"
    ],
    title="Três ângulos, um produto.",
    user="mybrand",
    platforms=["instagram"],
    collaborators="partneraccount"
)
print(f"Carrossel enviado: {carousel_response['job_id']}")

# 3. Schedule Reels for the next 7 days
videos = [
    "monday.mp4", "tuesday.mp4", "wednesday.mp4",
    "thursday.mp4", "friday.mp4", "saturday.mp4", "sunday.mp4"
]

for i, video in enumerate(videos):
    publish_date = (datetime.now() + timedelta(days=i + 1)).replace(
        hour=10, minute=0, second=0, microsecond=0
    )
    response = client.upload_video(
        video_path=f"/path/to/{video}",
        title=f"Day {i + 1} of our launch week series",
        user="mybrand",
        platforms=["instagram"],
        media_type="REELS",
        scheduled_date=publish_date.isoformat(),
        timezone="Europe/Madrid"
    )
    print(f"Scheduled {video} for {publish_date}: {response['job_id']}")

Este script agenda um Reel por dia às 10:00, no horário de Madri, durante uma semana inteira. Ajuste hour, timezone e os caminhos dos arquivos ao seu fluxo de trabalho (para o horário de Brasília, use America/Sao_Paulo). Para uploads em massa, você pode ler os caminhos dos vídeos de uma pasta ou de um arquivo CSV e percorrê-los do mesmo jeito.

Automação sem código: n8n e Make.com

Se você prefere fluxos visuais a escrever código, tanto o n8n quanto o Make.com funcionam com o Upload-Post de forma nativa.

n8n

O n8n é uma ferramenta open-source de automação de fluxos de trabalho. Você pode usar o node HTTP Request para chamar a API do Upload-Post. Temos um template pronto de Reels do Instagram para n8n que lê vídeos do Google Drive, pega as legendas de uma planilha do Google e posta como Reels automaticamente. Veja todos os templates de n8n disponíveis para mais configurações.

Make.com

O Make.com (antigo Integromat) funciona com cenários. Adicione um módulo HTTP, configure com o endpoint do Upload-Post e a sua API key e ligue a qualquer gatilho: nova linha no Google Sheets, novo arquivo no Dropbox, um timer agendado, entre outros. O resultado é o mesmo que escrever código, mas numa interface de arrastar e soltar.

As duas ferramentas aceitam os parâmetros de agendamento (scheduled_date, add_to_queue), então você pode montar um calendário de conteúdo completo para o Instagram sem abrir um terminal.

Requisitos de conteúdo do Instagram

O Upload-Post adapta o seu conteúdo automaticamente quando possível (usando a API de FFmpeg integrada), mas é bom saber o que o Instagram espera para você otimizar a qualidade.

Formato Especificação Detalhes
Vídeo (Reels) Tamanho máximo do arquivo 1 GB
Formatos MP4, MOV
Proporção 9:16 recomendado, 1:1 e 4:5 suportados
Duração 3 segundos a 15 minutos
Resolução 1080x1920 recomendado
Foto Tamanho máximo do arquivo 8 MB
Formatos JPEG, PNG
Proporção 1:1, 4:5, 1,91:1
Dimensões máximas 1440x1440 (quadrado), 1080x1350 (retrato)
Carrossel Máximo de imagens 10 por post
Mídia mista Fotos e vídeos podem ser combinados

Perguntas frequentes

Isso funciona com contas pessoais do Instagram?

Não. A API do Instagram só aceita contas Business e Creator. Contas pessoais não podem ser acessadas por nenhuma API oficial. A boa notícia é que mudar para uma conta Business ou Creator é gratuito e leva uns 30 segundos nas configurações do app do Instagram. O Upload-Post conecta pelo login do Instagram (Instagram Login), então não é preciso ter uma Página do Facebook vinculada.

Posso postar Stories do Instagram via API?

Sim. Envie media_type=STORIES com platform[]=instagram no endpoint de vídeo (/api/upload) ou no de fotos (/api/upload_photos). Os Stories ignoram a legenda e não aceitam marcação de localização, e mídia vertical 9:16 funciona melhor.

Posts automatizados vão causar shadowban na minha conta?

O Upload-Post publica pela API oficial de publicação de conteúdo do Instagram (Content Publishing API), o mesmo caminho que as outras ferramentas de agendamento autorizadas usam. Não é um bot nem automação de navegador, então os seus posts não são marcados como automação como acontece com esses bots. O alcance que o Instagram dá a cada post continua dependendo do próprio conteúdo. O Upload-Post também limita cada conta a 50 posts a cada 24 horas corridas, para ficar bem dentro dos limites de publicação do Instagram. Se hoje você usa uma ferramenta como o Hootsuite ou o Later, o Upload-Post é uma alternativa pensada para desenvolvedores que usa o mesmo acesso oficial.

Existe um plano gratuito?

Sim. Toda conta do Upload-Post inclui 10 uploads grátis por mês, sem cartão de crédito. É o suficiente para testar a API, validar o seu fluxo e confirmar que tudo funciona antes de assinar um plano pago. Confira o calendário de datas comemorativas para redes sociais para planejar os primeiros posts em torno das próximas datas, ou divida um banner em partes com o divisor de imagem para o feed do Instagram e agende as partes na ordem certa.

Comece a automatizar posts no Instagram hoje

Uma chamada de API. Reels, fotos, carrosséis, Stories, primeiros comentários, colaboradores e agendamento. Tudo resolvido para você.

Sem cartão de crédito. 10 uploads grátis incluídos.