Profile
A person, as profiles/enrich returns them. The sample below is the fullest form - what profiles/enrich/detailed returns with every section ticked - because this page lists what the record can carry; the two counts, six of the position fields, skill_details, interests and recommendations each cost a section and are absent without one.
Fields #
| Field | Type | Notes |
|---|---|---|
public_identifier | string | The vanity slug - the "satyanadella" in a profile URL. Absent when the member never set one. |
urn | string | The opaque, stable member id (ACoAA...). It survives a member renaming their vanity URL, so it is what to store if you intend to re-fetch them later. |
member_id | integer | LinkedIn's numeric id for the same member. |
url | string | A profile URL that resolves, built from whichever identifier came back. |
first_name | string | |
last_name | string | |
full_name | string | First and last joined. Convenience, not a separate fact. |
headline | string | The line under the name. |
avatar_url | string | A media.licdn.com URL. LinkedIn expires these; download rather than hotlink. |
premium | boolean | |
influencer | boolean | |
creator | boolean | |
top_voice | boolean | All four badges are flattened from nullable objects, because "present" and "true" are the only two states any of them has. |
summary | string | The About section. |
location | string | LinkedIn's own localized geo name, rendered. Not a structured place, and not derived by splitting anything. |
open_to_work | boolean | The member set the #OpenToWork photo frame. It is a signal they chose deliberately, unlike the badges above. |
follower_count | integer | This and connection_count come from the profile top card, which is a separate request - so they are filled only by profiles/enrich/detailed with include_counts: true, and are absent from plain profiles/enrich, from an enriched search row and from the Profile inside a profiles/activity response. Absent rather than zero when LinkedIn did not answer for this member, so an absent field never reads as a real count of zero. |
connection_count | integer | LinkedIn's own reported total, which it caps at 500. A member with more connections than that is reported as 500, not as their real number. |
skill_details | Skill[] | Every skill with its endorsement count, from profiles/enrich/detailed with include_skill_details: true. A superset of skills above: that list stops at 20 and this one does not, so the two differ in length on anybody with more skills than that, and both are returned. Absent when the section was not asked for, [] when it was and this member lists none - only the second of those was charged for. |
interests | Interest[] | The people, companies, groups, newsletters and schools this member follows, from profiles/enrich/detailed with include_interests: true. One request whatever they follow: LinkedIn renders the section as tabs and sends every tab in the one response, so nothing is paged and nothing is truncated. Absent when not asked for, [] when asked for and empty. |
recommendations | Recommendation[] | Written recommendations in both directions, from profiles/enrich/detailed with include_recommendations: true. One request for both. Absent when not asked for, [] when asked for and empty. |
birth_date | MonthDay | Month and day. LinkedIn never returns a year. |
locale_country | string | The member's own profile locale, which is not their location. |
locale_language | string | |
skills | string[] | |
positions | Position[] | Every role, newest first, flattened out of LinkedIn's per-company groups. Two roles at one company are two entries. |
educations | Education[] | |
certifications | Certification[] | |
languages | Language[] | |
emails | EmailFindings | The work email lookup. Present only when the submission set find_emails, and absent - not null, not an empty object - when it did not, so "we did not look" and "we looked and found nothing" are distinguishable from the record alone. The one field on this record that did not come from LinkedIn. |
scraped_at | string (RFC 3339) | When this record was taken. On every record, because "never cached" is only a credible claim if the record says when it was fetched. |
Absent is not null: a field we did not get is omitted rather than sent as an empty string, so you can tell "LinkedIn does not have this" from "this person left it blank".
Sample #
{
"public_identifier": "satyanadella",
"urn": "ACoAAA8BYqEBCGLg_vT9kbxlBWbLnLGVsBWc_pI",
"member_id": 19186432,
"url": "https://www.linkedin.com/in/satyanadella",
"first_name": "Satya",
"last_name": "Nadella",
"full_name": "Satya Nadella",
"headline": "Chairman and CEO at Microsoft",
"avatar_url": "https://media.licdn.com/dms/image/...",
"premium": false,
"influencer": true,
"creator": false,
"top_voice": false,
"summary": "Chairman and CEO of Microsoft. Focused on ...",
"location": "Redmond, Washington, United States",
"open_to_work": false,
"follower_count": 14231890,
"connection_count": 500,
"birth_date": { "month": 8, "day": 19 },
"locale_country": "US",
"locale_language": "en",
"skills": ["Cloud Computing", "Enterprise Software", "Business Strategy"],
"positions": [
{
"title": "Chairman and CEO",
"current": true,
"company_name": "Microsoft",
"company_id": 1035,
"started_on": { "year": 2014, "month": 2 }
},
{
"title": "Executive Vice President, Cloud and Enterprise",
"current": false,
"company_name": "Microsoft",
"company_id": 1035,
"started_on": { "year": 2011, "month": 1 },
"ended_on": { "year": 2014, "month": 2 }
}
],
"educations": [
{
"school": "University of Wisconsin-Milwaukee",
"degree": "MS",
"field_of_study": "Computer Science",
"started_on": { "year": 1988 },
"ended_on": { "year": 1990 }
}
],
"certifications": [
{
"name": "Certified ScrumMaster (CSM)",
"authority": "Scrum Alliance",
"started_on": { "year": 2015 }
}
],
"languages": [
{ "name": "English", "proficiency": "NATIVE_OR_BILINGUAL" }
],
"skill_details": [
{ "name": "Cloud Computing", "endorsements": 84 }
],
"interests": [
{
"category": "companies",
"name": "Microsoft",
"caption": "23,000,000 followers",
"url": "https://www.linkedin.com/company/1035/",
"urn": "urn:li:fsd_company:1035"
}
],
"recommendations": [
{
"direction": "received",
"name": "Jim Berlinger",
"headline": "IT Leader, Champion, and Visionary",
"caption": "June 1, 2016, Jim was Isaac's client",
"text": "I have had the privilege of partnering with Isaac for over five years now."
}
],
"emails": {
"status": "found",
"email": "[email protected]",
"pattern": "{first}.{last}@{domain}",
"domain": "microsoft.com",
"candidates": [
{
"email": "[email protected]",
"pattern": "{first}.{last}@{domain}",
"status": "deliverable"
}
],
"checked_at": "2026-09-01T10:00:06Z"
},
"scraped_at": "2026-09-01T10:00:04Z"
}