Profiles

Profiles

Voyager provides comprehensive profile access — your own profile, any public profile, contact info, skills, and network stats. All profile endpoints use direct API calls (no DOM scraping) for speed and reliability.

Your Own Profile

$curl -H "Authorization: Bearer $KEY" \
> -H "X-User-Id: $USER" \
> "$BASE/api/profile/me"
1{
2 "success": true,
3 "profile": {
4 "fullName": "Jane Smith",
5 "headline": "VP Engineering at Acme Corp",
6 "vanityName": "janesmith",
7 "entityUrn": "urn:li:fsd_profile:ABC123",
8 "location": "San Francisco Bay Area",
9 "positions": [
10 {
11 "title": "VP Engineering",
12 "companyName": "Acme Corp",
13 "companyUrn": "urn:li:fsd_company:12345",
14 "startDate": { "year": 2023, "month": 1 }
15 }
16 ],
17 "education": [
18 {
19 "school": "Stanford University",
20 "degree": "MS",
21 "field": "Computer Science",
22 "startYear": 2015,
23 "endYear": 2017
24 }
25 ]
26 }
27}

Any Profile by Vanity Name

$curl -H "Authorization: Bearer $KEY" \
> -H "X-User-Id: $USER" \
> "$BASE/api/profile/williamhgates"

The vanity name is the string after /in/ in a LinkedIn profile URL. For example, https://www.linkedin.com/in/williamhgates has vanity name williamhgates.

Profile responses include entityUrn which you can cache and reuse in messaging endpoints via the recipientUrn parameter for faster sends.

Contact Info

Get email, phone, Twitter, and website data for a profile. Contact info is typically only available for 1st-degree connections.

$curl -H "Authorization: Bearer $KEY" \
> -H "X-User-Id: $USER" \
> "$BASE/api/profile/janesmith/contact"
1{
2 "success": true,
3 "contact": {
4 "emailAddress": "jane@acme.com",
5 "phoneNumbers": ["+1-555-0123"],
6 "twitterHandles": ["janesmith"],
7 "websites": ["https://janesmith.dev"]
8 }
9}

Contact info is only available for 1st-degree connections. For 2nd/3rd-degree profiles, fields will be empty or null.

Skills

Get endorsed skills with endorsement counts:

$curl -H "Authorization: Bearer $KEY" \
> -H "X-User-Id: $USER" \
> "$BASE/api/profile/janesmith/skills"
1{
2 "success": true,
3 "skills": [
4 { "name": "Distributed Systems", "endorsementCount": 42 },
5 { "name": "Python", "endorsementCount": 38 },
6 { "name": "Machine Learning", "endorsementCount": 27 }
7 ]
8}

Network Stats

Get follower, connection, and following counts:

$curl -H "Authorization: Bearer $KEY" \
> -H "X-User-Id: $USER" \
> "$BASE/api/profile/janesmith/network"
1{
2 "success": true,
3 "followersCount": 12500,
4 "connectionsCount": 890,
5 "followingCount": 340
6}

Profile Viewers

See who viewed your profile recently:

$curl -H "Authorization: Bearer $KEY" \
> -H "X-User-Id: $USER" \
> "$BASE/api/profile/viewers"

Member Badges

Check Premium status, Open Profile, and other badges:

$curl -H "Authorization: Bearer $KEY" \
> -H "X-User-Id: $USER" \
> "$BASE/api/member-badges?profileUrl=https://www.linkedin.com/in/janesmith/"
1{
2 "success": true,
3 "badges": {
4 "premium": true,
5 "openProfile": true,
6 "influencer": false,
7 "jobSeeker": false
8 }
9}

Relationship Status

Check connection degree and messaging eligibility:

$curl -H "Authorization: Bearer $KEY" \
> -H "X-User-Id: $USER" \
> "$BASE/api/relationship/status?profileUrl=https://www.linkedin.com/in/janesmith/"
1{
2 "success": true,
3 "data": {
4 "connected": true,
5 "connectionDegree": "1ST",
6 "canMessageDirectly": true,
7 "openProfile": false,
8 "pendingInvitationSent": false
9 }
10}

Batch Profile Reads

Fetch up to 25 profiles in a single request:

$curl -X POST "$BASE/api/profiles/read" \
> -H "Authorization: Bearer $KEY" \
> -H "X-User-Id: $USER" \
> -H "Content-Type: application/json" \
> -d '{
> "profiles": [
> {"vanityName": "williamhgates"},
> {"vanityName": "jeffweiner08"},
> {"vanityName": "satlogin"}
> ]
> }'
1{
2 "success": true,
3 "count": 3,
4 "results": [
5 { "input": {"vanityName": "williamhgates"}, "success": true, "data": { "fullName": "Bill Gates", ... } },
6 { "input": {"vanityName": "jeffweiner08"}, "success": true, "data": { "fullName": "Jeff Weiner", ... } },
7 { "input": {"vanityName": "satlogin"}, "success": false, "error": "Profile not found" }
8 ]
9}

Batch results process sequentially with short delays between requests to stay within LinkedIn’s comfort zone.

Batch Relationship Checks

Check relationship status for up to 20 profiles at once:

$curl -X POST "$BASE/api/relationships/read" \
> -H "Authorization: Bearer $KEY" \
> -H "X-User-Id: $USER" \
> -H "Content-Type: application/json" \
> -d '{
> "profiles": [
> {"vanityName": "janesmith"},
> {"vanityName": "johndoe"}
> ]
> }'
  • Search — Find profiles by keywords, company, or title
  • Connections — Send connection requests and manage your network
  • Batch Operations — All batch endpoint details