L'API LinkedIn qui fonctionne entièrement sur des données publiques

Un GET renvoie un profil, une entreprise, des posts ou des offres en JSON.

Sans compte ni cookie 1 crédit par appel réussi Profils inaccessibles gratuits
L'ENDPOINT

Un endpoint, six types de données

Tout se trouve sur GET /v1/linkedin. Choisissez une surface avec type, passez une URL ou des mots-clés, et le résultat revient sous une clé nommée d'après le type.

La plupart des outils de ce domaine vendent une API de profils LinkedIn, une API d'entreprises et une API d'offres d'emploi comme des produits distincts avec des tarifs distincts. Ici, c'est une seule API de données LinkedIn avec une seule règle de facturation : un appel réussi vaut un crédit, un résultat vide ou inaccessible est gratuit.

typeCe qui revientEntrée
profileLe profil public complet : nom, titre, parcours professionnel, formation, nombre d'abonnés, et plus encore. Le type par défaut.url (une URL linkedin.com/in/...)
refreshL'entreprise et l'école actuelles avec leurs identifiants numériques LinkedIn, plus companyState. L'appel léger et à faible latence conçu pour maintenir une base de données à jour.url
companyLa page entreprise publique. Ajoutez employees=true pour la liste des employés.url (une URL linkedin.com/company/...)
postsLes posts publics, jusqu'à 100 par appel. Ajoutez comments=true pour les commentaires de chaque post.url (profil ou entreprise)
jobsLes offres d'emploi publiques, jusqu'à 50 par appel, avec pagination via start.keywords plus location en option, ou une url d'offre
search (beta)Recherche de personnes. Ajoutez enrich=true pour obtenir le profil complet de chaque personne dans le même appel.keywords

Notez la règle d'entrée : profile, company et posts prennent url, jamais une requête de recherche. Si vous n'avez qu'un nom, trouvez d'abord la personne avec type=search (beta), puis passez l'URL de profil obtenue.

curl "https://crustapi.com/v1/linkedin?type=profile&url=https://www.linkedin.com/in/williamhgates" \ -H "x-api-key: YOUR_KEY"
EXTRAIT EN DIRECT DE L'API, 4 AOÛT 2026

Une vraie réponse, pas une maquette

Voici le JSON exact renvoyé par le curl ci-dessus, réduit pour tenir en largeur. Il est revenu en 800 ms et a coûté 1 crédit.

// trimmed for width: image URLs, null and empty fields, duplicate id and // date-text fields, parsed location detail, peopleAlsoViewed, and this // key's creditsRemaining removed { "type": "linkedin-profile", "url": "https://www.linkedin.com/in/williamhgates", "tookMs": 800, "accessible": true, "profile": { "id": "williamhgates", "name": "Bill Gates", "firstName": "Bill", "lastName": "Gates", "headline": "Chair, Gates Foundation and Founder, Breakthrough Energy", "currentTitle": "Co-chair", "currentCompany": "Gates Foundation", "companyState": "public", "about": "Chair of the Gates Foundation. Founder of Breakthrough Energy. Co-founder of Microsoft. Voracious reader. Avid traveler. Active blogger.", "followerCount": 40559134, "location": { "linkedinText": "Seattle, Washington, United States, US" }, "experience": [ { "position": "Co-chair", "companyName": "Gates Foundation", "companyLinkedinUrl": "https://www.linkedin.com/company/gates-foundation", "startDate": { "year": 2000 }, "endDate": { "text": "Present" } }, { "position": "Founder", "companyName": "Breakthrough Energy", "companyLinkedinUrl": "https://www.linkedin.com/company/breakthrough-energy", "startDate": { "year": 2015 }, "endDate": { "text": "Present" } }, { "position": "Co-founder", "companyName": "Microsoft", "companyLinkedinUrl": "https://www.linkedin.com/company/microsoft", "startDate": { "year": 1975 }, "endDate": { "text": "Present" } } ], "education": [ { "schoolName": "Harvard University", "schoolLinkedinUrl": "https://www.linkedin.com/school/harvard-university", "startDate": { "year": 1973 }, "endDate": { "year": 1975 } }, { "schoolName": "Lakeside School", "schoolLinkedinUrl": "https://www.linkedin.com/school/lakeside-school" } ], "influencer": true, "topVoice": true, "website": "https://gatesnot.es/sourcecode-li", "memberIdentifier": "251749025", "publicIdentifier": "williamhgates", "linkedinUrl": "https://www.linkedin.com/in/williamhgates" } }

