Publique no Instagram via API Reels, carrosséis e Stories

Agende fotos, carrosséis, Reels e Stories do Instagram a partir do seu backend ou do seu agente de IA. Envie a mídia, faça um único POST /v1/posts e receba um webhook assinado quando estiver no ar.

URL base https://api.so-me.studio/v1 · Autenticação X-API-Key · socialMedia: INSTAGRAM

O que você pode publicar em Instagram

Envie um destes valores em postType. Todo post precisa de texto, e fotos ou vídeos são anexados por fileId a partir da sua biblioteca de mídia.

IMAGE

Uma única foto no feed.

CAROUSEL

De 2 a 10 fotos em um único post deslizável. MULTIPLE_IMAGES também é aceito.

REEL

Um vídeo, publicado como Reel.

VIDEO

Um vídeo, que o Instagram também publica como Reel. As regras de tamanho são mais folgadas que as de REEL.

STORY

Uma foto ou um vídeo como Story. O Instagram não exibe legenda em Stories.

Agende um post em Instagram

Envie a mídia e depois crie o post. Omita scheduledAt para publicar na hora.

  1. Reserve uma URL de upload

    POST /v1/media/presign-upload adiciona o arquivo à sua biblioteca de mídia e devolve um fileId e um uploadUrl pré-assinado.

    Reserve uma URL de upload
    curl -X POST https://api.so-me.studio/v1/media/presign-upload \
      -H "X-API-Key: $SOME_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{"files":[{"filename":"launch-reel.mp4","mimetype":"video/mp4","size":48211904}]}'
    
    # → [{ "fileId": "…", "uploadUrl": "https://…", "fileSrc": "…", "s3Key": "…" }]
  2. Envie o arquivo

    Faça um PUT dos bytes em uploadUrl com exatamente o Content-Type que você declarou. A URL é válida por uma hora.

    Envie o arquivo
    curl -X PUT "$UPLOAD_URL" \
      -H "Content-Type: video/mp4" \
      --upload-file ./launch-reel.mp4
  3. Crie o post

    POST /v1/posts com o fileId. A resposta é o post com status SCHEDULED, e ele é publicado em scheduledAt por uma fila que tenta de novo em caso de falha.

    Crie o post
    curl -X POST https://api.so-me.studio/v1/posts \
      -H "X-API-Key: $SOME_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "socialMedia": "INSTAGRAM",
        "postType": "REEL",
        "text": "Nos bastidores da semana de lançamento",
        "fileIds": ["<fileId>"],
        "scheduledAt": "2026-11-03T15:00:00Z",
        "firstComment": "#semanadelançamento #buildinpublic"
      }'

accountId é opcional quando o workspace tem uma conta de Instagram. Caso contrário, passe um id de GET /v1/accounts.

Os arquivos anexados com fileIds são verificados contra os limites de Instagram abaixo antes de qualquer coisa entrar na fila. Um arquivo que viola uma regra retorna 400 com um relatório por arquivo.

Opções de Instagram

Os campos que mudam a forma como um post é publicado em Instagram.

CampoO que faz
firstCommentUm comentário publicado abaixo do post logo depois que ele vai ao ar, com até 2.200 caracteres. Ideal para hashtags ou um link.
metaData.taggedPeopleUm array de nomes de usuário públicos do Instagram para marcar em fotos, fotos de carrossel e Reels. A marcação é feita em regime de melhor esforço: um nome de usuário errado nunca bloqueia o post.
accountIdA conta do Instagram de onde publicar, conforme listada por GET /v1/accounts. Opcional quando o workspace tem apenas uma.

Limites de mídia de Instagram

O Social media studio verifica cada arquivo contra estes limites antes de publicar. São os limites que configuramos, não uma promessa de Instagram: GET /v1/media/rules devolve a tabela atual, e POST /v1/media/validate verifica um arquivo sem publicá-lo.

Tipo de post IMAGE

Formatos
JPEG, PNG, WebP
Tamanho máximo do arquivo
8 MB
Arquivos por post
1
Dimensões
≥ 320 px de largura
Proporção
4:5 a 1.91:1

Tipo de post CAROUSEL

Formatos
JPEG, PNG, WebP
Tamanho máximo do arquivo
8 MB cada
Arquivos por post
2–10
Dimensões
≥ 320 px de largura
Proporção
4:5 a 1.91:1

Tipo de post REEL

Formatos
MP4, MOV
Tamanho máximo do arquivo
300 MB
Arquivos por post
1
Duração máxima
15 min
Dimensões
≥ 540 × 960 px, ≤ 1920 px de largura
Codecs de vídeo
H.264, H.265
Taxa de quadros
≤ 60 fps

