API de publicação e mensagens em redes sociaispara agentes de IA

Um só conjunto de endpoints REST para publicar em 18 destinos e responder cada DM, comentário e menção de uma única caixa de entrada. Autenticação por chave de API, publicação em fila com novas tentativas, webhooks assinados — e nenhum OAuth por plataforma para escrever.

URL base https://api.so-me.studio/v1 · Autenticação X-API-Key · JSON de entrada, JSON de saída

Dois trabalhos, um workspace

A maioria das APIs sociais para na publicação. Um agente que publica mas não responde é só meio agente — por isso as duas coisas ficam atrás da mesma chave, nas mesmas contas conectadas.

Publicação

Publique em qualquer lugar com uma chamada

Crie o post uma vez, escolha qualquer destino conectado e deixe a fila cuidar da formatação de cada plataforma, do upload de mídia, dos limites de taxa e das novas tentativas. Seu agente nunca encosta em um SDK de plataforma.

  • POST /v1/posts
  • POST /v1/posts/:id/schedule
  • POST /v1/posts/:id/retry
  • POST /v1/media/presign-upload
  • POST /v1/drafts/:id/convert
Mensagens

Leia e responda cada conversa

DMs, comentários e menções de todas as contas conectadas caem em uma só caixa de entrada unificada. Puxe a thread, publique uma resposta, marque como resolvida — tudo em JSON puro, tudo no mesmo workspace dos seus posts.

  • GET /v1/inbox/conversations
  • GET /v1/inbox/conversations/:id/messages
  • POST /v1/inbox/conversations/:id/reply
  • POST /v1/whatsapp/templates/send
  • GET /v1/inbox/saved-replies

Como são as chamadas

Sem SDK. Três requisições cobrem o ciclo que um agente roda o dia inteiro: publicar, escutar, responder.

Agendar um post
curl -X POST \
  https://api.so-me.studio/v1/posts \
  -H "X-API-Key: $SOME_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "text": "Ship day 🚀",
    "socialMedia": "LINKEDIN",
    "postType": "TEXT",
    "scheduledAt":
      "2026-08-04T09:00:00Z"
  }'
Responder a um DM
const { data } = await api(
  '/v1/inbox/conversations'
);

for (const c of data) {
  const reply = await agent.answer(c);

  await api(
    `/v1/inbox/conversations/${c.id}`
      + '/reply',
    { method: 'POST',
      body: { message: reply } }
  );
}
Escutar o resultado
await fetch(
  BASE + '/v1/webhooks/subscriptions',
  {
    method: 'POST',
    headers: {
      'X-API-Key': KEY,
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      url: 'https://my-agent.dev/hook',
      events: [
        'post.published',
        'post.failed'
      ]
    })
  }
);

O produto inteiro, em forma de endpoints

Tudo o que você faz no painel tem uma rota. Nada é exclusivo da interface.

Posts

/v1/posts

Crie, atualize, agende, desagende, exclua em massa, tente de novo e reenvie posts. Leia o calendário e gerencie os comentários de cada post.

Rascunhos

/v1/drafts

Guarde conteúdo em andamento e depois converta um rascunho em post agendado no ar com uma só chamada.

Caixa de entrada

/v1/inbox

Liste conversas, leia threads de mensagens, responda, arquive e gerencie respostas salvas em todas as contas conectadas.

WhatsApp

/v1/whatsapp

Crie e liste templates de mensagem aprovados, envie a mídia do template e mande mensagens de template para os clientes.

Mídia

/v1/media

Uploads pré-assinados, pastas, busca, renomear, mover e excluir em massa. Anexe qualquer arquivo enviado a um post pelo id.

Analytics

/v1/analytics

Métricas por conta e por post, além de detalhamentos nativos das plataformas para Facebook, Instagram, LinkedIn, YouTube, X e WhatsApp.

IA

/v1/ai

Gere legendas, imagens e vídeos UGC a partir do seu agente e mande o resultado direto para um post.

Aprovações

/v1/approvals

