@getlatedev/node 0.1.24 → 0.1.26

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,8 @@ 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
+ * Accepts both Late Post IDs and External Post IDs (auto-resolved). Data is cached and refreshed at most once per hour. For follower stats, use /v1/accounts/follower-stats.
149
138
  *
150
139
  */
151
140
  export const getAnalytics = <ThrowOnError extends boolean = false>(options?: OptionsLegacyParser<GetAnalyticsData, ThrowOnError>) => {
@@ -157,18 +146,8 @@ export const getAnalytics = <ThrowOnError extends boolean = false>(options?: Opt
157
146
 
158
147
  /**
159
148
  * Get YouTube daily views
160
- * Returns historical daily view counts for a specific YouTube video.
161
- * Uses YouTube Analytics API v2 to fetch daily breakdowns including views,
162
- * watch time, and subscriber changes.
163
- *
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.
149
+ * Returns daily view counts for a YouTube video including views, watch time, and subscriber changes.
150
+ * Requires yt-analytics.readonly scope (re-authorization may be needed). Data has a 2-3 day delay. Max 90 days, defaults to last 30 days.
172
151
  *
173
152
  */
174
153
  export const getYouTubeDailyViews = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<GetYouTubeDailyViewsData, ThrowOnError>) => {
@@ -180,6 +159,7 @@ export const getYouTubeDailyViews = <ThrowOnError extends boolean = false>(optio
180
159
 
181
160
  /**
182
161
  * List groups
162
+ * Returns all account groups for the authenticated user, including group names and associated account IDs.
183
163
  */
184
164
  export const listAccountGroups = <ThrowOnError extends boolean = false>(options?: OptionsLegacyParser<unknown, ThrowOnError>) => {
185
165
  return (options?.client ?? client).get<ListAccountGroupsResponse, ListAccountGroupsError, ThrowOnError>({
@@ -190,6 +170,7 @@ export const listAccountGroups = <ThrowOnError extends boolean = false>(options?
190
170
 
191
171
  /**
192
172
  * Create group
173
+ * Creates a new account group with a name and a list of social account IDs.
193
174
  */
194
175
  export const createAccountGroup = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<CreateAccountGroupData, ThrowOnError>) => {
195
176
  return (options?.client ?? client).post<CreateAccountGroupResponse, CreateAccountGroupError, ThrowOnError>({
@@ -200,6 +181,7 @@ export const createAccountGroup = <ThrowOnError extends boolean = false>(options
200
181
 
201
182
  /**
202
183
  * Update group
184
+ * Updates the name or account list of an existing group. You can rename the group, change its accounts, or both.
203
185
  */
204
186
  export const updateAccountGroup = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<UpdateAccountGroupData, ThrowOnError>) => {
205
187
  return (options?.client ?? client).put<UpdateAccountGroupResponse, UpdateAccountGroupError, ThrowOnError>({
@@ -210,6 +192,7 @@ export const updateAccountGroup = <ThrowOnError extends boolean = false>(options
210
192
 
211
193
  /**
212
194
  * Delete group
195
+ * Permanently deletes an account group. The accounts themselves are not affected.
213
196
  */
214
197
  export const deleteAccountGroup = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<DeleteAccountGroupData, ThrowOnError>) => {
215
198
  return (options?.client ?? client).delete<DeleteAccountGroupResponse, DeleteAccountGroupError, ThrowOnError>({
@@ -220,14 +203,7 @@ export const deleteAccountGroup = <ThrowOnError extends boolean = false>(options
220
203
 
221
204
  /**
222
205
  * Get presigned upload URL
223
- * Get a presigned URL to upload files directly to cloud storage. Supports files up to 5GB.
224
- *
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
230
- *
206
+ * Get a presigned URL to upload files directly to cloud storage (up to 5GB). Returns an uploadUrl and publicUrl. PUT your file to the uploadUrl, then use the publicUrl in your posts.
231
207
  */
232
208
  export const getMediaPresignedUrl = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<GetMediaPresignedUrlData, ThrowOnError>) => {
233
209
  return (options?.client ?? client).post<GetMediaPresignedUrlResponse, GetMediaPresignedUrlError, ThrowOnError>({
@@ -238,6 +214,7 @@ export const getMediaPresignedUrl = <ThrowOnError extends boolean = false>(optio
238
214
 
239
215
  /**
240
216
  * Search posts
217
+ * Search Reddit posts using a connected account. Optionally scope to a specific subreddit.
241
218
  */
242
219
  export const searchReddit = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<SearchRedditData, ThrowOnError>) => {
243
220
  return (options?.client ?? client).get<SearchRedditResponse, SearchRedditError, ThrowOnError>({
@@ -248,6 +225,7 @@ export const searchReddit = <ThrowOnError extends boolean = false>(options: Opti
248
225
 
249
226
  /**
250
227
  * Get subreddit feed
228
+ * Fetch posts from a subreddit feed. Supports sorting, time filtering, and cursor-based pagination.
251
229
  */
252
230
  export const getRedditFeed = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<GetRedditFeedData, ThrowOnError>) => {
253
231
  return (options?.client ?? client).get<GetRedditFeedResponse, GetRedditFeedError, ThrowOnError>({
@@ -258,6 +236,7 @@ export const getRedditFeed = <ThrowOnError extends boolean = false>(options: Opt
258
236
 
259
237
  /**
260
238
  * Get plan and usage stats
239
+ * Returns the current plan name, billing period, plan limits, and usage counts.
261
240
  */
262
241
  export const getUsageStats = <ThrowOnError extends boolean = false>(options?: OptionsLegacyParser<unknown, ThrowOnError>) => {
263
242
  return (options?.client ?? client).get<GetUsageStatsResponse, GetUsageStatsError, ThrowOnError>({
@@ -268,15 +247,7 @@ export const getUsageStats = <ThrowOnError extends boolean = false>(options?: Op
268
247
 
269
248
  /**
270
249
  * 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.
274
- *
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.
279
- *
250
+ * Returns a paginated list of posts. Published posts include platformPostUrl with the public URL on each platform.
280
251
  */
281
252
  export const listPosts = <ThrowOnError extends boolean = false>(options?: OptionsLegacyParser<ListPostsData, ThrowOnError>) => {
282
253
  return (options?.client ?? client).get<ListPostsResponse, ListPostsError, ThrowOnError>({
@@ -287,23 +258,8 @@ export const listPosts = <ThrowOnError extends boolean = false>(options?: Option
287
258
 
288
259
  /**
289
260
  * 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
261
+ * Create and optionally publish a post. Immediate posts (publishNow: true) include platformPostUrl in the response.
262
+ * Content is optional when media is attached or all platforms have customContent. See each platform's schema for media constraints.
307
263
  *
308
264
  */
309
265
  export const createPost = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<CreatePostData, ThrowOnError>) => {
@@ -315,8 +271,7 @@ export const createPost = <ThrowOnError extends boolean = false>(options: Option
315
271
 
316
272
  /**
317
273
  * 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.
274
+ * Fetch a single post by ID. For published posts, this returns platformPostUrl for each platform.
320
275
  *
321
276
  */
322
277
  export const getPost = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<GetPostData, ThrowOnError>) => {
@@ -341,10 +296,7 @@ export const updatePost = <ThrowOnError extends boolean = false>(options: Option
341
296
 
342
297
  /**
343
298
  * Delete post
344
- * Delete a draft or scheduled post from Late. Only posts that have not been published can be deleted.
345
- * To remove a published post from a social media platform, use the [Unpublish endpoint](#tag/Posts/operation/unpublishPost) instead.
346
- * When deleting a scheduled or draft post that consumed upload quota, the quota will be automatically refunded.
347
- *
299
+ * Delete a draft or scheduled post from Late. Published posts cannot be deleted; use the Unpublish endpoint instead. Upload quota is automatically refunded.
348
300
  */
349
301
  export const deletePost = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<DeletePostData, ThrowOnError>) => {
350
302
  return (options?.client ?? client).delete<DeletePostResponse, DeletePostError, ThrowOnError>({
@@ -355,6 +307,7 @@ export const deletePost = <ThrowOnError extends boolean = false>(options: Option
355
307
 
356
308
  /**
357
309
  * Bulk upload from CSV
310
+ * Create multiple posts by uploading a CSV file. Use dryRun=true to validate without creating posts.
358
311
  */
359
312
  export const bulkUploadPosts = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<BulkUploadPostsData, ThrowOnError>) => {
360
313
  return (options?.client ?? client).post<BulkUploadPostsResponse, BulkUploadPostsError, ThrowOnError>({
@@ -370,6 +323,7 @@ export const bulkUploadPosts = <ThrowOnError extends boolean = false>(options: O
370
323
 
371
324
  /**
372
325
  * Retry failed post
326
+ * Immediately retries publishing a failed post. Returns the updated post with its new status.
373
327
  */
374
328
  export const retryPost = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<RetryPostData, ThrowOnError>) => {
375
329
  return (options?.client ?? client).post<RetryPostResponse, RetryPostError, ThrowOnError>({
@@ -380,21 +334,8 @@ export const retryPost = <ThrowOnError extends boolean = false>(options: Options
380
334
 
381
335
  /**
382
336
  * 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.
337
+ * Deletes a published post from the specified platform. The post record in Late is kept but its status is updated to cancelled.
338
+ * Not supported on Instagram, TikTok, or Snapchat. Threaded posts delete all items. YouTube deletion is permanent.
398
339
  *
399
340
  */
400
341
  export const unpublishPost = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<UnpublishPostData, ThrowOnError>) => {
@@ -406,6 +347,7 @@ export const unpublishPost = <ThrowOnError extends boolean = false>(options: Opt
406
347
 
407
348
  /**
408
349
  * List users
350
+ * Returns all users in the workspace including roles and profile access. Also returns the currentUserId of the caller.
409
351
  */
410
352
  export const listUsers = <ThrowOnError extends boolean = false>(options?: OptionsLegacyParser<unknown, ThrowOnError>) => {
411
353
  return (options?.client ?? client).get<ListUsersResponse, ListUsersError, ThrowOnError>({
@@ -416,6 +358,7 @@ export const listUsers = <ThrowOnError extends boolean = false>(options?: Option
416
358
 
417
359
  /**
418
360
  * Get user
361
+ * Returns a single user's details by ID, including name, email, and role.
419
362
  */
420
363
  export const getUser = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<GetUserData, ThrowOnError>) => {
421
364
  return (options?.client ?? client).get<GetUserResponse, GetUserError, ThrowOnError>({
@@ -426,9 +369,7 @@ export const getUser = <ThrowOnError extends boolean = false>(options: OptionsLe
426
369
 
427
370
  /**
428
371
  * 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).
431
- *
372
+ * Returns profiles sorted by creation date. Use includeOverLimit=true to include profiles that exceed the plan limit.
432
373
  */
433
374
  export const listProfiles = <ThrowOnError extends boolean = false>(options?: OptionsLegacyParser<ListProfilesData, ThrowOnError>) => {
434
375
  return (options?.client ?? client).get<ListProfilesResponse, ListProfilesError, ThrowOnError>({
@@ -439,6 +380,7 @@ export const listProfiles = <ThrowOnError extends boolean = false>(options?: Opt
439
380
 
440
381
  /**
441
382
  * Create profile
383
+ * Creates a new profile with a name, optional description, and color.
442
384
  */
443
385
  export const createProfile = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<CreateProfileData, ThrowOnError>) => {
444
386
  return (options?.client ?? client).post<CreateProfileResponse, CreateProfileError, ThrowOnError>({
@@ -449,6 +391,7 @@ export const createProfile = <ThrowOnError extends boolean = false>(options: Opt
449
391
 
450
392
  /**
451
393
  * Get profile
394
+ * Returns a single profile by ID, including its name, color, and default status.
452
395
  */
453
396
  export const getProfile = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<GetProfileData, ThrowOnError>) => {
454
397
  return (options?.client ?? client).get<GetProfileResponse, GetProfileError, ThrowOnError>({
@@ -459,6 +402,7 @@ export const getProfile = <ThrowOnError extends boolean = false>(options: Option
459
402
 
460
403
  /**
461
404
  * Update profile
405
+ * Updates a profile's name, description, color, or default status.
462
406
  */
463
407
  export const updateProfile = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<UpdateProfileData, ThrowOnError>) => {
464
408
  return (options?.client ?? client).put<UpdateProfileResponse, UpdateProfileError, ThrowOnError>({
@@ -469,6 +413,7 @@ export const updateProfile = <ThrowOnError extends boolean = false>(options: Opt
469
413
 
470
414
  /**
471
415
  * Delete profile
416
+ * Permanently deletes a profile by ID.
472
417
  */
473
418
  export const deleteProfile = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<DeleteProfileData, ThrowOnError>) => {
474
419
  return (options?.client ?? client).delete<DeleteProfileResponse, DeleteProfileError, ThrowOnError>({
@@ -479,10 +424,7 @@ export const deleteProfile = <ThrowOnError extends boolean = false>(options: Opt
479
424
 
480
425
  /**
481
426
  * List accounts
482
- * Returns list of connected social accounts.
483
- * By default, only returns accounts from profiles within the user's plan limit.
484
- * Follower count data (followersCount, followersLastUpdated) is only included if user has analytics add-on.
485
- *
427
+ * Returns connected social accounts. Only includes accounts within the plan limit by default. Follower data requires analytics add-on.
486
428
  */
487
429
  export const listAccounts = <ThrowOnError extends boolean = false>(options?: OptionsLegacyParser<ListAccountsData, ThrowOnError>) => {
488
430
  return (options?.client ?? client).get<ListAccountsResponse, ListAccountsError, ThrowOnError>({
@@ -494,9 +436,7 @@ export const listAccounts = <ThrowOnError extends boolean = false>(options?: Opt
494
436
  /**
495
437
  * Get follower stats
496
438
  * 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.
439
+ * Requires analytics add-on subscription. Follower counts are refreshed once per day.
500
440
  *
501
441
  */
502
442
  export const getFollowerStats = <ThrowOnError extends boolean = false>(options?: OptionsLegacyParser<GetFollowerStatsData, ThrowOnError>) => {
@@ -508,6 +448,7 @@ export const getFollowerStats = <ThrowOnError extends boolean = false>(options?:
508
448
 
509
449
  /**
510
450
  * Update account
451
+ * Updates a connected social account's display name or username override.
511
452
  */
512
453
  export const updateAccount = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<UpdateAccountData, ThrowOnError>) => {
513
454
  return (options?.client ?? client).put<UpdateAccountResponse, UpdateAccountError, ThrowOnError>({
@@ -518,6 +459,7 @@ export const updateAccount = <ThrowOnError extends boolean = false>(options: Opt
518
459
 
519
460
  /**
520
461
  * Disconnect account
462
+ * Disconnects and removes a connected social account.
521
463
  */
522
464
  export const deleteAccount = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<DeleteAccountData, ThrowOnError>) => {
523
465
  return (options?.client ?? client).delete<DeleteAccountResponse, DeleteAccountError, ThrowOnError>({
@@ -528,10 +470,7 @@ export const deleteAccount = <ThrowOnError extends boolean = false>(options: Opt
528
470
 
529
471
  /**
530
472
  * Check accounts health
531
- * Returns the health status of all connected social accounts, including token validity,
532
- * permissions status, and any issues that need attention. Useful for monitoring account
533
- * connections and identifying accounts that need reconnection.
534
- *
473
+ * Returns health status of all connected accounts including token validity, permissions, and issues needing attention.
535
474
  */
536
475
  export const getAllAccountsHealth = <ThrowOnError extends boolean = false>(options?: OptionsLegacyParser<GetAllAccountsHealthData, ThrowOnError>) => {
537
476
  return (options?.client ?? client).get<GetAllAccountsHealthResponse, GetAllAccountsHealthError, ThrowOnError>({
@@ -542,9 +481,7 @@ export const getAllAccountsHealth = <ThrowOnError extends boolean = false>(optio
542
481
 
543
482
  /**
544
483
  * Check account health
545
- * Returns detailed health information for a specific social account, including token status,
546
- * granted permissions, missing permissions, and actionable recommendations.
547
- *
484
+ * Returns detailed health info for a specific account including token status, permissions, and recommendations.
548
485
  */
549
486
  export const getAccountHealth = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<GetAccountHealthData, ThrowOnError>) => {
550
487
  return (options?.client ?? client).get<GetAccountHealthResponse, GetAccountHealthError, ThrowOnError>({
@@ -555,6 +492,7 @@ export const getAccountHealth = <ThrowOnError extends boolean = false>(options:
555
492
 
556
493
  /**
557
494
  * List keys
495
+ * Returns all API keys for the authenticated user. Keys are returned with a preview only, not the full key value.
558
496
  */
559
497
  export const listApiKeys = <ThrowOnError extends boolean = false>(options?: OptionsLegacyParser<unknown, ThrowOnError>) => {
560
498
  return (options?.client ?? client).get<ListApiKeysResponse, ListApiKeysError, ThrowOnError>({
@@ -565,6 +503,7 @@ export const listApiKeys = <ThrowOnError extends boolean = false>(options?: Opti
565
503
 
566
504
  /**
567
505
  * Create key
506
+ * Creates a new API key with an optional expiry. The full key value is only returned once in the response.
568
507
  */
569
508
  export const createApiKey = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<CreateApiKeyData, ThrowOnError>) => {
570
509
  return (options?.client ?? client).post<CreateApiKeyResponse, CreateApiKeyError, ThrowOnError>({
@@ -575,6 +514,7 @@ export const createApiKey = <ThrowOnError extends boolean = false>(options: Opti
575
514
 
576
515
  /**
577
516
  * Delete key
517
+ * Permanently revokes and deletes an API key.
578
518
  */
579
519
  export const deleteApiKey = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<DeleteApiKeyData, ThrowOnError>) => {
580
520
  return (options?.client ?? client).delete<DeleteApiKeyResponse, DeleteApiKeyError, ThrowOnError>({
@@ -598,27 +538,8 @@ export const createInviteToken = <ThrowOnError extends boolean = false>(options:
598
538
 
599
539
  /**
600
540
  * 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).
541
+ * Initiate an OAuth connection flow. Returns an authUrl to redirect the user to.
542
+ * Standard flow: Late hosts the selection UI, then redirects to your redirect_url. Headless mode (headless=true): user is redirected to your redirect_url with OAuth data for custom UI. Use the platform-specific selection endpoints to complete.
622
543
  *
623
544
  */
624
545
  export const getConnectUrl = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<GetConnectUrlData, ThrowOnError>) => {
@@ -630,6 +551,7 @@ export const getConnectUrl = <ThrowOnError extends boolean = false>(options: Opt
630
551
 
631
552
  /**
632
553
  * Complete OAuth callback
554
+ * Exchange the OAuth authorization code for tokens and connect the account to the specified profile.
633
555
  */
634
556
  export const handleOAuthCallback = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<HandleOAuthCallbackData, ThrowOnError>) => {
635
557
  return (options?.client ?? client).post<HandleOAuthCallbackResponse, HandleOAuthCallbackError, ThrowOnError>({
@@ -640,18 +562,7 @@ export const handleOAuthCallback = <ThrowOnError extends boolean = false>(option
640
562
 
641
563
  /**
642
564
  * 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
- *
565
+ * 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
566
  */
656
567
  export const listFacebookPages = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<ListFacebookPagesData, ThrowOnError>) => {
657
568
  return (options?.client ?? client).get<ListFacebookPagesResponse, ListFacebookPagesError, ThrowOnError>({
@@ -662,16 +573,7 @@ export const listFacebookPages = <ThrowOnError extends boolean = false>(options:
662
573
 
663
574
  /**
664
575
  * 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.
674
- *
576
+ * Complete the headless flow by saving the user's selected Facebook page. Pass the userProfile from the OAuth redirect and use X-Connect-Token if connecting via API key.
675
577
  */
676
578
  export const selectFacebookPage = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<SelectFacebookPageData, ThrowOnError>) => {
677
579
  return (options?.client ?? client).post<SelectFacebookPageResponse, SelectFacebookPageError, ThrowOnError>({
@@ -681,19 +583,8 @@ export const selectFacebookPage = <ThrowOnError extends boolean = false>(options
681
583
  };
682
584
 
683
585
  /**
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).
696
- *
586
+ * List GBP locations
587
+ * For headless flows. Returns the list of GBP locations the user can manage. Use X-Connect-Token if connecting via API key.
697
588
  */
698
589
  export const listGoogleBusinessLocations = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<ListGoogleBusinessLocationsData, ThrowOnError>) => {
699
590
  return (options?.client ?? client).get<ListGoogleBusinessLocationsResponse, ListGoogleBusinessLocationsError, ThrowOnError>({
@@ -703,17 +594,8 @@ export const listGoogleBusinessLocations = <ThrowOnError extends boolean = false
703
594
  };
704
595
 
705
596
  /**
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.
716
- *
597
+ * Select GBP location
598
+ * Complete the headless flow by saving the user's selected GBP location. Include userProfile from the OAuth redirect (contains refresh token). Use X-Connect-Token if connecting via API key.
717
599
  */
718
600
  export const selectGoogleBusinessLocation = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<SelectGoogleBusinessLocationData, ThrowOnError>) => {
719
601
  return (options?.client ?? client).post<SelectGoogleBusinessLocationResponse, SelectGoogleBusinessLocationError, ThrowOnError>({
@@ -724,17 +606,7 @@ export const selectGoogleBusinessLocation = <ThrowOnError extends boolean = fals
724
606
 
725
607
  /**
726
608
  * 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.
737
- *
609
+ * Returns reviews for a GBP account including ratings, comments, and owner replies. Use nextPageToken for pagination.
738
610
  */
739
611
  export const getGoogleBusinessReviews = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<GetGoogleBusinessReviewsData, ThrowOnError>) => {
740
612
  return (options?.client ?? client).get<GetGoogleBusinessReviewsResponse, GetGoogleBusinessReviewsError, ThrowOnError>({
@@ -745,16 +617,7 @@ export const getGoogleBusinessReviews = <ThrowOnError extends boolean = false>(o
745
617
 
746
618
  /**
747
619
  * 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
- *
756
- * Only available for locations with food menu support (restaurants, cafes, etc.).
757
- *
620
+ * Returns food menus for a GBP location including sections, items, pricing, and dietary info. Only for locations with food menu support.
758
621
  */
759
622
  export const getGoogleBusinessFoodMenus = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<GetGoogleBusinessFoodMenusData, ThrowOnError>) => {
760
623
  return (options?.client ?? client).get<GetGoogleBusinessFoodMenusResponse, GetGoogleBusinessFoodMenusError, ThrowOnError>({
@@ -765,12 +628,7 @@ export const getGoogleBusinessFoodMenus = <ThrowOnError extends boolean = false>
765
628
 
766
629
  /**
767
630
  * Update food menus
768
- * Updates the food menus for a connected Google Business Profile location.
769
- *
770
- * Send the full menus array. Use `updateMask` for partial updates (e.g. `"menus"` to only update the menus field).
771
- *
772
- * Each menu can contain sections, and each section can contain items with pricing, dietary restrictions, allergens, and more.
773
- *
631
+ * Updates food menus for a GBP location. Send the full menus array. Use updateMask for partial updates.
774
632
  */
775
633
  export const updateGoogleBusinessFoodMenus = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<UpdateGoogleBusinessFoodMenusData, ThrowOnError>) => {
776
634
  return (options?.client ?? client).put<UpdateGoogleBusinessFoodMenusResponse, UpdateGoogleBusinessFoodMenusError, ThrowOnError>({
@@ -781,11 +639,7 @@ export const updateGoogleBusinessFoodMenus = <ThrowOnError extends boolean = fal
781
639
 
782
640
  /**
783
641
  * Get location details
784
- * Fetches detailed location information including opening hours, special hours,
785
- * business description, phone numbers, website, categories, and more.
786
- *
787
- * Use the `readMask` query parameter to request specific fields.
788
- *
642
+ * Returns detailed GBP location info (hours, description, phone, website, categories). Use readMask to request specific fields.
789
643
  */
790
644
  export const getGoogleBusinessLocationDetails = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<GetGoogleBusinessLocationDetailsData, ThrowOnError>) => {
791
645
  return (options?.client ?? client).get<GetGoogleBusinessLocationDetailsResponse, GetGoogleBusinessLocationDetailsError, ThrowOnError>({
@@ -796,18 +650,7 @@ export const getGoogleBusinessLocationDetails = <ThrowOnError extends boolean =
796
650
 
797
651
  /**
798
652
  * Update location details
799
- * 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
810
- *
653
+ * Updates GBP location details (hours, description, phone, website). The updateMask field is required and specifies which fields to update.
811
654
  */
812
655
  export const updateGoogleBusinessLocationDetails = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<UpdateGoogleBusinessLocationDetailsData, ThrowOnError>) => {
813
656
  return (options?.client ?? client).put<UpdateGoogleBusinessLocationDetailsResponse, UpdateGoogleBusinessLocationDetailsError, ThrowOnError>({
@@ -833,17 +676,7 @@ export const listGoogleBusinessMedia = <ThrowOnError extends boolean = false>(op
833
676
  * Upload photo
834
677
  * Creates a media item (photo) for a location from a publicly accessible URL.
835
678
  *
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
679
+ * Categories determine where the photo appears: COVER, PROFILE, LOGO, EXTERIOR, INTERIOR, FOOD_AND_DRINK, MENU, PRODUCT, TEAMS, ADDITIONAL.
847
680
  *
848
681
  */
849
682
  export const createGoogleBusinessMedia = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<CreateGoogleBusinessMediaData, ThrowOnError>) => {
@@ -855,6 +688,7 @@ export const createGoogleBusinessMedia = <ThrowOnError extends boolean = false>(
855
688
 
856
689
  /**
857
690
  * Delete photo
691
+ * Deletes a photo or media item from a GBP location.
858
692
  */
859
693
  export const deleteGoogleBusinessMedia = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<DeleteGoogleBusinessMediaData, ThrowOnError>) => {
860
694
  return (options?.client ?? client).delete<DeleteGoogleBusinessMediaResponse, DeleteGoogleBusinessMediaError, ThrowOnError>({
@@ -865,16 +699,7 @@ export const deleteGoogleBusinessMedia = <ThrowOnError extends boolean = false>(
865
699
 
866
700
  /**
867
701
  * 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.
877
- *
702
+ * Returns GBP location attributes (amenities, services, accessibility, payment types). Available attributes vary by business category.
878
703
  */
879
704
  export const getGoogleBusinessAttributes = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<GetGoogleBusinessAttributesData, ThrowOnError>) => {
880
705
  return (options?.client ?? client).get<GetGoogleBusinessAttributesResponse, GetGoogleBusinessAttributesError, ThrowOnError>({
@@ -887,7 +712,7 @@ export const getGoogleBusinessAttributes = <ThrowOnError extends boolean = false
887
712
  * Update attributes
888
713
  * Updates location attributes (amenities, services, etc.).
889
714
  *
890
- * The `attributeMask` specifies which attributes to update (comma-separated).
715
+ * The attributeMask specifies which attributes to update (comma-separated).
891
716
  *
892
717
  */
893
718
  export const updateGoogleBusinessAttributes = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<UpdateGoogleBusinessAttributesData, ThrowOnError>) => {
@@ -915,14 +740,7 @@ export const listGoogleBusinessPlaceActions = <ThrowOnError extends boolean = fa
915
740
  * Create action link
916
741
  * Creates a place action link for a location.
917
742
  *
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
743
+ * Available action types: APPOINTMENT, ONLINE_APPOINTMENT, DINING_RESERVATION, FOOD_ORDERING, FOOD_DELIVERY, FOOD_TAKEOUT, SHOP_ONLINE.
926
744
  *
927
745
  */
928
746
  export const createGoogleBusinessPlaceAction = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<CreateGoogleBusinessPlaceActionData, ThrowOnError>) => {
@@ -934,6 +752,7 @@ export const createGoogleBusinessPlaceAction = <ThrowOnError extends boolean = f
934
752
 
935
753
  /**
936
754
  * Delete action link
755
+ * Deletes a place action link (e.g. booking or ordering URL) from a GBP location.
937
756
  */
938
757
  export const deleteGoogleBusinessPlaceAction = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<DeleteGoogleBusinessPlaceActionData, ThrowOnError>) => {
939
758
  return (options?.client ?? client).delete<DeleteGoogleBusinessPlaceActionResponse, DeleteGoogleBusinessPlaceActionError, ThrowOnError>({
@@ -944,19 +763,7 @@ export const deleteGoogleBusinessPlaceAction = <ThrowOnError extends boolean = f
944
763
 
945
764
  /**
946
765
  * 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
959
- *
766
+ * Fetch pending OAuth data for headless mode using the pendingDataToken from the redirect URL. One-time use, expires after 10 minutes. No authentication required.
960
767
  */
961
768
  export const getPendingOAuthData = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<GetPendingOAuthDataData, ThrowOnError>) => {
962
769
  return (options?.client ?? client).get<GetPendingOAuthDataResponse, GetPendingOAuthDataError, ThrowOnError>({
@@ -967,17 +774,7 @@ export const getPendingOAuthData = <ThrowOnError extends boolean = false>(option
967
774
 
968
775
  /**
969
776
  * 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.
980
- *
777
+ * Fetch full LinkedIn organization details (logos, vanity names, websites) for custom UI. No authentication required, just the tempToken from OAuth.
981
778
  */
982
779
  export const listLinkedInOrganizations = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<ListLinkedInOrganizationsData, ThrowOnError>) => {
983
780
  return (options?.client ?? client).get<ListLinkedInOrganizationsResponse, ListLinkedInOrganizationsError, ThrowOnError>({
@@ -988,20 +785,7 @@ export const listLinkedInOrganizations = <ThrowOnError extends boolean = false>(
988
785
 
989
786
  /**
990
787
  * 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.
1004
- *
788
+ * Complete the LinkedIn connection flow. Set accountType to "personal" or "organization" to connect as a company page. Use X-Connect-Token if connecting via API key.
1005
789
  */
1006
790
  export const selectLinkedInOrganization = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<SelectLinkedInOrganizationData, ThrowOnError>) => {
1007
791
  return (options?.client ?? client).post<SelectLinkedInOrganizationResponse, SelectLinkedInOrganizationError, ThrowOnError>({
@@ -1012,17 +796,7 @@ export const selectLinkedInOrganization = <ThrowOnError extends boolean = false>
1012
796
 
1013
797
  /**
1014
798
  * 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.
1025
- *
799
+ * For headless flows. Returns Pinterest boards the user can post to. Use X-Connect-Token from the redirect URL.
1026
800
  */
1027
801
  export const listPinterestBoardsForSelection = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<ListPinterestBoardsForSelectionData, ThrowOnError>) => {
1028
802
  return (options?.client ?? client).get<ListPinterestBoardsForSelectionResponse, ListPinterestBoardsForSelectionError, ThrowOnError>({
@@ -1033,11 +807,7 @@ export const listPinterestBoardsForSelection = <ThrowOnError extends boolean = f
1033
807
 
1034
808
  /**
1035
809
  * 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.
810
+ * 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
811
  *
1042
812
  */
1043
813
  export const selectPinterestBoard = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<SelectPinterestBoardData, ThrowOnError>) => {
@@ -1049,17 +819,7 @@ export const selectPinterestBoard = <ThrowOnError extends boolean = false>(optio
1049
819
 
1050
820
  /**
1051
821
  * 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.
1062
- *
822
+ * For headless flows. Returns Snapchat Public Profiles the user can post to. Use X-Connect-Token from the redirect URL.
1063
823
  */
1064
824
  export const listSnapchatProfiles = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<ListSnapchatProfilesData, ThrowOnError>) => {
1065
825
  return (options?.client ?? client).get<ListSnapchatProfilesResponse, ListSnapchatProfilesError, ThrowOnError>({
@@ -1070,24 +830,7 @@ export const listSnapchatProfiles = <ThrowOnError extends boolean = false>(optio
1070
830
 
1071
831
  /**
1072
832
  * 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.
1090
- *
833
+ * Complete the Snapchat connection flow by saving the selected Public Profile. Snapchat requires a Public Profile to publish content. Use X-Connect-Token if connecting via API key.
1091
834
  */
1092
835
  export const selectSnapchatProfile = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<SelectSnapchatProfileData, ThrowOnError>) => {
1093
836
  return (options?.client ?? client).post<SelectSnapchatProfileResponse, SelectSnapchatProfileError, ThrowOnError>({
@@ -1099,8 +842,7 @@ export const selectSnapchatProfile = <ThrowOnError extends boolean = false>(opti
1099
842
  /**
1100
843
  * Connect Bluesky account
1101
844
  * 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.
845
+ * To get your userId for the state parameter, call GET /v1/users which includes a currentUserId field.
1104
846
  *
1105
847
  */
1106
848
  export const connectBlueskyCredentials = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<ConnectBlueskyCredentialsData, ThrowOnError>) => {
@@ -1112,17 +854,7 @@ export const connectBlueskyCredentials = <ThrowOnError extends boolean = false>(
1112
854
 
1113
855
  /**
1114
856
  * Generate Telegram code
1115
- * 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.
1125
- *
857
+ * Generate an access code (valid 15 minutes) for connecting a Telegram channel or group. Add the bot as admin, then send the code + @yourchannel to the bot. Poll PATCH /v1/connect/telegram to check status.
1126
858
  */
1127
859
  export const getTelegramConnectStatus = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<GetTelegramConnectStatusData, ThrowOnError>) => {
1128
860
  return (options?.client ?? client).get<GetTelegramConnectStatusResponse, GetTelegramConnectStatusError, ThrowOnError>({
@@ -1133,11 +865,7 @@ export const getTelegramConnectStatus = <ThrowOnError extends boolean = false>(o
1133
865
 
1134
866
  /**
1135
867
  * Connect Telegram directly
1136
- * Connect a Telegram channel/group directly using the chat ID.
1137
- *
1138
- * This is an alternative to the access code flow for power users who know their Telegram chat ID.
1139
- * The bot must already be added as an administrator in the channel/group.
1140
- *
868
+ * Connect a Telegram channel/group directly using the chat ID. Alternative to the access code flow. The bot must already be an admin in the channel/group.
1141
869
  */
1142
870
  export const initiateTelegramConnect = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<InitiateTelegramConnectData, ThrowOnError>) => {
1143
871
  return (options?.client ?? client).post<InitiateTelegramConnectResponse, InitiateTelegramConnectError, ThrowOnError>({
@@ -1148,14 +876,8 @@ export const initiateTelegramConnect = <ThrowOnError extends boolean = false>(op
1148
876
 
1149
877
  /**
1150
878
  * 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
879
+ * Poll this endpoint to check if a Telegram access code has been used to connect a channel/group. Recommended polling interval: 3 seconds.
880
+ * Status values: pending (waiting for user), connected (channel/group linked), expired (generate a new code).
1159
881
  *
1160
882
  */
1161
883
  export const completeTelegramConnect = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<CompleteTelegramConnectData, ThrowOnError>) => {
@@ -1178,6 +900,7 @@ export const getFacebookPages = <ThrowOnError extends boolean = false>(options:
1178
900
 
1179
901
  /**
1180
902
  * Update Facebook page
903
+ * Switch which Facebook Page is active for a connected account.
1181
904
  */
1182
905
  export const updateFacebookPage = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<UpdateFacebookPageData, ThrowOnError>) => {
1183
906
  return (options?.client ?? client).put<UpdateFacebookPageResponse, UpdateFacebookPageError, ThrowOnError>({
@@ -1188,6 +911,7 @@ export const updateFacebookPage = <ThrowOnError extends boolean = false>(options
1188
911
 
1189
912
  /**
1190
913
  * List LinkedIn orgs
914
+ * Returns LinkedIn organizations (company pages) the connected account has admin access to.
1191
915
  */
1192
916
  export const getLinkedInOrganizations = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<GetLinkedInOrganizationsData, ThrowOnError>) => {
1193
917
  return (options?.client ?? client).get<GetLinkedInOrganizationsResponse, GetLinkedInOrganizationsError, ThrowOnError>({
@@ -1198,12 +922,7 @@ export const getLinkedInOrganizations = <ThrowOnError extends boolean = false>(o
1198
922
 
1199
923
  /**
1200
924
  * 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.
1206
- *
925
+ * Returns aggregate analytics across all posts for a LinkedIn personal account. Org accounts should use /v1/analytics instead. Requires r_member_postAnalytics scope.
1207
926
  */
1208
927
  export const getLinkedInAggregateAnalytics = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<GetLinkedInAggregateAnalyticsData, ThrowOnError>) => {
1209
928
  return (options?.client ?? client).get<GetLinkedInAggregateAnalyticsResponse, GetLinkedInAggregateAnalyticsError, ThrowOnError>({
@@ -1214,23 +933,7 @@ export const getLinkedInAggregateAnalytics = <ThrowOnError extends boolean = fal
1214
933
 
1215
934
  /**
1216
935
  * 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
1233
- *
936
+ * Returns analytics for a specific LinkedIn post by URN. Works for both personal and organization accounts.
1234
937
  */
1235
938
  export const getLinkedInPostAnalytics = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<GetLinkedInPostAnalyticsData, ThrowOnError>) => {
1236
939
  return (options?.client ?? client).get<GetLinkedInPostAnalyticsResponse, GetLinkedInPostAnalyticsError, ThrowOnError>({
@@ -1241,6 +944,7 @@ export const getLinkedInPostAnalytics = <ThrowOnError extends boolean = false>(o
1241
944
 
1242
945
  /**
1243
946
  * Switch LinkedIn account type
947
+ * Switch a LinkedIn account between personal profile and organization (company page) posting.
1244
948
  */
1245
949
  export const updateLinkedInOrganization = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<UpdateLinkedInOrganizationData, ThrowOnError>) => {
1246
950
  return (options?.client ?? client).put<UpdateLinkedInOrganizationResponse, UpdateLinkedInOrganizationError, ThrowOnError>({
@@ -1251,14 +955,7 @@ export const updateLinkedInOrganization = <ThrowOnError extends boolean = false>
1251
955
 
1252
956
  /**
1253
957
  * 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.
1261
- *
958
+ * Converts a LinkedIn profile or company URL to a URN for @mentions in posts. Person mentions require org admin access. Use the returned mentionFormat in post content.
1262
959
  */
1263
960
  export const getLinkedInMentions = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<GetLinkedInMentionsData, ThrowOnError>) => {
1264
961
  return (options?.client ?? client).get<GetLinkedInMentionsResponse, GetLinkedInMentionsError, ThrowOnError>({
@@ -1269,6 +966,7 @@ export const getLinkedInMentions = <ThrowOnError extends boolean = false>(option
1269
966
 
1270
967
  /**
1271
968
  * List Pinterest boards
969
+ * Returns the boards available for a connected Pinterest account. Use this to get a board ID when creating a Pinterest post.
1272
970
  */
1273
971
  export const getPinterestBoards = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<GetPinterestBoardsData, ThrowOnError>) => {
1274
972
  return (options?.client ?? client).get<GetPinterestBoardsResponse, GetPinterestBoardsError, ThrowOnError>({
@@ -1279,6 +977,7 @@ export const getPinterestBoards = <ThrowOnError extends boolean = false>(options
1279
977
 
1280
978
  /**
1281
979
  * Set default Pinterest board
980
+ * Sets the default board used when publishing pins for this account.
1282
981
  */
1283
982
  export const updatePinterestBoards = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<UpdatePinterestBoardsData, ThrowOnError>) => {
1284
983
  return (options?.client ?? client).put<UpdatePinterestBoardsResponse, UpdatePinterestBoardsError, ThrowOnError>({
@@ -1288,7 +987,7 @@ export const updatePinterestBoards = <ThrowOnError extends boolean = false>(opti
1288
987
  };
1289
988
 
1290
989
  /**
1291
- * List Google Business locations
990
+ * List GBP locations
1292
991
  * Returns all Google Business Profile locations the connected account has access to, including the currently selected location.
1293
992
  */
1294
993
  export const getGmbLocations = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<GetGmbLocationsData, ThrowOnError>) => {
@@ -1299,7 +998,8 @@ export const getGmbLocations = <ThrowOnError extends boolean = false>(options: O
1299
998
  };
1300
999
 
1301
1000
  /**
1302
- * Update Google Business location
1001
+ * Update GBP location
1002
+ * Switch which GBP location is active for a connected account.
1303
1003
  */
1304
1004
  export const updateGmbLocation = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<UpdateGmbLocationData, ThrowOnError>) => {
1305
1005
  return (options?.client ?? client).put<UpdateGmbLocationResponse, UpdateGmbLocationError, ThrowOnError>({
@@ -1310,6 +1010,7 @@ export const updateGmbLocation = <ThrowOnError extends boolean = false>(options:
1310
1010
 
1311
1011
  /**
1312
1012
  * List Reddit subreddits
1013
+ * Returns the subreddits the connected Reddit account can post to. Use this to get a subreddit name when creating a Reddit post.
1313
1014
  */
1314
1015
  export const getRedditSubreddits = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<GetRedditSubredditsData, ThrowOnError>) => {
1315
1016
  return (options?.client ?? client).get<GetRedditSubredditsResponse, GetRedditSubredditsError, ThrowOnError>({
@@ -1320,6 +1021,7 @@ export const getRedditSubreddits = <ThrowOnError extends boolean = false>(option
1320
1021
 
1321
1022
  /**
1322
1023
  * Set default subreddit
1024
+ * Sets the default subreddit used when publishing posts for this Reddit account.
1323
1025
  */
1324
1026
  export const updateRedditSubreddits = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<UpdateRedditSubredditsData, ThrowOnError>) => {
1325
1027
  return (options?.client ?? client).put<UpdateRedditSubredditsResponse, UpdateRedditSubredditsError, ThrowOnError>({
@@ -1330,6 +1032,7 @@ export const updateRedditSubreddits = <ThrowOnError extends boolean = false>(opt
1330
1032
 
1331
1033
  /**
1332
1034
  * List subreddit flairs
1035
+ * Returns available post flairs for a subreddit. Some subreddits require a flair when posting.
1333
1036
  */
1334
1037
  export const getRedditFlairs = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<GetRedditFlairsData, ThrowOnError>) => {
1335
1038
  return (options?.client ?? client).get<GetRedditFlairsResponse, GetRedditFlairsError, ThrowOnError>({
@@ -1340,10 +1043,7 @@ export const getRedditFlairs = <ThrowOnError extends boolean = false>(options: O
1340
1043
 
1341
1044
  /**
1342
1045
  * 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
1346
- *
1046
+ * Returns queue schedules for a profile. Use all=true for all queues, or queueId for a specific one. Defaults to the default queue.
1347
1047
  */
1348
1048
  export const listQueueSlots = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<ListQueueSlotsData, ThrowOnError>) => {
1349
1049
  return (options?.client ?? client).get<ListQueueSlotsResponse, ListQueueSlotsError, ThrowOnError>({
@@ -1367,10 +1067,7 @@ export const createQueueSlot = <ThrowOnError extends boolean = false>(options: O
1367
1067
 
1368
1068
  /**
1369
1069
  * 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
1070
+ * 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
1071
  *
1375
1072
  */
1376
1073
  export const updateQueueSlot = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<UpdateQueueSlotData, ThrowOnError>) => {
@@ -1395,6 +1092,7 @@ export const deleteQueueSlot = <ThrowOnError extends boolean = false>(options: O
1395
1092
 
1396
1093
  /**
1397
1094
  * Preview upcoming slots
1095
+ * Returns the next N upcoming queue slot times for a profile as ISO datetime strings.
1398
1096
  */
1399
1097
  export const previewQueue = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<PreviewQueueData, ThrowOnError>) => {
1400
1098
  return (options?.client ?? client).get<PreviewQueueResponse, PreviewQueueError, ThrowOnError>({
@@ -1405,22 +1103,7 @@ export const previewQueue = <ThrowOnError extends boolean = false>(options: Opti
1405
1103
 
1406
1104
  /**
1407
1105
  * 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
1421
- *
1422
- * If no queueId is specified, uses the profile's default queue.
1423
- *
1106
+ * Returns the next available queue slot for preview purposes. To create a queue post, use POST /v1/posts with queuedFromProfile instead of scheduledFor.
1424
1107
  */
1425
1108
  export const getNextQueueSlot = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<GetNextQueueSlotData, ThrowOnError>) => {
1426
1109
  return (options?.client ?? client).get<GetNextQueueSlotResponse, GetNextQueueSlotError, ThrowOnError>({
@@ -1444,7 +1127,7 @@ export const getWebhookSettings = <ThrowOnError extends boolean = false>(options
1444
1127
  * Create webhook
1445
1128
  * Create a new webhook configuration. Maximum 10 webhooks per user.
1446
1129
  *
1447
- * **Note:** Webhooks are automatically disabled after 10 consecutive delivery failures.
1130
+ * Webhooks are automatically disabled after 10 consecutive delivery failures.
1448
1131
  *
1449
1132
  */
1450
1133
  export const createWebhookSettings = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<CreateWebhookSettingsData, ThrowOnError>) => {
@@ -1456,9 +1139,9 @@ export const createWebhookSettings = <ThrowOnError extends boolean = false>(opti
1456
1139
 
1457
1140
  /**
1458
1141
  * Update webhook
1459
- * Update an existing webhook configuration. All fields except `_id` are optional - only provided fields will be updated.
1142
+ * Update an existing webhook configuration. All fields except _id are optional; only provided fields will be updated.
1460
1143
  *
1461
- * **Note:** Webhooks are automatically disabled after 10 consecutive delivery failures.
1144
+ * Webhooks are automatically disabled after 10 consecutive delivery failures.
1462
1145
  *
1463
1146
  */
1464
1147
  export const updateWebhookSettings = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<UpdateWebhookSettingsData, ThrowOnError>) => {
@@ -1481,8 +1164,7 @@ export const deleteWebhookSettings = <ThrowOnError extends boolean = false>(opti
1481
1164
 
1482
1165
  /**
1483
1166
  * 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.
1167
+ * 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
1168
  *
1487
1169
  */
1488
1170
  export const testWebhook = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<TestWebhookData, ThrowOnError>) => {
@@ -1504,53 +1186,9 @@ export const getWebhookLogs = <ThrowOnError extends boolean = false>(options?: O
1504
1186
  });
1505
1187
  };
1506
1188
 
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
1189
  /**
1544
1190
  * 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.
1191
+ * 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
1192
  *
1555
1193
  */
1556
1194
  export const listPostsLogs = <ThrowOnError extends boolean = false>(options?: OptionsLegacyParser<ListPostsLogsData, ThrowOnError>) => {
@@ -1562,17 +1200,8 @@ export const listPostsLogs = <ThrowOnError extends boolean = false>(options?: Op
1562
1200
 
1563
1201
  /**
1564
1202
  * 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.
1203
+ * Retrieve connection event logs showing account connection and disconnection history. Event types: connect_success, connect_failed, disconnect, reconnect_success, reconnect_failed.
1204
+ * Logs are automatically deleted after 7 days.
1576
1205
  *
1577
1206
  */
1578
1207
  export const listConnectionLogs = <ThrowOnError extends boolean = false>(options?: OptionsLegacyParser<ListConnectionLogsData, ThrowOnError>) => {
@@ -1597,10 +1226,8 @@ export const getPostLogs = <ThrowOnError extends boolean = false>(options: Optio
1597
1226
 
1598
1227
  /**
1599
1228
  * 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
1229
+ * Fetch conversations (DMs) from all connected messaging accounts in a single API call. Supports filtering by profile and platform. Results are aggregated and deduplicated.
1230
+ * Supported platforms: Facebook, Instagram, Twitter/X, Bluesky, Reddit, Telegram.
1604
1231
  *
1605
1232
  */
1606
1233
  export const listInboxConversations = <ThrowOnError extends boolean = false>(options?: OptionsLegacyParser<ListInboxConversationsData, ThrowOnError>) => {
@@ -1645,17 +1272,7 @@ export const getInboxConversationMessages = <ThrowOnError extends boolean = fals
1645
1272
 
1646
1273
  /**
1647
1274
  * Send message
1648
- * 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.
1658
- *
1275
+ * Send a message in a conversation. Supports text, attachments, quick replies, buttons, and message tags. Attachment and interactive message support varies by platform.
1659
1276
  */
1660
1277
  export const sendInboxMessage = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<SendInboxMessageData, ThrowOnError>) => {
1661
1278
  return (options?.client ?? client).post<SendInboxMessageResponse, SendInboxMessageError, ThrowOnError>({
@@ -1678,7 +1295,7 @@ export const editInboxMessage = <ThrowOnError extends boolean = false>(options:
1678
1295
  };
1679
1296
 
1680
1297
  /**
1681
- * Get Facebook persistent menu
1298
+ * Get FB persistent menu
1682
1299
  * Get the persistent menu configuration for a Facebook Messenger account.
1683
1300
  */
1684
1301
  export const getMessengerMenu = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<GetMessengerMenuData, ThrowOnError>) => {
@@ -1689,7 +1306,7 @@ export const getMessengerMenu = <ThrowOnError extends boolean = false>(options:
1689
1306
  };
1690
1307
 
1691
1308
  /**
1692
- * Set Facebook persistent menu
1309
+ * Set FB persistent menu
1693
1310
  * Set the persistent menu for a Facebook Messenger account. Max 3 top-level items, max 5 nested items.
1694
1311
  */
1695
1312
  export const setMessengerMenu = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<SetMessengerMenuData, ThrowOnError>) => {
@@ -1700,7 +1317,8 @@ export const setMessengerMenu = <ThrowOnError extends boolean = false>(options:
1700
1317
  };
1701
1318
 
1702
1319
  /**
1703
- * Delete Facebook persistent menu
1320
+ * Delete FB persistent menu
1321
+ * Removes the persistent menu from Facebook Messenger conversations for this account.
1704
1322
  */
1705
1323
  export const deleteMessengerMenu = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<DeleteMessengerMenuData, ThrowOnError>) => {
1706
1324
  return (options?.client ?? client).delete<DeleteMessengerMenuResponse, DeleteMessengerMenuError, ThrowOnError>({
@@ -1710,7 +1328,7 @@ export const deleteMessengerMenu = <ThrowOnError extends boolean = false>(option
1710
1328
  };
1711
1329
 
1712
1330
  /**
1713
- * Get Instagram ice breakers
1331
+ * Get IG ice breakers
1714
1332
  * Get the ice breaker configuration for an Instagram account.
1715
1333
  */
1716
1334
  export const getInstagramIceBreakers = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<GetInstagramIceBreakersData, ThrowOnError>) => {
@@ -1721,7 +1339,7 @@ export const getInstagramIceBreakers = <ThrowOnError extends boolean = false>(op
1721
1339
  };
1722
1340
 
1723
1341
  /**
1724
- * Set Instagram ice breakers
1342
+ * Set IG ice breakers
1725
1343
  * Set ice breakers for an Instagram account. Max 4 ice breakers, question max 80 chars.
1726
1344
  */
1727
1345
  export const setInstagramIceBreakers = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<SetInstagramIceBreakersData, ThrowOnError>) => {
@@ -1732,7 +1350,8 @@ export const setInstagramIceBreakers = <ThrowOnError extends boolean = false>(op
1732
1350
  };
1733
1351
 
1734
1352
  /**
1735
- * Delete Instagram ice breakers
1353
+ * Delete IG ice breakers
1354
+ * Removes the ice breaker questions from an Instagram account's Messenger experience.
1736
1355
  */
1737
1356
  export const deleteInstagramIceBreakers = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<DeleteInstagramIceBreakersData, ThrowOnError>) => {
1738
1357
  return (options?.client ?? client).delete<DeleteInstagramIceBreakersResponse, DeleteInstagramIceBreakersError, ThrowOnError>({
@@ -1742,7 +1361,7 @@ export const deleteInstagramIceBreakers = <ThrowOnError extends boolean = false>
1742
1361
  };
1743
1362
 
1744
1363
  /**
1745
- * Get Telegram bot commands
1364
+ * Get TG bot commands
1746
1365
  * Get the bot commands configuration for a Telegram account.
1747
1366
  */
1748
1367
  export const getTelegramCommands = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<GetTelegramCommandsData, ThrowOnError>) => {
@@ -1753,7 +1372,7 @@ export const getTelegramCommands = <ThrowOnError extends boolean = false>(option
1753
1372
  };
1754
1373
 
1755
1374
  /**
1756
- * Set Telegram bot commands
1375
+ * Set TG bot commands
1757
1376
  * Set bot commands for a Telegram account.
1758
1377
  */
1759
1378
  export const setTelegramCommands = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<SetTelegramCommandsData, ThrowOnError>) => {
@@ -1764,7 +1383,8 @@ export const setTelegramCommands = <ThrowOnError extends boolean = false>(option
1764
1383
  };
1765
1384
 
1766
1385
  /**
1767
- * Delete Telegram bot commands
1386
+ * Delete TG bot commands
1387
+ * Clears all bot commands configured for a Telegram bot account.
1768
1388
  */
1769
1389
  export const deleteTelegramCommands = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<DeleteTelegramCommandsData, ThrowOnError>) => {
1770
1390
  return (options?.client ?? client).delete<DeleteTelegramCommandsResponse, DeleteTelegramCommandsError, ThrowOnError>({
@@ -1775,11 +1395,7 @@ export const deleteTelegramCommands = <ThrowOnError extends boolean = false>(opt
1775
1395
 
1776
1396
  /**
1777
1397
  * List commented posts
1778
- * Fetch posts with their comment counts from all connected accounts.
1779
- * Aggregates data from multiple accounts in a single API call.
1780
- *
1781
- * **Supported platforms:** Facebook, Instagram, Twitter/X, Bluesky, Threads, YouTube, LinkedIn, Reddit, TikTok (write-only)
1782
- *
1398
+ * Returns posts with comment counts from all connected accounts. Aggregates data across multiple accounts.
1783
1399
  */
1784
1400
  export const listInboxComments = <ThrowOnError extends boolean = false>(options?: OptionsLegacyParser<ListInboxCommentsData, ThrowOnError>) => {
1785
1401
  return (options?.client ?? client).get<ListInboxCommentsResponse, ListInboxCommentsError, ThrowOnError>({
@@ -1850,11 +1466,8 @@ export const unhideInboxComment = <ThrowOnError extends boolean = false>(options
1850
1466
 
1851
1467
  /**
1852
1468
  * 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.
1469
+ * Like or upvote a comment on a post. Supported platforms: Facebook, Twitter/X, Bluesky, Reddit.
1470
+ * For Bluesky, the cid (content identifier) is required in the request body.
1858
1471
  *
1859
1472
  */
1860
1473
  export const likeInboxComment = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<LikeInboxCommentData, ThrowOnError>) => {
@@ -1866,11 +1479,8 @@ export const likeInboxComment = <ThrowOnError extends boolean = false>(options:
1866
1479
 
1867
1480
  /**
1868
1481
  * 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.
1482
+ * Remove a like from a comment. Supported platforms: Facebook, Twitter/X, Bluesky, Reddit.
1483
+ * For Bluesky, the likeUri query parameter is required.
1874
1484
  *
1875
1485
  */
1876
1486
  export const unlikeInboxComment = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<UnlikeInboxCommentData, ThrowOnError>) => {
@@ -1882,21 +1492,7 @@ export const unlikeInboxComment = <ThrowOnError extends boolean = false>(options
1882
1492
 
1883
1493
  /**
1884
1494
  * 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.
1899
- *
1495
+ * Send a private message to the author of a comment. Supported on Instagram and Facebook only. One reply per comment, must be sent within 7 days, text only.
1900
1496
  */
1901
1497
  export const sendPrivateReplyToComment = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<SendPrivateReplyToCommentData, ThrowOnError>) => {
1902
1498
  return (options?.client ?? client).post<SendPrivateReplyToCommentResponse, SendPrivateReplyToCommentError, ThrowOnError>({
@@ -1907,10 +1503,8 @@ export const sendPrivateReplyToComment = <ThrowOnError extends boolean = false>(
1907
1503
 
1908
1504
  /**
1909
1505
  * 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
1506
+ * Fetch reviews from all connected Facebook Pages and Google Business accounts. Aggregates data with filtering and sorting options.
1507
+ * Supported platforms: Facebook, Google Business.
1914
1508
  *
1915
1509
  */
1916
1510
  export const listInboxReviews = <ThrowOnError extends boolean = false>(options?: OptionsLegacyParser<ListInboxReviewsData, ThrowOnError>) => {