lumnisai 0.2.15 → 0.2.17

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.
package/dist/index.cjs CHANGED
@@ -224,6 +224,22 @@ const ACTION_DELAYS = {
224
224
  betweenProfileViews: 5,
225
225
  afterError: 60
226
226
  };
227
+ const DAILY_INMAIL_LIMITS = {
228
+ basic: 0,
229
+ // No InMail capability
230
+ premium: 5,
231
+ // 5 credits/month - can send all in one day if desired
232
+ premium_career: 5,
233
+ // Same as premium
234
+ premium_business: 15,
235
+ // 15 credits/month
236
+ sales_navigator: 50,
237
+ // 50 credits/month
238
+ recruiter_lite: 100,
239
+ // 30 InMails + up to 100 Open Profile/month
240
+ recruiter_corporate: 1e3
241
+ // LinkedIn official: 1,000/day per seat
242
+ };
227
243
  function getLimits(subscriptionType) {
228
244
  const type = subscriptionType || "basic";
229
245
  return LINKEDIN_LIMITS[type] || LINKEDIN_LIMITS.basic;
@@ -268,6 +284,13 @@ function getBestSubscriptionForAction(subscriptionTypes, action) {
268
284
  }
269
285
  return subscriptionTypes[0];
270
286
  }
287
+ function getDailyInmailLimit(subscriptionType) {
288
+ const type = subscriptionType || "basic";
289
+ return DAILY_INMAIL_LIMITS[type] ?? DAILY_INMAIL_LIMITS.basic;
290
+ }
291
+ function isRecruiterSubscription(subscriptionType) {
292
+ return subscriptionType === "recruiter_lite" || subscriptionType === "recruiter_corporate";
293
+ }
271
294
 
272
295
  const CONTENT_LIMITS = [
273
296
  { channel: "linkedin", action: "connection_request", maxCharacters: 300 },
@@ -2591,6 +2614,47 @@ class SequencesResource {
2591
2614
  `/sequences/executions/${encodeURIComponent(executionId)}`
2592
2615
  );
2593
2616
  }
2617
+ /**
2618
+ * Fetch execution histories for multiple executions in a single request.
2619
+ *
2620
+ * Returns full execution details including step history and events for up to 100
2621
+ * execution IDs. Missing or unauthorized executions are returned as null with
2622
+ * an error message.
2623
+ *
2624
+ * @param request - The batch request with execution IDs and include options
2625
+ */
2626
+ async batchGetExecutions(request) {
2627
+ return this.http.post(
2628
+ "/sequences/executions/batch",
2629
+ request
2630
+ );
2631
+ }
2632
+ /**
2633
+ * Derive engagement status for multiple executions in a single request.
2634
+ *
2635
+ * This is a lightweight endpoint that computes engagement status server-side
2636
+ * without returning full execution histories. Ideal for filtering and UI display.
2637
+ *
2638
+ * Engagement statuses:
2639
+ * - connection_pending: Connection request sent, awaiting acceptance
2640
+ * - connection_accepted: They accepted the connection
2641
+ * - message_sent: Follow-up message delivered
2642
+ * - awaiting_reply: Waiting for their response
2643
+ * - replied: They replied (no sentiment)
2644
+ * - replied_positive/negative/neutral: Reply with sentiment
2645
+ * - no_response: No response after 7+ days
2646
+ * - sequence_active: Still running
2647
+ * - sequence_failed: Error occurred
2648
+ * - unknown: Unable to determine status
2649
+ *
2650
+ * @param request - The request with up to 500 execution IDs
2651
+ */
2652
+ async getEngagementStatus(request) {
2653
+ return this.http.post(
2654
+ "/sequences/executions/engagement-status",
2655
+ request
2656
+ );
2657
+ }
2594
2658
  // ==================== Lifecycle ====================
2595
2659
  /**
2596
2660
  * Pause a single execution.
@@ -3737,6 +3801,7 @@ exports.CONTENT_LIMITS = CONTENT_LIMITS;
3737
3801
  exports.CONTENT_LIMITS_MAP = CONTENT_LIMITS_MAP;
3738
3802
  exports.ChannelType = ChannelType;
3739
3803
  exports.ConversationStatus = ConversationStatus;
3804
+ exports.DAILY_INMAIL_LIMITS = DAILY_INMAIL_LIMITS;
3740
3805
  exports.DraftStatus = DraftStatus;
3741
3806
  exports.InternalServerError = InternalServerError;
3742
3807
  exports.LINKEDIN_LIMITS = LINKEDIN_LIMITS;
@@ -3773,8 +3838,10 @@ exports.formatProgressEntry = formatProgressEntry;
3773
3838
  exports.getBestSubscriptionForAction = getBestSubscriptionForAction;
3774
3839
  exports.getConnectionRequestLimit = getConnectionRequestLimit;
3775
3840
  exports.getContentLimit = getContentLimit;
3841
+ exports.getDailyInmailLimit = getDailyInmailLimit;
3776
3842
  exports.getInmailAllowance = getInmailAllowance;
3777
3843
  exports.getLimits = getLimits;
3778
3844
  exports.getMessageLimit = getMessageLimit;
3779
3845
  exports.hasOpenProfileMessages = hasOpenProfileMessages;
3846
+ exports.isRecruiterSubscription = isRecruiterSubscription;
3780
3847
  exports.verifyWebhookSignature = verifyWebhookSignature;
package/dist/index.d.cts CHANGED
@@ -85,6 +85,21 @@ declare const ACTION_DELAYS: {
85
85
  readonly betweenProfileViews: 5;
86
86
  readonly afterError: 60;
87
87
  };
88
+ /**
89
+ * Daily InMail sending limits by subscription type.
90
+ *
91
+ * These are the maximum InMails you can SEND per day (rate limit), separate from
92
+ * the monthly credits you have available.
93
+ *
94
+ * Per LinkedIn official documentation (https://www.linkedin.com/help/recruiter/answer/a745199):
95
+ * - Recruiter Corporate/RPS: 1,000 InMails per day per seat
96
+ * - Recruiter Lite: Limited by monthly credits (30/month + 100 Open Profile/month)
97
+ * - Other tiers: No official daily limit, but limited by monthly credits
98
+ *
99
+ * For non-Recruiter accounts, we set daily limit = monthly credits to allow
100
+ * flexibility while still respecting credit availability.
101
+ */
102
+ declare const DAILY_INMAIL_LIMITS: Record<LinkedInLimitSubscriptionType, number>;
88
103
  /**
89
104
  * Get all limits for a subscription type
90
105
  */
