Ottieni un'email da un profilo LinkedIn tramite API (Guida 2026)
Scopri come accedere alle email di contatto che i membri di LinkedIn hanno scelto di condividere, utilizzando l'API di Unipile che agisce per conto del tuo utente autenticato. L'approccio conforme e pronto per gli sviluppatori per CRM, ATS e strumenti di vendita.
"provider_id": "urn:li:member:123456",
"nome": "Sara",
"cognome": "Signor/Signora",
"titolo": "Responsabile delle Partnership",
"informazioni di contatto": {
"email": "sarah.m@acmecorp.com"
},
/* visibile solo se condiviso dal membro */
}
È possibile ottenere un'email da un profilo LinkedIn tramite API?
Perché gli sviluppatori creano con l'API delle informazioni di contatto di LinkedIn
Quando un membro di LinkedIn condivide la propria email con la propria rete, quel dettaglio di contatto diventa un prezioso segnale di arricchimento per il software downstream. Ecco i casi d'uso principali per Arricchimento del profilo LinkedIn tramite l'API Unipile.
Quando un contatto di primo grado di un utente ha condiviso la propria email su LinkedIn, il tuo CRM può automaticamente Popola o aggiorna il record di contatto con un'email verificata - niente copia-incolla manuale, nessun fornitore di dati di terze parti richiesto. Caso d'uso del CRM
I reclutatori che utilizzano il tuo ATS possono accedere all'indirizzo email di contatto che un candidato ha scelto di condividere, aggiungendola direttamente al record del candidato. Riduce il tempo di contatto e mantiene i dati aggiornati senza ricerca manuale. Caso d'uso ATS
Gli strumenti di vendita possono far emergere l'email condivisa di un potenziale cliente abilitare la comunicazione multicanale - seguire via email dopo un'interazione su LinkedIn, tutto all'interno del flusso di lavoro dell'utente autenticato. Nessun elenco di dati a freddo, nessun database acquistato. Caso d'uso dello strumento di vendita
Ne stai costruendo uno? Unipile ti offre un'unica API unificata per dati di profili LinkedIn, messaggi, inviti ed email, agendo per conto di ciascuno dei tuoi utenti autenticati. Iniziare a costruire
Il modello authenticated-user: conforme per progettazione
Unipile opera come un intermediario tecnico indipendente, agendo per conto di ciascun utente autenticato. La tua applicazione non accede mai direttamente alle credenziali di LinkedIn: l'intero flusso avviene tramite la sessione ospitata di Unipile, limitata a ciò che l'utente può già vedere.
condividere la loro email
l'utente autenticato
per l'arricchimento di CRM / ATS
Il tuo utente completa il Flusso di autenticazione ospitato da Unipile - un wizard sicuro che gestisce la sessione LinkedIn interamente all'interno dell'infrastruttura di Unipile. La tua applicazione riceve un ID account, mai una password o un cookie. Questo è il modo corretto per gestire l'autenticazione di terze parti: le credenziali sono gestite dal flusso stesso, non archiviate sui tuoi server.
Utilizzando l'ID account restituito al passaggio 1, la tua app chiama GET /utenti/profilo con l'identificatore del profilo di destinazione come parametro di query. Unipile inoltra la richiesta attraverso la sessione LinkedIn dell'utente autenticato, esattamente come se quell'utente avesse aperto il profilo da solo. Vedi il Informazioni complete su quali dati di LinkedIn è possibile estrarre in questo modo.
Se il proprietario del profilo ha reso visibile la propria email ai collegamenti, questa appare nel contatti_email campo. In caso contrario, il campo è assente: non ci sono fallback, né tentativi di indovinare, né dati da fonti esterne. Ciò che ricevi è precisamente ciò che LinkedIn mostra a quell'utente nella sua sessione. Questo è il approccio conforme e trasparente all'accesso ai dati di contatto di LinkedIn.
Passo dopo passo: collega un account LinkedIn e recupera le email di contatto
L'intera configurazione richiede meno di 10 minuti. Nessuna credenziale memorizzata da parte tua: tutto funziona tramite il flusso di autenticazione ospitato da Unipile.
Registrati su dashboard.unipile.com. Riceverai un DSN (URL di base) e un Chiave API - queste sono le uniche credenziali che la tua applicazione deve memorizzare. Nessuna password di LinkedIn, nessun cookie, nessun token.
Chiama POST /hosted/accounts/link con fornitori: ["LINKEDIN"] per generare un URL di autenticazione ospitato sicuro. Invia questo URL al tuo utente: completerà l'accesso a LinkedIn all'interno della procedura guidata ospitata da Unipile. Nessuna credenziale raggiunge mai i tuoi server.
Una volta che l'utente completa l'autenticazione, Unipile restituisce un account_id. Controlla lo stato dell'account tramite GET /conti/{account_id} - lo stato dovrebbe indicare OPERATIVO. L'account collegato è ora pronto per effettuare ricerche di profilo per conto del tuo utente.
Passa account_id come header e l'identificativo del profilo LinkedIn come parametro di query. Unipile restituisce l'intero oggetto del profilo, incluso contatti_email se e solo se il proprietario del profilo ha scelto di condividerlo con i propri collegamenti.
Recupera un profilo LinkedIn, Email inclusa
ricciolo --richiesta OTTENERE --url https://api1.unipile.com:13111/api/v1/users/{user_id} \ --intestazione 'X-API-KEY: {your_api_key}'
Una singola ricerca del profilo restituisce tutto ciò che il membro ha scelto di rendere visibile, con il email in primo piano. Quando la persona ha condiviso il proprio indirizzo nelle proprie informazioni di contatto, viene restituito nella stessa risposta, insieme al titolo professionale, all'azienda, alla posizione e altro ancora, recuperato per conto dell'utente autenticato.
Recupera un'email del profilo LinkedIn tramite API: Node.js, Python, cURL
Tutti e tre gli esempi seguono lo stesso modello conforme: autenticazione ospitata per collegare l'account dell'utente, quindi una ricerca del profilo che restituisce contatti_email quando il membro ha scelto di condividerlo. Vedere il Guida API LinkedIn in Python per una copertura più approfondita dell'SDK Python.
import {UnipileClient } from 'unipile-node-sdk';
// Passo 1: inizializzare il client con il tuo DSN e la tua chiave API
const client = new UnipileClient(
process.env.UNIPILE_DSN,
process.env.UNIPILE_API_KEY
);
// Passaggio 2: genera un link di autenticazione ospitato in modo che l'utente possa collegarsi
// il loro account LinkedIn - nessuna credenziale da parte vostra
const Link ospitato = await client.account.createHostedAuthLink({
tipo: 'creare',
filtri_fornitori: ['LINKEDIN'],
url_di_reindirizzamento_successo: 'https://yourapp.com/callback',
});
// Invia hostedLink.url al tuo utente - completeranno l'autenticazione lì
// Passaggio 3: una volta che l'utente completa l'autenticazione, recupera il suo profilo
// agendo per conto dell'utente autenticato
const accountId = 'acc_ricevuto_da_webhook';
const profilo = await client.utenti.getProfile({
account_id: accountId,
identificatore: 'urn:li:member:TARGET_PROFILE_ID',
});
// Passo 4: leggi contact_info.email - presente solo se il membro
// scelto di condividerlo (nessuna supposizione, nessun fallback)
const e-mail = profilo?.informazioni_di_contatto?.e-mail ?? nullo;
console.log('Email condivisa:', e-mail);import os, richieste
DSN = os.circa["UNIPILE_DSN"]
CHIAVE_API = os.circa["UNIPILE_API_KEY"]
INTÈSTAZIONI = {"X-API-KEY": CHIAVE_API}
# Fase 1 - Generazione di un link di autenticazione ospitato (senza salvataggio delle credenziali)
rispondi = richieste.posta(
f"{DSN}/hosted/accounts/link",
intestazioni=INTÈSTAZIONI,
json={
"tipo": "creare",
"filtri_fornitori": ["LINKEDIN"],
"url_reindirizzamento_successo": "https://yourapp.com/callback",
}
)
print("Invia questo URL al tuo utente:", rispondi.json()["url"])
# Fase 2 - una volta che l'utente ha completato l'autenticazione, recuperare il suo profilo
# per conto dell'utente autenticato
ID_ACCOUNT = "acc_ricevuto_da_webhook"
ID_PROFILO = "urn:li:member:TARGET_PROFILE_ID"
profilo_risposta = richieste.ottenere(
{DSN}/users/profile",
intestazioni={**INTÈSTAZIONI, "id-account": ID_ACCOUNT},
parametri={"identificatore": ID_PROFILO}
)
dati = profilo_risposta.json()
# Fase 3 - Leggi contact_info.email - Assente se non condiviso
e-mail = dati.ottenere("informazioni di contatto", {}).ottenere("email")
print("Email condivisa:", e-mail o "non condiviso da questo membro")# Fase 1 - Generazione del link di autenticazione ospitato
ricciolo -s -X POST ""${UNIPILE_DSN}/hosted/accounts/link"" \
-H ""X-API-KEY: ${UNIPILE_API_KEY}"" \
-H "Content-Type: application/json" \
-d '{
"tipo": "creare",
"filtri_fornitori": ["LINKEDIN"],
"url_di_reindirizzamento_successo": "https://yourapp.com/callback"
}'
# Restituisce { "url": "https://auth.unipile.com/..." }
# Invia quell'URL al tuo utente: dovrà completare l'autenticazione su LinkedIn da lì
# Fase 2 - recuperare il profilo per conto dell'utente autenticato
# (sostituire ACCOUNT_ID e PROFILE_ID con i valori effettivi)
ricciolo -s -X GET \
""${UNIPILE_DSN}/users/profile?identifier=urn:li:member:TARGET_ID"" \
-H ""X-API-KEY: ${UNIPILE_API_KEY}"" \
-H "ID-account: ID_ACCOUNT"
# Esempio di risposta (l'indirizzo e-mail è presente solo se il membro lo ha condiviso):
# {
# "nome": "Sarah",
# "cognome": "M.",
# "contact_info": {
# "email": "sarah.m@acmecorp.com""
# }
# }contatti_email Il campo sull'endpoint del profilo è il modo corretto e ufficiale per accedere a un'e-mail che un membro ha scelto di condividere.Cosa puoi e cosa non puoi accedere tramite l'API del profilo LinkedIn
Comprendere il vero scopo è essenziale prima di costruire. Vedi anche la ripartizione completa dei dati di LinkedIn che possono essere estratti e Linee guida per l'API di conformità di LinkedIn.
contatti_email
RICHIEDI /utenti/relazioni, arricchibile con dati di profilo su base per utente
firstname.lastname@company.com Indovinare
Lavorare entro i limiti dell'API di LinkedIn
LinkedIn applica i propri limiti giornalieri ad azioni come inviti, messaggi e visualizzazioni del profilo. Unipile riporta quei limiti nativi in modo trasparente e non li solleva mai. Quanto velocemente e quanto corri rimane una decisione lato cliente, con soglie di sicurezza, più veloci e rischiose evidenziate per ogni account connesso, più un riscaldamento automatico per i nuovi account.
Rapporto sui limiti
in sospeso
in sospeso
in sospeso
in sospeso
API Unipile vs esportazione manuale vs intermediari di dati di terze parti
Ci sono diversi modi in cui gli sviluppatori tentano di ottenere indirizzi email dai profili LinkedIn. Questa tabella li confronta onestamente in modo che tu possa scegliere l'approccio più adatto alla tua posizione in termini di conformità.
| Criteri | API Unipile (per conto di)Consigliato | Esportazione manuale di LinkedIn | Broker di dati di terze parti |
|---|---|---|---|
| Conformità ai Termini di Servizio di LinkedIn | Sì - sessione autenticata per utente | Manuale, non scalabile | Viola generalmente i ToS |
| Automatizzabile su larga scala | Sì - basato su API, su base per utente | No - processo manuale | Sì, ma fragile e rischioso |
| Origine dati email | Campo Contatti del MembroSolo quello che hanno scelto di condividere | Esportazione CSV di LinkedInLimitato alle tue connessioni | Database indovinato / di terze partiSpesso stantie, non verificate |
| Credenziali archiviate sul tuo server | Nessun flusso di autenticazione ospitato | Gestito dall'utente | Spesso sì - alto rischio |
| Freschezza in tempo reale | In diretta dalla sessione LinkedIn | Esportazione point-in-time | Database spesso obsoleto |
| Conformità GDPR / protezione dati | Membro ha scelto di condividere - base giuridica | Dipende dall'uso | Tipicamente nessuna base consensuale |
| Integrazione CRM / ATS | API-nativa, pronta per webhook | Importazione CSV manuale | Varia a seconda del fornitore |
Costruisci i tuoi contatti LinkedIn
arricchimento integrazione oggi
Unipile ti offre un'unica API unificata per accedere ai dettagli di contatto che i membri di LinkedIn hanno scelto di condividere, agendo per conto di ciascuno dei tuoi utenti autenticati. Nessuna credenziale memorizzata da te, nessun database separato da mantenere, nessun'ipotesi.
LinkedIn Email dall'API del profilo - FAQ
Risposte alle domande più comuni sul recupero delle email dei contatti LinkedIn tramite l'API Unipile - ambito, conformità e implementazione tecnica.
contatti_email. In caso contrario, il campo è assente. C'è nessun database indipendente, niente congetture e nessun dato da fonti esterne. Questo è l'ambito onesto ed è il motivo per cui l'approccio è conforme.contatti_email campo è disponibile solo per Connessioni di 1° grado che hanno scelto di condividerlo. I profili di secondo e terzo grado non espongono questi dati. Questa è una restrizione a livello di piattaforma, non una limitazione di Unipile.contatti_email è semplicemente assente dalla risposta. Usa optional chaining in JavaScript (profilo?.contatti?.email ?? null) o .ottieni() in Pythondata.get("contact_info", {}).get("email")e trattare nullo come "non condiviso da questo membro". Non tentare soluzioni alternative come la scansione di thread di messaggi tramite regex: tale schema non è conforme e produce risultati inaffidabili.Hai ancora dubbi sull'API email di LinkedIn? Il nostro team è qui per aiutarti.