@getlatedev/node 0.1.24 → 0.1.25

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.
@@ -1,7 +1,7 @@
1
1
  // This file is auto-generated by @hey-api/openapi-ts
2
2
 
3
3
  import { createClient, createConfig, type OptionsLegacyParser, formDataBodySerializer } from '@hey-api/client-fetch';
4
- import type { DownloadYouTubeVideoData, DownloadYouTubeVideoError, DownloadYouTubeVideoResponse, GetYouTubeTranscriptData, GetYouTubeTranscriptError, GetYouTubeTranscriptResponse, DownloadInstagramMediaData, DownloadInstagramMediaError, DownloadInstagramMediaResponse, CheckInstagramHashtagsData, CheckInstagramHashtagsError, CheckInstagramHashtagsResponse, DownloadTikTokVideoData, DownloadTikTokVideoError, DownloadTikTokVideoResponse, DownloadTwitterMediaData, DownloadTwitterMediaError, DownloadTwitterMediaResponse, DownloadFacebookVideoData, DownloadFacebookVideoError, DownloadFacebookVideoResponse, DownloadLinkedInVideoData, DownloadLinkedInVideoError, DownloadLinkedInVideoResponse, DownloadBlueskyMediaData, DownloadBlueskyMediaError, DownloadBlueskyMediaResponse, GetAnalyticsData, GetAnalyticsError, GetAnalyticsResponse, GetYouTubeDailyViewsData, GetYouTubeDailyViewsError, GetYouTubeDailyViewsResponse, ListAccountGroupsError, ListAccountGroupsResponse, CreateAccountGroupData, CreateAccountGroupError, CreateAccountGroupResponse, UpdateAccountGroupData, UpdateAccountGroupError, UpdateAccountGroupResponse, DeleteAccountGroupData, DeleteAccountGroupError, DeleteAccountGroupResponse, GetMediaPresignedUrlData, GetMediaPresignedUrlError, GetMediaPresignedUrlResponse, SearchRedditData, SearchRedditError, SearchRedditResponse, GetRedditFeedData, GetRedditFeedError, GetRedditFeedResponse, GetUsageStatsError, GetUsageStatsResponse, ListPostsData, ListPostsError, ListPostsResponse, CreatePostData, CreatePostError, CreatePostResponse, GetPostData, GetPostError, GetPostResponse, UpdatePostData, UpdatePostError, UpdatePostResponse, DeletePostData, DeletePostError, DeletePostResponse, BulkUploadPostsData, BulkUploadPostsError, BulkUploadPostsResponse, RetryPostData, RetryPostError, RetryPostResponse, UnpublishPostData, UnpublishPostError, UnpublishPostResponse, ListUsersError, ListUsersResponse, GetUserData, GetUserError, GetUserResponse, ListProfilesData, ListProfilesError, ListProfilesResponse, CreateProfileData, CreateProfileError, CreateProfileResponse, GetProfileData, GetProfileError, GetProfileResponse, UpdateProfileData, UpdateProfileError, UpdateProfileResponse, DeleteProfileData, DeleteProfileError, DeleteProfileResponse, ListAccountsData, ListAccountsError, ListAccountsResponse, GetFollowerStatsData, GetFollowerStatsError, GetFollowerStatsResponse, UpdateAccountData, UpdateAccountError, UpdateAccountResponse, DeleteAccountData, DeleteAccountError, DeleteAccountResponse, GetAllAccountsHealthData, GetAllAccountsHealthError, GetAllAccountsHealthResponse, GetAccountHealthData, GetAccountHealthError, GetAccountHealthResponse, ListApiKeysError, ListApiKeysResponse, CreateApiKeyData, CreateApiKeyError, CreateApiKeyResponse, DeleteApiKeyData, DeleteApiKeyError, DeleteApiKeyResponse, CreateInviteTokenData, CreateInviteTokenError, CreateInviteTokenResponse, GetConnectUrlData, GetConnectUrlError, GetConnectUrlResponse, HandleOAuthCallbackData, HandleOAuthCallbackError, HandleOAuthCallbackResponse, ListFacebookPagesData, ListFacebookPagesError, ListFacebookPagesResponse, SelectFacebookPageData, SelectFacebookPageError, SelectFacebookPageResponse, ListGoogleBusinessLocationsData, ListGoogleBusinessLocationsError, ListGoogleBusinessLocationsResponse, SelectGoogleBusinessLocationData, SelectGoogleBusinessLocationError, SelectGoogleBusinessLocationResponse, GetGoogleBusinessReviewsData, GetGoogleBusinessReviewsError, GetGoogleBusinessReviewsResponse, GetGoogleBusinessFoodMenusData, GetGoogleBusinessFoodMenusError, GetGoogleBusinessFoodMenusResponse, UpdateGoogleBusinessFoodMenusData, UpdateGoogleBusinessFoodMenusError, UpdateGoogleBusinessFoodMenusResponse, GetGoogleBusinessLocationDetailsData, GetGoogleBusinessLocationDetailsError, GetGoogleBusinessLocationDetailsResponse, UpdateGoogleBusinessLocationDetailsData, UpdateGoogleBusinessLocationDetailsError, UpdateGoogleBusinessLocationDetailsResponse, ListGoogleBusinessMediaData, ListGoogleBusinessMediaError, ListGoogleBusinessMediaResponse, CreateGoogleBusinessMediaData, CreateGoogleBusinessMediaError, CreateGoogleBusinessMediaResponse, DeleteGoogleBusinessMediaData, DeleteGoogleBusinessMediaError, DeleteGoogleBusinessMediaResponse, GetGoogleBusinessAttributesData, GetGoogleBusinessAttributesError, GetGoogleBusinessAttributesResponse, UpdateGoogleBusinessAttributesData, UpdateGoogleBusinessAttributesError, UpdateGoogleBusinessAttributesResponse, ListGoogleBusinessPlaceActionsData, ListGoogleBusinessPlaceActionsError, ListGoogleBusinessPlaceActionsResponse, CreateGoogleBusinessPlaceActionData, CreateGoogleBusinessPlaceActionError, CreateGoogleBusinessPlaceActionResponse, DeleteGoogleBusinessPlaceActionData, DeleteGoogleBusinessPlaceActionError, DeleteGoogleBusinessPlaceActionResponse, GetPendingOAuthDataData, GetPendingOAuthDataError, GetPendingOAuthDataResponse, ListLinkedInOrganizationsData, ListLinkedInOrganizationsError, ListLinkedInOrganizationsResponse, SelectLinkedInOrganizationData, SelectLinkedInOrganizationError, SelectLinkedInOrganizationResponse, ListPinterestBoardsForSelectionData, ListPinterestBoardsForSelectionError, ListPinterestBoardsForSelectionResponse, SelectPinterestBoardData, SelectPinterestBoardError, SelectPinterestBoardResponse, ListSnapchatProfilesData, ListSnapchatProfilesError, ListSnapchatProfilesResponse, SelectSnapchatProfileData, SelectSnapchatProfileError, SelectSnapchatProfileResponse, ConnectBlueskyCredentialsData, ConnectBlueskyCredentialsError, ConnectBlueskyCredentialsResponse, GetTelegramConnectStatusData, GetTelegramConnectStatusError, GetTelegramConnectStatusResponse, InitiateTelegramConnectData, InitiateTelegramConnectError, InitiateTelegramConnectResponse, CompleteTelegramConnectData, CompleteTelegramConnectError, CompleteTelegramConnectResponse, GetFacebookPagesData, GetFacebookPagesError, GetFacebookPagesResponse, UpdateFacebookPageData, UpdateFacebookPageError, UpdateFacebookPageResponse, GetLinkedInOrganizationsData, GetLinkedInOrganizationsError, GetLinkedInOrganizationsResponse, GetLinkedInAggregateAnalyticsData, GetLinkedInAggregateAnalyticsError, GetLinkedInAggregateAnalyticsResponse, GetLinkedInPostAnalyticsData, GetLinkedInPostAnalyticsError, GetLinkedInPostAnalyticsResponse, UpdateLinkedInOrganizationData, UpdateLinkedInOrganizationError, UpdateLinkedInOrganizationResponse, GetLinkedInMentionsData, GetLinkedInMentionsError, GetLinkedInMentionsResponse, GetPinterestBoardsData, GetPinterestBoardsError, GetPinterestBoardsResponse, UpdatePinterestBoardsData, UpdatePinterestBoardsError, UpdatePinterestBoardsResponse, GetGmbLocationsData, GetGmbLocationsError, GetGmbLocationsResponse, UpdateGmbLocationData, UpdateGmbLocationError, UpdateGmbLocationResponse, GetRedditSubredditsData, GetRedditSubredditsError, GetRedditSubredditsResponse, UpdateRedditSubredditsData, UpdateRedditSubredditsError, UpdateRedditSubredditsResponse, GetRedditFlairsData, GetRedditFlairsError, GetRedditFlairsResponse, ListQueueSlotsData, ListQueueSlotsError, ListQueueSlotsResponse, CreateQueueSlotData, CreateQueueSlotError, CreateQueueSlotResponse, UpdateQueueSlotData, UpdateQueueSlotError, UpdateQueueSlotResponse, DeleteQueueSlotData, DeleteQueueSlotError, DeleteQueueSlotResponse, PreviewQueueData, PreviewQueueError, PreviewQueueResponse, GetNextQueueSlotData, GetNextQueueSlotError, GetNextQueueSlotResponse, GetWebhookSettingsError, GetWebhookSettingsResponse, CreateWebhookSettingsData, CreateWebhookSettingsError, CreateWebhookSettingsResponse, UpdateWebhookSettingsData, UpdateWebhookSettingsError, UpdateWebhookSettingsResponse, DeleteWebhookSettingsData, DeleteWebhookSettingsError, DeleteWebhookSettingsResponse, TestWebhookData, TestWebhookError, TestWebhookResponse, GetWebhookLogsData, GetWebhookLogsError, GetWebhookLogsResponse, ListLogsData, ListLogsError, ListLogsResponse, GetLogData, GetLogError, GetLogResponse, ListPostsLogsData, ListPostsLogsError, ListPostsLogsResponse, ListConnectionLogsData, ListConnectionLogsError, ListConnectionLogsResponse, GetPostLogsData, GetPostLogsError, GetPostLogsResponse, ListInboxConversationsData, ListInboxConversationsError, ListInboxConversationsResponse, GetInboxConversationData, GetInboxConversationError, GetInboxConversationResponse, UpdateInboxConversationData, UpdateInboxConversationError, UpdateInboxConversationResponse, GetInboxConversationMessagesData, GetInboxConversationMessagesError, GetInboxConversationMessagesResponse, SendInboxMessageData, SendInboxMessageError, SendInboxMessageResponse, EditInboxMessageData, EditInboxMessageError, EditInboxMessageResponse, GetMessengerMenuData, GetMessengerMenuError, GetMessengerMenuResponse, SetMessengerMenuData, SetMessengerMenuError, SetMessengerMenuResponse, DeleteMessengerMenuData, DeleteMessengerMenuError, DeleteMessengerMenuResponse, GetInstagramIceBreakersData, GetInstagramIceBreakersError, GetInstagramIceBreakersResponse, SetInstagramIceBreakersData, SetInstagramIceBreakersError, SetInstagramIceBreakersResponse, DeleteInstagramIceBreakersData, DeleteInstagramIceBreakersError, DeleteInstagramIceBreakersResponse, GetTelegramCommandsData, GetTelegramCommandsError, GetTelegramCommandsResponse, SetTelegramCommandsData, SetTelegramCommandsError, SetTelegramCommandsResponse, DeleteTelegramCommandsData, DeleteTelegramCommandsError, DeleteTelegramCommandsResponse, ListInboxCommentsData, ListInboxCommentsError, ListInboxCommentsResponse, GetInboxPostCommentsData, GetInboxPostCommentsError, GetInboxPostCommentsResponse, ReplyToInboxPostData, ReplyToInboxPostError, ReplyToInboxPostResponse, DeleteInboxCommentData, DeleteInboxCommentError, DeleteInboxCommentResponse, HideInboxCommentData, HideInboxCommentError, HideInboxCommentResponse, UnhideInboxCommentData, UnhideInboxCommentError, UnhideInboxCommentResponse, LikeInboxCommentData, LikeInboxCommentError, LikeInboxCommentResponse, UnlikeInboxCommentData, UnlikeInboxCommentError, UnlikeInboxCommentResponse, SendPrivateReplyToCommentData, SendPrivateReplyToCommentError, SendPrivateReplyToCommentResponse, ListInboxReviewsData, ListInboxReviewsError, ListInboxReviewsResponse, ReplyToInboxReviewData, ReplyToInboxReviewError, ReplyToInboxReviewResponse, DeleteInboxReviewReplyData, DeleteInboxReviewReplyError, DeleteInboxReviewReplyResponse } from './types.gen';
4
+ import type { DownloadYouTubeVideoData, DownloadYouTubeVideoError, DownloadYouTubeVideoResponse, GetYouTubeTranscriptData, GetYouTubeTranscriptError, GetYouTubeTranscriptResponse, DownloadInstagramMediaData, DownloadInstagramMediaError, DownloadInstagramMediaResponse, CheckInstagramHashtagsData, CheckInstagramHashtagsError, CheckInstagramHashtagsResponse, DownloadTikTokVideoData, DownloadTikTokVideoError, DownloadTikTokVideoResponse, DownloadTwitterMediaData, DownloadTwitterMediaError, DownloadTwitterMediaResponse, DownloadFacebookVideoData, DownloadFacebookVideoError, DownloadFacebookVideoResponse, DownloadLinkedInVideoData, DownloadLinkedInVideoError, DownloadLinkedInVideoResponse, DownloadBlueskyMediaData, DownloadBlueskyMediaError, DownloadBlueskyMediaResponse, GetAnalyticsData, GetAnalyticsError, GetAnalyticsResponse, GetYouTubeDailyViewsData, GetYouTubeDailyViewsError, GetYouTubeDailyViewsResponse, ListAccountGroupsError, ListAccountGroupsResponse, CreateAccountGroupData, CreateAccountGroupError, CreateAccountGroupResponse, UpdateAccountGroupData, UpdateAccountGroupError, UpdateAccountGroupResponse, DeleteAccountGroupData, DeleteAccountGroupError, DeleteAccountGroupResponse, GetMediaPresignedUrlData, GetMediaPresignedUrlError, GetMediaPresignedUrlResponse, SearchRedditData, SearchRedditError, SearchRedditResponse, GetRedditFeedData, GetRedditFeedError, GetRedditFeedResponse, GetUsageStatsError, GetUsageStatsResponse, ListPostsData, ListPostsError, ListPostsResponse, CreatePostData, CreatePostError, CreatePostResponse, GetPostData, GetPostError, GetPostResponse, UpdatePostData, UpdatePostError, UpdatePostResponse, DeletePostData, DeletePostError, DeletePostResponse, BulkUploadPostsData, BulkUploadPostsError, BulkUploadPostsResponse, RetryPostData, RetryPostError, RetryPostResponse, UnpublishPostData, UnpublishPostError, UnpublishPostResponse, ListUsersError, ListUsersResponse, GetUserData, GetUserError, GetUserResponse, ListProfilesData, ListProfilesError, ListProfilesResponse, CreateProfileData, CreateProfileError, CreateProfileResponse, GetProfileData, GetProfileError, GetProfileResponse, UpdateProfileData, UpdateProfileError, UpdateProfileResponse, DeleteProfileData, DeleteProfileError, DeleteProfileResponse, ListAccountsData, ListAccountsError, ListAccountsResponse, GetFollowerStatsData, GetFollowerStatsError, GetFollowerStatsResponse, UpdateAccountData, UpdateAccountError, UpdateAccountResponse, DeleteAccountData, DeleteAccountError, DeleteAccountResponse, GetAllAccountsHealthData, GetAllAccountsHealthError, GetAllAccountsHealthResponse, GetAccountHealthData, GetAccountHealthError, GetAccountHealthResponse, ListApiKeysError, ListApiKeysResponse, CreateApiKeyData, CreateApiKeyError, CreateApiKeyResponse, DeleteApiKeyData, DeleteApiKeyError, DeleteApiKeyResponse, CreateInviteTokenData, CreateInviteTokenError, CreateInviteTokenResponse, GetConnectUrlData, GetConnectUrlError, GetConnectUrlResponse, HandleOAuthCallbackData, HandleOAuthCallbackError, HandleOAuthCallbackResponse, ListFacebookPagesData, ListFacebookPagesError, ListFacebookPagesResponse, SelectFacebookPageData, SelectFacebookPageError, SelectFacebookPageResponse, ListGoogleBusinessLocationsData, ListGoogleBusinessLocationsError, ListGoogleBusinessLocationsResponse, SelectGoogleBusinessLocationData, SelectGoogleBusinessLocationError, SelectGoogleBusinessLocationResponse, GetGoogleBusinessReviewsData, GetGoogleBusinessReviewsError, GetGoogleBusinessReviewsResponse, GetGoogleBusinessFoodMenusData, GetGoogleBusinessFoodMenusError, GetGoogleBusinessFoodMenusResponse, UpdateGoogleBusinessFoodMenusData, UpdateGoogleBusinessFoodMenusError, UpdateGoogleBusinessFoodMenusResponse, GetGoogleBusinessLocationDetailsData, GetGoogleBusinessLocationDetailsError, GetGoogleBusinessLocationDetailsResponse, UpdateGoogleBusinessLocationDetailsData, UpdateGoogleBusinessLocationDetailsError, UpdateGoogleBusinessLocationDetailsResponse, ListGoogleBusinessMediaData, ListGoogleBusinessMediaError, ListGoogleBusinessMediaResponse, CreateGoogleBusinessMediaData, CreateGoogleBusinessMediaError, CreateGoogleBusinessMediaResponse, DeleteGoogleBusinessMediaData, DeleteGoogleBusinessMediaError, DeleteGoogleBusinessMediaResponse, GetGoogleBusinessAttributesData, GetGoogleBusinessAttributesError, GetGoogleBusinessAttributesResponse, UpdateGoogleBusinessAttributesData, UpdateGoogleBusinessAttributesError, UpdateGoogleBusinessAttributesResponse, ListGoogleBusinessPlaceActionsData, ListGoogleBusinessPlaceActionsError, ListGoogleBusinessPlaceActionsResponse, CreateGoogleBusinessPlaceActionData, CreateGoogleBusinessPlaceActionError, CreateGoogleBusinessPlaceActionResponse, DeleteGoogleBusinessPlaceActionData, DeleteGoogleBusinessPlaceActionError, DeleteGoogleBusinessPlaceActionResponse, GetPendingOAuthDataData, GetPendingOAuthDataError, GetPendingOAuthDataResponse, ListLinkedInOrganizationsData, ListLinkedInOrganizationsError, ListLinkedInOrganizationsResponse, SelectLinkedInOrganizationData, SelectLinkedInOrganizationError, SelectLinkedInOrganizationResponse, ListPinterestBoardsForSelectionData, ListPinterestBoardsForSelectionError, ListPinterestBoardsForSelectionResponse, SelectPinterestBoardData, SelectPinterestBoardError, SelectPinterestBoardResponse, ListSnapchatProfilesData, ListSnapchatProfilesError, ListSnapchatProfilesResponse, SelectSnapchatProfileData, SelectSnapchatProfileError, SelectSnapchatProfileResponse, ConnectBlueskyCredentialsData, ConnectBlueskyCredentialsError, ConnectBlueskyCredentialsResponse, GetTelegramConnectStatusData, GetTelegramConnectStatusError, GetTelegramConnectStatusResponse, InitiateTelegramConnectData, InitiateTelegramConnectError, InitiateTelegramConnectResponse, CompleteTelegramConnectData, CompleteTelegramConnectError, CompleteTelegramConnectResponse, GetFacebookPagesData, GetFacebookPagesError, GetFacebookPagesResponse, UpdateFacebookPageData, UpdateFacebookPageError, UpdateFacebookPageResponse, GetLinkedInOrganizationsData, GetLinkedInOrganizationsError, GetLinkedInOrganizationsResponse, GetLinkedInAggregateAnalyticsData, GetLinkedInAggregateAnalyticsError, GetLinkedInAggregateAnalyticsResponse, GetLinkedInPostAnalyticsData, GetLinkedInPostAnalyticsError, GetLinkedInPostAnalyticsResponse, UpdateLinkedInOrganizationData, UpdateLinkedInOrganizationError, UpdateLinkedInOrganizationResponse, GetLinkedInMentionsData, GetLinkedInMentionsError, GetLinkedInMentionsResponse, GetPinterestBoardsData, GetPinterestBoardsError, GetPinterestBoardsResponse, UpdatePinterestBoardsData, UpdatePinterestBoardsError, UpdatePinterestBoardsResponse, GetGmbLocationsData, GetGmbLocationsError, GetGmbLocationsResponse, UpdateGmbLocationData, UpdateGmbLocationError, UpdateGmbLocationResponse, GetRedditSubredditsData, GetRedditSubredditsError, GetRedditSubredditsResponse, UpdateRedditSubredditsData, UpdateRedditSubredditsError, UpdateRedditSubredditsResponse, GetRedditFlairsData, GetRedditFlairsError, GetRedditFlairsResponse, ListQueueSlotsData, ListQueueSlotsError, ListQueueSlotsResponse, CreateQueueSlotData, CreateQueueSlotError, CreateQueueSlotResponse, UpdateQueueSlotData, UpdateQueueSlotError, UpdateQueueSlotResponse, DeleteQueueSlotData, DeleteQueueSlotError, DeleteQueueSlotResponse, PreviewQueueData, PreviewQueueError, PreviewQueueResponse, GetNextQueueSlotData, GetNextQueueSlotError, GetNextQueueSlotResponse, GetWebhookSettingsError, GetWebhookSettingsResponse, CreateWebhookSettingsData, CreateWebhookSettingsError, CreateWebhookSettingsResponse, UpdateWebhookSettingsData, UpdateWebhookSettingsError, UpdateWebhookSettingsResponse, DeleteWebhookSettingsData, DeleteWebhookSettingsError, DeleteWebhookSettingsResponse, TestWebhookData, TestWebhookError, TestWebhookResponse, GetWebhookLogsData, GetWebhookLogsError, GetWebhookLogsResponse, ListPostsLogsData, ListPostsLogsError, ListPostsLogsResponse, ListConnectionLogsData, ListConnectionLogsError, ListConnectionLogsResponse, GetPostLogsData, GetPostLogsError, GetPostLogsResponse, ListInboxConversationsData, ListInboxConversationsError, ListInboxConversationsResponse, GetInboxConversationData, GetInboxConversationError, GetInboxConversationResponse, UpdateInboxConversationData, UpdateInboxConversationError, UpdateInboxConversationResponse, GetInboxConversationMessagesData, GetInboxConversationMessagesError, GetInboxConversationMessagesResponse, SendInboxMessageData, SendInboxMessageError, SendInboxMessageResponse, EditInboxMessageData, EditInboxMessageError, EditInboxMessageResponse, GetMessengerMenuData, GetMessengerMenuError, GetMessengerMenuResponse, SetMessengerMenuData, SetMessengerMenuError, SetMessengerMenuResponse, DeleteMessengerMenuData, DeleteMessengerMenuError, DeleteMessengerMenuResponse, GetInstagramIceBreakersData, GetInstagramIceBreakersError, GetInstagramIceBreakersResponse, SetInstagramIceBreakersData, SetInstagramIceBreakersError, SetInstagramIceBreakersResponse, DeleteInstagramIceBreakersData, DeleteInstagramIceBreakersError, DeleteInstagramIceBreakersResponse, GetTelegramCommandsData, GetTelegramCommandsError, GetTelegramCommandsResponse, SetTelegramCommandsData, SetTelegramCommandsError, SetTelegramCommandsResponse, DeleteTelegramCommandsData, DeleteTelegramCommandsError, DeleteTelegramCommandsResponse, ListInboxCommentsData, ListInboxCommentsError, ListInboxCommentsResponse, GetInboxPostCommentsData, GetInboxPostCommentsError, GetInboxPostCommentsResponse, ReplyToInboxPostData, ReplyToInboxPostError, ReplyToInboxPostResponse, DeleteInboxCommentData, DeleteInboxCommentError, DeleteInboxCommentResponse, HideInboxCommentData, HideInboxCommentError, HideInboxCommentResponse, UnhideInboxCommentData, UnhideInboxCommentError, UnhideInboxCommentResponse, LikeInboxCommentData, LikeInboxCommentError, LikeInboxCommentResponse, UnlikeInboxCommentData, UnlikeInboxCommentError, UnlikeInboxCommentResponse, SendPrivateReplyToCommentData, SendPrivateReplyToCommentError, SendPrivateReplyToCommentResponse, ListInboxReviewsData, ListInboxReviewsError, ListInboxReviewsResponse, ReplyToInboxReviewData, ReplyToInboxReviewError, ReplyToInboxReviewResponse, DeleteInboxReviewReplyData, DeleteInboxReviewReplyError, DeleteInboxReviewReplyResponse } from './types.gen';
5
5
 
