scrapebadger 0.34.0 → 0.36.0

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/dist/index.js CHANGED
@@ -9,7 +9,7 @@ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
9
9
  var WebSocket__default = /*#__PURE__*/_interopDefault(WebSocket);
10
10
 
11
11
  // src/internal/version.ts
12
- var SDK_VERSION = "0.33.1";
12
+ var SDK_VERSION = "0.36.0";
13
13
 
14
14
  // src/internal/exceptions.ts
15
15
  var ScrapeBadgerError = class _ScrapeBadgerError extends Error {
@@ -2445,6 +2445,7 @@ var SpacesClient = class {
2445
2445
 
2446
2446
  // src/twitter/client.ts
2447
2447
  var TwitterClient = class {
2448
+ _gen;
2448
2449
  /** Client for tweet operations */
2449
2450
  tweets;
2450
2451
  /** Client for user operations */
@@ -2467,6 +2468,7 @@ var TwitterClient = class {
2467
2468
  * @param client - The base HTTP client for making requests.
2468
2469
  */
2469
2470
  constructor(client) {
2471
+ this._gen = client;
2470
2472
  this.tweets = new TweetsClient(client);
2471
2473
  this.users = new UsersClient(client);
2472
2474
  this.lists = new ListsClient(client);
@@ -2476,12 +2478,67 @@ var TwitterClient = class {
2476
2478
  this.stream = new StreamClient(client);
2477
2479
  this.spaces = new SpacesClient(client);
2478
2480
  }
2481
+ // --- generated by sdk/codegen/facade — do not edit ---
2482
+ /** Delete filter rule. Generated from the OpenAPI spec; returns the raw response object. */
2483
+ async deleteFilterRule(ruleId, body, params = {}) {
2484
+ return this._gen.request(`/v1/twitter/stream/filter-rules/${ruleId}`, {
2485
+ method: "DELETE",
2486
+ params,
2487
+ body
2488
+ });
2489
+ }
2490
+ /** Update filter rule. Generated from the OpenAPI spec; returns the raw response object. */
2491
+ async updateFilterRule(ruleId, body, params = {}) {
2492
+ return this._gen.request(`/v1/twitter/stream/filter-rules/${ruleId}`, {
2493
+ method: "PATCH",
2494
+ params,
2495
+ body
2496
+ });
2497
+ }
2498
+ /** Delete stream monitor. Generated from the OpenAPI spec; returns the raw response object. */
2499
+ async deleteStreamMonitor(monitorId, body, params = {}) {
2500
+ return this._gen.request(`/v1/twitter/stream/monitors/${monitorId}`, {
2501
+ method: "DELETE",
2502
+ params,
2503
+ body
2504
+ });
2505
+ }
2506
+ /** Update stream monitor. Generated from the OpenAPI spec; returns the raw response object. */
2507
+ async updateStreamMonitor(monitorId, body, params = {}) {
2508
+ return this._gen.request(`/v1/twitter/stream/monitors/${monitorId}`, {
2509
+ method: "PATCH",
2510
+ params,
2511
+ body
2512
+ });
2513
+ }
2514
+ /** List webhooks. Generated from the OpenAPI spec; returns the raw response object. */
2515
+ async listWebhooks(params = {}) {
2516
+ return this._gen.request("/v1/twitter/stream/webhooks", { params });
2517
+ }
2518
+ /** Configure webhook on a monitor. Generated from the OpenAPI spec; returns the raw response object. */
2519
+ async configureWebhookOnAMonitor(body, params = {}) {
2520
+ return this._gen.request("/v1/twitter/stream/webhooks", { method: "POST", params, body });
2521
+ }
2522
+ /** Test webhook delivery. Generated from the OpenAPI spec; returns the raw response object. */
2523
+ async testWebhookDelivery(body, params = {}) {
2524
+ return this._gen.request("/v1/twitter/stream/webhooks/test", { method: "POST", params, body });
2525
+ }
2526
+ /** Remove webhook from monitor. Generated from the OpenAPI spec; returns the raw response object. */
2527
+ async removeWebhookFromMonitor(webhookId, body, params = {}) {
2528
+ return this._gen.request(`/v1/twitter/stream/webhooks/${webhookId}`, {
2529
+ method: "DELETE",
2530
+ params,
2531
+ body
2532
+ });
2533
+ }
2479
2534
  };
2480
2535
 
2481
2536
  // src/web/client.ts
2482
2537
  var WebClient = class {
2538
+ _gen;
2483
2539
  client;
2484
2540
  constructor(client) {
2541
+ this._gen = client;
2485
2542
  this.client = client;
2486
2543
  }
2487
2544
  /**
@@ -2597,6 +2654,27 @@ var WebClient = class {
2597
2654
  body
2598
2655
  });
2599
2656
  }
2657
+ // --- generated by sdk/codegen/facade — do not edit ---
2658
+ /** Submit batch scraping job. Generated from the OpenAPI spec; returns the raw response object. */
2659
+ async submitBatchScrapingJob(body, params = {}) {
2660
+ return this._gen.request("/v1/web/batch", { method: "POST", params, body });
2661
+ }
2662
+ /** Get batch job status. Generated from the OpenAPI spec; returns the raw response object. */
2663
+ async getBatchJobStatus(jobId, params = {}) {
2664
+ return this._gen.request(`/v1/web/batch/${jobId}`, { params });
2665
+ }
2666
+ /** Extract structured data. Generated from the OpenAPI spec; returns the raw response object. */
2667
+ async extractStructuredData(body, params = {}) {
2668
+ return this._gen.request("/v1/web/extract", { method: "POST", params, body });
2669
+ }
2670
+ /** Take a screenshot. Generated from the OpenAPI spec; returns the raw response object. */
2671
+ async takeAScreenshot(body, params = {}) {
2672
+ return this._gen.request("/v1/web/screenshot", { method: "POST", params, body });
2673
+ }
2674
+ /** Poll an auto-unblock discovery job. Generated from the OpenAPI spec; returns the raw response object. */
2675
+ async pollAnAutoUnblockDiscoveryJob(jobId, params = {}) {
2676
+ return this._gen.request(`/v1/web/unblock/${jobId}`, { params });
2677
+ }
2600
2678
  };
2601
2679
 
2602
2680
  // src/vinted/search.ts
@@ -2692,10 +2770,9 @@ var ItemsClient = class {
2692
2770
  * ```
2693
2771
  */
2694
2772
  async get(itemId, options = {}) {
2695
- return this.client.request(
2696
- `/v1/vinted/items/${itemId}`,
2697
- { params: { market: options.market } }
2698
- );
2773
+ return this.client.request(`/v1/vinted/items/${itemId}`, {
2774
+ params: { market: options.market }
2775
+ });
2699
2776
  }
2700
2777
  };
2701
2778
 
@@ -2725,10 +2802,9 @@ var UsersClient2 = class {
2725
2802
  * ```
2726
2803
  */
2727
2804
  async getProfile(userId, options = {}) {
2728
- return this.client.request(
2729
- `/v1/vinted/users/${userId}`,
2730
- { params: { market: options.market } }
2731
- );
2805
+ return this.client.request(`/v1/vinted/users/${userId}`, {
2806
+ params: { market: options.market }
2807
+ });
2732
2808
  }
2733
2809
  /**
2734
2810
  * Get items listed by a user.
@@ -2756,16 +2832,13 @@ var UsersClient2 = class {
2756
2832
  * ```
2757
2833
  */
2758
2834
  async getItems(userId, options = {}) {
2759
- return this.client.request(
2760
- `/v1/vinted/users/${userId}/items`,
2761
- {
2762
- params: {
2763
- market: options.market,
2764
- page: options.page,
2765
- per_page: options.per_page
2766
- }
2835
+ return this.client.request(`/v1/vinted/users/${userId}/items`, {
2836
+ params: {
2837
+ market: options.market,
2838
+ page: options.page,
2839
+ per_page: options.per_page
2767
2840
  }
2768
- );
2841
+ });
2769
2842
  }
2770
2843
  };
2771
2844
 
@@ -3354,6 +3427,7 @@ var VideosClient = class {
3354
3427
 
3355
3428
  // src/google/client.ts
3356
3429
  var GoogleClient = class {
3430
+ _gen;
3357
3431
  /** Google Web Search (SERP) — with optional deferred AI Overview follow-up. */
3358
3432
  search;
3359
3433
  /** Google Maps — places, reviews, photos, posts. */
@@ -3391,6 +3465,7 @@ var GoogleClient = class {
3391
3465
  /** Google Products — immersive product detail. */
3392
3466
  products;
3393
3467
  constructor(client) {
3468
+ this._gen = client;
3394
3469
  this.search = new SearchClient2(client);
3395
3470
  this.maps = new MapsClient(client);
3396
3471
  this.news = new NewsClient(client);
@@ -3410,6 +3485,55 @@ var GoogleClient = class {
3410
3485
  this.flights = new FlightsClient(client);
3411
3486
  this.products = new ProductsClient(client);
3412
3487
  }
3488
+ // --- generated by sdk/codegen/facade — do not edit ---
3489
+ /** Google AI Overview (inline SERP block). Generated from the OpenAPI spec; returns the raw response object. */
3490
+ async googleAiOverviewInlineSerpBlock(params = {}) {
3491
+ return this._gen.request("/v1/google/ai-overview", { params });
3492
+ }
3493
+ /** Google Flights calendar — cheapest fare per date. Generated from the OpenAPI spec; returns the raw response object. */
3494
+ async googleFlightsCalendarCheapestFarePerDate(params = {}) {
3495
+ return this._gen.request("/v1/google/flights/calendar", { params });
3496
+ }
3497
+ };
3498
+
3499
+ // src/idealista/client.ts
3500
+ var IdealistaClient = class {
3501
+ client;
3502
+ constructor(client) {
3503
+ this.client = client;
3504
+ }
3505
+ /** Agency by phone. Generated from the OpenAPI spec; returns the raw response object. */
3506
+ async agencyByPhone(phone, params = {}) {
3507
+ return this.client.request(`/v1/idealista/agency/by-phone/${phone}`, { params });
3508
+ }
3509
+ /** Agency profile + listings. Generated from the OpenAPI spec; returns the raw response object. */
3510
+ async agencyProfileListings(shortName, params = {}) {
3511
+ return this.client.request(`/v1/idealista/agency/${shortName}`, { params });
3512
+ }
3513
+ /** List markets. Generated from the OpenAPI spec; returns the raw response object. */
3514
+ async listMarkets(params = {}) {
3515
+ return this.client.request("/v1/idealista/markets", { params });
3516
+ }
3517
+ /** Get property detail. Generated from the OpenAPI spec; returns the raw response object. */
3518
+ async getPropertyDetail(propertyCode, params = {}) {
3519
+ return this.client.request(`/v1/idealista/properties/${propertyCode}`, { params });
3520
+ }
3521
+ /** Get listing engagement stats. Generated from the OpenAPI spec; returns the raw response object. */
3522
+ async getListingEngagementStats(propertyCode, params = {}) {
3523
+ return this.client.request(`/v1/idealista/properties/${propertyCode}/stats`, { params });
3524
+ }
3525
+ /** Search listings. Generated from the OpenAPI spec; returns the raw response object. */
3526
+ async searchListings(params = {}) {
3527
+ return this.client.request("/v1/idealista/search", { params });
3528
+ }
3529
+ /** Search all (beats result cap). Generated from the OpenAPI spec; returns the raw response object. */
3530
+ async searchAllBeatsResultCap(params = {}) {
3531
+ return this.client.request("/v1/idealista/search/all", { params });
3532
+ }
3533
+ /** Resolve locations. Generated from the OpenAPI spec; returns the raw response object. */
3534
+ async resolveLocations(params = {}) {
3535
+ return this.client.request("/v1/idealista/suggest", { params });
3536
+ }
3413
3537
  };
3414
3538
 
3415
3539
  // src/reddit/search.ts
@@ -3479,16 +3603,13 @@ var SearchClient3 = class {
3479
3603
  * ```
3480
3604
  */
3481
3605
  async subreddits(options) {
3482
- return this.client.request(
3483
- "/v1/reddit/search/subreddits",
3484
- {
3485
- params: {
3486
- query: options.query,
3487
- after: options.after,
3488
- limit: options.limit
3489
- }
3606
+ return this.client.request("/v1/reddit/search/subreddits", {
3607
+ params: {
3608
+ query: options.query,
3609
+ after: options.after,
3610
+ limit: options.limit
3490
3611
  }
3491
- );
3612
+ });
3492
3613
  }
3493
3614
  /**
3494
3615
  * Search Reddit users.
@@ -3513,16 +3634,13 @@ var SearchClient3 = class {
3513
3634
  * ```
3514
3635
  */
3515
3636
  async users(options) {
3516
- return this.client.request(
3517
- "/v1/reddit/search/users",
3518
- {
3519
- params: {
3520
- query: options.query,
3521
- after: options.after,
3522
- limit: options.limit
3523
- }
3637
+ return this.client.request("/v1/reddit/search/users", {
3638
+ params: {
3639
+ query: options.query,
3640
+ after: options.after,
3641
+ limit: options.limit
3524
3642
  }
3525
- );
3643
+ });
3526
3644
  }
3527
3645
  /**
3528
3646
  * Get Reddit posts linking to a specific domain.
@@ -3551,18 +3669,15 @@ var SearchClient3 = class {
3551
3669
  * ```
3552
3670
  */
3553
3671
  async domainPosts(options) {
3554
- return this.client.request(
3555
- "/v1/reddit/search/domain",
3556
- {
3557
- params: {
3558
- domain: options.domain,
3559
- sort: options.sort,
3560
- time: options.time,
3561
- after: options.after,
3562
- limit: options.limit
3563
- }
3672
+ return this.client.request("/v1/reddit/search/domain", {
3673
+ params: {
3674
+ domain: options.domain,
3675
+ sort: options.sort,
3676
+ time: options.time,
3677
+ after: options.after,
3678
+ limit: options.limit
3564
3679
  }
3565
- );
3680
+ });
3566
3681
  }
3567
3682
  };
3568
3683
 
@@ -3626,10 +3741,9 @@ var PostsClient = class {
3626
3741
  * ```
3627
3742
  */
3628
3743
  async get(postId, options = {}) {
3629
- return this.client.request(
3630
- `/v1/reddit/posts/${postId}`,
3631
- { params: { subreddit: options.subreddit } }
3632
- );
3744
+ return this.client.request(`/v1/reddit/posts/${postId}`, {
3745
+ params: { subreddit: options.subreddit }
3746
+ });
3633
3747
  }
3634
3748
  /**
3635
3749
  * Get comments for a Reddit post.
@@ -3657,17 +3771,14 @@ var PostsClient = class {
3657
3771
  * ```
3658
3772
  */
3659
3773
  async comments(postId, options = {}) {
3660
- return this.client.request(
3661
- `/v1/reddit/posts/${postId}/comments`,
3662
- {
3663
- params: {
3664
- subreddit: options.subreddit,
3665
- sort: options.sort,
3666
- depth: options.depth,
3667
- limit: options.limit
3668
- }
3774
+ return this.client.request(`/v1/reddit/posts/${postId}/comments`, {
3775
+ params: {
3776
+ subreddit: options.subreddit,
3777
+ sort: options.sort,
3778
+ depth: options.depth,
3779
+ limit: options.limit
3669
3780
  }
3670
- );
3781
+ });
3671
3782
  }
3672
3783
  /**
3673
3784
  * Get cross-posts and duplicate submissions of a Reddit post.
@@ -3691,15 +3802,12 @@ var PostsClient = class {
3691
3802
  * ```
3692
3803
  */
3693
3804
  async duplicates(postId, options = {}) {
3694
- return this.client.request(
3695
- `/v1/reddit/posts/${postId}/duplicates`,
3696
- {
3697
- params: {
3698
- after: options.after,
3699
- limit: options.limit
3700
- }
3805
+ return this.client.request(`/v1/reddit/posts/${postId}/duplicates`, {
3806
+ params: {
3807
+ after: options.after,
3808
+ limit: options.limit
3701
3809
  }
3702
- );
3810
+ });
3703
3811
  }
3704
3812
  };
3705
3813
 
@@ -3899,9 +4007,7 @@ var UsersClient3 = class {
3899
4007
  * ```
3900
4008
  */
3901
4009
  async get(username) {
3902
- return this.client.request(
3903
- `/v1/reddit/users/${username}`
3904
- );
4010
+ return this.client.request(`/v1/reddit/users/${username}`);
3905
4011
  }
3906
4012
  /**
3907
4013
  * Get posts submitted by a Reddit user.
@@ -3929,17 +4035,14 @@ var UsersClient3 = class {
3929
4035
  * ```
3930
4036
  */
3931
4037
  async posts(username, options = {}) {
3932
- return this.client.request(
3933
- `/v1/reddit/users/${username}/posts`,
3934
- {
3935
- params: {
3936
- sort: options.sort,
3937
- time: options.time,
3938
- after: options.after,
3939
- limit: options.limit
3940
- }
4038
+ return this.client.request(`/v1/reddit/users/${username}/posts`, {
4039
+ params: {
4040
+ sort: options.sort,
4041
+ time: options.time,
4042
+ after: options.after,
4043
+ limit: options.limit
3941
4044
  }
3942
- );
4045
+ });
3943
4046
  }
3944
4047
  /**
3945
4048
  * Get comments made by a Reddit user.
@@ -3966,17 +4069,14 @@ var UsersClient3 = class {
3966
4069
  * ```
3967
4070
  */
3968
4071
  async comments(username, options = {}) {
3969
- return this.client.request(
3970
- `/v1/reddit/users/${username}/comments`,
3971
- {
3972
- params: {
3973
- sort: options.sort,
3974
- time: options.time,
3975
- after: options.after,
3976
- limit: options.limit
3977
- }
4072
+ return this.client.request(`/v1/reddit/users/${username}/comments`, {
4073
+ params: {
4074
+ sort: options.sort,
4075
+ time: options.time,
4076
+ after: options.after,
4077
+ limit: options.limit
3978
4078
  }
3979
- );
4079
+ });
3980
4080
  }
3981
4081
  /**
3982
4082
  * Get subreddits moderated by a Reddit user.
@@ -3995,9 +4095,7 @@ var UsersClient3 = class {
3995
4095
  * ```
3996
4096
  */
3997
4097
  async moderated(username) {
3998
- return this.client.request(
3999
- `/v1/reddit/users/${username}/moderated`
4000
- );
4098
+ return this.client.request(`/v1/reddit/users/${username}/moderated`);
4001
4099
  }
4002
4100
  /**
4003
4101
  * Get trophies awarded to a Reddit user.
@@ -4016,9 +4114,7 @@ var UsersClient3 = class {
4016
4114
  * ```
4017
4115
  */
4018
4116
  async trophies(username) {
4019
- return this.client.request(
4020
- `/v1/reddit/users/${username}/trophies`
4021
- );
4117
+ return this.client.request(`/v1/reddit/users/${username}/trophies`);
4022
4118
  }
4023
4119
  };
4024
4120
 
@@ -4092,6 +4188,11 @@ var ApartmentsClient = class {
4092
4188
  }
4093
4189
  throw new Error("Provide either url, or both slug and propertyId");
4094
4190
  }
4191
+ // --- generated by sdk/codegen/facade — do not edit ---
4192
+ /** Get property detail by slug + id. Generated from the OpenAPI spec; returns the raw response object. */
4193
+ async getPropertyDetailBySlugId(slug, propertyId, params = {}) {
4194
+ return this.client.request(`/v1/apartments/properties/${slug}/${propertyId}`, { params });
4195
+ }
4095
4196
  };
4096
4197
 
4097
4198
  // src/instagram/users.ts
@@ -4109,15 +4210,11 @@ var UsersClient4 = class {
4109
4210
  * @deprecated Temporarily unavailable — authenticated data is temporarily offline.
4110
4211
  */
4111
4212
  async about(username) {
4112
- return this.client.request(
4113
- `/v1/instagram/users/${username}/about`
4114
- );
4213
+ return this.client.request(`/v1/instagram/users/${username}/about`);
4115
4214
  }
4116
4215
  /** Get accounts related/suggested for a user. */
4117
4216
  async related(username) {
4118
- return this.client.request(
4119
- `/v1/instagram/users/${username}/related`
4120
- );
4217
+ return this.client.request(`/v1/instagram/users/${username}/related`);
4121
4218
  }
4122
4219
  /** Get a user's timeline posts. */
4123
4220
  async posts(username, options = {}) {
@@ -4149,9 +4246,7 @@ var UsersClient4 = class {
4149
4246
  * @deprecated Temporarily unavailable — authenticated data is temporarily offline.
4150
4247
  */
4151
4248
  async pinned(username) {
4152
- return this.client.request(
4153
- `/v1/instagram/users/${username}/pinned`
4154
- );
4249
+ return this.client.request(`/v1/instagram/users/${username}/pinned`);
4155
4250
  }
4156
4251
  /**
4157
4252
  * @deprecated Temporarily unavailable — authenticated data is temporarily offline.
@@ -4164,26 +4259,22 @@ var UsersClient4 = class {
4164
4259
  * @param options.order - Ordering hint (e.g. "default", "date_followed_earliest").
4165
4260
  */
4166
4261
  async followers(username, options = {}) {
4167
- return this.client.request(
4168
- `/v1/instagram/users/${username}/followers`,
4169
- {
4170
- params: {
4171
- amount: options.amount,
4172
- cursor: options.cursor,
4173
- order: options.order
4174
- }
4262
+ return this.client.request(`/v1/instagram/users/${username}/followers`, {
4263
+ params: {
4264
+ amount: options.amount,
4265
+ cursor: options.cursor,
4266
+ order: options.order
4175
4267
  }
4176
- );
4268
+ });
4177
4269
  }
4178
4270
  /**
4179
4271
  * Get the accounts a user follows.
4180
4272
  * @deprecated Temporarily unavailable — authenticated data is temporarily offline.
4181
4273
  */
4182
4274
  async following(username, options = {}) {
4183
- return this.client.request(
4184
- `/v1/instagram/users/${username}/following`,
4185
- { params: { amount: options.amount, cursor: options.cursor } }
4186
- );
4275
+ return this.client.request(`/v1/instagram/users/${username}/following`, {
4276
+ params: { amount: options.amount, cursor: options.cursor }
4277
+ });
4187
4278
  }
4188
4279
  /**
4189
4280
  * Search within a user's followers by name/username.
@@ -4202,18 +4293,14 @@ var UsersClient4 = class {
4202
4293
  * @deprecated Temporarily unavailable — authenticated data is temporarily offline.
4203
4294
  */
4204
4295
  async stories(username) {
4205
- return this.client.request(
4206
- `/v1/instagram/users/${username}/stories`
4207
- );
4296
+ return this.client.request(`/v1/instagram/users/${username}/stories`);
4208
4297
  }
4209
4298
  /**
4210
4299
  * Get a user's story highlights.
4211
4300
  * @deprecated Temporarily unavailable — authenticated data is temporarily offline.
4212
4301
  */
4213
4302
  async highlights(username) {
4214
- return this.client.request(
4215
- `/v1/instagram/users/${username}/highlights`
4216
- );
4303
+ return this.client.request(`/v1/instagram/users/${username}/highlights`);
4217
4304
  }
4218
4305
  async media(path, options) {
4219
4306
  return this.client.request(path, {
@@ -4242,19 +4329,16 @@ var MediaClient = class {
4242
4329
  }
4243
4330
  /** Get top-level comments on a media. */
4244
4331
  async comments(code, options = {}) {
4245
- return this.client.request(
4246
- `/v1/instagram/media/${code}/comments`,
4247
- { params: { amount: options.amount, cursor: options.cursor } }
4248
- );
4332
+ return this.client.request(`/v1/instagram/media/${code}/comments`, {
4333
+ params: { amount: options.amount, cursor: options.cursor }
4334
+ });
4249
4335
  }
4250
4336
  /**
4251
4337
  * Get the users who liked a media.
4252
4338
  * @deprecated Temporarily unavailable — authenticated data is temporarily offline.
4253
4339
  */
4254
4340
  async likers(code) {
4255
- return this.client.request(
4256
- `/v1/instagram/media/${code}/likers`
4257
- );
4341
+ return this.client.request(`/v1/instagram/media/${code}/likers`);
4258
4342
  }
4259
4343
  /**
4260
4344
  * Get replies to a comment.
@@ -4285,47 +4369,42 @@ var SearchClient4 = class {
4285
4369
  * @deprecated Temporarily unavailable — authenticated data is temporarily offline.
4286
4370
  */
4287
4371
  async users(query) {
4288
- return this.client.request(
4289
- "/v1/instagram/search/users",
4290
- { params: { query } }
4291
- );
4372
+ return this.client.request("/v1/instagram/search/users", {
4373
+ params: { query }
4374
+ });
4292
4375
  }
4293
4376
  /** Search hashtags. */
4294
4377
  async hashtags(query) {
4295
- return this.client.request(
4296
- "/v1/instagram/search/hashtags",
4297
- { params: { query } }
4298
- );
4378
+ return this.client.request("/v1/instagram/search/hashtags", {
4379
+ params: { query }
4380
+ });
4299
4381
  }
4300
4382
  /**
4301
4383
  * Search places/locations.
4302
4384
  * @deprecated Temporarily unavailable — authenticated data is temporarily offline.
4303
4385
  */
4304
4386
  async places(query) {
4305
- return this.client.request(
4306
- "/v1/instagram/search/places",
4307
- { params: { query } }
4308
- );
4387
+ return this.client.request("/v1/instagram/search/places", {
4388
+ params: { query }
4389
+ });
4309
4390
  }
4310
4391
  /**
4311
4392
  * Search reels.
4312
4393
  * @deprecated Temporarily unavailable — authenticated data is temporarily offline.
4313
4394
  */
4314
4395
  async reels(query) {
4315
- return this.client.request(
4316
- "/v1/instagram/search/reels",
4317
- { params: { query } }
4318
- );
4396
+ return this.client.request("/v1/instagram/search/reels", {
4397
+ params: { query }
4398
+ });
4319
4399
  }
4320
4400
  /**
4321
4401
  * Search music/audio tracks.
4322
4402
  * @deprecated Temporarily unavailable — authenticated data is temporarily offline.
4323
4403
  */
4324
4404
  async music(query) {
4325
- return this.client.request(
4326
- "/v1/instagram/search/music",
4327
- { params: { query } }
4328
- );
4405
+ return this.client.request("/v1/instagram/search/music", {
4406
+ params: { query }
4407
+ });
4329
4408
  }
4330
4409
  /** Get blended "top" results (users, hashtags, and places). */
4331
4410
  async top(query) {
@@ -4338,10 +4417,9 @@ var SearchClient4 = class {
4338
4417
  * @deprecated Temporarily unavailable — authenticated data is temporarily offline.
4339
4418
  */
4340
4419
  async autocomplete(query) {
4341
- return this.client.request(
4342
- "/v1/instagram/search/autocomplete",
4343
- { params: { query } }
4344
- );
4420
+ return this.client.request("/v1/instagram/search/autocomplete", {
4421
+ params: { query }
4422
+ });
4345
4423
  }
4346
4424
  };
4347
4425
 
@@ -4369,22 +4447,14 @@ var HashtagsClient = class {
4369
4447
  }
4370
4448
  /** Get the most recent media for a hashtag. */
4371
4449
  async recent(tag, options = {}) {
4372
- return mediaFeed(
4373
- this.client,
4374
- `/v1/instagram/hashtags/${tag}/recent`,
4375
- options
4376
- );
4450
+ return mediaFeed(this.client, `/v1/instagram/hashtags/${tag}/recent`, options);
4377
4451
  }
4378
4452
  /**
4379
4453
  * Get reels for a hashtag.
4380
4454
  * @deprecated Temporarily unavailable — authenticated data is temporarily offline.
4381
4455
  */
4382
4456
  async reels(tag, options = {}) {
4383
- return mediaFeed(
4384
- this.client,
4385
- `/v1/instagram/hashtags/${tag}/reels`,
4386
- options
4387
- );
4457
+ return mediaFeed(this.client, `/v1/instagram/hashtags/${tag}/reels`, options);
4388
4458
  }
4389
4459
  };
4390
4460
  var LocationsClient = class {
@@ -4411,21 +4481,16 @@ var LocationsClient = class {
4411
4481
  * @deprecated Temporarily unavailable — authenticated data is temporarily offline.
4412
4482
  */
4413
4483
  async recent(pk, options = {}) {
4414
- return mediaFeed(
4415
- this.client,
4416
- `/v1/instagram/locations/${pk}/recent`,
4417
- options
4418
- );
4484
+ return mediaFeed(this.client, `/v1/instagram/locations/${pk}/recent`, options);
4419
4485
  }
4420
4486
  /**
4421
4487
  * Search locations by name.
4422
4488
  * @deprecated Temporarily unavailable — authenticated data is temporarily offline.
4423
4489
  */
4424
4490
  async search(query) {
4425
- return this.client.request(
4426
- "/v1/instagram/locations/search",
4427
- { params: { query } }
4428
- );
4491
+ return this.client.request("/v1/instagram/locations/search", {
4492
+ params: { query }
4493
+ });
4429
4494
  }
4430
4495
  };
4431
4496
  var AudioClient = class {
@@ -4445,11 +4510,7 @@ var AudioClient = class {
4445
4510
  * @deprecated Temporarily unavailable — authenticated data is temporarily offline.
4446
4511
  */
4447
4512
  async media(audioId, options = {}) {
4448
- return mediaFeed(
4449
- this.client,
4450
- `/v1/instagram/audio/${audioId}/media`,
4451
- options
4452
- );
4513
+ return mediaFeed(this.client, `/v1/instagram/audio/${audioId}/media`, options);
4453
4514
  }
4454
4515
  /**
4455
4516
  * Get currently-trending audio tracks.
@@ -4462,6 +4523,7 @@ var AudioClient = class {
4462
4523
 
4463
4524
  // src/instagram/client.ts
4464
4525
  var InstagramClient = class {
4526
+ _gen;
4465
4527
  /** Client for user operations (profile, posts, followers, stories, highlights) */
4466
4528
  users;
4467
4529
  /** Client for media operations (detail, comments, replies, likers, oEmbed) */
@@ -4480,6 +4542,7 @@ var InstagramClient = class {
4480
4542
  * @param client - The base HTTP client for making requests.
4481
4543
  */
4482
4544
  constructor(client) {
4545
+ this._gen = client;
4483
4546
  this.users = new UsersClient4(client);
4484
4547
  this.media = new MediaClient(client);
4485
4548
  this.search = new SearchClient4(client);
@@ -4487,12 +4550,19 @@ var InstagramClient = class {
4487
4550
  this.locations = new LocationsClient(client);
4488
4551
  this.audio = new AudioClient(client);
4489
4552
  }
4553
+ // --- generated by sdk/codegen/facade — do not edit ---
4554
+ /** Get location. Generated from the OpenAPI spec; returns the raw response object. */
4555
+ async getLocation(locationPk, params = {}) {
4556
+ return this._gen.request(`/v1/instagram/locations/${locationPk}`, { params });
4557
+ }
4490
4558
  };
4491
4559
 
4492
4560
  // src/redfin/client.ts
4493
4561
  var RedfinClient = class {
4562
+ _gen;
4494
4563
  client;
4495
4564
  constructor(client) {
4565
+ this._gen = client;
4496
4566
  this.client = client;
4497
4567
  }
4498
4568
  /**
@@ -4582,6 +4652,23 @@ var RedfinClient = class {
4582
4652
  async listMarkets() {
4583
4653
  return this.client.request("/v1/redfin/markets");
4584
4654
  }
4655
+ // --- generated by sdk/codegen/facade — do not edit ---
4656
+ /** Get property detail. Generated from the OpenAPI spec; returns the raw response object. */
4657
+ async getPropertyDetail(propertyId, params = {}) {
4658
+ return this._gen.request(`/v1/redfin/property/${propertyId}`, { params });
4659
+ }
4660
+ };
4661
+
4662
+ // src/account/client.ts
4663
+ var AccountClient = class {
4664
+ client;
4665
+ constructor(client) {
4666
+ this.client = client;
4667
+ }
4668
+ /** Get account info. Generated from the OpenAPI spec; returns the raw response object. */
4669
+ async getAccountInfo(params = {}) {
4670
+ return this.client.request("/v1/account/me", { params });
4671
+ }
4585
4672
  };
4586
4673
 
4587
4674
  // src/amazon/search.ts
@@ -4642,16 +4729,13 @@ var ProductsClient2 = class {
4642
4729
  * @throws NotFoundError - If the product doesn't exist.
4643
4730
  */
4644
4731
  async get(asin, options = {}) {
4645
- return this.client.request(
4646
- `/v1/amazon/products/${asin}`,
4647
- {
4648
- params: {
4649
- domain: options.domain,
4650
- zip: options.zip,
4651
- language: options.language
4652
- }
4732
+ return this.client.request(`/v1/amazon/products/${asin}`, {
4733
+ params: {
4734
+ domain: options.domain,
4735
+ zip: options.zip,
4736
+ language: options.language
4653
4737
  }
4654
- );
4738
+ });
4655
4739
  }
4656
4740
  /**
4657
4741
  * Get all-seller offers (and the buybox winner) for an ASIN.
@@ -4661,10 +4745,9 @@ var ProductsClient2 = class {
4661
4745
  * @returns Offers response with the buybox winner and full offer list.
4662
4746
  */
4663
4747
  async offers(asin, options = {}) {
4664
- return this.client.request(
4665
- `/v1/amazon/products/${asin}/offers`,
4666
- { params: { domain: options.domain, zip: options.zip } }
4667
- );
4748
+ return this.client.request(`/v1/amazon/products/${asin}/offers`, {
4749
+ params: { domain: options.domain, zip: options.zip }
4750
+ });
4668
4751
  }
4669
4752
  /**
4670
4753
  * Get product reviews for an ASIN.
@@ -4674,19 +4757,16 @@ var ProductsClient2 = class {
4674
4757
  * @returns Reviews response with reviews, aggregate rating, and breakdown.
4675
4758
  */
4676
4759
  async reviews(asin, options = {}) {
4677
- return this.client.request(
4678
- `/v1/amazon/products/${asin}/reviews`,
4679
- {
4680
- params: {
4681
- domain: options.domain,
4682
- page: options.page,
4683
- sort_by: options.sort_by,
4684
- star: options.star,
4685
- verified_only: options.verified_only,
4686
- media_only: options.media_only
4687
- }
4760
+ return this.client.request(`/v1/amazon/products/${asin}/reviews`, {
4761
+ params: {
4762
+ domain: options.domain,
4763
+ page: options.page,
4764
+ sort_by: options.sort_by,
4765
+ star: options.star,
4766
+ verified_only: options.verified_only,
4767
+ media_only: options.media_only
4688
4768
  }
4689
- );
4769
+ });
4690
4770
  }
4691
4771
  };
4692
4772
 
@@ -4774,10 +4854,9 @@ var SellersClient = class {
4774
4854
  * @throws NotFoundError - If the seller doesn't exist.
4775
4855
  */
4776
4856
  async get(sellerId, options = {}) {
4777
- return this.client.request(
4778
- `/v1/amazon/sellers/${sellerId}`,
4779
- { params: { domain: options.domain } }
4780
- );
4857
+ return this.client.request(`/v1/amazon/sellers/${sellerId}`, {
4858
+ params: { domain: options.domain }
4859
+ });
4781
4860
  }
4782
4861
  /**
4783
4862
  * Get a seller's storefront listings.
@@ -4787,10 +4866,9 @@ var SellersClient = class {
4787
4866
  * @returns Seller products response with result rows and pagination.
4788
4867
  */
4789
4868
  async products(sellerId, options = {}) {
4790
- return this.client.request(
4791
- `/v1/amazon/sellers/${sellerId}/products`,
4792
- { params: { domain: options.domain, page: options.page } }
4793
- );
4869
+ return this.client.request(`/v1/amazon/sellers/${sellerId}/products`, {
4870
+ params: { domain: options.domain, page: options.page }
4871
+ });
4794
4872
  }
4795
4873
  /**
4796
4874
  * Get buyer feedback entries for a seller.
@@ -4800,10 +4878,9 @@ var SellersClient = class {
4800
4878
  * @returns Seller feedback response with feedback entries and pagination.
4801
4879
  */
4802
4880
  async feedback(sellerId, options = {}) {
4803
- return this.client.request(
4804
- `/v1/amazon/sellers/${sellerId}/feedback`,
4805
- { params: { domain: options.domain, page: options.page } }
4806
- );
4881
+ return this.client.request(`/v1/amazon/sellers/${sellerId}/feedback`, {
4882
+ params: { domain: options.domain, page: options.page }
4883
+ });
4807
4884
  }
4808
4885
  };
4809
4886
 
@@ -4892,17 +4969,14 @@ var SearchClient6 = class {
4892
4969
  * @throws ValidationError - If the category ID or market is invalid.
4893
4970
  */
4894
4971
  async categoryItems(categoryId, options = {}) {
4895
- return this.client.request(
4896
- `/v1/shopee/category/${categoryId}/items`,
4897
- {
4898
- params: {
4899
- market: options.market,
4900
- limit: options.limit,
4901
- offset: options.offset,
4902
- sort_by: options.sort_by
4903
- }
4972
+ return this.client.request(`/v1/shopee/category/${categoryId}/items`, {
4973
+ params: {
4974
+ market: options.market,
4975
+ limit: options.limit,
4976
+ offset: options.offset,
4977
+ sort_by: options.sort_by
4904
4978
  }
4905
- );
4979
+ });
4906
4980
  }
4907
4981
  };
4908
4982
 
@@ -4924,10 +4998,9 @@ var ProductsClient3 = class {
4924
4998
  * @throws ValidationError - If the market code is invalid.
4925
4999
  */
4926
5000
  async get(shopId, itemId, options = {}) {
4927
- return this.client.request(
4928
- `/v1/shopee/product/${shopId}/${itemId}`,
4929
- { params: { market: options.market } }
4930
- );
5001
+ return this.client.request(`/v1/shopee/product/${shopId}/${itemId}`, {
5002
+ params: { market: options.market }
5003
+ });
4931
5004
  }
4932
5005
  };
4933
5006
 
@@ -4949,18 +5022,15 @@ var ReviewsClient = class {
4949
5022
  * @throws ValidationError - If the parameters are invalid.
4950
5023
  */
4951
5024
  async get(shopId, itemId, options = {}) {
4952
- return this.client.request(
4953
- `/v1/shopee/product/${shopId}/${itemId}/reviews`,
4954
- {
4955
- params: {
4956
- market: options.market,
4957
- limit: options.limit,
4958
- offset: options.offset,
4959
- rating: options.rating,
4960
- filter: options.filter
4961
- }
5025
+ return this.client.request(`/v1/shopee/product/${shopId}/${itemId}/reviews`, {
5026
+ params: {
5027
+ market: options.market,
5028
+ limit: options.limit,
5029
+ offset: options.offset,
5030
+ rating: options.rating,
5031
+ filter: options.filter
4962
5032
  }
4963
- );
5033
+ });
4964
5034
  }
4965
5035
  };
4966
5036
 
@@ -5357,10 +5427,9 @@ var TrendingClient = class {
5357
5427
  * @returns The trending hashtags response.
5358
5428
  */
5359
5429
  async hashtags(options = {}) {
5360
- return this.client.request(
5361
- "/v1/tiktok/trending/hashtags",
5362
- { params: { region: options.region, period: options.period, count: options.count } }
5363
- );
5430
+ return this.client.request("/v1/tiktok/trending/hashtags", {
5431
+ params: { region: options.region, period: options.period, count: options.count }
5432
+ });
5364
5433
  }
5365
5434
  /**
5366
5435
  * Get trending songs/sounds (mobile hot-music feed — ranked by usage).
@@ -5369,10 +5438,9 @@ var TrendingClient = class {
5369
5438
  * @returns The trending songs response.
5370
5439
  */
5371
5440
  async songs(options = {}) {
5372
- return this.client.request(
5373
- "/v1/tiktok/trending/songs",
5374
- { params: { region: options.region, period: options.period, count: options.count } }
5375
- );
5441
+ return this.client.request("/v1/tiktok/trending/songs", {
5442
+ params: { region: options.region, period: options.period, count: options.count }
5443
+ });
5376
5444
  }
5377
5445
  };
5378
5446
 
@@ -5544,10 +5612,9 @@ var ItemsClient2 = class {
5544
5612
  * @throws NotFoundError - If the item doesn't exist.
5545
5613
  */
5546
5614
  async get(itemId, options = {}) {
5547
- return this.client.request(
5548
- `/v1/ebay/items/${itemId}`,
5549
- { params: { domain: options.domain } }
5550
- );
5615
+ return this.client.request(`/v1/ebay/items/${itemId}`, {
5616
+ params: { domain: options.domain }
5617
+ });
5551
5618
  }
5552
5619
  /**
5553
5620
  * Get the catalog product reviews shown on an eBay listing.
@@ -5557,16 +5624,13 @@ var ItemsClient2 = class {
5557
5624
  * @returns Reviews response with reviews, aggregate rating, and histogram.
5558
5625
  */
5559
5626
  async reviews(itemId, options = {}) {
5560
- return this.client.request(
5561
- `/v1/ebay/items/${itemId}/reviews`,
5562
- {
5563
- params: {
5564
- domain: options.domain,
5565
- page: options.page,
5566
- product_id: options.productId
5567
- }
5627
+ return this.client.request(`/v1/ebay/items/${itemId}/reviews`, {
5628
+ params: {
5629
+ domain: options.domain,
5630
+ page: options.page,
5631
+ product_id: options.productId
5568
5632
  }
5569
- );
5633
+ });
5570
5634
  }
5571
5635
  };
5572
5636
 
@@ -5585,10 +5649,9 @@ var SellersClient2 = class {
5585
5649
  * @throws NotFoundError - If the seller doesn't exist.
5586
5650
  */
5587
5651
  async get(username, options = {}) {
5588
- return this.client.request(
5589
- `/v1/ebay/sellers/${username}`,
5590
- { params: { domain: options.domain } }
5591
- );
5652
+ return this.client.request(`/v1/ebay/sellers/${username}`, {
5653
+ params: { domain: options.domain }
5654
+ });
5592
5655
  }
5593
5656
  /**
5594
5657
  * List the active listings of a single eBay seller.
@@ -5598,17 +5661,14 @@ var SellersClient2 = class {
5598
5661
  * @returns Seller items response with result cards and pagination.
5599
5662
  */
5600
5663
  async items(username, options = {}) {
5601
- return this.client.request(
5602
- `/v1/ebay/sellers/${username}/items`,
5603
- {
5604
- params: {
5605
- domain: options.domain,
5606
- query: options.query,
5607
- page: options.page,
5608
- per_page: options.per_page
5609
- }
5664
+ return this.client.request(`/v1/ebay/sellers/${username}/items`, {
5665
+ params: {
5666
+ domain: options.domain,
5667
+ query: options.query,
5668
+ page: options.page,
5669
+ per_page: options.per_page
5610
5670
  }
5611
- );
5671
+ });
5612
5672
  }
5613
5673
  /**
5614
5674
  * Get a seller's recent feedback comments.
@@ -5618,10 +5678,9 @@ var SellersClient2 = class {
5618
5678
  * @returns Seller feedback response with feedback entries and pagination.
5619
5679
  */
5620
5680
  async feedback(username, options = {}) {
5621
- return this.client.request(
5622
- `/v1/ebay/sellers/${username}/feedback`,
5623
- { params: { domain: options.domain, page: options.page } }
5624
- );
5681
+ return this.client.request(`/v1/ebay/sellers/${username}/feedback`, {
5682
+ params: { domain: options.domain, page: options.page }
5683
+ });
5625
5684
  }
5626
5685
  };
5627
5686
 
@@ -5639,19 +5698,16 @@ var CategoriesClient = class {
5639
5698
  * @returns Category response with result cards, facets, and pagination.
5640
5699
  */
5641
5700
  async browse(categoryId, options = {}) {
5642
- return this.client.request(
5643
- `/v1/ebay/categories/${categoryId}/items`,
5644
- {
5645
- params: {
5646
- domain: options.domain,
5647
- page: options.page,
5648
- per_page: options.per_page,
5649
- sort_by: options.sort_by,
5650
- min_price: options.min_price,
5651
- max_price: options.max_price
5652
- }
5701
+ return this.client.request(`/v1/ebay/categories/${categoryId}/items`, {
5702
+ params: {
5703
+ domain: options.domain,
5704
+ page: options.page,
5705
+ per_page: options.per_page,
5706
+ sort_by: options.sort_by,
5707
+ min_price: options.min_price,
5708
+ max_price: options.max_price
5653
5709
  }
5654
- );
5710
+ });
5655
5711
  }
5656
5712
  /**
5657
5713
  * List eBay's reference top-level category ids.
@@ -5705,6 +5761,102 @@ var EbayClient = class {
5705
5761
  }
5706
5762
  };
5707
5763
 
5764
+ // src/facebook/client.ts
5765
+ var FacebookClient = class {
5766
+ client;
5767
+ constructor(client) {
5768
+ this.client = client;
5769
+ }
5770
+ /** Search the Ad Library. Generated from the OpenAPI spec; returns the raw response object. */
5771
+ async searchTheAdLibrary(params = {}) {
5772
+ return this.client.request("/v1/facebook/ads/search", { params });
5773
+ }
5774
+ /** Get an ad. Generated from the OpenAPI spec; returns the raw response object. */
5775
+ async getAnAd(adArchiveId, params = {}) {
5776
+ return this.client.request(`/v1/facebook/ads/${adArchiveId}`, { params });
5777
+ }
5778
+ /** Get group detail. Generated from the OpenAPI spec; returns the raw response object. */
5779
+ async getGroupDetail(groupId, params = {}) {
5780
+ return this.client.request(`/v1/facebook/groups/${groupId}`, { params });
5781
+ }
5782
+ /** Get group posts. Generated from the OpenAPI spec; returns the raw response object. */
5783
+ async getGroupPosts(groupId, params = {}) {
5784
+ return this.client.request(`/v1/facebook/groups/${groupId}/posts`, { params });
5785
+ }
5786
+ /** List categories. Generated from the OpenAPI spec; returns the raw response object. */
5787
+ async listCategories(params = {}) {
5788
+ return this.client.request("/v1/facebook/marketplace/categories", { params });
5789
+ }
5790
+ /** Browse a Marketplace category. Generated from the OpenAPI spec; returns the raw response object. */
5791
+ async browseAMarketplaceCategory(category, params = {}) {
5792
+ return this.client.request(`/v1/facebook/marketplace/category/${category}`, { params });
5793
+ }
5794
+ /** Get a Marketplace item. Generated from the OpenAPI spec; returns the raw response object. */
5795
+ async getAMarketplaceItem(itemId, params = {}) {
5796
+ return this.client.request(`/v1/facebook/marketplace/item/${itemId}`, { params });
5797
+ }
5798
+ /** List locations. Generated from the OpenAPI spec; returns the raw response object. */
5799
+ async listLocations(params = {}) {
5800
+ return this.client.request("/v1/facebook/marketplace/locations", { params });
5801
+ }
5802
+ /** Search Marketplace. Generated from the OpenAPI spec; returns the raw response object. */
5803
+ async searchMarketplace(params = {}) {
5804
+ return this.client.request("/v1/facebook/marketplace/search", { params });
5805
+ }
5806
+ /** Get page detail. Generated from the OpenAPI spec; returns the raw response object. */
5807
+ async getPageDetail(identifier, params = {}) {
5808
+ return this.client.request(`/v1/facebook/pages/${identifier}`, { params });
5809
+ }
5810
+ /** Get page posts. Generated from the OpenAPI spec; returns the raw response object. */
5811
+ async getPagePosts(identifier, params = {}) {
5812
+ return this.client.request(`/v1/facebook/pages/${identifier}/posts`, { params });
5813
+ }
5814
+ /** Get post detail. Generated from the OpenAPI spec; returns the raw response object. */
5815
+ async getPostDetail(postId, params = {}) {
5816
+ return this.client.request(`/v1/facebook/posts/${postId}`, { params });
5817
+ }
5818
+ /** Get post comments. Generated from the OpenAPI spec; returns the raw response object. */
5819
+ async getPostComments(postId, params = {}) {
5820
+ return this.client.request(`/v1/facebook/posts/${postId}/comments`, { params });
5821
+ }
5822
+ /** Get profile detail. Generated from the OpenAPI spec; returns the raw response object. */
5823
+ async getProfileDetail(identifier, params = {}) {
5824
+ return this.client.request(`/v1/facebook/profiles/${identifier}`, { params });
5825
+ }
5826
+ /** Get profile posts. Generated from the OpenAPI spec; returns the raw response object. */
5827
+ async getProfilePosts(identifier, params = {}) {
5828
+ return this.client.request(`/v1/facebook/profiles/${identifier}/posts`, { params });
5829
+ }
5830
+ /** Search everything. Generated from the OpenAPI spec; returns the raw response object. */
5831
+ async searchEverything(params = {}) {
5832
+ return this.client.request("/v1/facebook/search", { params });
5833
+ }
5834
+ /** Search events. Generated from the OpenAPI spec; returns the raw response object. */
5835
+ async searchEvents(params = {}) {
5836
+ return this.client.request("/v1/facebook/search/events", { params });
5837
+ }
5838
+ /** Search groups. Generated from the OpenAPI spec; returns the raw response object. */
5839
+ async searchGroups(params = {}) {
5840
+ return this.client.request("/v1/facebook/search/groups", { params });
5841
+ }
5842
+ /** Search Pages. Generated from the OpenAPI spec; returns the raw response object. */
5843
+ async searchPages(params = {}) {
5844
+ return this.client.request("/v1/facebook/search/pages", { params });
5845
+ }
5846
+ /** Search people. Generated from the OpenAPI spec; returns the raw response object. */
5847
+ async searchPeople(params = {}) {
5848
+ return this.client.request("/v1/facebook/search/people", { params });
5849
+ }
5850
+ /** Search places. Generated from the OpenAPI spec; returns the raw response object. */
5851
+ async searchPlaces(params = {}) {
5852
+ return this.client.request("/v1/facebook/search/places", { params });
5853
+ }
5854
+ /** Search posts. Generated from the OpenAPI spec; returns the raw response object. */
5855
+ async searchPosts(params = {}) {
5856
+ return this.client.request("/v1/facebook/search/posts", { params });
5857
+ }
5858
+ };
5859
+
5708
5860
  // src/walmart/search.ts
5709
5861
  var SearchClient9 = class {
5710
5862
  constructor(client) {
@@ -5811,10 +5963,9 @@ var ProductsClient4 = class {
5811
5963
  * @remarks 10 reviews per page — Walmart's page size, not adjustable.
5812
5964
  */
5813
5965
  async reviews(itemId, params = {}) {
5814
- return this.client.request(
5815
- `/v1/walmart/products/${itemId}/reviews`,
5816
- { params: { page: params.page, sort: params.sort } }
5817
- );
5966
+ return this.client.request(`/v1/walmart/products/${itemId}/reviews`, {
5967
+ params: { page: params.page, sort: params.sort }
5968
+ });
5818
5969
  }
5819
5970
  };
5820
5971
 
@@ -5848,10 +5999,9 @@ var SellersClient3 = class {
5848
5999
  * @param params - Optional page (1-10) and sort.
5849
6000
  */
5850
6001
  async products(sellerId, query, params = {}) {
5851
- return this.client.request(
5852
- `/v1/walmart/sellers/${sellerId}/products`,
5853
- { params: { query, page: params.page, sort: params.sort } }
5854
- );
6002
+ return this.client.request(`/v1/walmart/sellers/${sellerId}/products`, {
6003
+ params: { query, page: params.page, sort: params.sort }
6004
+ });
5855
6005
  }
5856
6006
  };
5857
6007
 
@@ -6607,10 +6757,9 @@ var VideosClient3 = class {
6607
6757
  * @returns Related results with a continuation token.
6608
6758
  */
6609
6759
  async related(videoId, options = {}) {
6610
- return this.client.request(
6611
- `/v1/youtube/videos/${videoId}/related`,
6612
- { params: { continuation: options.continuation, gl: options.gl, hl: options.hl } }
6613
- );
6760
+ return this.client.request(`/v1/youtube/videos/${videoId}/related`, {
6761
+ params: { continuation: options.continuation, gl: options.gl, hl: options.hl }
6762
+ });
6614
6763
  }
6615
6764
  /**
6616
6765
  * Get a page of top-level comments for a video.
@@ -6620,17 +6769,14 @@ var VideosClient3 = class {
6620
6769
  * @returns A page of comments with sorting tokens and a continuation token.
6621
6770
  */
6622
6771
  async comments(videoId, options = {}) {
6623
- return this.client.request(
6624
- `/v1/youtube/videos/${videoId}/comments`,
6625
- {
6626
- params: {
6627
- sort_by: options.sort_by,
6628
- continuation: options.continuation,
6629
- gl: options.gl,
6630
- hl: options.hl
6631
- }
6772
+ return this.client.request(`/v1/youtube/videos/${videoId}/comments`, {
6773
+ params: {
6774
+ sort_by: options.sort_by,
6775
+ continuation: options.continuation,
6776
+ gl: options.gl,
6777
+ hl: options.hl
6632
6778
  }
6633
- );
6779
+ });
6634
6780
  }
6635
6781
  /**
6636
6782
  * Get a page of replies to a single comment.
@@ -6654,10 +6800,9 @@ var VideosClient3 = class {
6654
6800
  * @returns The transcript with timed segments and full text.
6655
6801
  */
6656
6802
  async transcript(videoId, options = {}) {
6657
- return this.client.request(
6658
- `/v1/youtube/videos/${videoId}/transcript`,
6659
- { params: { language: options.language, gl: options.gl, hl: options.hl } }
6660
- );
6803
+ return this.client.request(`/v1/youtube/videos/${videoId}/transcript`, {
6804
+ params: { language: options.language, gl: options.gl, hl: options.hl }
6805
+ });
6661
6806
  }
6662
6807
  /**
6663
6808
  * List a video's available caption tracks.
@@ -6667,10 +6812,9 @@ var VideosClient3 = class {
6667
6812
  * @returns The available caption tracks and translation languages.
6668
6813
  */
6669
6814
  async captions(videoId, options = {}) {
6670
- return this.client.request(
6671
- `/v1/youtube/videos/${videoId}/captions`,
6672
- { params: { gl: options.gl, hl: options.hl } }
6673
- );
6815
+ return this.client.request(`/v1/youtube/videos/${videoId}/captions`, {
6816
+ params: { gl: options.gl, hl: options.hl }
6817
+ });
6674
6818
  }
6675
6819
  /**
6676
6820
  * Get a video's stream / format metadata (best-effort; URLs may be PO-token gated).
@@ -6680,10 +6824,9 @@ var VideosClient3 = class {
6680
6824
  * @returns Streaming metadata with muxed and adaptive formats.
6681
6825
  */
6682
6826
  async streams(videoId, options = {}) {
6683
- return this.client.request(
6684
- `/v1/youtube/videos/${videoId}/streams`,
6685
- { params: { gl: options.gl, client: options.client } }
6686
- );
6827
+ return this.client.request(`/v1/youtube/videos/${videoId}/streams`, {
6828
+ params: { gl: options.gl, client: options.client }
6829
+ });
6687
6830
  }
6688
6831
  /**
6689
6832
  * Get a page of live-chat (or chat-replay) messages for a video.
@@ -6693,17 +6836,14 @@ var VideosClient3 = class {
6693
6836
  * @returns A page of live-chat messages with a continuation token.
6694
6837
  */
6695
6838
  async liveChat(videoId, options = {}) {
6696
- return this.client.request(
6697
- `/v1/youtube/videos/${videoId}/live_chat`,
6698
- {
6699
- params: {
6700
- continuation: options.continuation,
6701
- replay: options.replay,
6702
- gl: options.gl,
6703
- hl: options.hl
6704
- }
6839
+ return this.client.request(`/v1/youtube/videos/${videoId}/live_chat`, {
6840
+ params: {
6841
+ continuation: options.continuation,
6842
+ replay: options.replay,
6843
+ gl: options.gl,
6844
+ hl: options.hl
6705
6845
  }
6706
- );
6846
+ });
6707
6847
  }
6708
6848
  /**
6709
6849
  * Fetch detail for up to 50 videos concurrently.
@@ -6750,10 +6890,9 @@ var ChannelsClient = class {
6750
6890
  * @returns A page of video cards with a continuation token.
6751
6891
  */
6752
6892
  async videos(channelId, options = {}) {
6753
- return this.client.request(
6754
- `/v1/youtube/channels/${channelId}/videos`,
6755
- { params: { continuation: options.continuation, gl: options.gl, hl: options.hl } }
6756
- );
6893
+ return this.client.request(`/v1/youtube/channels/${channelId}/videos`, {
6894
+ params: { continuation: options.continuation, gl: options.gl, hl: options.hl }
6895
+ });
6757
6896
  }
6758
6897
  /**
6759
6898
  * Get a page of a channel's Shorts.
@@ -6763,10 +6902,9 @@ var ChannelsClient = class {
6763
6902
  * @returns A page of Shorts cards with a continuation token.
6764
6903
  */
6765
6904
  async shorts(channelId, options = {}) {
6766
- return this.client.request(
6767
- `/v1/youtube/channels/${channelId}/shorts`,
6768
- { params: { continuation: options.continuation, gl: options.gl, hl: options.hl } }
6769
- );
6905
+ return this.client.request(`/v1/youtube/channels/${channelId}/shorts`, {
6906
+ params: { continuation: options.continuation, gl: options.gl, hl: options.hl }
6907
+ });
6770
6908
  }
6771
6909
  /**
6772
6910
  * Get a page of a channel's live streams.
@@ -6776,10 +6914,9 @@ var ChannelsClient = class {
6776
6914
  * @returns A page of stream cards with a continuation token.
6777
6915
  */
6778
6916
  async streams(channelId, options = {}) {
6779
- return this.client.request(
6780
- `/v1/youtube/channels/${channelId}/streams`,
6781
- { params: { continuation: options.continuation, gl: options.gl, hl: options.hl } }
6782
- );
6917
+ return this.client.request(`/v1/youtube/channels/${channelId}/streams`, {
6918
+ params: { continuation: options.continuation, gl: options.gl, hl: options.hl }
6919
+ });
6783
6920
  }
6784
6921
  /**
6785
6922
  * Get a page of a channel's playlists.
@@ -6789,10 +6926,9 @@ var ChannelsClient = class {
6789
6926
  * @returns A page of playlist cards with a continuation token.
6790
6927
  */
6791
6928
  async playlists(channelId, options = {}) {
6792
- return this.client.request(
6793
- `/v1/youtube/channels/${channelId}/playlists`,
6794
- { params: { continuation: options.continuation, gl: options.gl, hl: options.hl } }
6795
- );
6929
+ return this.client.request(`/v1/youtube/channels/${channelId}/playlists`, {
6930
+ params: { continuation: options.continuation, gl: options.gl, hl: options.hl }
6931
+ });
6796
6932
  }
6797
6933
  /**
6798
6934
  * Get a page of a channel's community posts.
@@ -6802,10 +6938,9 @@ var ChannelsClient = class {
6802
6938
  * @returns A page of community posts with a continuation token.
6803
6939
  */
6804
6940
  async community(channelId, options = {}) {
6805
- return this.client.request(
6806
- `/v1/youtube/channels/${channelId}/community`,
6807
- { params: { continuation: options.continuation, gl: options.gl, hl: options.hl } }
6808
- );
6941
+ return this.client.request(`/v1/youtube/channels/${channelId}/community`, {
6942
+ params: { continuation: options.continuation, gl: options.gl, hl: options.hl }
6943
+ });
6809
6944
  }
6810
6945
  /**
6811
6946
  * Get a channel's lightweight about payload.
@@ -6815,10 +6950,9 @@ var ChannelsClient = class {
6815
6950
  * @returns The channel about payload.
6816
6951
  */
6817
6952
  async about(channelId, options = {}) {
6818
- return this.client.request(
6819
- `/v1/youtube/channels/${channelId}/about`,
6820
- { params: { gl: options.gl, hl: options.hl } }
6821
- );
6953
+ return this.client.request(`/v1/youtube/channels/${channelId}/about`, {
6954
+ params: { gl: options.gl, hl: options.hl }
6955
+ });
6822
6956
  }
6823
6957
  /**
6824
6958
  * Get a channel's subscriber count (fast).
@@ -6841,17 +6975,14 @@ var ChannelsClient = class {
6841
6975
  * @returns A page of search results scoped to the channel.
6842
6976
  */
6843
6977
  async search(channelId, options) {
6844
- return this.client.request(
6845
- `/v1/youtube/channels/${channelId}/search`,
6846
- {
6847
- params: {
6848
- query: options.query,
6849
- continuation: options.continuation,
6850
- gl: options.gl,
6851
- hl: options.hl
6852
- }
6978
+ return this.client.request(`/v1/youtube/channels/${channelId}/search`, {
6979
+ params: {
6980
+ query: options.query,
6981
+ continuation: options.continuation,
6982
+ gl: options.gl,
6983
+ hl: options.hl
6853
6984
  }
6854
- );
6985
+ });
6855
6986
  }
6856
6987
  /**
6857
6988
  * Resolve a @handle or URL to canonical YouTube ids.
@@ -6893,10 +7024,9 @@ var PlaylistsClient = class {
6893
7024
  * @returns A page of playlist items with a continuation token.
6894
7025
  */
6895
7026
  async items(playlistId, options = {}) {
6896
- return this.client.request(
6897
- `/v1/youtube/playlists/${playlistId}/items`,
6898
- { params: { continuation: options.continuation, gl: options.gl, hl: options.hl } }
6899
- );
7027
+ return this.client.request(`/v1/youtube/playlists/${playlistId}/items`, {
7028
+ params: { continuation: options.continuation, gl: options.gl, hl: options.hl }
7029
+ });
6900
7030
  }
6901
7031
  /**
6902
7032
  * Resolve an auto-generated mix / radio (RD…) queue.
@@ -6939,10 +7069,9 @@ var CommunityClient = class {
6939
7069
  * @returns A page of comments with a continuation token.
6940
7070
  */
6941
7071
  async comments(postId, options = {}) {
6942
- return this.client.request(
6943
- `/v1/youtube/posts/${postId}/comments`,
6944
- { params: { continuation: options.continuation, gl: options.gl, hl: options.hl } }
6945
- );
7072
+ return this.client.request(`/v1/youtube/posts/${postId}/comments`, {
7073
+ params: { continuation: options.continuation, gl: options.gl, hl: options.hl }
7074
+ });
6946
7075
  }
6947
7076
  };
6948
7077
 
@@ -6973,10 +7102,9 @@ var ShortsClient2 = class {
6973
7102
  * @returns A page of Shorts cards with a continuation token.
6974
7103
  */
6975
7104
  async bySound(soundId, options = {}) {
6976
- return this.client.request(
6977
- `/v1/youtube/shorts/by_sound/${soundId}`,
6978
- { params: { continuation: options.continuation, gl: options.gl, hl: options.hl } }
6979
- );
7105
+ return this.client.request(`/v1/youtube/shorts/by_sound/${soundId}`, {
7106
+ params: { continuation: options.continuation, gl: options.gl, hl: options.hl }
7107
+ });
6980
7108
  }
6981
7109
  };
6982
7110
 
@@ -7315,10 +7443,9 @@ var AdsClient2 = class {
7315
7443
  * @returns Similar-ads response.
7316
7444
  */
7317
7445
  async similar(listId, options = {}) {
7318
- return this.client.request(
7319
- `/v1/leboncoin/ads/${listId}/similar`,
7320
- { params: { limit: options.limit } }
7321
- );
7446
+ return this.client.request(`/v1/leboncoin/ads/${listId}/similar`, {
7447
+ params: { limit: options.limit }
7448
+ });
7322
7449
  }
7323
7450
  };
7324
7451
 
@@ -7336,9 +7463,7 @@ var SellersClient4 = class {
7336
7463
  * @throws NotFoundError - If the seller doesn't exist.
7337
7464
  */
7338
7465
  async get(userId) {
7339
- return this.client.request(
7340
- `/v1/leboncoin/sellers/${userId}`
7341
- );
7466
+ return this.client.request(`/v1/leboncoin/sellers/${userId}`);
7342
7467
  }
7343
7468
  /**
7344
7469
  * List a Leboncoin seller's active ads.
@@ -7348,10 +7473,9 @@ var SellersClient4 = class {
7348
7473
  * @returns Seller listings response with ads and pagination.
7349
7474
  */
7350
7475
  async listings(userId, options = {}) {
7351
- return this.client.request(
7352
- `/v1/leboncoin/sellers/${userId}/listings`,
7353
- { params: { page: options.page, limit: options.limit } }
7354
- );
7476
+ return this.client.request(`/v1/leboncoin/sellers/${userId}/listings`, {
7477
+ params: { page: options.page, limit: options.limit }
7478
+ });
7355
7479
  }
7356
7480
  };
7357
7481
 
@@ -7384,10 +7508,9 @@ var ReferenceClient13 = class {
7384
7508
  * @returns Departments response.
7385
7509
  */
7386
7510
  async departments(options = {}) {
7387
- return this.client.request(
7388
- "/v1/leboncoin/departments",
7389
- { params: { region_id: options.region_id } }
7390
- );
7511
+ return this.client.request("/v1/leboncoin/departments", {
7512
+ params: { region_id: options.region_id }
7513
+ });
7391
7514
  }
7392
7515
  /**
7393
7516
  * Resolve a place name to Leboncoin location ids (for building filters).
@@ -7396,10 +7519,9 @@ var ReferenceClient13 = class {
7396
7519
  * @returns Location search response with suggestions.
7397
7520
  */
7398
7521
  async locations(query) {
7399
- return this.client.request(
7400
- "/v1/leboncoin/locations/search",
7401
- { params: { q: query } }
7402
- );
7522
+ return this.client.request("/v1/leboncoin/locations/search", {
7523
+ params: { q: query }
7524
+ });
7403
7525
  }
7404
7526
  /**
7405
7527
  * List the supported Leboncoin markets (France is the single market).
@@ -7556,6 +7678,7 @@ var ReferenceClient14 = class {
7556
7678
 
7557
7679
  // src/zillow/client.ts
7558
7680
  var ZillowClient = class {
7681
+ _gen;
7559
7682
  /** Client for property search and location autocomplete */
7560
7683
  search;
7561
7684
  /** Client for full property detail */
@@ -7570,11 +7693,17 @@ var ZillowClient = class {
7570
7693
  * @param client - The base HTTP client for making requests.
7571
7694
  */
7572
7695
  constructor(client) {
7696
+ this._gen = client;
7573
7697
  this.search = new SearchClient17(client);
7574
7698
  this.properties = new PropertiesClient2(client);
7575
7699
  this.agent = new AgentClient(client);
7576
7700
  this.reference = new ReferenceClient14(client);
7577
7701
  }
7702
+ // --- generated by sdk/codegen/facade — do not edit ---
7703
+ /** Get property detail by URL. Generated from the OpenAPI spec; returns the raw response object. */
7704
+ async getPropertyDetailByUrl(params = {}) {
7705
+ return this._gen.request("/v1/zillow/property", { params });
7706
+ }
7578
7707
  };
7579
7708
 
7580
7709
  // src/immobiliare/client.ts
@@ -7839,10 +7968,36 @@ var LoopNetClient = class {
7839
7968
  }
7840
7969
  };
7841
7970
 
7971
+ // src/perplexity/client.ts
7972
+ var PerplexityClient = class {
7973
+ client;
7974
+ constructor(client) {
7975
+ this.client = client;
7976
+ }
7977
+ /** Ask Perplexity a question. Generated from the OpenAPI spec; returns the raw response object. */
7978
+ async askPerplexityAQuestion(params = {}) {
7979
+ return this.client.request("/v1/perplexity/ask", { params });
7980
+ }
7981
+ /** Ask Perplexity a question (POST). Generated from the OpenAPI spec; returns the raw response object. */
7982
+ async askPerplexityAQuestionPost(body, params = {}) {
7983
+ return this.client.request("/v1/perplexity/ask", { method: "POST", params, body });
7984
+ }
7985
+ /** Measure a brand's visibility in a Perplexity answer. Generated from the OpenAPI spec; returns the raw response object. */
7986
+ async measureABrandSVisibilityInAPerplexityAnswer(params = {}) {
7987
+ return this.client.request("/v1/perplexity/brand-visibility", { params });
7988
+ }
7989
+ /** Measure a brand's visibility in a Perplexity answer (POST). Generated from the OpenAPI spec; returns the raw response object. */
7990
+ async measureABrandSVisibilityInAPerplexityAnswerPost(body, params = {}) {
7991
+ return this.client.request("/v1/perplexity/brand-visibility", { method: "POST", params, body });
7992
+ }
7993
+ };
7994
+
7842
7995
  // src/depop/client.ts
7843
7996
  var DepopClient = class {
7997
+ _gen;
7844
7998
  client;
7845
7999
  constructor(client) {
8000
+ this._gen = client;
7846
8001
  this.client = client;
7847
8002
  }
7848
8003
  /**
@@ -7934,6 +8089,11 @@ var DepopClient = class {
7934
8089
  async listMarkets() {
7935
8090
  return this.client.request("/v1/depop/markets");
7936
8091
  }
8092
+ // --- generated by sdk/codegen/facade — do not edit ---
8093
+ /** Get product detail. Generated from the OpenAPI spec; returns the raw response object. */
8094
+ async getProductDetail(productId, params = {}) {
8095
+ return this._gen.request(`/v1/depop/products/${productId}`, { params });
8096
+ }
7937
8097
  };
7938
8098
 
7939
8099
  // src/linkedin/client.ts
@@ -8228,6 +8388,7 @@ var ReferenceClient16 = class {
8228
8388
 
8229
8389
  // src/chatgpt/client.ts
8230
8390
  var ChatGPTClient = class {
8391
+ _gen;
8231
8392
  /** Client for asking ChatGPT a question */
8232
8393
  ask;
8233
8394
  /** Client for AEO/GEO brand-visibility analysis */
@@ -8240,10 +8401,137 @@ var ChatGPTClient = class {
8240
8401
  * @param client - The base HTTP client for making requests.
8241
8402
  */
8242
8403
  constructor(client) {
8404
+ this._gen = client;
8243
8405
  this.ask = new AskClient(client);
8244
8406
  this.brand = new BrandClient(client);
8245
8407
  this.reference = new ReferenceClient16(client);
8246
8408
  }
8409
+ // --- generated by sdk/codegen/facade — do not edit ---
8410
+ /** Ask ChatGPT a question (POST). Generated from the OpenAPI spec; returns the raw response object. */
8411
+ async askChatgptAQuestionPost(body, params = {}) {
8412
+ return this._gen.request("/v1/chatgpt/ask", { method: "POST", params, body });
8413
+ }
8414
+ /** Measure a brand's visibility in a ChatGPT answer (POST). Generated from the OpenAPI spec; returns the raw response object. */
8415
+ async measureABrandSVisibilityInAChatgptAnswerPost(body, params = {}) {
8416
+ return this._gen.request("/v1/chatgpt/brand-visibility", { method: "POST", params, body });
8417
+ }
8418
+ };
8419
+
8420
+ // src/gemini/ask.ts
8421
+ var AskClient2 = class {
8422
+ client;
8423
+ constructor(client) {
8424
+ this.client = client;
8425
+ }
8426
+ /**
8427
+ * Ask Gemini a question and get the answer with its sources.
8428
+ *
8429
+ * @param params - Ask parameters.
8430
+ * @param params.prompt - The prompt to send (max 4096 characters).
8431
+ * @param params.country - ISO-3166 alpha-2 egress country (default: "US").
8432
+ * @param params.web_search - "auto", "force", or "off" (default: "auto").
8433
+ * @returns The answer, its citations, and the full retrieved search set.
8434
+ *
8435
+ * @example
8436
+ * ```typescript
8437
+ * const result = await client.gemini.ask.ask({
8438
+ * prompt: "what is the best CRM for a 10-person startup?",
8439
+ * country: "GB",
8440
+ * web_search: "force",
8441
+ * });
8442
+ * console.log(result.web_search_triggered, result.model);
8443
+ * for (const source of result.search_results) {
8444
+ * console.log(`${source.cited ? "*" : " "} ${source.url}`);
8445
+ * }
8446
+ * ```
8447
+ */
8448
+ async ask(params) {
8449
+ return this.client.request("/v1/gemini/ask", {
8450
+ params: {
8451
+ prompt: params.prompt,
8452
+ country: params.country,
8453
+ web_search: params.web_search
8454
+ }
8455
+ });
8456
+ }
8457
+ };
8458
+
8459
+ // src/gemini/brand.ts
8460
+ var BrandClient2 = class {
8461
+ client;
8462
+ constructor(client) {
8463
+ this.client = client;
8464
+ }
8465
+ /**
8466
+ * Analyse how a brand shows up in Gemini's answer to a prompt.
8467
+ *
8468
+ * @param params - Brand-visibility parameters.
8469
+ * @param params.prompt - The prompt to send (max 4096 characters).
8470
+ * @param params.brand - The brand name to look for in the answer.
8471
+ * @param params.domain - The brand's domain, used to detect brand citations.
8472
+ * @param params.aliases - Other spellings that should count as mentions.
8473
+ * @param params.competitors - Competitors to measure share of voice against.
8474
+ * @param params.country - ISO-3166 alpha-2 egress country (default: "US").
8475
+ * @param params.web_search - "auto", "force", or "off" (default: "force").
8476
+ * @returns The brand analysis plus the answer and its citations.
8477
+ *
8478
+ * @example
8479
+ * ```typescript
8480
+ * const result = await client.gemini.brand.visibility({
8481
+ * prompt: "which proxy provider should I use?",
8482
+ * brand: "ScrapeBadger",
8483
+ * domain: "scrapebadger.com",
8484
+ * aliases: ["Scrape Badger"],
8485
+ * competitors: ["Bright Data", "Oxylabs"],
8486
+ * country: "DE",
8487
+ * });
8488
+ * console.log(`position score: ${result.position_score}`);
8489
+ * for (const competitor of result.competitors) {
8490
+ * console.log(`${competitor.name}: ${competitor.mention_count}`);
8491
+ * }
8492
+ * ```
8493
+ */
8494
+ async visibility(params) {
8495
+ return this.client.request("/v1/gemini/brand-visibility", {
8496
+ params: {
8497
+ prompt: params.prompt,
8498
+ brand: params.brand,
8499
+ domain: params.domain,
8500
+ aliases: params.aliases?.length ? params.aliases.join(",") : void 0,
8501
+ competitors: params.competitors?.length ? params.competitors.join(",") : void 0,
8502
+ country: params.country,
8503
+ web_search: params.web_search
8504
+ }
8505
+ });
8506
+ }
8507
+ };
8508
+
8509
+ // src/gemini/client.ts
8510
+ var GeminiClient = class {
8511
+ _gen;
8512
+ /** Client for asking Gemini a question */
8513
+ ask;
8514
+ /** Client for AEO/GEO brand-visibility analysis */
8515
+ brand;
8516
+ /**
8517
+ * Create a new Gemini client.
8518
+ *
8519
+ * @param client - The base HTTP client for making requests.
8520
+ */
8521
+ constructor(client) {
8522
+ this._gen = client;
8523
+ this.ask = new AskClient2(client);
8524
+ this.brand = new BrandClient2(client);
8525
+ }
8526
+ // --- generated by sdk/codegen/facade — do not edit ---
8527
+ /** Ask Gemini a question (POST). Generated from the OpenAPI spec; returns the raw response object. */
8528
+ async askGeminiAQuestionPost(body, params = {}) {
8529
+ return this._gen.request("/v1/gemini/ask", { method: "POST", params, body });
8530
+ }
8531
+ /** Measure a brand's visibility in a Gemini answer (POST). Generated from the OpenAPI spec; returns the raw response object. */
8532
+ async measureABrandSVisibilityInAGeminiAnswerPost(body, params = {}) {
8533
+ return this._gen.request("/v1/gemini/brand-visibility", { method: "POST", params, body });
8534
+ }
8247
8535
  };
8248
8536
 
8249
8537
  // src/client.ts
@@ -8257,6 +8545,8 @@ var ScrapeBadger = class {
8257
8545
  vinted;
8258
8546
  /** Google Scraper API client — 19 Google product APIs */
8259
8547
  google;
8548
+ /** Idealista API client. (Generated from the OpenAPI spec.) */
8549
+ idealista;
8260
8550
  /** Reddit scraper API client */
8261
8551
  reddit;
8262
8552
  /** Apartments.com scraper API client — search + property with unit-level pricing (US) */
@@ -8266,6 +8556,8 @@ var ScrapeBadger = class {
8266
8556
  /** Redfin scraper API client — search, property, agent, autocomplete, markets (redfin.com, US) */
8267
8557
  redfin;
8268
8558
  /** Amazon scraper API client — 14 endpoints */
8559
+ /** Account API client. (Generated from the OpenAPI spec.) */
8560
+ account;
8269
8561
  amazon;
8270
8562
  /** Shopee scraper API client — 6 endpoints across 11 markets */
8271
8563
  shopee;
@@ -8273,6 +8565,8 @@ var ScrapeBadger = class {
8273
8565
  tiktok;
8274
8566
  /** eBay scraper API client — 12 endpoints across 18 markets */
8275
8567
  ebay;
8568
+ /** Facebook API client. (Generated from the OpenAPI spec.) */
8569
+ facebook;
8276
8570
  /** Walmart scraper API client — 11 endpoints (walmart.com, US-only) */
8277
8571
  walmart;
8278
8572
  /** DuckDuckGo scraper API client — search, images, news, videos, autocomplete, instant, regions */
@@ -8297,12 +8591,16 @@ var ScrapeBadger = class {
8297
8591
  immobiliare;
8298
8592
  /** LoopNet scraper API client — commercial real estate across US/CA/UK/FR/ES (search, listing, broker, markets, property types) */
8299
8593
  loopnet;
8594
+ /** Perplexity API client. (Generated from the OpenAPI spec.) */
8595
+ perplexity;
8300
8596
  /** Depop scraper API client — search, product, user, user products, markets (www.depop.com, 10 markets) */
8301
8597
  depop;
8302
8598
  /** LinkedIn scraper API client — 11 no-auth endpoints (jobs, company, school, profile, post, article, learning, geo) */
8303
8599
  linkedin;
8304
8600
  /** ChatGPT scraper API client — ask, brand visibility, models (the real chatgpt.com, anonymous) */
8305
8601
  chatgpt;
8602
+ /** Gemini scraper API client — ask, brand visibility (the real gemini.google.com, anonymous) */
8603
+ gemini;
8306
8604
  /**
8307
8605
  * Create a new ScrapeBadger client.
8308
8606
  *
@@ -8341,14 +8639,17 @@ var ScrapeBadger = class {
8341
8639
  this.web = new WebClient(this.baseClient);
8342
8640
  this.vinted = new VintedClient(this.baseClient);
8343
8641
  this.google = new GoogleClient(this.baseClient);
8642
+ this.idealista = new IdealistaClient(this.baseClient);
8344
8643
  this.reddit = new RedditClient(this.baseClient);
8345
8644
  this.apartments = new ApartmentsClient(this.baseClient);
8346
8645
  this.instagram = new InstagramClient(this.baseClient);
8347
8646
  this.redfin = new RedfinClient(this.baseClient);
8647
+ this.account = new AccountClient(this.baseClient);
8348
8648
  this.amazon = new AmazonClient(this.baseClient);
8349
8649
  this.shopee = new ShopeeClient(this.baseClient);
8350
8650
  this.tiktok = new TikTokClient(this.baseClient);
8351
8651
  this.ebay = new EbayClient(this.baseClient);
8652
+ this.facebook = new FacebookClient(this.baseClient);
8352
8653
  this.walmart = new WalmartClient(this.baseClient);
8353
8654
  this.duckduckgo = new DuckDuckGoClient(this.baseClient);
8354
8655
  this.bing = new BingClient(this.baseClient);
@@ -8361,9 +8662,11 @@ var ScrapeBadger = class {
8361
8662
  this.zillow = new ZillowClient(this.baseClient);
8362
8663
  this.immobiliare = new ImmobiliareClient(this.baseClient);
8363
8664
  this.loopnet = new LoopNetClient(this.baseClient);
8665
+ this.perplexity = new PerplexityClient(this.baseClient);
8364
8666
  this.depop = new DepopClient(this.baseClient);
8365
8667
  this.linkedin = new LinkedInClient(this.baseClient);
8366
8668
  this.chatgpt = new ChatGPTClient(this.baseClient);
8669
+ this.gemini = new GeminiClient(this.baseClient);
8367
8670
  }
8368
8671
  };
8369
8672
 
@@ -8399,6 +8702,9 @@ exports.EbayItemsClient = ItemsClient2;
8399
8702
  exports.EbayReferenceClient = ReferenceClient5;
8400
8703
  exports.EbaySearchClient = SearchClient8;
8401
8704
  exports.EbaySellersClient = SellersClient2;
8705
+ exports.GeminiAskClient = AskClient2;
8706
+ exports.GeminiBrandClient = BrandClient2;
8707
+ exports.GeminiClient = GeminiClient;
8402
8708
  exports.GeoClient = GeoClient;
8403
8709
  exports.GoogleAiModeClient = AiModeClient;
8404
8710
  exports.GoogleAutocompleteClient = AutocompleteClient;