x-twitter-scraper 0.8.4 → 0.10.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.
Files changed (147) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/README.md +1 -3
  3. package/package.json +1 -1
  4. package/resources/credits.d.mts +5 -5
  5. package/resources/credits.d.ts +5 -5
  6. package/resources/credits.js +2 -2
  7. package/resources/credits.mjs +2 -2
  8. package/resources/draws.d.mts +3 -2
  9. package/resources/draws.d.mts.map +1 -1
  10. package/resources/draws.d.ts +3 -2
  11. package/resources/draws.d.ts.map +1 -1
  12. package/resources/events.d.mts +6 -2
  13. package/resources/events.d.mts.map +1 -1
  14. package/resources/events.d.ts +6 -2
  15. package/resources/events.d.ts.map +1 -1
  16. package/resources/extractions.d.mts +672 -91
  17. package/resources/extractions.d.mts.map +1 -1
  18. package/resources/extractions.d.ts +672 -91
  19. package/resources/extractions.d.ts.map +1 -1
  20. package/resources/extractions.js +3 -2
  21. package/resources/extractions.js.map +1 -1
  22. package/resources/extractions.mjs +3 -2
  23. package/resources/extractions.mjs.map +1 -1
  24. package/resources/guest-wallets.d.mts +20 -18
  25. package/resources/guest-wallets.d.mts.map +1 -1
  26. package/resources/guest-wallets.d.ts +20 -18
  27. package/resources/guest-wallets.d.ts.map +1 -1
  28. package/resources/guest-wallets.js +9 -13
  29. package/resources/guest-wallets.js.map +1 -1
  30. package/resources/guest-wallets.mjs +9 -13
  31. package/resources/guest-wallets.mjs.map +1 -1
  32. package/resources/monitors/monitors.d.mts +8 -0
  33. package/resources/monitors/monitors.d.mts.map +1 -1
  34. package/resources/monitors/monitors.d.ts +8 -0
  35. package/resources/monitors/monitors.d.ts.map +1 -1
  36. package/resources/monitors/monitors.js.map +1 -1
  37. package/resources/monitors/monitors.mjs.map +1 -1
  38. package/resources/shared.d.mts +11 -11
  39. package/resources/shared.d.mts.map +1 -1
  40. package/resources/shared.d.ts +11 -11
  41. package/resources/shared.d.ts.map +1 -1
  42. package/resources/support/attachments.d.mts +33 -0
  43. package/resources/support/attachments.d.mts.map +1 -0
  44. package/resources/support/attachments.d.ts +33 -0
  45. package/resources/support/attachments.d.ts.map +1 -0
  46. package/resources/support/attachments.js +42 -0
  47. package/resources/support/attachments.js.map +1 -0
  48. package/resources/support/attachments.mjs +38 -0
  49. package/resources/support/attachments.mjs.map +1 -0
  50. package/resources/support/index.d.mts +1 -0
  51. package/resources/support/index.d.mts.map +1 -1
  52. package/resources/support/index.d.ts +1 -0
  53. package/resources/support/index.d.ts.map +1 -1
  54. package/resources/support/index.js +3 -1
  55. package/resources/support/index.js.map +1 -1
  56. package/resources/support/index.mjs +1 -0
  57. package/resources/support/index.mjs.map +1 -1
  58. package/resources/support/support.d.mts +4 -0
  59. package/resources/support/support.d.mts.map +1 -1
  60. package/resources/support/support.d.ts +4 -0
  61. package/resources/support/support.d.ts.map +1 -1
  62. package/resources/support/support.js +4 -0
  63. package/resources/support/support.js.map +1 -1
  64. package/resources/support/support.mjs +4 -0
  65. package/resources/support/support.mjs.map +1 -1
  66. package/resources/x/accounts.d.mts +3 -5
  67. package/resources/x/accounts.d.mts.map +1 -1
  68. package/resources/x/accounts.d.ts +3 -5
  69. package/resources/x/accounts.d.ts.map +1 -1
  70. package/resources/x/communities/communities.d.mts +112 -0
  71. package/resources/x/communities/communities.d.mts.map +1 -1
  72. package/resources/x/communities/communities.d.ts +112 -0
  73. package/resources/x/communities/communities.d.ts.map +1 -1
  74. package/resources/x/communities/communities.js.map +1 -1
  75. package/resources/x/communities/communities.mjs.map +1 -1
  76. package/resources/x/index.d.mts +2 -2
  77. package/resources/x/index.d.mts.map +1 -1
  78. package/resources/x/index.d.ts +2 -2
  79. package/resources/x/index.d.ts.map +1 -1
  80. package/resources/x/index.js.map +1 -1
  81. package/resources/x/index.mjs.map +1 -1
  82. package/resources/x/lists.d.mts +115 -4
  83. package/resources/x/lists.d.mts.map +1 -1
  84. package/resources/x/lists.d.ts +115 -4
  85. package/resources/x/lists.d.ts.map +1 -1
  86. package/resources/x/tweets/index.d.mts +1 -1
  87. package/resources/x/tweets/index.d.mts.map +1 -1
  88. package/resources/x/tweets/index.d.ts +1 -1
  89. package/resources/x/tweets/index.d.ts.map +1 -1
  90. package/resources/x/tweets/index.js.map +1 -1
  91. package/resources/x/tweets/index.mjs.map +1 -1
  92. package/resources/x/tweets/tweets.d.mts +482 -38
  93. package/resources/x/tweets/tweets.d.mts.map +1 -1
  94. package/resources/x/tweets/tweets.d.ts +482 -38
  95. package/resources/x/tweets/tweets.d.ts.map +1 -1
  96. package/resources/x/tweets/tweets.js +5 -8
  97. package/resources/x/tweets/tweets.js.map +1 -1
  98. package/resources/x/tweets/tweets.mjs +5 -8
  99. package/resources/x/tweets/tweets.mjs.map +1 -1
  100. package/resources/x/users/index.d.mts +1 -1
  101. package/resources/x/users/index.d.mts.map +1 -1
  102. package/resources/x/users/index.d.ts +1 -1
  103. package/resources/x/users/index.d.ts.map +1 -1
  104. package/resources/x/users/index.js.map +1 -1
  105. package/resources/x/users/index.mjs.map +1 -1
  106. package/resources/x/users/users.d.mts +910 -40
  107. package/resources/x/users/users.d.mts.map +1 -1
  108. package/resources/x/users/users.d.ts +910 -40
  109. package/resources/x/users/users.d.ts.map +1 -1
  110. package/resources/x/users/users.js +12 -7
  111. package/resources/x/users/users.js.map +1 -1
  112. package/resources/x/users/users.mjs +12 -7
  113. package/resources/x/users/users.mjs.map +1 -1
  114. package/resources/x/x.d.mts +4 -4
  115. package/resources/x/x.d.mts.map +1 -1
  116. package/resources/x/x.d.ts +4 -4
  117. package/resources/x/x.d.ts.map +1 -1
  118. package/resources/x/x.js.map +1 -1
  119. package/resources/x/x.mjs.map +1 -1
  120. package/src/resources/credits.ts +5 -5
  121. package/src/resources/draws.ts +3 -2
  122. package/src/resources/events.ts +7 -2
  123. package/src/resources/extractions.ts +929 -185
  124. package/src/resources/guest-wallets.ts +20 -18
  125. package/src/resources/monitors/monitors.ts +10 -0
  126. package/src/resources/shared.ts +17 -9
  127. package/src/resources/support/attachments.ts +57 -0
  128. package/src/resources/support/index.ts +1 -0
  129. package/src/resources/support/support.ts +6 -0
  130. package/src/resources/x/accounts.ts +3 -5
  131. package/src/resources/x/communities/communities.ts +140 -0
  132. package/src/resources/x/index.ts +4 -0
  133. package/src/resources/x/lists.ts +143 -4
  134. package/src/resources/x/tweets/index.ts +1 -0
  135. package/src/resources/x/tweets/tweets.ts +610 -37
  136. package/src/resources/x/users/index.ts +3 -0
  137. package/src/resources/x/users/users.ts +1363 -221
  138. package/src/resources/x/x.ts +8 -0
  139. package/src/version.ts +1 -1
  140. package/version.d.mts +1 -1
  141. package/version.d.mts.map +1 -1
  142. package/version.d.ts +1 -1
  143. package/version.d.ts.map +1 -1
  144. package/version.js +1 -1
  145. package/version.js.map +1 -1
  146. package/version.mjs +1 -1
  147. package/version.mjs.map +1 -1