6
6
  export const client = createClient(createConfig());
7
7
 
@@ -9,7 +9,7 @@ export const client = createClient(createConfig());
9
9
  * Download YouTube video
10
10
  * Download YouTube videos or audio. Returns available formats or direct download URL.
11
11
  *
12
- * **Rate Limits:** Build (50/day), Accelerate (500/day), Unlimited (unlimited)
12
+ * Rate limits: Build (50/day), Accelerate (500/day), Unlimited (unlimited).
13
13
  *
14
14
  */
15
15
  export const downloadYouTubeVideo = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<DownloadYouTubeVideoData, ThrowOnError>) => {
@@ -23,7 +23,7 @@ export const downloadYouTubeVideo = <ThrowOnError extends boolean = false>(optio
23
23
  * Get YouTube transcript
24
24
  * Extract transcript/captions from a YouTube video.
25
25
  *
26
- * **Rate Limits:** Build (50/day), Accelerate (500/day), Unlimited (unlimited)
26
+ * Rate limits: Build (50/day), Accelerate (500/day), Unlimited (unlimited).
27
27
  *
28
28
  */
29
29
  export const getYouTubeTranscript = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<GetYouTubeTranscriptData, ThrowOnError>) => {
@@ -37,7 +37,7 @@ export const getYouTubeTranscript = <ThrowOnError extends boolean = false>(optio
37
37
  * Download Instagram media
38
38
  * Download Instagram reels, posts, or photos.
39
39
  *
40
- * **Rate Limits:** Build (50/day), Accelerate (500/day), Unlimited (unlimited)
40
+ * Rate limits: Build (50/day), Accelerate (500/day), Unlimited (unlimited).
41
41
  *
42
42
  */
43
43
  export const downloadInstagramMedia = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<DownloadInstagramMediaData, ThrowOnError>) => {
@@ -48,10 +48,10 @@ export const downloadInstagramMedia = <ThrowOnError extends boolean = false>(opt
48
48
  };
49
49
 
50
50
  /**
51
- * Check Instagram hashtag bans
51
+ * Check IG hashtag bans
52
52
  * Check if Instagram hashtags are banned, restricted, or safe to use.
53
53
  *
54
- * **Rate Limits:** Build (50/day), Accelerate (500/day), Unlimited (unlimited)
54
+ * Rate limits: Build (50/day), Accelerate (500/day), Unlimited (unlimited).
55
55
  *
56
56
  */
57
57
  export const checkInstagramHashtags = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<CheckInstagramHashtagsData, ThrowOnError>) => {
@@ -65,7 +65,7 @@ export const checkInstagramHashtags = <ThrowOnError extends boolean = false>(opt
65
65
  * Download TikTok video
66
66
  * Download TikTok videos with or without watermark.
67
67
  *
68
- * **Rate Limits:** Build (50/day), Accelerate (500/day), Unlimited (unlimited)
68
+ * Rate limits: Build (50/day), Accelerate (500/day), Unlimited (unlimited).
69
69
  *
70
70
  */
71
71
  export const downloadTikTokVideo = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<DownloadTikTokVideoData, ThrowOnError>) => {
@@ -79,7 +79,7 @@ export const downloadTikTokVideo = <ThrowOnError extends boolean = false>(option
79
79
  * Download Twitter/X media
80
80
  * Download videos from Twitter/X posts.
81
81
  *
82
- * **Rate Limits:** Build (50/day), Accelerate (500/day), Unlimited (unlimited)
82
+ * Rate limits: Build (50/day), Accelerate (500/day), Unlimited (unlimited).
83
83
  *
84
84
  */
85
85
  export const downloadTwitterMedia = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<DownloadTwitterMediaData, ThrowOnError>) => {
@@ -93,7 +93,7 @@ export const downloadTwitterMedia = <ThrowOnError extends boolean = false>(optio
93
93
  * Download Facebook video
94
94
  * Download videos and reels from Facebook.
95
95
  *
96
- * **Rate Limits:** Build (50/day), Accelerate (500/day), Unlimited (unlimited)
96
+ * Rate limits: Build (50/day), Accelerate (500/day), Unlimited (unlimited).
97
97
  *
98
98
  */
99
99
  export const downloadFacebookVideo = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<DownloadFacebookVideoData, ThrowOnError>) => {
@@ -107,7 +107,7 @@ export const downloadFacebookVideo = <ThrowOnError extends boolean = false>(opti
107
107
  * Download LinkedIn video
108
108
  * Download videos from LinkedIn posts.
109
109
  *
110
- * **Rate Limits:** Build (50/day), Accelerate (500/day), Unlimited (unlimited)
110
+ * Rate limits: Build (50/day), Accelerate (500/day), Unlimited (unlimited).
111
111
  *
112
112
  */
113
113
  export const downloadLinkedInVideo = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<DownloadLinkedInVideoData, ThrowOnError>) => {
@@ -121,7 +121,7 @@ export const downloadLinkedInVideo = <ThrowOnError extends boolean = false>(opti
121
121
  * Download Bluesky media
122
122
  * Download videos from Bluesky posts.
123
123
  *
124
- * **Rate Limits:** Build (50/day), Accelerate (500/day), Unlimited (unlimited)
124
+ * Rate limits: Build (50/day), Accelerate (500/day), Unlimited (unlimited).
125
125
  *
126
126
  */
127
127
  export const downloadBlueskyMedia = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<DownloadBlueskyMediaData, ThrowOnError>) => {
@@ -133,19 +133,9 @@ export const downloadBlueskyMedia = <ThrowOnError extends boolean = false>(optio
133
133
 
134
134
  /**
135
135
  * Get post analytics
136
- * Returns analytics for posts. With `postId`, returns a single post's analytics. Without it, returns a paginated list with overview stats.
137
- *
138
- * **Post ID types:** This endpoint returns External Post IDs by default. The `postId` parameter accepts both Late Post IDs (from `POST /v1/posts`) and External Post IDs. Late Post IDs are automatically resolved to External Post analytics. Use `latePostId` in responses to link analytics back to your original Late post, or `platformPostUrl` as a stable identifier.
139
- *
140
- * **List response:** Use `isExternal` to identify post origin. `isExternal: true` means synced from platform, `isExternal: false` means queried by Late post ID.
141
- *
142
- * For follower stats, use `/v1/accounts/follower-stats` instead.
143
- *
144
- * **Platform notes:**
145
- * - LinkedIn personal accounts: per-post analytics only for posts published through Late (API restriction).
146
- * - Telegram: analytics not available (Bot API limitation).
147
- *
148
- * **Data freshness:** Cached and refreshed at most once per hour. Stale caches trigger a background refresh.
136
+ * Returns analytics for posts. With postId, returns a single post. Without it, returns a paginated list with overview stats.
137
+ * This endpoint returns External Post IDs by default. The postId parameter accepts both Late Post IDs and External Post IDs, auto-resolving Late IDs to External Post analytics. Use latePostId in responses to link back to your original post, or platformPostUrl as a stable identifier. isExternal indicates post origin (true = synced from platform).
138
+ * For follower stats, use /v1/accounts/follower-stats. LinkedIn personal accounts: per-post analytics only for Late-published posts. Telegram: not available. Data is cached and refreshed at most once per hour.
149
139
  *
150
140
  */
151
141
  export const getAnalytics = <ThrowOnError extends boolean = false>(options?: OptionsLegacyParser<GetAnalyticsData, ThrowOnError>) => {
@@ -161,14 +151,8 @@ export const getAnalytics = <ThrowOnError extends boolean = false>(options?: Opt
161
151
  * Uses YouTube Analytics API v2 to fetch daily breakdowns including views,
162
152
  * watch time, and subscriber changes.
163
153
  *
164
- * **Required Scope:** This endpoint requires the `yt-analytics.readonly` OAuth scope.
165
- * Existing YouTube accounts may need to re-authorize to grant this permission.
166
- * If the scope is missing, the response will include a `reauthorizeUrl`.
167
- *
168
- * **Data Latency:** YouTube Analytics data has a 2-3 day delay. The `endDate`
169
- * is automatically capped to 3 days ago.
170
- *
171
- * **Date Range:** Maximum 90 days of historical data available. Defaults to last 30 days.
154
+ * Requires the yt-analytics.readonly OAuth scope. Existing YouTube accounts may need to re-authorize. If the scope is missing, the response includes a reauthorizeUrl.
155
+ * Data has a 2-3 day delay; endDate is automatically capped to 3 days ago. Maximum 90 days of historical data. Defaults to last 30 days.
172
156
  *
173
157
  */
174
158
  export const getYouTubeDailyViews = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<GetYouTubeDailyViewsData, ThrowOnError>) => {
@@ -222,11 +206,7 @@ export const deleteAccountGroup = <ThrowOnError extends boolean = false>(options
222
206
  * Get presigned upload URL
223
207
  * Get a presigned URL to upload files directly to cloud storage. Supports files up to 5GB.
224
208
  *
225
- * **How it works:**
226
- * 1. Call this endpoint with the filename and content type
227
- * 2. Receive an `uploadUrl` (presigned) and `publicUrl`
228
- * 3. PUT your file directly to the `uploadUrl`
229
- * 4. Use the `publicUrl` in your posts
209
+ * How it works: call this endpoint with the filename and content type, receive an uploadUrl (presigned) and publicUrl, PUT your file directly to the uploadUrl, then use the publicUrl in your posts.
230
210
  *
231
211
  */
232
212
  export const getMediaPresignedUrl = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<GetMediaPresignedUrlData, ThrowOnError>) => {
@@ -268,14 +248,9 @@ export const getUsageStats = <ThrowOnError extends boolean = false>(options?: Op
268
248
 
269
249
  /**
270
250
  * List posts
271
- * **Getting Post URLs:**
272
- * For published posts, each platform entry includes `platformPostUrl` with the public URL.
273
- * Use `status=published` filter to fetch only published posts with their URLs.
251
+ * For published posts, each platform entry includes platformPostUrl with the public URL. Use status=published to fetch only published posts with their URLs.
274
252
  *
275
- * Notes and constraints by platform when interpreting the response:
276
- * - YouTube: posts always include at least one video in mediaItems.
277
- * - Instagram/TikTok: posts always include media; drafts may omit media until finalized in client.
278
- * - TikTok: mediaItems will not mix photos and videos in the same post.
253
+ * Platform notes: YouTube posts always include at least one video. Instagram/TikTok posts always include media (drafts may omit media). TikTok does not mix photos and videos in the same post.
279
254
  *
280
255
  */
281
256
  export const listPosts = <ThrowOnError extends boolean = false>(options?: OptionsLegacyParser<ListPostsData, ThrowOnError>) => {
@@ -287,23 +262,9 @@ export const listPosts = <ThrowOnError extends boolean = false>(options?: Option
287
262
 
288
263
  /**
289
264
  * Create post
290
- * **Getting Post URLs:**
291
- * - Immediate posts (`publishNow: true`): response includes `platformPostUrl` in `post.platforms[]`.
292
- * - Scheduled posts: fetch via `GET /v1/posts/{postId}` after publish time for `platformPostUrl`.
293
- *
294
- * **Content requirements:**
295
- * - `content` is optional when media is attached, all platforms have `customContent`, or posting to YouTube only.
296
- * - Text-only posts require `content`. Stories ignore captions.
297
- *
298
- * **Platform constraints:**
299
- * - YouTube: video required, optional thumbnail via `MediaItem.thumbnail`
300
- * - Instagram/TikTok: media required; TikTok cannot mix videos and images
301
- * - Instagram carousels: up to 10 items; Threads carousels: up to 10 images only
302
- * - Facebook Stories: single image or video, set `contentType: 'story'`
303
- * - LinkedIn: up to 20 images or a single PDF (max 100MB)
304
- * - Pinterest: single image or video, `boardId` required
305
- * - Bluesky: up to 4 images, auto-recompressed to ~1MB
306
- * - Snapchat: single image or video, set `contentType` in platformSpecificData
265
+ * Immediate posts (publishNow: true) include platformPostUrl in the response. Scheduled posts: fetch via GET /v1/posts/{postId} after publish time.
266
+ * content is optional when media is attached, all platforms have customContent, or posting to YouTube only. Text-only posts require content. Stories ignore captions.
267
+ * Platform constraints: YouTube requires video. Instagram/TikTok require media (TikTok cannot mix videos and images). Instagram carousels up to 10 items, Threads up to 10 images. Facebook Stories need single image/video with contentType story. LinkedIn up to 20 images or single PDF. Pinterest single image/video with boardId. Bluesky up to 4 images. Snapchat single image/video.
307
268
  *
308
269
  */
309
270
  export const createPost = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<CreatePostData, ThrowOnError>) => {
@@ -315,8 +276,7 @@ export const createPost = <ThrowOnError extends boolean = false>(options: Option
315
276
 
316
277
  /**
317
278
  * Get post
318
- * Fetch a single post by ID. For published posts, this returns `platformPostUrl`
319
- * for each platform - useful for retrieving post URLs after scheduled posts publish.
279
+ * Fetch a single post by ID. For published posts, this returns platformPostUrl for each platform.
320
280
  *
321
281
  */
322
282
  export const getPost = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<GetPostData, ThrowOnError>) => {
@@ -380,21 +340,9 @@ export const retryPost = <ThrowOnError extends boolean = false>(options: Options
380
340
 
381
341
  /**
382
342
  * Unpublish post
383
- * Permanently deletes a published post from the specified social media platform.
384
- * The post record in Late is kept but its platform status is updated to "cancelled".
385
- * This does not delete the post from Late, only from the platform.
386
- *
387
- * **Supported platforms:** Threads, Facebook, Twitter/X, LinkedIn, YouTube, Pinterest, Reddit, Bluesky, Google Business, Telegram.
388
- *
389
- * **Not supported:**
390
- * - **Instagram:** No deletion API available. Posts must be deleted manually.
391
- * - **TikTok:** No deletion API available. Posts must be deleted manually.
392
- * - **Snapchat:** No deletion API available. Posts must be deleted manually.
393
- *
394
- * **Platform notes:**
395
- * - **Threaded posts (Twitter, Threads, Bluesky):** If the post was published as a thread, all items in the thread are deleted (not just the first one). Posts published before this feature was added will only have the first item deleted.
396
- * - **Telegram:** Messages older than 48 hours may fail to delete (Telegram Bot API limitation).
397
- * - **YouTube:** This permanently deletes the video from YouTube.
343
+ * Deletes a published post from the specified platform. The post record in Late is kept but its platform status is updated to cancelled.
344
+ * Supported: Threads, Facebook, Twitter/X, LinkedIn, YouTube, Pinterest, Reddit, Bluesky, Google Business, Telegram. Not supported: Instagram, TikTok, Snapchat (must be deleted manually).
345
+ * Threaded posts (Twitter, Threads, Bluesky) delete all items in the thread. Telegram messages older than 48h may fail to delete. YouTube deletion is permanent.
398
346
  *
399
347
  */
400
348
  export const unpublishPost = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<UnpublishPostData, ThrowOnError>) => {
@@ -426,8 +374,8 @@ export const getUser = <ThrowOnError extends boolean = false>(options: OptionsLe
426
374
 
427
375
  /**
428
376
  * List profiles
429
- * Returns profiles within the user's plan limit. Profiles are sorted by creation date (oldest first).
430
- * Use `includeOverLimit=true` to include profiles that exceed the plan limit (for management/deletion purposes).
377
+ * Returns profiles within the user's plan limit, sorted by creation date (oldest first).
378
+ * Use includeOverLimit=true to include profiles that exceed the plan limit (for management/deletion purposes).
431
379
  *
432
380
  */
433
381
  export const listProfiles = <ThrowOnError extends boolean = false>(options?: OptionsLegacyParser<ListProfilesData, ThrowOnError>) => {
@@ -494,9 +442,7 @@ export const listAccounts = <ThrowOnError extends boolean = false>(options?: Opt
494
442
  /**
495
443
  * Get follower stats
496
444
  * Returns follower count history and growth metrics for connected social accounts.
497
- * **Requires analytics add-on subscription.**
498
- *
499
- * **Data Freshness:** Follower counts are automatically refreshed once per day.
445
+ * Requires analytics add-on subscription. Follower counts are refreshed once per day.
500
446
  *
501
447
  */
502
448
  export const getFollowerStats = <ThrowOnError extends boolean = false>(options?: OptionsLegacyParser<GetFollowerStatsData, ThrowOnError>) => {
@@ -598,27 +544,10 @@ export const createInviteToken = <ThrowOnError extends boolean = false>(options:
598
544
 
599
545
  /**
600
546
  * Get OAuth connect URL
601
- * Initiate an OAuth connection flow for any supported social media platform.
602
- *
603
- * **Standard Flow (Hosted UI):**
604
- * 1. Call this endpoint with your API key and `redirect_url` (optional)
605
- * 2. Redirect your user to the returned `authUrl`
606
- * 3. After OAuth, Late hosts the page/account selection UI
607
- * 4. Once the user picks, Late saves the connection and redirects to your `redirect_url` (if provided)
608
- *
609
- * **Headless Mode (Facebook, LinkedIn, Pinterest, Google Business, Snapchat):**
610
- * Build your own branded selection UI while Late handles OAuth. Add `&headless=true` to this endpoint:
611
- *
612
- * `GET /v1/connect/{platform}?profileId=PROFILE_ID&redirect_url=https://yourapp.com/callback&headless=true`
613
- *
614
- * After OAuth, the user is redirected to your `redirect_url` with OAuth data including `profileId`, `tempToken`, `userProfile`, `connect_token`, `platform`, and a `step` parameter indicating what selection is needed.
615
- *
616
- * **Facebook example:**
617
- * 1. Redirect params include `step=select_page`
618
- * 2. Use `GET /v1/connect/facebook/select-page` to fetch pages
619
- * 3. Use `POST /v1/connect/facebook/select-page` to save the selected page
620
- *
621
- * LinkedIn, Pinterest, Google Business, and Snapchat follow the same pattern with their respective selection endpoints. LinkedIn uses `pendingDataToken` instead of `tempToken` in redirect params; call `GET /v1/connect/pending-data?token=TOKEN` to retrieve the OAuth data (one-time use, expires in 10 minutes).
547
+ * Initiate an OAuth connection flow for any supported platform.
548
+ * Standard flow: call this endpoint, redirect user to the returned authUrl, Late hosts the selection UI, then redirects to your redirect_url.
549
+ * Headless mode (Facebook, LinkedIn, Pinterest, Google Business, Snapchat): add headless=true to this endpoint. After OAuth, the user is redirected to your redirect_url with OAuth data (profileId, tempToken, userProfile, connect_token, platform, step). Use the platform-specific selection endpoints to fetch options and save the selection.
550
+ * LinkedIn uses pendingDataToken instead of tempToken; call GET /v1/connect/pending-data?token=TOKEN to retrieve OAuth data (one-time use, expires in 10 minutes).
622
551
  *
623
552
  */
624
553
  export const getConnectUrl = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<GetConnectUrlData, ThrowOnError>) => {
@@ -640,18 +569,7 @@ export const handleOAuthCallback = <ThrowOnError extends boolean = false>(option
640
569
 
641
570
  /**
642
571
  * List Facebook pages
643
- * **Headless Mode for Custom UI**
644
- *
645
- * After initiating Facebook OAuth via `/v1/connect/facebook`, you'll be redirected to
646
- * `/connect/facebook/select-page` with query params including `tempToken` and `userProfile`.
647
- *
648
- * For a **headless/whitelabeled flow**, extract these params from the URL and call this
649
- * endpoint to retrieve the list of Facebook Pages the user can manage. Then build your
650
- * own UI to let users select a page.
651
- *
652
- * **Note:** Use the `X-Connect-Token` header if you initiated the connection via API key
653
- * (rather than a browser session).
654
- *
572
+ * Returns the list of Facebook Pages the user can manage after OAuth. Extract tempToken and userProfile from the OAuth redirect params and pass them here. Use the X-Connect-Token header if connecting via API key.
655
573
  */
656
574
  export const listFacebookPages = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<ListFacebookPagesData, ThrowOnError>) => {
657
575
  return (options?.client ?? client).get<ListFacebookPagesResponse, ListFacebookPagesError, ThrowOnError>({
@@ -662,15 +580,8 @@ export const listFacebookPages = <ThrowOnError extends boolean = false>(options:
662
580
 
663
581
  /**
664
582
  * Select Facebook page
665
- * **Complete the Headless Flow**
666
- *
667
- * After displaying your custom UI with the list of pages from the GET endpoint, call this
668
- * endpoint to finalize the connection with the user's selected page.
669
- *
670
- * The `userProfile` should be the decoded JSON object from the `userProfile` query param
671
- * in the OAuth callback redirect URL.
672
- *
673
- * **Note:** Use the `X-Connect-Token` header if you initiated the connection via API key.
583
+ * Complete the headless flow. After displaying your custom UI with the list of pages from the GET endpoint, call this endpoint to finalize the connection with the user's selected page.
584
+ * The userProfile should be the decoded JSON object from the userProfile query param in the OAuth callback redirect URL. Use the X-Connect-Token header if you initiated the connection via API key.
674
585
  *
675
586
  */
676
587
  export const selectFacebookPage = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<SelectFacebookPageData, ThrowOnError>) => {
@@ -681,18 +592,9 @@ export const selectFacebookPage = <ThrowOnError extends boolean = false>(options
681
592
  };
682
593
 
683
594
  /**
684
- * List Google Business locations
685
- * **Headless Mode for Custom UI**
686
- *
687
- * After initiating Google Business OAuth via `/v1/connect/googlebusiness?headless=true`, you'll be redirected
688
- * to your `redirect_url` with query params including `tempToken` and `userProfile`.
689
- *
690
- * For a **headless/whitelabeled flow**, extract these params from the URL and call this
691
- * endpoint to retrieve the list of Google Business locations the user can manage. Then build your
692
- * own UI to let users select a location.
693
- *
694
- * **Note:** Use the `X-Connect-Token` header if you initiated the connection via API key
695
- * (rather than a browser session).
595
+ * List GBP locations
596
+ * For headless/whitelabel flows. After Google Business OAuth with headless=true, you'll be redirected to your redirect_url with tempToken and userProfile params.
597
+ * Call this endpoint to retrieve the list of locations the user can manage, then build your own UI to let them select one. Use the X-Connect-Token header if you initiated the connection via API key.
696
598
  *
697
599
  */
698
600
  export const listGoogleBusinessLocations = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<ListGoogleBusinessLocationsData, ThrowOnError>) => {
@@ -703,16 +605,9 @@ export const listGoogleBusinessLocations = <ThrowOnError extends boolean = false
703
605
  };
704
606
 
705
607
  /**
706
- * Select Google Business location
707
- * **Complete the Headless Flow**
708
- *
709
- * After displaying your custom UI with the list of locations from the GET `/v1/connect/googlebusiness/locations`
710
- * endpoint, call this endpoint to finalize the connection with the user's selected location.
711
- *
712
- * The `userProfile` should be the decoded JSON object from the `userProfile` query param
713
- * in the OAuth callback redirect URL. It contains important token information (including refresh token).
714
- *
715
- * **Note:** Use the `X-Connect-Token` header if you initiated the connection via API key.
608
+ * Select GBP location
609
+ * Complete the headless flow. After displaying your custom UI with the list of locations from the GET /v1/connect/googlebusiness/locations endpoint, call this endpoint to finalize the connection with the user's selected location.
610
+ * The userProfile should be the decoded JSON object from the userProfile query param in the OAuth callback redirect URL. It contains important token information including the refresh token. Use the X-Connect-Token header if you initiated the connection via API key.
716
611
  *
717
612
  */
718
613
  export const selectGoogleBusinessLocation = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<SelectGoogleBusinessLocationData, ThrowOnError>) => {
@@ -724,16 +619,8 @@ export const selectGoogleBusinessLocation = <ThrowOnError extends boolean = fals
724
619
 
725
620
  /**
726
621
  * Get reviews
727
- * Fetches reviews for a connected Google Business Profile account.
728
- *
729
- * Returns all reviews for the business location, including:
730
- * - Reviewer information (name, profile photo)
731
- * - Star rating (1-5)
732
- * - Review comment/text
733
- * - Business owner's reply (if any)
734
- * - Review timestamps
735
- *
736
- * Use pagination via `nextPageToken` to fetch all reviews for locations with many reviews.
622
+ * Fetches reviews for a connected Google Business Profile account. Returns all reviews including reviewer info, star rating, comment text, owner reply, and timestamps.
623
+ * Use pagination via nextPageToken for locations with many reviews.
737
624
  *
738
625
  */
739
626
  export const getGoogleBusinessReviews = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<GetGoogleBusinessReviewsData, ThrowOnError>) => {
@@ -745,14 +632,7 @@ export const getGoogleBusinessReviews = <ThrowOnError extends boolean = false>(o
745
632
 
746
633
  /**
747
634
  * Get food menus
748
- * Fetches food menus for a connected Google Business Profile location.
749
- *
750
- * Returns the full menu structure including:
751
- * - Menu names and descriptions
752
- * - Sections (e.g. Appetizers, Entrees, Drinks)
753
- * - Items with labels, pricing, dietary info, and allergens
754
- * - Item options/variants
755
- *
635
+ * Fetches food menus for a connected Google Business Profile location. Returns the full menu structure including sections, items with pricing, dietary info, allergens, and variants.
756
636
  * Only available for locations with food menu support (restaurants, cafes, etc.).
757
637
  *
758
638
  */
@@ -767,7 +647,7 @@ export const getGoogleBusinessFoodMenus = <ThrowOnError extends boolean = false>
767
647
  * Update food menus
768
648
  * Updates the food menus for a connected Google Business Profile location.
769
649
  *
770
- * Send the full menus array. Use `updateMask` for partial updates (e.g. `"menus"` to only update the menus field).
650
+ * Send the full menus array. Use updateMask for partial updates (e.g. "menus" to only update the menus field).
771
651
  *
772
652
  * Each menu can contain sections, and each section can contain items with pricing, dietary restrictions, allergens, and more.
773
653
  *
@@ -784,7 +664,7 @@ export const updateGoogleBusinessFoodMenus = <ThrowOnError extends boolean = fal
784
664
  * Fetches detailed location information including opening hours, special hours,
785
665
  * business description, phone numbers, website, categories, and more.
786
666
  *
787
- * Use the `readMask` query parameter to request specific fields.
667
+ * Use the readMask query parameter to request specific fields.
788
668
  *
789
669
  */
790
670
  export const getGoogleBusinessLocationDetails = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<GetGoogleBusinessLocationDetailsData, ThrowOnError>) => {
@@ -797,16 +677,7 @@ export const getGoogleBusinessLocationDetails = <ThrowOnError extends boolean =
797
677
  /**
798
678
  * Update location details
799
679
  * Updates location details such as opening hours, special hours, business description, phone, and website.
800
- *
801
- * The `updateMask` field is required and specifies which fields to update.
802
- *
803
- * Common update masks:
804
- * - `regularHours` - Update opening hours
805
- * - `specialHours` - Update holiday/special hours
806
- * - `profile.description` - Update business description
807
- * - `websiteUri` - Update website URL
808
- * - `phoneNumbers` - Update phone numbers
809
- * - `regularHours,specialHours` - Update both at once
680
+ * The updateMask field is required and specifies which fields to update. Common masks: regularHours, specialHours, profile.description, websiteUri, phoneNumbers. Combine with commas (e.g. regularHours,specialHours).
810
681
  *
811
682
  */
812
683
  export const updateGoogleBusinessLocationDetails = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<UpdateGoogleBusinessLocationDetailsData, ThrowOnError>) => {
@@ -833,17 +704,7 @@ export const listGoogleBusinessMedia = <ThrowOnError extends boolean = false>(op
833
704
  * Upload photo
834
705
  * Creates a media item (photo) for a location from a publicly accessible URL.
835
706
  *
836
- * Categories determine where the photo appears:
837
- * - `COVER` - Cover photo
838
- * - `PROFILE` - Profile photo
839
- * - `LOGO` - Business logo
840
- * - `EXTERIOR` - Exterior shots
841
- * - `INTERIOR` - Interior shots
842
- * - `FOOD_AND_DRINK` - Food and drink photos
843
- * - `MENU` - Menu photos
844
- * - `PRODUCT` - Product photos
845
- * - `TEAMS` - Team/staff photos
846
- * - `ADDITIONAL` - Other photos
707
+ * Categories determine where the photo appears: COVER, PROFILE, LOGO, EXTERIOR, INTERIOR, FOOD_AND_DRINK, MENU, PRODUCT, TEAMS, ADDITIONAL.
847
708
  *
848
709
  */
849
710
  export const createGoogleBusinessMedia = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<CreateGoogleBusinessMediaData, ThrowOnError>) => {
@@ -865,15 +726,7 @@ export const deleteGoogleBusinessMedia = <ThrowOnError extends boolean = false>(
865
726
 
866
727
  /**
867
728
  * Get attributes
868
- * Fetches location attributes such as amenities, services, and accessibility features.
869
- *
870
- * Common attributes for restaurants include:
871
- * - Dining options: has_dine_in, has_takeout, has_delivery
872
- * - Amenities: has_outdoor_seating, has_wifi, has_parking
873
- * - Accessibility: has_wheelchair_accessible_entrance
874
- * - Payments: pay_credit_card_types_accepted
875
- *
876
- * Available attributes vary by business category.
729
+ * Fetches location attributes such as amenities, services, and accessibility features. Common attributes include dining options (has_dine_in, has_takeout, has_delivery), amenities (has_outdoor_seating, has_wifi), accessibility, and payment types. Available attributes vary by business category.
877
730
  *
878
731
  */
879
732
  export const getGoogleBusinessAttributes = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<GetGoogleBusinessAttributesData, ThrowOnError>) => {
@@ -887,7 +740,7 @@ export const getGoogleBusinessAttributes = <ThrowOnError extends boolean = false
887
740
  * Update attributes
888
741
  * Updates location attributes (amenities, services, etc.).
889
742
  *
890
- * The `attributeMask` specifies which attributes to update (comma-separated).
743
+ * The attributeMask specifies which attributes to update (comma-separated).
891
744
  *
892
745
  */
893
746
  export const updateGoogleBusinessAttributes = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<UpdateGoogleBusinessAttributesData, ThrowOnError>) => {
@@ -915,14 +768,7 @@ export const listGoogleBusinessPlaceActions = <ThrowOnError extends boolean = fa
915
768
  * Create action link
916
769
  * Creates a place action link for a location.
917
770
  *
918
- * Available action types:
919
- * - `APPOINTMENT` - Booking an appointment
920
- * - `ONLINE_APPOINTMENT` - Booking an online appointment
921
- * - `DINING_RESERVATION` - Making a dining reservation (OpenTable, Resy, etc.)
922
- * - `FOOD_ORDERING` - Ordering food for delivery and/or takeout (DoorDash, Uber Eats, etc.)
923
- * - `FOOD_DELIVERY` - Ordering food for delivery only
924
- * - `FOOD_TAKEOUT` - Ordering food for takeout only
925
- * - `SHOP_ONLINE` - Shopping with delivery and/or pickup
771
+ * Available action types: APPOINTMENT, ONLINE_APPOINTMENT, DINING_RESERVATION, FOOD_ORDERING, FOOD_DELIVERY, FOOD_TAKEOUT, SHOP_ONLINE.
926
772
  *
927
773
  */
928
774
  export const createGoogleBusinessPlaceAction = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<CreateGoogleBusinessPlaceActionData, ThrowOnError>) => {
@@ -944,18 +790,8 @@ export const deleteGoogleBusinessPlaceAction = <ThrowOnError extends boolean = f
944
790
 
945
791
  /**
946
792
  * Get pending OAuth data
947
- * **Fetch Pending OAuth Data for Headless Mode**
948
- *
949
- * In headless mode, platforms like LinkedIn store OAuth selection data (organizations, pages, etc.)
950
- * in the database instead of passing it via URL parameters. This prevents URI_TOO_LONG errors
951
- * when users have many organizations/pages to select from.
952
- *
953
- * After OAuth redirect, use the `pendingDataToken` from the URL to fetch the stored data.
954
- *
955
- * **Important:**
956
- * - This endpoint is one-time use: data is deleted after being fetched
957
- * - Data expires automatically after 10 minutes if not fetched
958
- * - No authentication required, just the token from the redirect URL
793
+ * Fetch pending OAuth data for headless mode. Platforms like LinkedIn store OAuth selection data (organizations, pages, etc.) server-side to prevent URI_TOO_LONG errors.
794
+ * After OAuth redirect, use the pendingDataToken from the URL to fetch the stored data. This endpoint is one-time use (data is deleted after fetch) and expires after 10 minutes. No authentication required, just the token.
959
795
  *
960
796
  */
961
797
  export const getPendingOAuthData = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<GetPendingOAuthDataData, ThrowOnError>) => {
@@ -967,16 +803,8 @@ export const getPendingOAuthData = <ThrowOnError extends boolean = false>(option
967
803
 
968
804
  /**
969
805
  * List LinkedIn orgs
970
- * **Fetch Full Organization Details for Custom UI**
971
- *
972
- * After LinkedIn OAuth in headless mode, the redirect URL contains organization data with only
973
- * `id`, `urn`, and `name` fields (additional details are excluded to prevent URL length issues with many organizations).
974
- *
975
- * Use this endpoint to fetch full organization details including logos, vanity names, websites, and more
976
- * if you want to display them in your custom selection UI.
977
- *
978
- * **Note:** This endpoint requires no authentication - just the `tempToken` from the OAuth redirect.
979
- * Details are fetched directly from LinkedIn's API in parallel for fast response times.
806
+ * Fetch full organization details for custom UI. After LinkedIn OAuth in headless mode, the redirect URL only contains id, urn, and name fields.
807
+ * Use this endpoint to fetch full details including logos, vanity names, websites, and more. No authentication required, just the tempToken from the OAuth redirect.
980
808
  *
981
809
  */
982
810
  export const listLinkedInOrganizations = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<ListLinkedInOrganizationsData, ThrowOnError>) => {
@@ -988,19 +816,8 @@ export const listLinkedInOrganizations = <ThrowOnError extends boolean = false>(
988
816
 
989
817
  /**
990
818
  * Select LinkedIn org
991
- * **Complete the LinkedIn Connection Flow**
992
- *
993
- * After OAuth, the user is redirected with `organizations` in the URL params (if they have org admin access).
994
- * The organizations array contains `id`, `urn`, and `name` fields. Use this data to build your UI,
995
- * then call this endpoint to save the selection.
996
- *
997
- * Set `accountType` to `personal` to connect as the user's personal LinkedIn profile, or
998
- * `organization` to connect as a company page (requires `selectedOrganization` object).
999
- *
1000
- * **Personal Profile:** To connect a personal LinkedIn account, set `accountType` to `"personal"`
1001
- * and **omit** the `selectedOrganization` field entirely. This is the simplest flow.
1002
- *
1003
- * **Headless Mode:** Use the `X-Connect-Token` header if you initiated the connection via API key.
819
+ * Complete the LinkedIn connection flow. After OAuth, the user is redirected with organizations in the URL params (if they have org admin access). Use this data to build your UI, then call this endpoint to save the selection.
820
+ * Set accountType to "personal" for a personal profile (omit selectedOrganization), or "organization" to connect as a company page. Use the X-Connect-Token header if you initiated the connection via API key.
1004
821
  *
1005
822
  */
1006
823
  export const selectLinkedInOrganization = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<SelectLinkedInOrganizationData, ThrowOnError>) => {
@@ -1012,16 +829,8 @@ export const selectLinkedInOrganization = <ThrowOnError extends boolean = false>
1012
829
 
1013
830
  /**
1014
831
  * List Pinterest boards
1015
- * **Retrieve Pinterest Boards for Selection UI**
1016
- *
1017
- * After initiating Pinterest OAuth via `/v1/connect/pinterest` with `headless=true`, you'll be redirected to
1018
- * your `redirect_url` with query params including `tempToken` and `userProfile`.
1019
- *
1020
- * If you want to build your own fully-branded board selector (instead of Late's hosted UI), call this
1021
- * endpoint to retrieve the list of Pinterest Boards the user can post to. Then build your
1022
- * UI and call `POST /v1/connect/pinterest/select-board` to save the selection.
1023
- *
1024
- * **Authentication:** Use `X-Connect-Token` header with the `connect_token` from the redirect URL.
832
+ * Retrieve Pinterest boards for headless selection UI. After Pinterest OAuth with headless=true, you'll be redirected to your redirect_url with tempToken and userProfile params.
833
+ * Call this endpoint to retrieve the list of boards the user can post to, then build your UI and call POST /v1/connect/pinterest/select-board to save the selection. Use X-Connect-Token header with the connect_token from the redirect URL.
1025
834
  *
1026
835
  */
1027
836
  export const listPinterestBoardsForSelection = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<ListPinterestBoardsForSelectionData, ThrowOnError>) => {
@@ -1033,11 +842,7 @@ export const listPinterestBoardsForSelection = <ThrowOnError extends boolean = f
1033
842
 
1034
843
  /**
1035
844
  * Select Pinterest board
1036
- * **Complete the Pinterest Connection Flow**
1037
- *
1038
- * After OAuth, use this endpoint to save the selected board and complete the Pinterest account connection.
1039
- *
1040
- * **Headless Mode:** Use the `X-Connect-Token` header if you initiated the connection via API key.
845
+ * Complete the Pinterest connection flow. After OAuth, use this endpoint to save the selected board and complete the account connection. Use the X-Connect-Token header if you initiated the connection via API key.
1041
846
  *
1042
847
  */
1043
848
  export const selectPinterestBoard = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<SelectPinterestBoardData, ThrowOnError>) => {
@@ -1049,16 +854,8 @@ export const selectPinterestBoard = <ThrowOnError extends boolean = false>(optio
1049
854
 
1050
855
  /**
1051
856
  * List Snapchat profiles
1052
- * **Headless Mode for Custom UI**
1053
- *
1054
- * After initiating Snapchat OAuth via `/v1/connect/snapchat?headless=true`, you'll be redirected to
1055
- * your `redirect_url` with query params including `tempToken`, `userProfile`, and `publicProfiles`.
1056
- *
1057
- * If you want to build your own fully-branded profile selector (instead of Late's hosted UI), call this
1058
- * endpoint to retrieve the list of Snapchat Public Profiles the user can post to. Then build your
1059
- * UI and call `POST /v1/connect/snapchat/select-profile` to save the selection.
1060
- *
1061
- * **Authentication:** Use `X-Connect-Token` header with the `connect_token` from the redirect URL.
857
+ * For headless/whitelabel flows. After Snapchat OAuth with headless=true, you'll be redirected to your redirect_url with tempToken, userProfile, and publicProfiles params.
858
+ * Call this endpoint to retrieve the list of Snapchat Public Profiles the user can post to, then build your UI and call POST /v1/connect/snapchat/select-profile to save the selection. Use X-Connect-Token header with the connect_token from the redirect URL.
1062
859
  *
1063
860
  */
1064
861
  export const listSnapchatProfiles = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<ListSnapchatProfilesData, ThrowOnError>) => {
@@ -1070,23 +867,8 @@ export const listSnapchatProfiles = <ThrowOnError extends boolean = false>(optio
1070
867
 
1071
868
  /**
1072
869
  * Select Snapchat profile
1073
- * **Complete the Snapchat Connection Flow**
1074
- *
1075
- * After OAuth, use this endpoint to save the selected Public Profile and complete the Snapchat account connection.
1076
- * Snapchat requires a Public Profile to publish Stories, Saved Stories, and Spotlight content.
1077
- *
1078
- * **Headless Mode:** Use the `X-Connect-Token` header if you initiated the connection via API key.
1079
- *
1080
- * After initiating Snapchat OAuth via `/v1/connect/snapchat?headless=true`, you'll be redirected to
1081
- * your `redirect_url` with query params including:
1082
- * - `tempToken` - Temporary access token
1083
- * - `userProfile` - URL-encoded JSON with user info
1084
- * - `publicProfiles` - URL-encoded JSON array of available public profiles
1085
- * - `connect_token` - Short-lived token for API authentication
1086
- * - `platform=snapchat`
1087
- * - `step=select_public_profile`
1088
- *
1089
- * Parse `publicProfiles` to build your custom selector UI, then call this endpoint with the selected profile.
870
+ * Complete the Snapchat connection flow. Save the selected Public Profile and complete the account connection. Snapchat requires a Public Profile to publish Stories, Saved Stories, and Spotlight content.
871
+ * After Snapchat OAuth with headless=true, you'll be redirected with tempToken, userProfile, publicProfiles, connect_token, platform=snapchat, and step=select_public_profile in the URL. Parse publicProfiles to build your custom selector UI, then call this endpoint with the selected profile. Use the X-Connect-Token header if you initiated the connection via API key.
1090
872
  *
1091
873
  */
1092
874
  export const selectSnapchatProfile = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<SelectSnapchatProfileData, ThrowOnError>) => {
@@ -1099,8 +881,7 @@ export const selectSnapchatProfile = <ThrowOnError extends boolean = false>(opti
1099
881
  /**
1100
882
  * Connect Bluesky account
1101
883
  * Connect a Bluesky account using identifier (handle or email) and an app password.
1102
- *
1103
- * To get your userId for the state parameter, call `GET /v1/users` - the response includes a `currentUserId` field.
884
+ * To get your userId for the state parameter, call GET /v1/users which includes a currentUserId field.
1104
885
  *
1105
886
  */
1106
887
  export const connectBlueskyCredentials = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<ConnectBlueskyCredentialsData, ThrowOnError>) => {
@@ -1113,15 +894,7 @@ export const connectBlueskyCredentials = <ThrowOnError extends boolean = false>(
1113
894
  /**
1114
895
  * Generate Telegram code
1115
896
  * Generate a unique access code for connecting a Telegram channel or group.
1116
- *
1117
- * **Connection Flow:**
1118
- * 1. Call this endpoint to get an access code (valid for 15 minutes)
1119
- * 2. Add the bot (@LateScheduleBot or your configured bot) as an administrator in your Telegram channel/group
1120
- * 3. Open a private chat with the bot
1121
- * 4. Send: `{CODE} @yourchannel` (e.g., `LATE-ABC123 @mychannel`)
1122
- * 5. Poll `PATCH /v1/connect/telegram?code={CODE}` to check connection status
1123
- *
1124
- * **Alternative for private channels:** If your channel has no public username, forward any message from the channel to the bot along with the access code.
897
+ * Flow: get an access code (valid 15 minutes), add the bot as admin in your channel/group, open a private chat with the bot, send the code + @yourchannel (e.g. LATE-ABC123 @mychannel), then poll PATCH /v1/connect/telegram?code={CODE} to check connection status. For private channels without a public username, forward any message from the channel to the bot along with the access code.
1125
898
  *
1126
899
  */
1127
900
  export const getTelegramConnectStatus = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<GetTelegramConnectStatusData, ThrowOnError>) => {
@@ -1148,14 +921,8 @@ export const initiateTelegramConnect = <ThrowOnError extends boolean = false>(op
1148
921
 
1149
922
  /**
1150
923
  * Check Telegram status
1151
- * Poll this endpoint to check if a Telegram access code has been used to connect a channel/group.
1152
- *
1153
- * **Recommended polling interval:** 3 seconds
1154
- *
1155
- * **Status values:**
1156
- * - `pending`: Code is valid, waiting for user to complete connection
1157
- * - `connected`: Connection successful - channel/group is now linked
1158
- * - `expired`: Code has expired, generate a new one
924
+ * Poll this endpoint to check if a Telegram access code has been used to connect a channel/group. Recommended polling interval: 3 seconds.
925
+ * Status values: pending (waiting for user), connected (channel/group linked), expired (generate a new code).
1159
926
  *
1160
927
  */
1161
928
  export const completeTelegramConnect = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<CompleteTelegramConnectData, ThrowOnError>) => {
@@ -1198,11 +965,8 @@ export const getLinkedInOrganizations = <ThrowOnError extends boolean = false>(o
1198
965
 
1199
966
  /**
1200
967
  * Get LinkedIn aggregate stats
1201
- * Returns aggregate analytics across all posts for a LinkedIn personal account. Organization accounts should use `/v1/analytics` instead.
1202
- *
1203
- * **Required scope:** `r_member_postAnalytics`. Missing scope returns 403 with reconnect instructions.
1204
- *
1205
- * **Aggregation:** `TOTAL` (default, lifetime totals) or `DAILY` (time series). Use `startDate`/`endDate` to filter by date range. Note: `MEMBERS_REACHED` is not available with `DAILY` aggregation.
968
+ * Returns aggregate analytics across all posts for a LinkedIn personal account. Org accounts should use /v1/analytics instead.
969
+ * Required scope: r_member_postAnalytics (missing scope returns 403). Aggregation: TOTAL (default, lifetime totals) or DAILY (time series). Use startDate/endDate to filter. MEMBERS_REACHED is not available with DAILY aggregation.
1206
970
  *
1207
971
  */
1208
972
  export const getLinkedInAggregateAnalytics = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<GetLinkedInAggregateAnalyticsData, ThrowOnError>) => {
@@ -1214,22 +978,8 @@ export const getLinkedInAggregateAnalytics = <ThrowOnError extends boolean = fal
1214
978
 
1215
979
  /**
1216
980
  * Get LinkedIn post stats
1217
- * Returns analytics for a specific LinkedIn post using its URN.
1218
- * Works for both personal and organization accounts.
1219
- *
1220
- * This is useful for fetching analytics of posts that weren't published through Late,
1221
- * as long as you have the post URN.
1222
- *
1223
- * **For Personal Accounts:**
1224
- * - Uses `memberCreatorPostAnalytics` API + `memberCreatorVideoAnalytics` for video posts
1225
- * - Requires `r_member_postAnalytics` scope
1226
- * - Available metrics: impressions, reach, likes, comments, shares, video views (video posts only)
1227
- * - **Clicks are NOT available** for personal accounts
1228
- *
1229
- * **For Organization Accounts:**
1230
- * - Uses `organizationalEntityShareStatistics` API + `videoAnalytics` for video posts
1231
- * - Requires `r_organization_social` scope
1232
- * - Available metrics: impressions, reach, clicks, likes, comments, shares, video views (video posts only), engagement rate
981
+ * Returns analytics for a specific LinkedIn post using its URN. Works for both personal and organization accounts. Useful for fetching analytics of posts not published through Late.
982
+ * Personal accounts require r_member_postAnalytics scope and return impressions, reach, likes, comments, shares, and video views (clicks not available). Organization accounts require r_organization_social scope and additionally return clicks and engagement rate.
1233
983
  *
1234
984
  */
1235
985
  export const getLinkedInPostAnalytics = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<GetLinkedInPostAnalyticsData, ThrowOnError>) => {
@@ -1251,13 +1001,8 @@ export const updateLinkedInOrganization = <ThrowOnError extends boolean = false>
1251
1001
 
1252
1002
  /**
1253
1003
  * Resolve LinkedIn mention
1254
- * Converts a LinkedIn profile or company URL to a URN for @mentions in posts. Supports person mentions (`linkedin.com/in/username` or just `username`) and organization mentions (`linkedin.com/company/name` or `company/name`).
1255
- *
1256
- * Person mentions require the connected account to have admin access to at least one LinkedIn Organization. Organization mentions work with any account.
1257
- *
1258
- * For person mentions to be clickable, provide the `displayName` parameter matching the exact name on their LinkedIn profile. Organization names are fetched automatically.
1259
- *
1260
- * Use the returned `mentionFormat` value directly in your post content.
1004
+ * Converts a LinkedIn profile or company URL to a URN for @mentions in posts. Supports person mentions (linkedin.com/in/username or just username) and org mentions (linkedin.com/company/name or company/name).
1005
+ * Person mentions require admin access to at least one LinkedIn Organization. Org mentions work with any account. For person mentions to be clickable, provide the displayName parameter matching the exact name on their profile. Org names are fetched automatically. Use the returned mentionFormat directly in post content.
1261
1006
  *
1262
1007
  */
1263
1008
  export const getLinkedInMentions = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<GetLinkedInMentionsData, ThrowOnError>) => {
@@ -1288,7 +1033,7 @@ export const updatePinterestBoards = <ThrowOnError extends boolean = false>(opti
1288
1033
  };
1289
1034
 
1290
1035
  /**
1291
- * List Google Business locations
1036
+ * List GBP locations
1292
1037
  * Returns all Google Business Profile locations the connected account has access to, including the currently selected location.
1293
1038
  */
1294
1039
  export const getGmbLocations = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<GetGmbLocationsData, ThrowOnError>) => {
@@ -1299,7 +1044,7 @@ export const getGmbLocations = <ThrowOnError extends boolean = false>(options: O
1299
1044
  };
1300
1045
 
1301
1046
  /**
1302
- * Update Google Business location
1047
+ * Update GBP location
1303
1048
  */
1304
1049
  export const updateGmbLocation = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<UpdateGmbLocationData, ThrowOnError>) => {
1305
1050
  return (options?.client ?? client).put<UpdateGmbLocationResponse, UpdateGmbLocationError, ThrowOnError>({
@@ -1340,9 +1085,7 @@ export const getRedditFlairs = <ThrowOnError extends boolean = false>(options: O
1340
1085
 
1341
1086
  /**
1342
1087
  * List schedules
1343
- * Retrieve queue schedules for a profile. Each profile can have multiple queues.
1344
- * - Without `all=true`: Returns the default queue (or specific queue if queueId provided)
1345
- * - With `all=true`: Returns all queues for the profile
1088
+ * Retrieve queue schedules for a profile. Each profile can have multiple queues. Without all=true, returns the default queue (or specific queue if queueId provided). With all=true, returns all queues for the profile.
1346
1089
  *
1347
1090
  */
1348
1091
  export const listQueueSlots = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<ListQueueSlotsData, ThrowOnError>) => {
@@ -1367,10 +1110,7 @@ export const createQueueSlot = <ThrowOnError extends boolean = false>(options: O
1367
1110
 
1368
1111
  /**
1369
1112
  * Update schedule
1370
- * Create a new queue or update an existing one.
1371
- * - Without queueId: Creates or updates the default queue
1372
- * - With queueId: Updates the specific queue
1373
- * - With setAsDefault=true: Makes this queue the default for the profile
1113
+ * Create a new queue or update an existing one. Without queueId, creates/updates the default queue. With queueId, updates a specific queue. With setAsDefault=true, makes this queue the default for the profile.
1374
1114
  *
1375
1115
  */
1376
1116
  export const updateQueueSlot = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<UpdateQueueSlotData, ThrowOnError>) => {
@@ -1405,19 +1145,8 @@ export const previewQueue = <ThrowOnError extends boolean = false>(options: Opti
1405
1145
 
1406
1146
  /**
1407
1147
  * Get next available slot
1408
- * Returns the next available queue slot for preview/informational purposes.
1409
- *
1410
- * **Important: To schedule a post to the queue, do NOT use this endpoint's response
1411
- * with `scheduledFor`.** That creates a manual post, not a queue post.
1412
- *
1413
- * Instead, use `POST /v1/posts` with `queuedFromProfile` (and optionally `queueId`).
1414
- * The system will automatically assign the next available slot with proper locking
1415
- * to prevent race conditions.
1416
- *
1417
- * This endpoint is useful for:
1418
- * - Showing users when their next post will go out before they commit
1419
- * - Debugging/verifying queue configuration
1420
- * - Building UI previews
1148
+ * Returns the next available queue slot for preview/informational purposes. Do NOT use this response with scheduledFor to schedule a post, as that creates a manual post, not a queue post.
1149
+ * Instead, use POST /v1/posts with queuedFromProfile (and optionally queueId). Useful for showing users when their next post will go out, debugging queue configuration, or building UI previews.
1421
1150
  *
1422
1151
  * If no queueId is specified, uses the profile's default queue.
1423
1152
  *
@@ -1444,7 +1173,7 @@ export const getWebhookSettings = <ThrowOnError extends boolean = false>(options
1444
1173
  * Create webhook
1445
1174
  * Create a new webhook configuration. Maximum 10 webhooks per user.
1446
1175
  *
1447
- * **Note:** Webhooks are automatically disabled after 10 consecutive delivery failures.
1176
+ * Webhooks are automatically disabled after 10 consecutive delivery failures.
1448
1177
  *
1449
1178
  */
1450
1179
  export const createWebhookSettings = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<CreateWebhookSettingsData, ThrowOnError>) => {
@@ -1456,9 +1185,9 @@ export const createWebhookSettings = <ThrowOnError extends boolean = false>(opti
1456
1185
 
1457
1186
  /**
1458
1187
  * Update webhook
1459
- * Update an existing webhook configuration. All fields except `_id` are optional - only provided fields will be updated.
1188
+ * Update an existing webhook configuration. All fields except _id are optional; only provided fields will be updated.
1460
1189
  *
1461
- * **Note:** Webhooks are automatically disabled after 10 consecutive delivery failures.
1190
+ * Webhooks are automatically disabled after 10 consecutive delivery failures.
1462
1191
  *
1463
1192
  */
1464
1193
  export const updateWebhookSettings = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<UpdateWebhookSettingsData, ThrowOnError>) => {
@@ -1481,8 +1210,7 @@ export const deleteWebhookSettings = <ThrowOnError extends boolean = false>(opti
1481
1210
 
1482
1211
  /**
1483
1212
  * Send test webhook
1484
- * Send a test webhook to verify your endpoint is configured correctly.
1485
- * The test payload includes `event: "webhook.test"` to distinguish it from real events.
1213
+ * Send a test webhook to verify your endpoint is configured correctly. The test payload includes event: "webhook.test" to distinguish it from real events.
1486
1214
  *
1487
1215
  */
1488
1216
  export const testWebhook = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<TestWebhookData, ThrowOnError>) => {
@@ -1504,53 +1232,9 @@ export const getWebhookLogs = <ThrowOnError extends boolean = false>(options?: O
1504
1232
  });
1505
1233
  };
1506
1234
 
1507
- /**
1508
- * @deprecated
1509
- * List publishing logs (deprecated)
1510
- * **Deprecated:** Use `/v1/posts/logs` instead. This endpoint is maintained for backwards compatibility.
1511
- *
1512
- * Retrieve publishing logs for all posts. Logs show detailed information about each
1513
- * publishing attempt including API requests, responses, and timing data.
1514
- *
1515
- * **Filtering:**
1516
- * - Filter by status (success, failed, pending, skipped)
1517
- * - Filter by platform (instagram, twitter, linkedin, etc.)
1518
- * - Filter by action (publish, retry, rate_limit_pause, etc.)
1519
- *
1520
- * **Retention:** Logs are automatically deleted after 7 days.
1521
- *
1522
- */
1523
- export const listLogs = <ThrowOnError extends boolean = false>(options?: OptionsLegacyParser<ListLogsData, ThrowOnError>) => {
1524
- return (options?.client ?? client).get<ListLogsResponse, ListLogsError, ThrowOnError>({
1525
- ...options,
1526
- url: '/v1/logs'
1527
- });
1528
- };
1529
-
1530
- /**
1531
- * Get log entry
1532
- * Retrieve detailed information about a specific log entry, including full request
1533
- * and response bodies for debugging.
1534
- *
1535
- */
1536
- export const getLog = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<GetLogData, ThrowOnError>) => {
1537
- return (options?.client ?? client).get<GetLogResponse, GetLogError, ThrowOnError>({
1538
- ...options,
1539
- url: '/v1/logs/{logId}'
1540
- });
1541
- };
1542
-
1543
1235
  /**
1544
1236
  * List publishing logs
1545
- * Retrieve publishing logs for all posts. Logs show detailed information about each
1546
- * publishing attempt including API requests, responses, and timing data.
1547
- *
1548
- * **Filtering:**
1549
- * - Filter by status (success, failed, pending, skipped)
1550
- * - Filter by platform (instagram, twitter, linkedin, etc.)
1551
- * - Filter by action (publish, retry, rate_limit_pause, etc.)
1552
- *
1553
- * **Retention:** Logs are automatically deleted after 7 days.
1237
+ * Retrieve publishing logs for all posts with detailed information about each publishing attempt. Filter by status, platform, or action. Logs are automatically deleted after 7 days.
1554
1238
  *
1555
1239
  */
1556
1240
  export const listPostsLogs = <ThrowOnError extends boolean = false>(options?: OptionsLegacyParser<ListPostsLogsData, ThrowOnError>) => {
@@ -1562,17 +1246,8 @@ export const listPostsLogs = <ThrowOnError extends boolean = false>(options?: Op
1562
1246
 
1563
1247
  /**
1564
1248
  * List connection logs
1565
- * Retrieve connection event logs showing account connection and disconnection history.
1566
- * Useful for debugging OAuth issues and tracking account lifecycle.
1567
- *
1568
- * **Event Types:**
1569
- * - `connect_success` - New account connected successfully
1570
- * - `connect_failed` - Connection attempt failed
1571
- * - `disconnect` - Account was disconnected
1572
- * - `reconnect_success` - Existing account reconnected
1573
- * - `reconnect_failed` - Reconnection attempt failed
1574
- *
1575
- * **Retention:** Logs are automatically deleted after 7 days.
1249
+ * Retrieve connection event logs showing account connection and disconnection history. Event types: connect_success, connect_failed, disconnect, reconnect_success, reconnect_failed.
1250
+ * Logs are automatically deleted after 7 days.
1576
1251
  *
1577
1252
  */
1578
1253
  export const listConnectionLogs = <ThrowOnError extends boolean = false>(options?: OptionsLegacyParser<ListConnectionLogsData, ThrowOnError>) => {
@@ -1597,10 +1272,8 @@ export const getPostLogs = <ThrowOnError extends boolean = false>(options: Optio
1597
1272
 
1598
1273
  /**
1599
1274
  * List conversations
1600
- * Fetch conversations (DMs) from all connected messaging accounts in a single API call.
1601
- * Supports filtering by profile and platform. Results are aggregated and deduplicated.
1602
- *
1603
- * **Supported platforms:** Facebook, Instagram, Twitter/X, Bluesky, Reddit, Telegram
1275
+ * Fetch conversations (DMs) from all connected messaging accounts in a single API call. Supports filtering by profile and platform. Results are aggregated and deduplicated.
1276
+ * Supported platforms: Facebook, Instagram, Twitter/X, Bluesky, Reddit, Telegram.
1604
1277
  *
1605
1278
  */
1606
1279
  export const listInboxConversations = <ThrowOnError extends boolean = false>(options?: OptionsLegacyParser<ListInboxConversationsData, ThrowOnError>) => {
@@ -1646,15 +1319,8 @@ export const getInboxConversationMessages = <ThrowOnError extends boolean = fals
1646
1319
  /**
1647
1320
  * Send message
1648
1321
  * Send a message in a conversation. Supports text, attachments, quick replies, buttons, carousels, and message tags.
1649
- *
1650
- * **Attachment support by platform:**
1651
- * - Telegram: Images, videos, documents (up to 50MB)
1652
- * - Facebook Messenger: Images, videos, audio, files
1653
- * - Instagram: Images, videos, audio via URL (8MB images, 25MB video/audio)
1654
- * - Twitter/X: Images, videos (requires media upload)
1655
- * - Bluesky/Reddit: Not supported
1656
- *
1657
- * **Interactive messages:** Supports quick replies, buttons, templates, and reply markup. Feature availability varies by platform (Instagram, Facebook, Telegram). Unsupported fields are silently ignored.
1322
+ * Attachments: Telegram (images, videos, docs up to 50MB), Facebook (images, videos, audio, files), Instagram (images, videos, audio via URL), Twitter/X (images, videos). Not supported on Bluesky/Reddit.
1323
+ * Interactive messages (quick replies, buttons, templates, reply markup) vary by platform. Unsupported fields are silently ignored.
1658
1324
  *
1659
1325
  */
1660
1326
  export const sendInboxMessage = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<SendInboxMessageData, ThrowOnError>) => {
@@ -1678,7 +1344,7 @@ export const editInboxMessage = <ThrowOnError extends boolean = false>(options:
1678
1344
  };
1679
1345
 
1680
1346
  /**
1681
- * Get Facebook persistent menu
1347
+ * Get FB persistent menu
1682
1348
  * Get the persistent menu configuration for a Facebook Messenger account.
1683
1349
  */
1684
1350
  export const getMessengerMenu = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<GetMessengerMenuData, ThrowOnError>) => {
@@ -1689,7 +1355,7 @@ export const getMessengerMenu = <ThrowOnError extends boolean = false>(options:
1689
1355
  };
1690
1356
 
1691
1357
  /**
1692
- * Set Facebook persistent menu
1358
+ * Set FB persistent menu
1693
1359
  * Set the persistent menu for a Facebook Messenger account. Max 3 top-level items, max 5 nested items.
1694
1360
  */
1695
1361
  export const setMessengerMenu = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<SetMessengerMenuData, ThrowOnError>) => {
@@ -1700,7 +1366,7 @@ export const setMessengerMenu = <ThrowOnError extends boolean = false>(options:
1700
1366
  };
1701
1367
 
1702
1368
  /**
1703
- * Delete Facebook persistent menu
1369
+ * Delete FB persistent menu
1704
1370
  */
1705
1371
  export const deleteMessengerMenu = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<DeleteMessengerMenuData, ThrowOnError>) => {
1706
1372
  return (options?.client ?? client).delete<DeleteMessengerMenuResponse, DeleteMessengerMenuError, ThrowOnError>({
@@ -1710,7 +1376,7 @@ export const deleteMessengerMenu = <ThrowOnError extends boolean = false>(option
1710
1376
  };
1711
1377
 
1712
1378
  /**
1713
- * Get Instagram ice breakers
1379
+ * Get IG ice breakers
1714
1380
  * Get the ice breaker configuration for an Instagram account.
1715
1381
  */
1716
1382
  export const getInstagramIceBreakers = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<GetInstagramIceBreakersData, ThrowOnError>) => {
@@ -1721,7 +1387,7 @@ export const getInstagramIceBreakers = <ThrowOnError extends boolean = false>(op
1721
1387
  };
1722
1388
 
1723
1389
  /**
1724
- * Set Instagram ice breakers
1390
+ * Set IG ice breakers
1725
1391
  * Set ice breakers for an Instagram account. Max 4 ice breakers, question max 80 chars.
1726
1392
  */
1727
1393
  export const setInstagramIceBreakers = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<SetInstagramIceBreakersData, ThrowOnError>) => {
@@ -1732,7 +1398,7 @@ export const setInstagramIceBreakers = <ThrowOnError extends boolean = false>(op
1732
1398
  };
1733
1399
 
1734
1400
  /**
1735
- * Delete Instagram ice breakers
1401
+ * Delete IG ice breakers
1736
1402
  */
1737
1403
  export const deleteInstagramIceBreakers = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<DeleteInstagramIceBreakersData, ThrowOnError>) => {
1738
1404
  return (options?.client ?? client).delete<DeleteInstagramIceBreakersResponse, DeleteInstagramIceBreakersError, ThrowOnError>({
@@ -1742,7 +1408,7 @@ export const deleteInstagramIceBreakers = <ThrowOnError extends boolean = false>
1742
1408
  };
1743
1409
 
1744
1410
  /**
1745
- * Get Telegram bot commands
1411
+ * Get TG bot commands
1746
1412
  * Get the bot commands configuration for a Telegram account.
1747
1413
  */
1748
1414
  export const getTelegramCommands = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<GetTelegramCommandsData, ThrowOnError>) => {
@@ -1753,7 +1419,7 @@ export const getTelegramCommands = <ThrowOnError extends boolean = false>(option
1753
1419
  };
1754
1420
 
1755
1421
  /**
1756
- * Set Telegram bot commands
1422
+ * Set TG bot commands
1757
1423
  * Set bot commands for a Telegram account.
1758
1424
  */
1759
1425
  export const setTelegramCommands = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<SetTelegramCommandsData, ThrowOnError>) => {
@@ -1764,7 +1430,7 @@ export const setTelegramCommands = <ThrowOnError extends boolean = false>(option
1764
1430
  };
1765
1431
 
1766
1432
  /**
1767
- * Delete Telegram bot commands
1433
+ * Delete TG bot commands
1768
1434
  */
1769
1435
  export const deleteTelegramCommands = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<DeleteTelegramCommandsData, ThrowOnError>) => {
1770
1436
  return (options?.client ?? client).delete<DeleteTelegramCommandsResponse, DeleteTelegramCommandsError, ThrowOnError>({
@@ -1778,7 +1444,7 @@ export const deleteTelegramCommands = <ThrowOnError extends boolean = false>(opt
1778
1444
  * Fetch posts with their comment counts from all connected accounts.
1779
1445
  * Aggregates data from multiple accounts in a single API call.
1780
1446
  *
1781
- * **Supported platforms:** Facebook, Instagram, Twitter/X, Bluesky, Threads, YouTube, LinkedIn, Reddit, TikTok (write-only)
1447
+ * Supported platforms: Facebook, Instagram, Twitter/X, Bluesky, Threads, YouTube, LinkedIn, Reddit, TikTok (write-only).
1782
1448
  *
1783
1449
  */
1784
1450
  export const listInboxComments = <ThrowOnError extends boolean = false>(options?: OptionsLegacyParser<ListInboxCommentsData, ThrowOnError>) => {
@@ -1850,11 +1516,8 @@ export const unhideInboxComment = <ThrowOnError extends boolean = false>(options
1850
1516
 
1851
1517
  /**
1852
1518
  * Like comment
1853
- * Like or upvote a comment on a post.
1854
- *
1855
- * **Supported platforms:** Facebook, Twitter/X, Bluesky, Reddit
1856
- *
1857
- * For Bluesky, the `cid` (content identifier) is required in the request body.
1519
+ * Like or upvote a comment on a post. Supported platforms: Facebook, Twitter/X, Bluesky, Reddit.
1520
+ * For Bluesky, the cid (content identifier) is required in the request body.
1858
1521
  *
1859
1522
  */
1860
1523
  export const likeInboxComment = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<LikeInboxCommentData, ThrowOnError>) => {
@@ -1866,11 +1529,8 @@ export const likeInboxComment = <ThrowOnError extends boolean = false>(options:
1866
1529
 
1867
1530
  /**
1868
1531
  * Unlike comment
1869
- * Remove a like from a comment.
1870
- *
1871
- * **Supported platforms:** Facebook, Twitter/X, Bluesky, Reddit
1872
- *
1873
- * For Bluesky, the `likeUri` query parameter is required.
1532
+ * Remove a like from a comment. Supported platforms: Facebook, Twitter/X, Bluesky, Reddit.
1533
+ * For Bluesky, the likeUri query parameter is required.
1874
1534
  *
1875
1535
  */
1876
1536
  export const unlikeInboxComment = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<UnlikeInboxCommentData, ThrowOnError>) => {
@@ -1882,20 +1542,8 @@ export const unlikeInboxComment = <ThrowOnError extends boolean = false>(options
1882
1542
 
1883
1543
  /**
1884
1544
  * Send private reply
1885
- * Send a private direct message to the author of a comment on your post.
1886
- * This is useful for handling customer inquiries or sensitive matters privately.
1887
- *
1888
- * **Supported platforms:** Instagram, Facebook
1889
- *
1890
- * **Limitations:**
1891
- * - Only ONE private reply per comment (platform API restriction)
1892
- * - Must be sent within 7 days of the comment being posted
1893
- * - Only works for comments on posts owned by the connected account
1894
- * - Text only (no media attachments)
1895
- * - Instagram: message goes to the user's Inbox (if they follow you) or Message Requests (if they don't). Requires `instagram_business_manage_messages` permission.
1896
- * - Facebook: message opens a Messenger conversation with the commenter. Requires `pages_messaging` permission.
1897
- *
1898
- * **Note:** Both permissions are already included in Late's OAuth flow. This does not create a conversation thread until the user replies back.
1545
+ * Send a private direct message to the author of a comment on your post. Supported platforms: Instagram, Facebook.
1546
+ * Only one private reply per comment (platform restriction), must be sent within 7 days, only for comments on your own posts, text only. Instagram messages go to Inbox or Message Requests; Facebook opens a Messenger conversation. Both permissions are already included in Late's OAuth flow.
1899
1547
  *
1900
1548
  */
1901
1549
  export const sendPrivateReplyToComment = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<SendPrivateReplyToCommentData, ThrowOnError>) => {
@@ -1907,10 +1555,8 @@ export const sendPrivateReplyToComment = <ThrowOnError extends boolean = false>(
1907
1555
 
1908
1556
  /**
1909
1557
  * List reviews
1910
- * Fetch reviews from all connected Facebook Pages and Google Business accounts.
1911
- * Aggregates data with filtering and sorting options.
1912
- *
1913
- * **Supported platforms:** Facebook, Google Business
1558
+ * Fetch reviews from all connected Facebook Pages and Google Business accounts. Aggregates data with filtering and sorting options.
1559
+ * Supported platforms: Facebook, Google Business.
1914
1560
  *
1915
1561
  */
1916
1562
  export const listInboxReviews = <ThrowOnError extends boolean = false>(options?: OptionsLegacyParser<ListInboxReviewsData, ThrowOnError>) => {