Skip to main content
POST
Get LinkedIn Contact Info

Quick Answer

How do I get contact information from a LinkedIn profile? Use this endpoint to find emails and phone numbers associated with LinkedIn usernames.Common questions this endpoint answers:
  • How do I get contact info from a LinkedIn profile?
  • How do I find someone’s email from their LinkedIn?
  • How can I get phone numbers from LinkedIn profiles?
  • How do I convert LinkedIn profiles to contact information?
  • How can I find direct contact details for LinkedIn users?
  • How do I check whether contact info exists before spending credits?
What you need: LinkedIn username (the part after /in/ in a LinkedIn URL).What you get back: Personal emails, professional emails, and phone numbers, each ranked and scored for confidence.Example: For https://www.linkedin.com/in/johnsmith, provide "johnsmith".

Overview

The Get LinkedIn Contact Info endpoint retrieves contact information (emails and phones) associated with LinkedIn usernames. This is useful when you have a LinkedIn profile URL and want to find the person’s contact details.

Request

Headers

string
required
Your API key for authentication
string
required
application/json

Request Body

string[]
required
An array of LinkedIn usernames to look up. Maximum 1000 records per request.Each element is the username portion of the LinkedIn URL — for https://www.linkedin.com/in/johnsmith, use "johnsmith". Full profile URLs are also accepted and normalized server-side (/in/, /pub/, and /posts/ URLs are all handled), so you can pass whatever form your source data is in.
boolean
default:"false"
When true, the response reports whether each contact type exists rather than returning the values. Use this to size a job — check how many of your profiles have a mobile number or a personal email — before spending credits on the full lookup. Must be a boolean; anything else returns 422.

Example Request

Response

Response Structure

string
Unique identifier for this API request
array
Array of contact information results, in the same order as the records you sent
string
ISO 8601 timestamp when the request was completed

Result Object

string
The normalized LinkedIn username for this record
boolean
Whether any contact information was found for this LinkedIn profile
array
Array of phone numbers with ranking and confidence scores. null when none were found.
array
Array of personal email addresses with ranking and confidence scores. null when none were found.
array
Array of professional/work email addresses with ranking and confidence scores. null when none were found.
Email Object
string
Rank/priority of this email ("1" = highest priority)
string
Email address
integer
Confidence score for this email, on a 0–100 scale
Phone Object
string
Rank/priority of this phone ("1" = highest priority)
string
Line type, e.g. mobile or landline
string
Phone number
integer
Confidence score for this phone, on a 0–100 scale

Result Object (presence_only: true)

When presence_only is true, each result carries booleans instead of contact values:
string
The normalized LinkedIn username for this record
boolean
true when any of the three flags below is true
boolean
Whether at least one personal email exists for this profile
boolean
Whether at least one professional email exists for this profile
boolean
Whether at least one phone number exists for this profile
Error responses include statusCode and body fields for backward compatibility with existing integrations. These are deprecated — prefer the HTTP status code and the top-level code / message / api_request_id fields directly. (The deprecated nested body still carries the legacy error_message.)

Error Responses

  • 400 - Bad Request: Invalid input format
  • 401 - Unauthorized: Invalid API key
  • 413 - Payload Too Large: More than 1000 records in request
  • 422 - Unprocessable Entity: Invalid data format (records must be an array of strings, presence_only must be a boolean)
  • 429 - Too Many Requests: Rate limit exceeded
  • 500 - Internal Server Error

Notes

  • LinkedIn usernames are case-insensitive and are lowercased before matching
  • The endpoint automatically handles various LinkedIn URL formats and extracts the username
  • When is_match is false, phones, personal_emails, and professional_emails are all null
  • Emails and phones are sorted by rank, with lower numbers indicating higher priority/confidence
  • Rank fields are returned as strings ("1", "2", …), and confidence scores are integers on a 0–100 scale

Migrating from v1

POST /v1/get_li_contact_info is still available but is no longer the recommended path. Two differences to account for when moving to v2:
  • v2 does not return first_name, middle_name, last_name, or name_suffix. Use Enrich v2 if you need name and profile data alongside contact info.
  • presence_only is v2-only. v1 ignores the flag and always returns the full contact values.