ProfileStub
A person as a Sales Navigator search card describes them.
Fields #
| Field | Type | Notes |
|---|---|---|
public_identifier | string | Only when the card carried a vanity URL, which is not always. |
urn | string | The opaque member id. Always present, and what to enrich by. |
member_id | integer | |
url | string | LinkedIn serves /in/<opaque urn> as happily as /in/<vanity>. |
first_name | string | |
last_name | string | |
full_name | string | |
headline | string | Often absent on a search card; the current position is what renders instead. |
summary | string | The profile blurb. Present on roughly half of measured cards. |
location | string | A rendered string ("Helsinki, Finland"). The search card carries no structured place, so neither does this. |
avatar_url | string | |
premium | boolean | |
open_link | boolean | The member accepts messages from outside their network. Their setting, not anything about the account that searched. |
memorialized | boolean | The account belongs to someone who has died. |
opted_out_of_data_sharing | boolean | The member's own third-party data opt-out. It is on the record because honouring it is your obligation as much as ours, and you cannot honour a flag you cannot see. |
current_positions | Position[] | |
past_positions | Position[] | |
educations | Education[] | Only from decorations that carry it. |
skills | string[] | Only from decorations that carry it. |
connections | integer | Only from decorations that carry it. |
profile | Profile | The full record, present only when the search ran with enrich: true. |
emails | EmailFindings | The work email lookup, present when the search was submitted with find_emails. On the ROW rather than inside profile, and present even when both flags were sent: a search card already carries the name and the current employer, which is everything a lookup needs, so addresses do not depend on enrichment and you never have to buy a record you did not want in order to reach them. |
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 #
{
"urn": "ACwAAAyHg0MB",
"member_id": 219386421,
"url": "https://www.linkedin.com/in/ACwAAAyHg0MB",
"full_name": "Elina Virtanen",
"headline": "Head of Engineering",
"location": "Helsinki, Finland",
"premium": true,
"open_link": false,
"memorialized": false,
"opted_out_of_data_sharing": false,
"current_positions": [
{
"title": "Head of Engineering",
"current": true,
"company_name": "Supercell",
"company_id": 1042569,
"tenure_months": 41
}
],
"emails": {
"status": "catch_all",
"email": "[email protected]",
"pattern": "{first}.{last}@{domain}",
"domain": "supercell.com",
"checked_at": "2026-09-01T10:00:13Z"
},
"scraped_at": "2026-09-01T10:00:12Z"
}