@@ -15,11 +15,9 @@ import { RequestOptions } from '../internal/request-options';
15
15
  */
16
16
  export class GuestWallets extends APIResource {
17
17
  /**
18
- * Create a one-use Stripe-hosted checkout after the user explicitly confirms a
19
- * $10-$250 USD amount. This request creates no charge by itself. The user opens
20
- * checkout_url on Stripe. This endpoint returns the paid-read API key without
21
- * requiring an Xquik account, email, dashboard, or Xquik web page. An idempotent
22
- * replay returns the same key.
18
+ * Create a one-use hosted checkout after the user confirms $10-$250 USD. The
19
+ * request creates no charge. It returns a paid-read API key without an Xquik
20
+ * account. Replays return the same key.
23
21
  *
24
22
  * @example
25
23
  * ```ts
@@ -41,10 +39,9 @@ export class GuestWallets extends APIResource {
41
39
  }
42
40
 
43
41
  /**
44
- * Poll after Stripe payment. Use usable to decide whether paid reads can run. An
45
- * active wallet can remain usable while a top-up is pending. A new wallet becomes
46
- * usable only after verified webhook fulfillment. Send the guest key as
47
- * Authorization: Bearer.
42
+ * Poll after payment. Use usable to decide whether paid reads can run. An active
43
+ * wallet can remain usable while a top-up is pending. A new wallet becomes usable
44
+ * only after payment is verified. Send the guest key as Authorization: Bearer.
48
45
  *
49
46
  * @example
50
47
  * ```ts
@@ -59,10 +56,9 @@ export class GuestWallets extends APIResource {
59
56
  }
60
57
 
61
58
  /**
62
- * Create a one-use Stripe-hosted checkout for an existing paid-read guest key
63
- * after the user explicitly confirms a $10-$250 USD amount. The key remains the
64
- * same. This request creates no charge by itself and never redirects through an
65
- * Xquik web page.
59
+ * Create a one-use hosted checkout after the user confirms a $10-$250 USD amount
60
+ * for an existing paid-read guest key. The key remains the same. This request
61
+ * creates no charge and never redirects through Xquik.
66
62
  *
67
63
  * @example
68
64
  * ```ts
@@ -116,7 +112,7 @@ export interface GuestWalletCreateResponse {
116
112
  authorization: GuestWalletCreateResponse.Authorization;
117
113
 
118
114
  /**
119
- * Raw Stripe-hosted checkout URL for user interaction.
115
+ * Hosted checkout URL for user interaction.
120
116
  */
121
117
  checkout_url: string;
122
118
 
@@ -132,7 +128,10 @@ export interface GuestWalletCreateResponse {
132
128
  */
133
129
  expires_at: string;
134
130
 
135
- instructions: 'Give checkout_url to the user. They must complete payment on Stripe. Never submit payment for them. After payment, poll status_url every poll_after_seconds until latest_purchase.status is no longer pending.';
131
+ /**
132
+ * Hosted checkout and status polling instructions.
133
+ */
134
+ instructions: string;
136
135
 
137
136
  /**
138
137
  * Wait at least this long before polling status_url.
@@ -230,7 +229,7 @@ export namespace GuestWalletRetrieveStatusResponse {
230
229
  }
231
230
 
232
231
  /**
233
- * Pending Stripe checkout and guest wallet purchase details.
232
+ * Pending hosted checkout and guest wallet purchase details.
234
233
  */
235
234
  export interface GuestWalletTopupResponse {
236
235
  account_required: false;
@@ -241,7 +240,7 @@ export interface GuestWalletTopupResponse {
241
240
  amount: GuestWalletAmount;
242
241
 
243
242
  /**
244
- * Raw Stripe-hosted checkout URL for user interaction.
243
+ * Hosted checkout URL for user interaction.
245
244
  */
246
245
  checkout_url: string;
247
246
 
@@ -255,7 +254,10 @@ export interface GuestWalletTopupResponse {
255
254
  */
256
255
  expires_at: string;
257
256
 
258
- instructions: 'Give checkout_url to the user. They must complete payment on Stripe. Never submit payment for them. After payment, poll status_url every poll_after_seconds until latest_purchase.status is no longer pending.';
257
+ /**
258
+ * Hosted checkout and status polling instructions.
259
+ */
260
+ instructions: string;
259
261
 
260
262
  /**
261
263
  * Wait at least this long before polling status_url.
@@ -120,6 +120,16 @@ export interface Monitor {
120
120
  username: string;
121
121
 
122
122
  xUserId: string;
123
+
124
+ /**
125
+ * When Xquik automatically paused this monitor.
126
+ */
127
+ pausedAt?: string;
128
+
129
+ /**
130
+ * Why Xquik automatically paused this monitor.
131
+ */
132
+ pausedReason?: 'x_user_not_found';
123
133
  }
124
134
 
125
135
  export interface MonitorCreateResponse {
@@ -307,6 +307,7 @@ export interface Error {
307
307
  | 'missing_params'
308
308
  | 'missing_query'
309
309
  | 'monitor_already_exists'
310
+ | 'monitor_profile_unavailable'
310
311
  | 'no_media'
311
312
  | 'no_credits'
312
313
  | 'no_subscription'
@@ -324,6 +325,8 @@ export interface Error {
324
325
  | 'checkout_unavailable'
325
326
  | 'connection_challenge_expired'
326
327
  | 'connection_challenge_inactive'
328
+ | 'coverage_cursor_gone'
329
+ | 'coverage_cursor_unavailable'
327
330
  | 'draft_not_found'
328
331
  | 'favoriters_unavailable'
329
332
  | 'forbidden'
@@ -333,6 +336,7 @@ export interface Error {
333
336
  | 'idempotency_conflict'
334
337
  | 'idempotency_key_conflict'
335
338
  | 'invalid_community_id'
339
+ | 'invalid_coverage_cursor'
336
340
  | 'invalid_idempotency_key'
337
341
  | 'invalid_list_id'
338
342
  | 'invalid_payment_amount'
@@ -432,6 +436,7 @@ export namespace Error {
432
436
  | 'missing_params'
433
437
  | 'missing_query'
434
438
  | 'monitor_already_exists'
439
+ | 'monitor_profile_unavailable'
435
440
  | 'no_media'
436
441
  | 'no_credits'
437
442
  | 'no_subscription'
@@ -449,6 +454,8 @@ export namespace Error {
449
454
  | 'checkout_unavailable'
450
455
  | 'connection_challenge_expired'
451
456
  | 'connection_challenge_inactive'
457
+ | 'coverage_cursor_gone'
458
+ | 'coverage_cursor_unavailable'
452
459
  | 'draft_not_found'
453
460
  | 'favoriters_unavailable'
454
461
  | 'forbidden'
@@ -458,6 +465,7 @@ export namespace Error {
458
465
  | 'idempotency_conflict'
459
466
  | 'idempotency_key_conflict'
460
467
  | 'invalid_community_id'
468
+ | 'invalid_coverage_cursor'
461
469
  | 'invalid_idempotency_key'
462
470
  | 'invalid_list_id'
463
471
  | 'invalid_payment_amount'
@@ -545,10 +553,10 @@ export type EventType =
545
553
  | 'profile.unavailable.changed';
546
554
 
547
555
  /**
548
- * Paginated tweets. Source visibility, filters, or remaining credits can reduce
549
- * results. An empty filtered page can still have has_next_page true. Follow
550
- * next_cursor while has_next_page is true. Zero affordable results returns 402
551
- * insufficient_credits.
556
+ * No-mode search, user Tweet, user reply, and direct reply reads use automatic
557
+ * coverage. Shape, filters, aliases, and billing stay compatible. Unprefixed
558
+ * cursors remain legacy. Follow next_cursor while has_next_page is true. An empty
559
+ * filtered page can still have has_next_page true.
552
560
  */
553
561
  export interface PaginatedTweets {
554
562
  has_next_page: boolean;
@@ -559,11 +567,11 @@ export interface PaginatedTweets {
559
567
  }
560
568
 
561
569
  /**
562
- * Paginated user profiles. The item count can be lower than pageSize when the
563
- * source returns fewer profiles or the available usage balance covers fewer results. Follow
564
- * next_cursor while has_next_page is true. A relationship can naturally contain
565
- * fewer profiles than requested. Zero affordable results returns 402
566
- * insufficient_credits.
570
+ * Paginated user profiles. No-mode follower, following, and verified follower
571
+ * requests merge independent views automatically. Response fields, page size,
572
+ * aliases, filters, and per-returned-profile billing stay unchanged. Existing
573
+ * unprefixed cursors retain legacy behavior. Follow next_cursor while
574
+ * has_next_page is true.
567
575
  */
568
576
  export interface PaginatedUsers {
569
577
  has_next_page: boolean;
@@ -0,0 +1,57 @@
1
+ // SPDX-FileCopyrightText: 2026 Xquik contributors
2
+ //
3
+ // SPDX-License-Identifier: Apache-2.0
4
+
5
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
6
+
7
+ import { APIResource } from '../../core/resource';
8
+ import { APIPromise } from '../../core/api-promise';
9
+ import { buildHeaders } from '../../internal/headers';
10
+ import { RequestOptions } from '../../internal/request-options';
11
+ import { path } from '../../internal/utils/path';
12
+
13
+ /**
14
+ * Support ticket management
15
+ */
16
+ export class Attachments extends APIResource {
17
+ /**
18
+ * Streams an authenticated user's support image or video. Video requests support
19
+ * one standard byte range for seeking and resumable playback.
20
+ *
21
+ * @example
22
+ * ```ts
23
+ * const response = await client.support.attachments.download(
24
+ * 'att_a1b2c3d4e5f6a1b2c3d4e5f6',
25
+ * );
26
+ *
27
+ * const content = await response.blob();
28
+ * console.log(content);
29
+ * ```
30
+ */
31
+ download(
32
+ id: string,
33
+ params: AttachmentDownloadParams | null | undefined = {},
34
+ options?: RequestOptions,
35
+ ): APIPromise<Response> {
36
+ const { Range } = params ?? {};
37
+ return this._client.get(path`/support/attachments/${id}`, {
38
+ ...options,
39
+ headers: buildHeaders([
40
+ { Accept: 'application/octet-stream', ...(Range != null ? { Range: Range } : undefined) },
41
+ options?.headers,
42
+ ]),
43
+ __binaryResponse: true,
44
+ });
45
+ }
46
+ }
47
+
48
+ export interface AttachmentDownloadParams {
49
+ /**
50
+ * Optional single byte range
51
+ */
52
+ Range?: string;
53
+ }
54
+
55
+ export declare namespace Attachments {
56
+ export { type AttachmentDownloadParams as AttachmentDownloadParams };
57
+ }
@@ -4,6 +4,7 @@
4
4
 
5
5
  // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
6
6
 
7
+ export { Attachments, type AttachmentDownloadParams } from './attachments';
7
8
  export { Support } from './support';
8
9
  export {
9
10
  Tickets,
@@ -5,6 +5,8 @@
5
5
  // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
6
6
 
7
7
  import { APIResource } from '../../core/resource';
8
+ import * as AttachmentsAPI from './attachments';
9
+ import { AttachmentDownloadParams, Attachments } from './attachments';
8
10
  import * as TicketsAPI from './tickets';
9
11
  import {
10
12
  TicketCreateParams,
@@ -19,12 +21,16 @@ import {
19
21
  } from './tickets';
20
22
 
21
23
  export class Support extends APIResource {
24
+ attachments: AttachmentsAPI.Attachments = new AttachmentsAPI.Attachments(this._client);
22
25
  tickets: TicketsAPI.Tickets = new TicketsAPI.Tickets(this._client);
23
26
  }
24
27
 
28
+ Support.Attachments = Attachments;
25
29
  Support.Tickets = Tickets;
26
30
 
27
31
  export declare namespace Support {
32
+ export { Attachments as Attachments, type AttachmentDownloadParams as AttachmentDownloadParams };
33
+
28
34
  export {
29
35
  Tickets as Tickets,
30
36
  type TicketCreateResponse as TicketCreateResponse,
@@ -107,11 +107,9 @@ export interface XAccount {
107
107
  createdAt: string;
108
108
 
109
109
  /**
110
- * Derived connection health. `healthy` = ready to use. `needsReauth` = user must
111
- * submit fresh credentials. `locked` = X locked the account; unlock on x.com
112
- * first. `suspended` = X banned the account. `recovering` = cooldown ended; the
113
- * account can reconnect on its next use. `temporaryIssue` = temporary connection
114
- * problem; wait before the next use.
110
+ * Derived health. `healthy` is ready. `needsReauth` needs credentials. `locked`
111
+ * must be unlocked on X. `suspended` is banned. `recovering` can reconnect. Wait
112
+ * before using `temporaryIssue`.
115
113
  */
116
114
  health: 'healthy' | 'locked' | 'needsReauth' | 'recovering' | 'suspended' | 'temporaryIssue';
117
115
 
@@ -777,24 +777,164 @@ export interface CommunityDeleteParams {
777
777
  }
778
778
 
779
779
  export interface CommunityRetrieveMembersParams {
780
+ /**
781
+ * Match any comma-separated or line-separated bio term, ignoring case.
782
+ */
783
+ bioContains?: string;
784
+
780
785
  /**
781
786
  * Pagination cursor
782
787
  */
783
788
  cursor?: string;
784
789
 
790
+ /**
791
+ * Only return profiles with a location.
792
+ */
793
+ hasLocation?: boolean;
794
+
795
+ /**
796
+ * Only return profiles with a website.
797
+ */
798
+ hasWebsite?: boolean;
799
+
800
+ /**
801
+ * Match a location substring, ignoring case.
802
+ */
803
+ locationContains?: string;
804
+
805
+ /**
806
+ * Maximum follower count. Missing counts pass this maximum.
807
+ */
808
+ maxFollowers?: number;
809
+
810
+ /**
811
+ * Maximum following count.
812
+ */
813
+ maxFollowing?: number;
814
+
815
+ /**
816
+ * Maximum post count. maxPosts is also accepted.
817
+ */
818
+ maxStatuses?: number;
819
+
820
+ /**
821
+ * Minimum account age in whole days.
822
+ */
823
+ minAccountAgeDays?: number;
824
+
825
+ /**
826
+ * Minimum follower count. Filtering happens before billing.
827
+ */
828
+ minFollowers?: number;
829
+
830
+ /**
831
+ * Minimum following count.
832
+ */
833
+ minFollowing?: number;
834
+
835
+ /**
836
+ * Minimum post count. minPosts is also accepted.
837
+ */
838
+ minStatuses?: number;
839
+
785
840
  /**
786
841
  * Items per page (20-200, default 20). This is an upper bound for paid
787
842
  * authenticated calls: available usage balance can reduce the returned page size, and
788
843
  * zero affordable results returns 402 insufficient_credits.
789
844
  */
790
845
  pageSize?: number;
846
+
847
+ /**
848
+ * Match a username substring, ignoring case.
849
+ */
850
+ usernameContains?: string;
851
+
852
+ /**
853
+ * Only return verified profiles.
854
+ */
855
+ verifiedOnly?: boolean;
856
+
857
+ /**
858
+ * Match the verification type exactly, ignoring case.
859
+ */
860
+ verifiedType?: string;
791
861
  }
792
862
 
793
863
  export interface CommunityRetrieveModeratorsParams {
864
+ /**
865
+ * Match any comma-separated or line-separated bio term, ignoring case.
866
+ */
867
+ bioContains?: string;
868
+
794
869
  /**
795
870
  * Pagination cursor for community moderators
796
871
  */
797
872
  cursor?: string;
873
+
874
+ /**
875
+ * Only return profiles with a location.
876
+ */
877
+ hasLocation?: boolean;
878
+
879
+ /**
880
+ * Only return profiles with a website.
881
+ */
882
+ hasWebsite?: boolean;
883
+
884
+ /**
885
+ * Match a location substring, ignoring case.
886
+ */
887
+ locationContains?: string;
888
+
889
+ /**
890
+ * Maximum follower count. Missing counts pass this maximum.
891
+ */
892
+ maxFollowers?: number;
893
+
894
+ /**
895
+ * Maximum following count.
896
+ */
897
+ maxFollowing?: number;
898
+
899
+ /**
900
+ * Maximum post count. maxPosts is also accepted.
901
+ */
902
+ maxStatuses?: number;
903
+
904
+ /**
905
+ * Minimum account age in whole days.
906
+ */
907
+ minAccountAgeDays?: number;
908
+
909
+ /**
910
+ * Minimum follower count. Filtering happens before billing.
911
+ */
912
+ minFollowers?: number;
913
+
914
+ /**
915
+ * Minimum following count.
916
+ */
917
+ minFollowing?: number;
918
+
919
+ /**
920
+ * Minimum post count. minPosts is also accepted.
921
+ */
922
+ minStatuses?: number;
923
+
924
+ /**
925
+ * Match a username substring, ignoring case.
926
+ */
927
+ usernameContains?: string;
928
+
929
+ /**
930
+ * Only return verified profiles.
931
+ */
932
+ verifiedOnly?: boolean;
933
+
934
+ /**
935
+ * Match the verification type exactly, ignoring case.
936
+ */
937
+ verifiedType?: string;
798
938
  }
799
939
 
800
940
  export interface CommunityRetrieveSearchParams {
@@ -75,6 +75,7 @@ export {
75
75
  type TweetRetrieveResponse,
76
76
  type TweetDeleteResponse,
77
77
  type TweetGetRepliesResponse,
78
+ type TweetSearchResponse,
78
79
  type TweetCreateParams,
79
80
  type TweetListParams,
80
81
  type TweetDeleteParams,
@@ -89,6 +90,9 @@ export {
89
90
  Users,
90
91
  type UserRemoveFollowerResponse,
91
92
  type UserRetrieveBatchResponse,
93
+ type UserRetrieveFollowersResponse,
94
+ type UserRetrieveFollowingResponse,
95
+ type UserRetrieveVerifiedFollowersResponse,
92
96
  type UserRemoveFollowerParams,
93
97
  type UserRetrieveBatchParams,
94
98
  type UserRetrieveFollowersParams,
@@ -69,30 +69,169 @@ export class Lists extends APIResource {
69
69
  }
70
70
 
71
71
  export interface ListRetrieveFollowersParams {
72
+ /**
73
+ * Match any comma-separated or line-separated bio term, ignoring case.
74
+ */
75
+ bioContains?: string;
76
+
72
77
  /**
73
78
  * Pagination cursor for list followers
74
79
  */
75
80
  cursor?: string;
76
81
 
77
82
  /**
78
- * Maximum user profiles requested from this page (20-200, default 200). The
79
- * response can contain fewer profiles because the source returned fewer or
80
- * the available usage balance covers fewer results. Keep requesting next_cursor while
81
- * has_next_page is true. The deprecated limit and count aliases remain accepted.
83
+ * Only return profiles with a location.
84
+ */
85
+ hasLocation?: boolean;
86
+
87
+ /**
88
+ * Only return profiles with a website.
89
+ */
90
+ hasWebsite?: boolean;
91
+
92
+ /**
93
+ * Match a location substring, ignoring case.
94
+ */
95
+ locationContains?: string;
96
+
97
+ /**
98
+ * Maximum follower count. Missing counts pass this maximum.
99
+ */
100
+ maxFollowers?: number;
101
+
102
+ /**
103
+ * Maximum following count.
104
+ */
105
+ maxFollowing?: number;
106
+
107
+ /**
108
+ * Maximum post count. maxPosts is also accepted.
109
+ */
110
+ maxStatuses?: number;
111
+
112
+ /**
113
+ * Minimum account age in whole days.
114
+ */
115
+ minAccountAgeDays?: number;
116
+
117
+ /**
118
+ * Minimum follower count. Filtering happens before billing.
119
+ */
120
+ minFollowers?: number;
121
+
122
+ /**
123
+ * Minimum following count.
124
+ */
125
+ minFollowing?: number;
126
+
127
+ /**
128
+ * Minimum post count. minPosts is also accepted.
129
+ */
130
+ minStatuses?: number;
131
+
132
+ /**
133
+ * Maximum user profiles requested from this page (20-200, default 200). Source,
134
+ * filters, or credits can return fewer profiles. Keep requesting next_cursor while
135
+ * has_next_page is true. Deprecated aliases remain accepted.
82
136
  */
83
137
  pageSize?: number;
138
+
139
+ /**
140
+ * Match a username substring, ignoring case.
141
+ */
142
+ usernameContains?: string;
143
+
144
+ /**
145
+ * Only return verified profiles.
146
+ */
147
+ verifiedOnly?: boolean;
148
+
149
+ /**
150
+ * Match the verification type exactly, ignoring case.
151
+ */
152
+ verifiedType?: string;
84
153
  }
85
154
 
86
155
  export interface ListRetrieveMembersParams {
156
+ /**
157
+ * Match any comma-separated or line-separated bio term, ignoring case.
158
+ */
159
+ bioContains?: string;
160
+
87
161
  /**
88
162
  * Pagination cursor for list members
89
163
  */
90
164
  cursor?: string;
91
165
 
166
+ /**
167
+ * Only return profiles with a location.
168
+ */
169
+ hasLocation?: boolean;
170
+
171
+ /**
172
+ * Only return profiles with a website.
173
+ */
174
+ hasWebsite?: boolean;
175
+
176
+ /**
177
+ * Match a location substring, ignoring case.
178
+ */
179
+ locationContains?: string;
180
+
181
+ /**
182
+ * Maximum follower count. Missing counts pass this maximum.
183
+ */
184
+ maxFollowers?: number;
185
+
186
+ /**
187
+ * Maximum following count.
188
+ */
189
+ maxFollowing?: number;
190
+
191
+ /**
192
+ * Maximum post count. maxPosts is also accepted.
193
+ */
194
+ maxStatuses?: number;
195
+
196
+ /**
197
+ * Minimum account age in whole days.
198
+ */
199
+ minAccountAgeDays?: number;
200
+
201
+ /**
202
+ * Minimum follower count. Filtering happens before billing.
203
+ */
204
+ minFollowers?: number;
205
+
206
+ /**
207
+ * Minimum following count.
208
+ */
209
+ minFollowing?: number;
210
+
211
+ /**
212
+ * Minimum post count. minPosts is also accepted.
213
+ */
214
+ minStatuses?: number;
215
+
92
216
  /**
93
217
  * Members per page (20-200, default 20)
94
218
  */
95
219
  pageSize?: number;
220
+
221
+ /**
222
+ * Match a username substring, ignoring case.
223
+ */
224
+ usernameContains?: string;
225
+
226
+ /**
227
+ * Only return verified profiles.
228
+ */
229
+ verifiedOnly?: boolean;
230
+
231
+ /**
232
+ * Match the verification type exactly, ignoring case.
233
+ */
234
+ verifiedType?: string;
96
235
  }
97
236
 
98
237
  export interface ListRetrieveTweetsParams {
@@ -26,6 +26,7 @@ export {
26
26
  type TweetRetrieveResponse,
27
27
  type TweetDeleteResponse,
28
28
  type TweetGetRepliesResponse,
29
+ type TweetSearchResponse,
29
30
  type TweetCreateParams,
30
31
  type TweetListParams,
31
32
  type TweetDeleteParams,