LinkedIn Person profile API
API health
- 24h health
- 95%
- 24h average time
- 17.83 s
- Healthy / normal
- Available
- Limited
- Mostly down
Last 24 hours
Last 30 days
Look up one LinkedIn member by username or profile link. Get their headline, about section, current company, experience, education, and follower and connection counts. Email can be empty and does not imply consent to contact. The call never opens a connection or sends a message.
Send POST https://api.everyinfra.com/api/v1/social with platform set to linkedin and action set to person_profile. Price $0.78 per 1,000 requests ($0.000778 per call). Failed calls and empty results are not charged. Synchronous. For slow jobs add "mode": "async" to the body, take the job_id and poll.
LinkedIn Person profile reads one member's public profile from their username or profile link and returns the display name, headline, about section, location, current company, follower and connection counts, verification and Premium status, avatar, and email addresses when they are public. Recruiters use it to check a candidate's background, and sales teams use it to enrich a lead with the person's current role and company before they reach out.
headline and about are written by the member, so treat them as self-description rather than verified facts. email comes back only when it is public or authorized, so expect null most of the time; emails lists every address found, and email is the first of them. display_name can differ from username, and avatar_url can be a sized link that expires, so download the image if you need to keep it.
AI prompt
#Please help me write a data collection script with the EveryInfra LinkedIn Person profile endpoint (linkedin/person_profile).
How the endpoint works:
- Request: POST https://api.everyinfra.com/api/v1/social with the header Authorization: Bearer <API key>. Read the key from the EVERYINFRA_API_KEY environment variable and never hard-code it.
- In the request body, set platform to linkedin and action to person_profile, and put the parameters inside params.
- Required parameters:
- username: Specifies the username handle from a LinkedIn /in/ profile path or a full personal profile URL for person_profile, or an account path for followers.
- Optional parameters:
- location: Specifies location text for person profiles in profile_search or job locations in jobs. When keyword in the jobs action is already a full search URL, the URL's embedded criteria take precedence and location is ignored.
- locations: Accepts a location array as a compatibility alias. Prefer location: this array is not guaranteed to behave the same way, and it is not a way to run cross-country batch searches.
- name: Provides a compatibility identifier that holds company identifiers in company_profile or serves as a person query term in select person_profile lookups.
- Returns one object. Main fields: username, display_name, headline, about (Long-form About text of the profile (pe…), location, current_company, current_company_url (LinkedIn page URL of the current compan…), current_company_logo_url (Logo URL of the current company), member_urn, current_company_id, follower_count, connection_count (Number of connections (person_profile,…); 38 fields in total, full list at https://api.everyinfra.com/api/v1/social/catalog?platform=linkedin.
- Example request body:
{
"platform": "linkedin",
"action": "person_profile",
"params": {
"username": "williamhgates"
}
}
- Price: $0.78 per 1,000 requests; failed and empty results are not charged.
- For dozens or hundreds of targets, add "mode": "async" to the body: you get a job_id at once and poll GET https://api.everyinfra.com/api/v1/jobs/{job_id} for the result.
- On 422, fix the request using the suggested parameter names and allowed values in the error; on 429 or 503, wait for Retry-After and try again.
Before writing code, ask me which targets I need, how many, which fields, and what output format I want; then confirm the plan and the rough cost with me.Request parameters
#| Name | In | Type | Required | Default | Description |
|---|---|---|---|---|---|
Authorization | header | string | Yes | - | Bearer followed by your API key. Create it in the console; never put it in a URL or a code repository. |
platform | body | string | Yes | linkedin | Platform identifier, fixed value. |
action | body | string | Yes | person_profile | Capability identifier, fixed value. |
username | body.params | string | Yes | - | Specifies the username handle from a LinkedIn /in/ profile path or a full personal profile URL for person_profile, or an account path for followers. In the followers action, it returns the total follower count rather than a list of followers. |
location | body.params | string | No | - | Specifies location text for person profiles in profile_search or job locations in jobs. When keyword in the jobs action is already a full search URL, the URL's embedded criteria take precedence and location is ignored. |
locations | body.params | array | No | - | Accepts a location array as a compatibility alias. Prefer location: this array is not guaranteed to behave the same way, and it is not a way to run cross-country batch searches. |
name | body.params | string | No | - | Provides a compatibility identifier that holds company identifiers in company_profile or serves as a person query term in select person_profile lookups. It cannot replace the required company or username parameters, nor does it guarantee exact matching against display names. |
Code samples
#curl -X POST 'https://api.everyinfra.com/api/v1/social' \
-H "Authorization: Bearer $EVERYINFRA_API_KEY" \
-H 'Content-Type: application/json' \
--data-raw '{
"platform": "linkedin",
"action": "person_profile",
"params": {
"username": "williamhgates"
}
}'OpenAPI definition (JSON)Samples read the key from the EVERYINFRA_API_KEY environment variable; copied code never contains your key.
Response example
#{ "id": "req_…", "platform": "linkedin", "action": "person_profile", "results": { "username": "williamhgates", "display_name": "•••", "headline": "Chair, Gates Foundation and Founder, Breakthrough Energy", "about": "Chair of the Gates Foundation. Founder of Breakthrough Energy. Co-founder of Microsoft. Voracious reader. Avid traveler. Active blogger.", "location": "Seattle, Washington, United States", "current_company": "Gates Foundation", "follower_count": 40680117, "connection_count": 8, "email": "•••", "is_verified": true, "is_premium": true, "avatar_url": "https://media.licdn.com/•••", "url": "https://linkedin.com/in/williamhgates", "platform": "linkedin" }, "billing": { "charged": …, "charged_usd": …, "balance_after_usd": …, … }, "quota": { … }}
Response fields
#Business data is in results. The table lists the fields a record can contain; values the platform does not show are never made up.
| Field | Meaning |
|---|---|
username | Username (@handle). |
display_name | Display name; can differ from username. |
headline | Keeps the platform's own meaning |
about | Long-form About text of the profile (person_profile, profile_search). |
location | Location description passed through as is; the format varies by platform. |
current_company | Keeps the platform's own meaning |
current_company_url | LinkedIn page URL of the current company. |
current_company_logo_url | Logo URL of the current company. |
member_urn | Keeps the platform's own meaning |
current_company_id | Keeps the platform's own meaning |
follower_count | Followers. null means not disclosed, not 0. |
connection_count | Number of connections (person_profile, profile_search). |
email | Email address. On person_profile and profile_search it is a work address inferred from public information and then validated; on employees it is present only when the source gives one. May be empty, and it does not mean the person agreed to marketing contact. |
is_verified | Whether the platform verified the account. null means it cannot be determined. |
is_premium | Keeps the platform's own meaning |
is_top_voice | Whether the profile carries the LinkedIn Top Voice badge. |
is_creator | Whether the profile runs in creator mode. |
is_influencer | Keeps the platform's own meaning |
open_to_work | Keeps the platform's own meaning |
top_skills | Skill tags shown at the top of the profile. |
top_education_school | School highlighted at the top of the profile. |
creator_hashtags | Hashtags the creator chose for creator mode. |
creator_website | External link the creator chose for creator mode. |
primary_locale | Primary locale of the account (e.g. en-US). |
account_created_at | Account creation time; null when the source omits it. |
avatar_url | Avatar image link. Some platforms return sized CDN links that can expire. |
background_picture_url | Profile background banner image URL. |
url | Link to the record on the platform. |
experience | Work-history list (person_profile, profile_search): each entry carries title, company, company page URL, date range and duration text, plus location, description, employment_type and skills when the source gives them. |
education | Education list (person_profile, profile_search): each entry carries school, school page URL, date range and duration text. |
featured | Profile Featured section list: each entry carries type, title, description, link and image; posts also carry like_count and comment_count. |
first_name | First name (person_profile). |
last_name | Last name (person_profile). |
country | Country or region: a full name or an ISO code depending on the platform, not normalized. |
city | City name in the platform's language, not normalized. |
country_code | Keeps the platform's own meaning |
is_memorialized | Whether the account is memorialized (the person has died). |
platform | Source platform identifier, the same as platform in the request (for example xiaohongshu, tiktok). |
emails | Contact email addresses (a record can have several), passed through as is with duplicates removed. |
FAQ
#Where do I find the username?
#Open the person's LinkedIn profile: the username is the part after /in/ in the address, such as williamhgates in linkedin.com/in/williamhgates. You can pass that full profile link instead. A display name does not identify a member, and name is only a search hint that may match a different person.
Can I look someone up without knowing their username?
#Not with this capability, which needs username or a profile link. LinkedIn Profile search finds people by current job title, optionally in a given location, and returns their profile links; pass the link of the right match here. It is not an exact lookup by name or email.
Do location, locations and name filter the profile?
#No. They are optional hints that can help locate the profile, and they never narrow or replace username. Once the profile is identified they play no part, so do not rely on them to confirm you have the right person; compare headline and current_company instead.
Errors and billing
#- 401
- Missing or invalid key.
- 402
- Insufficient balance. Top up first.
- 422
- Invalid parameter name or value. Fix it using the suggestions in the error. No charge.
- 429
- Per-minute request limit reached. Wait for Retry-After, then try again.
- 503
- Could not complete. The held charge is returned to your balance. If the outcome is unknown, verify it before you retry.
- 200 empty
- No data. No charge.
Official references
#Used only to check objects and terms. They do not imply authorization or endorsement of EveryInfra by the platform.
- LinkedIn Official Documentation: Differences Between Full Profiles and External Public Versions ↗
Public versions do not present complete profile data; viewing a full profile may require logging in, and displayed sections remain subject to user settings. Consequently, `person_profile` cannot be represented as fetching anyone's complete profile, nor does official documentation on visibility serve as authorization for data collection.
Checked 2026-09-04
- LinkedIn User Agreement: Public Identity Profiles Remain Subject to Terms of Use ↗
Profile and network information remains governed by the User Agreement, access restrictions, and privacy requirements. Parameter and field descriptions on this site do not serve as proof of platform authorization or contact permission.
Checked 2026-09-04