LinkdAPI Skill — LinkedIn Data API
Use this skill to access LinkedIn professional data via the LinkdAPI REST API.
Full endpoint reference with params, enums, and response schemas → references/api-ref.md
Structured endpoint manifest (JSON) → references/skills.json
⚠️ Authentication — READ FIRST
|
Value |
| Auth header |
X-linkdapi-apikey |
| Base URL |
https://linkdapi.com |
| Env var |
LINKDAPI_KEY |
curl -s -H "X-linkdapi-apikey: $LINKDAPI_KEY"
"https://linkdapi.com/api/v1/profile/overview?username=ryanroslansky" | jq .
⛔ NEVER use x-api-key or Authorization: Bearer — they will return 401. The only correct header is X-linkdapi-apikey.
Core Concepts
| Term |
Meaning |
How to Get |
username |
LinkedIn vanity slug (linkedin.com/in/USERNAME) |
From the URL |
urn |
Internal LinkedIn ID (ACoAAAA...) |
From profile/overview response |
id (company) |
Numeric LinkedIn company ID |
From companies/company/info or companies/name-lookup |
jobId |
Numeric LinkedIn job ID |
From job search results |
geoUrn |
Location filter ID |
From geos/name-lookup |
cursor |
Pagination token |
From previous response |
Always get URN first when working with profile endpoints that require it.
Endpoint Quick Reference
Profile — /api/v1/profile/
| Endpoint |
Params |
Use |
overview |
username |
Basic info + URN ← start here |
details |
urn |
Positions, education, languages |
contact-info |
username |
Email, phone, websites |
about |
urn |
About section |
full |
username or urn |
Everything in 1 request |
full-experience |
urn |
Complete work history |
certifications |
urn |
Certifications |
education |
urn |
Education history |
skills |
urn |
Skills + endorsements |
social-matrix |
username |
Followers + connections |
recommendations |
urn |
Given + received |
similar |
urn |
Similar profiles |
reactions |
urn, cursor |
Profile reactions |
interests |
urn |
Interests |
services |
urn |
Services offered |
username-to-urn |
username |
Username → URN |
Companies — /api/v1/companies/
| Endpoint |
Params |
Use |
name-lookup |
query |
Search by name |
company/info |
id or name |
Company details |
company/info-v2 |
id |
Extended info |
company/similar |
id |
Similar companies |
company/employees-data |
id |
Headcount + distribution |
company/affiliated-pages |
id |
Subsidiaries |
company/posts |
id, start |
Company posts |
company/universal-name-to-id |
universalName |
Universal name → ID |
jobs |
companyIDs, start |
Job listings |
Jobs — /api/v1/jobs/
| Endpoint |
Params |
Use |
search |
keyword, location, timePosted, workArrangement, geoId, companyIds, jobTypes, experience, salary, start |
V1 job search |
job/details |
jobId |
Job info (open only) |
job/details-v2 |
jobId |
Job info (all statuses) |
job/similar |
jobId |
Similar jobs |
job/people-also-viewed |
jobId |
Related jobs |
job/hiring-team |
jobId, start |
Hiring team |
posted-by-profile |
profileUrn, start, count |
Jobs by a person |
Search — /api/v1/search/
| Endpoint |
Key Params |
Use |
people |
keyword, title, currentCompany, geoUrn, industry, firstName, lastName, start, count |
Find professionals |
companies |
keyword, geoUrn, companySize, hasJobs, industry, start, count |
Find companies |
posts |
keyword, sortBy, datePosted, authorJobTitle, fromOrganization, contentType, start |
Find posts |
jobs |
keyword, workplaceTypes, datePosted, easyApply, companies, locations, experience, salary, under10Applicants, start, count |
V2 job search |
services |
keyword, geoUrn, serviceCategory, profileLanguage, start, count |
Service providers |
schools |
keyword, start, count |
Schools |
Posts — /api/v1/posts/
| Endpoint |
Params |
Use |
featured |
urn |
Featured posts |
all |
urn, cursor, start |
All posts paginated |
info |
urn |
Single post |
comments |
urn, start, count, cursor |
Comments |
likes |
urn, start |
Likes |
| Endpoint |
Params |
Use |
all |
urn, cursor |
All comments |
likes |
urn, start |
Comment likes |
Articles — /api/v1/articles/
| Endpoint |
Params |
Use |
all |
urn, start |
All articles |
article/info |
url |
Article details |
article/reactions |
urn, start |
Reactions |
Lookups
| Path |
Params |
Use |
/api/v1/geos/name-lookup |
query |
→ geoUrn for location filters |
/api/v1/g/title-skills-lookup |
query |
→ skill/title IDs |
/api/v1/g/services-lookup |
query |
→ service category IDs |
Services — /api/v1/services/
| Endpoint |
Params |
Use |
service/details |
vanityname |
Service page |
service/similar |
vanityname |
Similar services |
System
| Path |
Use |
status/ |
Health check (no auth) |
Common Workflows
Lead Enrichment (Profile Research)
# Step 1: Get URN
PROFILE=$(curl -s -H "X-linkdapi-apikey: $LINKDAPI_KEY"
"https://linkdapi.com/api/v1/profile/overview?username=TARGET_USERNAME")
URN=$(echo $PROFILE | jq -r '.data.urn')
echo "$(echo $PROFILE | jq -r '.data.fullName') → $URN"
# Step 2: Enrich in parallel
curl -s -H "X-linkdapi-apikey: $LINKDAPI_KEY"
"https://linkdapi.com/api/v1/profile/full-experience?urn=$URN" | jq '.data.experience[0]' &
curl -s -H "X-linkdapi-apikey: $LINKDAPI_KEY"
"https://linkdapi.com/api/v1/profile/skills?urn=$URN" | jq '.data.skills[:5]' &
curl -s -H "X-linkdapi-apikey: $LINKDAPI_KEY"
"https://linkdapi.com/api/v1/profile/contact-info?username=TARGET_USERNAME" | jq '.data' &
wait
# Or use full endpoint (one request, more credits)
curl -s -H "X-linkdapi-apikey: $LINKDAPI_KEY"
"https://linkdapi.com/api/v1/profile/full?username=TARGET_USERNAME" | jq .data
Company Research
CO_ID=$(curl -s -H "X-linkdapi-apikey: $LINKDAPI_KEY"
"https://linkdapi.com/api/v1/companies/company/info?name=google" | jq -r '.data.id')
curl -s -H "X-linkdapi-apikey: $LINKDAPI_KEY"
"https://linkdapi.com/api/v1/companies/company/employees-data?id=$CO_ID" | jq .data &
curl -s -H "X-linkdapi-apikey: $LINKDAPI_KEY"
"https://linkdapi.com/api/v1/companies/company/similar?id=$CO_ID" | jq .data &
curl -s -H "X-linkdapi-apikey: $LINKDAPI_KEY"
"https://linkdapi.com/api/v1/companies/jobs?companyIDs=$CO_ID&start=0" | jq .data &
wait
ICP People Search
GEO_URN=$(curl -s -H "X-linkdapi-apikey: $LINKDAPI_KEY"
"https://linkdapi.com/api/v1/geos/name-lookup?query=San+Francisco" | jq -r '.data[0].urn')
curl -s -H "X-linkdapi-apikey: $LINKDAPI_KEY"
"https://linkdapi.com/api/v1/search/people?keyword=VP+Sales&title=VP+Sales&geoUrn=$GEO_URN&start=0"
| jq '.data.items'
Job Market Intel
# V2 (richest filters)
curl -s -H "X-linkdapi-apikey: $LINKDAPI_KEY"
"https://linkdapi.com/api/v1/search/jobs?keyword=Software+Engineer&workplaceTypes=remote&datePosted=1week&easyApply=true"
| jq .data
# V1 (classic, location string)
curl -s -H "X-linkdapi-apikey: $LINKDAPI_KEY"
"https://linkdapi.com/api/v1/jobs/search?keyword=Marketing+Manager&location=London&timePosted=1week&workArrangement=hybrid"
| jq .data
Content Research
# Posts by a profile
curl -s -H "X-linkdapi-apikey: $LINKDAPI_KEY"
"https://linkdapi.com/api/v1/posts/all?urn=$URN&start=0" | jq .data
# Search posts by keyword
curl -s -H "X-linkdapi-apikey: $LINKDAPI_KEY"
"https://linkdapi.com/api/v1/search/posts?keyword=AI+marketing&sortBy=date_posted&datePosted=past-week"
| jq .data
# Articles
curl -s -H "X-linkdapi-apikey: $LINKDAPI_KEY"
"https://linkdapi.com/api/v1/articles/all?urn=$URN&start=0" | jq .data
Error Handling
All responses: { "success": bool, "statusCode": int, "message": string, "errors": null|string, "data": ... }
RESULT=$(curl -s -H "X-linkdapi-apikey: $LINKDAPI_KEY"
"https://linkdapi.com/api/v1/profile/overview?username=someuser")
if echo $RESULT | jq -e '.success == true' > /dev/null 2>&1; then
echo "OK: $(echo $RESULT | jq -r '.data.fullName')"
else
CODE=$(echo $RESULT | jq -r '.statusCode')
MSG=$(echo $RESULT | jq -r '.message')
echo "Error $CODE: $MSG"
# 401=invalid key | 404=not found | 429=rate limited (retry with backoff) | 500=server error
[ "$CODE" = "429" ] && sleep 5 && echo "Retry after backoff"
fi
B2B Marketing Playbook
| Goal |
Endpoints |
| Lead enrichment |
profile/overview → profile/full-experience + profile/skills + profile/contact-info |
| ICP targeting |
geos/name-lookup → search/people with title + currentCompany + geoUrn |
| Competitor intel |
companies/company/posts or search/posts?fromOrganization=ID |
| Hiring signals |
companies/jobs?companyIDs=ID reveals growth areas |
| Content inspiration |
posts/all on top voices + posts/info for engagement stats |
| Warm outreach prep |
profile/recommendations + posts/all before messaging |
| Job trigger events |
jobs/posted-by-profile to find who is hiring actively |
Reference Files
references/api-ref.md — Full parameter schemas, all enums, and response field descriptions for every endpoint. Read this when you need exact param names or response field shapes.
references/skills.json — Machine-readable manifest of all endpoints (for dynamic tooling or integrations).