Liste tudo o que aguarda revisão e aprove ou rejeite — assim um agente redige enquanto uma pessoa ainda dá o aval.

Contas

/v1/accounts

Liste as contas sociais conectadas e seus ids — os identificadores que indexam cada post e cada conversa.

Webhooks

/v1/webhooks

Gerencie assinaturas, reenvie entregas, dispare payloads de teste e navegue pelo catálogo completo de eventos.

Bio-links

/v1/biolinks

Monte páginas de link na bio de forma programática — botões, posts incorporados, temas, publicação e analytics de cliques.

Equipes e configurações

/v1/teams · /v1/settings

Convide membros, defina funções, rotacione chaves de API, alterne workspaces e consulte o consumo atual do seu plano.

Os schemas completos de requisição e resposta — além da especificação OpenAPI — estão na referência da API.

Até onde ela chega

Conecte uma conta uma vez no painel; a API herda essa conexão em todo lugar.

Publicar

18 destinos

Twitter/X, Instagram, LinkedIn (pessoal e Página), Facebook, TikTok, YouTube, Threads, Pinterest, Bluesky, Mastodon, Reddit, Google Business Profile, WordPress, Dev.to, Dribbble, Discord e Slack — tudo a partir de um único POST /v1/posts. O WhatsApp, por sua vez, envia por templates aprovados.

Mensagens

Caixa de entrada unificada

Ingestão por webhook em tempo real para Facebook, Instagram, WhatsApp e Twitter/X, além de threads consultadas por polling no Bluesky, Mastodon, Reddit, Telegram, Discord e Slack. Um único modelo de conversa para todos eles.

Conectar

20 plataformas

O OAuth é resolvido uma única vez no painel. A API lê os ids de conta resultantes — você nunca armazena, renova nem rotaciona um token de plataforma.

Projetada para quem chama e nunca dorme

Um agente tenta de novo, roda em paralelo e lê o corpo dos erros ao pé da letra. A API foi desenhada em torno disso.

Uma chave para três superfícies

A mesma X-API-Key funciona para a API REST, para a CLI instalada via npm e para o servidor MCP. Emita uma vez em Settings → API Keys; seu agente nunca vê um token OAuth de plataforma.

A publicação vai para a fila, não é atire e esqueça

Uma chamada de criação retorna na hora e o post entra em uma fila de workers com consciência dos limites de taxa de cada plataforma e novas tentativas automáticas. As falhas podem ser retomadas com POST /v1/posts/:id/retry.

Mais de 150 eventos assinados

Inscreva-se em post.published, post.failed, eventos de mensagem da caixa de entrada, decisões de aprovação, desconexões de conta e mais. Os payloads são assinados com HMAC-SHA256 para o seu agente poder confiar neles.

Restrita ao workspace por construção

Cada chave está vinculada a um workspace. Use uma chave por cliente e o agente fica fisicamente impedido de ler ou publicar nas contas de outro tenant.

Limites de taxa documentados e aplicados

As cotas por minuto e por mês são publicadas em cada plano e devolvidas como um 429 limpo — sem throttling silencioso para um loop de retentativa interpretar errado.

Não é só REST

Prefere ferramentas a endpoints? O mesmo workspace é exposto como mais de 200 ferramentas MCP e uma CLI que imprime JSON e devolve códigos de saída de verdade.

Limites, ditos de cara

A API é liberada no Team. Estourou a cota, você recebe um 429 — nunca uma perda silenciosa.

PlanoChamadas de APILimite de taxaEntregas de webhook
Free e SoloSem acesso à API
Team10.000 chamadas / mês60 chamadas / min25.000 entregas / mês
ScaleIlimitadas300 chamadas / minIlimitadas

Veja os preços atuais dos planos, ou a visão geral para agentes se preferir ferramentas MCP a endpoints crus.

A primeira chamada em três passos

Sem call de vendas, sem pedido de sandbox, sem conta de desenvolvedor em cada plataforma.

1

Conecte suas contas

Crie sua conta e conecte qualquer um dos 20 destinos no painel. Daqui em diante, OAuth, renovação de token e pedidos de reautenticação ficam por nossa conta.

