
LinkdAPI is not just an endpoint-based service — it's a structured data layer built on top of LinkedIn. To use it effectively and efficiently, it’s essential to understand the core flow and philosophy behind how we designed it.
Most of our endpoints accept a URN — a unique identifier assigned by LinkedIn to each profile, post, or comment. Think of it as the most precise and reliable key to access any data on LinkedIn.
While we do allow username-based access for some endpoints (like profile lookups), we strongly encourage the use of URNs as the primary identifier. URNs are more consistent and future-proof.
You can retrieve the URN of a LinkedIn user by sending a request to the following endpoint using their public LinkedIn username:
https://linkdapi.com/api/v1/profile/overview?username=ryanroslansky
The response will look something like this:
{
"success": true,
"statusCode": 200,
"message": "Data retrieved successfully",
"data": {
...
"urn": "ACoAAAAKXBwBikfbNJww68eYvcu2dqDYJhHbp4g",
...
}
}
Extract the value of the urn key and use it in any endpoint that requires a profile URN.
Post URNs can be derived directly from the post URL. For example, in the following LinkedIn URL:
https://www.linkedin.com/feed/update/urn:li:activity:7353638537595932672
The URN is simply:
7353638537595932672
You can now pass this URN to any post-related endpoint, such as /api/v1/posts/info.
Comment URNs come from LinkedIn comment URLs. When you copy the link to a comment (via the three dots menu), you’ll get something like this after URL decoding:
https://www.linkedin.com/feed/update/urn:li:activity:7356579210234150912?commentUrn=urn:li:comment:(activity:7356579210234150912,7356603887497150465)
From this, extract the following as the URN:
7356579210234150912,7356603887497150465
This URN should be passed to any comment-related endpoint, such as /api/v1/comments/likes.
/api/v1/comments/likes on a comment that has zero likes, you will receive the following response and still be charged for the request:{
"success": false,
"statusCode": 200,
"message": "the data cannot be displayed or it doesn't exist, Make sure the URN/username is correct and exists",
"errors": null,
"data": null
}
To avoid this, make sure the comment has at least one like before querying likes data.
A Company ID is a unique identifier for a LinkedIn Company Page. You can retrieve it in two primary ways:
If you have the company's name or LinkedIn vanity URL (e.g., "linkedin" for linkedin.com/company/linkedin), use the lookup endpoint:
GET api/v1/companies/name-lookup?name=google
The response will contain the company's URN:
{
"success": true,
"statusCode": 200,
"message": "Data retrieved successfully",
"errors": null,
"data": {
"companies": [
...
{
"id": "1337",
"type": "COMPANY",
"displayName": "LinkedIn"
},
...
],
"query": "linkedin"
}
}
1337 is the Company Id here
GET /api/v1/companies/company/info?name=google
{
"success": true,
"statusCode": 200,
"message": "Data retrieved successfully",
"errors": null,
"data": {
...
"id": "1441",
...
}
}
1441 is the Company Id here
Job IDs can be derived directly from a job posting's URL or found via search.
LinkedIn job URLs typically contain the Job ID. For example, from these URLs:
https://www.linkedin.com/jobs/view/4218054452
https://www.linkedin.com/jobs/collections/recommended/?currentJobId=4218054452
The Job ID is simply: 4218054452
When you use the job search endpoint, the results will return a list of jobs, each with its unique ID.
GET /api/v1/jobs/search?keyword=nodejs
The response will include an array of job objects, each containing an id or jobId field. Use this ID for endpoints like /api/v1/jobs/detail.
A Geo ID is a URN representing a specific geographic location (e.g., a country, region, or city). It's crucial for location-based searches.
When you perform a people search on LinkedIn and filter by location, the geoUrn parameter in the URL contains the ID.
https://www.linkedin.com/search/results/people/?geoUrn=[90009496]&keywords=nodejs
The Geo ID, in this case, is: 90009496
To find the Geo ID for a location name (e.g., Washington), use the dedicated lookup endpoint:
GET /api/v1/geos/name-lookup?query=Washington
{
"success": true,
"statusCode": 200,
"message": "Data retrieved successfully",
"errors": null,
"data": {
"geoIds": [
...
{
"id": "104383890",
"type": "GEO",
"displayName": "Washington, District of Columbia, United States"
},
...
],
"query": "Washington"
}
}
The response will provide the correct Geo ID to use in your requests.
Professional titles and skills also have unique identifiers. These are essential for precise filtering in people search and analytics.
GET /api/v1/title-skills-lookup?query=software
{
"success": true,
"statusCode": 200,
"message": "Data retrieved successfully",
"errors": null,
"data": {
"results": [
...
{
"id": "242",
"type": "SKILL",
"displayName": "Software"
},
...
],
"query": "software"
}
}
The response will provide the correct IDs to use in your requests.
We built LinkdAPI with the belief that API consumption should be:
By following the URN-centric design, you’ll unlock the full potential of our API with fewer errors and better performance.
username query.Have questions or want to suggest new features? Contact our support at [email protected] we’re building this with developers like you in mind.
Your feedback helps us improve our documentation
Still need help? Our support team is here for you.