Deux champs méritent l'attention. accessible indique si le profil possède une page publique. Quand il vaut false, profile est null, une note explique pourquoi, et l'appel n'est pas facturé.

memberIdentifier est l'identifiant de membre numérique permanent de LinkedIn. Il survit aux changements de nom et d'URL personnalisée, ce qui en fait la bonne clé de jointure pour une base de données.

L'ENREGISTREMENT COMPLET

Quelles données obtenez-vous ?

Tout l'enregistrement public, structuré. Même forme à chaque appel, donc votre parseur ne s'écrit qu'une fois.

Identiténom · titre · localisation · photo · URL de profilIdentifiantsmemberIdentifier · publicIdentifierExpérienceposte actuel · historique complet des expériences · URL d'entreprises · datesParcoursformation · écoles · diplômesSignauxà propos · followerCount · influencer · topVoiceContactworkEmail avec emailStatus, en option

Le champ e-mail est en option : ajoutez email=true à un appel de profil et la réponse ajoute workEmail et emailStatus. Le statut est verified, pattern-likely ou unknown, ce qui vous permet de filtrer sur les adresses confirmées.

L'e-mail accompagne l'appel de profil comme un champ, ce n'est pas un produit séparé.

CE QU'ELLE NE RENVOIE PAS

Les champs qui n'existent que derrière une connexion restent exclus, volontairement. Les listes de relations, les relations en commun et qui a consulté un profil n'apparaissent jamais sur la page déconnectée, ils ne sont donc pas dans la réponse. C'est cette limite qui permet à l'API de fonctionner sans aucun compte et sans rien risquer de vos données.

Faites votre premier appel dans la minute qui vient
3 000 crédits gratuits par mois, sans carte.
Commencer →
LES RÉGLAGES

Les paramètres qui comptent

Une poignée d'options en langage clair. Tout le reste a une valeur par défaut raisonnable.

ParamètreS'applique àCe qu'il fait
urlprofile, refresh, company, posts, jobsUne URL linkedin.com. Requise pour profile, company et posts. jobs accepte une URL d'offre à la place de keywords.
keywordssearch (beta), jobsCe que l'on recherche. Requis pour search ; requis pour jobs sauf si vous passez une URL d'offre.
locationjobsFiltre par ville ou région pour la recherche d'offres.
limitjobs, posts, search (beta)Le nombre de résultats. jobs : 25 par défaut, 50 max. posts : 50 par défaut, 100 max. search : 10 par défaut, 15 max.
startjobsDécalage des résultats pour la pagination.
emailprofileAjoute workEmail et emailStatus (verified, pattern-likely ou unknown) au profil.
domainprofileS'utilise avec email=true. Indiquez le domaine de l'employeur (comme stripe.com) et la recherche d'e-mail l'utilise directement au lieu de le déduire du profil. Plus rapide, et fonctionne même quand un profil est restreint au seul nom.
enrichsearch (beta)Renvoie le profil complet de chaque personne dans le même appel. Facture 1 crédit par profil complet renvoyé au lieu de 1 par appel.
employeescompanyInclut la liste des employés sur la page entreprise.
commentspostsInclut les commentaires de chaque post.
memberrefreshRenvoie aussi memberIdentifier. En option car c'est une lecture plus lente ; l'identifiant ne change jamais, donc récupérez-le une fois et conservez-le.
headlineprofilePour les profils dont companyState est restricted, tente de récupérer le titre public propre au membre. Au mieux, environ un sur vingt.
À GRANDE ÉCHELLE

Rafraîchissement par lot, 100 profils par requête

Maintenir une base de données à jour ne devrait pas demander un aller-retour HTTP par ligne. Envoyez jusqu'à 100 URL de profils dans un seul POST et recevez les résultats dans l'ordre d'envoi.

curl -X POST "https://crustapi.com/v1/linkedin/batch" \ -H "x-api-key: YOUR_KEY" -H "content-type: application/json" \ -d '{"urls": ["williamhgates", "https://www.linkedin.com/in/satyanadella"], "type": "refresh"}'

Les règles sont pensées pour les gros volumes : les résultats reviennent dans l'ordre où vous les avez envoyés, une ligne en échec ne fait jamais échouer le lot, et une URL mal formée revient comme une erreur par ligne plutôt qu'une facturation. La facturation est identique à l'endpoint simple : un crédit par ligne réussie, lignes inaccessibles gratuites.

