Uma API para Construir no LinkedIn, Instagram, WhatsApp, E-mail e Seu Agente de IA
Unipile oferece ao seu aplicativo ou agente de IA uma única integração para mensagens, posts e comentários, e-mail e calendário, em LinkedIn, Instagram, WhatsApp, Telegram, Gmail, Outlook, IMAP, Google Agenda e Agenda Outlook. Um modelo de dados, um conjunto de endpoints, sem SDK por provedor para manter.
// Responder a qualquer conta vinculada, qualquer provedor
const formulário = new FormData();formulário.anexar('texto', 'Entendido, obrigado!');await fetch(`https://${DSN}/api/v1/chats/${chatId}/messages`, { método: 'POST', cabeçalhos: { 'X-API-KEY': TOKEN_DE_ACESSO }, corpo: formulário});O que você pode realmente construir com Unipile
Unipile não é um widget de mensagens acoplado a um único canal. É uma superfície de API completa em três categorias de produtos, cada uma mapeada para integrações reais de provedores: vincular uma conta, enviar uma mensagem, publicar um post, responder a um comentário, sincronizar uma caixa de entrada ou agendar uma reunião. Eis o quadro completo.
O LinkedIn é a superfície mais profunda da API
34 recursos específicos do LinkedIn em 6 categorias, além da camada principal de mensagens acima: prospecção, conteúdo, perfis, recrutamento e busca.
Esta é apenas uma parte do que a API expõe. Veja a lista completa e atualizada de recursos por provedor na documentação do desenvolvedor.
Ver lista completa de funcionalidades11 Coisas que Desenvolvedores Realmente Constroem com Unipile
Clique em qualquer caso de uso para ver os endpoints reais e um trecho de código funcional. Estes são padrões extraídos diretamente de como os clientes Unipile usam a API hoje, não exemplos teóricos.
Um prospect responde à sua mensagem no LinkedIn. O Unipile envia a nova mensagem para o seu webhook em tempo real, você a exibe na interface da sua própria caixa de entrada e seu representante responde sem nunca abrir o LinkedIn.
Endpoints usados// Responder dentro de uma conversa existente no LinkedIn
const formulário = new FormData();
formulário.anexar('texto', 'Obrigado por retornar!');await fetch(`https://${DSN}/api/v1/chats/${chatId}/messages`, {
method: 'POST',
cabeçalhos: { 'X-API-KEY': ACCESS_TOKEN },
corpo: form // multipart/form-data, nenhum cabeçalho JSON necessário});Um vendedor encontra um prospect com bom encaixe através de uma busca no LinkedIn e envia um pedido de conexão diretamente do seu aplicativo, com uma nota curta e personalizada em vez de um convite em branco. A Unipile retorna um `invitation_id` que você pode verificar em relação à lista de convites pendentes, ou capturar o momento em que ele se transforma em uma conexão aceita através de um webhook.
Endpoints usados// Enviar um convite de conexão personalizado no LinkedIn
const convite = await fetch(`https://${DSN}/api/v1/users/invite`, {
method: 'POST',
cabeçalhos: { 'X-API-KEY': TOKEN_DE_ACESSO, 'content-type': 'application/json' },
corpo: JSON.stringifyid_conta: account_id,
id_provedor: provider_id,
mensagem: 'Gostei da sua palestra sobre outbound, adoraria me conectar.'})
}).então(r => r.json());// invite.invitation_id: poll GET /users/invite/sent, ou aguarde o webhook "new_relation"Encaminhe DMs do Instagram de uma conta comercial vinculada direto para sua ferramenta de suporte ou CRM. Os agentes leem e respondem de sua própria interface, o Unipile mantém ambos os lados da conversa sincronizados.
Endpoints usados// Listas conversas do Instagram para uma conta vinculada
const res = await fetch(`https://${DSN}/api/v1/chats?account_id=${igAccountId}`, ,
cabeçalhos: { 'X-API-KEY': ACCESS_TOKEN }
});const { itens: conversas } = await res.json();// as conversas agora são renderizadas diretamente na caixa de entrada do seu CRMRecupere os comentários em suas postagens do Instagram, responda publicamente do seu painel e reaja, para que sua equipe de redes sociais nunca precise mudar para o aplicativo do Instagram para gerenciar o engajamento.
Endpoints usados// Busca comentários em uma postagem, depois posta uma resposta
const comentários = await fetch(`https://${DSN}/api/v1/posts/${postId}/comentários`, ,
cabeçalhos: { 'X-API-KEY': ACCESS_TOKEN }
}).então(r => r.json());await fetch(`https://${DSN}/api/v1/posts/${postId}/comentários`, {
method: 'POST',
cabeçalhos: { 'X-API-KEY': TOKEN_DE_ACESSO, 'content-type': 'application/json' },
corpo: JSON.stringify({ texto: 'Obrigado! Te mando uma mensagem direta.' })
});Execute uma busca de pessoas no LinkedIn com os mesmos filtros que sua equipe já utiliza, depois puxe os resultados diretamente para o seu CRM ou para uma sequência de prospecção, uma conta vinculada, sem exportação manual.
Endpoints usados// Executar uma pesquisa de pessoas no LinkedIn
const resultados = await fetch(`https://${DSN}/api/v1/linkedin/search`, {
method: 'POST',
cabeçalhos: { 'X-API-KEY': TOKEN_DE_ACESSO, 'content-type': 'application/json' },
corpo: JSON.stringify({ id_conta: account_id, categoria: 'pessoas', palavras-chave: 'VP de Vendas, Paris' })
}.então(r => r.json());Agende uma postagem do seu próprio calendário de conteúdo, puxe os comentários que ela gera e reaja ao engajamento, tudo isso sem um humano fazer login no LinkedIn para publicar.
Endpoints usados// Publicar uma postagem no LinkedIn em nome de uma conta vinculada
await fetch(`https://${DSN}/api/v1/posts`, {
method: 'POST',
cabeçalhos: { 'X-API-KEY': TOKEN_DE_ACESSO, 'content-type': 'application/json' },
corpo: JSON.stringify({ account_id: accountId, texto: 'Nós acabamos de enviar...' })
});Sua ligação termina, seu aplicativo dispara uma mensagem no WhatsApp com um resumo e os próximos passos, enviada do mesmo número que sua equipe já usa para conversar com aquele contato.
Endpoints usados// Iniciar uma nova conversa no WhatsApp com um resumo
const formulário = new FormData();
formulário.anexar('id_da_conta', contaIdDoWhatsApp);
formulário.anexar('texto', 'Ótimo conversar hoje, aqui está um resumo...');
formulário.anexar('ids_dos_participantes', contactPhoneId);await fetch(`https://${DSN}/api/v1/chats`, método: 'POST', cabeçalhos: { 'X-API-KEY': ACCESS_TOKEN }, corpo: form });Vincule uma conta do Telegram e trate-a exatamente como qualquer outra caixa de entrada: liste chats, receba novas mensagens instantaneamente via webhook e responda de sua própria ferramenta.
Endpoints usados// Listar chats do Telegram para uma conta vinculada
const bate-papos = await fetch(`https://${DSN}/api/v1/chats?account_id=${tgAccountId}`, ,
cabeçalhos: { 'X-API-KEY': ACCESS_TOKEN }
}).então(r => r.json());Integre uma caixa de entrada ao seu produto com threads intactas, independentemente de qual dos 3 provedores seu usuário se conecte: Gmail, Outlook ou IMAP. Um modelo de dados, sem lógica separada de Gmail vs. Outlook em seu aplicativo.
Endpoints usados// Recupera os emails mais recentes para uma caixa de correio vinculada, agrupados por conversa
const caixa de entrada = await fetch(`https://${DSN}/api/v1/mails?account_id=${mailboxId}`, ,
cabeçalhos: { 'X-API-KEY': ACCESS_TOKEN }
}).então(r => r.json());// Mesma forma quer mailboxId aponte para Gmail, Outlook ou IMAPAssim que um prospect concordar com uma ligação em um thread do LinkedIn ou e-mail, verifique a disponibilidade e crie o evento no calendário Google ou Outlook deles, sem sair do seu aplicativo.
Endpoints usadosCriar um evento no calendário uma vez que uma reunião for confirmada
await fetch(`https://${DSN}/api/v1/calendars/${calendarId}/events`, {
method: 'POST',
cabeçalhos: { 'X-API-KEY': TOKEN_DE_ACESSO, 'content-type': 'application/json' },
corpo: JSON.stringify({ título: 'Chamada introdutória', start_time: startISO, end_time: endISO, attendees: [email] })
});Em vez de fazer polling, inscreva-se uma vez e receba um webhook no momento em que uma nova mensagem, um novo e-mail ou uma alteração no status da conta ocorrer, em todos os provedores vinculados.
Endpoints usados// Assinar eventos de nova mensagem em todas as contas vinculadas
await fetch(`https://${DSN}/api/v1/webhooks`, {
method: 'POST',
cabeçalhos: { 'X-API-KEY': TOKEN_DE_ACESSO, 'content-type': 'application/json' },
corpo: JSON.stringify({ fonte: 'Mensagens', evento: 'mensagem_recebida', url_solicitada: 'https://yourapp.com/webhooks/unipile' })
});Estes são apenas 11 padrões. Os mesmos endpoints se combinam para o que quer que seu aplicativo ou agente de IA precise fazer.
Comece a Criar o Seu Próprio Caso de UsoSua Primeira Chamada de API em Três Passos
Obtenha suas credenciais, vincule a conta de um usuário, envie sua primeira mensagem. Veja exatamente como, com o raciocínio por trás de cada chamada, não apenas o código.
Obtenha seu DSN e Token de Acesso
Cadastre-se em dashboard.unipile.com/cadastro. Seu DSN (Nome da Fonte de Dados) é o host da sua instância Unipile dedicada, ele vai em todas as URLs de solicitação. Seu Token de acesso, gerado a partir do página de tokens de acesso, autentica cada chamada como o X-API-KEY cabeçalho.
#: Servidor principal para cada solicitaçãoUNIPILE_DSN=seu-subdomínio.unipile.com:PORT# Enviado como cabeçalho X-API-KEY em todas as chamadasUNIPILE_ACCESS_TOKEN=seu-token-de-acessoVincular a Conta de um Usuário com Autenticação Hospedada
Uma ligação para POST /api/v1/hosted/accounts/link retorna um link. Redireciona o usuário para ele, o Unipile executa o fluxo de login do próprio provedor (código QR, OAuth ou credenciais, dependendo do provedor), em seguida, publica o novo account_id para você notify_url, correspondente ao nome você enviou.
// Gere um link de autenticação hospedado para LinkedIn, Instagram, WhatsApp
const res = await fetch(`https://${DSN}/api/v1/hosted/accounts/link`, {
method: 'POST',
cabeçalhos: { 'X-API-KEY': TOKEN_DE_ACESSO, 'content-type': 'application/json' },
corpo: JSON.stringify({
type: 'criar',
provedores: ['LinkedIn', 'INSTAGRAM', 'WHATSAPP'],
api_url: `https://${DSN}`,
expiraEm: '2026-12-31T00:00:00.000Z',
url_redirecionamento_sucesso: 'https://seunovoapp.com/conectado',
url_de_notificacao: 'https://yourapp.com/webhooks/unipile',
nome: internalUserId // seu próprio ID de usuário, repetido no webhook})
});const { url } = await res.json();// redireciona o usuário para `url`Envie sua primeira mensagem
Após vincular a conta, pegue um chat_id from GET /api/v1/chats e enviar. O corpo é multipart/form-data porque anexos (até 15MB) podem ser enviados na mesma chamada, sem etapa de upload separada.
# Enviar uma mensagem de texto para uma conversa existentecurl --request POST \
--url https://{DSN}/api/v1/chats/{chat_id}/messages \
--header 'Chave-API-X: {ACCESS_TOKEN}' --cabeçalho 'accept: application/json' --cabeçalho 'content-type: multipart/form-data' --formulario 'Olá mundo!'Conecte Sua IA Com o MCP
Seu agente de codificação não precisa adivinhar como a API Unipile funciona. Aponte Claude Desktop, Cursor ou Windsurf para o servidor Unipile MCP e ele terá acesso direto e autenticado à API, além da documentação, para que possa escrever e testar código de integração contra suas contas vinculadas reais.
O que é MCP?
O Protocolo de Contexto do Modelo é um padrão aberto que permite que aplicações de IA acessem de forma segura fontes de dados e ferramentas externas. O servidor Unipile MCP concede ao seu ambiente de desenvolvimento de IA conectividade direta com a API de mensagens, e-mail e calendário da Unipile, sem necessidade de consulta manual de documentos.
{ "mcpServidores"{ "unipilo"{ "url": "https://developer.unipile.com/mcp?branch=v1.0", "cabeçalhos"{ "X-API-KEY": "your-api-key"}
}
}
}Uso Responsável e Conformidade
Antes de construir, é útil entender exatamente como a Unipile lida com os dados e onde as linhas de responsabilidade se situam. Aqui está a versão curta.
Observação sobre Manipulação de Dados
Unipile não mantém um data warehouse independente das mensagens, e-mails ou contatos de seus usuários. Cada solicitação recupera dados por meio da API em nome da conta autenticada e vinculada, limitada a essa sessão. Não há arqu.
Como a Unipile Opera
A Unipile atua como um intermediário técnico independente, não como parceira do LinkedIn, Meta, Microsoft, Google ou Telegram. Toda ação ocorre em nome do usuário autenticado que vinculou sua conta, utilizando as próprias credenciais e sessão desse usuário. A Unipile nunca compartilha credenciais entre clientes.
Limites da Plataforma e Uso Responsável
Unipile repassa os limites de taxa e as restrições de uso definidas por cada plataforma subjacente, ela não os remove. A velocidade com que você envia mensagens, o número de contas que você vincula e como você usa os dados recuperados permanecem uma decisão do cliente, regida pelos termos de cada provedor e pelos requisitos do GDPR e SOC 2 para o armazenamento desses dados.
Unipile não é afiliada, endossada ou patrocinada pelo LinkedIn, Meta, Microsoft, Google ou Telegram. Todos os nomes de produtos, logotipos e marcas mencionados neste guia são propriedade de seus respectivos donos.
Guia da API Unipile - Perguntas Frequentes
As perguntas que os desenvolvedores mais fazem antes da sua primeira integração.
Unipile oferece uma única integração para enviar e receber mensagens no LinkedIn, WhatsApp, Instagram e Telegram, publicar e gerenciar posts e comentários, recuperar perfis, sincronizar caixas de correio do Gmail, Outlook ou IMAP com encadeamento completo, e ler ou criar eventos no Google Agenda e Outlook Agenda. É um conjunto único de endpoints e um modelo de dados único em todas as contas vinculadas, não um SDK separado por provedor.
O Instagram é um provedor de primeira linha na Unipile. Além das mensagens diretas, você pode recuperar e responder a comentários em publicações, reagir a conteúdos e extrair dados de perfil e engajamento, as mesmas categorias disponíveis para o LinkedIn, através da API de Social & Mensagens.
O servidor Unipile MCP (https://developer.unipile.com/mcp?branch=v1.0) permite que ferramentas de desenvolvimento de IA como Claude Desktop, Cursor e Windsurf se conectem diretamente à API Unipile usando seu token de acesso. Seu agente de codificação pode, então, consultar a documentação e chamar a API para ajudá-lo a criar e testar uma integração, em vez de você copiar e colar documentos em uma janela de chat.
Toda solicitação precisa de duas coisas de sua Painel de controle da Unipile: seu DSN, que é o host base para suas solicitações, e um Token de Acesso, enviado como X-API-KEY cabeçalho. Você gera ambos a partir do Painel da API e do página de tokens de acesso.
O caminho mais rápido é o Hosted Auth: uma única chamada para POST /api/v1/hosted/accounts/link retorna um link para o qual você redireciona o usuário. A Unipile cuida do fluxo de login próprio do provedor (QR code, OAuth ou credenciais, dependendo do provedor) e notifica seu webhook com o novo account_id uma vez que a conta esteja vinculada.
Três: Gmail, Perspectivas (que também cobre o Microsoft 365 e o Exchange Online), e IMAP como um fallback universal para qualquer outro provedor de caixa de correio. Todos os três compartilham o mesmo modelo de encadeamento e o mesmo conjunto de endpoints.
Não. Chats, mensagens e anexos utilizam os mesmos endpoints em todo o LinkedIn, WhatsApp, Instagram e Telegram. Você filtra por account_id para direcionar uma conta vinculada e um provedor específicos, o formato da solicitação não muda.
A Unipile opera como um intermediário técnico independente e não mantém um data warehouse paralelo, cada solicitação recupera dados em nome da conta vinculada autenticada. A Unipile é Compatível com o GDPR e Em conformidade com o SOC 2; como você armazena e utiliza os dados que recupera permanece sua responsabilidade como controlador de dados.
O preço é pago conforme o uso, começando em €49/mês para até 10 contas vinculadas, com preço por conta adicional. Cada funcionalidade descrita neste guia, mensagens, posts, e-mail, calendário, MCP, está incluída em todos os níveis, não há restrições de funcionalidades. Veja o detalhamento completo em página de preços.
Ainda tem dúvidas? Nossa equipe está aqui para ajudar.
Comece a construir com Unipile
Vincule sua primeira conta em minutos e envie sua primeira mensagem, postagem, sincronização de e-mail ou agendamento de calendário hoje mesmo.
Pague conforme usa, a partir de €49/mês. Todos os recursos incluídos em todos os planos.