@zernio/node 0.2.276 → 0.2.278

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,17 +1,5 @@
1
1
  // This file is auto-generated by @hey-api/openapi-ts
2
2
 
3
- export type AccountGetResponse = {
4
- account?: SocialAccount;
5
- };
6
-
7
- export type AccountsListResponse = {
8
- accounts?: Array<SocialAccount>;
9
- /**
10
- * Whether user has analytics add-on access
11
- */
12
- hasAnalyticsAccess?: boolean;
13
- };
14
-
15
3
  export type AccountWithFollowerStats = SocialAccount & {
16
4
  /**
17
5
  * Current follower count
@@ -101,7 +89,7 @@ export type Ad = {
101
89
  amount?: number;
102
90
  type?: 'daily' | 'lifetime';
103
91
  } | null;
104
- metrics?: ((AdMetrics) | null);
92
+ metrics?: (AdMetrics | null);
105
93
  platformAdId?: string;
106
94
  platformAdAccountId?: string;
107
95
  platformCampaignId?: string;
@@ -141,7 +129,7 @@ export type Ad = {
141
129
  * `LOWEST_COST_WITH_MIN_ROAS`, `BID_TYPE_MAX_CONVERSION` -> `LOWEST_COST_WITHOUT_CAP`.
142
130
  *
143
131
  */
144
- bidStrategy?: ((BidStrategy) | null);
132
+ bidStrategy?: (BidStrategy | null);
145
133
  /**
146
134
  * Bid cap in WHOLE currency units of the ad account (USD: 5 = $5.00; JPY: 100 = ¥100).
147
135
  * Populated when bidStrategy is `LOWEST_COST_WITH_BID_CAP` or `COST_CAP`. `null` for
@@ -372,7 +360,7 @@ export type AdCampaign = {
372
360
  /**
373
361
  * Campaign-level bid strategy. Ad sets inherit this unless they override.
374
362
  */
375
- bidStrategy?: ((BidStrategy) | null);
363
+ bidStrategy?: (BidStrategy | null);
376
364
  /**
377
365
  * Representative bid cap from the top-spending ad set (whole currency units). Populated when bidStrategy is LOWEST_COST_WITH_BID_CAP or COST_CAP.
378
366
  */
@@ -490,7 +478,7 @@ export type AdTreeAdSet = {
490
478
  /**
491
479
  * Bid strategy for this ad set (overrides campaign level when set)
492
480
  */
493
- bidStrategy?: ((BidStrategy) | null);
481
+ bidStrategy?: (BidStrategy | null);
494
482
  /**
495
483
  * Bid cap in whole currency units. Populated when bidStrategy is LOWEST_COST_WITH_BID_CAP or COST_CAP.
496
484
  */
@@ -598,7 +586,7 @@ export type AdTreeCampaign = {
598
586
  /**
599
587
  * Campaign-level bid strategy. Ad sets inherit this unless they override.
600
588
  */
601
- bidStrategy?: ((BidStrategy) | null);
589
+ bidStrategy?: (BidStrategy | null);
602
590
  /**
603
591
  * Representative bid cap for the campaign — bubbled up from the top-spending ad set's `bid_amount` (whole currency units). Populated when the ad-set bidStrategy is LOWEST_COST_WITH_BID_CAP or COST_CAP.
604
592
  */
@@ -635,10 +623,6 @@ export type AnalyticsListResponse = {
635
623
  platform?: string;
636
624
  platformPostUrl?: string;
637
625
  isExternal?: boolean;
638
- /**
639
- * True when the post is an ad creative. False for organic posts or platforms where the signal is unavailable. For now is only available for LinkedIn posts.
640
- */
641
- isAd?: boolean;
642
626
  profileId?: (string) | null;
643
627
  thumbnailUrl?: string;
644
628
  mediaType?: 'image' | 'video' | 'gif' | 'document' | 'carousel' | 'text';
@@ -1554,17 +1538,6 @@ export type FacebookPlatformData = {
1554
1538
  */
1555
1539
  export type contentType = 'story' | 'reel';
1556
1540
 
1557
- export type FollowerStatsResponse = {
1558
- accounts?: Array<AccountWithFollowerStats>;
1559
- dateRange?: {
1560
- from?: string;
1561
- to?: string;
1562
- };
1563
- aggregation?: 'daily' | 'weekly' | 'monthly';
1564
- };
1565
-
1566
- export type aggregation = 'daily' | 'weekly' | 'monthly';
1567
-
1568
1541
  export type FoodMenu = {
1569
1542
  labels: Array<FoodMenuLabel>;
1570
1543
  sections?: Array<FoodMenuSection>;
@@ -2143,7 +2116,7 @@ export type LinkedInAggregateAnalyticsDailyResponse = {
2143
2116
  lastUpdated?: string;
2144
2117
  };
2145
2118
 
2146
- export type aggregation2 = 'DAILY';
2119
+ export type aggregation = 'DAILY';
2147
2120
 
2148
2121
  /**
2149
2122
  * Response for TOTAL aggregation (lifetime totals)
@@ -2196,7 +2169,7 @@ export type LinkedInAggregateAnalyticsTotalResponse = {
2196
2169
  lastUpdated?: string;
2197
2170
  };
2198
2171
 
2199
- export type aggregation3 = 'TOTAL';
2172
+ export type aggregation2 = 'TOTAL';
2200
2173
 
2201
2174
  /**
2202
2175
  * Up to 20 images, no multi-video. Single PDF supported (max 100MB). Link previews auto-generated when no media attached. Use organizationUrn for multi-org posting. Geo-restriction only works for organization pages (not personal profiles) and requires the targeted audience to exceed 300 followers.
@@ -2265,10 +2238,6 @@ export type MediaItem = {
2265
2238
 
2266
2239
  export type type6 = 'image' | 'video' | 'gif' | 'document';
2267
2240
 
2268
- export type MediaUploadResponse = {
2269
- files?: Array<UploadedFile>;
2270
- };
2271
-
2272
2241
  export type Money = {
2273
2242
  /**
2274
2243
  * ISO 4217 currency code (e.g. USD, EUR)
@@ -2333,7 +2302,7 @@ export type PlatformAnalytics = {
2333
2302
  platformPostId?: (string) | null;
2334
2303
  accountId?: string;
2335
2304
  accountUsername?: (string) | null;
2336
- analytics?: (PostAnalytics) | null;
2305
+ analytics?: (PostAnalytics | null);
2337
2306
  /**
2338
2307
  * Sync state of analytics for this platform
2339
2308
  */
@@ -2530,40 +2499,10 @@ export type ProfileCreateResponse = {
2530
2499
  profile?: Profile;
2531
2500
  };
2532
2501
 
2533
- export type ProfileDeleteResponse = {
2534
- message?: string;
2535
- };
2536
-
2537
- export type ProfileGetResponse = {
2538
- profile?: Profile;
2539
- };
2540
-
2541
2502
  export type ProfilesListResponse = {
2542
2503
  profiles?: Array<Profile>;
2543
2504
  };
2544
2505
 
2545
- export type ProfileUpdateResponse = {
2546
- message?: string;
2547
- profile?: Profile;
2548
- };
2549
-
2550
- export type QueueDeleteResponse = {
2551
- success?: boolean;
2552
- deleted?: boolean;
2553
- };
2554
-
2555
- export type QueueNextSlotResponse = {
2556
- profileId?: string;
2557
- nextSlot?: string;
2558
- timezone?: string;
2559
- };
2560
-
2561
- export type QueuePreviewResponse = {
2562
- profileId?: string;
2563
- count?: number;
2564
- slots?: Array<(string)>;
2565
- };
2566
-
2567
2506
  export type QueueSchedule = {
2568
2507
  /**
2569
2508
  * Unique queue identifier
@@ -2605,19 +2544,6 @@ export type QueueSlot = {
2605
2544
  time?: string;
2606
2545
  };
2607
2546
 
2608
- export type QueueSlotsResponse = {
2609
- exists?: boolean;
2610
- schedule?: QueueSchedule;
2611
- nextSlots?: Array<(string)>;
2612
- };
2613
-
2614
- export type QueueUpdateResponse = {
2615
- success?: boolean;
2616
- schedule?: QueueSchedule;
2617
- nextSlots?: Array<(string)>;
2618
- reshuffledCount?: number;
2619
- };
2620
-
2621
2547
  /**
2622
2548
  * Configure automatic post recycling (reposting at regular intervals).
2623
2549
  * After the post is published, the system creates new scheduled copies at the
@@ -3405,34 +3331,6 @@ export type TwitterPlatformData = {
3405
3331
  */
3406
3332
  export type replySettings = 'following' | 'mentionedUsers' | 'subscribers' | 'verified';
3407
3333
 
3408
- export type UploadedFile = {
3409
- type?: 'image' | 'video' | 'document';
3410
- url?: string;
3411
- filename?: string;
3412
- size?: number;
3413
- mimeType?: string;
3414
- };
3415
-
3416
- export type type7 = 'image' | 'video' | 'document';
3417
-
3418
- export type UploadTokenResponse = {
3419
- token?: string;
3420
- uploadUrl?: string;
3421
- expiresAt?: string;
3422
- status?: 'pending' | 'completed' | 'expired';
3423
- };
3424
-
3425
- export type status7 = 'pending' | 'completed' | 'expired';
3426
-
3427
- export type UploadTokenStatusResponse = {
3428
- token?: string;
3429
- status?: 'pending' | 'completed' | 'expired';
3430
- files?: Array<UploadedFile>;
3431
- createdAt?: string;
3432
- expiresAt?: string;
3433
- completedAt?: string;
3434
- };
3435
-
3436
3334
  /**
3437
3335
  * Plan and usage stats. The response shape depends on `billingSystem`:
3438
3336
  * * Stripe users (default): per-period counters like `usage.uploads` and
@@ -3582,14 +3480,6 @@ export type User = {
3582
3480
  createdAt?: string;
3583
3481
  };
3584
3482
 
3585
- export type UserGetResponse = {
3586
- user?: User;
3587
- };
3588
-
3589
- export type UsersListResponse = {
3590
- users?: Array<User>;
3591
- };
3592
-
3593
3483
  /**
3594
3484
  * Individual webhook configuration for receiving real-time notifications
3595
3485
  */
@@ -3701,7 +3591,7 @@ export type WebhookLog = {
3701
3591
  /**
3702
3592
  * Delivery outcome
3703
3593
  */
3704
- export type status8 = 'success' | 'failed';
3594
+ export type status7 = 'success' | 'failed';
3705
3595
 
3706
3596
  /**
3707
3597
  * Webhook payload for `account.ads.initial_sync_completed` events.
@@ -3810,7 +3700,7 @@ export type event = 'account.ads.initial_sync_completed';
3810
3700
  /**
3811
3701
  * Overall outcome of the initial sync.
3812
3702
  */
3813
- export type status9 = 'success' | 'failure';
3703
+ export type status8 = 'success' | 'failure';
3814
3704
 
3815
3705
  /**
3816
3706
  * Stable category for UX branching. New values may be added; existing ones are
@@ -5148,7 +5038,7 @@ export type platform10 = 'whatsapp';
5148
5038
  * request before the template is actually removed.
5149
5039
  *
5150
5040
  */
5151
- export type status10 = 'APPROVED' | 'REJECTED' | 'PENDING' | 'PAUSED' | 'DISABLED' | 'IN_APPEAL' | 'PENDING_DELETION';
5041
+ export type status9 = 'APPROVED' | 'REJECTED' | 'PENDING' | 'PAUSED' | 'DISABLED' | 'IN_APPEAL' | 'PENDING_DELETION';
5152
5042
 
5153
5043
  export type WhatsAppBodyComponent = {
5154
5044
  type: 'body';
@@ -5249,7 +5139,7 @@ export type WhatsAppSandboxSession = {
5249
5139
  * list responses.
5250
5140
  *
5251
5141
  */
5252
- export type status11 = 'pending' | 'active';
5142
+ export type status10 = 'pending' | 'active';
5253
5143
 
5254
5144
  export type WhatsAppTemplateButton = {
5255
5145
  type: 'quick_reply' | 'url' | 'phone_number' | 'otp' | 'copy_code' | 'flow' | 'mpm' | 'catalog';
@@ -5283,7 +5173,7 @@ export type WhatsAppTemplateButton = {
5283
5173
  navigate_screen?: string;
5284
5174
  };
5285
5175
 
5286
- export type type8 = 'quick_reply' | 'url' | 'phone_number' | 'otp' | 'copy_code' | 'flow' | 'mpm' | 'catalog';
5176
+ export type type7 = 'quick_reply' | 'url' | 'phone_number' | 'otp' | 'copy_code' | 'flow' | 'mpm' | 'catalog';
5287
5177
 
5288
5178
  /**
5289
5179
  * Required when type is otp
@@ -5368,7 +5258,7 @@ export type WorkflowExecutionEvent = {
5368
5258
 
5369
5259
  export type action2 = 'execution_started' | 'execution_completed' | 'execution_exited' | 'execution_paused' | 'execution_resumed' | 'node_started' | 'node_completed' | 'node_failed' | 'node_skipped';
5370
5260
 
5371
- export type status12 = 'success' | 'failed' | 'pending';
5261
+ export type status11 = 'success' | 'failed' | 'pending';
5372
5262
 
5373
5263
  /**
5374
5264
  * A node in a workflow graph. `config` shape depends on `type`.
@@ -5441,7 +5331,7 @@ export type WorkflowNode = {
5441
5331
  * integrations (webhook, ai, handoff, start_call).
5442
5332
  *
5443
5333
  */
5444
- export type type9 = 'trigger' | 'send_message' | 'wait_for_reply' | 'condition' | 'set_variable' | 'delay' | 'webhook' | 'ai' | 'handoff' | 'start_call' | 'a_b_split' | 'set_field' | 'enroll_sequence' | 'add_tag' | 'remove_tag' | 'end';
5334
+ export type type8 = 'trigger' | 'send_message' | 'wait_for_reply' | 'condition' | 'set_variable' | 'delay' | 'webhook' | 'ai' | 'handoff' | 'start_call' | 'a_b_split' | 'set_field' | 'enroll_sequence' | 'add_tag' | 'remove_tag' | 'end';
5445
5335
 
5446
5336
  /**
5447
5337
  * A single X API operation with its per-call price and the Zernio platform methods that trigger it.
@@ -5718,35 +5608,6 @@ export type YouTubeVideoRetentionResponse = {
5718
5608
  };
5719
5609
  };
5720
5610
 
5721
- export type SendSmsData = {
5722
- body: {
5723
- /**
5724
- * One of your SMS-enabled numbers (E.164).
5725
- */
5726
- from: string;
5727
- /**
5728
- * Recipient number (E.164).
5729
- */
5730
- to: string;
5731
- text?: string;
5732
- /**
5733
- * Publicly reachable media URLs for MMS (max 10, total < 1MB).
5734
- */
5735
- mediaUrls?: Array<(string)>;
5736
- };
5737
- };
5738
-
5739
- export type SendSmsResponse = ({
5740
- /**
5741
- * Telnyx message id
5742
- */
5743
- id?: string;
5744
- conversationId?: string;
5745
- status?: string;
5746
- });
5747
-
5748
- export type SendSmsError = unknown;
5749
-
5750
5611
  export type ValidatePostLengthData = {
5751
5612
  body: {
5752
5613
  /**
@@ -5776,7 +5637,9 @@ export type ValidatePostLengthResponse = ({
5776
5637
  };
5777
5638
  });
5778
5639
 
5779
- export type ValidatePostLengthError = unknown;
5640
+ export type ValidatePostLengthError = ({
5641
+ error?: string;
5642
+ });
5780
5643
 
5781
5644
  export type ValidatePostData = {
5782
5645
  body: {
@@ -5821,7 +5684,9 @@ export type ValidatePostResponse = (({
5821
5684
  }>;
5822
5685
  }));
5823
5686
 
5824
- export type ValidatePostError = unknown;
5687
+ export type ValidatePostError = ({
5688
+ error?: string;
5689
+ });
5825
5690
 
5826
5691
  export type ValidateMediaData = {
5827
5692
  body: {
@@ -5861,7 +5726,9 @@ export type ValidateMediaResponse = ({
5861
5726
  };
5862
5727
  });
5863
5728
 
5864
- export type ValidateMediaError = unknown;
5729
+ export type ValidateMediaError = ({
5730
+ error?: string;
5731
+ });
5865
5732
 
5866
5733
  export type ValidateSubredditData = {
5867
5734
  query: {
@@ -5893,7 +5760,9 @@ export type ValidateSubredditResponse = (({
5893
5760
  error?: string;
5894
5761
  }));
5895
5762
 
5896
- export type ValidateSubredditError = unknown;
5763
+ export type ValidateSubredditError = ({
5764
+ error?: string;
5765
+ });
5897
5766
 
5898
5767
  export type GetAnalyticsData = {
5899
5768
  query?: {
@@ -12457,26 +12326,6 @@ export type ListInboxConversationsResponse = ({
12457
12326
  */
12458
12327
  fetchedAt?: (string) | null;
12459
12328
  } | null;
12460
- /**
12461
- * Ad-click attribution captured on the first inbound message of the
12462
- * conversation. Only present when the conversation originated from a
12463
- * click-to-message ad. Absent on organic conversations.
12464
- *
12465
- * Two sources populate this field:
12466
- * - WhatsApp CTWA (Click-to-WhatsApp): `ctwa_clid`, `ctwa_source_id`,
12467
- * `ctwa_source_url`, `ctwa_headline`, `ctwa_source_type`, `ctwa_captured_at`.
12468
- * - Facebook Messenger CTM / Instagram CTD: `meta_ad_id`, `meta_ad_title`,
12469
- * `meta_ad_source`, `meta_ad_type`, `meta_ad_ref`, `meta_ad_captured_at`,
12470
- * `meta_ad_photo_url`, `meta_ad_video_url`, `meta_ad_post_id`,
12471
- * `meta_ad_product_id`, `meta_ad_flow_id`.
12472
- *
12473
- * Note: `meta_ad_photo_url` and `meta_ad_video_url` are Facebook CDN URLs
12474
- * that may expire. Use `meta_ad_id` for a permanent reference to the ad.
12475
- *
12476
- */
12477
- metadata?: {
12478
- [key: string]: (string);
12479
- } | null;
12480
12329
  }>;
12481
12330
  pagination?: {
12482
12331
  hasMore?: boolean;
@@ -12640,27 +12489,6 @@ export type GetInboxConversationResponse = ({
12640
12489
  */
12641
12490
  fetchedAt?: (string) | null;
12642
12491
  } | null;
12643
- /**
12644
- * Ad-click attribution captured on the first inbound message of the
12645
- * conversation. Only present when the conversation originated from a
12646
- * click-to-message ad. Absent on organic conversations.
12647
- *
12648
- * Two sources populate this field:
12649
- * - WhatsApp CTWA (Click-to-WhatsApp): `ctwa_clid`, `ctwa_source_id`,
12650
- * `ctwa_source_url`, `ctwa_headline`, `ctwa_source_type`, `ctwa_captured_at`.
12651
- * - Facebook Messenger CTM / Instagram CTD: `meta_ad_id`, `meta_ad_title`,
12652
- * `meta_ad_source`, `meta_ad_type`, `meta_ad_ref`, `meta_ad_captured_at`,
12653
- * `meta_ad_photo_url`, `meta_ad_video_url`, `meta_ad_post_id`,
12654
- * `meta_ad_product_id`, `meta_ad_flow_id`.
12655
- *
12656
- * Note: `meta_ad_photo_url` and `meta_ad_video_url` are Facebook CDN URLs
12657
- * that may expire. Use `meta_ad_id` for a permanent reference to the ad
12658
- * (e.g. to link to Meta Ads Manager).
12659
- *
12660
- */
12661
- metadata?: {
12662
- [key: string]: (string);
12663
- } | null;
12664
12492
  };
12665
12493
  });
12666
12494
 
@@ -19734,22 +19562,9 @@ export type CreateStandaloneAdData = {
19734
19562
  */
19735
19563
  budgetType?: 'daily' | 'lifetime';
19736
19564
  /**
19737
- * Meta only. Desired publish state of the ad (and, on the legacy/multi-ad-set shapes, the ad set too).
19738
- * Omitted or `ACTIVE` publishes live immediately (default). `PAUSED` creates the objects paused and skips
19739
- * activation — useful to stage ads before they spend. On the attach shape (`adSetId`), only the new ad is
19740
- * affected; the existing ad set and campaign are already live and are not touched.
19741
- *
19565
+ * Meta only. Publish state of the created ad set + ad. Omitted or ACTIVE publishes live (default, back-compat); PAUSED creates them paused and skips activation, so you can review before they spend.
19742
19566
  */
19743
19567
  status?: 'ACTIVE' | 'PAUSED';
19744
- /**
19745
- * Meta only. Independent publish state for the CAMPAIGN when the create makes both a new campaign and a
19746
- * new ad set (legacy shape). When omitted, the campaign follows `status`. Use this to stage a paused
19747
- * campaign with an active ad set (`status: ACTIVE, campaignStatus: PAUSED`) — the ad set will start
19748
- * delivering as soon as the campaign is activated later. Ignored when `existingCampaignId` is set (the
19749
- * campaign is already live and its status is not changed).
19750
- *
19751
- */
19752
- campaignStatus?: 'ACTIVE' | 'PAUSED';
19753
19568
  /**
19754
19569
  * Meta only. Where the budget lives, which selects the Meta budget model:
19755
19570
  * - `adset` (default): ABO (Ad-set Budget Optimization). The budget is set on the
@@ -19894,16 +19709,11 @@ export type CreateStandaloneAdData = {
19894
19709
  /**
19895
19710
  * Meta only. Reuse an EXISTING ad creative by id instead of
19896
19711
  * building a new one from the copy/media fields (which are then
19897
- * ignored). Works on both shapes:
19898
- * - Legacy/multi-ad-set (`existingCampaignId`): combine with
19899
- * `existingCampaignId` to build a multi-ad-set campaign that
19900
- * shares one creative across audiences.
19901
- * - Attach (`adSetId`): combine with `adSetId` to add a second
19902
- * (or Nth) ad to an existing ad set reusing the same creative —
19903
- * no `headline`/`body`/`imageUrl` required on the body.
19904
- * Mutually exclusive with `creatives[]`, `dynamicCreative`, and
19905
- * `placementAssets`. The creative id is returned as `creativeId`
19906
- * on the create response.
19712
+ * ignored). Combine with `existingCampaignId` to build a
19713
+ * multi-ad-set campaign that shares one creative. Mutually
19714
+ * exclusive with `creatives[]`, `dynamicCreative`, and
19715
+ * `placementAssets`. The creative id used is returned as
19716
+ * `creativeId` on the create response.
19907
19717
  *
19908
19718
  */
19909
19719
  existingCreativeId?: string;
@@ -19987,36 +19797,6 @@ export type CreateStandaloneAdData = {
19987
19797
  name?: string;
19988
19798
  address?: string;
19989
19799
  }>;
19990
- /**
19991
- * Named points of interest (businesses, landmarks). Meta only. `key` from /v1/ads/targeting/search?dimension=geo&geoType=place. Maps to geo_locations.places.
19992
- */
19993
- places?: Array<{
19994
- key: string;
19995
- }>;
19996
- /**
19997
- * Named neighbourhood areas. Meta only. `key` from /v1/ads/targeting/search?dimension=geo&geoType=neighborhood. Maps to geo_locations.neighborhoods.
19998
- */
19999
- neighborhoods?: Array<{
20000
- key: string;
20001
- }>;
20002
- /**
20003
- * Geo exclusions. Meta only. Maps to excluded_geo_locations. Supports countries, regions, cities, and zips.
20004
- */
20005
- excludedLocations?: {
20006
- /**
20007
- * ISO-3166 alpha-2 country codes to exclude.
20008
- */
20009
- countries?: Array<(string)>;
20010
- regions?: Array<{
20011
- key: string;
20012
- }>;
20013
- cities?: Array<{
20014
- key: string;
20015
- }>;
20016
- zips?: Array<{
20017
- key: string;
20018
- }>;
20019
- };
20020
19800
  /**
20021
19801
  * Behaviour entities from /v1/ads/targeting/search?dimension=behavior. Supported on Meta and TikTok. Each must include id.
20022
19802
  */
@@ -20045,9 +19825,6 @@ export type CreateStandaloneAdData = {
20045
19825
  * additionally enforces co-selection rules (e.g. some positions require their parent
20046
19826
  * publisher platform) and returns an actionable error which we surface. Non-Meta
20047
19827
  * platforms reject this field.
20048
- * Can be combined with `rawTargeting` — when both are set, the placement spec is
20049
- * converted to Meta's snake_case and merged into the raw targeting object before
20050
- * it is sent to Meta.
20051
19828
  *
20052
19829
  */
20053
19830
  placements?: {
@@ -20082,8 +19859,6 @@ export type CreateStandaloneAdData = {
20082
19859
  * ageMin/...), `audienceId`, and `savedTargetingId` (sending both → 422). Sent as-is; Meta validates and
20083
19860
  * surfaces any errors. If cloning an EU campaign, also pass `dsaBeneficiary` / `dsaPayor` (those are
20084
19861
  * separate fields, not part of targeting).
20085
- * Can be combined with the top-level `placements` field — when both are present, placements are
20086
- * converted to Meta's snake_case and merged into this object before it is sent to Meta.
20087
19862
  *
20088
19863
  */
20089
19864
  rawTargeting?: {
@@ -20563,51 +20338,7 @@ export type CreateLeadFormData = {
20563
20338
  thankYouButtonText?: string;
20564
20339
  thankYouButtonType?: string;
20565
20340
  thankYouWebsiteUrl?: string;
20566
- /**
20567
- * Legacy form type toggle. Prefer formType instead. false = More Volume, true = Higher Intent.
20568
- */
20569
20341
  isOptimizedForQuality?: boolean;
20570
- /**
20571
- * Form type. MORE_VOLUME = optimized for lead quantity (default). HIGHER_INTENT = adds a review/confirmation step before submit. RICH_CREATIVE = includes context card and custom headline to educate users before they submit. Supersedes isOptimizedForQuality.
20572
- */
20573
- formType?: 'MORE_VOLUME' | 'HIGHER_INTENT' | 'RICH_CREATIVE';
20574
- /**
20575
- * Sharing setting. true = Restricted (only people targeted by the ad can open the form link). false = Open (shareable link, default).
20576
- */
20577
- blockDisplayForNonTargetedViewer?: boolean;
20578
- /**
20579
- * Flexible form delivery. true = the form can surface organically on the Page (not just as a paid ad). Defaults to false.
20580
- */
20581
- allowOrganicLeadGen?: boolean;
20582
- /**
20583
- * Custom subheadline shown above the form fields on the questions page (the contact-information section description). Defaults to Meta's generic copy when omitted.
20584
- */
20585
- questionPageCustomHeadline?: string;
20586
- /**
20587
- * Intro card shown before the questions page. Omit to skip the intro screen.
20588
- */
20589
- contextCard?: {
20590
- /**
20591
- * Headline / title of the intro card.
20592
- */
20593
- title?: string;
20594
- /**
20595
- * Body text lines shown on the intro card.
20596
- */
20597
- content?: Array<(string)>;
20598
- /**
20599
- * Visual layout of the intro card.
20600
- */
20601
- style?: 'LIST_STYLE' | 'PARAGRAPH_STYLE';
20602
- /**
20603
- * CTA button label on the intro card.
20604
- */
20605
- buttonText?: string;
20606
- /**
20607
- * Image hash of the cover photo (obtain from the Meta Ad Images API). Omit to show no image.
20608
- */
20609
- coverPhoto?: string;
20610
- };
20611
20342
  };
20612
20343
  };
20613
20344
 
@@ -20634,47 +20365,8 @@ export type GetLeadFormData = {
20634
20365
 
20635
20366
  export type GetLeadFormResponse = ({
20636
20367
  status?: string;
20637
- /**
20638
- * Full form config — sufficient to duplicate the form via POST /v1/ads/lead-forms.
20639
- */
20640
20368
  form?: {
20641
- id?: string;
20642
- name?: string;
20643
- /**
20644
- * ARCHIVED forms can't receive new leads.
20645
- */
20646
- status?: 'ACTIVE' | 'ARCHIVED';
20647
- locale?: string;
20648
- created_time?: string;
20649
- leads_count?: number;
20650
- privacy_policy_url?: string;
20651
- follow_up_action_url?: (string) | null;
20652
- questions?: Array<{
20653
- key?: string;
20654
- label?: string;
20655
- /**
20656
- * EMAIL, PHONE, FULL_NAME, FIRST_NAME, LAST_NAME, CUSTOM, …
20657
- */
20658
- type?: string;
20659
- options?: Array<{
20660
- key?: string;
20661
- value?: string;
20662
- }>;
20663
- inline_context?: string;
20664
- }>;
20665
- thank_you_page?: {
20666
- title?: string;
20667
- body?: string;
20668
- button_text?: string;
20669
- button_type?: string;
20670
- website_url?: string;
20671
- } | null;
20672
- /**
20673
- * Intro card shown before the form questions (title, content, button label).
20674
- */
20675
- context_card?: {
20676
- [key: string]: unknown;
20677
- } | null;
20369
+ [key: string]: unknown;
20678
20370
  };
20679
20371
  });
20680
20372
 
@@ -20804,9 +20496,9 @@ export type SearchAdTargetingData = {
20804
20496
  */
20805
20497
  dimension?: 'geo' | 'interest' | 'behavior' | 'income';
20806
20498
  /**
20807
- * Only used when `dimension=geo`. The kind of location to resolve. `place` resolves named points of interest (businesses, landmarks). `neighborhood` resolves named neighbourhood areas. Use `all` to search every geo type in a single relevance-ranked call — mirrors Meta's own unified search box. Defaults to `city`.
20499
+ * Only used when `dimension=geo`. The kind of location to resolve. Defaults to `city`.
20808
20500
  */
20809
- geoType?: 'all' | 'country' | 'region' | 'city' | 'subcity' | 'neighborhood' | 'place' | 'zip' | 'metro_area' | 'geo_market';
20501
+ geoType?: 'country' | 'region' | 'city' | 'zip' | 'metro';
20810
20502
  /**
20811
20503
  * Maximum results to return.
20812
20504
  */
@@ -20840,14 +20532,6 @@ export type SearchAdTargetingResponse = ({
20840
20532
  * Optional estimated reachable users for this option, when the platform returns it.
20841
20533
  */
20842
20534
  audienceSize?: (number) | null;
20843
- /**
20844
- * Centre latitude of the location. Populated on Meta geo results (city, neighborhood, place, etc.). Useful for map views.
20845
- */
20846
- latitude?: (number) | null;
20847
- /**
20848
- * Centre longitude of the location.
20849
- */
20850
- longitude?: (number) | null;
20851
20535
  }>;
20852
20536
  });
20853
20537
 
@@ -20935,7 +20619,9 @@ export type ListAdCatalogsResponse = ({
20935
20619
  }>;
20936
20620
  });
20937
20621
 
20938
- export type ListAdCatalogsError = unknown;
20622
+ export type ListAdCatalogsError = ({
20623
+ error?: string;
20624
+ } | unknown);
20939
20625
 
20940
20626
  export type ListAdCatalogProductSetsData = {
20941
20627
  path: {
@@ -20960,7 +20646,9 @@ export type ListAdCatalogProductSetsResponse = ({
20960
20646
  }>;
20961
20647
  });
20962
20648
 
20963
- export type ListAdCatalogProductSetsError = unknown;
20649
+ export type ListAdCatalogProductSetsError = ({
20650
+ error?: string;
20651
+ } | unknown);
20964
20652
 
20965
20653
  export type ListAdAudiencesData = {
20966
20654
  query: {
@@ -20990,7 +20678,7 @@ export type ListAdAudiencesResponse = ({
20990
20678
  /**
20991
20679
  * Present (and the only meaningful payload) when `type` is `saved_targeting`. Null for uploaded/derived audience types.
20992
20680
  */
20993
- spec?: ((TargetingSpec) | null);
20681
+ spec?: (TargetingSpec | null);
20994
20682
  platform?: string;
20995
20683
  size?: number;
20996
20684
  status?: string;