linkdapi 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,708 @@
1
+ /**
2
+ * LinkdAPI Node.js SDK
3
+ *
4
+ * A high-level client for interacting with the LinkdAPI service.
5
+ *
6
+ * This client provides:
7
+ * - Automatic retry mechanism for failed requests
8
+ * - Type-annotated methods for better IDE support
9
+ * - Connection pooling for improved performance
10
+ * - Comprehensive error handling
11
+ *
12
+ * Basic Usage:
13
+ * ```typescript
14
+ * const api = new LinkdAPI({ apiKey: "your_api_key" });
15
+ * const profile = await api.getProfileOverview("ryanroslansky");
16
+ * console.log(profile);
17
+ * ```
18
+ *
19
+ * @see https://linkdapi.com/?p=signup - Get your API key (100 free credits)
20
+ */
21
+ export interface ClientConfig {
22
+ /** Your LinkdAPI authentication key. Get one at https://linkdapi.com/?p=signup */
23
+ apiKey: string;
24
+ /** Base URL for the API (default: "https://linkdapi.com") */
25
+ baseUrl?: string;
26
+ /** Request timeout in milliseconds (default: 30000) */
27
+ timeout?: number;
28
+ /** Maximum retry attempts for failed requests (default: 3) */
29
+ maxRetries?: number;
30
+ /** Initial delay between retries in milliseconds (default: 1000). Delay increases with each retry. */
31
+ retryDelay?: number;
32
+ }
33
+ export declare class LinkdAPIError extends Error {
34
+ constructor(message: string);
35
+ }
36
+ export declare class HTTPError extends LinkdAPIError {
37
+ readonly statusCode: number;
38
+ readonly statusText: string;
39
+ readonly responseBody?: string;
40
+ constructor(statusCode: number, statusText: string, responseBody?: string);
41
+ }
42
+ export declare class NetworkError extends LinkdAPIError {
43
+ readonly cause?: Error;
44
+ constructor(message: string, cause?: Error);
45
+ }
46
+ export declare class TimeoutError extends LinkdAPIError {
47
+ constructor(message?: string);
48
+ }
49
+ export declare class LinkdAPI {
50
+ private readonly apiKey;
51
+ private readonly baseUrl;
52
+ private readonly timeout;
53
+ private readonly maxRetries;
54
+ private readonly retryDelay;
55
+ constructor(config: ClientConfig);
56
+ private getHeaders;
57
+ private sendRequest;
58
+ /**
59
+ * Get basic profile information by username.
60
+ *
61
+ * Documentation: https://linkdapi.com/docs?endpoint=/api/v1/profile/overview
62
+ *
63
+ * @param username - The LinkedIn username to look up
64
+ * @returns Profile overview data
65
+ */
66
+ getProfileOverview(username: string): Promise<Record<string, unknown>>;
67
+ /**
68
+ * Get profile details information by URN.
69
+ *
70
+ * Documentation: https://linkdapi.com/docs?endpoint=/api/v1/profile/details
71
+ *
72
+ * @param urn - The LinkedIn URN (Uniform Resource Name) for the profile
73
+ * @returns Detailed profile information
74
+ */
75
+ getProfileDetails(urn: string): Promise<Record<string, unknown>>;
76
+ /**
77
+ * Get contact details for a profile by username.
78
+ *
79
+ * Documentation: https://linkdapi.com/docs?endpoint=/api/v1/profile/contact-info
80
+ *
81
+ * @param username - The LinkedIn username to look up
82
+ * @returns Contact information including email, phone, and websites
83
+ */
84
+ getContactInfo(username: string): Promise<Record<string, unknown>>;
85
+ /**
86
+ * Get complete work experience by URN.
87
+ *
88
+ * Documentation: https://linkdapi.com/docs?endpoint=/api/v1/profile/full-experience
89
+ *
90
+ * @param urn - The LinkedIn URN for the profile
91
+ * @returns Complete work experience information
92
+ */
93
+ getFullExperience(urn: string): Promise<Record<string, unknown>>;
94
+ /**
95
+ * Get lists of professional certifications by URN.
96
+ *
97
+ * Documentation: https://linkdapi.com/docs?endpoint=/api/v1/profile/certifications
98
+ *
99
+ * @param urn - The LinkedIn URN for the profile
100
+ * @returns Certification information
101
+ */
102
+ getCertifications(urn: string): Promise<Record<string, unknown>>;
103
+ /**
104
+ * Get full education information by URN.
105
+ *
106
+ * Documentation: https://linkdapi.com/docs?endpoint=/api/v1/profile/education
107
+ *
108
+ * @param urn - The LinkedIn URN for the profile
109
+ * @returns Education history
110
+ */
111
+ getEducation(urn: string): Promise<Record<string, unknown>>;
112
+ /**
113
+ * Get profile skills by URN.
114
+ *
115
+ * Documentation: https://linkdapi.com/docs?endpoint=/api/v1/profile/skills
116
+ *
117
+ * @param urn - The LinkedIn URN for the profile
118
+ * @returns Skills information
119
+ */
120
+ getSkills(urn: string): Promise<Record<string, unknown>>;
121
+ /**
122
+ * Get social network metrics by username.
123
+ *
124
+ * Documentation: https://linkdapi.com/docs?endpoint=/api/v1/profile/social-matrix
125
+ *
126
+ * @param username - The LinkedIn username to look up
127
+ * @returns Social metrics including connections and followers count
128
+ */
129
+ getSocialMatrix(username: string): Promise<Record<string, unknown>>;
130
+ /**
131
+ * Get profile given and received recommendations by URN.
132
+ *
133
+ * Documentation: https://linkdapi.com/docs?endpoint=/api/v1/profile/recommendations
134
+ *
135
+ * @param urn - The LinkedIn URN for the profile
136
+ * @returns Recommendations data
137
+ */
138
+ getRecommendations(urn: string): Promise<Record<string, unknown>>;
139
+ /**
140
+ * Get similar profiles for a given profile using its URN.
141
+ *
142
+ * Documentation: https://linkdapi.com/docs?endpoint=/api/v1/profile/similar
143
+ *
144
+ * @param urn - The LinkedIn URN for the profile
145
+ * @returns List of similar profiles
146
+ */
147
+ getSimilarProfiles(urn: string): Promise<Record<string, unknown>>;
148
+ /**
149
+ * Get about this profile such as last update and verification info.
150
+ *
151
+ * Documentation: https://linkdapi.com/docs?endpoint=/api/v1/profile/about
152
+ *
153
+ * @param urn - The LinkedIn URN for the profile
154
+ * @returns Profile about information
155
+ */
156
+ getProfileAbout(urn: string): Promise<Record<string, unknown>>;
157
+ /**
158
+ * Get all reactions for given profile by URN.
159
+ *
160
+ * Documentation: https://linkdapi.com/docs?endpoint=/api/v1/profile/reactions
161
+ *
162
+ * @param urn - The LinkedIn URN for the profile
163
+ * @param cursor - Pagination cursor (optional)
164
+ * @returns Reactions data with pagination information
165
+ */
166
+ getProfileReactions(urn: string, cursor?: string): Promise<Record<string, unknown>>;
167
+ /**
168
+ * Get profile interests by URN.
169
+ *
170
+ * Documentation: https://linkdapi.com/docs?endpoint=/api/v1/profile/interests
171
+ *
172
+ * @param urn - The LinkedIn URN for the profile
173
+ * @returns Profile interests information
174
+ */
175
+ getProfileInterests(urn: string): Promise<Record<string, unknown>>;
176
+ /**
177
+ * Get full profile data in 1 request (everything included).
178
+ *
179
+ * Documentation: https://linkdapi.com/docs?endpoint=/api/v1/profile/full
180
+ *
181
+ * @param options - Either username or urn must be provided
182
+ * @param options.username - The LinkedIn username
183
+ * @param options.urn - The LinkedIn URN for the profile
184
+ * @returns Complete profile data including all information
185
+ */
186
+ getFullProfile(options: {
187
+ username?: string;
188
+ urn?: string;
189
+ }): Promise<Record<string, unknown>>;
190
+ /**
191
+ * Get profile services by URN.
192
+ *
193
+ * Documentation: https://linkdapi.com/docs?endpoint=/api/v1/profile/services
194
+ *
195
+ * @param urn - The LinkedIn URN for the profile
196
+ * @returns Profile services information
197
+ */
198
+ getProfileServices(urn: string): Promise<Record<string, unknown>>;
199
+ /**
200
+ * Get profile URN by username.
201
+ *
202
+ * Documentation: https://linkdapi.com/docs?endpoint=/api/v1/profile/username-to-urn
203
+ *
204
+ * @param username - The LinkedIn username for the profile
205
+ * @returns Profile URN
206
+ */
207
+ getProfileUrn(username: string): Promise<Record<string, unknown>>;
208
+ /**
209
+ * Get all featured posts for a given profile using its URN.
210
+ *
211
+ * Documentation: https://linkdapi.com/docs?endpoint=/api/v1/posts/featured
212
+ *
213
+ * @param urn - The LinkedIn URN for the profile
214
+ * @returns List of featured posts
215
+ */
216
+ getFeaturedPosts(urn: string): Promise<Record<string, unknown>>;
217
+ /**
218
+ * Retrieve all posts for a given profile URN.
219
+ *
220
+ * Documentation: https://linkdapi.com/docs?endpoint=/api/v1/posts/all
221
+ *
222
+ * @param urn - The LinkedIn URN of the profile
223
+ * @param cursor - Pagination cursor (default is empty)
224
+ * @param start - Start index for pagination (default is 0)
225
+ * @returns List of posts with pagination info
226
+ */
227
+ getAllPosts(urn: string, cursor?: string, start?: number): Promise<Record<string, unknown>>;
228
+ /**
229
+ * Retrieve information about a specific post using its URN.
230
+ *
231
+ * Documentation: https://linkdapi.com/docs?endpoint=/api/v1/posts/info
232
+ *
233
+ * @param urn - The URN of the LinkedIn post
234
+ * @returns Detailed post information
235
+ */
236
+ getPostInfo(urn: string): Promise<Record<string, unknown>>;
237
+ /**
238
+ * Get comments for a specific LinkedIn post.
239
+ *
240
+ * Documentation: https://linkdapi.com/docs?endpoint=/api/v1/posts/comments
241
+ *
242
+ * @param urn - The URN of the post
243
+ * @param start - Starting index for pagination (default is 0)
244
+ * @param count - Number of comments to fetch per request (default is 10)
245
+ * @param cursor - Cursor for pagination (default is empty)
246
+ * @returns A list of comments and pagination metadata
247
+ */
248
+ getPostComments(urn: string, start?: number, count?: number, cursor?: string): Promise<Record<string, unknown>>;
249
+ /**
250
+ * Retrieve all users who liked or reacted to a given post.
251
+ *
252
+ * Documentation: https://linkdapi.com/docs?endpoint=/api/v1/posts/likes
253
+ *
254
+ * @param urn - The URN of the LinkedIn post
255
+ * @param start - Pagination start index (default is 0)
256
+ * @returns List of users who liked/reacted to the post
257
+ */
258
+ getPostLikes(urn: string, start?: number): Promise<Record<string, unknown>>;
259
+ /**
260
+ * Retrieve all comments made by a profile using their URN.
261
+ *
262
+ * Documentation: https://linkdapi.com/docs?endpoint=/api/v1/comments/all
263
+ *
264
+ * @param urn - The LinkedIn profile URN
265
+ * @param cursor - Pagination cursor (default is empty)
266
+ * @returns List of comments made by the user
267
+ */
268
+ getAllComments(urn: string, cursor?: string): Promise<Record<string, unknown>>;
269
+ /**
270
+ * Get all users who reacted to one or more comment URNs.
271
+ *
272
+ * Documentation: https://linkdapi.com/docs?endpoint=/api/v1/comments/likes
273
+ *
274
+ * @param urns - Comma-separated URNs of comments
275
+ * @param start - Pagination start index (default is 0)
276
+ * @returns List of users who liked or reacted to the comments
277
+ */
278
+ getCommentLikes(urns: string, start?: number): Promise<Record<string, unknown>>;
279
+ /**
280
+ * Get API service status.
281
+ *
282
+ * @returns Service status information
283
+ */
284
+ getServiceStatus(): Promise<Record<string, unknown>>;
285
+ /**
286
+ * Search companies by name.
287
+ *
288
+ * Documentation: https://linkdapi.com/docs?endpoint=/api/v1/companies/name-lookup
289
+ *
290
+ * @param query - The search query (can be 1 character or multiple)
291
+ * @returns List of matching companies
292
+ */
293
+ companyNameLookup(query: string): Promise<Record<string, unknown>>;
294
+ /**
295
+ * Get company details either by ID or name.
296
+ *
297
+ * Documentation: https://linkdapi.com/docs?endpoint=/api/v1/companies/company/info
298
+ *
299
+ * @param options - Either companyId or name must be provided
300
+ * @param options.companyId - Company ID
301
+ * @param options.name - Company name
302
+ * @returns Company details information
303
+ */
304
+ getCompanyInfo(options: {
305
+ companyId?: string;
306
+ name?: string;
307
+ }): Promise<Record<string, unknown>>;
308
+ /**
309
+ * Get similar companies by ID.
310
+ *
311
+ * Documentation: https://linkdapi.com/docs?endpoint=/api/v1/companies/company/similar
312
+ *
313
+ * @param companyId - Company ID
314
+ * @returns List of similar companies
315
+ */
316
+ getSimilarCompanies(companyId: string): Promise<Record<string, unknown>>;
317
+ /**
318
+ * Get company employees data by ID.
319
+ *
320
+ * Documentation: https://linkdapi.com/docs?endpoint=/api/v1/companies/company/employees-data
321
+ *
322
+ * @param companyId - Company ID
323
+ * @returns Company employees data
324
+ */
325
+ getCompanyEmployeesData(companyId: string): Promise<Record<string, unknown>>;
326
+ /**
327
+ * Get available job listings for given companies by ID.
328
+ *
329
+ * Documentation: https://linkdapi.com/docs?endpoint=/api/v1/companies/jobs
330
+ *
331
+ * @param companyIds - Company ID(s) - can be a single ID or array of IDs
332
+ * @param start - Pagination start index (default is 0)
333
+ * @returns List of job listings for the specified companies
334
+ */
335
+ getCompanyJobs(companyIds: string | string[], start?: number): Promise<Record<string, unknown>>;
336
+ /**
337
+ * Get affiliated pages/subsidiaries of a company by ID.
338
+ *
339
+ * Documentation: https://linkdapi.com/docs?endpoint=/api/v1/companies/company/affiliated-pages
340
+ *
341
+ * @param companyId - Company ID
342
+ * @returns List of affiliated pages and subsidiaries
343
+ */
344
+ getCompanyAffiliatedPages(companyId: string): Promise<Record<string, unknown>>;
345
+ /**
346
+ * Get Posts of a company by ID.
347
+ *
348
+ * Documentation: https://linkdapi.com/docs?endpoint=/api/v1/companies/company/posts
349
+ *
350
+ * @param companyId - Company ID
351
+ * @param start - Pagination start index (default is 0)
352
+ * @returns List of posts
353
+ */
354
+ getCompanyPosts(companyId: string, start?: number): Promise<Record<string, unknown>>;
355
+ /**
356
+ * Get ID of a company by universal_name (username).
357
+ *
358
+ * Documentation: https://linkdapi.com/docs?endpoint=/api/v1/companies/company/universal-name-to-id
359
+ *
360
+ * @param universalName - Company universalName (username)
361
+ * @returns Company ID
362
+ */
363
+ getCompanyId(universalName: string): Promise<Record<string, unknown>>;
364
+ /**
365
+ * Get company details V2 with extended information by company ID.
366
+ * This endpoint returns more information about the company including
367
+ * peopleAlsoFollow, affiliatedByJobs, etc.
368
+ *
369
+ * Documentation: https://linkdapi.com/docs?endpoint=/api/v1/companies/company/info-v2
370
+ *
371
+ * @param companyId - Company ID
372
+ * @returns Extended company details information
373
+ */
374
+ getCompanyDetailsV2(companyId: string): Promise<Record<string, unknown>>;
375
+ /**
376
+ * Search for jobs with various filters.
377
+ *
378
+ * Documentation: https://linkdapi.com/docs?endpoint=/api/v1/jobs/search
379
+ *
380
+ * @param options - Search options
381
+ * @param options.keyword - Job title, skills, or keywords
382
+ * @param options.location - City, state, or region
383
+ * @param options.geoId - LinkedIn's internal geographic identifier
384
+ * @param options.companyIds - Specific company LinkedIn IDs (string or array)
385
+ * @param options.jobTypes - Employment types: full_time, part_time, contract, temporary, internship, volunteer
386
+ * @param options.experience - Experience levels: internship, entry_level, associate, mid_senior, director
387
+ * @param options.regions - Specific region codes (string or array)
388
+ * @param options.timePosted - How recently posted: any, 24h, 1week, 1month
389
+ * @param options.salary - Minimum salary: any, 40k, 60k, 80k, 100k, 120k
390
+ * @param options.workArrangement - Work arrangement: onsite, remote, hybrid
391
+ * @param options.start - Pagination start index (default is 0)
392
+ * @returns List of job search results
393
+ */
394
+ searchJobs(options?: {
395
+ keyword?: string;
396
+ location?: string;
397
+ geoId?: string;
398
+ companyIds?: string | string[];
399
+ jobTypes?: string | string[];
400
+ experience?: string | string[];
401
+ regions?: string | string[];
402
+ timePosted?: string;
403
+ salary?: string;
404
+ workArrangement?: string | string[];
405
+ start?: number;
406
+ }): Promise<Record<string, unknown>>;
407
+ /**
408
+ * Get job details by job ID.
409
+ *
410
+ * Documentation: https://linkdapi.com/docs?endpoint=/api/v1/jobs/job/details
411
+ *
412
+ * @param jobId - Job ID (must be open and actively hiring)
413
+ * @returns Detailed job information
414
+ */
415
+ getJobDetails(jobId: string): Promise<Record<string, unknown>>;
416
+ /**
417
+ * Get similar jobs by job ID.
418
+ *
419
+ * Documentation: https://linkdapi.com/docs?endpoint=/api/v1/jobs/job/similar
420
+ *
421
+ * @param jobId - Job ID
422
+ * @returns List of similar jobs
423
+ */
424
+ getSimilarJobs(jobId: string): Promise<Record<string, unknown>>;
425
+ /**
426
+ * Get related jobs that people also viewed.
427
+ *
428
+ * Documentation: https://linkdapi.com/docs?endpoint=/api/v1/jobs/job/people-also-viewed
429
+ *
430
+ * @param jobId - Job ID
431
+ * @returns List of related jobs
432
+ */
433
+ getPeopleAlsoViewedJobs(jobId: string): Promise<Record<string, unknown>>;
434
+ /**
435
+ * Get job details V2 by job ID. This endpoint supports all job statuses
436
+ * (open, closed, expired, etc.) and provides detailed information about the job.
437
+ *
438
+ * Documentation: https://linkdapi.com/docs?endpoint=/api/v1/jobs/job/details-v2
439
+ *
440
+ * @param jobId - Job ID (supports all job statuses)
441
+ * @returns Detailed job information
442
+ */
443
+ getJobDetailsV2(jobId: string): Promise<Record<string, unknown>>;
444
+ /**
445
+ * Get hiring team members for a specific job.
446
+ *
447
+ * Documentation: https://linkdapi.com/docs?endpoint=/api/v1/jobs/job/hiring-team
448
+ *
449
+ * @param jobId - Job ID
450
+ * @param start - Pagination start index (default is 0)
451
+ * @returns List of hiring team members
452
+ */
453
+ getHiringTeam(jobId: string, start?: number): Promise<Record<string, unknown>>;
454
+ /**
455
+ * Get jobs posted by a specific profile.
456
+ *
457
+ * Documentation: https://linkdapi.com/docs?endpoint=/api/v1/jobs/posted-by-profile
458
+ *
459
+ * @param profileUrn - Profile URN
460
+ * @param start - Pagination start index (default is 0)
461
+ * @param count - Number of jobs to retrieve (default is 25)
462
+ * @returns List of jobs posted by the profile
463
+ */
464
+ getProfilePostedJobs(profileUrn: string, start?: number, count?: number): Promise<Record<string, unknown>>;
465
+ /**
466
+ * Search for jobs V2 with comprehensive filters (all filters available).
467
+ *
468
+ * Documentation: https://linkdapi.com/docs?endpoint=/api/v1/search/jobs
469
+ *
470
+ * @param options - Search options
471
+ * @param options.keyword - Search keyword
472
+ * @param options.start - Pagination offset (default: 0, increment by 25)
473
+ * @param options.sortBy - Sort by "relevance" (default) or "date_posted"
474
+ * @param options.datePosted - Filter by "24h", "1week", or "1month"
475
+ * @param options.experience - Experience levels: internship, entry_level, associate, mid_senior, director, executive
476
+ * @param options.jobTypes - Employment types: full_time, part_time, contract, temporary, internship, volunteer, other
477
+ * @param options.workplaceTypes - Work arrangement: onsite, remote, hybrid
478
+ * @param options.salary - Minimum annual salary: 20k, 30k, 40k, 50k, 60k, 70k, 80k, 90k, 100k
479
+ * @param options.companies - Company IDs (string or array)
480
+ * @param options.industries - Industry IDs (string or array)
481
+ * @param options.locations - LinkedIn's internal geographic identifiers (string or array)
482
+ * @param options.functions - Job function codes (string or array, e.g., "it,sales,eng")
483
+ * @param options.titles - Job title IDs (string or array)
484
+ * @param options.benefits - Benefits: medical_ins, dental_ins, vision_ins, 401k, pension, paid_maternity, paid_paternity, commuter, student_loan, tuition, disability_ins
485
+ * @param options.commitments - Company values: dei, environmental, work_life, social_impact, career_growth
486
+ * @param options.easyApply - Show only LinkedIn Easy Apply jobs
487
+ * @param options.verifiedJob - Show only verified job postings
488
+ * @param options.under10Applicants - Show jobs with fewer than 10 applicants
489
+ * @param options.fairChance - Show jobs from fair chance employers
490
+ * @returns List of job search results
491
+ */
492
+ searchJobsV2(options?: {
493
+ keyword?: string;
494
+ start?: number;
495
+ sortBy?: string;
496
+ datePosted?: string;
497
+ experience?: string | string[];
498
+ jobTypes?: string | string[];
499
+ workplaceTypes?: string | string[];
500
+ salary?: string;
501
+ companies?: string | string[];
502
+ industries?: string | string[];
503
+ locations?: string | string[];
504
+ functions?: string | string[];
505
+ titles?: string | string[];
506
+ benefits?: string | string[];
507
+ commitments?: string | string[];
508
+ easyApply?: boolean;
509
+ verifiedJob?: boolean;
510
+ under10Applicants?: boolean;
511
+ fairChance?: boolean;
512
+ }): Promise<Record<string, unknown>>;
513
+ /**
514
+ * Search locations and get geo IDs.
515
+ *
516
+ * Documentation: https://linkdapi.com/docs?endpoint=/api/v1/geos/name-lookup
517
+ *
518
+ * @param query - The search query (can be 1 character or multiple)
519
+ * @returns List of matching locations with geo IDs
520
+ */
521
+ geoNameLookup(query: string): Promise<Record<string, unknown>>;
522
+ /**
523
+ * Search for people with various filters.
524
+ *
525
+ * Documentation: https://linkdapi.com/docs?endpoint=/api/v1/search/people
526
+ *
527
+ * @param options - Search options
528
+ * @param options.keyword - Search keyword (e.g., "software engineer")
529
+ * @param options.start - Pagination start index (default is 0)
530
+ * @param options.currentCompany - Current company IDs (string or array)
531
+ * @param options.firstName - First name filter
532
+ * @param options.geoUrn - Geographic URNs (string or array)
533
+ * @param options.industry - Industry IDs (string or array)
534
+ * @param options.lastName - Last name filter
535
+ * @param options.profileLanguage - Profile language (e.g., "en" for English)
536
+ * @param options.pastCompany - Past company IDs (string or array)
537
+ * @param options.school - School IDs (string or array)
538
+ * @param options.serviceCategory - Service category ID
539
+ * @param options.title - Job title (e.g., "founder")
540
+ * @returns List of people matching the search criteria
541
+ */
542
+ searchPeople(options?: {
543
+ keyword?: string;
544
+ start?: number;
545
+ currentCompany?: string | string[];
546
+ firstName?: string;
547
+ geoUrn?: string | string[];
548
+ industry?: string | string[];
549
+ lastName?: string;
550
+ profileLanguage?: string;
551
+ pastCompany?: string | string[];
552
+ school?: string | string[];
553
+ serviceCategory?: string;
554
+ title?: string;
555
+ }): Promise<Record<string, unknown>>;
556
+ /**
557
+ * Search for companies with various filters.
558
+ *
559
+ * Documentation: https://linkdapi.com/docs?endpoint=/api/v1/search/companies
560
+ *
561
+ * @param options - Search options
562
+ * @param options.keyword - Search keyword (e.g., "software")
563
+ * @param options.start - Pagination start index (default is 0)
564
+ * @param options.geoUrn - Geographic URNs (string or array)
565
+ * @param options.companySize - Company sizes: "1-10", "11-50", "51-200", "201-500", "501-1000", "1001-5000", "5001-10,000", "10,001+"
566
+ * @param options.hasJobs - Filter companies with job listings
567
+ * @param options.industry - Industry IDs (string or array)
568
+ * @returns List of companies matching the search criteria
569
+ */
570
+ searchCompanies(options?: {
571
+ keyword?: string;
572
+ start?: number;
573
+ geoUrn?: string | string[];
574
+ companySize?: string | string[];
575
+ hasJobs?: boolean;
576
+ industry?: string | string[];
577
+ }): Promise<Record<string, unknown>>;
578
+ /**
579
+ * Search for services offered by LinkedIn members.
580
+ *
581
+ * Documentation: https://linkdapi.com/docs?endpoint=/api/v1/search/services
582
+ *
583
+ * @param options - Search options
584
+ * @param options.keyword - Search keyword (e.g., "software")
585
+ * @param options.start - Pagination start index (default is 0)
586
+ * @param options.geoUrn - Geographic URNs (string or array)
587
+ * @param options.profileLanguage - Profile language (e.g., "en,ch")
588
+ * @param options.serviceCategory - Service category IDs (string or array)
589
+ * @returns List of services matching the search criteria
590
+ */
591
+ searchServices(options?: {
592
+ keyword?: string;
593
+ start?: number;
594
+ geoUrn?: string | string[];
595
+ profileLanguage?: string;
596
+ serviceCategory?: string | string[];
597
+ }): Promise<Record<string, unknown>>;
598
+ /**
599
+ * Search for educational institutions/schools.
600
+ *
601
+ * Documentation: https://linkdapi.com/docs?endpoint=/api/v1/search/schools
602
+ *
603
+ * @param keyword - Search keyword (e.g., "stanford")
604
+ * @param start - Pagination start index (default is 0)
605
+ * @returns List of schools matching the search criteria
606
+ */
607
+ searchSchools(keyword?: string, start?: number): Promise<Record<string, unknown>>;
608
+ /**
609
+ * Search for LinkedIn posts with various filters.
610
+ *
611
+ * Documentation: https://linkdapi.com/docs?endpoint=/api/v1/search/posts
612
+ *
613
+ * @param options - Search options
614
+ * @param options.keyword - Search keyword (e.g., "google")
615
+ * @param options.start - Pagination start index (default is 10)
616
+ * @param options.authorCompany - Company ID of the post author
617
+ * @param options.authorIndustry - Industry ID of the post author
618
+ * @param options.authorJobTitle - Job title of the post author (e.g., "founder")
619
+ * @param options.contentType - Content type: videos, photos, jobs, liveVideos, documents, collaborativeArticles
620
+ * @param options.datePosted - Date filter: past-24h, past-week, past-month, past-year
621
+ * @param options.fromMember - Profile URN of the post author
622
+ * @param options.fromOrganization - Company IDs (string or array)
623
+ * @param options.mentionsMember - Profile URN mentioned in posts
624
+ * @param options.mentionsOrganization - Company IDs mentioned (string or array)
625
+ * @param options.sortBy - Sort order: relevance, date_posted (default is "relevance")
626
+ * @returns List of posts matching the search criteria
627
+ */
628
+ searchPosts(options?: {
629
+ keyword?: string;
630
+ start?: number;
631
+ authorCompany?: string;
632
+ authorIndustry?: string;
633
+ authorJobTitle?: string;
634
+ contentType?: string;
635
+ datePosted?: string;
636
+ fromMember?: string;
637
+ fromOrganization?: string | string[];
638
+ mentionsMember?: string;
639
+ mentionsOrganization?: string | string[];
640
+ sortBy?: string;
641
+ }): Promise<Record<string, unknown>>;
642
+ /**
643
+ * Search for keywords and get relevant skills and titles with their IDs.
644
+ *
645
+ * Documentation: https://linkdapi.com/docs?endpoint=/api/v1/g/title-skills-lookup
646
+ *
647
+ * @param query - Search query
648
+ * @returns List of relevant skills and titles with IDs
649
+ */
650
+ titleSkillsLookup(query: string): Promise<Record<string, unknown>>;
651
+ /**
652
+ * Look up service categories and return matching services.
653
+ *
654
+ * Documentation: https://linkdapi.com/docs?endpoint=/api/v1/g/services-lookup
655
+ *
656
+ * @param query - Search query for services (e.g., "software")
657
+ * @returns List of matching service categories with IDs
658
+ */
659
+ servicesLookup(query: string): Promise<Record<string, unknown>>;
660
+ /**
661
+ * Get service by VanityName.
662
+ *
663
+ * Documentation: https://linkdapi.com/docs?endpoint=/api/v1/services/service/details
664
+ *
665
+ * @param vanityname - The service vanity name identifier
666
+ * @returns Service details information
667
+ */
668
+ getServiceDetails(vanityname: string): Promise<Record<string, unknown>>;
669
+ /**
670
+ * Get similar services by VanityName.
671
+ *
672
+ * Documentation: https://linkdapi.com/docs?endpoint=/api/v1/services/service/similar
673
+ *
674
+ * @param vanityname - The service vanity name identifier
675
+ * @returns List of similar services
676
+ */
677
+ getSimilarServices(vanityname: string): Promise<Record<string, unknown>>;
678
+ /**
679
+ * Get all articles published by a specific LinkedIn profile.
680
+ *
681
+ * Documentation: https://linkdapi.com/docs?endpoint=/api/v1/articles/all
682
+ *
683
+ * @param urn - The LinkedIn profile URN
684
+ * @param start - Pagination start index (default is 0)
685
+ * @returns List of articles published by the profile
686
+ */
687
+ getAllArticles(urn: string, start?: number): Promise<Record<string, unknown>>;
688
+ /**
689
+ * Get detailed information about a specific LinkedIn article.
690
+ *
691
+ * Documentation: https://linkdapi.com/docs?endpoint=/api/v1/articles/article/info
692
+ *
693
+ * @param url - Full LinkedIn article URL (e.g., "https://www.linkedin.com/pulse/...")
694
+ * @returns Detailed article information
695
+ */
696
+ getArticleInfo(url: string): Promise<Record<string, unknown>>;
697
+ /**
698
+ * Get reactions (likes, comments, etc.) for a specific LinkedIn article.
699
+ *
700
+ * Documentation: https://linkdapi.com/docs?endpoint=/api/v1/articles/article/reactions
701
+ *
702
+ * @param urn - Article/thread URN (obtained from getArticleInfo)
703
+ * @param start - Pagination start index (default is 0)
704
+ * @returns Reactions data for the article
705
+ */
706
+ getArticleReactions(urn: string, start?: number): Promise<Record<string, unknown>>;
707
+ }
708
+ //# sourceMappingURL=client.d.ts.map