2

Gere uma chave de API

Settings → API Keys. Envie como X-API-Key. Uma chave por workspace mantém os clientes isolados; a mesma chave também move a CLI e o servidor MCP.

3

Publique, depois escute

POST /v1/posts para publicar ou agendar, inscreva-se em post.published e post.failed e leia GET /v1/inbox/conversations para começar a responder.

Duas coisas, com uma só chave. Publicação: crie, agende, publique, tente de novo e exclua conteúdo em 18 destinos, com uploads de mídia pré-assinados e geração de legendas e imagens com IA no mesmo workspace. Mensagens: liste conversas da caixa de entrada unificada, leia uma thread, responda DMs e comentários e envie templates aprovados do WhatsApp. Em volta disso ficam analytics, aprovações, bio-links, equipes, templates e webhooks — tudo sob https://api.so-me.studio/v1.

Gere uma chave em Settings → API Keys e envie no header X-API-Key em toda requisição. As chaves são restritas a um único workspace, então usar uma chave por cliente mantém os agentes isolados uns dos outros. A mesma chave autentica a CLI (npm i -g @social-media-scheduler/cli) e o servidor MCP.

Não. Você conecta as contas uma vez no painel e os tokens das plataformas ficam do nosso lado, criptografados. GET /v1/accounts devolve os ids de conta que você referencia ao publicar ou responder. Renovação de token, pedidos de reautenticação e as manias de cada plataforma são problema nosso, não seu.

Sim. GET /v1/inbox/conversations lista as threads de todas as contas conectadas, GET /v1/inbox/conversations/:id/messages devolve o histórico de mensagens para dar contexto e POST /v1/inbox/conversations/:id/reply envia a resposta. Facebook, Instagram, WhatsApp e Twitter/X chegam por webhooks em tempo real; Bluesky, Mastodon, Reddit, Telegram, Discord e Slack são puxados para o mesmo modelo de conversa.

O WhatsApp é baseado em templates, não em texto livre: POST /v1/whatsapp/templates cria um template para aprovação, POST /v1/whatsapp/templates/upload-media anexa a mídia do cabeçalho e POST /v1/whatsapp/templates/send faz a entrega. As mensagens recebidas do WhatsApp caem na mesma caixa de entrada unificada de todo o resto.

Não, e isso é proposital. POST /v1/posts retorna assim que o post é aceito; a publicação passa por uma fila com consciência dos limites de taxa de cada plataforma e novas tentativas automáticas. Fique de olho nos webhooks post.published e post.failed — ou faça polling em GET /v1/posts/:id — em vez de travar uma thread de requisição por causa de uma plataforma que está tendo uma tarde ruim.

Mais de 150, cobrindo posts, rascunhos, reaproveitamento, aprovações, caixa de entrada, mídia, contas, cobrança e equipes — post.published, post.failed, post.approval.requested, desconexões de conta e mais. Gerencie as assinaturas com POST /v1/webhooks/subscriptions, dispare uma entrega de teste, reenvie uma que falhou e verifique a assinatura HMAC-SHA256 no recebimento.

A API é um recurso do plano Team para cima; Free e Solo não têm acesso à API. O Team inclui 10.000 chamadas por mês a 60 chamadas/min, mais 25.000 entregas de webhook por mês. O Scale remove os tetos mensais e sobe o limite para 300 chamadas/min. Ultrapassar um limite devolve 429 Too Many Requests.

Mesmo workspace, três formatos. Use REST a partir de qualquer backend ou framework (LangChain, CrewAI, AutoGen, Vertex AI, um simples worker de cron). Use a CLI em shells, CI e jobs agendados. Use o servidor MCP quando o agente precisar descobrir sozinho mais de 200 ferramentas tipadas — esse é o caminho do Claude, do Cursor e do Windsurf.

Em docs.so-me.studio, incluindo a especificação OpenAPI para você gerar um cliente tipado em qualquer linguagem. Esta página é a visão geral; a referência traz os schemas de requisição e resposta de cada rota.

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.