LinkedIn data API for profiles, companies, jobs and posts
Send a profile slug, a company slug, a job URL or a keyword and get structured JSON back. No partner program and no LinkedIn login.
request.ts
import { Bridgly } from "@bridgly/sdk";const client = new Bridgly({ apiKey: "bgly_YOUR_KEY" });const res = await client.linkedin.getProfileFromUrl({ memberIdentity: "williamhgates"});if (res.type === "success") { console.log(res.data);}npm install @bridgly/sdk
All 21 LinkedIn endpoints
A profile lookup returns the whole page, not a summary of it: headline, about, location, every experience and education entry, plus skills, certifications, languages, publications, patents, projects and awards. It also says whether the member is open to work or hiring.
Company lookups return headcount and headcount range, industry, headquarters and other locations, follower count, specialties, funding data and similar companies. Job lookups return the full description with seniority, employment type, workplace policy, apply link, and how many people have viewed and applied.
Around those records sits the activity: the posts a member or company published, a single post with its counts, the comments under it, who reacted, and what a given member has commented on or reacted to.
People and companies
Single-record lookups by the slug that appears in the LinkedIn URL.
POST/linkedin/get-profile-from-url
Full profile: headline, about, experience, education, skills, certifications, open-to-work and hiring flags1 credit per requestDocs →
Request body
memberIdentitystringrequired- The member's public identity — the slug in linkedin.com/in/<memberIdentity>, e.g. "williamhgates".
Response
200 OK · application/json
{ "timeMs": 1840, "creditsCost": 1, "data": { "name": "string", "headline": "string", "location": "string", "profilePhotoUrl": "string", "bannerPhotoUrl": "string", "about": "string", "profileUrl": "string", "openToWork": true, "hiring": true, "industry": "string", "experience": [ { "title": "string", "company": "string", "companyId": "string", "companyUrl": "string", "companyLogoUrl": "string", "employmentType": "string", "location": "string", "startDate": "string", "endDate": "string", "description": "string", "industries": [ "string" ] } ], "education": [ { "school": "string", "schoolId": "string", "schoolUrl": "string", "schoolLogoUrl": "string", "degree": "string", "fieldOfStudy": "string", "startDate": "string", "endDate": "string", "grade": "string", "activities": "string", "description": "string" } ], "volunteering": [ { "role": "string", "organization": "string", "cause": "string", "startDate": "string", "endDate": "string", "description": "string" } ], "certifications": [ { "name": "string", "issuingOrganization": "string", "issueDate": "string", "expirationDate": "string", "credentialId": "string", "credentialUrl": "string" } ], "skills": [ { "name": "string", "endorsements": "string" } ], "languages": [ { "name": "string", "proficiency": "string" } ], "publications": [ { "title": "string", "publisher": "string", "publishDate": "string", "description": "string", "url": "string" } ], "patents": [ { "title": "string", "patentOffice": "string", "patentNumber": "string", "issueDate": "string", "description": "string" } ], "courses": [ { "name": "string", "number": "string" } ], "projects": [ { "name": "string", "startDate": "string", "endDate": "string", "description": "string", "url": "string" } ], "honorsAndAwards": [ { "title": "string", "issuer": "string", "issueDate": "string", "description": "string" } ], "birthday": "string", "address": "string" }}POST/linkedin/get-company-from-url
Company page: industry, headcount, headquarters, locations, followers, specialties, funding and similar companies1 credit per requestDocs →
Request body
universalNamestringrequired- The company's LinkedIn universal name — the slug in linkedin.com/company/<universalName>, e.g. "openai".
Response
200 OK · application/json
{ "timeMs": 1840, "creditsCost": 1, "data": { "name": "string", "universalName": "string", "description": "string", "website": "string", "industry": "string", "companyType": "string", "foundedYear": 0, "staffCount": 0, "staffCountRange": "string", "specialties": [ "string" ], "headquarters": { "line1": "string", "city": "string", "geographicArea": "string", "postalCode": "string", "country": "string", "headquarter": true }, "confirmedLocations": [ { "line1": "string", "city": "string", "geographicArea": "string", "postalCode": "string", "country": "string", "headquarter": true } ], "logoUrl": "string", "bannerUrl": "string", "linkedinUrl": "string", "followerCount": 0, "tagline": "string", "affiliatedCompanyIds": [ "string" ], "showcasePageIds": [ "string" ], "fundingData": { "numFundingRounds": 0, "lastFundingRound": { "fundingType": "string", "moneyRaised": { "currencyCode": "string", "amount": "string" }, "announcedOn": "string", "leadInvestors": [ { "name": "string", "crunchbaseUrl": "string" } ], "numOtherInvestors": 0, "crunchbaseUrl": "string" }, "companyCrunchbaseUrl": "string" }, "similarCompanies": [ { "id": "string", "name": "string", "description": "string", "logoUrl": "string", "url": "string", "industry": "string" } ] }}Jobs
One posting in full, or a filtered search across open roles.
POST/linkedin/get-job
Job posting: full description, seniority, employment type, remote flag, apply link, views and applicants1 credit per requestDocs →
Request body
jobUrlstringrequired- The LinkedIn job posting URL — the numeric job id is parsed from it, e.g. "https://www.linkedin.com/jobs/view/4417164255/".
Response
200 OK · application/json
{ "timeMs": 1840, "creditsCost": 1, "data": { "jobId": "string", "jobUrn": "string", "dashJobUrn": "string", "jobUrl": "string", "applyUrl": "string", "title": "string", "standardizedTitleUrn": "string", "standardizedTitleId": "string", "standardizedTitleName": "string", "description": "string", "location": "string", "geoUrn": "string", "geoId": "string", "countryUrn": "string", "countryCode": "string", "workRemoteAllowed": true, "experienceLevel": "string", "employmentType": "string", "employmentTypeUrn": "string", "employmentTypeCode": "string", "industries": [ { "industryId": "string", "name": "string" } ], "jobFunctions": [ { "code": "string", "name": "string" } ], "inferredBenefits": [ "string" ], "jobState": "string", "sourceDomain": "string", "listedAt": "string", "listedAtEpochMs": 0, "originalListedAt": "string", "originalListedAtEpochMs": 0, "expiresAt": "string", "expiresAtEpochMs": 0, "closedAt": "string", "closedAtEpochMs": 0, "applies": 0, "views": 0, "companyName": "string", "companyUrn": "string", "companyId": "string", "companyUrl": "string", "companyUniversalName": "string", "companyStaffCount": 0, "companyDescription": "string", "companyLogoUrl": "string" }}POST/linkedin/search/jobs
Job results with title, company, location, salary when listed and posting date1 credit per resultDocs →
Request body
keywordstringrequired- Keyword(s) to search LinkedIn for, e.g. "openai", "software engineer", "fintech".
startinteger- Pagination offset into the result list. Defaults to 0.
countinteger · 1–10 · default 10- Number of results to return (1–10). Defaults to 10.
locationstring- Geographic location to filter jobs by, e.g. "San Francisco Bay Area", "India", "Remote".
workplaceTypeenum- Restrict to jobs with this workplace arrangement.
- on-site | remote | hybrid
experienceLevelenum- Restrict to jobs at this seniority level.
- internship | entry-level | associate | mid-senior | director | executive
jobTypeenum- Restrict to jobs with this employment type.
- full-time | part-time | contract | temporary | internship | volunteer | other
datePostedenum- Restrict to posts published within a recent window.
- past-24h | past-week | past-month
Response
200 OK · application/json
{ "timeMs": 1840, "creditsCost": 1, "data": { "jobs": [ { "jobUrn": "string", "jobId": "string", "jobUrl": "string", "title": "string", "companyName": "string", "companyUrn": "string", "companyId": "string", "companySlug": "string", "companyUrl": "string", "location": "string", "salary": "string", "listedAt": "string", "listedAtEpochMs": 0, "imageUrl": "string", "reposted": true, "verified": true } ], "keyword": "string", "totalResultCount": 0 }}Posts and engagement
What a member or company posted, and how people responded to it.
POST/linkedin/get-posts/from-profile
A member’s posts with text, images, links, reshares and like, comment and share counts1 credit per resultDocs →
Request body
publicIdstringrequired- The member public identity, e.g. "williamhgates".
startinteger- Pagination offset into the post list. Defaults to 0.
countinteger · 1–10 · default 10- Number of posts to return (1–10). Defaults to 10.
Response
200 OK · application/json
{ "timeMs": 1840, "creditsCost": 1, "data": { "posts": [ { "urn": "string", "url": "string", "shareUrn": "string", "shareAudience": "string", "text": "string", "publishedAt": "string", "postedAt": 0, "actorName": "string", "actorUrn": "string", "actorPublicIdentifier": "string", "actorUrl": "string", "actorHeadline": "string", "images": [ { "url": "string" } ], "article": { "title": "string", "subtitle": "string", "url": "string", "imageUrl": "string" }, "event": { "title": "string", "url": "string", "date": "string", "location": "string" }, "job": { "title": "string", "company": "string", "location": "string", "url": "string" }, "socialCounts": { "numLikes": 0, "numComments": 0, "numShares": 0, "reactionTypeCounts": [ { "reactionType": "string", "count": 0 } ] }, "resharedPost": { "actorName": "string", "text": "string", "actorUrn": "string", "actorPublicIdentifier": "string", "actorUrl": "string", "publishedAt": "string", "urn": "string", "url": "string", "shareUrn": "string" }, "comments": [ { "urn": "string", "text": "string", "commenterName": "string", "commenterUrn": "string", "createdTime": 0, "parentCommentUrn": "string" } ] } ], "paging": { "start": 0, "count": 0, "total": 0 } }}POST/linkedin/get-posts/from-company
A company page’s posts with text, media and engagement counts1 credit per resultDocs →
Request body
universalNamestringrequired- The company universal name, e.g. "openai".
startinteger- Pagination offset into the post list. Defaults to 0.
countinteger · 1–10 · default 10- Number of posts to return (1–10). Defaults to 10.
Response
200 OK · application/json
{ "timeMs": 1840, "creditsCost": 1, "data": { "posts": [ { "urn": "string", "url": "string", "shareUrn": "string", "shareAudience": "string", "text": "string", "publishedAt": "string", "postedAt": 0, "actorName": "string", "actorUrn": "string", "actorPublicIdentifier": "string", "actorUrl": "string", "actorHeadline": "string", "images": [ { "url": "string" } ], "article": { "title": "string", "subtitle": "string", "url": "string", "imageUrl": "string" }, "event": { "title": "string", "url": "string", "date": "string", "location": "string" }, "job": { "title": "string", "company": "string", "location": "string", "url": "string" }, "socialCounts": { "numLikes": 0, "numComments": 0, "numShares": 0, "reactionTypeCounts": [ { "reactionType": "string", "count": 0 } ] }, "resharedPost": { "actorName": "string", "text": "string", "actorUrn": "string", "actorPublicIdentifier": "string", "actorUrl": "string", "publishedAt": "string", "urn": "string", "url": "string", "shareUrn": "string" }, "comments": [ { "urn": "string", "text": "string", "commenterName": "string", "commenterUrn": "string", "createdTime": 0, "parentCommentUrn": "string" } ] } ], "paging": { "start": 0, "count": 0, "total": 0 } }}POST/linkedin/get-post-detail
One post with its author, text, attachments, reaction breakdown and first comments1 credit per requestDocs →
Request body
activityUrnstringrequired- The post/update to fetch — a `urn:li:activity:<id>`, e.g. "urn:li:activity:7300000000000000000".
Response
200 OK · application/json
{ "timeMs": 1840, "creditsCost": 1, "data": { "urn": "string", "url": "string", "shareUrn": "string", "shareAudience": "string", "text": "string", "publishedAt": "string", "postedAt": 0, "actorName": "string", "actorUrn": "string", "actorPublicIdentifier": "string", "actorUrl": "string", "actorHeadline": "string", "images": [ { "url": "string" } ], "article": { "title": "string", "subtitle": "string", "url": "string", "imageUrl": "string" }, "event": { "title": "string", "url": "string", "date": "string", "location": "string" }, "job": { "title": "string", "company": "string", "location": "string", "url": "string" }, "socialCounts": { "numLikes": 0, "numComments": 0, "numShares": 0, "reactionTypeCounts": [ { "reactionType": "string", "count": 0 } ] }, "resharedPost": { "actorName": "string", "text": "string", "actorUrn": "string", "actorPublicIdentifier": "string", "actorUrl": "string", "publishedAt": "string", "urn": "string", "url": "string", "shareUrn": "string" }, "comments": [ { "urn": "string", "text": "string", "commenterName": "string", "commenterUrn": "string", "createdTime": 0, "parentCommentUrn": "string" } ] }}POST/linkedin/get-activity-comments
Comments under a post with author, text, time, likes and reply counts1 credit per resultDocs →
Request body
activityUrnstringrequired- The activity to fetch comments for — a `urn:li:activity:<id>`, e.g. "urn:li:activity:7300000000000000000".
countinteger · 1–10 · default 10- Number of comments to return (1–10). Defaults to 10.
Response
200 OK · application/json
{ "timeMs": 1840, "creditsCost": 1, "data": [ { "urn": "string", "activityId": "string", "commentId": "string", "parentCommentId": "string", "text": "string", "authorName": "string", "createdTime": 0, "numLikes": 0, "numComments": 0 } ]}POST/linkedin/get-post-reactions
Members who reacted to a post, with name, headline, profile URL and reaction type1 credit per resultDocs →
Request body
activityUrnstringrequired- The post/update to fetch reactions for — a `urn:li:activity:<id>`, e.g. "urn:li:activity:7300000000000000000".
countinteger · 1–10 · default 10- Number of reactions to return (1–10). Defaults to 10.
startinteger- Pagination offset into the comment list. Defaults to 0.
Response
200 OK · application/json
{ "timeMs": 1840, "creditsCost": 1, "data": [ { "reactorName": "string", "reactorHeadline": "string", "reactorProfileUrn": "string", "reactorMemberId": "string", "reactorPublicId": "string", "reactorProfileUrl": "string", "reactorProfileImage": "string", "reactionType": "string" } ]}POST/linkedin/get-profile-comments
Comments a member has written, with text, time and the post they were left on1 credit per resultDocs →
Request body
publicIdstringrequired- The member public identity, e.g. "williamhgates".
countinteger · 1–10 · default 10- Number of comments to return (1–10). Defaults to 10.
startinteger- Pagination offset into the comment list. Defaults to 0.
Response
200 OK · application/json
{ "timeMs": 1840, "creditsCost": 1, "data": [ { "urn": "string", "text": "string", "authorName": "string", "createdTime": 0, "permalink": "string", "rootActivityUrn": "string", "parentCommentUrn": "string" } ]}POST/linkedin/get-profile-reactions
Posts a member reacted to, with the reaction type, post text, author and counts1 credit per resultDocs →
Request body
publicIdstringrequired- The member public identity, e.g. "williamhgates".
countinteger · 1–10 · default 10- Number of reactions to return (1–10). Defaults to 10.
startinteger- Pagination offset into the comment list. Defaults to 0.
Response
200 OK · application/json
{ "timeMs": 1840, "creditsCost": 1, "data": [ { "urn": "string", "reactionType": "string", "text": "string", "createdTime": 0, "permalink": "string", "rootActivityUrn": "string", "activityId": "string", "shareUrn": "string", "numLikes": 0, "numComments": 0, "numShares": 0, "authorName": "string", "authorType": "member", "authorUrn": "string", "authorProfileUrn": "string", "authorPublicId": "string", "authorUrl": "string", "authorHeadline": "string", "authorImage": "string" } ]}Search
Keyword search, one endpoint per LinkedIn result type. Each returns the total result count alongside the page of results.
POST/linkedin/search/all
Mixed results across people, companies and other types1 credit per resultDocs →
Request body
keywordstringrequired- Keyword(s) to search LinkedIn for, e.g. "openai", "software engineer", "fintech".
startinteger- Pagination offset into the result list. Defaults to 0.
countinteger · 1–10 · default 10- Number of results to return (1–10). Defaults to 10.
Response
200 OK · application/json
{ "timeMs": 1840, "creditsCost": 1, "data": { "results": [ { "profileUrn": "string", "publicIdentifier": "string", "profileUrl": "string", "memberUrn": "string", "name": "string", "headline": "string", "location": "string", "summary": "string", "profilePictureUrl": "string", "networkDistance": "self", "degreeBadge": "string", "verified": true, "insight": "string", "type": "person" } ], "keyword": "string", "totalResultCount": 0 }}POST/linkedin/search/people
Members with name, headline, location and profile URL1 credit per resultDocs →
Request body
keywordstringrequired- Keyword(s) to search LinkedIn for, e.g. "openai", "software engineer", "fintech".
startinteger- Pagination offset into the result list. Defaults to 0.
countinteger · 1–10 · default 10- Number of results to return (1–10). Defaults to 10.
Response
200 OK · application/json
{ "timeMs": 1840, "creditsCost": 1, "data": { "people": [ { "profileUrn": "string", "publicIdentifier": "string", "profileUrl": "string", "memberUrn": "string", "name": "string", "headline": "string", "location": "string", "summary": "string", "profilePictureUrl": "string", "networkDistance": "self", "degreeBadge": "string", "verified": true, "insight": "string" } ], "keyword": "string", "totalResultCount": 0 }}POST/linkedin/search/companies
Companies with industry, location, follower count and description1 credit per resultDocs →
Request body
keywordstringrequired- Keyword(s) to search LinkedIn for, e.g. "openai", "software engineer", "fintech".
startinteger- Pagination offset into the result list. Defaults to 0.
countinteger · 1–10 · default 10- Number of results to return (1–10). Defaults to 10.
Response
200 OK · application/json
{ "timeMs": 1840, "creditsCost": 1, "data": { "companies": [ { "companyUrn": "string", "companyId": "string", "universalName": "string", "companyUrl": "string", "name": "string", "industry": "string", "location": "string", "followersLabel": "string", "followersCount": 0, "description": "string", "logoUrl": "string" } ], "keyword": "string", "totalResultCount": 0 }}POST/linkedin/search/posts
Posts with text, author, engagement counts and attachments1 credit per resultDocs →
Request body
keywordstringrequired- Keyword(s) to search LinkedIn for, e.g. "openai", "software engineer", "fintech".
startinteger- Pagination offset into the result list. Defaults to 0.
countinteger · 1–10 · default 10- Number of results to return (1–10). Defaults to 10.
sortOrderenum- Result ordering: "date_posted" for newest-first, "relevance" for LinkedIn ranking.
- date_posted | relevance
datePostedenum- Restrict to posts published within a recent window.
- past-24h | past-week | past-month
Response
200 OK · application/json
{ "timeMs": 1840, "creditsCost": 1, "data": { "posts": [ { "urn": "string", "shareUrn": "string", "url": "string", "text": "string", "postedAgo": "string", "author": { "name": "string", "headline": "string", "profileUrl": "string", "profileUrn": "string", "memberUrn": "string", "imageUrl": "string" }, "socialCounts": { "numLikes": 0, "numComments": 0, "numShares": 0, "reactionTypeCounts": [ { "reactionType": "string", "count": 0 } ] }, "content": { "type": "article", "title": "string", "subtitle": "string", "url": "string", "imageUrl": "string" } } ], "keyword": "string", "totalResultCount": 0 }}POST/linkedin/search/groups
Groups with member count and description1 credit per resultDocs →
Request body
keywordstringrequired- Keyword(s) to search LinkedIn for, e.g. "openai", "software engineer", "fintech".
startinteger- Pagination offset into the result list. Defaults to 0.
countinteger · 1–10 · default 10- Number of results to return (1–10). Defaults to 10.
Response
200 OK · application/json
{ "timeMs": 1840, "creditsCost": 1, "data": { "groups": [ { "groupUrn": "string", "groupId": "string", "groupUrl": "string", "name": "string", "membersLabel": "string", "membersCount": 0, "description": "string", "logoUrl": "string" } ], "keyword": "string", "totalResultCount": 0 }}POST/linkedin/search/events
Events with date, location, organizer and attendee count1 credit per resultDocs →
Request body
keywordstringrequired- Keyword(s) to search LinkedIn for, e.g. "openai", "software engineer", "fintech".
startinteger- Pagination offset into the result list. Defaults to 0.
countinteger · 1–10 · default 10- Number of results to return (1–10). Defaults to 10.
Response
200 OK · application/json
{ "timeMs": 1840, "creditsCost": 1, "data": { "events": [ { "eventUrn": "string", "eventId": "string", "eventUrl": "string", "name": "string", "dateLabel": "string", "location": "string", "isOnline": true, "organizer": "string", "attendeesLabel": "string", "attendeesCount": 0, "description": "string", "imageUrl": "string" } ], "keyword": "string", "totalResultCount": 0 }}POST/linkedin/search/schools
Schools with location and student and alumni count1 credit per resultDocs →
Request body
keywordstringrequired- Keyword(s) to search LinkedIn for, e.g. "openai", "software engineer", "fintech".
startinteger- Pagination offset into the result list. Defaults to 0.
countinteger · 1–10 · default 10- Number of results to return (1–10). Defaults to 10.
Response
200 OK · application/json
{ "timeMs": 1840, "creditsCost": 1, "data": { "schools": [ { "schoolUrn": "string", "schoolId": "string", "universalName": "string", "schoolUrl": "string", "name": "string", "location": "string", "studentsAndAlumniLabel": "string", "studentsAndAlumniCount": 0, "description": "string", "logoUrl": "string" } ], "keyword": "string", "totalResultCount": 0 }}POST/linkedin/search/courses
LinkedIn Learning courses with author, duration and release date1 credit per resultDocs →
Request body
keywordstringrequired- Keyword(s) to search LinkedIn for, e.g. "openai", "software engineer", "fintech".
startinteger- Pagination offset into the result list. Defaults to 0.
countinteger · 1–10 · default 10- Number of results to return (1–10). Defaults to 10.
Response
200 OK · application/json
{ "timeMs": 1840, "creditsCost": 1, "data": { "courses": [ { "courseUrn": "string", "courseId": "string", "universalName": "string", "courseUrl": "string", "name": "string", "format": "string", "duration": "string", "durationMinutes": 0, "author": "string", "releasedDate": "string", "releasedYear": 0, "releasedMonth": 0, "releasedDay": 0, "thumbnailUrl": "string" } ], "keyword": "string", "totalResultCount": 0 }}POST/linkedin/search/products
Product pages with category, maker, features and users1 credit per resultDocs →
Request body
keywordstringrequired- Keyword(s) to search LinkedIn for, e.g. "openai", "software engineer", "fintech".
startinteger- Pagination offset into the result list. Defaults to 0.
countinteger · 1–10 · default 10- Number of results to return (1–10). Defaults to 10.
Response
200 OK · application/json
{ "timeMs": 1840, "creditsCost": 1, "data": { "products": [ { "productUrn": "string", "productId": "string", "universalName": "string", "productUrl": "string", "name": "string", "category": "string", "maker": "string", "description": "string", "topFeatures": "string", "integrations": "string", "usedBy": [ { "companyUrn": "string", "companyId": "string", "name": "string", "companyUrl": "string" } ], "usedByOthersCount": 0, "logoUrl": "string" } ], "keyword": "string", "totalResultCount": 0 }}POST/linkedin/search/services
Service providers with headline, location and services offered1 credit per resultDocs →
Request body
keywordstringrequired- Keyword(s) to search LinkedIn for, e.g. "openai", "software engineer", "fintech".
startinteger- Pagination offset into the result list. Defaults to 0.
countinteger · 1–10 · default 10- Number of results to return (1–10). Defaults to 10.
Response
200 OK · application/json
{ "timeMs": 1840, "creditsCost": 1, "data": { "services": [ { "profileUrn": "string", "memberUrn": "string", "servicePageUrl": "string", "servicePageId": "string", "name": "string", "headline": "string", "location": "string", "description": "string", "services": [ "string" ], "profilePictureUrl": "string" } ], "keyword": "string", "totalResultCount": 0 }}Why not the official LinkedIn API?
LinkedIn’s official APIs are built for approved partners and for apps acting on behalf of a signed-in member. There is no self-serve way to look up any public profile, company page or job posting by its URL.
Partner approval first
Marketing, Talent and Sales Navigator API access each start with a partner application and a review. Bridgly works as soon as you create an API key.
Only the signed-in member
Sign In with LinkedIn returns the signed-in member’s own name, photo and email. Other members’ profiles, posts and reactions are not part of it.
No people or job search
Regular developer apps cannot search people or jobs. Bridgly has eleven search endpoints, including people, companies, jobs and posts.
Your first LinkedIn call
Terminal
curl -X POST "https://api.bridgly.app/linkedin/get-profile-from-url" \ -H "Authorization: Bearer $BRIDGLY_KEY" \ -H "Content-Type: application/json" \ -d '{ "memberIdentity": "williamhgates"}'With Bridgly connected to your AI agent, ask:
Look up the LinkedIn profile linkedin.com/in/williamhgates and summarize his current roles and education.
What people build with LinkedIn data
Enrich a lead or a signup
Turn a LinkedIn URL from a form or a CRM row into current title, employer, location and work history, then score or route the lead on real data instead of what the person typed.
Source candidates
Search people by keyword, pull each profile, and filter on the openToWork flag, skills and tenure in your own code rather than paging through a recruiter seat.
Track hiring as a signal
Search jobs by keyword, location, seniority and workplace type on a schedule. A company opening five data roles in a month says something its press releases do not.
Watch what accounts are saying
Pull recent posts from the companies and people you sell to or compete with, with reaction and comment counts, and hand the text to a model or a dashboard.
What the LinkedIn API does not do
- Public data only. Fields a member hides from logged-out visitors, and their email or phone number, are not returned.
- Read-only. There are no endpoints to post, message, send connection requests or react.
- List and search endpoints return up to 10 results per call. Page with start to get more.
- Sales Navigator and Recruiter filters are not available. Search uses LinkedIn’s standard keyword search and job filters.
LinkedIn API questions
Is this the official LinkedIn API?
No. Bridgly is an independent service and is not affiliated with LinkedIn. LinkedIn’s own APIs are limited to approved partners and specific use cases; Bridgly gives you self-serve access with an API key. You are responsible for using the data in line with the laws and terms that apply to you.
Do I need my own LinkedIn account, cookies or proxies?
No. A request contains only what you are looking up, such as a profile slug or a keyword. You never send a session cookie or log in anywhere.
How much does a LinkedIn profile lookup cost?
One credit. List and search endpoints cost one credit per result returned, so a full page of 10 is 10 credits. What a credit costs in dollars depends on your pricing package, and goes as low as $1 per 1,000 credits at volume.
What happens if the profile or company does not exist?
You get a 404 and are not charged. Error responses never consume credits.
Can I filter job search results?
Yes. Job search accepts a location, workplace type (on-site, remote, hybrid), experience level, job type and a posted-within window of 24 hours, a week or a month. Post search can be sorted by date or relevance and limited to the same windows.
How do I get the comments or reactions on a post?
Post detail, comments and reactions take the post’s activity URN (urn:li:activity:<id>). Every post returned by the post lists and post search includes its urn, so list first, then drill in.
Your API key and credits work on every platform. See all platforms.
Common terms for LinkedIn API access
- LinkedIn API
- LinkedIn data API
- LinkedIn scraper API
- LinkedIn profile API
- LinkedIn company API
- LinkedIn jobs API
- LinkedIn posts API
- LinkedIn people search API
- LinkedIn API alternative
- LinkedIn API without partner program
Start pulling LinkedIn data
100 free credits, no card. Your first call takes a minute.