# LinkdAPI > The best API for professional data. B2B data intelligence platform providing structured access to professional profiles, company information, job listings, and employment trends through 50+ REST API endpoints. ## Overview LinkdAPI is an API-first platform built for developers, SaaS companies, and data-driven organizations. It provides structured B2B data for enrichment, analytics, CRM integration, and automation use cases. All data is delivered via a RESTful JSON API with sub-200ms response times and 99.9% uptime. - Website: https://linkdapi.com - Sign Up (100 free credits): https://linkdapi.com/signup - API Documentation: https://linkdapi.com/docs - API Spec (OpenAPI 3.0): https://linkdapi.com/apispec.yml - Blog: https://linkdapi.com/blog - Help Center: https://linkdapi.com/help-center - Roadmap: https://linkdapi.com/roadmap ## Authentication All API requests require an API key passed via the `X-linkdapi-apikey` header. ``` X-linkdapi-apikey: your_api_key ``` Base URL: `https://linkdapi.com` ## SDKs ### Python SDK - Install: `pip install linkdapi` - PyPI: https://pypi.org/project/linkdapi/ - GitHub: https://github.com/linkdAPI/linkdapi-SDK - Supports both synchronous and asynchronous clients ```python # Synchronous from linkdapi import LinkdAPI client = LinkdAPI("your_api_key") profile = client.get_profile_overview("username") # Asynchronous (up to 40x faster for batch operations) from linkdapi import AsyncLinkdAPI import asyncio async def main(): async with AsyncLinkdAPI("your_api_key") as api: profile = await api.get_profile_overview("username") asyncio.run(main()) ``` ### Node.js SDK - Install: `npm install linkdapi` - npm: https://www.npmjs.com/package/linkdapi - GitHub: https://github.com/linkdAPI/linkdapi-node-sdk - Requires Node.js 18.0.0+ ```typescript import { LinkdAPI } from 'linkdapi'; const api = new LinkdAPI({ apiKey: 'your_api_key' }); const profile = await api.getProfileOverview('username'); ``` ### Go SDK - Install: `go get github.com/linkdapi/linkdapi-go-sdk` - GitHub: https://github.com/linkdAPI/linkdapi-go-sdk ```go import "github.com/linkdapi/linkdapi-go-sdk/linkdapi" client := linkdapi.NewClient("your_api_key") defer client.Close() profile, err := client.GetProfileOverview("username") ``` ### OpenClaw Skill (AI Agent Integration) - https://clawhub.ai/ethcipher/linkdapi-official - Enables AI agents to query LinkdAPI endpoints directly ## API Endpoints All endpoints return JSON with this standard envelope: ```json { "success": true, "statusCode": 200, "message": "Data retrieved successfully", "errors": null, "data": { ... } } ``` ### Profile Endpoints #### GET /api/v1/profile/overview Get basic profile information by username. - Parameters: `username` (required, string) - Response `data` fields: `firstName`, `lastName`, `fullName`, `headline`, `publicIdentifier`, `followerCount`, `connectionsCount`, `creator`, `qualityProfile`, `joined`, `profileID`, `urn`, `CurrentPositions` (array: `urn`, `name`, `url`, `logoURL`), `isTopVoice`, `premium`, `influencer`, `location` (object: `countryCode`, `countryName`, `city`, `region`, `fullLocation`, `geoCountryUrn`, `geoRegionUrn`), `backgroundImageURL`, `profilePictureURL`, `supportedLocales` (array: `country`, `language`) - Python: `client.get_profile_overview(username)` - Node.js: `api.getProfileOverview(username)` - Go: `client.GetProfileOverview(username)` #### GET /api/v1/profile/details Get detailed profile data including about section, positions, education, and languages. - Parameters: `urn` (required, string) - Response `data` fields: `about`, `featuredPosts` (array: `postLink`, `postText`), `positions` (array: `jobTitle`, `company`, `location`, `duration`, `companyLink`, `companyId`, `jobDescription`), `education` (array: `duration`, `durationParsed`, `university`, `universityLink`, `degree`, `description`, `subDescription`), `languages` (object: `languages` array with `Language`, `Level`; `deepLink`) - Python: `client.get_profile_details(urn)` - Node.js: `api.getProfileDetails(urn)` - Go: `client.GetProfileDetails(urn)` #### GET /api/v1/profile/full Get complete profile data in a single request (combines overview + details + experience + education + skills). - Parameters: `username` (optional), `urn` (optional) — provide at least one - Python: `client.get_full_profile(username=None, urn=None)` - Node.js: `api.getFullProfile({ username?, urn? })` - Go: `client.GetFullProfile(username, urn)` #### GET /api/v1/profile/contact-info Get publicly available contact details. - Parameters: `username` (required, string) - Response `data` fields: `emailAddress` (nullable), `phoneNumber` (nullable), `websites` (array: `url`, `category`) - Python: `client.get_contact_info(username)` - Node.js: `api.getContactInfo(username)` - Go: `client.GetContactInfo(username)` #### GET /api/v1/profile/full-experience Get complete work history. - Parameters: `urn` (required, string) - Response `data.experience` array fields: `companyName`, `companyId`, `companyLink`, `companyLogo`, `location`, `title`, `subTitle`, `description`, `duration`, `durationParsed` (object: `start`, `end` with `year`/`month`/`day`, `present`, `period`), `positions` (array for multi-position roles), `isMultiPositions`, `totalDuration` - Python: `client.get_full_experience(urn)` - Node.js: `api.getFullExperience(urn)` - Go: `client.GetFullExperience(urn)` #### GET /api/v1/profile/education Get education history. - Parameters: `urn` (required, string) - Response `data.education` array fields: `duration`, `durationParsed` (object: `start`, `end` with `year`/`month`/`day`), `university`, `universityLink`, `degree`, `description`, `subDescription` - Python: `client.get_education(urn)` - Node.js: `api.getEducation(urn)` - Go: `client.GetEducation(urn)` #### GET /api/v1/profile/skills Get skills and endorsements. - Parameters: `urn` (required, string) - Response `data.skills` array fields: `skillName`, `endorsementsLink`, `textActionTarget`, `isPassedLinkedInSkillAssessment`, `endorsementsCount` - Python: `client.get_skills(urn)` - Node.js: `api.getSkills(urn)` - Go: `client.GetSkills(urn)` #### GET /api/v1/profile/certifications Get professional certifications. - Parameters: `urn` (required, string) - Response `data.certifications` array fields: `issuedBy`, `certificationLink`, `certificationName`, `issuedDate`, `issuerId`, `issuerLink`, `issuedDateParsed` (object: `year`, `month`, `day`) - Python: `client.get_certifications(urn)` - Node.js: `api.getCertifications(urn)` - Go: `client.GetCertifications(urn)` #### GET /api/v1/profile/recommendations Get given and received recommendations. - Parameters: `urn` (required, string) - Response `data` fields: `Recived` (array: `Text`, `Caption`, `Recommendee` with `name`, `headline`, `urn`, `url`), `Given` (same structure), `Total`, `TotalGiven`, `TotalRecived` - Python: `client.get_recommendations(urn)` - Node.js: `api.getRecommendations(urn)` - Go: `client.GetRecommendations(urn)` #### GET /api/v1/profile/social-matrix Get follower and connection counts. - Parameters: `username` (required, string) - Response `data` fields: `connectionsCount`, `followersCount` - Python: `client.get_social_matrix(username)` - Node.js: `api.getSocialMatrix(username)` - Go: `client.GetSocialMatrix(username)` #### GET /api/v1/profile/similar Get similar profiles. - Parameters: `urn` (required, string) - Response `data` array fields: `id`, `urn`, `publicIdentifier`, `firstName`, `lastName`, `headline`, `creator`, `profilePictureURL` - Python: `client.get_similar_profiles(urn)` - Node.js: `api.getSimilarProfiles(urn)` - Go: `client.GetSimilarProfiles(urn)` #### GET /api/v1/profile/about Get profile about/summary section. - Parameters: `urn` (required, string) #### GET /api/v1/profile/services Get services offered by a profile. - Parameters: `urn` (required, string) - Response `data.services` fields: `servicesProvided` (array of strings), `servicePageURL`, `serviceId`, `requestProposalURL` #### GET /api/v1/profile/username-to-urn Convert a public username to an internal URN identifier. - Parameters: `username` (required, string) #### GET /api/v1/profile/reactions Get reactions on a profile's content. - Parameters: `urn` (required, string) #### GET /api/v1/profile/interests Get profile interests and followed entities. - Parameters: `urn` (required, string) ### Company Endpoints #### GET /api/v1/companies/company/info Get detailed company information. - Parameters: `id` (optional, integer — company ID), `name` (optional, string — company name) - Response `data` fields: `id`, `name`, `universalName`, `linkedinUrl`, `description`, `type`, `images` (object: `logo`, `cover`), `isClaimable`, `backgroundCoverImages` (array: `url`, `width`, `height`), `logos` (array: `url`, `width`, `height`), `staffCount`, `headquarter` (object: `countryCode`, `geographicArea`, `country`, `city`, `postalCode`, `headquarter`, `line1`), `locations` (array of address objects), `industriesV2` (array), `industriesLegacy` (array), `specialities` (array), `website`, `founded` (object: `year`, `month`, `day`), `callToAction` (object: `type`, `displayText`, `visible`, `url`), `followerCount`, `staffCountRange`, `crunchbaseUrl`, `topOrganizationListing` (object: `rank`, `listName`, `articleUrl`, `text`), `fundingData` (object: `updatedAt`, `numFundingRounds`, `lastFundingRound`) - Python: `client.get_company_info(company_id=None, name=None)` - Node.js: `api.getCompanyInfo({ companyId?, name? })` - Go: `client.GetCompanyInfo(companyID, name)` #### GET /api/v1/companies/company/info-v2 Get extended company information (v2). - Parameters: `id` (required, integer) - Go: `client.GetCompanyDetailsV2(companyID)` #### GET /api/v1/companies/name-lookup Search companies by name. - Parameters: `query` (required, string) - Python: `client.company_name_lookup(query)` - Node.js: `api.companyNameLookup(query)` - Go: `client.CompanyNameLookup(query)` #### GET /api/v1/companies/company/universal-name-to-id Convert a company's universal name to its numeric ID. - Parameters: `name` (required, string) #### GET /api/v1/companies/jobs Get active job listings for specific companies. - Parameters: `companyIds` (required, string — comma-separated), `start` (optional, integer) - Python: `client.get_company_jobs(company_ids, start=0)` - Node.js: `api.getCompanyJobs(companyIds, start?)` - Go: `client.GetCompanyJobs(companyIDs, start)` #### GET /api/v1/companies/company/affiliated-pages Get affiliated/subsidiary pages for a company. - Parameters: `id` (required, integer) #### GET /api/v1/companies/company/insights Get company insights and analytics data. - Parameters: `id` (required, integer) #### GET /api/v1/companies/company/posts Get posts published by a company. - Parameters: `id` (required, integer), `start` (optional, integer) - Go: `client.GetCompanyPosts(companyID, start)` #### GET /api/v1/companies/company/similar Get companies similar to the specified one. - Parameters: `id` (required, integer) #### GET /api/v1/companies/company/employees-data Get employee statistics and distribution data for a company. - Parameters: `id` (required, integer) - Python: `client.get_company_employees_data(company_id)` - Node.js: `api.getCompanyEmployeesData(companyId)` - Go: `client.GetCompanyEmployeesData(companyID)` ### Job Endpoints #### GET /api/v1/jobs/search Search for job listings with comprehensive filters. - Parameters: `keyword` (required), `location` (optional), `geoId` (optional), `companyIds` (optional), `jobTypes` (optional — `full_time`, `part_time`, `contract`, `temporary`, `internship`, `volunteer`), `experience` (optional — `internship`, `entry_level`, `associate`, `mid_senior`, `director`), `regions` (optional), `timePosted` (optional — `any`, `24h`, `1week`, `1month`), `salary` (optional — `any`, `40k`, `60k`, `80k`, `100k`, `120k`), `workArrangement` (optional — `onsite`, `remote`, `hybrid`), `start` (optional, increment by 25) - Response `data.jobs` array fields: `jobId`, `title`, `screenReader`, `company` (object: `name`, `url`, `imageUrl`), `location` - Python: `client.search_jobs(keyword, location, job_types, experience, salary, work_arrangement, start)` - Node.js: `api.searchJobs({ keyword?, location?, geoId?, ... })` - Go: `client.SearchJobs(JobSearchParams)` #### GET /api/v1/search/jobs Advanced job search (v2) with additional filters. - Go: `client.SearchJobsV2(JobSearchV2Params)` - Node.js: `api.searchJobsV2({ ... })` #### GET /api/v1/jobs/job/details Get detailed information about a specific job posting. - Parameters: `id` (required, string — job ID) - Python: `client.get_job_details(job_id)` - Node.js: `api.getJobDetails(jobId)` - Go: `client.GetJobDetails(jobID)` #### GET /api/v1/jobs/job/details-v2 Get extended job details (v2). - Parameters: `id` (required, string) - Go: `client.GetJobDetailsV2(jobID)` #### GET /api/v1/jobs/job/similar Get similar job listings. - Parameters: `id` (required, string) #### GET /api/v1/jobs/job/people-also-viewed Get jobs that people also viewed. - Parameters: `id` (required, string) #### GET /api/v1/jobs/job/hiring-team Get the hiring team for a job posting. - Parameters: `id` (required, string) #### GET /api/v1/jobs/posted-by-profile Get jobs posted by a specific profile. - Parameters: `urn` (required, string) #### GET /api/v1/jobs/funcs/lookup Look up job function categories. ### Search Endpoints #### GET /api/v1/search/people Search for professionals with filters. - Parameters: `keyword` (optional), `start` (optional, integer), `currentCompany` (optional — company IDs comma-separated), `firstName` (optional), `lastName` (optional), `geoUrn` (optional — geo IDs), `industry` (optional — industry IDs), `profileLanguage` (optional), `pastCompany` (optional), `school` (optional — school IDs), `serviceCategory` (optional), `title` (optional), `count` (optional, 1-50) - Response `data` fields: `people` (array: `urn`, `profileID`, `url`, `firstName`, `lastName`, `fullName`, `headline`, `location`, `profilePictureURL`, `premium`), `total`, `start`, `count`, `hasMore` - Python: `client.search_people(keyword, current_company, title, school, location, start)` - Node.js: `api.searchPeople({ keyword?, currentCompany?, ... })` - Go: `client.SearchPeople(PeopleSearchParams)` #### GET /api/v1/search/companies Search for companies. - Parameters: `keyword` (required), `start` (optional), `geoUrn` (optional), `companySize` (optional), `industry` (optional) - Python: `client.search_companies(keyword, geo_urn, industry, start)` - Node.js: `api.searchCompanies({ keyword?, geoUrn?, ... })` - Go: `client.SearchCompanies(CompanySearchParams)` #### GET /api/v1/search/posts Search for posts and content. - Parameters: `keyword` (required), `authorCompany` (optional), `contentType` (optional), `sortBy` (optional), `start` (optional) - Python: `client.search_posts(keyword, author_company, content_type, sort_by, start)` - Node.js: `api.searchPosts({ keyword?, authorCompany?, ... })` - Go: `client.SearchPosts(PostSearchParams)` #### GET /api/v1/search/services Search for service providers. - Parameters: `keyword` (required), `start` (optional) #### GET /api/v1/search/schools Search for educational institutions. - Parameters: `keyword` (required), `start` (optional) - Go: `client.SearchSchools(keyword, start)` ### Posts & Content Endpoints #### GET /api/v1/posts/featured Get featured posts for a profile. - Parameters: `urn` (required, string) - Go: `client.GetFeaturedPosts(urn)` #### GET /api/v1/posts/all Get all posts by a profile with pagination. - Parameters: `urn` (required), `cursor` (optional), `start` (optional) - Go: `client.GetAllPosts(urn, cursor, start)` #### GET /api/v1/posts/info Get detailed information about a specific post. - Parameters: `urn` (required, string — post URN) #### GET /api/v1/posts/comments Get comments on a post. - Parameters: `urn` (required), `start` (optional), `count` (optional), `cursor` (optional) - Go: `client.GetPostComments(urn, start, count, cursor)` #### GET /api/v1/posts/likes Get likes/reactions on a post. - Parameters: `urn` (required, string) ### Articles Endpoints #### GET /api/v1/articles/all Get all articles published by a profile. - Parameters: `urn` (required), `start` (optional) - Go: `client.GetAllArticles(urn, start)` #### GET /api/v1/articles/article/info Get detailed information about a specific article. - Parameters: `urn` (required, string) #### GET /api/v1/articles/article/reactions Get reactions on an article. - Parameters: `urn` (required, string) ### Comments Endpoints #### GET /api/v1/comments/all Get all comments by a profile. - Parameters: `urn` (required), `start` (optional) #### GET /api/v1/comments/likes Get likes on a comment. - Parameters: `urn` (required, string) ### Services Endpoints #### GET /api/v1/services/service/details Get detailed information about a service listing. - Parameters: `id` (required, string) #### GET /api/v1/services/service/similar Get similar service listings. - Parameters: `id` (required, string) ### Utility/Lookup Endpoints #### GET /api/v1/geos/name-lookup Look up geographic location IDs by name. - Parameters: `query` (required, string) #### GET /api/v1/g/title-skills-lookup Look up title and skills identifiers. - Parameters: `query` (required, string) #### GET /api/v1/g/services-lookup Look up service category identifiers. - Parameters: `query` (required, string) #### GET /api/v1/g/industry-lookup Look up industry identifiers. - Parameters: `query` (required, string) ## Pricing LinkdAPI uses a credit-based tier system. New users receive 100 free credits at sign-up. - Credits never expire - Tiers automatically upgrade based on account balance - Higher tiers get better rates (more credits per dollar) and higher rate limits - Pay with cryptocurrency on the website, or credit card via RapidAPI - Minimum purchase: $20 Pricing details: https://linkdapi.com/#pricing Top up credits: https://linkdapi.com/dash/topup ## Common Use Cases 1. **CRM Enrichment** — Enrich contact records with professional data, company info, and employment history 2. **Lead Generation** — Search and filter professionals by company, title, location, and industry 3. **Market Research** — Analyze company data, employee distributions, hiring trends, and industry insights 4. **Talent Analytics** — Track hiring activity, job postings, and workforce trends 5. **Sales Intelligence** — Identify decision-makers, map organizational structures, and track company growth 6. **Content Monitoring** — Track posts, articles, and engagement across professional networks 7. **Competitive Intelligence** — Compare companies, track employee movements, and monitor industry shifts ## Typical Workflow 1. Sign up at https://linkdapi.com/signup to get your API key and 100 free credits 2. Install the SDK for your language (`pip install linkdapi`, `npm install linkdapi`, or `go get github.com/linkdapi/linkdapi-go-sdk`) 3. Use profile/overview or search endpoints to find profiles — these return a `urn` identifier 4. Use the `urn` with detail endpoints (experience, education, skills, etc.) for deeper data 5. For companies, use name-lookup to find company IDs, then query company/info for details ## Support - Email: support@linkdapi.com - Help Center: https://linkdapi.com/help-center - Documentation: https://linkdapi.com/docs/intro