Une API pour construire sur LinkedIn, Instagram, WhatsApp, Email et Votre agent IA
Unipile offre à votre application ou à votre agent IA une intégration unique pour les messages, les publications et les commentaires, les e-mails et le calendrier, sur LinkedIn, Instagram, WhatsApp, Telegram, Gmail, Outlook, IMAP, Google Calendar et Outlook Calendar. Un modèle de données unique, un ensemble de points d'accès, aucun SDK par fournisseur à maintenir.
Répondre à tout compte lié, tout fournisseur
const forme = new DonnéesFormulaire();forme.ajouter(texte, 'Je m'en occupe, merci !');await fetch(`https://${DSN}/api/v1/chats/${chatId}/messages`, { méthode: POST, en-têtes: { 'X-API-KEY': JETON_ACCÈS }, corps: forme});Ce que vous pouvez réellement construire avec Unipile
Unipile n'est pas un widget de messagerie greffé sur un seul canal. C'est une surface d'API complète couvrant trois catégories de produits, chacune mappée à des intégrations de fournisseurs réelles : lier un compte, envoyer un message, publier un post, répondre à un commentaire, synchroniser une boîte de réception ou réserver une réunion. Voici l'ensemble du tableau.
LinkedIn est la surface la plus profonde de l'API
34 fonctionnalités spécifiques à LinkedIn réparties en 6 catégories, en plus de la couche de messagerie principale : prospection, contenu, profils, recrutement et recherche.
Ceci n'est qu'une partie de ce que l'API expose. Voir la liste complète et à jour des fonctionnalités par fournisseur dans la documentation du développeur.
Voir la liste complète des fonctionnalités11 choses que les développeurs créent réellement avec Unipile
Cliquez sur n'importe quel cas d'utilisation pour voir les points de terminaison réels et un extrait de code fonctionnel. Il s'agit de modèles tirés directement de l'utilisation actuelle de l'API par les clients Unipile, et non d'exemples théoriques.
Un prospect répond à votre message sur LinkedIn. Unipile pousse le nouveau message vers votre webhook en temps réel, vous l'affichez dans votre propre interface de messagerie, et votre commercial répond sans jamais ouvrir LinkedIn.
Points de terminaison utilisés// Répondre dans une conversation LinkedIn existante
const forme = new DonnéesFormulaire();
formulaire.ajouter(texte, 'Merci de m'avoir répondu !');await fetch(`https://${DSN}/api/v1/chats/${chatId}/messages`,
méthode : POST, en-têtes : { 'X-API-KEY': JETON_ACCES },
corps : formulaire // multipart/form-data, aucun en-tête JSON requis});Un commercial trouve un prospect idéal grâce à une recherche LinkedIn et envoie une demande de connexion directement depuis votre application, avec une courte note personnalisée au lieu d'une invitation vide. Unipile renvoie un `invitation_id` que vous pouvez vérifier par rapport à la liste des invitations en attente, ou intercepter le moment où elle se transforme en connexion acceptée grâce à un webhook.
Points de terminaison utilisés// Envoyer une invitation de connexion LinkedIn personnalisée
const invitation await fetch(`https://${DSN}/api/v1/users/invite`,
méthode : POST, en-têtes : { 'X-API-KEY': JETON_ACCES, type de contenu: 'application/json' },
corps : JSON.stringify({
account_id: accountId,
provider_id: prospectProviderId,
message: 'J'ai apprécié votre exposé sur l'exportation, j'aimerais beaucoup que nous restions en contact.'})
}).puis(r => r.json());// invite.invitation_id: sondage GET /users/invite/sent, ou écoutez le webhook "new_relation"Acheminez les messages directs Instagram d'un compte professionnel lié directement dans votre outil de support ou votre CRM. Les agents lisent et répondent depuis votre propre interface, Unipile maintient les deux côtés de la conversation synchronisés.
Points de terminaison utilisés// Lister les conversations Instagram d'un compte lié
const rés = await fetch(`https://${DSN}/api/v1/chats?account_id=${igAccountId}`, ,
en-têtes : { 'X-API-KEY': JETON_ACCÈS }
});const { éléments: conversations } = await res.json();// les conversations s'affichent désormais directement dans votre boîte de réception CRMRécupérez les commentaires sur vos publications Instagram, répondez publiquement depuis votre tableau de bord et réagissez, afin que votre équipe des réseaux sociaux n'ait jamais à passer à l'application Instagram pour gérer l'engagement.
Points de terminaison utilisés// Récupérer les commentaires d'une publication, puis publier une réponse
const commentaires = await fetch(`https://${DSN}/api/v1/posts/${postId}/comments`, ,
en-têtes : { 'X-API-KEY': Jeton d'accès }
}).puis(r => r.json());await fetch(`https://${DSN}/api/v1/posts/${postId}/comments`,
méthode : POST, en-têtes : { 'X-API-KEY': JETON_ACCES, type de contenu: 'application/json' },
corps : JSON.stringify({ texte : 'Merci ! Je vous envoie un message privé.' })
});Exécutez une recherche de personnes sur LinkedIn avec les mêmes filtres que ceux que votre équipe utilise déjà, puis intégrez les résultats directement dans votre CRM ou une séquence de prospection, un compte lié, aucune exportation manuelle.
Points de terminaison utilisés// Exécuter une recherche de personnes sur LinkedIn
const résultats = await fetch(`https://${DSN}/api/v1/linkedin/search`,
méthode : POST, en-têtes : { 'X-API-KEY': JETON_ACCES, type de contenu: 'application/json' },
corps : JSON.stringify({ identifiant_compte: accountId, catégorie: 'gens', mots-clés : 'VP Ventes, Paris' }).
}).puis(r => r.json());Planifier une publication à partir de votre propre calendrier de contenu, récupérer les commentaires qu'elle génère et réagir à l'engagement, le tout sans qu'un humain ne se connecte à LinkedIn pour publier.
Points de terminaison utilisésPublier une mise à jour sur LinkedIn depuis un compte lié
await fetch(`https://${DSN}/api/v1/posts`,
méthode : POST, en-têtes : { 'X-API-KEY': JETON_ACCES, type de contenu: 'application/json' },
corps : JSON.stringify({ id_compte: accountId, texte: 'Nous venons d'expédier...' })
});Votre appel se termine, votre application déclenche un message WhatsApp avec un récapitulatif et les prochaines étapes, envoyé depuis le même numéro que votre équipe utilise déjà pour discuter avec ce contact.
Points de terminaison utilisés// Démarrer une nouvelle conversation WhatsApp avec un résumé
const forme = new DonnéesFormulaire();
formulaire.ajouter('identifiant_de_compte', whatsappAccountId);
formulaire.ajouter(texte, 'Super discussion aujourd'hui, voici le récapitulatif...');
formulaire.ajouter('identifiants_participants', contactPhoneId);await fetch(`https://${DSN}/api/v1/chats`, méthode : POST, en-têtes : { 'X-API-KEY': JETON_ACCES }, corps : formulaire });Liez un compte Telegram et traitez-le exactement comme n'importe quelle autre boîte de réception : listez les conversations, recevez instantanément de nouveaux messages via webhook, et répondez depuis votre propre outil.
Points de terminaison utilisés// Lister les chats Telegram pour un compte associé
const chats = await fetch(`https://${DSN}/api/v1/chats?account_id=${tgAccountId}`, ,
en-têtes : { 'X-API-KEY': Jeton d'accès }
}).puis(r => r.json());Intégrez une boîte aux lettres dans votre produit avec les fils de discussion intacts, quel que soit le fournisseur choisi par votre utilisateur parmi les 3 : Gmail, Outlook ou IMAP. Un seul modèle de données, aucune logique distincte pour Gmail ou Outlook dans votre application.
Points de terminaison utilisés// Récupérer les derniers e-mails d'une boîte aux lettres liée, triés par fil
const boîte de réception = await fetch(`https://${DSN}/api/v1/mails?account_id=${mailboxId}`, ,
en-têtes : { 'X-API-KEY': Jeton d'accès }
}).puis(r => r.json());Même forme, que mailboxId pointe vers Gmail, Outlook ou IMAPUne fois qu'un prospect accepte un appel dans une conversation LinkedIn ou un fil d'e-mails, vérifiez ses disponibilités et créez l'événement dans son calendrier Google ou Outlook, sans quitter votre application.
Points de terminaison utilisésCréer un événement de calendrier une fois qu'une réunion est confirmée
await fetch(`https://${DSN}/api/v1/calendars/${calendarId}/events`,
méthode : POST, en-têtes : { 'X-API-KEY': JETON_ACCES, type de contenu: 'application/json' },
corps : JSON.stringify({ titre: 'Appel de présentation', }, début_heure : débutISO, fin_heure : finISO, participants : [email] })
});Au lieu d'interroger, abonnez-vous une seule fois et recevez un webhook dès qu'un nouveau message, un nouvel e-mail ou un changement de statut de compte se produit, quel que soit le fournisseur connecté.
Points de terminaison utilisés// S'abonner aux événements de nouveaux messages sur tous les comptes liés
await fetch(`https://${DSN}/api/v1/webhooks`,
méthode : POST, en-têtes : { 'X-API-KEY': JETON_ACCES, type de contenu: 'application/json' },
corps : JSON.stringifysource : 'messagerie', événement: 'message_reçu', url_requise : 'https://yourapp.com/webhooks/unipile' })
});Ce ne sont que 11 modèles. Les mêmes points de terminaison se combinent pour faire ce que votre application ou votre agent d'IA a besoin de faire.
Commencez à construire votre propre cas d'utilisationVotre premier appel d'API, en trois étapes
Obtenez vos identifiants, liez le compte d'un utilisateur, envoyez votre premier message. Voici exactement comment, avec la logique derrière chaque appel, pas seulement le code.
Obtenez votre DSN et votre jeton d'accès
Inscription à tableau de bord.unipile.com/inscription. Votre DSN (Nom de la source de données) est l'hôte de votre instance Unipile dédiée, il figure dans l'URL de chaque requête. Votre Jeton d'accès, généré à partir du page des jetons d'accès, authentifie chaque appel en tant que X-API-KEY en-tête.
# : serveur hôte de base pour chaque requêteUNIPILE_DSN=votre-sous-domaine.unipile.com:PORT# Envoyé dans l'en-tête X-API-KEY à chaque appelUNIPILE_ACCESS_TOKEN=votre-jeton-d'accèsLier le compte d'un utilisateur à l'authentification hébergée
Un seul appel à POST /api/v1/hébergé/comptes/lier renvoie un lien. Redirigez l'utilisateur vers celui-ci, Unipile exécute le propre flux de connexion du fournisseur (QR code, OAuth ou identifiants selon le fournisseur), puis publie le nouveau account_id à vous notify_url, mis en correspondance avec le nom tu as envoyé.
Générer un lien d'authentification hébergé pour LinkedIn, Instagram, WhatsApp
const rés = await fetch(`https://${DSN}/api/v1/hosted/accounts/link`,
méthode : POST, en-têtes : { 'X-API-KEY': JETON_ACCES, type de contenu: 'application/json' },
corps : JSON.stringify({
type: 'créer',
fournisseurs : ['LIEN', 'INSTAGRAM', 'WhatsApp'],
api_url : `https://${DSN}`,
expireSur : '2026-12-31T00:00:00.000Z',
url_de_redirection_en_cas_de_succès: 'https://yourapp.com/connecté',
} url de notification : 'https://yourapp.com/webhooks/unipile', ,
nom : internalUserId // votre propre identifiant utilisateur, renvoyé dans le webhook})
});const { url } = await res.json();// rediriger l'utilisateur vers `url`Envoyez votre premier message
Une fois le compte lié, prends un chat_id from GET /api/v1/chats et envoyer. Le corps du multipart/form-data car les pièces jointes (jusqu'à 15 Mo) peuvent accompagner le même appel, sans étape de téléchargement distincte.
# Envoyer un SMS dans une conversation existantecurl --request POST \
--url https://{DSN}/api/v1/chats/{chat_id}/messages \
--header 'X-API-KEY : {ACCESS_TOKEN}' --en-tête 'accept : application/json' --en-tête 'content-type : multipart/form-data' --formulaire 'Bonjour le monde !'Connectez votre IA avec MCP
Votre agent de codage n'a pas besoin de deviner comment fonctionne l'API Unipile. Pointez Claude Desktop, Cursor ou Windsurf vers le serveur MCP Unipile et il obtient un accès direct et authentifié à l'API, ainsi qu'à la documentation, afin qu'il puisse écrire et tester du code d'intégration avec vos vrais comptes liés.
Qu'est-ce que MCP ?
Le Model Context Protocol est une norme ouverte qui permet aux applications d'IA d'accéder en toute sécurité à des sources de données et à des outils externes. Le serveur Unipile MCP accorde à votre environnement de développement d'IA une connectivité directe aux API de messagerie, d'e-mail et de calendrier d'Unipile, sans avoir besoin de recherches manuelles dans la documentation.
{ "mcpServeurs"{ "unipile"{ "url": "https://developer.unipile.com/mcp?branch=v1.0", "en-têtes"{ "X-API-KEY": "votre-api-clé"}
}
}
}Utilisation responsable et conformité
Avant de construire, il est utile de comprendre exactement comment Unipile gère les données et où se situent les lignes de responsabilité. Voici la version courte.
Note de traitement des données
Unipile ne maintient pas d'entrepôt de données indépendant de vos messages, e-mails ou contacts de vos utilisateurs. Chaque requête récupère des données via l'API pour le compte lié et authentifié, limité à cette session. Il n'y a pas d'archive parallèle ni d'exportation en masse au-delà de ce à quoi l'utilisateur lié a déjà accès.
Comment fonctionne Unipile
Unipile agit en tant qu'intermédiaire technique indépendant, et non comme un partenaire de LinkedIn, Meta, Microsoft, Google ou Telegram. Chaque action est effectuée pour le compte de l'utilisateur authentifié ayant lié son compte, en utilisant ses propres identifiants et sa session. Unipile ne partage jamais d'identifiants entre clients.
Limites de la plateforme et utilisation responsable
Unipile relaie les limites de débit et les contraintes d'utilisation définies par chaque plateforme sous-jacente, il ne les supprime pas. La vitesse à laquelle vous envoyez des messages, le nombre de comptes que vous liez et la manière dont vous utilisez les données récupérées restent une décision côté client, régie par les conditions de chaque fournisseur ainsi que par les exigences du RGPD et de la norme SOC 2 pour le stockage de ces données.
Unipile n'est affilié, approuvé ou sponsorisé par LinkedIn, Meta, Microsoft, Google ou Telegram. Tous les noms de produits, logos et marques mentionnés dans ce guide appartiennent à leurs propriétaires respectifs.
Guide de l'API Unipile - FAQ
Les questions que les développeurs posent le plus avant leur première intégration.
Unipile vous offre une seule intégration pour envoyer et recevoir des messages sur LinkedIn, WhatsApp, Instagram et Telegram, publier et gérer des publications et des commentaires, récupérer des profils, synchroniser des boîtes aux lettres Gmail, Outlook ou IMAP avec un fil de discussion complet, et lire ou créer des événements Google Agenda et Calendrier Outlook. Il s'agit d'un ensemble unique de points d'accès et d'un modèle de données unique pour chaque compte lié, et non d'un SDK séparé par fournisseur.
Instagram est un fournisseur de premier ordre dans Unipile. Au-delà des messages directs, vous pouvez récupérer et répondre aux commentaires sur les publications, réagir au contenu, et extraire des données de profil et d'engagement, les mêmes catégories disponibles pour LinkedIn, via l'API Social & Messaging.
Le serveur Unipile MCP (https://developer.unipile.com/mcp?branch=v1.0) permet aux outils de développement d'IA tels que Claude Desktop, Cursor et Windsurf de se connecter directement à l'API Unipile à l'aide de votre jeton d'accès. Votre agent de codage peut alors interroger la documentation et appeler l'API pour vous aider à créer et à tester une intégration, au lieu que vous ayez à copier-coller la documentation dans une fenêtre de discussion.
Chaque demande nécessite deux choses de votre part Tableau de bord Unipile: votre DSN, qui est l'hôte de base pour vos requêtes, et un jeton d'accès, envoyé sous forme de X-API-KEY en-tête. Vous générez les deux depuis le tableau de bord de l'API et le page des jetons d'accès.
Le chemin le plus rapide est l'authentification hébergée : un seul appel à POST /api/v1/hébergé/comptes/lier renvoie un lien qui redirige l'utilisateur. Unipile gère le flux de connexion du fournisseur lui-même (QR code, OAuth, ou identifiants selon le fournisseur) et notifie votre webhook avec le nouveau account_id une fois le compte lié.
Trois : Gmail, Outlook (qui couvre également Microsoft 365 et Exchange Online), et IMAP en tant que solution de repli universelle pour tout autre fournisseur de messagerie. Tous trois partagent le même modèle d'organisation des fils de discussion et le même ensemble de points de terminaison.
Non. Les discussions, messages et pièces jointes utilisent les mêmes points de terminaison sur LinkedIn, WhatsApp, Instagram et Telegram. Vous filtrez par account_id pour cibler un compte lié et un fournisseur spécifiques, la forme de la requête ne change pas.
Unipile fonctionne comme un intermédiaire technique indépendant et ne maintient pas d'entrepôt de données parallèle, chaque requête récupère des données au nom du compte lié authentifié. Unipile est Conforme au GDPR et Conforme SOC 2; la manière dont vous stockez et utilisez les données que vous récupérez reste votre responsabilité en tant que responsable du traitement des données.
La tarification est à l'utilisation, à partir de 49 €/mois pour un maximum de 10 comptes liés, puis au compte au-delà. Toutes les fonctionnalités décrites dans ce guide, messagerie, publications, e-mail, calendrier, MCP, sont incluses à tous les niveaux, il n'y a pas de restriction de fonctionnalité. Voir la répartition complète sur la page de tarifs..
Vous avez encore des questions ? Notre équipe est là pour vous aider.
Commencez à construire avec Unipile
Connectez votre premier compte en quelques minutes, et envoyez votre premier message, publication, synchronisation d'e-mails ou réservation de calendrier dès aujourd'hui.
Paiement à l'utilisation, à partir de 49 €/mois. Toutes les fonctionnalités incluses à chaque niveau.