@getlatedev/node 0.2.1297 → 0.2.1299

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,13 @@
1
1
  // This file is auto-generated by @hey-api/openapi-ts
2
2
 
3
+ export type AccountCursorPagination = {
4
+ limit: number;
5
+ /**
6
+ * Opaque cursor for the next page; pass it back as `cursor`. Null on the last page.
7
+ */
8
+ nextCursor: (string) | null;
9
+ };
10
+
3
11
  export type AccountsListResponse = {
4
12
  accounts: Array<SocialAccount>;
5
13
  /**
@@ -7,9 +15,9 @@ export type AccountsListResponse = {
7
15
  */
8
16
  hasAnalyticsAccess: boolean;
9
17
  /**
10
- * Only present when page/limit params are provided
18
+ * Present on a paginated request: `{ page, limit, total, pages }` with page and limit, `{ limit, nextCursor }` with cursor paging (limit alone or cursor).
11
19
  */
12
- pagination?: Pagination;
20
+ pagination?: (Pagination | AccountCursorPagination);
13
21
  /**
14
22
  * Only with profileIds and perProfile. Accounts matching the filters per profile ID; a profile with none is absent.
15
23
  */
@@ -4475,6 +4483,59 @@ export type ConnectedApp = {
4475
4483
  tokenCount?: number;
4476
4484
  };
4477
4485
 
4486
+ export type ConnectHandoff = {
4487
+ id?: string;
4488
+ status?: 'waiting' | 'opened' | 'connected' | 'failed' | 'expired';
4489
+ platform?: string;
4490
+ /**
4491
+ * Filled when `status` is `connected`: every account the connect added (several when the user picked several pages, locations or organizations), each checked to be on the profile the connect was started for and written during this handoff. Empty otherwise.
4492
+ */
4493
+ accounts?: Array<{
4494
+ /**
4495
+ * The Zernio account id.
4496
+ */
4497
+ id?: string;
4498
+ profileId?: string;
4499
+ username?: string;
4500
+ }>;
4501
+ /**
4502
+ * Set when `status` is `failed`.
4503
+ */
4504
+ error?: {
4505
+ /**
4506
+ * The `error` code the flow ended on, as on a redirect_url. `connect_incomplete` when the phone reported no outcome, `connect_unverified` when it reported an account Zernio could not match to this connect.
4507
+ */
4508
+ code?: string;
4509
+ message?: (string) | null;
4510
+ /**
4511
+ * The other params the redirect flow appends for that error, such as `is_user_fixable`, `reason`, `dashboard_url`, `request_id` and `stage`. All optional.
4512
+ */
4513
+ details?: {
4514
+ [key: string]: (string);
4515
+ };
4516
+ } | null;
4517
+ };
4518
+
4519
+ export type status14 = 'waiting' | 'opened' | 'connected' | 'failed' | 'expired';
4520
+
4521
+ /**
4522
+ * Only with `handoff=true`: the link to show as a QR code.
4523
+ */
4524
+ export type ConnectHandoffLink = {
4525
+ /**
4526
+ * Pass to `GET /v1/connect/handoffs/{handoffId}`.
4527
+ */
4528
+ id?: string;
4529
+ /**
4530
+ * Short link to encode in the QR code. It opens the welcome screen on the phone.
4531
+ */
4532
+ url?: string;
4533
+ /**
4534
+ * When `url` stops working (30 minutes).
4535
+ */
4536
+ expiresAt?: string;
4537
+ };
4538
+
4478
4539
  export type ConnectWelcomeScreen = {
4479
4540
  showByDefault?: boolean;
4480
4541
  brandName?: (string) | null;
@@ -4676,7 +4737,7 @@ export type ConversionDestination = {
4676
4737
  * For LinkedIn, `inactive` means the rule is soft-deleted (`enabled: false`).
4677
4738
  *
4678
4739
  */
4679
- export type status14 = 'active' | 'inactive';
4740
+ export type status15 = 'active' | 'inactive';
4680
4741
 
4681
4742
  /**
4682
4743
  * A single conversion event to relay to the ad platform. All PII fields
@@ -5813,7 +5874,7 @@ export type objective = 'OUTCOME_ENGAGEMENT' | 'OUTCOME_SALES' | 'OUTCOME_LEADS'
5813
5874
  * `adSetId`, the new ads themselves.
5814
5875
  *
5815
5876
  */
5816
- export type status15 = 'ACTIVE' | 'PAUSED';
5877
+ export type status16 = 'ACTIVE' | 'PAUSED';
5817
5878
 
5818
5879
  /**
5819
5880
  * Campaign-level status, same semantics as `POST /v1/ads/create`. Defaults
@@ -6205,7 +6266,7 @@ export type privacy_level = 2;
6205
6266
  /**
6206
6267
  * 1=SCHEDULED, 2=ACTIVE, 3=COMPLETED, 4=CANCELED
6207
6268
  */
6208
- export type status16 = 1 | 2 | 3 | 4;
6269
+ export type status17 = 1 | 2 | 3 | 4;
6209
6270
 
6210
6271
  /**
6211
6272
  * 1=STAGE_INSTANCE, 2=VOICE, 3=EXTERNAL
@@ -6748,7 +6809,7 @@ export type FeedbackReceipt = {
6748
6809
  duplicate?: boolean;
6749
6810
  };
6750
6811
 
6751
- export type status17 = 'received';
6812
+ export type status18 = 'received';
6752
6813
 
6753
6814
  export type FollowerStatsResponse = {
6754
6815
  accounts?: Array<AccountWithFollowerStats>;
@@ -6763,6 +6824,10 @@ export type FollowerStatsResponse = {
6763
6824
  to?: string;
6764
6825
  };
6765
6826
  granularity?: string;
6827
+ /**
6828
+ * Only present when limit or cursor is sent.
6829
+ */
6830
+ pagination?: AccountCursorPagination;
6766
6831
  };
6767
6832
 
6768
6833
  export type FoodMenu = {
@@ -6873,7 +6938,7 @@ export type GoogleAdLabel = {
6873
6938
  description?: (string) | null;
6874
6939
  };
6875
6940
 
6876
- export type status18 = 'ENABLED' | 'REMOVED' | 'UNKNOWN';
6941
+ export type status19 = 'ENABLED' | 'REMOVED' | 'UNKNOWN';
6877
6942
 
6878
6943
  /**
6879
6944
  * At least one id across the four target lists. Up to 1000 ids per list.
@@ -6976,7 +7041,7 @@ export type GoogleAdsManagerLink = {
6976
7041
  /**
6977
7042
  * Status the link has after this call.
6978
7043
  */
6979
- export type status19 = 'PENDING' | 'ACTIVE' | 'REFUSED' | 'CANCELED' | 'INACTIVE';
7044
+ export type status20 = 'PENDING' | 'ACTIVE' | 'REFUSED' | 'CANCELED' | 'INACTIVE';
6980
7045
 
6981
7046
  export type GoogleAdsUserAccessInvitation = {
6982
7047
  invitationId?: string;
@@ -6991,7 +7056,7 @@ export type GoogleAdsUserAccessInvitation = {
6991
7056
 
6992
7057
  export type accessRole = 'ADMIN' | 'STANDARD' | 'READ_ONLY' | 'EMAIL_ONLY' | 'UNKNOWN';
6993
7058
 
6994
- export type status20 = 'PENDING' | 'DECLINED' | 'EXPIRED' | 'UNKNOWN';
7059
+ export type status21 = 'PENDING' | 'DECLINED' | 'EXPIRED' | 'UNKNOWN';
6995
7060
 
6996
7061
  export type GoogleAdsUserAccessInvitationResult = {
6997
7062
  customerId?: string;
@@ -7015,7 +7080,7 @@ export type GoogleAdsUserAccessInvitationResult = {
7015
7080
  /**
7016
7081
  * PENDING once the email is sent; PENDING_APPROVAL while Google waits for a second admin's multi-party approval.
7017
7082
  */
7018
- export type status21 = 'PENDING' | 'PENDING_APPROVAL';
7083
+ export type status22 = 'PENDING' | 'PENDING_APPROVAL';
7019
7084
 
7020
7085
  export type GoogleAdsUserInvitationApproval = {
7021
7086
  /**
@@ -7780,7 +7845,7 @@ export type GoogleRecommendationResult = {
7780
7845
  error?: string;
7781
7846
  };
7782
7847
 
7783
- export type status22 = 'applied' | 'dismissed' | 'failed';
7848
+ export type status23 = 'applied' | 'dismissed' | 'failed';
7784
7849
 
7785
7850
  export type GoogleRsaDescription = {
7786
7851
  text: string;
@@ -7915,7 +7980,7 @@ export type ImessageSandboxContact = {
7915
7980
  createdAt?: string;
7916
7981
  };
7917
7982
 
7918
- export type status23 = 'pending' | 'active';
7983
+ export type status24 = 'pending' | 'active';
7919
7984
 
7920
7985
  /**
7921
7986
  * An iMessage sender registered as an account on a profile.
@@ -7990,7 +8055,7 @@ export type region = 'US' | 'GB';
7990
8055
  /**
7991
8056
  * `awaiting_payment`: the first-month charge is still being confirmed by the card; the number is ordered automatically once it is paid (usually under 5 minutes), or the order fails with `failureReason` when the card declines or nothing confirms within 30 minutes.
7992
8057
  */
7993
- export type status24 = 'ordering' | 'awaiting_payment' | 'activating' | 'active' | 'suspended' | 'canceled' | 'failed';
8058
+ export type status25 = 'ordering' | 'awaiting_payment' | 'activating' | 'active' | 'suspended' | 'canceled' | 'failed';
7994
8059
 
7995
8060
  /**
7996
8061
  * Click attribution for a conversation that started from a Meta ad or
@@ -8193,7 +8258,7 @@ export type InboxWebhookConversation = {
8193
8258
  contactId?: string;
8194
8259
  };
8195
8260
 
8196
- export type status25 = 'active' | 'archived';
8261
+ export type status26 = 'active' | 'archived';
8197
8262
 
8198
8263
  /**
8199
8264
  * The conversation object included in conversation lifecycle webhook payloads (conversation.started, conversation.control_changed).
@@ -10210,7 +10275,7 @@ export type OwnedPhoneNumber = {
10210
10275
  }>;
10211
10276
  };
10212
10277
 
10213
- export type status26 = 'pending_payment' | 'pending_regulatory' | 'regulatory_declined' | 'provisioning' | 'verifying' | 'active' | 'suspended' | 'releasing' | 'released';
10278
+ export type status27 = 'pending_payment' | 'pending_regulatory' | 'regulatory_declined' | 'provisioning' | 'verifying' | 'active' | 'suspended' | 'releasing' | 'released';
10214
10279
 
10215
10280
  export type metaVerificationStatus = 'pending' | 'code_requested' | 'verified' | 'expired';
10216
10281
 
@@ -10348,7 +10413,7 @@ export type PlatformAnalytics = {
10348
10413
  isOwner?: (boolean) | null;
10349
10414
  };
10350
10415
 
10351
- export type status27 = 'published' | 'failed';
10416
+ export type status28 = 'published' | 'failed';
10352
10417
 
10353
10418
  /**
10354
10419
  * Sync state of analytics for this platform
@@ -10551,7 +10616,7 @@ export type Post = {
10551
10616
  /**
10552
10617
  * `cancelled` is set by POST /v1/posts/{postId}/unpublish once every platform entry has been removed from its platform (a post with published entries left becomes `partial`); cancelled posts can be edited and rescheduled like drafts. `pending_approval` (set by `requiresApproval: true`) never publishes until POST /v1/posts/{postId}/review approves it.
10553
10618
  */
10554
- export type status28 = 'draft' | 'pending_approval' | 'scheduled' | 'publishing' | 'published' | 'partial' | 'failed' | 'cancelled';
10619
+ export type status29 = 'draft' | 'pending_approval' | 'scheduled' | 'publishing' | 'published' | 'partial' | 'failed' | 'cancelled';
10555
10620
 
10556
10621
  export type visibility2 = 'public' | 'private' | 'unlisted';
10557
10622
 
@@ -10788,7 +10853,7 @@ export type Product = {
10788
10853
  publishedAt?: (string) | null;
10789
10854
  };
10790
10855
 
10791
- export type status29 = 'active' | 'draft' | 'archived';
10856
+ export type status30 = 'active' | 'draft' | 'archived';
10792
10857
 
10793
10858
  export type ProductImage = {
10794
10859
  url?: string;
@@ -11007,7 +11072,7 @@ export type RcsAgent = {
11007
11072
  createdAt?: string;
11008
11073
  };
11009
11074
 
11010
- export type status30 = 'requested' | 'changes_requested' | 'brand_vetting' | 'agent_review' | 'testing' | 'launch_review' | 'launching' | 'live' | 'rejected' | 'deactivated';
11075
+ export type status31 = 'requested' | 'changes_requested' | 'brand_vetting' | 'agent_review' | 'testing' | 'launch_review' | 'launching' | 'live' | 'rejected' | 'deactivated';
11011
11076
 
11012
11077
  export type useCase = 'MULTI_USE' | 'PROMOTIONAL' | 'TRANSACTIONAL' | 'OTP';
11013
11078
 
@@ -11059,7 +11124,7 @@ export type RcsBrand = RcsBrandInput & {
11059
11124
  /**
11060
11125
  * draft = not filed yet (still editable).
11061
11126
  */
11062
- export type status31 = 'draft' | 'vetting' | 'verified' | 'rejected';
11127
+ export type status32 = 'draft' | 'vetting' | 'verified' | 'rejected';
11063
11128
 
11064
11129
  export type RcsBrandInput = {
11065
11130
  displayName: string;
@@ -11146,7 +11211,7 @@ export type RcsCarrierApproval = {
11146
11211
 
11147
11212
  export type scope2 = 'carrier' | 'hub' | 'bot';
11148
11213
 
11149
- export type status32 = 'PENDING' | 'SUBMITTED' | 'APPROVED' | 'REJECTED';
11214
+ export type status33 = 'PENDING' | 'SUBMITTED' | 'APPROVED' | 'REJECTED';
11150
11215
 
11151
11216
  /**
11152
11217
  * Message content. `suggestions` (max 11) render as chips under the message.
@@ -11978,7 +12043,7 @@ export type SupportRun = {
11978
12043
  /**
11979
12044
  * queued and running are in progress. needs_human means the assistant handed the question to a person instead of answering; when `supportTicket` is set, a Zernio teammate has been notified and will follow up by email.
11980
12045
  */
11981
- export type status33 = 'queued' | 'running' | 'completed' | 'needs_human' | 'failed';
12046
+ export type status34 = 'queued' | 'running' | 'completed' | 'needs_human' | 'failed';
11982
12047
 
11983
12048
  /**
11984
12049
  * Why the run stopped. Null while it is in progress.
@@ -12945,7 +13010,7 @@ export type UploadTokenResponse = {
12945
13010
  status?: 'pending' | 'completed' | 'expired';
12946
13011
  };
12947
13012
 
12948
- export type status34 = 'pending' | 'completed' | 'expired';
13013
+ export type status35 = 'pending' | 'completed' | 'expired';
12949
13014
 
12950
13015
  export type UploadTokenStatusResponse = {
12951
13016
  token?: string;
@@ -13297,6 +13362,10 @@ export type User = {
13297
13362
  email?: string;
13298
13363
  name?: string;
13299
13364
  role?: string;
13365
+ /**
13366
+ * Resource groups turned off for this team member. Empty for owners and unrestricted members.
13367
+ */
13368
+ disabledResourceGroups?: Array<(string)>;
13300
13369
  createdAt?: string;
13301
13370
  };
13302
13371
 
@@ -13452,7 +13521,7 @@ export type Verification = {
13452
13521
  resend?: boolean;
13453
13522
  };
13454
13523
 
13455
- export type status35 = 'pending' | 'approved' | 'expired' | 'max_attempts_reached' | 'canceled' | 'delivery_failed';
13524
+ export type status36 = 'pending' | 'approved' | 'expired' | 'max_attempts_reached' | 'canceled' | 'delivery_failed';
13456
13525
 
13457
13526
  export type channel5 = 'sms' | 'whatsapp';
13458
13527
 
@@ -13630,7 +13699,7 @@ export type WebhookLog = {
13630
13699
  /**
13631
13700
  * Delivery outcome
13632
13701
  */
13633
- export type status36 = 'success' | 'failed';
13702
+ export type status37 = 'success' | 'failed';
13634
13703
 
13635
13704
  /**
13636
13705
  * Webhook payload for `account.ads.initial_sync_completed` events.
@@ -13747,7 +13816,7 @@ export type event = 'account.ads.initial_sync_completed';
13747
13816
  /**
13748
13817
  * Overall outcome of the initial sync.
13749
13818
  */
13750
- export type status37 = 'success' | 'failure';
13819
+ export type status38 = 'success' | 'failure';
13751
13820
 
13752
13821
  /**
13753
13822
  * Stable category for UX branching. New values may be added; existing ones are
@@ -14126,7 +14195,7 @@ export type WebhookPayloadAdReview = {
14126
14195
 
14127
14196
  export type event8 = 'ad.review.approved' | 'ad.review.rejected';
14128
14197
 
14129
- export type status38 = 'approved' | 'rejected';
14198
+ export type status39 = 'approved' | 'rejected';
14130
14199
 
14131
14200
  /**
14132
14201
  * Webhook payload for the `ad.status_changed` event. Currently emitted
@@ -14329,7 +14398,7 @@ export type event10 = 'ad.video.processed';
14329
14398
  /**
14330
14399
  * `ready`: usable as `video.id` on the create endpoints. `error`: Meta could not process it; upload again.
14331
14400
  */
14332
- export type status39 = 'ready' | 'error';
14401
+ export type status40 = 'ready' | 'error';
14333
14402
 
14334
14403
  /**
14335
14404
  * Webhook payload for `analytics.synced`. Fired once per connected account each
@@ -16521,7 +16590,7 @@ export type event34 = 'post.platform.published' | 'post.platform.failed' | 'post
16521
16590
  /**
16522
16591
  * Terminal status this event fires on. Matches the event suffix.
16523
16592
  */
16524
- export type status40 = 'published' | 'failed' | 'deleted';
16593
+ export type status41 = 'published' | 'failed' | 'deleted';
16525
16594
 
16526
16595
  /**
16527
16596
  * Webhook payload for reaction received events (WhatsApp, Telegram, Slack, Instagram, Facebook Messenger, TikTok)
@@ -16918,7 +16987,7 @@ export type event43 = 'whatsapp.account.name_status_updated';
16918
16987
  /**
16919
16988
  * Normalized from Meta's `decision` (REJECTED -> DECLINED, DEFERRED -> PENDING_REVIEW; the review is still open on DEFERRED, not a rejection).
16920
16989
  */
16921
- export type status41 = 'APPROVED' | 'DECLINED' | 'PENDING_REVIEW';
16990
+ export type status42 = 'APPROVED' | 'DECLINED' | 'PENDING_REVIEW';
16922
16991
 
16923
16992
  /**
16924
16993
  * Webhook payload for `whatsapp.account.quality_updated`. Fired when a connected
@@ -17052,7 +17121,7 @@ export type event45 = 'whatsapp.account.status_updated';
17052
17121
  /**
17053
17122
  * `active` only on a reinstatement (DISABLED_UPDATE with ban state REINSTATE).
17054
17123
  */
17055
- export type status42 = 'restricted' | 'active';
17124
+ export type status43 = 'restricted' | 'active';
17056
17125
 
17057
17126
  /**
17058
17127
  * Webhook payload for the `whatsapp.contact.identity_changed` event. Fired when
@@ -17268,7 +17337,7 @@ export type event48 = 'whatsapp.template.status_updated';
17268
17337
  * request before the template is actually removed.
17269
17338
  *
17270
17339
  */
17271
- export type status43 = 'APPROVED' | 'REJECTED' | 'PENDING' | 'PAUSED' | 'DISABLED' | 'IN_APPEAL' | 'PENDING_DELETION';
17340
+ export type status44 = 'APPROVED' | 'REJECTED' | 'PENDING' | 'PAUSED' | 'DISABLED' | 'IN_APPEAL' | 'PENDING_DELETION';
17272
17341
 
17273
17342
  export type WebhookPayloadWorkflowRun = {
17274
17343
  /**
@@ -17332,7 +17401,7 @@ export type event49 = 'workflow.run.started' | 'workflow.run.completed' | 'workf
17332
17401
  /**
17333
17402
  * running on workflow.run.started; completed or exited (ended on purpose before the last node, e.g. a handoff) on workflow.run.completed; failed on workflow.run.failed.
17334
17403
  */
17335
- export type status44 = 'running' | 'waiting' | 'completed' | 'exited' | 'failed';
17404
+ export type status45 = 'running' | 'waiting' | 'completed' | 'exited' | 'failed';
17336
17405
 
17337
17406
  /**
17338
17407
  * The profiles this event belongs to, each with the externalId you set on it (null when none is set). Present on every event tied to a profile and absent on events that belong to none. Events spanning several profiles (a post published to accounts of different profiles) list each once. Use it to route the event to your tenant without storing Zernio profile ids.
@@ -17730,7 +17799,7 @@ export type WorkflowExecutionEvent = {
17730
17799
 
17731
17800
  export type action2 = 'execution_started' | 'execution_completed' | 'execution_exited' | 'execution_paused' | 'execution_resumed' | 'node_started' | 'node_completed' | 'node_failed' | 'node_skipped';
17732
17801
 
17733
- export type status45 = 'success' | 'failed' | 'pending';
17802
+ export type status46 = 'success' | 'failed' | 'pending';
17734
17803
 
17735
17804
  /**
17736
17805
  * A node in a workflow graph. `config` shape depends on `type`.
@@ -21290,6 +21359,10 @@ export type ListAccountsData = {
21290
21359
  * Only accounts of this kind. ads = ad accounts (Meta, Google, LinkedIn, Pinterest, TikTok, X, OpenAI, Reddit), communication = WhatsApp, Telegram, Discord, Slack and iMessage, blogs = Shopify and WordPress, crm = HubSpot, social = every other platform.
21291
21360
  */
21292
21361
  category?: 'social' | 'ads' | 'communication' | 'blogs' | 'crm';
21362
+ /**
21363
+ * Opaque cursor from a previous response's `pagination.nextCursor`; returns the next page of `limit` accounts (500 when limit is omitted). A cursor we cannot parse returns 400. Cannot be combined with page.
21364
+ */
21365
+ cursor?: string;
21293
21366
  /**
21294
21367
  * When true, leaves out accounts the dashboard does not show as connections: posting
21295
21368
  * accounts with `enabled: false` (ads accounts are always kept, whatever their `enabled`
@@ -21307,7 +21380,7 @@ export type ListAccountsData = {
21307
21380
  /**
21308
21381
  * When true, appends the shared WhatsApp sandbox account and the iMessage sandbox account
21309
21382
  * to the list when they are active, honouring `platform` but no other filter. Ignored on
21310
- * a paginated request (page/limit) and together with `perProfile`. Accepts `true` or
21383
+ * a paginated request (page, limit or cursor) and together with `perProfile`. Accepts `true` or
21311
21384
  * `false` in any letter case; any other value returns 400.
21312
21385
  *
21313
21386
  */
@@ -21320,7 +21393,7 @@ export type ListAccountsData = {
21320
21393
  */
21321
21394
  includeStatusCounts?: boolean;
21322
21395
  /**
21323
- * Page size. Must be provided together with page; sending only one of the two returns 400.
21396
+ * Page size. With page, an offset page; alone or with cursor, a cursor page.
21324
21397
  *
21325
21398
  */
21326
21399
  limit?: number;
@@ -21329,12 +21402,12 @@ export type ListAccountsData = {
21329
21402
  */
21330
21403
  order?: 'asc' | 'desc';
21331
21404
  /**
21332
- * Page number (1-based). Must be provided together with limit to enable server-side pagination; sending only one of the two returns 400. Omit both for all accounts.
21405
+ * Page number (1-based) for offset paging. Requires limit; omit page, limit and cursor for all accounts.
21333
21406
  *
21334
21407
  */
21335
21408
  page?: number;
21336
21409
  /**
21337
- * Return a preview of each profile in profileIds: the newest account of every platform it has, topped up to at least N. Requires profileIds; cannot be combined with page and limit.
21410
+ * Return a preview of each profile in profileIds: the newest account of every platform it has, topped up to at least N. Requires profileIds; cannot be combined with page, limit or cursor.
21338
21411
  */
21339
21412
  perProfile?: number;
21340
21413
  /**
@@ -21354,7 +21427,7 @@ export type ListAccountsData = {
21354
21427
  */
21355
21428
  search?: string;
21356
21429
  /**
21357
- * Sort a paginated listing (page/limit) by account name, platform, profile name, status (accounts needing a reconnect first when ascending) or connection date. Ties keep the default order: platform, then newest first.
21430
+ * Sort an offset-paginated listing (page and limit) by account name, platform, profile name, status (accounts needing a reconnect first when ascending) or connection date. Ties keep the default order: platform, then newest first.
21358
21431
  */
21359
21432
  sort?: 'account' | 'platform' | 'profile' | 'status' | 'connected';
21360
21433
  /**
@@ -21375,6 +21448,10 @@ export type GetFollowerStatsData = {
21375
21448
  * Comma-separated list of account IDs (optional, defaults to all user's accounts)
21376
21449
  */
21377
21450
  accountIds?: string;
21451
+ /**
21452
+ * Opaque cursor from a previous response's `pagination.nextCursor`; returns the next page of `limit` accounts (25 when limit is omitted). A cursor we cannot parse returns 400.
21453
+ */
21454
+ cursor?: string;
21378
21455
  /**
21379
21456
  * Start date in YYYY-MM-DD format (defaults to 30 days ago)
21380
21457
  */
@@ -21383,6 +21460,10 @@ export type GetFollowerStatsData = {
21383
21460
  * Data aggregation level
21384
21461
  */
21385
21462
  granularity?: 'daily' | 'weekly' | 'monthly';
21463
+ /**
21464
+ * Accounts per page, ordered by account id. Send it to page through accounts; the response then carries `pagination.nextCursor`. Without limit or cursor every matching account is returned.
21465
+ */
21466
+ limit?: number;
21386
21467
  /**
21387
21468
  * Filter by profile ID
21388
21469
  */
@@ -22310,6 +22391,10 @@ export type CreateInviteTokenData = {
22310
22391
  * Org role granted to the invitee. Defaults to 'member'. 'admin' can manage the team (invite/remove members, change roles and access) and billing, but not ownership transfer or account deletion. 'billing_admin' (displayed as Billing Manager) manages billing only. 'viewer' creates a read-only member who can view everything in their profile scope but cannot perform any content mutation (publish, edit, delete, connect accounts).
22311
22392
  */
22312
22393
  role?: 'admin' | 'member' | 'billing_admin' | 'viewer';
22394
+ /**
22395
+ * Resource groups the invitee may not use once they join (the same groups as restricted API keys). Their dashboard hides those sections and every API request into a disabled group, with any credential they hold, is refused with 403. Omitted or empty means full access. Groups the caller lacks themselves are always added.
22396
+ */
22397
+ disabledResourceGroups?: Array<('publishing' | 'engagement' | 'messages' | 'contacts' | 'analytics' | 'ads' | 'telephony' | 'accounts' | 'billing' | 'webhooks' | 'commerce')>;
22313
22398
  /**
22314
22399
  * Deprecated. Use role 'viewer' instead. When true, the invite is created with role 'viewer'. Cannot be combined with role 'billing_admin' or 'admin'.
22315
22400
  * @deprecated
@@ -22322,6 +22407,7 @@ export type CreateInviteTokenResponse = ({
22322
22407
  token?: string;
22323
22408
  scope?: string;
22324
22409
  invitedProfileIds?: Array<(string)>;
22410
+ disabledResourceGroups?: Array<(string)>;
22325
22411
  expiresAt?: string;
22326
22412
  inviteUrl?: string;
22327
22413
  });
@@ -22359,6 +22445,10 @@ export type GetConnectUrlData = {
22359
22445
  * Instagram Login only (the default loginMethod); ignored elsewhere. Makes Instagram show its login page and ask for the credentials of the account to connect even when another Instagram account is logged in on the device or in the app, and hides the Facebook login option on that page. Use it when the person connecting manages several Instagram accounts on one phone: Instagram otherwise logs in, and converts to a professional account, whichever account is active, before any consent screen. Pair it with expectedUsername to also refuse a wrong account at the end.
22360
22446
  */
22361
22447
  forceReauth?: boolean;
22448
+ /**
22449
+ * Let the user finish on their phone. When `true`, the response also carries `handoff`: show `handoff.url` as a QR code in your app (any QR library), the user scans it and the welcome screen opens on the phone, already carrying this connect, so they log in to the platform there without signing in to anything else. The phone ends on a Zernio result screen telling them to go back to their computer. Learn the outcome by polling `GET /v1/connect/handoffs/{handoffId}` (every 2 to 5 seconds is fine) or from the `account.connected` webhook. Shows the welcome screen with your branding parameters or saved settings. Cannot be combined with `welcome=false`, `headless=true`, `signup`, `redirect=true` or `redirect_url` (400 `INVALID_FIELD_VALUE`). `handoff.url` works for 30 minutes. When the account is re-enabled straight away the response carries `account` instead, as without `handoff`.
22450
+ */
22451
+ handoff?: boolean;
22362
22452
  /**
22363
22453
  * When true, the user is redirected to your redirect_url with raw OAuth data (code, state) instead of Zernio's default account selection UI. Use this to build a custom connect experience.
22364
22454
  */
@@ -22599,6 +22689,7 @@ export type GetConnectUrlResponse = ({
22599
22689
  * State parameter for security (handled automatically)
22600
22690
  */
22601
22691
  state?: string;
22692
+ handoff?: ConnectHandoffLink;
22602
22693
  });
22603
22694
 
22604
22695
  export type GetConnectUrlError = (unknown | ErrorResponse | {
@@ -25394,6 +25485,19 @@ export type DeleteGoogleBusinessReviewReplyError = (ErrorResponse | {
25394
25485
  error?: string;
25395
25486
  });
25396
25487
 
25488
+ export type GetConnectHandoffData = {
25489
+ path: {
25490
+ /**
25491
+ * `handoff.id` from the connect response.
25492
+ */
25493
+ handoffId: string;
25494
+ };
25495
+ };
25496
+
25497
+ export type GetConnectHandoffResponse = (ConnectHandoff);
25498
+
25499
+ export type GetConnectHandoffError = (ErrorResponse | unknown);
25500
+
25397
25501
  export type GetConnectWelcomeScreenResponse = (ConnectWelcomeScreen);
25398
25502
 
25399
25503
  export type GetConnectWelcomeScreenError = (ErrorResponse);