type peut valoir refresh (par défaut, entreprise et école actuelles avec identifiants numériques) ou profile (l'enregistrement complet). member: true ajoute memberIdentifier aux lignes refresh.

TROIS ÉTAPES

Comment démarrer ?

De zéro à votre premier JSON de profil en une minute environ :

  1. 1

    Créez un compte gratuit. Vous obtenez 3 000 crédits par mois, sans carte.

  2. 2

    Copiez votre clé depuis le tableau de bord. Elle est sur le premier écran après votre connexion.

  3. 3

    Lancez le curl ci-dessus avec n'importe quelle URL de profil. Le profil public revient en JSON.

TARIFS

Combien coûte l'API LinkedIn ?

Chaque appel réussi vaut 1 crédit, quel que soit le type. Un profil privé ou inaccessible renvoie null avec une note et n'est pas facturé, et un résultat de recherche vide est gratuit.

PackCréditsVous payez
Offre gratuite3 000 par mois0 $, sans carte
25 000 appels25 00049 $ (1,96 $ pour 1 000)
100 000 appels100 000149 $ (1,49 $ pour 1 000)
500 000 appels500 000549 $ (1,10 $ pour 1 000)
2,5 millions d'appels2 500 0001 999 $ (0,80 $ pour 1 000)

Les packs vont jusqu'à 250 millions de crédits pour 100 000 $, soit 0,40 $ pour 1 000. Prix hors taxes.

Les crédits sont prépayés et n'expirent jamais. Une exception à la règle : la recherche de personnes (beta) avec enrich=true facture 1 crédit par profil complet renvoyé.

POUR QUI

Qui utilise l'API LinkedIn ?

À lire aussi : Scraper LinkedIn sans connexion · Scraper de profils LinkedIn · Alternative à Bright Data LinkedIn · Alternative à Proxycurl

AVANT DE DEMANDER

Questions fréquentes

Un seul endpoint, GET /v1/linkedin, qui renvoie les données publiques LinkedIn en JSON propre. Réglez type sur profile, refresh, company, posts, jobs ou search (beta). Les profils, entreprises et posts prennent une URL linkedin.com ; les offres et la recherche de personnes prennent des mots-clés. Chaque appel réussi vaut 1 crédit.

Non. Elle ne lit que la version publique et déconnectée de chaque page, donc aucun cookie à coller, aucune session à confier, et aucun de vos comptes dans la boucle. Les champs qui n'existent que derrière une connexion, comme les listes de relations, ne font délibérément pas partie du produit.

Un crédit par appel réussi, pour tous les types. L'exception est la recherche de personnes (beta) avec enrich=true, qui facture 1 crédit par profil complet renvoyé. Un profil privé ou inaccessible renvoie null avec une note et n'est pas facturé, et les résultats vides sont gratuits. L'offre gratuite est de 3 000 crédits par mois sans carte.

Le nom, le titre, la localisation, la section à propos, le nombre d'abonnés, l'historique complet des expériences avec les liens d'entreprises et les dates, la formation, la photo, et des identifiants stables dont memberIdentifier, l'identifiant de membre numérique permanent de LinkedIn. Ajoutez email=true pour joindre workEmail avec un emailStatus valant verified, pattern-likely ou unknown.

Utilisez type=refresh, qui renvoie l'entreprise et l'école actuelles avec leurs identifiants numériques à faible latence, et envoyez les profils via POST /v1/linkedin/batch, jusqu'à 100 URL par requête avec les résultats dans l'ordre d'envoi. Les lignes en échec ne font jamais échouer le lot et les lignes inaccessibles sont gratuites.

La collecte publique et déconnectée a, à plusieurs reprises, fait échouer des poursuites pour fraude informatique et rupture de contrat. Nous nous chargeons de la collecte, et ce que vous obtenez, ce sont des données publiques, visibles par tous. Nous n'utilisons ni faux comptes ni identifiants de connexion.

COMPATIBLE AVEC VOTRE STACK

Pointez-la sur un profil et voyez

Commencez avec les 3 000 crédits gratuits par mois, sans carte. Un seul GET renvoie le profil public en JSON propre, et un profil qui n'est pas accessible ne vous coûte rien. Aucun de vos comptes ne fait jamais partie de la requête.

Obtenir 3 000 crédits gratuits
Aucune carte bancaire requise