Si vous créez un CRM, un ATS ou un outil de sensibilisation, il y a de fortes chances que vous cherchiez à intégrer les fonctionnalités de LinkedIn directement dans votre application. Qu'il s'agisse de synchroniser des conversations, d'envoyer des InMails, de gérer des contacts ou de publier du contenu, API LinkedIn L'intégration de Python est devenue un atout essentiel pour les éditeurs de SaaS qui veulent rester compétitifs.
Mais voilà le hic : l'API officielle de LinkedIn nécessite de rejoindre leur programme Partenaire, ce qui implique un long processus d'approbation. Unipile offre une voie plus rapide pour l'intégration pour les éditeurs de logiciels. C'est là qu'intervient Unipile, une puissante plateforme d'API unifiée qui vous permet de connecter LinkedIn (et d'autres canaux comme WhatsApp, Gmail, Instagram, les calendriers…) en quelques lignes de Python seulement.
Dans ce guide complet, nous vous montrerons :
- Comment connecter LinkedIn en utilisant Python via l’API unifiée d’Unipile
- Ce que vous pouvez réellement faire avec l'API LinkedIn en Python : de la messagerie aux profils en passant par les flux d'intégration
- Exemples réels de code Python basés sur le SDK d'Unipile
- Comment construire une intégration multicanal complète sans écrire 10 connecteurs différents ?
Pourquoi les plateformes logicielles choisissent Python pour l'intégration de LinkedIn
La simplicité et la puissance de Python pour l'automatisation des API. Python est le langage de prédilection de nombreuses équipes de backend qui construisent des automatisations et des intégrations. Il est rapide à écrire, lisible et dispose d'un écosystème massif de bibliothèques telles que requests, pydantic ou asyncio qui le rendent parfait pour les flux de travail des API.
demandes d'importation
url = "https://api1.unipile.com:13111/api/v1/accounts"
headers = {"accept" : "application/json"}
response = requests.get(url, headers=headers)
print(response.text)
demandes d'importation
url = "https://api1.unipile.com:13111/api/v1/users/identifier"
headers = {"accept" : "application/json"}
response = requests.get(url, headers=headers)
print(response.text)
Accéder à l'API LinkedIn - LinkedIn Partner Way vs Unipile Shortcut (avec Python)
La voie officielle : Programme de partenariat LinkedIn
LinkedIn propose plusieurs API dans le cadre de son programme de partenariat, chacune répondant à un cas d'utilisation distinct :
-
Profil API: Permet d'accéder aux détails du profil de l'utilisateur tels que le nom, le titre et le résumé professionnel.
-
Connexions API: Permet de retrouver les connexions réseau de premier degré d'un utilisateur.
-
Partager l'API: Permet à votre application de publier des messages (texte, URL, média) au nom des utilisateurs authentifiés.
-
Invitation API: Permet d'envoyer des demandes de connexion à d'autres membres de LinkedIn de manière programmatique.
-
Organisation API: Permet d'accéder à des données sur les pages d'entreprises de LinkedIn, y compris les administrateurs et les messages.
-
API UGC (contenu généré par l'utilisateur): Prise en charge de la publication et de la gestion de messages multimédias (vidéos, images, documents).
-
API de conformité: Permet de soumettre des rapports sur les contenus violant les politiques.
L'alternative pour les développeurs : Unipile
Unipile offre un moyen simplifié d'intégrer les fonctionnalités de LinkedIn dans votre application, conçu pour les éditeurs de logiciels et les développeurs. Vous pouvez :
- Connecter des comptes d'utilisateurs avec un seul appel API
- Accéder à la boîte de réception, envoyer des messages et des InMails, et interagir avec les messages.
- Gérer le vivier des recruteurs et des navigateurs de vente
- Créez des flux de prospection, suivez le statut des invitations et enrichissez les profils pour le compte de vos utilisateurs
Tout cela est disponible avec PythonLinkedIn, à l'aide d'un flux simple basé sur les demandes et d'une documentation claire. Que vous construisiez un CRM, un ATS ou un produit de sensibilisation, Unipile vous offre une intégration LinkedIn puissante et prête à l'emploi.
Configuration de l'environnement Python pour LinkedIn
Installer les dépendances : pip install requests
S'authentifier via Tableau de bord Unipile
Créer un compte et une application
Copiez votre clé API (X-API-KEY) et l'URL DSN
Votre première requête avec LinkedIn API Python : Connecter un compte LinkedIn
Bien que ce point d'accès renvoie tous les services connectés (LinkedIn, Gmail, etc.), il est particulièrement utile pour les applications axées sur LinkedIn. Vous pouvez filtrer et afficher uniquement les comptes LinkedIn connectés à votre plateforme. Il s'agit d'une étape fondamentale avant d'envoyer des messages, de récupérer des profils ou de synchroniser les données de la boîte de réception avec LinkedIn.
demandes d'importation
url = "https://api1.unipile.com:13111/api/v1/accounts"
headers = {"accept" : "application/json", "X-API-KEY" : "your-api-key"}
response = requests.get(url, headers=headers)
print(response.json())
Fonctionnalités principales de l'API LinkedIn que vous pouvez utiliser avec Python
Une fois que vous avez authentifié un utilisateur et connecté son compte LinkedIn, la valeur réelle commence. Que vous construisiez des fonctionnalités pour les recruteurs, les représentants des ventes ou les équipes de sensibilisation, Python et l'API Unipile vous permettent d'accéder à des données et des interactions LinkedIn riches et exploitables.
Vous trouverez ci-dessous une liste de fonctionnalités LinkedIn à fort impact que vous pouvez activer directement depuis votre application à l'aide de Python. Chaque action a été conçue pour les développeurs : RESTful, documentée et prête pour la production.
Lister tous les comptes LinkedIn avec Python
Pour récupérer tous les comptes LinkedIn liés à un utilisateur, utilisez la fonction GET /comptes point de terminaison. Cela permet à votre application de savoir quels canaux sont déjà autorisés. À partir de là, vous pouvez filtrer les résultats pour n'afficher que les comptes LinkedIn et procéder à des actions telles que la messagerie, la récupération de profils ou la synchronisation des données de la boîte de réception.
Il s'agit d'une première étape cruciale avant de mettre en œuvre des fonctionnalités plus approfondies de LinkedIn.
demandes d'importation
url = "https://api1.unipile.com:13111/api/v1/accounts"
headers = {"accept" : "application/json"}
response = requests.get(url, headers=headers)
print(response.text)
{
"object" : "AccountList",
"items" : [
{
"object" : "Compte",
"type" : "MOBILE",
"connection_params" : {
"im" : {
"phone_number" : "string",
"sim_serial_number" : "string"
},
"call" : {
"phone_number" : "string",
"sim_serial_number" : "chaîne"
}
},
"last_fetched_at" : "2025-12-31T23:59:59.999Z",
"id" : "string",
"name" : "string",
"created_at" : "2025-12-31T23:59:59.999Z",
"current_signature" : "string",
"signatures" : [
{
"title" : "chaîne",
"content" : "chaîne"
}
],
"groupes" : [
"chaîne"
],
"sources" : [
{
"id" : "string",
"status" : "OK"
}
]
},
{
"object" : "Compte",
"type" : "MAIL",
"connection_params" : {
"mail" : {
"imap_host" : "string",
"imap_port" : 0,
"imap_user" : "string",
"imap_encryption" : "tls",
"smtp_host" : "string",
"smtp_port" : 0,
"smtp_user" : "string"
}
},
"id" : "string",
"name" : "string",
"created_at" : "2025-12-31T23:59:59.999Z",
"current_signature" : "string",
"signatures" : [
{
"title" : "chaîne",
"content" : "chaîne"
}
],
"groupes" : [
"chaîne"
],
"sources" : [
{
"id" : "string",
"status" : "OK"
}
]
},
{
"object" : "Compte",
"type" : "GOOGLE_OAUTH",
"connection_params" : {
"mail" : {
"id" : "string",
"username" : "chaîne"
},
"calendar" : {
"id" : "string",
"username" : "chaîne"
}
},
"id" : "string",
"name" : "string",
"created_at" : "2025-12-31T23:59:59.999Z",
"current_signature" : "string",
"signatures" : [
{
"title" : "chaîne",
"content" : "chaîne"
}
],
"groupes" : [
"chaîne"
],
"sources" : [
{
"id" : "string",
"status" : "OK"
}
]
},
{
"object" : "Compte",
"type" : "ICLOUD",
"connection_params" : {
"mail" : {
"imap_host" : "string",
"imap_port" : 0,
"imap_user" : "string",
"imap_encryption" : "tls",
"smtp_host" : "string",
"smtp_port" : 0,
"smtp_user" : "string"
}
},
"id" : "string",
"name" : "string",
"created_at" : "2025-12-31T23:59:59.999Z",
"current_signature" : "string",
"signatures" : [
{
"title" : "chaîne",
"content" : "chaîne"
}
],
"groupes" : [
"chaîne"
],
"sources" : [
{
"id" : "string",
"status" : "OK"
}
]
},
{
"object" : "Compte",
"type" : "OUTLOOK",
"connection_params" : {
"mail" : {
"id" : "string",
"username" : "chaîne"
},
"calendar" : {
"id" : "string",
"username" : "chaîne"
}
},
"id" : "string",
"name" : "string",
"created_at" : "2025-12-31T23:59:59.999Z",
"current_signature" : "string",
"signatures" : [
{
"title" : "chaîne",
"content" : "chaîne"
}
],
"groupes" : [
"chaîne"
],
"sources" : [
{
"id" : "string",
"status" : "OK"
}
]
},
{
"object" : "Compte",
"type" : "GOOGLE_CALENDAR",
"connection_params" : {
"calendar" : "string"
},
"sync_token" : "string",
"id" : "string",
"name" : "string",
"created_at" : "2025-12-31T23:59:59.999Z",
"current_signature" : "string",
"signatures" : [
{
"title" : "chaîne",
"content" : "chaîne"
}
],
"groupes" : [
"chaîne"
],
"sources" : [
{
"id" : "string",
"status" : "OK"
}
]
},
{
"object" : "Compte",
"type" : "WHATSAPP",
"connection_params" : {
"im" : {
"phone_number" : "string"
}
},
"id" : "string",
"name" : "string",
"created_at" : "2025-12-31T23:59:59.999Z",
"current_signature" : "string",
"signatures" : [
{
"title" : "chaîne",
"content" : "chaîne"
}
],
"groupes" : [
"chaîne"
],
"sources" : [
{
"id" : "string",
"status" : "OK"
}
]
},
{
"object" : "Compte",
"type" : "LINKEDIN",
"connection_params" : {
"im" : {
"id" : "string",
"publicIdentifier" : "string",
"username" : "chaîne",
"premiumId" : "string",
"premiumContractId" : "string",
"premiumFeatures" : [
"recruteur",
"sales_navigator",
"premium"
],
"organisations" : [
{
"name" : "string",
"messaging_enabled" : true,
"organization_urn" : "string",
"mailbox_urn" : "string"
}
],
"proxy" : {
"source" : "USER",
"host" : "string",
"port" : 0,
"protocol" : "http",
"username" : "string",
"password" : "chaîne"
}
}
},
"id" : "string",
"name" : "string",
"created_at" : "2025-12-31T23:59:59.999Z",
"current_signature" : "string",
"signatures" : [
{
"title" : "chaîne",
"content" : "chaîne"
}
],
"groupes" : [
"chaîne"
],
"sources" : [
{
"id" : "string",
"status" : "OK"
}
]
},
{
"object" : "Compte",
"type" : "SLACK",
"connection_params" : {
"im" : {
"url" : "string",
"user" : "chaîne",
"user_id" : "chaîne",
"team" : "chaîne",
"team_id" : "chaîne"
}
},
"id" : "string",
"name" : "string",
"created_at" : "2025-12-31T23:59:59.999Z",
"current_signature" : "string",
"signatures" : [
{
"title" : "chaîne",
"content" : "chaîne"
}
],
"groupes" : [
"chaîne"
],
"sources" : [
{
"id" : "string",
"status" : "OK"
}
]
},
{
"object" : "Compte",
"type" : "TWITTER",
"connection_params" : {
"im" : {
"id" : "string",
"username" : "chaîne"
}
},
"id" : "string",
"name" : "string",
"created_at" : "2025-12-31T23:59:59.999Z",
"current_signature" : "string",
"signatures" : [
{
"title" : "chaîne",
"content" : "chaîne"
}
],
"groupes" : [
"chaîne"
],
"sources" : [
{
"id" : "string",
"status" : "OK"
}
]
},
{
"object" : "Compte",
"type" : "EXCHANGE",
"connection_params" : {
"mail" : {
"imap_host" : "string",
"imap_port" : 0,
"imap_user" : "string",
"imap_encryption" : "tls",
"smtp_host" : "string",
"smtp_port" : 0,
"smtp_user" : "string"
}
},
"id" : "string",
"name" : "string",
"created_at" : "2025-12-31T23:59:59.999Z",
"current_signature" : "string",
"signatures" : [
{
"title" : "chaîne",
"content" : "chaîne"
}
],
"groupes" : [
"chaîne"
],
"sources" : [
{
"id" : "string",
"status" : "OK"
}
]
},
{
"object" : "Compte",
"type" : "TELEGRAM",
"connection_params" : {
"im" : {
"user_id" : "string",
"username" : "chaîne"
}
},
"id" : "string",
"name" : "string",
"created_at" : "2025-12-31T23:59:59.999Z",
"current_signature" : "string",
"signatures" : [
{
"title" : "chaîne",
"content" : "chaîne"
}
],
"groupes" : [
"chaîne"
],
"sources" : [
{
"id" : "string",
"status" : "OK"
}
]
},
{
"object" : "Compte",
"type" : "INSTAGRAM",
"connection_params" : {
"im" : {
"id" : "string",
"username" : "chaîne"
}
},
"id" : "string",
"name" : "string",
"created_at" : "2025-12-31T23:59:59.999Z",
"current_signature" : "string",
"signatures" : [
{
"title" : "chaîne",
"content" : "chaîne"
}
],
"groupes" : [
"chaîne"
],
"sources" : [
{
"id" : "string",
"status" : "OK"
}
]
},
{
"object" : "Compte",
"type" : "MESSENGER",
"connection_params" : {
"im" : {
"id" : "string",
"username" : "chaîne"
}
},
"id" : "string",
"name" : "string",
"created_at" : "2025-12-31T23:59:59.999Z",
"current_signature" : "string",
"signatures" : [
{
"title" : "chaîne",
"content" : "chaîne"
}
],
"groupes" : [
"chaîne"
],
"sources" : [
{
"id" : "string",
"status" : "OK"
}
]
}
]
}
Récupérer le profil d'un utilisateur LinkedIn avec Python
Pour accéder aux données de profil enrichies de LinkedIn, utilisez la fonction GET /users/{identifier} point d'accès fourni par Unipile. Cela permet à votre application de récupérer les données de profil telles que le nom, le poste actuel et l'entreprise, au nom de l'utilisateur connecté.
Il s'agit d'une fonctionnalité puissante qui permet d'enrichir les enregistrements CRM ou ATS directement à partir de votre application. Veillez à respecter les limites de taux et les restrictions fixées par la plateforme pour maintenir la conformité.
demandes d'importation
url = "https://api1.unipile.com:13111/api/v1/users/identifier"
headers = {"accept" : "application/json"}
response = requests.get(url, headers=headers)
print(response.text)
{
"provider" : "LINKEDIN",
"provider_id" : "string",
"public_identifier" : "string",
"first_name" : "string",
"last_name" : "chaîne",
"headline" : "string",
"résumé" : "string",
"contact_info" : {
"emails" : [
"chaîne"
],
"phones" : [
"chaîne"
],
"adresses" : [
"chaîne"
],
"socials" : [
{
"type" : "string",
"name" : "chaîne"
}
]
},
"birthdate" : {
"month" : 0,
"day" : 0
},
"primary_locale" : {
"country" : "string",
"language" : "string"
},
"location" : "chaîne",
"websites" : [
"chaîne"
],
"profile_picture_url" : "string",
"profile_picture_url_large" : "string",
"background_picture_url" : "string",
"hashtags" : [
"chaîne"
],
"can_send_inmail" : true,
"is_open_profile" : true,
"is_premium" : true,
"is_influencer" : true,
"is_creator" : true,
"is_hiring" : true,
"is_open_to_work" : true,
"is_saved_lead" : true,
"is_crm_imported" : true,
"is_relationship" : true,
"is_self" : true,
"invitation" : {
"type" : "SENT",
"status" : "PENDING"
},
"work_experience" : [
{
"position" : "string",
"company_id" : "chaîne",
"company" : "chaîne",
"location" : "chaîne",
"description" : "chaîne",
"skills" : [
"chaîne"
],
"current" : vrai,
"status" : "string",
"start" : "chaîne",
"end" : "chaîne"
}
],
"volunteering_experience" : [
{
"company" : "string",
"description" : "chaîne",
"rôle" : "chaîne",
"cause" : "chaîne",
"start" : "chaîne",
"end" : "chaîne"
}
],
"éducation" : [
{
"degree" : "string",
"school" : "string",
"field_of_study" : "string",
"start" : "chaîne",
"end" : "string"
}
],
"skills" : [
{
"name" : "string",
"endorsement_count" : 0,
"endorsement_id" : 0,
"insights" : [
"string"
],
"endorsed" : vrai
}
],
"langues" : [
{
"name" : "chaîne",
"proficiency" : "chaîne"
}
],
"certifications" : [
{
"name" : "string",
"organisation" : "chaîne",
"url" : "chaîne"
}
],
"projets" : [
{
"name" : "chaîne",
"description" : "chaîne",
"skills" : [
"chaîne"
],
"start" : "chaîne",
"end" : "chaîne"
}
],
"recommandations" : {
"received" : [
{
"texte" : "string",
"caption" : "chaîne",
"actor" : {
"first_name" : "string",
"last_name" : "chaîne",
"provider_id" : "string",
"headline" : "string",
"public_identifier" : "string",
"public_profile_url" : "string",
"profile_picture_url" : "string"
}
}
],
"given" : [
{
"text" : "string",
"caption" : "chaîne",
"actor" : {
"first_name" : "string",
"last_name" : "chaîne",
"provider_id" : "string",
"headline" : "string",
"public_identifier" : "string",
"public_profile_url" : "string",
"profile_picture_url" : "string"
}
}
]
},
"follower_count" : 0,
"connections_count" : 0,
"shared_connections_count" : 0,
"network_distance" : "PREMIER_DEGRÉ",
"public_profile_url" : "string",
"objet" : "UserProfile"
}
Envoyer un message ou un InMail
Pour initier une conversation LinkedIn ou envoyer un InMail à l'aide de Python, vous pouvez appeler la fonction POST /chats d'Unipile. Ce point de terminaison prend en charge les messages un à un et même des options avancées telles que les InMails du recruteur ou le formatage HTML dans le corps de votre message.
Vous aurez besoin de l'URN LinkedIn du destinataire et de l'ID de compte correct provenant de vos étapes de connexion précédentes. Cette fonctionnalité est idéale pour les outils d'engagement commercial, les suivis de candidats et les flux de sensibilisation intelligents intégrés à votre SaaS.
Voici comment cela fonctionne :
demandes d'importation
url = "https://api1.unipile.com:13111/api/v1/chats"
payload = "-----011000010111000001101001\r\n-----011000010111000001101001--"
headers = {
"accept" : "application/json",
"content-type" : "multipart/form-data; boundary=---011000010111000001101001"
}
response = requests.post(url, data=payload, headers=headers)
print(response.text)
{
"object" : "ChatStarted",
"chat_id" : "string",
"message_id" : "string"
}
Passer au multi-canal : Intégrer tous les canaux de communication avec Python
Ajouter Gmail, WhatsApp, Instagram et le calendrier instantanément
À partir du même SDK, laissez les utilisateurs :
- Synchronisation des boîtes de réception Gmail et Outlook
- Envoyer des messages via WhatsApp et Instagram
- Planifier des réunions via Google Calendar
1 intégration = plus de 200 fonctionnalités disponibles
Avec une seule clé API, vous contrôlez l'expérience de messagerie de vos utilisateurs sur tous les canaux.
Connexion au compte
2 points finaux disponibles
Messages
10 points finaux disponibles
Utilisateurs/Profils
8 points finaux disponibles
Postes/Commentaires
6 points finaux disponibles
Spécifique
17 points finaux disponibles
Webhooks
3 événements disponibles
Boîtes de réception
4 boîtes de réception disponibles
Intégrer les fonctionnalités de l'API LinkedIn avec du code Python
1. S'inscrire à Unipile
2. Se connecter au tableau de bord
3. Obtenez votre DSN
Obtenez votre DSN (Data Source Name) qui doit être utilisé pour vos requêtes.
5. Connecter le compte LinkedIn
Avantages pour les développeurs de la mise en œuvre de l'API Linkedin avec Python
Intégration et conseils techniques
Rationalisez l'intégration de l'API LinkedIn grâce à une documentation détaillée et à des exemples de code. Ces outils sont conçus pour simplifier le processus de configuration et améliorer rapidement les capacités de communication de votre plateforme.
Soutien aux développeurs
Accédez à notre équipe de support spécialisée pour une assistance continue pendant l'intégration. Cela inclut un dépannage en temps réel et des conseils stratégiques de la part des experts d'Unipile, garantissant une utilisation optimale de l'API LinkedIn.
Maintenance et mises à jour proactives
Bénéficiez de mises à jour régulières et d'une maintenance proactive, afin que toutes les fonctionnalités de l'API LinkedIn soient alignées sur les dernières normes et améliorations de LinkedIn, garantissant ainsi des performances sans faille et des temps d'arrêt minimaux.
FAQs
Comment puis-je me connecter à l'API LinkedIn en utilisant Python ?
Utilisez le point de terminaison des comptes d'Unipile et fournissez des informations d'identification ou une authentification basée sur les cookies. Vous recevrez un identifiant de compte valide.
Puis-je envoyer des messages LinkedIn avec Python ?
Oui. Utiliser POST /chats avec l'URN du destinataire et le contenu de votre message.
Quels sont les principaux points d'accès disponibles via l'API d'Unipile ?
Messages, profils, messages, invitations, recherche, pipeline de recrutement, et plus encore.
Comment Unipile se compare-t-il au programme de partenariat officiel de LinkedIn ?
Il est plus rapide, plus souple et ne nécessite aucune approbation. De plus, il intègre d'autres canaux.
Comment intégrer LinkedIn à mon CRM en utilisant Python ?
Utilisez les points d'accès Unipile pour récupérer des données de profil et gérer les flux de travail de communication directement depuis votre application.
Vous aimerez aussi
LinkedIn Search API : Amplifier la valeur utilisateur pour les éditeurs
LinkedIn, la plus grande plateforme de réseautage professionnel au monde, offre divers outils et services pour aider les utilisateurs à se connecter, à s'engager et à développer leurs réseaux. Parmi ceux-ci, la fonctionnalité LinkedIn API Search, qui permet une intégration transparente des capacités de recherche de LinkedIn dans les applications. Qu'est-ce que...
LinkedIn API Guide 2026 : Tutoriel d'intégration complet et meilleures pratiques
Qu'est-ce que l'API LinkedIn ? L'API LinkedIn (Application Programming Interface) est le pont essentiel entre votre application et LinkedIn, agissant au nom de vos utilisateurs authentifiés. Que vous développiez des logiciels de recrutement, des systèmes CRM ou des outils d'automatisation de flux de travail, comprendre LinkedIn...