Tipo de post VIDEO

Formatos
MP4, MOV
Tamanho máximo do arquivo
300 MB
Arquivos por post
1
Duração máxima
15 min
Dimensões
320–1920 px de largura
Codecs de vídeo
H.264, H.265
Taxa de quadros
≤ 60 fps

Tipo de post STORY

Formatos
JPEG, PNG, MP4, MOV
Tamanho máximo do arquivo
100 MB
Arquivos por post
1
Duração máxima
60 s
Dimensões
≥ 320 px de largura
Proporção
1:2 a 1.91:1

Saiba quando está no ar

A publicação é assíncrona. Assine post.published e post.failed, ou consulte GET /v1/posts/:id até que postStatus seja POSTED ou FAILED.

Assine uma vez
curl -X POST https://api.so-me.studio/v1/webhooks/subscriptions \
  -H "X-API-Key: $SOME_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com/hooks/social",
    "categories": ["post"],
    "events": ["post.published", "post.failed"]
  }'

# The response includes the secret that signs every delivery.
Como é cada entrega
POST /hooks/social
X-Webhook-Event: post.published
X-Webhook-Signature: <hex HMAC-SHA256 of the raw body>

{
  "event": "post.published",
  "category": "post",
  "timestamp": "2026-11-03T15:00:07.412Z",
  "data": { "postId": "…", "platform": "INSTAGRAM" }
}

Toda entrega é assinada com HMAC-SHA256 em X-Webhook-Signature. post.failed é disparado após a última nova tentativa; corrija a causa e chame POST /v1/posts/:id/retry. Um primeiro comentário é reportado por conta própria, com post.first_comment_posted ou post.first_comment_failed.

Criando um agente de IA?

A mesma chave de API aciona um servidor MCP com mais de 200 ferramentas e uma CLI, para que um agente possa publicar em Instagram sem chamadas HTTP escritas à mão.

Servidor MCP

Adicione o servidor ao Claude, ao Cursor ou a qualquer cliente MCP com a sua chave de API. OAuth também funciona. Para Instagram, o agente chama estas ferramentas com os mesmos campos da requisição REST:

  • presign_media_upload
  • validate_post_media
  • create_post
mcp.json
{
  "mcpServers": {
    "so-me-studio": {
      "url": "https://api.so-me.studio/mcp",
      "headers": { "X-API-Key": "sk_live_…" }
    }
  }
}

CLI

Instale com npm i -g @social-media-scheduler/cli. Ela envia os arquivos locais por você e imprime JSON, então um script ou um job de CI pode agendar um post em Instagram com um único comando.

so-me
so-me posts:create --platform INSTAGRAM --post-type REEL \
  -m ./launch-reel.mp4 \
  -c "Nos bastidores da semana de lançamento" \
  -s 2026-11-03T15:00:00Z \
  --first-comment "#semanadelançamento #buildinpublic"

O acesso à API, à CLI e ao MCP está incluído em todos os planos pagos: Lite, Creator, Standard, Advanced e Lifetime. Veja os planos e limites

Continue lendo

Guias de outras plataformas

Uma conta profissional do Instagram, Business ou Creator. O Instagram não permite que apps publiquem em contas pessoais. Você conecta a conta uma única vez no painel do Social media studio.

Não. O Instagram exige uma foto ou um vídeo em todo post, então um post só com texto falha. Anexe a mídia com fileIds, e a verificação de mídia roda antes de o post entrar na fila.

Sim. Envie postType STORY com uma foto ou um vídeo e um horário em scheduledAt. A API ainda exige texto, mas o Instagram não exibe legendas em Stories.

Não. Você conecta a conta de Instagram uma única vez no painel do Social media studio, pelo login de Instagram. Os tokens ficam armazenados criptografados e são renovados do nosso lado, e o seu código envia apenas a sua chave de API do Social media studio no cabeçalho X-API-Key.

Não. Ele retorna assim que o post entra na fila. A publicação roda em um worker que tenta de novo em caso de falha, então escute post.published e post.failed, ou consulte GET /v1/posts/:id.

A API REST, a CLI e o servidor MCP estão incluídos em todos os planos pagos: Lite, Creator, Standard, Advanced e Lifetime. Lite, Creator, Standard e Advanced começam com um teste de 7 dias (cartão obrigatório), e o Lifetime é um pagamento único.

Agende uma vez.
Publique em todo lugar.

Pare de malabarismo com abas, escreva, adapte e publique em 20 plataformas a partir de um único calendário.

Publique no Instagram via API: Reels, carrosséis e Stories