@@ -121,6 +136,27 @@ declare function hasOpenProfileMessages(subscriptionType: LinkedInLimitSubscript
121
136
  * - Other actions: recruiter_corporate > sales_navigator > recruiter_lite > premium_business > premium_career > basic
122
137
  */
123
138
  declare function getBestSubscriptionForAction(subscriptionTypes: (LinkedInLimitSubscriptionType | string)[], action: 'inmail' | 'connection_requests' | 'messages'): LinkedInLimitSubscriptionType | string | null;
139
+ /**
140
+ * Get daily InMail sending limit for a subscription type.
141
+ *
142
+ * Per LinkedIn official documentation:
143
+ * - Recruiter Corporate: 1,000 InMails per day per seat
144
+ * - Recruiter Lite: ~100/day (30 regular + 100 Open Profile per month)
145
+ * - Other tiers: Limited by monthly credits
146
+ *
147
+ * Note: This is the daily SENDING rate limit, not the total credits available.
148
+ * Credits are still consumed per InMail sent.
149
+ */
150
+ declare function getDailyInmailLimit(subscriptionType: LinkedInLimitSubscriptionType | string | null | undefined): number;
151
+ /**
152
+ * Check if subscription type is a Recruiter subscription.
153
+ *
154
+ * Recruiter subscriptions have special privileges:
155
+ * - High daily InMail limits (up to 1,000/day for Corporate)
156
+ * - Access to Recruiter API features
157
+ * - Open Profile messaging (free InMails to open profiles)
158
+ */
159
+ declare function isRecruiterSubscription(subscriptionType: LinkedInLimitSubscriptionType | string | null | undefined): boolean;
124
160
 
125
161
  interface ContentLimit {
126
162
  channel: string;
@@ -1939,6 +1975,12 @@ interface LinkedInAccountInfoResponse {
1939
1975
  connectionRequestsSentToday?: number | null;
1940
1976
  gmailSentToday?: number | null;
1941
1977
  outlookSentToday?: number | null;
1978
+ inmailDailyLimit?: number | null;
1979
+ directMessageDailyLimit?: number | null;
1980
+ connectionRequestDailyLimit?: number | null;
1981
+ inmailRemainingToday?: number | null;
1982
+ directMessagesRemainingToday?: number | null;
1983
+ connectionRequestsRemainingToday?: number | null;
1942
1984
  unipileStatus?: string | null;
1943
1985
  }
1944
1986
  /**
@@ -3599,6 +3641,35 @@ interface BatchPollResponse {
3599
3641
  responses: BatchResponseItem[];
3600
3642
  polledAt: string;
3601
3643
  }
3644
+ interface BatchExecutionInclude {
3645
+ stepHistory?: boolean;
3646
+ events?: boolean;
3647
+ }
3648
+ interface BatchExecutionRequest {
3649
+ executionIds: string[];
3650
+ include?: BatchExecutionInclude;
3651
+ }
3652
+ interface BatchExecutionResponse {
3653
+ executions: Record<string, ExecutionDetailResponse | null>;
3654
+ errors: Record<string, string>;
3655
+ fetchedAt: string;
3656
+ }
3657
+ type EngagementStatus = 'connection_pending' | 'connection_accepted' | 'message_sent' | 'awaiting_reply' | 'replied' | 'replied_positive' | 'replied_negative' | 'replied_neutral' | 'no_response' | 'sequence_active' | 'sequence_failed' | 'unknown';
3658
+ interface EngagementStatusRequest {
3659
+ executionIds: string[];
3660
+ }
3661
+ interface EngagementStatusData {
3662
+ status: EngagementStatus;
3663
+ lastActionAt?: string;
3664
+ daysSinceAction?: number;
3665
+ replySentiment?: string;
3666
+ currentStepKey?: string;
3667
+ }
3668
+ interface EngagementStatusResponse {
3669
+ statuses: Record<string, EngagementStatusData>;
3670
+ errors: Record<string, string>;
3671
+ computedAt: string;
3672
+ }
3602
3673
 
3603
3674
  /**
3604
3675
  * Resource for managing automated multi-step outreach sequences.
@@ -3694,6 +3765,37 @@ declare class SequencesResource {
3694
3765
  * Get detailed execution state with step history.
3695
3766
  */
3696
3767
  getExecution(executionId: string): Promise<ExecutionDetailResponse>;
3768
+ /**
3769
+ * Fetch execution histories for multiple executions in a single request.
3770
+ *
3771
+ * Returns full execution details including step history and events for up to 100
3772
+ * execution IDs. Missing or unauthorized executions are returned as null with
3773
+ * an error message.
3774
+ *
3775
+ * @param request - The batch request with execution IDs and include options
3776
+ */
3777
+ batchGetExecutions(request: BatchExecutionRequest): Promise<BatchExecutionResponse>;
3778
+ /**
3779
+ * Derive engagement status for multiple executions in a single request.
3780
+ *
3781
+ * This is a lightweight endpoint that computes engagement status server-side
3782
+ * without returning full execution histories. Ideal for filtering and UI display.
3783
+ *
3784
+ * Engagement statuses:
3785
+ * - connection_pending: Connection request sent, awaiting acceptance
3786
+ * - connection_accepted: They accepted the connection
3787
+ * - message_sent: Follow-up message delivered
3788
+ * - awaiting_reply: Waiting for their response
3789
+ * - replied: They replied (no sentiment)
3790
+ * - replied_positive/negative/neutral: Reply with sentiment
3791
+ * - no_response: No response after 7+ days
3792
+ * - sequence_active: Still running
3793
+ * - sequence_failed: Error occurred
3794
+ * - unknown: Unable to determine status
3795
+ *
3796
+ * @param request - The request with up to 500 execution IDs
3797
+ */
3798
+ getEngagementStatus(request: EngagementStatusRequest): Promise<EngagementStatusResponse>;
3697
3799
  /**
3698
3800
  * Pause a single execution.
3699
3801
  */
@@ -4328,4 +4430,4 @@ declare class ProgressTracker {
4328
4430
  */
4329
4431
  declare function verifyWebhookSignature(payload: string, signature: string, secret: string): boolean;
4330
4432
 
4331
- export { ACTION_DELAYS, type ActionLimit, type AddAndRunCriterionRequest, type AddCriterionRequest, type AgentConfig, type ApiKeyMode, type ApiKeyModeRequest, type ApiKeyModeResponse, type ApiProvider, type AppEnabledResponse, type AppliedFilters, type ApprovalItem, type ApprovalListResponse, type ApprovalResponse, type ApprovalStatus, type ApprovalsParams, type ApprovalsRequestItem, type ApprovalsResponseItem, type ApproveStepRequest, type AppsListResponse, type ArtifactObject, type ArtifactsListResponse, AuthenticationError, type BaseResource, type BatchCheckConnectionRequest, type BatchCheckPriorContactRequest, type BatchCheckPriorContactResponse, type BatchConnectionRequest, type BatchConnectionResponse, type BatchConnectionStatus, type BatchConnectionStatusResponse, type BatchDraftCompleteData, type BatchDraftCreatedData, type BatchDraftErrorData, type BatchDraftJobProgress, type BatchDraftJobResponse, type BatchDraftJobStartedData, type BatchDraftJobStatusResponse, type BatchDraftProgressData, type BatchDraftRequest, type BatchDraftResponse, type BatchDraftStreamCallbacks, type BatchDraftStreamEvent, type BatchDraftStreamEventType, BatchJobStatus, type BatchPollRequest, type BatchPollResponse, type BatchProspectIdentifier, type BatchRequestItem, type BatchRequestType, type BatchResponseItem, type BatchSendRequest, type BatchSendResponse, type BatchStepMetric, type BillingStatus, type BulkApprovalAction, type BulkApprovalFailure, type BulkApprovalRequest, type BulkApprovalResponse, type BulkCompleteFailure, type BulkCompleteRequest, type BulkCompleteResponse, type BulkDeleteRequest, type BulkDeleteResponse, type BulkOperationRequest, type BulkOperationResponse, type BulkUploadResponse, CONTENT_LIMITS, CONTENT_LIMITS_MAP, type CancelDraftResponse, type CancelResponseResponse, type ChannelContactHistory, ChannelType, type CheckAppEnabledParams, type CheckLinkedInConnectionRequest, type CheckPriorContactRequest, type CheckPriorContactResponse, type ChunkingStrategy, type CompleteExecutionRequest, type CompleteExecutionResponse, type ConnectionAcceptedData, type ConnectionCallbackRequest, type ConnectionCallbackResponse, type ConnectionInfo, type ConnectionStatus, type ConnectionStatusResponse, type ConnectionSummary, type ContentLimit, type ContentSource, type ContentType, type ConversationDetail, ConversationStatus, type ConversationSummary, type CreateDraftRequest, type CreateFeedbackRequest, type CreateFeedbackResponse, type CreateResponseRequest, type CreateResponseResponse, type CreateThreadRequest, type CriteriaClassification, type CriteriaMetadata, type CriterionDefinition, type CriterionType, type DatabaseStatus, type DeleteApiKeyResponse, type DeleteConversationResponse, type DeleteConversationsByProjectResponse, type DisconnectRequest, type DisconnectResponse, type DraftResponse, type DraftSendOverride, DraftStatus, type DuplicateHandling, type DuplicateTemplateRequest, type Email, type EmailAction, type EmailThreadSummary, type ErrorDetail, type ErrorResponse, type ErrorResponseItem, type ExecutionDetailResponse, type ExecutionEvent, type ExecutionEventData, type ExecutionListResponse, type ExecutionMetricsOptions, type ExecutionMetricsResponse, type ExecutionStatus, type ExecutionSummary, type ExecutionSummaryExtended, type ExecutionsParams, type ExecutionsRequestItem, type ExecutionsResponseItem, ExternalAPIKeysResource, type ExternalApiKeyResponse, type FeedbackListResponse, type FeedbackObject, type FeedbackType, type FileAttachment, type FileChunk, type FileContentResponse, type FileListResponse, type FileMetadata, type FileScope, type FileScopeUpdateRequest, type FileSearchRequest, type FileSearchResponse, type FileSearchResult, type FileStatisticsResponse, type FileUploadResponse, FilesResource, type FilterLogic, type FilterValue, type GetConnectionStatusParams, type GetToolsRequest, type GetToolsResponse, type GetUserConnectionsParams, type InitiateConnectionRequest, type InitiateConnectionResponse, type InmailSubscription, IntegrationsResource, InternalServerError, LINKEDIN_LIMITS, type LifecycleOperationRequest, type LifecycleOperationResponse, type LinkedInAccountInfoResponse, type LinkedInAction, type LinkedInConnectionStatus, type LinkedInCreditsResponse, type LinkedInLimitSubscriptionType, type LinkedInLimits, type LinkedInSendRequest, type LinkedInSubscriptionInfo, LinkedInSubscriptionType, type ListApprovalsOptions, type ListExecutionsOptions, type ListProvidersResponse, type ListTemplatesOptions, LocalFileNotSupportedError, LumnisClient, type LumnisClientOptions, LumnisError, type LumnisErrorOptions, type MCPScope, type MCPServerCreateRequest, type MCPServerListResponse, type MCPServerResponse, type MCPServerUpdateRequest, MCPServersResource, type MCPToolListResponse, type MCPToolResponse, type MCPTransport, type Message, type MessageReceivedData, type MessageResponse, type MessageSentData, MessageType, MessagingAPIError, MessagingConnectionError, MessagingNotFoundError, MessagingResource, MessagingSendError, MessagingValidationError, type MetricsParams, type MetricsRequestItem, type MetricsResponseItem, type ModelAvailability, type ModelOverrides, type ModelPreferenceCreate, type ModelPreferencesBulkUpdate, ModelPreferencesResource, type ModelProvider, type ModelType, NetworkDistance, NoDataSourcesError, NotFoundError, type OnFailure, type OutcomeType, OutreachMethod, type PaginationInfo, type PaginationParams, type PendingApprovalExtended, PeopleDataSource, PeopleResource, type PeopleSearchRequest, type PeopleSearchResponse, type PersonResult, type Plan, type PriorContactMessage, type ProcessingStatus, type ProcessingStatusResponse, type ProgressEntry, ProgressTracker, type ProjectApprovalsData, type ProjectExecutionsData, type ProjectMetricsData, type ProspectConnectionCheck, type ProspectInfo, type ProspectInput, type ProspectPriorContactResult, type ProspectSyncIdentifier, type ProspectSyncResult, ProviderType, QueueItemStatus, type QuickPeopleSearchOutput, RATE_LIMIT_COOLDOWNS, type RateLimitData, RateLimitError, type RateLimitErrorOptions, type RateLimitInfo, type RateLimitStatusResponse, type RateLimitsParams, type RateLimitsRequestItem, type RateLimitsResponseItem, type RejectStepRequest, type ReplySentiment, type ResponseArtifact, type ResponseListResponse, type ResponseObject, type ResponseStatus, ResponsesResource, type SalaryRange, type Scope, type SelectedSkill, type SendMessageRequest, type SendMessageResponse, type SendReplyRequest, type SendResult, type SequenceAction, type SequenceApprovalNeededData, type SequenceChannel, type SequenceEventType, type SequenceExecutionCompletedData, type SequenceExecutionFailedData, type SequenceStepCompletedData, type SequenceTemplateCreate, type SequenceTemplateResponse, type SequenceTemplateUpdate, SequencesResource, SharePermission, type SkillAnalyticsRequest, type SkillEffectivenessMetrics, type SkillGuidelineBase, type SkillGuidelineCreate, type SkillGuidelineListResponse, type SkillGuidelineResponse, type SkillGuidelineUpdate, type SkillRetrievalMetadata, type SkillUsageBase, type SkillUsageCreate, type SkillUsageListResponse, type SkillUsageResponse, type SkillUsageUpdate, SkillsResource, type SkipStepRequest, type SkipStepResponse, type SkippedProspect, SourcesNotAvailableError, type SpecializedAgentParams, type SpecializedAgentType, type StartExecutionRequest, type StartExecutionResponse, type StepConfig, type StepExecutionStatus, type StepHistoryEntry, type StepMetric, type StoreApiKeyRequest, type StructuredResponse, type SyncJobResponse, SyncJobStatus, type SyncProspectRequest, type SyncProspectResponse, type SyncRequest, type SyncStats, type TemplateShareConfig, type TemplateShareInfo, type TemplateShareRequest, type TemplateSharesResponse, type TenantDetailsResponse, TenantInfoResource, type TenantModelPreference, type TenantModelPreferencesResponse, type TestConnectionResponse, type ThreadListResponse, type ThreadObject, type ThreadResponsesParams, ThreadsResource, type ToolInfo, type TransitionCondition, type TransitionConditionOperator, type TransitionConditionType, type TransitionConfig, type TransitionEventParams, UNIPILE_RATE_LIMIT_ERRORS, UNIPILE_SAFE_LIMITS, type UUID, type UnlinkConversationsResponse, type UpdateAppStatusParams, type UpdateAppStatusResponse, type UpdateDraftRequest, type UpdateLinkedInSubscriptionRequest, type UpdateThreadRequest, type UserConnectionsResponse, type UserCreateRequest, type UserDeleteResponse, type UserIdentifier, type UserListResponse, type UserResponse, type UserUpdateRequest, UsersResource, VALID_EVENT_TYPES, ValidationError, type ValidationIssue, type ValidationResponse, type WebhookEvent, type WebhookPayload, canSendInmail, displayProgress, formatProgressEntry, getBestSubscriptionForAction, getConnectionRequestLimit, getContentLimit, getInmailAllowance, getLimits, getMessageLimit, hasOpenProfileMessages, verifyWebhookSignature };
4433
+ export { ACTION_DELAYS, type ActionLimit, type AddAndRunCriterionRequest, type AddCriterionRequest, type AgentConfig, type ApiKeyMode, type ApiKeyModeRequest, type ApiKeyModeResponse, type ApiProvider, type AppEnabledResponse, type AppliedFilters, type ApprovalItem, type ApprovalListResponse, type ApprovalResponse, type ApprovalStatus, type ApprovalsParams, type ApprovalsRequestItem, type ApprovalsResponseItem, type ApproveStepRequest, type AppsListResponse, type ArtifactObject, type ArtifactsListResponse, AuthenticationError, type BaseResource, type BatchCheckConnectionRequest, type BatchCheckPriorContactRequest, type BatchCheckPriorContactResponse, type BatchConnectionRequest, type BatchConnectionResponse, type BatchConnectionStatus, type BatchConnectionStatusResponse, type BatchDraftCompleteData, type BatchDraftCreatedData, type BatchDraftErrorData, type BatchDraftJobProgress, type BatchDraftJobResponse, type BatchDraftJobStartedData, type BatchDraftJobStatusResponse, type BatchDraftProgressData, type BatchDraftRequest, type BatchDraftResponse, type BatchDraftStreamCallbacks, type BatchDraftStreamEvent, type BatchDraftStreamEventType, type BatchExecutionInclude, type BatchExecutionRequest, type BatchExecutionResponse, BatchJobStatus, type BatchPollRequest, type BatchPollResponse, type BatchProspectIdentifier, type BatchRequestItem, type BatchRequestType, type BatchResponseItem, type BatchSendRequest, type BatchSendResponse, type BatchStepMetric, type BillingStatus, type BulkApprovalAction, type BulkApprovalFailure, type BulkApprovalRequest, type BulkApprovalResponse, type BulkCompleteFailure, type BulkCompleteRequest, type BulkCompleteResponse, type BulkDeleteRequest, type BulkDeleteResponse, type BulkOperationRequest, type BulkOperationResponse, type BulkUploadResponse, CONTENT_LIMITS, CONTENT_LIMITS_MAP, type CancelDraftResponse, type CancelResponseResponse, type ChannelContactHistory, ChannelType, type CheckAppEnabledParams, type CheckLinkedInConnectionRequest, type CheckPriorContactRequest, type CheckPriorContactResponse, type ChunkingStrategy, type CompleteExecutionRequest, type CompleteExecutionResponse, type ConnectionAcceptedData, type ConnectionCallbackRequest, type ConnectionCallbackResponse, type ConnectionInfo, type ConnectionStatus, type ConnectionStatusResponse, type ConnectionSummary, type ContentLimit, type ContentSource, type ContentType, type ConversationDetail, ConversationStatus, type ConversationSummary, type CreateDraftRequest, type CreateFeedbackRequest, type CreateFeedbackResponse, type CreateResponseRequest, type CreateResponseResponse, type CreateThreadRequest, type CriteriaClassification, type CriteriaMetadata, type CriterionDefinition, type CriterionType, DAILY_INMAIL_LIMITS, type DatabaseStatus, type DeleteApiKeyResponse, type DeleteConversationResponse, type DeleteConversationsByProjectResponse, type DisconnectRequest, type DisconnectResponse, type DraftResponse, type DraftSendOverride, DraftStatus, type DuplicateHandling, type DuplicateTemplateRequest, type Email, type EmailAction, type EmailThreadSummary, type EngagementStatus, type EngagementStatusData, type EngagementStatusRequest, type EngagementStatusResponse, type ErrorDetail, type ErrorResponse, type ErrorResponseItem, type ExecutionDetailResponse, type ExecutionEvent, type ExecutionEventData, type ExecutionListResponse, type ExecutionMetricsOptions, type ExecutionMetricsResponse, type ExecutionStatus, type ExecutionSummary, type ExecutionSummaryExtended, type ExecutionsParams, type ExecutionsRequestItem, type ExecutionsResponseItem, ExternalAPIKeysResource, type ExternalApiKeyResponse, type FeedbackListResponse, type FeedbackObject, type FeedbackType, type FileAttachment, type FileChunk, type FileContentResponse, type FileListResponse, type FileMetadata, type FileScope, type FileScopeUpdateRequest, type FileSearchRequest, type FileSearchResponse, type FileSearchResult, type FileStatisticsResponse, type FileUploadResponse, FilesResource, type FilterLogic, type FilterValue, type GetConnectionStatusParams, type GetToolsRequest, type GetToolsResponse, type GetUserConnectionsParams, type InitiateConnectionRequest, type InitiateConnectionResponse, type InmailSubscription, IntegrationsResource, InternalServerError, LINKEDIN_LIMITS, type LifecycleOperationRequest, type LifecycleOperationResponse, type LinkedInAccountInfoResponse, type LinkedInAction, type LinkedInConnectionStatus, type LinkedInCreditsResponse, type LinkedInLimitSubscriptionType, type LinkedInLimits, type LinkedInSendRequest, type LinkedInSubscriptionInfo, LinkedInSubscriptionType, type ListApprovalsOptions, type ListExecutionsOptions, type ListProvidersResponse, type ListTemplatesOptions, LocalFileNotSupportedError, LumnisClient, type LumnisClientOptions, LumnisError, type LumnisErrorOptions, type MCPScope, type MCPServerCreateRequest, type MCPServerListResponse, type MCPServerResponse, type MCPServerUpdateRequest, MCPServersResource, type MCPToolListResponse, type MCPToolResponse, type MCPTransport, type Message, type MessageReceivedData, type MessageResponse, type MessageSentData, MessageType, MessagingAPIError, MessagingConnectionError, MessagingNotFoundError, MessagingResource, MessagingSendError, MessagingValidationError, type MetricsParams, type MetricsRequestItem, type MetricsResponseItem, type ModelAvailability, type ModelOverrides, type ModelPreferenceCreate, type ModelPreferencesBulkUpdate, ModelPreferencesResource, type ModelProvider, type ModelType, NetworkDistance, NoDataSourcesError, NotFoundError, type OnFailure, type OutcomeType, OutreachMethod, type PaginationInfo, type PaginationParams, type PendingApprovalExtended, PeopleDataSource, PeopleResource, type PeopleSearchRequest, type PeopleSearchResponse, type PersonResult, type Plan, type PriorContactMessage, type ProcessingStatus, type ProcessingStatusResponse, type ProgressEntry, ProgressTracker, type ProjectApprovalsData, type ProjectExecutionsData, type ProjectMetricsData, type ProspectConnectionCheck, type ProspectInfo, type ProspectInput, type ProspectPriorContactResult, type ProspectSyncIdentifier, type ProspectSyncResult, ProviderType, QueueItemStatus, type QuickPeopleSearchOutput, RATE_LIMIT_COOLDOWNS, type RateLimitData, RateLimitError, type RateLimitErrorOptions, type RateLimitInfo, type RateLimitStatusResponse, type RateLimitsParams, type RateLimitsRequestItem, type RateLimitsResponseItem, type RejectStepRequest, type ReplySentiment, type ResponseArtifact, type ResponseListResponse, type ResponseObject, type ResponseStatus, ResponsesResource, type SalaryRange, type Scope, type SelectedSkill, type SendMessageRequest, type SendMessageResponse, type SendReplyRequest, type SendResult, type SequenceAction, type SequenceApprovalNeededData, type SequenceChannel, type SequenceEventType, type SequenceExecutionCompletedData, type SequenceExecutionFailedData, type SequenceStepCompletedData, type SequenceTemplateCreate, type SequenceTemplateResponse, type SequenceTemplateUpdate, SequencesResource, SharePermission, type SkillAnalyticsRequest, type SkillEffectivenessMetrics, type SkillGuidelineBase, type SkillGuidelineCreate, type SkillGuidelineListResponse, type SkillGuidelineResponse, type SkillGuidelineUpdate, type SkillRetrievalMetadata, type SkillUsageBase, type SkillUsageCreate, type SkillUsageListResponse, type SkillUsageResponse, type SkillUsageUpdate, SkillsResource, type SkipStepRequest, type SkipStepResponse, type SkippedProspect, SourcesNotAvailableError, type SpecializedAgentParams, type SpecializedAgentType, type StartExecutionRequest, type StartExecutionResponse, type StepConfig, type StepExecutionStatus, type StepHistoryEntry, type StepMetric, type StoreApiKeyRequest, type StructuredResponse, type SyncJobResponse, SyncJobStatus, type SyncProspectRequest, type SyncProspectResponse, type SyncRequest, type SyncStats, type TemplateShareConfig, type TemplateShareInfo, type TemplateShareRequest, type TemplateSharesResponse, type TenantDetailsResponse, TenantInfoResource, type TenantModelPreference, type TenantModelPreferencesResponse, type TestConnectionResponse, type ThreadListResponse, type ThreadObject, type ThreadResponsesParams, ThreadsResource, type ToolInfo, type TransitionCondition, type TransitionConditionOperator, type TransitionConditionType, type TransitionConfig, type TransitionEventParams, UNIPILE_RATE_LIMIT_ERRORS, UNIPILE_SAFE_LIMITS, type UUID, type UnlinkConversationsResponse, type UpdateAppStatusParams, type UpdateAppStatusResponse, type UpdateDraftRequest, type UpdateLinkedInSubscriptionRequest, type UpdateThreadRequest, type UserConnectionsResponse, type UserCreateRequest, type UserDeleteResponse, type UserIdentifier, type UserListResponse, type UserResponse, type UserUpdateRequest, UsersResource, VALID_EVENT_TYPES, ValidationError, type ValidationIssue, type ValidationResponse, type WebhookEvent, type WebhookPayload, canSendInmail, displayProgress, formatProgressEntry, getBestSubscriptionForAction, getConnectionRequestLimit, getContentLimit, getDailyInmailLimit, getInmailAllowance, getLimits, getMessageLimit, hasOpenProfileMessages, isRecruiterSubscription, verifyWebhookSignature };
package/dist/index.d.mts CHANGED
@@ -85,6 +85,21 @@ declare const ACTION_DELAYS: {
85
85
  readonly betweenProfileViews: 5;
86
86
  readonly afterError: 60;
87
87
  };
88
+ /**
89
+ * Daily InMail sending limits by subscription type.
90
+ *
91
+ * These are the maximum InMails you can SEND per day (rate limit), separate from
92
+ * the monthly credits you have available.
93
+ *
94
+ * Per LinkedIn official documentation (https://www.linkedin.com/help/recruiter/answer/a745199):
95
+ * - Recruiter Corporate/RPS: 1,000 InMails per day per seat
96
+ * - Recruiter Lite: Limited by monthly credits (30/month + 100 Open Profile/month)
97
+ * - Other tiers: No official daily limit, but limited by monthly credits
98
+ *
99
+ * For non-Recruiter accounts, we set daily limit = monthly credits to allow
100
+ * flexibility while still respecting credit availability.
101
+ */
102
+ declare const DAILY_INMAIL_LIMITS: Record<LinkedInLimitSubscriptionType, number>;
88
103
  /**
89
104
  * Get all limits for a subscription type
90
105
  */
@@ -121,6 +136,27 @@ declare function hasOpenProfileMessages(subscriptionType: LinkedInLimitSubscript
121
136
  * - Other actions: recruiter_corporate > sales_navigator > recruiter_lite > premium_business > premium_career > basic
122
137
  */
123
138
  declare function getBestSubscriptionForAction(subscriptionTypes: (LinkedInLimitSubscriptionType | string)[], action: 'inmail' | 'connection_requests' | 'messages'): LinkedInLimitSubscriptionType | string | null;
139
+ /**
140
+ * Get daily InMail sending limit for a subscription type.
141
+ *
142
+ * Per LinkedIn official documentation:
143
+ * - Recruiter Corporate: 1,000 InMails per day per seat
144
+ * - Recruiter Lite: ~100/day (30 regular + 100 Open Profile per month)
145
+ * - Other tiers: Limited by monthly credits
146
+ *
147
+ * Note: This is the daily SENDING rate limit, not the total credits available.
148
+ * Credits are still consumed per InMail sent.
149
+ */
150
+ declare function getDailyInmailLimit(subscriptionType: LinkedInLimitSubscriptionType | string | null | undefined): number;
151
+ /**
152
+ * Check if subscription type is a Recruiter subscription.
153
+ *
154
+ * Recruiter subscriptions have special privileges:
155
+ * - High daily InMail limits (up to 1,000/day for Corporate)
156
+ * - Access to Recruiter API features
157
+ * - Open Profile messaging (free InMails to open profiles)
158
+ */
159
+ declare function isRecruiterSubscription(subscriptionType: LinkedInLimitSubscriptionType | string | null | undefined): boolean;
124
160
 
125
161
  interface ContentLimit {
126
162
  channel: string;
@@ -1939,6 +1975,12 @@ interface LinkedInAccountInfoResponse {
1939
1975
  connectionRequestsSentToday?: number | null;
1940
1976
  gmailSentToday?: number | null;
1941
1977
  outlookSentToday?: number | null;
1978
+ inmailDailyLimit?: number | null;
1979
+ directMessageDailyLimit?: number | null;
1980
+ connectionRequestDailyLimit?: number | null;
1981
+ inmailRemainingToday?: number | null;
1982
+ directMessagesRemainingToday?: number | null;
1983
+ connectionRequestsRemainingToday?: number | null;
1942
1984
  unipileStatus?: string | null;
1943
1985
  }
1944
1986
  /**
@@ -3599,6 +3641,35 @@ interface BatchPollResponse {
3599
3641
  responses: BatchResponseItem[];
3600
3642
  polledAt: string;
3601
3643
  }
3644
+ interface BatchExecutionInclude {
3645
+ stepHistory?: boolean;
3646
+ events?: boolean;
3647
+ }
3648
+ interface BatchExecutionRequest {
3649
+ executionIds: string[];
3650
+ include?: BatchExecutionInclude;
3651
+ }
3652
+ interface BatchExecutionResponse {
3653
+ executions: Record<string, ExecutionDetailResponse | null>;
3654
+ errors: Record<string, string>;
3655
+ fetchedAt: string;
3656
+ }
3657
+ type EngagementStatus = 'connection_pending' | 'connection_accepted' | 'message_sent' | 'awaiting_reply' | 'replied' | 'replied_positive' | 'replied_negative' | 'replied_neutral' | 'no_response' | 'sequence_active' | 'sequence_failed' | 'unknown';
3658
+ interface EngagementStatusRequest {
3659
+ executionIds: string[];
3660
+ }
3661
+ interface EngagementStatusData {
3662
+ status: EngagementStatus;
3663
+ lastActionAt?: string;
3664
+ daysSinceAction?: number;
3665
+ replySentiment?: string;
3666
+ currentStepKey?: string;
3667
+ }
3668
+ interface EngagementStatusResponse {
3669
+ statuses: Record<string, EngagementStatusData>;
3670
+ errors: Record<string, string>;
3671
+ computedAt: string;
3672
+ }
3602
3673
 
3603
3674
  /**
3604
3675
  * Resource for managing automated multi-step outreach sequences.
@@ -3694,6 +3765,37 @@ declare class SequencesResource {
3694
3765
  * Get detailed execution state with step history.
3695
3766
  */
3696
3767
  getExecution(executionId: string): Promise<ExecutionDetailResponse>;
3768
+ /**
3769
+ * Fetch execution histories for multiple executions in a single request.
3770
+ *
3771
+ * Returns full execution details including step history and events for up to 100
3772
+ * execution IDs. Missing or unauthorized executions are returned as null with
3773
+ * an error message.
3774
+ *
3775
+ * @param request - The batch request with execution IDs and include options
3776
+ */
3777
+ batchGetExecutions(request: BatchExecutionRequest): Promise<BatchExecutionResponse>;
3778
+ /**
3779
+ * Derive engagement status for multiple executions in a single request.
3780
+ *
3781
+ * This is a lightweight endpoint that computes engagement status server-side
3782
+ * without returning full execution histories. Ideal for filtering and UI display.
3783
+ *
3784
+ * Engagement statuses:
3785
+ * - connection_pending: Connection request sent, awaiting acceptance
3786
+ * - connection_accepted: They accepted the connection
3787
+ * - message_sent: Follow-up message delivered
3788
+ * - awaiting_reply: Waiting for their response
3789
+ * - replied: They replied (no sentiment)
3790
+ * - replied_positive/negative/neutral: Reply with sentiment
3791
+ * - no_response: No response after 7+ days
3792
+ * - sequence_active: Still running
3793
+ * - sequence_failed: Error occurred
3794
+ * - unknown: Unable to determine status
3795
+ *
3796
+ * @param request - The request with up to 500 execution IDs
3797
+ */
3798
+ getEngagementStatus(request: EngagementStatusRequest): Promise<EngagementStatusResponse>;
3697
3799
  /**
3698
3800
  * Pause a single execution.
3699
3801
  */
@@ -4328,4 +4430,4 @@ declare class ProgressTracker {
4328
4430
  */
4329
4431
  declare function verifyWebhookSignature(payload: string, signature: string, secret: string): boolean;
4330
4432
 
4331
- export { ACTION_DELAYS, type ActionLimit, type AddAndRunCriterionRequest, type AddCriterionRequest, type AgentConfig, type ApiKeyMode, type ApiKeyModeRequest, type ApiKeyModeResponse, type ApiProvider, type AppEnabledResponse, type AppliedFilters, type ApprovalItem, type ApprovalListResponse, type ApprovalResponse, type ApprovalStatus, type ApprovalsParams, type ApprovalsRequestItem, type ApprovalsResponseItem, type ApproveStepRequest, type AppsListResponse, type ArtifactObject, type ArtifactsListResponse, AuthenticationError, type BaseResource, type BatchCheckConnectionRequest, type BatchCheckPriorContactRequest, type BatchCheckPriorContactResponse, type BatchConnectionRequest, type BatchConnectionResponse, type BatchConnectionStatus, type BatchConnectionStatusResponse, type BatchDraftCompleteData, type BatchDraftCreatedData, type BatchDraftErrorData, type BatchDraftJobProgress, type BatchDraftJobResponse, type BatchDraftJobStartedData, type BatchDraftJobStatusResponse, type BatchDraftProgressData, type BatchDraftRequest, type BatchDraftResponse, type BatchDraftStreamCallbacks, type BatchDraftStreamEvent, type BatchDraftStreamEventType, BatchJobStatus, type BatchPollRequest, type BatchPollResponse, type BatchProspectIdentifier, type BatchRequestItem, type BatchRequestType, type BatchResponseItem, type BatchSendRequest, type BatchSendResponse, type BatchStepMetric, type BillingStatus, type BulkApprovalAction, type BulkApprovalFailure, type BulkApprovalRequest, type BulkApprovalResponse, type BulkCompleteFailure, type BulkCompleteRequest, type BulkCompleteResponse, type BulkDeleteRequest, type BulkDeleteResponse, type BulkOperationRequest, type BulkOperationResponse, type BulkUploadResponse, CONTENT_LIMITS, CONTENT_LIMITS_MAP, type CancelDraftResponse, type CancelResponseResponse, type ChannelContactHistory, ChannelType, type CheckAppEnabledParams, type CheckLinkedInConnectionRequest, type CheckPriorContactRequest, type CheckPriorContactResponse, type ChunkingStrategy, type CompleteExecutionRequest, type CompleteExecutionResponse, type ConnectionAcceptedData, type ConnectionCallbackRequest, type ConnectionCallbackResponse, type ConnectionInfo, type ConnectionStatus, type ConnectionStatusResponse, type ConnectionSummary, type ContentLimit, type ContentSource, type ContentType, type ConversationDetail, ConversationStatus, type ConversationSummary, type CreateDraftRequest, type CreateFeedbackRequest, type CreateFeedbackResponse, type CreateResponseRequest, type CreateResponseResponse, type CreateThreadRequest, type CriteriaClassification, type CriteriaMetadata, type CriterionDefinition, type CriterionType, type DatabaseStatus, type DeleteApiKeyResponse, type DeleteConversationResponse, type DeleteConversationsByProjectResponse, type DisconnectRequest, type DisconnectResponse, type DraftResponse, type DraftSendOverride, DraftStatus, type DuplicateHandling, type DuplicateTemplateRequest, type Email, type EmailAction, type EmailThreadSummary, type ErrorDetail, type ErrorResponse, type ErrorResponseItem, type ExecutionDetailResponse, type ExecutionEvent, type ExecutionEventData, type ExecutionListResponse, type ExecutionMetricsOptions, type ExecutionMetricsResponse, type ExecutionStatus, type ExecutionSummary, type ExecutionSummaryExtended, type ExecutionsParams, type ExecutionsRequestItem, type ExecutionsResponseItem, ExternalAPIKeysResource, type ExternalApiKeyResponse, type FeedbackListResponse, type FeedbackObject, type FeedbackType, type FileAttachment, type FileChunk, type FileContentResponse, type FileListResponse, type FileMetadata, type FileScope, type FileScopeUpdateRequest, type FileSearchRequest, type FileSearchResponse, type FileSearchResult, type FileStatisticsResponse, type FileUploadResponse, FilesResource, type FilterLogic, type FilterValue, type GetConnectionStatusParams, type GetToolsRequest, type GetToolsResponse, type GetUserConnectionsParams, type InitiateConnectionRequest, type InitiateConnectionResponse, type InmailSubscription, IntegrationsResource, InternalServerError, LINKEDIN_LIMITS, type LifecycleOperationRequest, type LifecycleOperationResponse, type LinkedInAccountInfoResponse, type LinkedInAction, type LinkedInConnectionStatus, type LinkedInCreditsResponse, type LinkedInLimitSubscriptionType, type LinkedInLimits, type LinkedInSendRequest, type LinkedInSubscriptionInfo, LinkedInSubscriptionType, type ListApprovalsOptions, type ListExecutionsOptions, type ListProvidersResponse, type ListTemplatesOptions, LocalFileNotSupportedError, LumnisClient, type LumnisClientOptions, LumnisError, type LumnisErrorOptions, type MCPScope, type MCPServerCreateRequest, type MCPServerListResponse, type MCPServerResponse, type MCPServerUpdateRequest, MCPServersResource, type MCPToolListResponse, type MCPToolResponse, type MCPTransport, type Message, type MessageReceivedData, type MessageResponse, type MessageSentData, MessageType, MessagingAPIError, MessagingConnectionError, MessagingNotFoundError, MessagingResource, MessagingSendError, MessagingValidationError, type MetricsParams, type MetricsRequestItem, type MetricsResponseItem, type ModelAvailability, type ModelOverrides, type ModelPreferenceCreate, type ModelPreferencesBulkUpdate, ModelPreferencesResource, type ModelProvider, type ModelType, NetworkDistance, NoDataSourcesError, NotFoundError, type OnFailure, type OutcomeType, OutreachMethod, type PaginationInfo, type PaginationParams, type PendingApprovalExtended, PeopleDataSource, PeopleResource, type PeopleSearchRequest, type PeopleSearchResponse, type PersonResult, type Plan, type PriorContactMessage, type ProcessingStatus, type ProcessingStatusResponse, type ProgressEntry, ProgressTracker, type ProjectApprovalsData, type ProjectExecutionsData, type ProjectMetricsData, type ProspectConnectionCheck, type ProspectInfo, type ProspectInput, type ProspectPriorContactResult, type ProspectSyncIdentifier, type ProspectSyncResult, ProviderType, QueueItemStatus, type QuickPeopleSearchOutput, RATE_LIMIT_COOLDOWNS, type RateLimitData, RateLimitError, type RateLimitErrorOptions, type RateLimitInfo, type RateLimitStatusResponse, type RateLimitsParams, type RateLimitsRequestItem, type RateLimitsResponseItem, type RejectStepRequest, type ReplySentiment, type ResponseArtifact, type ResponseListResponse, type ResponseObject, type ResponseStatus, ResponsesResource, type SalaryRange, type Scope, type SelectedSkill, type SendMessageRequest, type SendMessageResponse, type SendReplyRequest, type SendResult, type SequenceAction, type SequenceApprovalNeededData, type SequenceChannel, type SequenceEventType, type SequenceExecutionCompletedData, type SequenceExecutionFailedData, type SequenceStepCompletedData, type SequenceTemplateCreate, type SequenceTemplateResponse, type SequenceTemplateUpdate, SequencesResource, SharePermission, type SkillAnalyticsRequest, type SkillEffectivenessMetrics, type SkillGuidelineBase, type SkillGuidelineCreate, type SkillGuidelineListResponse, type SkillGuidelineResponse, type SkillGuidelineUpdate, type SkillRetrievalMetadata, type SkillUsageBase, type SkillUsageCreate, type SkillUsageListResponse, type SkillUsageResponse, type SkillUsageUpdate, SkillsResource, type SkipStepRequest, type SkipStepResponse, type SkippedProspect, SourcesNotAvailableError, type SpecializedAgentParams, type SpecializedAgentType, type StartExecutionRequest, type StartExecutionResponse, type StepConfig, type StepExecutionStatus, type StepHistoryEntry, type StepMetric, type StoreApiKeyRequest, type StructuredResponse, type SyncJobResponse, SyncJobStatus, type SyncProspectRequest, type SyncProspectResponse, type SyncRequest, type SyncStats, type TemplateShareConfig, type TemplateShareInfo, type TemplateShareRequest, type TemplateSharesResponse, type TenantDetailsResponse, TenantInfoResource, type TenantModelPreference, type TenantModelPreferencesResponse, type TestConnectionResponse, type ThreadListResponse, type ThreadObject, type ThreadResponsesParams, ThreadsResource, type ToolInfo, type TransitionCondition, type TransitionConditionOperator, type TransitionConditionType, type TransitionConfig, type TransitionEventParams, UNIPILE_RATE_LIMIT_ERRORS, UNIPILE_SAFE_LIMITS, type UUID, type UnlinkConversationsResponse, type UpdateAppStatusParams, type UpdateAppStatusResponse, type UpdateDraftRequest, type UpdateLinkedInSubscriptionRequest, type UpdateThreadRequest, type UserConnectionsResponse, type UserCreateRequest, type UserDeleteResponse, type UserIdentifier, type UserListResponse, type UserResponse, type UserUpdateRequest, UsersResource, VALID_EVENT_TYPES, ValidationError, type ValidationIssue, type ValidationResponse, type WebhookEvent, type WebhookPayload, canSendInmail, displayProgress, formatProgressEntry, getBestSubscriptionForAction, getConnectionRequestLimit, getContentLimit, getInmailAllowance, getLimits, getMessageLimit, hasOpenProfileMessages, verifyWebhookSignature };
4433
+ export { ACTION_DELAYS, type ActionLimit, type AddAndRunCriterionRequest, type AddCriterionRequest, type AgentConfig, type ApiKeyMode, type ApiKeyModeRequest, type ApiKeyModeResponse, type ApiProvider, type AppEnabledResponse, type AppliedFilters, type ApprovalItem, type ApprovalListResponse, type ApprovalResponse, type ApprovalStatus, type ApprovalsParams, type ApprovalsRequestItem, type ApprovalsResponseItem, type ApproveStepRequest, type AppsListResponse, type ArtifactObject, type ArtifactsListResponse, AuthenticationError, type BaseResource, type BatchCheckConnectionRequest, type BatchCheckPriorContactRequest, type BatchCheckPriorContactResponse, type BatchConnectionRequest, type BatchConnectionResponse, type BatchConnectionStatus, type BatchConnectionStatusResponse, type BatchDraftCompleteData, type BatchDraftCreatedData, type BatchDraftErrorData, type BatchDraftJobProgress, type BatchDraftJobResponse, type BatchDraftJobStartedData, type BatchDraftJobStatusResponse, type BatchDraftProgressData, type BatchDraftRequest, type BatchDraftResponse, type BatchDraftStreamCallbacks, type BatchDraftStreamEvent, type BatchDraftStreamEventType, type BatchExecutionInclude, type BatchExecutionRequest, type BatchExecutionResponse, BatchJobStatus, type BatchPollRequest, type BatchPollResponse, type BatchProspectIdentifier, type BatchRequestItem, type BatchRequestType, type BatchResponseItem, type BatchSendRequest, type BatchSendResponse, type BatchStepMetric, type BillingStatus, type BulkApprovalAction, type BulkApprovalFailure, type BulkApprovalRequest, type BulkApprovalResponse, type BulkCompleteFailure, type BulkCompleteRequest, type BulkCompleteResponse, type BulkDeleteRequest, type BulkDeleteResponse, type BulkOperationRequest, type BulkOperationResponse, type BulkUploadResponse, CONTENT_LIMITS, CONTENT_LIMITS_MAP, type CancelDraftResponse, type CancelResponseResponse, type ChannelContactHistory, ChannelType, type CheckAppEnabledParams, type CheckLinkedInConnectionRequest, type CheckPriorContactRequest, type CheckPriorContactResponse, type ChunkingStrategy, type CompleteExecutionRequest, type CompleteExecutionResponse, type ConnectionAcceptedData, type ConnectionCallbackRequest, type ConnectionCallbackResponse, type ConnectionInfo, type ConnectionStatus, type ConnectionStatusResponse, type ConnectionSummary, type ContentLimit, type ContentSource, type ContentType, type ConversationDetail, ConversationStatus, type ConversationSummary, type CreateDraftRequest, type CreateFeedbackRequest, type CreateFeedbackResponse, type CreateResponseRequest, type CreateResponseResponse, type CreateThreadRequest, type CriteriaClassification, type CriteriaMetadata, type CriterionDefinition, type CriterionType, DAILY_INMAIL_LIMITS, type DatabaseStatus, type DeleteApiKeyResponse, type DeleteConversationResponse, type DeleteConversationsByProjectResponse, type DisconnectRequest, type DisconnectResponse, type DraftResponse, type DraftSendOverride, DraftStatus, type DuplicateHandling, type DuplicateTemplateRequest, type Email, type EmailAction, type EmailThreadSummary, type EngagementStatus, type EngagementStatusData, type EngagementStatusRequest, type EngagementStatusResponse, type ErrorDetail, type ErrorResponse, type ErrorResponseItem, type ExecutionDetailResponse, type ExecutionEvent, type ExecutionEventData, type ExecutionListResponse, type ExecutionMetricsOptions, type ExecutionMetricsResponse, type ExecutionStatus, type ExecutionSummary, type ExecutionSummaryExtended, type ExecutionsParams, type ExecutionsRequestItem, type ExecutionsResponseItem, ExternalAPIKeysResource, type ExternalApiKeyResponse, type FeedbackListResponse, type FeedbackObject, type FeedbackType, type FileAttachment, type FileChunk, type FileContentResponse, type FileListResponse, type FileMetadata, type FileScope, type FileScopeUpdateRequest, type FileSearchRequest, type FileSearchResponse, type FileSearchResult, type FileStatisticsResponse, type FileUploadResponse, FilesResource, type FilterLogic, type FilterValue, type GetConnectionStatusParams, type GetToolsRequest, type GetToolsResponse, type GetUserConnectionsParams, type InitiateConnectionRequest, type InitiateConnectionResponse, type InmailSubscription, IntegrationsResource, InternalServerError, LINKEDIN_LIMITS, type LifecycleOperationRequest, type LifecycleOperationResponse, type LinkedInAccountInfoResponse, type LinkedInAction, type LinkedInConnectionStatus, type LinkedInCreditsResponse, type LinkedInLimitSubscriptionType, type LinkedInLimits, type LinkedInSendRequest, type LinkedInSubscriptionInfo, LinkedInSubscriptionType, type ListApprovalsOptions, type ListExecutionsOptions, type ListProvidersResponse, type ListTemplatesOptions, LocalFileNotSupportedError, LumnisClient, type LumnisClientOptions, LumnisError, type LumnisErrorOptions, type MCPScope, type MCPServerCreateRequest, type MCPServerListResponse, type MCPServerResponse, type MCPServerUpdateRequest, MCPServersResource, type MCPToolListResponse, type MCPToolResponse, type MCPTransport, type Message, type MessageReceivedData, type MessageResponse, type MessageSentData, MessageType, MessagingAPIError, MessagingConnectionError, MessagingNotFoundError, MessagingResource, MessagingSendError, MessagingValidationError, type MetricsParams, type MetricsRequestItem, type MetricsResponseItem, type ModelAvailability, type ModelOverrides, type ModelPreferenceCreate, type ModelPreferencesBulkUpdate, ModelPreferencesResource, type ModelProvider, type ModelType, NetworkDistance, NoDataSourcesError, NotFoundError, type OnFailure, type OutcomeType, OutreachMethod, type PaginationInfo, type PaginationParams, type PendingApprovalExtended, PeopleDataSource, PeopleResource, type PeopleSearchRequest, type PeopleSearchResponse, type PersonResult, type Plan, type PriorContactMessage, type ProcessingStatus, type ProcessingStatusResponse, type ProgressEntry, ProgressTracker, type ProjectApprovalsData, type ProjectExecutionsData, type ProjectMetricsData, type ProspectConnectionCheck, type ProspectInfo, type ProspectInput, type ProspectPriorContactResult, type ProspectSyncIdentifier, type ProspectSyncResult, ProviderType, QueueItemStatus, type QuickPeopleSearchOutput, RATE_LIMIT_COOLDOWNS, type RateLimitData, RateLimitError, type RateLimitErrorOptions, type RateLimitInfo, type RateLimitStatusResponse, type RateLimitsParams, type RateLimitsRequestItem, type RateLimitsResponseItem, type RejectStepRequest, type ReplySentiment, type ResponseArtifact, type ResponseListResponse, type ResponseObject, type ResponseStatus, ResponsesResource, type SalaryRange, type Scope, type SelectedSkill, type SendMessageRequest, type SendMessageResponse, type SendReplyRequest, type SendResult, type SequenceAction, type SequenceApprovalNeededData, type SequenceChannel, type SequenceEventType, type SequenceExecutionCompletedData, type SequenceExecutionFailedData, type SequenceStepCompletedData, type SequenceTemplateCreate, type SequenceTemplateResponse, type SequenceTemplateUpdate, SequencesResource, SharePermission, type SkillAnalyticsRequest, type SkillEffectivenessMetrics, type SkillGuidelineBase, type SkillGuidelineCreate, type SkillGuidelineListResponse, type SkillGuidelineResponse, type SkillGuidelineUpdate, type SkillRetrievalMetadata, type SkillUsageBase, type SkillUsageCreate, type SkillUsageListResponse, type SkillUsageResponse, type SkillUsageUpdate, SkillsResource, type SkipStepRequest, type SkipStepResponse, type SkippedProspect, SourcesNotAvailableError, type SpecializedAgentParams, type SpecializedAgentType, type StartExecutionRequest, type StartExecutionResponse, type StepConfig, type StepExecutionStatus, type StepHistoryEntry, type StepMetric, type StoreApiKeyRequest, type StructuredResponse, type SyncJobResponse, SyncJobStatus, type SyncProspectRequest, type SyncProspectResponse, type SyncRequest, type SyncStats, type TemplateShareConfig, type TemplateShareInfo, type TemplateShareRequest, type TemplateSharesResponse, type TenantDetailsResponse, TenantInfoResource, type TenantModelPreference, type TenantModelPreferencesResponse, type TestConnectionResponse, type ThreadListResponse, type ThreadObject, type ThreadResponsesParams, ThreadsResource, type ToolInfo, type TransitionCondition, type TransitionConditionOperator, type TransitionConditionType, type TransitionConfig, type TransitionEventParams, UNIPILE_RATE_LIMIT_ERRORS, UNIPILE_SAFE_LIMITS, type UUID, type UnlinkConversationsResponse, type UpdateAppStatusParams, type UpdateAppStatusResponse, type UpdateDraftRequest, type UpdateLinkedInSubscriptionRequest, type UpdateThreadRequest, type UserConnectionsResponse, type UserCreateRequest, type UserDeleteResponse, type UserIdentifier, type UserListResponse, type UserResponse, type UserUpdateRequest, UsersResource, VALID_EVENT_TYPES, ValidationError, type ValidationIssue, type ValidationResponse, type WebhookEvent, type WebhookPayload, canSendInmail, displayProgress, formatProgressEntry, getBestSubscriptionForAction, getConnectionRequestLimit, getContentLimit, getDailyInmailLimit, getInmailAllowance, getLimits, getMessageLimit, hasOpenProfileMessages, isRecruiterSubscription, verifyWebhookSignature };
package/dist/index.d.ts CHANGED
@@ -85,6 +85,21 @@ declare const ACTION_DELAYS: {
85
85
  readonly betweenProfileViews: 5;
86
86
  readonly afterError: 60;
87
87
  };
88
+ /**
89
+ * Daily InMail sending limits by subscription type.
90
+ *
91
+ * These are the maximum InMails you can SEND per day (rate limit), separate from
92
+ * the monthly credits you have available.
93
+ *
94
+ * Per LinkedIn official documentation (https://www.linkedin.com/help/recruiter/answer/a745199):
95
+ * - Recruiter Corporate/RPS: 1,000 InMails per day per seat
96
+ * - Recruiter Lite: Limited by monthly credits (30/month + 100 Open Profile/month)
97
+ * - Other tiers: No official daily limit, but limited by monthly credits
98
+ *
99
+ * For non-Recruiter accounts, we set daily limit = monthly credits to allow
100
+ * flexibility while still respecting credit availability.
101
+ */
102
+ declare const DAILY_INMAIL_LIMITS: Record<LinkedInLimitSubscriptionType, number>;
88
103
  /**
89
104
  * Get all limits for a subscription type
90
105
  */
@@ -121,6 +136,27 @@ declare function hasOpenProfileMessages(subscriptionType: LinkedInLimitSubscript
121
136
  * - Other actions: recruiter_corporate > sales_navigator > recruiter_lite > premium_business > premium_career > basic
122
137
  */
123
138
  declare function getBestSubscriptionForAction(subscriptionTypes: (LinkedInLimitSubscriptionType | string)[], action: 'inmail' | 'connection_requests' | 'messages'): LinkedInLimitSubscriptionType | string | null;
139
+ /**
140
+ * Get daily InMail sending limit for a subscription type.
141
+ *
142
+ * Per LinkedIn official documentation:
143
+ * - Recruiter Corporate: 1,000 InMails per day per seat
144
+ * - Recruiter Lite: ~100/day (30 regular + 100 Open Profile per month)
145
+ * - Other tiers: Limited by monthly credits
146
+ *
147
+ * Note: This is the daily SENDING rate limit, not the total credits available.
148
+ * Credits are still consumed per InMail sent.
149
+ */
150
+ declare function getDailyInmailLimit(subscriptionType: LinkedInLimitSubscriptionType | string | null | undefined): number;
151
+ /**
152
+ * Check if subscription type is a Recruiter subscription.
153
+ *
154
+ * Recruiter subscriptions have special privileges:
155
+ * - High daily InMail limits (up to 1,000/day for Corporate)
156
+ * - Access to Recruiter API features
157
+ * - Open Profile messaging (free InMails to open profiles)
158
+ */
159
+ declare function isRecruiterSubscription(subscriptionType: LinkedInLimitSubscriptionType | string | null | undefined): boolean;
124
160
 
125
161
  interface ContentLimit {
126
162
  channel: string;
@@ -1939,6 +1975,12 @@ interface LinkedInAccountInfoResponse {
1939
1975
  connectionRequestsSentToday?: number | null;
1940
1976
  gmailSentToday?: number | null;
1941
1977
  outlookSentToday?: number | null;
1978
+ inmailDailyLimit?: number | null;
1979
+ directMessageDailyLimit?: number | null;
1980
+ connectionRequestDailyLimit?: number | null;
1981
+ inmailRemainingToday?: number | null;
1982
+ directMessagesRemainingToday?: number | null;
1983
+ connectionRequestsRemainingToday?: number | null;
1942
1984
  unipileStatus?: string | null;
1943
1985
  }
1944
1986
  /**
@@ -3599,6 +3641,35 @@ interface BatchPollResponse {
3599
3641
  responses: BatchResponseItem[];
3600
3642
  polledAt: string;
3601
3643
  }
3644
+ interface BatchExecutionInclude {
3645
+ stepHistory?: boolean;
3646
+ events?: boolean;
3647
+ }
3648
+ interface BatchExecutionRequest {
3649
+ executionIds: string[];
3650
+ include?: BatchExecutionInclude;
3651
+ }
3652
+ interface BatchExecutionResponse {
3653
+ executions: Record<string, ExecutionDetailResponse | null>;
3654
+ errors: Record<string, string>;
3655
+ fetchedAt: string;
3656
+ }
3657
+ type EngagementStatus = 'connection_pending' | 'connection_accepted' | 'message_sent' | 'awaiting_reply' | 'replied' | 'replied_positive' | 'replied_negative' | 'replied_neutral' | 'no_response' | 'sequence_active' | 'sequence_failed' | 'unknown';
3658
+ interface EngagementStatusRequest {
3659
+ executionIds: string[];
3660
+ }
3661
+ interface EngagementStatusData {
3662
+ status: EngagementStatus;
3663
+ lastActionAt?: string;
3664
+ daysSinceAction?: number;
3665
+ replySentiment?: string;
3666
+ currentStepKey?: string;
3667
+ }
3668
+ interface EngagementStatusResponse {
3669
+ statuses: Record<string, EngagementStatusData>;
3670
+ errors: Record<string, string>;
3671
+ computedAt: string;
3672
+ }
3602
3673
 
3603
3674
  /**
3604
3675
  * Resource for managing automated multi-step outreach sequences.
@@ -3694,6 +3765,37 @@ declare class SequencesResource {
3694
3765
  * Get detailed execution state with step history.
3695
3766
  */
3696
3767
  getExecution(executionId: string): Promise<ExecutionDetailResponse>;
3768
+ /**
3769
+ * Fetch execution histories for multiple executions in a single request.
3770
+ *
3771
+ * Returns full execution details including step history and events for up to 100
3772
+ * execution IDs. Missing or unauthorized executions are returned as null with
3773
+ * an error message.
3774
+ *
3775
+ * @param request - The batch request with execution IDs and include options
3776
+ */
3777
+ batchGetExecutions(request: BatchExecutionRequest): Promise<BatchExecutionResponse>;
3778
+ /**
3779
+ * Derive engagement status for multiple executions in a single request.
3780
+ *
3781
+ * This is a lightweight endpoint that computes engagement status server-side
3782
+ * without returning full execution histories. Ideal for filtering and UI display.
3783
+ *
3784
+ * Engagement statuses:
3785
+ * - connection_pending: Connection request sent, awaiting acceptance
3786
+ * - connection_accepted: They accepted the connection
3787
+ * - message_sent: Follow-up message delivered
3788
+ * - awaiting_reply: Waiting for their response
3789
+ * - replied: They replied (no sentiment)
3790
+ * - replied_positive/negative/neutral: Reply with sentiment
3791
+ * - no_response: No response after 7+ days
3792
+ * - sequence_active: Still running
3793
+ * - sequence_failed: Error occurred
3794
+ * - unknown: Unable to determine status
3795
+ *
3796
+ * @param request - The request with up to 500 execution IDs
3797
+ */
3798
+ getEngagementStatus(request: EngagementStatusRequest): Promise<EngagementStatusResponse>;
3697
3799
  /**
3698
3800
  * Pause a single execution.
3699
3801
  */
@@ -4328,4 +4430,4 @@ declare class ProgressTracker {
4328
4430
  */
4329
4431
  declare function verifyWebhookSignature(payload: string, signature: string, secret: string): boolean;
4330
4432
 
4331
- export { ACTION_DELAYS, type ActionLimit, type AddAndRunCriterionRequest, type AddCriterionRequest, type AgentConfig, type ApiKeyMode, type ApiKeyModeRequest, type ApiKeyModeResponse, type ApiProvider, type AppEnabledResponse, type AppliedFilters, type ApprovalItem, type ApprovalListResponse, type ApprovalResponse, type ApprovalStatus, type ApprovalsParams, type ApprovalsRequestItem, type ApprovalsResponseItem, type ApproveStepRequest, type AppsListResponse, type ArtifactObject, type ArtifactsListResponse, AuthenticationError, type BaseResource, type BatchCheckConnectionRequest, type BatchCheckPriorContactRequest, type BatchCheckPriorContactResponse, type BatchConnectionRequest, type BatchConnectionResponse, type BatchConnectionStatus, type BatchConnectionStatusResponse, type BatchDraftCompleteData, type BatchDraftCreatedData, type BatchDraftErrorData, type BatchDraftJobProgress, type BatchDraftJobResponse, type BatchDraftJobStartedData, type BatchDraftJobStatusResponse, type BatchDraftProgressData, type BatchDraftRequest, type BatchDraftResponse, type BatchDraftStreamCallbacks, type BatchDraftStreamEvent, type BatchDraftStreamEventType, BatchJobStatus, type BatchPollRequest, type BatchPollResponse, type BatchProspectIdentifier, type BatchRequestItem, type BatchRequestType, type BatchResponseItem, type BatchSendRequest, type BatchSendResponse, type BatchStepMetric, type BillingStatus, type BulkApprovalAction, type BulkApprovalFailure, type BulkApprovalRequest, type BulkApprovalResponse, type BulkCompleteFailure, type BulkCompleteRequest, type BulkCompleteResponse, type BulkDeleteRequest, type BulkDeleteResponse, type BulkOperationRequest, type BulkOperationResponse, type BulkUploadResponse, CONTENT_LIMITS, CONTENT_LIMITS_MAP, type CancelDraftResponse, type CancelResponseResponse, type ChannelContactHistory, ChannelType, type CheckAppEnabledParams, type CheckLinkedInConnectionRequest, type CheckPriorContactRequest, type CheckPriorContactResponse, type ChunkingStrategy, type CompleteExecutionRequest, type CompleteExecutionResponse, type ConnectionAcceptedData, type ConnectionCallbackRequest, type ConnectionCallbackResponse, type ConnectionInfo, type ConnectionStatus, type ConnectionStatusResponse, type ConnectionSummary, type ContentLimit, type ContentSource, type ContentType, type ConversationDetail, ConversationStatus, type ConversationSummary, type CreateDraftRequest, type CreateFeedbackRequest, type CreateFeedbackResponse, type CreateResponseRequest, type CreateResponseResponse, type CreateThreadRequest, type CriteriaClassification, type CriteriaMetadata, type CriterionDefinition, type CriterionType, type DatabaseStatus, type DeleteApiKeyResponse, type DeleteConversationResponse, type DeleteConversationsByProjectResponse, type DisconnectRequest, type DisconnectResponse, type DraftResponse, type DraftSendOverride, DraftStatus, type DuplicateHandling, type DuplicateTemplateRequest, type Email, type EmailAction, type EmailThreadSummary, type ErrorDetail, type ErrorResponse, type ErrorResponseItem, type ExecutionDetailResponse, type ExecutionEvent, type ExecutionEventData, type ExecutionListResponse, type ExecutionMetricsOptions, type ExecutionMetricsResponse, type ExecutionStatus, type ExecutionSummary, type ExecutionSummaryExtended, type ExecutionsParams, type ExecutionsRequestItem, type ExecutionsResponseItem, ExternalAPIKeysResource, type ExternalApiKeyResponse, type FeedbackListResponse, type FeedbackObject, type FeedbackType, type FileAttachment, type FileChunk, type FileContentResponse, type FileListResponse, type FileMetadata, type FileScope, type FileScopeUpdateRequest, type FileSearchRequest, type FileSearchResponse, type FileSearchResult, type FileStatisticsResponse, type FileUploadResponse, FilesResource, type FilterLogic, type FilterValue, type GetConnectionStatusParams, type GetToolsRequest, type GetToolsResponse, type GetUserConnectionsParams, type InitiateConnectionRequest, type InitiateConnectionResponse, type InmailSubscription, IntegrationsResource, InternalServerError, LINKEDIN_LIMITS, type LifecycleOperationRequest, type LifecycleOperationResponse, type LinkedInAccountInfoResponse, type LinkedInAction, type LinkedInConnectionStatus, type LinkedInCreditsResponse, type LinkedInLimitSubscriptionType, type LinkedInLimits, type LinkedInSendRequest, type LinkedInSubscriptionInfo, LinkedInSubscriptionType, type ListApprovalsOptions, type ListExecutionsOptions, type ListProvidersResponse, type ListTemplatesOptions, LocalFileNotSupportedError, LumnisClient, type LumnisClientOptions, LumnisError, type LumnisErrorOptions, type MCPScope, type MCPServerCreateRequest, type MCPServerListResponse, type MCPServerResponse, type MCPServerUpdateRequest, MCPServersResource, type MCPToolListResponse, type MCPToolResponse, type MCPTransport, type Message, type MessageReceivedData, type MessageResponse, type MessageSentData, MessageType, MessagingAPIError, MessagingConnectionError, MessagingNotFoundError, MessagingResource, MessagingSendError, MessagingValidationError, type MetricsParams, type MetricsRequestItem, type MetricsResponseItem, type ModelAvailability, type ModelOverrides, type ModelPreferenceCreate, type ModelPreferencesBulkUpdate, ModelPreferencesResource, type ModelProvider, type ModelType, NetworkDistance, NoDataSourcesError, NotFoundError, type OnFailure, type OutcomeType, OutreachMethod, type PaginationInfo, type PaginationParams, type PendingApprovalExtended, PeopleDataSource, PeopleResource, type PeopleSearchRequest, type PeopleSearchResponse, type PersonResult, type Plan, type PriorContactMessage, type ProcessingStatus, type ProcessingStatusResponse, type ProgressEntry, ProgressTracker, type ProjectApprovalsData, type ProjectExecutionsData, type ProjectMetricsData, type ProspectConnectionCheck, type ProspectInfo, type ProspectInput, type ProspectPriorContactResult, type ProspectSyncIdentifier, type ProspectSyncResult, ProviderType, QueueItemStatus, type QuickPeopleSearchOutput, RATE_LIMIT_COOLDOWNS, type RateLimitData, RateLimitError, type RateLimitErrorOptions, type RateLimitInfo, type RateLimitStatusResponse, type RateLimitsParams, type RateLimitsRequestItem, type RateLimitsResponseItem, type RejectStepRequest, type ReplySentiment, type ResponseArtifact, type ResponseListResponse, type ResponseObject, type ResponseStatus, ResponsesResource, type SalaryRange, type Scope, type SelectedSkill, type SendMessageRequest, type SendMessageResponse, type SendReplyRequest, type SendResult, type SequenceAction, type SequenceApprovalNeededData, type SequenceChannel, type SequenceEventType, type SequenceExecutionCompletedData, type SequenceExecutionFailedData, type SequenceStepCompletedData, type SequenceTemplateCreate, type SequenceTemplateResponse, type SequenceTemplateUpdate, SequencesResource, SharePermission, type SkillAnalyticsRequest, type SkillEffectivenessMetrics, type SkillGuidelineBase, type SkillGuidelineCreate, type SkillGuidelineListResponse, type SkillGuidelineResponse, type SkillGuidelineUpdate, type SkillRetrievalMetadata, type SkillUsageBase, type SkillUsageCreate, type SkillUsageListResponse, type SkillUsageResponse, type SkillUsageUpdate, SkillsResource, type SkipStepRequest, type SkipStepResponse, type SkippedProspect, SourcesNotAvailableError, type SpecializedAgentParams, type SpecializedAgentType, type StartExecutionRequest, type StartExecutionResponse, type StepConfig, type StepExecutionStatus, type StepHistoryEntry, type StepMetric, type StoreApiKeyRequest, type StructuredResponse, type SyncJobResponse, SyncJobStatus, type SyncProspectRequest, type SyncProspectResponse, type SyncRequest, type SyncStats, type TemplateShareConfig, type TemplateShareInfo, type TemplateShareRequest, type TemplateSharesResponse, type TenantDetailsResponse, TenantInfoResource, type TenantModelPreference, type TenantModelPreferencesResponse, type TestConnectionResponse, type ThreadListResponse, type ThreadObject, type ThreadResponsesParams, ThreadsResource, type ToolInfo, type TransitionCondition, type TransitionConditionOperator, type TransitionConditionType, type TransitionConfig, type TransitionEventParams, UNIPILE_RATE_LIMIT_ERRORS, UNIPILE_SAFE_LIMITS, type UUID, type UnlinkConversationsResponse, type UpdateAppStatusParams, type UpdateAppStatusResponse, type UpdateDraftRequest, type UpdateLinkedInSubscriptionRequest, type UpdateThreadRequest, type UserConnectionsResponse, type UserCreateRequest, type UserDeleteResponse, type UserIdentifier, type UserListResponse, type UserResponse, type UserUpdateRequest, UsersResource, VALID_EVENT_TYPES, ValidationError, type ValidationIssue, type ValidationResponse, type WebhookEvent, type WebhookPayload, canSendInmail, displayProgress, formatProgressEntry, getBestSubscriptionForAction, getConnectionRequestLimit, getContentLimit, getInmailAllowance, getLimits, getMessageLimit, hasOpenProfileMessages, verifyWebhookSignature };
4433
+ export { ACTION_DELAYS, type ActionLimit, type AddAndRunCriterionRequest, type AddCriterionRequest, type AgentConfig, type ApiKeyMode, type ApiKeyModeRequest, type ApiKeyModeResponse, type ApiProvider, type AppEnabledResponse, type AppliedFilters, type ApprovalItem, type ApprovalListResponse, type ApprovalResponse, type ApprovalStatus, type ApprovalsParams, type ApprovalsRequestItem, type ApprovalsResponseItem, type ApproveStepRequest, type AppsListResponse, type ArtifactObject, type ArtifactsListResponse, AuthenticationError, type BaseResource, type BatchCheckConnectionRequest, type BatchCheckPriorContactRequest, type BatchCheckPriorContactResponse, type BatchConnectionRequest, type BatchConnectionResponse, type BatchConnectionStatus, type BatchConnectionStatusResponse, type BatchDraftCompleteData, type BatchDraftCreatedData, type BatchDraftErrorData, type BatchDraftJobProgress, type BatchDraftJobResponse, type BatchDraftJobStartedData, type BatchDraftJobStatusResponse, type BatchDraftProgressData, type BatchDraftRequest, type BatchDraftResponse, type BatchDraftStreamCallbacks, type BatchDraftStreamEvent, type BatchDraftStreamEventType, type BatchExecutionInclude, type BatchExecutionRequest, type BatchExecutionResponse, BatchJobStatus, type BatchPollRequest, type BatchPollResponse, type BatchProspectIdentifier, type BatchRequestItem, type BatchRequestType, type BatchResponseItem, type BatchSendRequest, type BatchSendResponse, type BatchStepMetric, type BillingStatus, type BulkApprovalAction, type BulkApprovalFailure, type BulkApprovalRequest, type BulkApprovalResponse, type BulkCompleteFailure, type BulkCompleteRequest, type BulkCompleteResponse, type BulkDeleteRequest, type BulkDeleteResponse, type BulkOperationRequest, type BulkOperationResponse, type BulkUploadResponse, CONTENT_LIMITS, CONTENT_LIMITS_MAP, type CancelDraftResponse, type CancelResponseResponse, type ChannelContactHistory, ChannelType, type CheckAppEnabledParams, type CheckLinkedInConnectionRequest, type CheckPriorContactRequest, type CheckPriorContactResponse, type ChunkingStrategy, type CompleteExecutionRequest, type CompleteExecutionResponse, type ConnectionAcceptedData, type ConnectionCallbackRequest, type ConnectionCallbackResponse, type ConnectionInfo, type ConnectionStatus, type ConnectionStatusResponse, type ConnectionSummary, type ContentLimit, type ContentSource, type ContentType, type ConversationDetail, ConversationStatus, type ConversationSummary, type CreateDraftRequest, type CreateFeedbackRequest, type CreateFeedbackResponse, type CreateResponseRequest, type CreateResponseResponse, type CreateThreadRequest, type CriteriaClassification, type CriteriaMetadata, type CriterionDefinition, type CriterionType, DAILY_INMAIL_LIMITS, type DatabaseStatus, type DeleteApiKeyResponse, type DeleteConversationResponse, type DeleteConversationsByProjectResponse, type DisconnectRequest, type DisconnectResponse, type DraftResponse, type DraftSendOverride, DraftStatus, type DuplicateHandling, type DuplicateTemplateRequest, type Email, type EmailAction, type EmailThreadSummary, type EngagementStatus, type EngagementStatusData, type EngagementStatusRequest, type EngagementStatusResponse, type ErrorDetail, type ErrorResponse, type ErrorResponseItem, type ExecutionDetailResponse, type ExecutionEvent, type ExecutionEventData, type ExecutionListResponse, type ExecutionMetricsOptions, type ExecutionMetricsResponse, type ExecutionStatus, type ExecutionSummary, type ExecutionSummaryExtended, type ExecutionsParams, type ExecutionsRequestItem, type ExecutionsResponseItem, ExternalAPIKeysResource, type ExternalApiKeyResponse, type FeedbackListResponse, type FeedbackObject, type FeedbackType, type FileAttachment, type FileChunk, type FileContentResponse, type FileListResponse, type FileMetadata, type FileScope, type FileScopeUpdateRequest, type FileSearchRequest, type FileSearchResponse, type FileSearchResult, type FileStatisticsResponse, type FileUploadResponse, FilesResource, type FilterLogic, type FilterValue, type GetConnectionStatusParams, type GetToolsRequest, type GetToolsResponse, type GetUserConnectionsParams, type InitiateConnectionRequest, type InitiateConnectionResponse, type InmailSubscription, IntegrationsResource, InternalServerError, LINKEDIN_LIMITS, type LifecycleOperationRequest, type LifecycleOperationResponse, type LinkedInAccountInfoResponse, type LinkedInAction, type LinkedInConnectionStatus, type LinkedInCreditsResponse, type LinkedInLimitSubscriptionType, type LinkedInLimits, type LinkedInSendRequest, type LinkedInSubscriptionInfo, LinkedInSubscriptionType, type ListApprovalsOptions, type ListExecutionsOptions, type ListProvidersResponse, type ListTemplatesOptions, LocalFileNotSupportedError, LumnisClient, type LumnisClientOptions, LumnisError, type LumnisErrorOptions, type MCPScope, type MCPServerCreateRequest, type MCPServerListResponse, type MCPServerResponse, type MCPServerUpdateRequest, MCPServersResource, type MCPToolListResponse, type MCPToolResponse, type MCPTransport, type Message, type MessageReceivedData, type MessageResponse, type MessageSentData, MessageType, MessagingAPIError, MessagingConnectionError, MessagingNotFoundError, MessagingResource, MessagingSendError, MessagingValidationError, type MetricsParams, type MetricsRequestItem, type MetricsResponseItem, type ModelAvailability, type ModelOverrides, type ModelPreferenceCreate, type ModelPreferencesBulkUpdate, ModelPreferencesResource, type ModelProvider, type ModelType, NetworkDistance, NoDataSourcesError, NotFoundError, type OnFailure, type OutcomeType, OutreachMethod, type PaginationInfo, type PaginationParams, type PendingApprovalExtended, PeopleDataSource, PeopleResource, type PeopleSearchRequest, type PeopleSearchResponse, type PersonResult, type Plan, type PriorContactMessage, type ProcessingStatus, type ProcessingStatusResponse, type ProgressEntry, ProgressTracker, type ProjectApprovalsData, type ProjectExecutionsData, type ProjectMetricsData, type ProspectConnectionCheck, type ProspectInfo, type ProspectInput, type ProspectPriorContactResult, type ProspectSyncIdentifier, type ProspectSyncResult, ProviderType, QueueItemStatus, type QuickPeopleSearchOutput, RATE_LIMIT_COOLDOWNS, type RateLimitData, RateLimitError, type RateLimitErrorOptions, type RateLimitInfo, type RateLimitStatusResponse, type RateLimitsParams, type RateLimitsRequestItem, type RateLimitsResponseItem, type RejectStepRequest, type ReplySentiment, type ResponseArtifact, type ResponseListResponse, type ResponseObject, type ResponseStatus, ResponsesResource, type SalaryRange, type Scope, type SelectedSkill, type SendMessageRequest, type SendMessageResponse, type SendReplyRequest, type SendResult, type SequenceAction, type SequenceApprovalNeededData, type SequenceChannel, type SequenceEventType, type SequenceExecutionCompletedData, type SequenceExecutionFailedData, type SequenceStepCompletedData, type SequenceTemplateCreate, type SequenceTemplateResponse, type SequenceTemplateUpdate, SequencesResource, SharePermission, type SkillAnalyticsRequest, type SkillEffectivenessMetrics, type SkillGuidelineBase, type SkillGuidelineCreate, type SkillGuidelineListResponse, type SkillGuidelineResponse, type SkillGuidelineUpdate, type SkillRetrievalMetadata, type SkillUsageBase, type SkillUsageCreate, type SkillUsageListResponse, type SkillUsageResponse, type SkillUsageUpdate, SkillsResource, type SkipStepRequest, type SkipStepResponse, type SkippedProspect, SourcesNotAvailableError, type SpecializedAgentParams, type SpecializedAgentType, type StartExecutionRequest, type StartExecutionResponse, type StepConfig, type StepExecutionStatus, type StepHistoryEntry, type StepMetric, type StoreApiKeyRequest, type StructuredResponse, type SyncJobResponse, SyncJobStatus, type SyncProspectRequest, type SyncProspectResponse, type SyncRequest, type SyncStats, type TemplateShareConfig, type TemplateShareInfo, type TemplateShareRequest, type TemplateSharesResponse, type TenantDetailsResponse, TenantInfoResource, type TenantModelPreference, type TenantModelPreferencesResponse, type TestConnectionResponse, type ThreadListResponse, type ThreadObject, type ThreadResponsesParams, ThreadsResource, type ToolInfo, type TransitionCondition, type TransitionConditionOperator, type TransitionConditionType, type TransitionConfig, type TransitionEventParams, UNIPILE_RATE_LIMIT_ERRORS, UNIPILE_SAFE_LIMITS, type UUID, type UnlinkConversationsResponse, type UpdateAppStatusParams, type UpdateAppStatusResponse, type UpdateDraftRequest, type UpdateLinkedInSubscriptionRequest, type UpdateThreadRequest, type UserConnectionsResponse, type UserCreateRequest, type UserDeleteResponse, type UserIdentifier, type UserListResponse, type UserResponse, type UserUpdateRequest, UsersResource, VALID_EVENT_TYPES, ValidationError, type ValidationIssue, type ValidationResponse, type WebhookEvent, type WebhookPayload, canSendInmail, displayProgress, formatProgressEntry, getBestSubscriptionForAction, getConnectionRequestLimit, getContentLimit, getDailyInmailLimit, getInmailAllowance, getLimits, getMessageLimit, hasOpenProfileMessages, isRecruiterSubscription, verifyWebhookSignature };
package/dist/index.mjs CHANGED
@@ -218,6 +218,22 @@ const ACTION_DELAYS = {
218
218
  betweenProfileViews: 5,
219
219
  afterError: 60
220
220
  };
221
+ const DAILY_INMAIL_LIMITS = {
222
+ basic: 0,
223
+ // No InMail capability
224
+ premium: 5,
225
+ // 5 credits/month - can send all in one day if desired
226
+ premium_career: 5,
227
+ // Same as premium
228
+ premium_business: 15,
229
+ // 15 credits/month
230
+ sales_navigator: 50,
231
+ // 50 credits/month
232
+ recruiter_lite: 100,
233
+ // 30 InMails + up to 100 Open Profile/month
234
+ recruiter_corporate: 1e3
235
+ // LinkedIn official: 1,000/day per seat
236
+ };
221
237
  function getLimits(subscriptionType) {
222
238
  const type = subscriptionType || "basic";
223
239
  return LINKEDIN_LIMITS[type] || LINKEDIN_LIMITS.basic;
@@ -262,6 +278,13 @@ function getBestSubscriptionForAction(subscriptionTypes, action) {
262
278
  }
263
279
  return subscriptionTypes[0];
264
280
  }
281
+ function getDailyInmailLimit(subscriptionType) {
282
+ const type = subscriptionType || "basic";
283
+ return DAILY_INMAIL_LIMITS[type] ?? DAILY_INMAIL_LIMITS.basic;
284
+ }
285
+ function isRecruiterSubscription(subscriptionType) {
286
+ return subscriptionType === "recruiter_lite" || subscriptionType === "recruiter_corporate";
287
+ }
265
288
 
266
289
  const CONTENT_LIMITS = [
267
290
  { channel: "linkedin", action: "connection_request", maxCharacters: 300 },
@@ -2585,6 +2608,47 @@ class SequencesResource {
2585
2608
  `/sequences/executions/${encodeURIComponent(executionId)}`
2586
2609
  );
2587
2610
  }
2611
+ /**
2612
+ * Fetch execution histories for multiple executions in a single request.
2613
+ *
2614
+ * Returns full execution details including step history and events for up to 100
2615
+ * execution IDs. Missing or unauthorized executions are returned as null with
2616
+ * an error message.
2617
+ *
2618
+ * @param request - The batch request with execution IDs and include options
2619
+ */
2620
+ async batchGetExecutions(request) {
2621
+ return this.http.post(
2622
+ "/sequences/executions/batch",
2623
+ request
2624
+ );
2625
+ }
2626
+ /**
2627
+ * Derive engagement status for multiple executions in a single request.
2628
+ *
2629
+ * This is a lightweight endpoint that computes engagement status server-side
2630
+ * without returning full execution histories. Ideal for filtering and UI display.
2631
+ *
2632
+ * Engagement statuses:
2633
+ * - connection_pending: Connection request sent, awaiting acceptance
2634
+ * - connection_accepted: They accepted the connection
2635
+ * - message_sent: Follow-up message delivered
2636
+ * - awaiting_reply: Waiting for their response
2637
+ * - replied: They replied (no sentiment)
2638
+ * - replied_positive/negative/neutral: Reply with sentiment
2639
+ * - no_response: No response after 7+ days
2640
+ * - sequence_active: Still running
2641
+ * - sequence_failed: Error occurred
2642
+ * - unknown: Unable to determine status
2643
+ *
2644
+ * @param request - The request with up to 500 execution IDs
2645
+ */
2646
+ async getEngagementStatus(request) {
2647
+ return this.http.post(
2648
+ "/sequences/executions/engagement-status",
2649
+ request
2650
+ );
2651
+ }
2588
2652
  // ==================== Lifecycle ====================
2589
2653
  /**
2590
2654
  * Pause a single execution.
@@ -3724,4 +3788,4 @@ function verifyWebhookSignature(payload, signature, secret) {
3724
3788
  );
3725
3789
  }
3726
3790
 
3727
- export { ACTION_DELAYS, AuthenticationError, BatchJobStatus, CONTENT_LIMITS, CONTENT_LIMITS_MAP, ChannelType, ConversationStatus, DraftStatus, InternalServerError, LINKEDIN_LIMITS, LinkedInSubscriptionType, LocalFileNotSupportedError, LumnisClient, LumnisError, MessageType, MessagingAPIError, MessagingConnectionError, MessagingNotFoundError, MessagingSendError, MessagingValidationError, NetworkDistance, NoDataSourcesError, NotFoundError, OutreachMethod, PeopleDataSource, ProgressTracker, ProviderType, QueueItemStatus, RATE_LIMIT_COOLDOWNS, RateLimitError, SharePermission, SourcesNotAvailableError, SyncJobStatus, UNIPILE_RATE_LIMIT_ERRORS, UNIPILE_SAFE_LIMITS, VALID_EVENT_TYPES, ValidationError, canSendInmail, displayProgress, formatProgressEntry, getBestSubscriptionForAction, getConnectionRequestLimit, getContentLimit, getInmailAllowance, getLimits, getMessageLimit, hasOpenProfileMessages, verifyWebhookSignature };
3791
+ export { ACTION_DELAYS, AuthenticationError, BatchJobStatus, CONTENT_LIMITS, CONTENT_LIMITS_MAP, ChannelType, ConversationStatus, DAILY_INMAIL_LIMITS, DraftStatus, InternalServerError, LINKEDIN_LIMITS, LinkedInSubscriptionType, LocalFileNotSupportedError, LumnisClient, LumnisError, MessageType, MessagingAPIError, MessagingConnectionError, MessagingNotFoundError, MessagingSendError, MessagingValidationError, NetworkDistance, NoDataSourcesError, NotFoundError, OutreachMethod, PeopleDataSource, ProgressTracker, ProviderType, QueueItemStatus, RATE_LIMIT_COOLDOWNS, RateLimitError, SharePermission, SourcesNotAvailableError, SyncJobStatus, UNIPILE_RATE_LIMIT_ERRORS, UNIPILE_SAFE_LIMITS, VALID_EVENT_TYPES, ValidationError, canSendInmail, displayProgress, formatProgressEntry, getBestSubscriptionForAction, getConnectionRequestLimit, getContentLimit, getDailyInmailLimit, getInmailAllowance, getLimits, getMessageLimit, hasOpenProfileMessages, isRecruiterSubscription, verifyWebhookSignature };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "lumnisai",
3
3
  "type": "module",
4
- "version": "0.2.15",
4
+ "version": "0.2.17",
5
5
  "description": "Official Node.js SDK for the Lumnis AI API",
6
6
  "author": "Lumnis AI",
7
7
  "license": "MIT",