🧪 Skills

LinkdAPI

Complete LinkdAPI integration OpenClaw skill. Includes all 50+ endpoints, Python/Node.js/Go SDKs, authentication, rate limits, and real-world examples. Use t...

v1.0.0
❤️ 4
⬇️ 1.7k
👁 1
Share

Description


name: linkdapi-openclaw description: Complete LinkdAPI integration OpenClaw skill. Includes all 50+ endpoints, Python/Node.js/Go SDKs, authentication, rate limits, and real-world examples. Use this skill whenever the user wants to look up LinkedIn profiles, search LinkedIn people or companies, enrich leads, research LinkedIn jobs, scrape LinkedIn posts or articles, do B2B prospecting, get LinkedIn company data, or call any LinkedIn data API. Always use this skill for ANY LinkedIn data task, even if the user just says "find me on LinkedIn" or "look up this company" or "search LinkedIn for engineers in Berlin". version: 1.0.0 author: LinkdAPI Team

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

Comments — /api/v1/comments/

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/overviewprofile/full-experience + profile/skills + profile/contact-info
ICP targeting geos/name-lookupsearch/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).

Reviews (0)

Sign in to write a review.

No reviews yet. Be the first to review!

Comments (0)

Sign in to join the discussion.

No comments yet. Be the first to share your thoughts!

Compatible Platforms

Pricing

Free

Related Configs