@zernio/node 0.2.60 → 0.2.61

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 CHANGED
@@ -209,17 +209,17 @@ try {
209
209
  | `analytics.getBestTimeToPost()` | Get best times to post |
210
210
  | `analytics.getContentDecay()` | Get content performance decay |
211
211
  | `analytics.getDailyMetrics()` | Get daily aggregated metrics |
212
- | `analytics.getGoogleBusinessPerformance()` | Get Google Business Profile performance metrics |
213
- | `analytics.getGoogleBusinessSearchKeywords()` | Get Google Business Profile search keywords |
214
- | `analytics.getInstagramAccountInsights()` | Get Instagram account-level insights |
215
- | `analytics.getInstagramDemographics()` | Get Instagram audience demographics |
212
+ | `analytics.getGoogleBusinessPerformance()` | Get GBP performance metrics |
213
+ | `analytics.getGoogleBusinessSearchKeywords()` | Get GBP search keywords |
214
+ | `analytics.getInstagramAccountInsights()` | Get Instagram insights |
215
+ | `analytics.getInstagramDemographics()` | Get Instagram demographics |
216
216
  | `analytics.getLinkedInAggregateAnalytics()` | Get LinkedIn aggregate stats |
217
217
  | `analytics.getLinkedInPostAnalytics()` | Get LinkedIn post stats |
218
218
  | `analytics.getLinkedInPostReactions()` | Get LinkedIn post reactions |
219
- | `analytics.getPostingFrequency()` | Get posting frequency vs engagement |
219
+ | `analytics.getPostingFrequency()` | Get frequency vs engagement |
220
220
  | `analytics.getPostTimeline()` | Get post analytics timeline |
221
221
  | `analytics.getYouTubeDailyViews()` | Get YouTube daily views |
222
- | `analytics.getYouTubeDemographics()` | Get YouTube audience demographics |
222
+ | `analytics.getYouTubeDemographics()` | Get YouTube demographics |
223
223
 
224
224
  ### Account Groups
225
225
  | Method | Description |
@@ -258,7 +258,7 @@ try {
258
258
  ### Media
259
259
  | Method | Description |
260
260
  |--------|-------------|
261
- | `media.getMediaPresignedUrl()` | Get presigned upload URL |
261
+ | `media.getMediaPresignedUrl()` | Get upload URL |
262
262
 
263
263
  ### Users
264
264
  | Method | Description |
@@ -335,29 +335,29 @@ try {
335
335
  | Method | Description |
336
336
  |--------|-------------|
337
337
  | `adAudiences.listAdAudiences()` | List custom audiences |
338
- | `adAudiences.createAdAudience()` | Create a custom audience (Meta only) |
338
+ | `adAudiences.createAdAudience()` | Create custom audience |
339
339
  | `adAudiences.getAdAudience()` | Get audience details |
340
- | `adAudiences.deleteAdAudience()` | Delete a custom audience |
341
- | `adAudiences.addUsersToAdAudience()` | Add users to a customer list audience |
340
+ | `adAudiences.deleteAdAudience()` | Delete custom audience |
341
+ | `adAudiences.addUsersToAdAudience()` | Add users to audience |
342
342
 
343
343
  ### Ad Campaigns
344
344
  | Method | Description |
345
345
  |--------|-------------|
346
- | `adCampaigns.listAdCampaigns()` | List campaigns with aggregate metrics |
347
- | `adCampaigns.getAdTree()` | Get nested campaign/ad-set/ad tree |
346
+ | `adCampaigns.listAdCampaigns()` | List campaigns |
347
+ | `adCampaigns.getAdTree()` | Get campaign tree |
348
348
  | `adCampaigns.updateAdCampaignStatus()` | Pause or resume a campaign |
349
349
 
350
350
  ### Ads
351
351
  | Method | Description |
352
352
  |--------|-------------|
353
- | `ads.listAdAccounts()` | List ad accounts for a social account |
353
+ | `ads.listAdAccounts()` | List ad accounts |
354
354
  | `ads.listAds()` | List ads |
355
- | `ads.createStandaloneAd()` | Create a standalone ad with custom creative |
355
+ | `ads.createStandaloneAd()` | Create standalone ad |
356
356
  | `ads.getAd()` | Get ad details |
357
- | `ads.getAdAnalytics()` | Get ad analytics with daily breakdown |
358
- | `ads.updateAd()` | Update ad (pause/resume, budget, targeting, name) |
357
+ | `ads.getAdAnalytics()` | Get ad analytics |
358
+ | `ads.updateAd()` | Update ad |
359
359
  | `ads.deleteAd()` | Cancel an ad |
360
- | `ads.boostPost()` | Boost an existing post as a paid ad |
360
+ | `ads.boostPost()` | Boost post as ad |
361
361
  | `ads.searchAdInterests()` | Search targeting interests |
362
362
 
363
363
  ### Broadcasts
@@ -365,24 +365,24 @@ try {
365
365
  |--------|-------------|
366
366
  | `broadcasts.listBroadcastRecipients()` | List broadcast recipients |
367
367
  | `broadcasts.listBroadcasts()` | List broadcasts |
368
- | `broadcasts.createBroadcast()` | Create a broadcast draft |
368
+ | `broadcasts.createBroadcast()` | Create broadcast draft |
369
369
  | `broadcasts.getBroadcast()` | Get broadcast details |
370
- | `broadcasts.updateBroadcast()` | Update a broadcast |
371
- | `broadcasts.deleteBroadcast()` | Delete a broadcast (draft only) |
370
+ | `broadcasts.updateBroadcast()` | Update broadcast |
371
+ | `broadcasts.deleteBroadcast()` | Delete broadcast |
372
372
  | `broadcasts.addBroadcastRecipients()` | Add recipients to a broadcast |
373
- | `broadcasts.cancelBroadcast()` | Cancel a broadcast |
373
+ | `broadcasts.cancelBroadcast()` | Cancel broadcast |
374
374
  | `broadcasts.scheduleBroadcast()` | Schedule broadcast for later |
375
- | `broadcasts.sendBroadcast()` | Trigger immediate send |
375
+ | `broadcasts.sendBroadcast()` | Send broadcast now |
376
376
 
377
377
  ### Comment Automations
378
378
  | Method | Description |
379
379
  |--------|-------------|
380
- | `commentAutomations.listCommentAutomationLogs()` | List trigger logs for an automation |
380
+ | `commentAutomations.listCommentAutomationLogs()` | List automation logs |
381
381
  | `commentAutomations.listCommentAutomations()` | List comment-to-DM automations |
382
- | `commentAutomations.createCommentAutomation()` | Create a comment-to-DM automation |
383
- | `commentAutomations.getCommentAutomation()` | Get automation details with recent logs |
382
+ | `commentAutomations.createCommentAutomation()` | Create comment-to-DM automation |
383
+ | `commentAutomations.getCommentAutomation()` | Get automation details |
384
384
  | `commentAutomations.updateCommentAutomation()` | Update automation settings |
385
- | `commentAutomations.deleteCommentAutomation()` | Delete automation and all logs |
385
+ | `commentAutomations.deleteCommentAutomation()` | Delete automation |
386
386
 
387
387
  ### Comments (Inbox)
388
388
  | Method | Description |
@@ -402,21 +402,21 @@ try {
402
402
  |--------|-------------|
403
403
  | `contacts.listContacts()` | List contacts |
404
404
  | `contacts.bulkCreateContacts()` | Bulk create contacts |
405
- | `contacts.createContact()` | Create a contact |
406
- | `contacts.getContact()` | Get contact with channels |
405
+ | `contacts.createContact()` | Create contact |
406
+ | `contacts.getContact()` | Get contact |
407
407
  | `contacts.getContactChannels()` | List channels for a contact |
408
- | `contacts.updateContact()` | Update a contact |
409
- | `contacts.deleteContact()` | Delete a contact |
408
+ | `contacts.updateContact()` | Update contact |
409
+ | `contacts.deleteContact()` | Delete contact |
410
410
 
411
411
  ### Custom Fields
412
412
  | Method | Description |
413
413
  |--------|-------------|
414
414
  | `customFields.listCustomFields()` | List custom field definitions |
415
- | `customFields.createCustomField()` | Create a custom field definition |
416
- | `customFields.updateCustomField()` | Update a custom field definition |
417
- | `customFields.deleteCustomField()` | Delete a custom field definition |
418
- | `customFields.clearContactFieldValue()` | Clear a custom field value |
419
- | `customFields.setContactFieldValue()` | Set a custom field value |
415
+ | `customFields.createCustomField()` | Create custom field |
416
+ | `customFields.updateCustomField()` | Update custom field |
417
+ | `customFields.deleteCustomField()` | Delete custom field |
418
+ | `customFields.clearContactFieldValue()` | Clear custom field value |
419
+ | `customFields.setContactFieldValue()` | Set custom field value |
420
420
 
421
421
  ### GMB Attributes
422
422
  | Method | Description |
@@ -478,14 +478,14 @@ try {
478
478
  |--------|-------------|
479
479
  | `sequences.listSequenceEnrollments()` | List enrollments for a sequence |
480
480
  | `sequences.listSequences()` | List sequences |
481
- | `sequences.createSequence()` | Create a sequence |
481
+ | `sequences.createSequence()` | Create sequence |
482
482
  | `sequences.getSequence()` | Get sequence with steps |
483
- | `sequences.updateSequence()` | Update a sequence |
484
- | `sequences.deleteSequence()` | Delete a sequence |
485
- | `sequences.activateSequence()` | Activate a sequence |
483
+ | `sequences.updateSequence()` | Update sequence |
484
+ | `sequences.deleteSequence()` | Delete sequence |
485
+ | `sequences.activateSequence()` | Activate sequence |
486
486
  | `sequences.enrollContacts()` | Enroll contacts in a sequence |
487
- | `sequences.pauseSequence()` | Pause a sequence |
488
- | `sequences.unenrollContact()` | Unenroll a contact from a sequence |
487
+ | `sequences.pauseSequence()` | Pause sequence |
488
+ | `sequences.unenrollContact()` | Unenroll contact |
489
489
 
490
490
  ### Twitter Engagement
491
491
  | Method | Description |
@@ -502,7 +502,7 @@ try {
502
502
  |--------|-------------|
503
503
  | `validate.validateMedia()` | Validate media URL |
504
504
  | `validate.validatePost()` | Validate post content |
505
- | `validate.validatePostLength()` | Validate post character count |
505
+ | `validate.validatePostLength()` | Validate character count |
506
506
  | `validate.validateSubreddit()` | Check subreddit existence |
507
507
 
508
508
  ### WhatsApp
@@ -514,7 +514,7 @@ try {
514
514
  | `whatsapp.createWhatsAppGroupInviteLink()` | Create invite link |
515
515
  | `whatsapp.createWhatsAppTemplate()` | Create template |
516
516
  | `whatsapp.getWhatsAppBusinessProfile()` | Get business profile |
517
- | `whatsapp.getWhatsAppDisplayName()` | Get display name and review status |
517
+ | `whatsapp.getWhatsAppDisplayName()` | Get display name status |
518
518
  | `whatsapp.getWhatsAppGroupChat()` | Get group info |
519
519
  | `whatsapp.getWhatsAppTemplate()` | Get template |
520
520
  | `whatsapp.getWhatsAppTemplates()` | List templates |
package/dist/index.d.mts CHANGED
@@ -583,7 +583,6 @@ type AccountsListResponse = {
583
583
  hasAnalyticsAccess?: boolean;
584
584
  };
585
585
  type AccountWithFollowerStats = SocialAccount & {
586
- profilePicture?: string;
587
586
  /**
588
587
  * Current follower count
589
588
  */
@@ -2093,6 +2092,10 @@ type SocialAccount = {
2093
2092
  profileId?: (string | Profile);
2094
2093
  username?: string;
2095
2094
  displayName?: string;
2095
+ /**
2096
+ * URL to the account's profile picture on the platform. May be null if the platform does not provide one.
2097
+ */
2098
+ profilePicture?: (string) | null;
2096
2099
  /**
2097
2100
  * Full profile URL for the connected account on its platform.
2098
2101
  */
package/dist/index.d.ts CHANGED
@@ -583,7 +583,6 @@ type AccountsListResponse = {
583
583
  hasAnalyticsAccess?: boolean;
584
584
  };
585
585
  type AccountWithFollowerStats = SocialAccount & {
586
- profilePicture?: string;
587
586
  /**
588
587
  * Current follower count
589
588
  */
@@ -2093,6 +2092,10 @@ type SocialAccount = {
2093
2092
  profileId?: (string | Profile);
2094
2093
  username?: string;
2095
2094
  displayName?: string;
2095
+ /**
2096
+ * URL to the account's profile picture on the platform. May be null if the platform does not provide one.
2097
+ */
2098
+ profilePicture?: (string) | null;
2096
2099
  /**
2097
2100
  * Full profile URL for the connected account on its platform.
2098
2101
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zernio/node",
3
- "version": "0.2.60",
3
+ "version": "0.2.61",
4
4
  "description": "The official Node.js library for the Zernio API",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",
@@ -6,7 +6,7 @@ import type { ValidatePostLengthData, ValidatePostLengthError, ValidatePostLengt
6
6
  export const client = createClient(createConfig());
7
7
 
8
8
  /**
9
- * Validate post character count
9
+ * Validate character count
10
10
  * Check weighted character count per platform and whether the text is within each platform's limit.
11
11
  *
12
12
  * Twitter/X uses weighted counting (URLs = 23 chars via t.co, emojis = 2 chars). All other platforms use plain character length.
@@ -97,7 +97,7 @@ export const getYouTubeDailyViews = <ThrowOnError extends boolean = false>(optio
97
97
  };
98
98
 
99
99
  /**
100
- * Get Instagram account-level insights
100
+ * Get Instagram insights
101
101
  * Returns account-level Instagram insights such as reach, views, accounts engaged, and total interactions.
102
102
  * These metrics reflect the entire account's performance across all content surfaces (feed, stories, explore, profile),
103
103
  * and are fundamentally different from post-level metrics. Data may be delayed up to 48 hours.
@@ -112,7 +112,7 @@ export const getInstagramAccountInsights = <ThrowOnError extends boolean = false
112
112
  };
113
113
 
114
114
  /**
115
- * Get Instagram audience demographics
115
+ * Get Instagram demographics
116
116
  * Returns audience demographic insights for an Instagram account, broken down by age, city, country, and/or gender.
117
117
  * Requires at least 100 followers. Returns top 45 entries per dimension.
118
118
  * Data may be delayed up to 48 hours. Requires the Analytics add-on.
@@ -126,7 +126,7 @@ export const getInstagramDemographics = <ThrowOnError extends boolean = false>(o
126
126
  };
127
127
 
128
128
  /**
129
- * Get YouTube audience demographics
129
+ * Get YouTube demographics
130
130
  * Returns audience demographic insights for a YouTube channel, broken down by age, gender, and/or country.
131
131
  * Age and gender values are viewer percentages (0-100). Country values are view counts.
132
132
  * Data is based on signed-in viewers only, with a 2-3 day delay. Requires the Analytics add-on.
@@ -183,7 +183,7 @@ export const getContentDecay = <ThrowOnError extends boolean = false>(options?:
183
183
  };
184
184
 
185
185
  /**
186
- * Get posting frequency vs engagement
186
+ * Get frequency vs engagement
187
187
  * Returns the correlation between posting frequency (posts per week) and engagement rate, broken down by platform.
188
188
  * Helps find the optimal posting cadence for each platform. Each row represents a specific (platform, posts_per_week) combination
189
189
  * with the average engagement rate observed across all weeks matching that frequency.
@@ -212,7 +212,7 @@ export const getPostTimeline = <ThrowOnError extends boolean = false>(options: O
212
212
  };
213
213
 
214
214
  /**
215
- * Get Google Business Profile performance metrics
215
+ * Get GBP performance metrics
216
216
  * Returns daily performance metrics for a Google Business Profile location.
217
217
  * Metrics include impressions (Maps/Search, desktop/mobile), website clicks,
218
218
  * call clicks, direction requests, conversations, bookings, and food orders.
@@ -228,7 +228,7 @@ export const getGoogleBusinessPerformance = <ThrowOnError extends boolean = fals
228
228
  };
229
229
 
230
230
  /**
231
- * Get Google Business Profile search keywords
231
+ * Get GBP search keywords
232
232
  * Returns search keywords that triggered impressions for a Google Business Profile location.
233
233
  * Data is aggregated monthly. Keywords below a minimum impression threshold set by Google are excluded.
234
234
  * Max 18 months of historical data. Requires the Analytics add-on.
@@ -286,7 +286,7 @@ export const deleteAccountGroup = <ThrowOnError extends boolean = false>(options
286
286
  };
287
287
 
288
288
  /**
289
- * Get presigned upload URL
289
+ * Get upload URL
290
290
  * Get a presigned URL to upload files directly to cloud storage (up to 5GB). Returns an uploadUrl and publicUrl. PUT your file to the uploadUrl, then use the publicUrl in your posts.
291
291
  */
292
292
  export const getMediaPresignedUrl = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<GetMediaPresignedUrlData, ThrowOnError>) => {
@@ -2045,7 +2045,7 @@ export const uploadWhatsAppProfilePhoto = <ThrowOnError extends boolean = false>
2045
2045
  };
2046
2046
 
2047
2047
  /**
2048
- * Get display name and review status
2048
+ * Get display name status
2049
2049
  * Fetch the current display name and its Meta review status for a WhatsApp Business account.
2050
2050
  * Display name changes require Meta approval and can take 1-3 business days.
2051
2051
  *
@@ -2405,7 +2405,7 @@ export const listContacts = <ThrowOnError extends boolean = false>(options?: Opt
2405
2405
  };
2406
2406
 
2407
2407
  /**
2408
- * Create a contact
2408
+ * Create contact
2409
2409
  * Create a new contact. Optionally create a platform channel in the same request by providing accountId, platform, and platformIdentifier.
2410
2410
  */
2411
2411
  export const createContact = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<CreateContactData, ThrowOnError>) => {
@@ -2416,7 +2416,7 @@ export const createContact = <ThrowOnError extends boolean = false>(options: Opt
2416
2416
  };
2417
2417
 
2418
2418
  /**
2419
- * Get contact with channels
2419
+ * Get contact
2420
2420
  */
2421
2421
  export const getContact = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<GetContactData, ThrowOnError>) => {
2422
2422
  return (options?.client ?? client).get<GetContactResponse, GetContactError, ThrowOnError>({
@@ -2426,7 +2426,7 @@ export const getContact = <ThrowOnError extends boolean = false>(options: Option
2426
2426
  };
2427
2427
 
2428
2428
  /**
2429
- * Update a contact
2429
+ * Update contact
2430
2430
  */
2431
2431
  export const updateContact = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<UpdateContactData, ThrowOnError>) => {
2432
2432
  return (options?.client ?? client).patch<UpdateContactResponse, UpdateContactError, ThrowOnError>({
@@ -2436,7 +2436,7 @@ export const updateContact = <ThrowOnError extends boolean = false>(options: Opt
2436
2436
  };
2437
2437
 
2438
2438
  /**
2439
- * Delete a contact
2439
+ * Delete contact
2440
2440
  */
2441
2441
  export const deleteContact = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<DeleteContactData, ThrowOnError>) => {
2442
2442
  return (options?.client ?? client).delete<DeleteContactResponse, DeleteContactError, ThrowOnError>({
@@ -2467,7 +2467,7 @@ export const bulkCreateContacts = <ThrowOnError extends boolean = false>(options
2467
2467
  };
2468
2468
 
2469
2469
  /**
2470
- * Set a custom field value
2470
+ * Set custom field value
2471
2471
  */
2472
2472
  export const setContactFieldValue = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<SetContactFieldValueData, ThrowOnError>) => {
2473
2473
  return (options?.client ?? client).put<SetContactFieldValueResponse, SetContactFieldValueError, ThrowOnError>({
@@ -2477,7 +2477,7 @@ export const setContactFieldValue = <ThrowOnError extends boolean = false>(optio
2477
2477
  };
2478
2478
 
2479
2479
  /**
2480
- * Clear a custom field value
2480
+ * Clear custom field value
2481
2481
  */
2482
2482
  export const clearContactFieldValue = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<ClearContactFieldValueData, ThrowOnError>) => {
2483
2483
  return (options?.client ?? client).delete<ClearContactFieldValueResponse, ClearContactFieldValueError, ThrowOnError>({
@@ -2497,7 +2497,7 @@ export const listCustomFields = <ThrowOnError extends boolean = false>(options?:
2497
2497
  };
2498
2498
 
2499
2499
  /**
2500
- * Create a custom field definition
2500
+ * Create custom field
2501
2501
  */
2502
2502
  export const createCustomField = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<CreateCustomFieldData, ThrowOnError>) => {
2503
2503
  return (options?.client ?? client).post<CreateCustomFieldResponse, CreateCustomFieldError, ThrowOnError>({
@@ -2507,7 +2507,7 @@ export const createCustomField = <ThrowOnError extends boolean = false>(options:
2507
2507
  };
2508
2508
 
2509
2509
  /**
2510
- * Update a custom field definition
2510
+ * Update custom field
2511
2511
  */
2512
2512
  export const updateCustomField = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<UpdateCustomFieldData, ThrowOnError>) => {
2513
2513
  return (options?.client ?? client).patch<UpdateCustomFieldResponse, UpdateCustomFieldError, ThrowOnError>({
@@ -2517,7 +2517,7 @@ export const updateCustomField = <ThrowOnError extends boolean = false>(options:
2517
2517
  };
2518
2518
 
2519
2519
  /**
2520
- * Delete a custom field definition
2520
+ * Delete custom field
2521
2521
  */
2522
2522
  export const deleteCustomField = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<DeleteCustomFieldData, ThrowOnError>) => {
2523
2523
  return (options?.client ?? client).delete<DeleteCustomFieldResponse, DeleteCustomFieldError, ThrowOnError>({
@@ -2537,7 +2537,7 @@ export const listBroadcasts = <ThrowOnError extends boolean = false>(options?: O
2537
2537
  };
2538
2538
 
2539
2539
  /**
2540
- * Create a broadcast draft
2540
+ * Create broadcast draft
2541
2541
  */
2542
2542
  export const createBroadcast = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<CreateBroadcastData, ThrowOnError>) => {
2543
2543
  return (options?.client ?? client).post<CreateBroadcastResponse, CreateBroadcastError, ThrowOnError>({
@@ -2557,7 +2557,7 @@ export const getBroadcast = <ThrowOnError extends boolean = false>(options: Opti
2557
2557
  };
2558
2558
 
2559
2559
  /**
2560
- * Update a broadcast
2560
+ * Update broadcast
2561
2561
  */
2562
2562
  export const updateBroadcast = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<UpdateBroadcastData, ThrowOnError>) => {
2563
2563
  return (options?.client ?? client).patch<UpdateBroadcastResponse, UpdateBroadcastError, ThrowOnError>({
@@ -2567,7 +2567,7 @@ export const updateBroadcast = <ThrowOnError extends boolean = false>(options: O
2567
2567
  };
2568
2568
 
2569
2569
  /**
2570
- * Delete a broadcast (draft only)
2570
+ * Delete broadcast
2571
2571
  */
2572
2572
  export const deleteBroadcast = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<DeleteBroadcastData, ThrowOnError>) => {
2573
2573
  return (options?.client ?? client).delete<DeleteBroadcastResponse, DeleteBroadcastError, ThrowOnError>({
@@ -2577,7 +2577,7 @@ export const deleteBroadcast = <ThrowOnError extends boolean = false>(options: O
2577
2577
  };
2578
2578
 
2579
2579
  /**
2580
- * Trigger immediate send
2580
+ * Send broadcast now
2581
2581
  */
2582
2582
  export const sendBroadcast = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<SendBroadcastData, ThrowOnError>) => {
2583
2583
  return (options?.client ?? client).post<SendBroadcastResponse, SendBroadcastError, ThrowOnError>({
@@ -2597,7 +2597,7 @@ export const scheduleBroadcast = <ThrowOnError extends boolean = false>(options:
2597
2597
  };
2598
2598
 
2599
2599
  /**
2600
- * Cancel a broadcast
2600
+ * Cancel broadcast
2601
2601
  */
2602
2602
  export const cancelBroadcast = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<CancelBroadcastData, ThrowOnError>) => {
2603
2603
  return (options?.client ?? client).post<CancelBroadcastResponse, CancelBroadcastError, ThrowOnError>({
@@ -2637,7 +2637,7 @@ export const listSequences = <ThrowOnError extends boolean = false>(options?: Op
2637
2637
  };
2638
2638
 
2639
2639
  /**
2640
- * Create a sequence
2640
+ * Create sequence
2641
2641
  */
2642
2642
  export const createSequence = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<CreateSequenceData, ThrowOnError>) => {
2643
2643
  return (options?.client ?? client).post<CreateSequenceResponse, CreateSequenceError, ThrowOnError>({
@@ -2657,7 +2657,7 @@ export const getSequence = <ThrowOnError extends boolean = false>(options: Optio
2657
2657
  };
2658
2658
 
2659
2659
  /**
2660
- * Update a sequence
2660
+ * Update sequence
2661
2661
  */
2662
2662
  export const updateSequence = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<UpdateSequenceData, ThrowOnError>) => {
2663
2663
  return (options?.client ?? client).patch<UpdateSequenceResponse, UpdateSequenceError, ThrowOnError>({
@@ -2667,7 +2667,7 @@ export const updateSequence = <ThrowOnError extends boolean = false>(options: Op
2667
2667
  };
2668
2668
 
2669
2669
  /**
2670
- * Delete a sequence
2670
+ * Delete sequence
2671
2671
  */
2672
2672
  export const deleteSequence = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<DeleteSequenceData, ThrowOnError>) => {
2673
2673
  return (options?.client ?? client).delete<DeleteSequenceResponse, DeleteSequenceError, ThrowOnError>({
@@ -2677,7 +2677,7 @@ export const deleteSequence = <ThrowOnError extends boolean = false>(options: Op
2677
2677
  };
2678
2678
 
2679
2679
  /**
2680
- * Activate a sequence
2680
+ * Activate sequence
2681
2681
  */
2682
2682
  export const activateSequence = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<ActivateSequenceData, ThrowOnError>) => {
2683
2683
  return (options?.client ?? client).post<ActivateSequenceResponse, ActivateSequenceError, ThrowOnError>({
@@ -2687,7 +2687,7 @@ export const activateSequence = <ThrowOnError extends boolean = false>(options:
2687
2687
  };
2688
2688
 
2689
2689
  /**
2690
- * Pause a sequence
2690
+ * Pause sequence
2691
2691
  */
2692
2692
  export const pauseSequence = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<PauseSequenceData, ThrowOnError>) => {
2693
2693
  return (options?.client ?? client).post<PauseSequenceResponse, PauseSequenceError, ThrowOnError>({
@@ -2707,7 +2707,7 @@ export const enrollContacts = <ThrowOnError extends boolean = false>(options: Op
2707
2707
  };
2708
2708
 
2709
2709
  /**
2710
- * Unenroll a contact from a sequence
2710
+ * Unenroll contact
2711
2711
  */
2712
2712
  export const unenrollContact = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<UnenrollContactData, ThrowOnError>) => {
2713
2713
  return (options?.client ?? client).delete<UnenrollContactResponse, UnenrollContactError, ThrowOnError>({
@@ -2738,7 +2738,7 @@ export const listCommentAutomations = <ThrowOnError extends boolean = false>(opt
2738
2738
  };
2739
2739
 
2740
2740
  /**
2741
- * Create a comment-to-DM automation
2741
+ * Create comment-to-DM automation
2742
2742
  * Create a keyword-triggered DM automation on an Instagram or Facebook post.
2743
2743
  * When someone comments a matching keyword, they automatically receive a DM.
2744
2744
  * Only one active automation per post is allowed.
@@ -2752,7 +2752,7 @@ export const createCommentAutomation = <ThrowOnError extends boolean = false>(op
2752
2752
  };
2753
2753
 
2754
2754
  /**
2755
- * Get automation details with recent logs
2755
+ * Get automation details
2756
2756
  */
2757
2757
  export const getCommentAutomation = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<GetCommentAutomationData, ThrowOnError>) => {
2758
2758
  return (options?.client ?? client).get<GetCommentAutomationResponse, GetCommentAutomationError, ThrowOnError>({
@@ -2772,7 +2772,7 @@ export const updateCommentAutomation = <ThrowOnError extends boolean = false>(op
2772
2772
  };
2773
2773
 
2774
2774
  /**
2775
- * Delete automation and all logs
2775
+ * Delete automation
2776
2776
  */
2777
2777
  export const deleteCommentAutomation = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<DeleteCommentAutomationData, ThrowOnError>) => {
2778
2778
  return (options?.client ?? client).delete<DeleteCommentAutomationResponse, DeleteCommentAutomationError, ThrowOnError>({
@@ -2782,7 +2782,7 @@ export const deleteCommentAutomation = <ThrowOnError extends boolean = false>(op
2782
2782
  };
2783
2783
 
2784
2784
  /**
2785
- * List trigger logs for an automation
2785
+ * List automation logs
2786
2786
  * Paginated list of every comment that triggered this automation, with send status and commenter info.
2787
2787
  */
2788
2788
  export const listCommentAutomationLogs = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<ListCommentAutomationLogsData, ThrowOnError>) => {
@@ -2807,7 +2807,7 @@ export const listAds = <ThrowOnError extends boolean = false>(options?: OptionsL
2807
2807
  };
2808
2808
 
2809
2809
  /**
2810
- * List campaigns with aggregate metrics
2810
+ * List campaigns
2811
2811
  * Returns campaigns as virtual aggregations over ad documents grouped by platform campaign ID.
2812
2812
  * Metrics (spend, impressions, clicks, etc.) are summed across all ads in each campaign.
2813
2813
  * Campaign status is derived from child ad statuses (active > pending_review > paused > error > completed > cancelled > rejected).
@@ -2834,7 +2834,7 @@ export const updateAdCampaignStatus = <ThrowOnError extends boolean = false>(opt
2834
2834
  };
2835
2835
 
2836
2836
  /**
2837
- * Get nested campaign/ad-set/ad tree
2837
+ * Get campaign tree
2838
2838
  * Returns a nested Campaign > Ad Set > Ad hierarchy with rolled-up metrics at each level.
2839
2839
  * Uses a two-stage aggregation: ads are grouped into ad sets, then ad sets into campaigns.
2840
2840
  * Metrics are computed over an optional date range, then rolled up from ad level to ad set
@@ -2861,7 +2861,7 @@ export const getAd = <ThrowOnError extends boolean = false>(options: OptionsLega
2861
2861
  };
2862
2862
 
2863
2863
  /**
2864
- * Update ad (pause/resume, budget, targeting, name)
2864
+ * Update ad
2865
2865
  * Update one or more fields on an ad. Status changes and budget updates are propagated to the platform. Targeting updates are Meta-only.
2866
2866
  */
2867
2867
  export const updateAd = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<UpdateAdData, ThrowOnError>) => {
@@ -2883,7 +2883,7 @@ export const deleteAd = <ThrowOnError extends boolean = false>(options: OptionsL
2883
2883
  };
2884
2884
 
2885
2885
  /**
2886
- * Get ad analytics with daily breakdown
2886
+ * Get ad analytics
2887
2887
  * Returns detailed performance analytics for an ad. Includes summary metrics, a daily timeline
2888
2888
  * over the requested date range, and optional demographic breakdowns (Meta and TikTok only).
2889
2889
  * If no date range is provided, defaults to the last 90 days. Date range is capped at 90 days max.
@@ -2897,7 +2897,7 @@ export const getAdAnalytics = <ThrowOnError extends boolean = false>(options: Op
2897
2897
  };
2898
2898
 
2899
2899
  /**
2900
- * List ad accounts for a social account
2900
+ * List ad accounts
2901
2901
  * Returns the platform ad accounts available for the given social account (e.g. Meta ad accounts, TikTok advertiser IDs, Google Ads customer IDs).
2902
2902
  */
2903
2903
  export const listAdAccounts = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<ListAdAccountsData, ThrowOnError>) => {
@@ -2908,7 +2908,7 @@ export const listAdAccounts = <ThrowOnError extends boolean = false>(options: Op
2908
2908
  };
2909
2909
 
2910
2910
  /**
2911
- * Boost an existing post as a paid ad
2911
+ * Boost post as ad
2912
2912
  * Creates a paid ad campaign from an existing published post. Creates the full platform campaign hierarchy (campaign, ad set, ad).
2913
2913
  */
2914
2914
  export const boostPost = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<BoostPostData, ThrowOnError>) => {
@@ -2919,7 +2919,7 @@ export const boostPost = <ThrowOnError extends boolean = false>(options: Options
2919
2919
  };
2920
2920
 
2921
2921
  /**
2922
- * Create a standalone ad with custom creative
2922
+ * Create standalone ad
2923
2923
  * Creates a paid ad with custom creative (headline, body, image/video, link). Creates the full platform campaign hierarchy.
2924
2924
  */
2925
2925
  export const createStandaloneAd = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<CreateStandaloneAdData, ThrowOnError>) => {
@@ -2952,7 +2952,7 @@ export const listAdAudiences = <ThrowOnError extends boolean = false>(options: O
2952
2952
  };
2953
2953
 
2954
2954
  /**
2955
- * Create a custom audience (Meta only)
2955
+ * Create custom audience
2956
2956
  * Create a customer list, website retargeting, or lookalike audience on Meta (Facebook/Instagram).
2957
2957
  */
2958
2958
  export const createAdAudience = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<CreateAdAudienceData, ThrowOnError>) => {
@@ -2974,7 +2974,7 @@ export const getAdAudience = <ThrowOnError extends boolean = false>(options: Opt
2974
2974
  };
2975
2975
 
2976
2976
  /**
2977
- * Delete a custom audience
2977
+ * Delete custom audience
2978
2978
  * Deletes the audience from both Meta and the local database.
2979
2979
  */
2980
2980
  export const deleteAdAudience = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<DeleteAdAudienceData, ThrowOnError>) => {
@@ -2985,7 +2985,7 @@ export const deleteAdAudience = <ThrowOnError extends boolean = false>(options:
2985
2985
  };
2986
2986
 
2987
2987
  /**
2988
- * Add users to a customer list audience
2988
+ * Add users to audience
2989
2989
  * Upload user data (emails and/or phone numbers) to a customer_list audience. Data is SHA256-hashed server-side before sending to Meta. Max 10,000 users per request.
2990
2990
  */
2991
2991
  export const addUsersToAdAudience = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<AddUsersToAdAudienceData, ThrowOnError>) => {
@@ -13,7 +13,6 @@ export type AccountsListResponse = {
13
13
  };
14
14
 
15
15
  export type AccountWithFollowerStats = SocialAccount & {
16
- profilePicture?: string;
17
16
  /**
18
17
  * Current follower count
19
18
  */
@@ -1619,6 +1618,10 @@ export type SocialAccount = {
1619
1618
  profileId?: (string | Profile);
1620
1619
  username?: string;
1621
1620
  displayName?: string;
1621
+ /**
1622
+ * URL to the account's profile picture on the platform. May be null if the platform does not provide one.
1623
+ */
1624
+ profilePicture?: (string) | null;
1622
1625
  /**
1623
1626
  * Full profile URL for the connected account on its platform.
1624
1627
  */