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