x-twitter-scraper 0.7.2 → 0.9.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 (157) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +24 -0
  3. data/README.md +3 -3
  4. data/lib/x_twitter_scraper/models/credit_topup_balance_response.rb +5 -5
  5. data/lib/x_twitter_scraper/models/draw_export_params.rb +8 -3
  6. data/lib/x_twitter_scraper/models/draw_list_params.rb +2 -2
  7. data/lib/x_twitter_scraper/models/error.rb +8 -0
  8. data/lib/x_twitter_scraper/models/event_list_params.rb +13 -5
  9. data/lib/x_twitter_scraper/models/extraction_estimate_cost_params.rb +731 -82
  10. data/lib/x_twitter_scraper/models/extraction_estimate_cost_response.rb +1 -0
  11. data/lib/x_twitter_scraper/models/extraction_export_results_params.rb +145 -1
  12. data/lib/x_twitter_scraper/models/extraction_list_params.rb +2 -2
  13. data/lib/x_twitter_scraper/models/extraction_retrieve_params.rb +70 -3
  14. data/lib/x_twitter_scraper/models/extraction_run_params.rb +662 -1
  15. data/lib/x_twitter_scraper/models/extraction_run_response.rb +27 -48
  16. data/lib/x_twitter_scraper/models/guest_wallet_create_response.rb +8 -8
  17. data/lib/x_twitter_scraper/models/guest_wallet_topup_response.rb +9 -9
  18. data/lib/x_twitter_scraper/models/monitor.rb +29 -1
  19. data/lib/x_twitter_scraper/models/paginated_tweets.rb +4 -4
  20. data/lib/x_twitter_scraper/models/paginated_users.rb +5 -5
  21. data/lib/x_twitter_scraper/models/support/attachment_download_params.rb +28 -0
  22. data/lib/x_twitter_scraper/models/x/community_retrieve_members_params.rb +113 -1
  23. data/lib/x_twitter_scraper/models/x/community_retrieve_moderators_params.rb +117 -1
  24. data/lib/x_twitter_scraper/models/x/list_retrieve_followers_params.rb +117 -6
  25. data/lib/x_twitter_scraper/models/x/list_retrieve_members_params.rb +116 -1
  26. data/lib/x_twitter_scraper/models/x/tweet_get_favoriters_params.rb +117 -6
  27. data/lib/x_twitter_scraper/models/x/tweet_get_quotes_params.rb +153 -1
  28. data/lib/x_twitter_scraper/models/x/tweet_get_replies_params.rb +246 -16
  29. data/lib/x_twitter_scraper/models/x/tweet_get_replies_response.rb +3 -2
  30. data/lib/x_twitter_scraper/models/x/tweet_get_retweeters_params.rb +117 -6
  31. data/lib/x_twitter_scraper/models/x/tweet_search_params.rb +187 -14
  32. data/lib/x_twitter_scraper/models/x/tweet_search_response.rb +299 -0
  33. data/lib/x_twitter_scraper/models/x/user_retrieve_followers_params.rb +143 -10
  34. data/lib/x_twitter_scraper/models/x/user_retrieve_followers_response.rb +241 -0
  35. data/lib/x_twitter_scraper/models/x/user_retrieve_followers_you_know_params.rb +117 -6
  36. data/lib/x_twitter_scraper/models/x/user_retrieve_following_params.rb +143 -10
  37. data/lib/x_twitter_scraper/models/x/user_retrieve_following_response.rb +241 -0
  38. data/lib/x_twitter_scraper/models/x/user_retrieve_likes_params.rb +153 -1
  39. data/lib/x_twitter_scraper/models/x/user_retrieve_media_params.rb +153 -1
  40. data/lib/x_twitter_scraper/models/x/user_retrieve_mentions_params.rb +153 -1
  41. data/lib/x_twitter_scraper/models/x/user_retrieve_replies_params.rb +159 -7
  42. data/lib/x_twitter_scraper/models/x/user_retrieve_search_params.rb +116 -1
  43. data/lib/x_twitter_scraper/models/x/user_retrieve_tweets_params.rb +159 -7
  44. data/lib/x_twitter_scraper/models/x/user_retrieve_verified_followers_params.rb +157 -8
  45. data/lib/x_twitter_scraper/models/x/user_retrieve_verified_followers_response.rb +245 -0
  46. data/lib/x_twitter_scraper/models/x/x_account.rb +7 -11
  47. data/lib/x_twitter_scraper/resources/credits.rb +2 -2
  48. data/lib/x_twitter_scraper/resources/draws.rb +5 -2
  49. data/lib/x_twitter_scraper/resources/events.rb +10 -4
  50. data/lib/x_twitter_scraper/resources/extractions.rb +383 -84
  51. data/lib/x_twitter_scraper/resources/guest_wallets.rb +9 -13
  52. data/lib/x_twitter_scraper/resources/support/attachments.rb +42 -0
  53. data/lib/x_twitter_scraper/resources/support.rb +5 -0
  54. data/lib/x_twitter_scraper/resources/x/communities.rb +95 -4
  55. data/lib/x_twitter_scraper/resources/x/lists.rb +96 -5
  56. data/lib/x_twitter_scraper/resources/x/tweets.rb +286 -28
  57. data/lib/x_twitter_scraper/resources/x/users.rb +531 -41
  58. data/lib/x_twitter_scraper/version.rb +1 -1
  59. data/lib/x_twitter_scraper.rb +7 -1
  60. data/rbi/x_twitter_scraper/models/credit_topup_balance_response.rbi +6 -6
  61. data/rbi/x_twitter_scraper/models/draw_export_params.rbi +6 -3
  62. data/rbi/x_twitter_scraper/models/draw_list_params.rbi +2 -2
  63. data/rbi/x_twitter_scraper/models/error.rbi +40 -0
  64. data/rbi/x_twitter_scraper/models/event_list_params.rbi +15 -4
  65. data/rbi/x_twitter_scraper/models/extraction_estimate_cost_params.rbi +1338 -86
  66. data/rbi/x_twitter_scraper/models/extraction_estimate_cost_response.rbi +5 -0
  67. data/rbi/x_twitter_scraper/models/extraction_export_results_params.rbi +198 -0
  68. data/rbi/x_twitter_scraper/models/extraction_list_params.rbi +2 -2
  69. data/rbi/x_twitter_scraper/models/extraction_retrieve_params.rbi +194 -2
  70. data/rbi/x_twitter_scraper/models/extraction_run_params.rbi +1221 -0
  71. data/rbi/x_twitter_scraper/models/extraction_run_response.rbi +35 -162
  72. data/rbi/x_twitter_scraper/models/guest_wallet_create_response.rbi +8 -6
  73. data/rbi/x_twitter_scraper/models/guest_wallet_topup_response.rbi +9 -7
  74. data/rbi/x_twitter_scraper/models/monitor.rbi +54 -3
  75. data/rbi/x_twitter_scraper/models/paginated_tweets.rbi +4 -4
  76. data/rbi/x_twitter_scraper/models/paginated_users.rbi +5 -5
  77. data/rbi/x_twitter_scraper/models/support/attachment_download_params.rbi +51 -0
  78. data/rbi/x_twitter_scraper/models/x/community_retrieve_members_params.rbi +154 -0
  79. data/rbi/x_twitter_scraper/models/x/community_retrieve_moderators_params.rbi +154 -0
  80. data/rbi/x_twitter_scraper/models/x/list_retrieve_followers_params.rbi +160 -8
  81. data/rbi/x_twitter_scraper/models/x/list_retrieve_members_params.rbi +154 -0
  82. data/rbi/x_twitter_scraper/models/x/tweet_get_favoriters_params.rbi +160 -8
  83. data/rbi/x_twitter_scraper/models/x/tweet_get_quotes_params.rbi +209 -0
  84. data/rbi/x_twitter_scraper/models/x/tweet_get_replies_params.rbi +403 -20
  85. data/rbi/x_twitter_scraper/models/x/tweet_get_replies_response.rbi +3 -2
  86. data/rbi/x_twitter_scraper/models/x/tweet_get_retweeters_params.rbi +160 -8
  87. data/rbi/x_twitter_scraper/models/x/tweet_search_params.rbi +279 -16
  88. data/rbi/x_twitter_scraper/models/x/tweet_search_response.rbi +543 -0
  89. data/rbi/x_twitter_scraper/models/x/user_retrieve_followers_params.rbi +228 -12
  90. data/rbi/x_twitter_scraper/models/x/user_retrieve_followers_response.rbi +440 -0
  91. data/rbi/x_twitter_scraper/models/x/user_retrieve_followers_you_know_params.rbi +160 -8
  92. data/rbi/x_twitter_scraper/models/x/user_retrieve_following_params.rbi +228 -12
  93. data/rbi/x_twitter_scraper/models/x/user_retrieve_following_response.rbi +440 -0
  94. data/rbi/x_twitter_scraper/models/x/user_retrieve_likes_params.rbi +209 -0
  95. data/rbi/x_twitter_scraper/models/x/user_retrieve_media_params.rbi +209 -0
  96. data/rbi/x_twitter_scraper/models/x/user_retrieve_mentions_params.rbi +209 -0
  97. data/rbi/x_twitter_scraper/models/x/user_retrieve_replies_params.rbi +217 -8
  98. data/rbi/x_twitter_scraper/models/x/user_retrieve_search_params.rbi +154 -0
  99. data/rbi/x_twitter_scraper/models/x/user_retrieve_tweets_params.rbi +217 -8
  100. data/rbi/x_twitter_scraper/models/x/user_retrieve_verified_followers_params.rbi +248 -10
  101. data/rbi/x_twitter_scraper/models/x/user_retrieve_verified_followers_response.rbi +440 -0
  102. data/rbi/x_twitter_scraper/models/x/x_account.rbi +9 -15
  103. data/rbi/x_twitter_scraper/resources/credits.rbi +2 -2
  104. data/rbi/x_twitter_scraper/resources/draws.rbi +3 -2
  105. data/rbi/x_twitter_scraper/resources/events.rbi +5 -2
  106. data/rbi/x_twitter_scraper/resources/extractions.rbi +525 -83
  107. data/rbi/x_twitter_scraper/resources/guest_wallets.rbi +9 -13
  108. data/rbi/x_twitter_scraper/resources/support/attachments.rbi +35 -0
  109. data/rbi/x_twitter_scraper/resources/support.rbi +4 -0
  110. data/rbi/x_twitter_scraper/resources/x/communities.rbi +84 -0
  111. data/rbi/x_twitter_scraper/resources/x/lists.rbi +87 -4
  112. data/rbi/x_twitter_scraper/resources/x/tweets.rbi +307 -31
  113. data/rbi/x_twitter_scraper/resources/x/users.rbi +558 -34
  114. data/sig/x_twitter_scraper/models/error.rbs +16 -0
  115. data/sig/x_twitter_scraper/models/event_list_params.rbs +7 -0
  116. data/sig/x_twitter_scraper/models/extraction_estimate_cost_params.rbs +605 -1
  117. data/sig/x_twitter_scraper/models/extraction_estimate_cost_response.rbs +2 -0
  118. data/sig/x_twitter_scraper/models/extraction_export_results_params.rbs +127 -1
  119. data/sig/x_twitter_scraper/models/extraction_retrieve_params.rbs +74 -1
  120. data/sig/x_twitter_scraper/models/extraction_run_params.rbs +611 -1
  121. data/sig/x_twitter_scraper/models/extraction_run_response.rbs +29 -67
  122. data/sig/x_twitter_scraper/models/guest_wallet_create_response.rbs +4 -4
  123. data/sig/x_twitter_scraper/models/guest_wallet_topup_response.rbs +4 -4
  124. data/sig/x_twitter_scraper/models/monitor.rbs +29 -3
  125. data/sig/x_twitter_scraper/models/support/attachment_download_params.rbs +32 -0
  126. data/sig/x_twitter_scraper/models/x/community_retrieve_members_params.rbs +103 -1
  127. data/sig/x_twitter_scraper/models/x/community_retrieve_moderators_params.rbs +102 -1
  128. data/sig/x_twitter_scraper/models/x/list_retrieve_followers_params.rbs +103 -1
  129. data/sig/x_twitter_scraper/models/x/list_retrieve_members_params.rbs +103 -1
  130. data/sig/x_twitter_scraper/models/x/tweet_get_favoriters_params.rbs +103 -1
  131. data/sig/x_twitter_scraper/models/x/tweet_get_quotes_params.rbs +134 -1
  132. data/sig/x_twitter_scraper/models/x/tweet_get_replies_params.rbs +207 -2
  133. data/sig/x_twitter_scraper/models/x/tweet_get_retweeters_params.rbs +103 -1
  134. data/sig/x_twitter_scraper/models/x/tweet_search_params.rbs +154 -1
  135. data/sig/x_twitter_scraper/models/x/tweet_search_response.rbs +258 -0
  136. data/sig/x_twitter_scraper/models/x/user_retrieve_followers_params.rbs +119 -1
  137. data/sig/x_twitter_scraper/models/x/user_retrieve_followers_response.rbs +216 -0
  138. data/sig/x_twitter_scraper/models/x/user_retrieve_followers_you_know_params.rbs +103 -1
  139. data/sig/x_twitter_scraper/models/x/user_retrieve_following_params.rbs +119 -1
  140. data/sig/x_twitter_scraper/models/x/user_retrieve_following_response.rbs +216 -0
  141. data/sig/x_twitter_scraper/models/x/user_retrieve_likes_params.rbs +134 -1
  142. data/sig/x_twitter_scraper/models/x/user_retrieve_media_params.rbs +134 -1
  143. data/sig/x_twitter_scraper/models/x/user_retrieve_mentions_params.rbs +134 -1
  144. data/sig/x_twitter_scraper/models/x/user_retrieve_replies_params.rbs +134 -1
  145. data/sig/x_twitter_scraper/models/x/user_retrieve_search_params.rbs +102 -1
  146. data/sig/x_twitter_scraper/models/x/user_retrieve_tweets_params.rbs +134 -1
  147. data/sig/x_twitter_scraper/models/x/user_retrieve_verified_followers_params.rbs +137 -1
  148. data/sig/x_twitter_scraper/models/x/user_retrieve_verified_followers_response.rbs +216 -0
  149. data/sig/x_twitter_scraper/resources/events.rbs +1 -0
  150. data/sig/x_twitter_scraper/resources/extractions.rbs +137 -0
  151. data/sig/x_twitter_scraper/resources/support/attachments.rbs +15 -0
  152. data/sig/x_twitter_scraper/resources/support.rbs +2 -0
  153. data/sig/x_twitter_scraper/resources/x/communities.rbs +28 -0
  154. data/sig/x_twitter_scraper/resources/x/lists.rbs +28 -0
  155. data/sig/x_twitter_scraper/resources/x/tweets.rbs +93 -1
  156. data/sig/x_twitter_scraper/resources/x/users.rbs +173 -3
  157. metadata +19 -1
@@ -110,21 +110,62 @@ module XTwitterScraper
110
110
  sig do
111
111
  params(
112
112
  id: String,
113
+ bio_contains: String,
113
114
  cursor: String,
115
+ has_location: T::Boolean,
116
+ has_website: T::Boolean,
117
+ location_contains: String,
118
+ max_followers: Integer,
119
+ max_following: Integer,
120
+ max_statuses: Integer,
121
+ min_account_age_days: Integer,
122
+ min_followers: Integer,
123
+ min_following: Integer,
124
+ min_statuses: Integer,
114
125
  page_size: Integer,
126
+ username_contains: String,
127
+ verified_only: T::Boolean,
128
+ verified_type: String,
115
129
  request_options: XTwitterScraper::RequestOptions::OrHash
116
130
  ).returns(XTwitterScraper::PaginatedUsers)
117
131
  end
118
132
  def get_favoriters(
119
133
  # Tweet ID to get favoriters
120
134
  id,
135
+ # Match any comma-separated or line-separated bio term, ignoring case.
136
+ bio_contains: nil,
121
137
  # Pagination cursor for favoriters
122
138
  cursor: nil,
123
- # Maximum user profiles requested from this page (20-200, default 200). The
124
- # response can contain fewer profiles because the source returned fewer or
125
- # remaining credits cover fewer results. Keep requesting next_cursor while
126
- # has_next_page is true. The deprecated limit and count aliases remain accepted.
139
+ # Only return profiles with a location.
140
+ has_location: nil,
141
+ # Only return profiles with a website.
142
+ has_website: nil,
143
+ # Match a location substring, ignoring case.
144
+ location_contains: nil,
145
+ # Maximum follower count. Missing counts pass this maximum.
146
+ max_followers: nil,
147
+ # Maximum following count.
148
+ max_following: nil,
149
+ # Maximum post count. maxPosts is also accepted.
150
+ max_statuses: nil,
151
+ # Minimum account age in whole days.
152
+ min_account_age_days: nil,
153
+ # Minimum follower count. Filtering happens before billing.
154
+ min_followers: nil,
155
+ # Minimum following count.
156
+ min_following: nil,
157
+ # Minimum post count. minPosts is also accepted.
158
+ min_statuses: nil,
159
+ # Maximum user profiles requested from this page (20-200, default 200). Source,
160
+ # filters, or credits can return fewer profiles. Keep requesting next_cursor while
161
+ # has_next_page is true. Deprecated aliases remain accepted.
127
162
  page_size: nil,
163
+ # Match a username substring, ignoring case.
164
+ username_contains: nil,
165
+ # Only return verified profiles.
166
+ verified_only: nil,
167
+ # Match the verification type exactly, ignoring case.
168
+ verified_type: nil,
128
169
  request_options: {}
129
170
  )
130
171
  end
@@ -134,23 +175,37 @@ module XTwitterScraper
134
175
  params(
135
176
  id: String,
136
177
  any_words: String,
178
+ blue_verified_only: T::Boolean,
179
+ card_name: String,
137
180
  cashtags: String,
138
181
  conversation_id: String,
139
182
  cursor: String,
140
183
  exact_phrase: String,
184
+ exclude_source: String,
141
185
  exclude_words: String,
142
186
  from_user: String,
187
+ geocode: String,
143
188
  hashtags: String,
144
189
  include_replies: T::Boolean,
145
190
  in_reply_to_tweet_id: String,
146
191
  language: String,
192
+ max_faves: Integer,
193
+ max_id: String,
194
+ max_quotes: Integer,
195
+ max_replies: Integer,
196
+ max_retweets: Integer,
147
197
  media_type:
148
198
  XTwitterScraper::X::TweetGetQuotesParams::MediaType::OrSymbol,
149
199
  mentioning: String,
200
+ min_bookmarks: Integer,
150
201
  min_faves: Integer,
151
202
  min_quotes: Integer,
152
203
  min_replies: Integer,
153
204
  min_retweets: Integer,
205
+ min_views: Integer,
206
+ native_retweets: T::Boolean,
207
+ near: String,
208
+ news: T::Boolean,
154
209
  page_size: Integer,
155
210
  quotes: XTwitterScraper::X::TweetGetQuotesParams::Quotes::OrSymbol,
156
211
  quotes_of_tweet_id: String,
@@ -159,13 +214,18 @@ module XTwitterScraper
159
214
  retweets:
160
215
  XTwitterScraper::X::TweetGetQuotesParams::Retweets::OrSymbol,
161
216
  retweets_of_tweet_id: String,
217
+ safe: T::Boolean,
162
218
  since_date: Date,
219
+ since_id: String,
163
220
  since_time: String,
221
+ source: String,
164
222
  to_user: String,
165
223
  until_date: Date,
166
224
  until_time: String,
167
225
  url: String,
168
226
  verified_only: T::Boolean,
227
+ within: String,
228
+ within_time: String,
169
229
  request_options: XTwitterScraper::RequestOptions::OrHash
170
230
  ).returns(XTwitterScraper::PaginatedTweets)
171
231
  end
@@ -175,6 +235,10 @@ module XTwitterScraper
175
235
  # Words or quoted phrases where any one can match. Separate with spaces, commas,
176
236
  # or lines.
177
237
  any_words: nil,
238
+ # Only return tweets from Blue-verified authors.
239
+ blue_verified_only: nil,
240
+ # Match the Tweet card name.
241
+ card_name: nil,
178
242
  # Cashtags separated by spaces, commas, or lines.
179
243
  cashtags: nil,
180
244
  # Conversation ID filter.
@@ -183,10 +247,14 @@ module XTwitterScraper
183
247
  cursor: nil,
184
248
  # Exact phrase to match.
185
249
  exact_phrase: nil,
250
+ # Exclude a source application.
251
+ exclude_source: nil,
186
252
  # Words or quoted phrases to exclude. Separate with spaces, commas, or lines.
187
253
  exclude_words: nil,
188
254
  # Filter by author username.
189
255
  from_user: nil,
256
+ # Match latitude, longitude, and radius.
257
+ geocode: nil,
190
258
  # Hashtags separated by spaces, commas, or lines.
191
259
  hashtags: nil,
192
260
  # Include reply quotes (default false)
@@ -195,10 +263,22 @@ module XTwitterScraper
195
263
  in_reply_to_tweet_id: nil,
196
264
  # Language code filter, e.g. en or tr.
197
265
  language: nil,
266
+ # Maximum likes threshold. maxLikes is also accepted.
267
+ max_faves: nil,
268
+ # Return Tweets older than this Tweet ID.
269
+ max_id: nil,
270
+ # Maximum quotes threshold.
271
+ max_quotes: nil,
272
+ # Maximum replies threshold.
273
+ max_replies: nil,
274
+ # Maximum retweets threshold.
275
+ max_retweets: nil,
198
276
  # Filter by media type.
199
277
  media_type: nil,
200
278
  # Filter tweets mentioning a username.
201
279
  mentioning: nil,
280
+ # Minimum bookmark count threshold.
281
+ min_bookmarks: nil,
202
282
  # Minimum likes threshold.
203
283
  min_faves: nil,
204
284
  # Minimum quote count threshold.
@@ -207,6 +287,14 @@ module XTwitterScraper
207
287
  min_replies: nil,
208
288
  # Minimum retweets threshold.
209
289
  min_retweets: nil,
290
+ # Minimum view count threshold.
291
+ min_views: nil,
292
+ # Only return native reposts.
293
+ native_retweets: nil,
294
+ # Match a place name.
295
+ near: nil,
296
+ # Only return news results.
297
+ news: nil,
210
298
  # Maximum page items (1-100, default 20). Source, filters, or credits can reduce
211
299
  # results. Continue while has_next_page is true. Deprecated limit and count
212
300
  # aliases remain accepted.
@@ -221,10 +309,16 @@ module XTwitterScraper
221
309
  retweets: nil,
222
310
  # Only retweets of this tweet ID.
223
311
  retweets_of_tweet_id: nil,
312
+ # Enable the safe-search filter.
313
+ safe: nil,
224
314
  # Start date in YYYY-MM-DD format.
225
315
  since_date: nil,
316
+ # Return Tweets newer than this Tweet ID.
317
+ since_id: nil,
226
318
  # Unix timestamp - return quotes posted after this time
227
319
  since_time: nil,
320
+ # Match the source application.
321
+ source: nil,
228
322
  # Filter replies sent to a username.
229
323
  to_user: nil,
230
324
  # End date in YYYY-MM-DD format.
@@ -235,36 +329,57 @@ module XTwitterScraper
235
329
  url: nil,
236
330
  # Only return tweets from verified authors.
237
331
  verified_only: nil,
332
+ # Set the radius for the near filter.
333
+ within: nil,
334
+ # Match Tweets inside a recent time window.
335
+ within_time: nil,
238
336
  request_options: {}
239
337
  )
240
338
  end
241
339
 
242
- # Returns direct replies. Complete mode merges available timeline views, supported
243
- # rankings, every forward cursor module, labeled hidden-content branches,
244
- # exact-parent time partitions scaled to the reported reply count, and search. It
245
- # separates nested replies and returns 424 below 80% coverage.
340
+ # Returns direct replies. Omit mode for automatic maximum coverage with resumable
341
+ # pagination. Complete mode returns nested replies, diagnostics, and 424 when
342
+ # direct coverage stays below 80%.
246
343
  sig do
247
344
  params(
248
345
  id: String,
249
346
  any_words: String,
347
+ blue_verified_only: T::Boolean,
348
+ card_name: String,
250
349
  cashtags: String,
251
350
  conversation_id: String,
252
351
  cursor: String,
253
352
  exact_phrase: String,
353
+ exclude_original_author: T::Boolean,
354
+ exclude_source: String,
254
355
  exclude_words: String,
255
356
  from_user: String,
357
+ geocode: String,
256
358
  hashtags: String,
359
+ has_media_only: T::Boolean,
360
+ include_original_post: T::Boolean,
257
361
  in_reply_to_tweet_id: String,
258
362
  language: String,
259
363
  limit: Integer,
364
+ max_depth: Integer,
365
+ max_faves: Integer,
366
+ max_id: String,
367
+ max_quotes: Integer,
368
+ max_replies: Integer,
369
+ max_retweets: Integer,
260
370
  media_type:
261
371
  XTwitterScraper::X::TweetGetRepliesParams::MediaType::OrSymbol,
262
372
  mentioning: String,
373
+ min_bookmarks: Integer,
263
374
  min_faves: Integer,
264
375
  min_quotes: Integer,
265
376
  min_replies: Integer,
266
377
  min_retweets: Integer,
378
+ min_views: Integer,
267
379
  mode: XTwitterScraper::X::TweetGetRepliesParams::Mode::OrSymbol,
380
+ native_retweets: T::Boolean,
381
+ near: String,
382
+ news: T::Boolean,
268
383
  page_size: Integer,
269
384
  quotes: XTwitterScraper::X::TweetGetRepliesParams::Quotes::OrSymbol,
270
385
  quotes_of_tweet_id: String,
@@ -273,13 +388,20 @@ module XTwitterScraper
273
388
  retweets:
274
389
  XTwitterScraper::X::TweetGetRepliesParams::Retweets::OrSymbol,
275
390
  retweets_of_tweet_id: String,
391
+ safe: T::Boolean,
392
+ scope: XTwitterScraper::X::TweetGetRepliesParams::Scope::OrSymbol,
276
393
  since_date: Date,
394
+ since_id: String,
277
395
  since_time: String,
396
+ sort: XTwitterScraper::X::TweetGetRepliesParams::Sort::OrSymbol,
397
+ source: String,
278
398
  to_user: String,
279
399
  until_date: Date,
280
400
  until_time: String,
281
401
  url: String,
282
402
  verified_only: T::Boolean,
403
+ within: String,
404
+ within_time: String,
283
405
  request_options: XTwitterScraper::RequestOptions::OrHash
284
406
  ).returns(XTwitterScraper::Models::X::TweetGetRepliesResponse)
285
407
  end
@@ -289,32 +411,61 @@ module XTwitterScraper
289
411
  # Words or quoted phrases where any one can match. Separate with spaces, commas,
290
412
  # or lines.
291
413
  any_words: nil,
414
+ # Only return tweets from Blue-verified authors.
415
+ blue_verified_only: nil,
416
+ # Match the Tweet card name.
417
+ card_name: nil,
292
418
  # Cashtags separated by spaces, commas, or lines.
293
419
  cashtags: nil,
294
420
  # Conversation ID filter.
295
421
  conversation_id: nil,
296
- # Pagination cursor for tweet replies
422
+ # Cursor from the previous response. Xquik cursors resume automatic coverage.
423
+ # Existing unprefixed cursors keep legacy standard behavior.
297
424
  cursor: nil,
298
425
  # Exact phrase to match.
299
426
  exact_phrase: nil,
427
+ # Exclude replies written by the source-post author.
428
+ exclude_original_author: nil,
429
+ # Exclude a source application.
430
+ exclude_source: nil,
300
431
  # Words or quoted phrases to exclude. Separate with spaces, commas, or lines.
301
432
  exclude_words: nil,
302
433
  # Filter by author username.
303
434
  from_user: nil,
435
+ # Match latitude, longitude, and radius.
436
+ geocode: nil,
304
437
  # Hashtags separated by spaces, commas, or lines.
305
438
  hashtags: nil,
439
+ # Only return replies containing media.
440
+ has_media_only: nil,
441
+ # Include the source post and count it toward limit.
442
+ include_original_post: nil,
306
443
  # Only replies to this tweet ID.
307
444
  in_reply_to_tweet_id: nil,
308
445
  # Language code filter, e.g. en or tr.
309
446
  language: nil,
310
- # With mode=complete, maximum combined direct and nested reply rows (1-25000).
311
- # Without complete mode, this is the deprecated pageSize alias and uses the normal
312
- # 1-100 page range.
447
+ # With mode=complete, maximum combined direct and nested reply rows (1-25000,
448
+ # default 25000). Automatic pages accept 1-300. Standard pages accept 1-100.
449
+ # Prefer pageSize outside complete mode.
313
450
  limit: nil,
451
+ # Maximum reply depth from the source post.
452
+ max_depth: nil,
453
+ # Maximum likes threshold. maxLikes is also accepted.
454
+ max_faves: nil,
455
+ # Return Tweets older than this Tweet ID.
456
+ max_id: nil,
457
+ # Maximum quotes threshold.
458
+ max_quotes: nil,
459
+ # Maximum replies threshold.
460
+ max_replies: nil,
461
+ # Maximum retweets threshold.
462
+ max_retweets: nil,
314
463
  # Filter by media type.
315
464
  media_type: nil,
316
465
  # Filter tweets mentioning a username.
317
466
  mentioning: nil,
467
+ # Minimum bookmark count threshold.
468
+ min_bookmarks: nil,
318
469
  # Minimum likes threshold.
319
470
  min_faves: nil,
320
471
  # Minimum quote count threshold.
@@ -323,12 +474,21 @@ module XTwitterScraper
323
474
  min_replies: nil,
324
475
  # Minimum retweets threshold.
325
476
  min_retweets: nil,
326
- # Set complete for maximum-coverage collection. Complete mode accepts only limit.
327
- # Remove cursor, pageSize, count, time ranges, and tweet filters.
477
+ # Minimum view count threshold.
478
+ min_views: nil,
479
+ # Optional advanced override. Omit mode for automatic maximum direct reply
480
+ # coverage with pagination. Standard keeps legacy pagination. Complete returns
481
+ # direct and nested replies with diagnostics, scope, depth, sorting, and
482
+ # original-post controls.
328
483
  mode: nil,
329
- # Maximum page items (1-100, default 20). Source, filters, or credits can reduce
330
- # results. Continue while has_next_page is true. Deprecated limit and count
331
- # aliases remain accepted.
484
+ # Only return native reposts.
485
+ native_retweets: nil,
486
+ # Match a place name.
487
+ near: nil,
488
+ # Only return news results.
489
+ news: nil,
490
+ # Automatic pages accept 1-300 Tweets. Standard pages keep 1-100. Default 20.
491
+ # Continue while has_next_page is true. Deprecated aliases remain accepted.
332
492
  page_size: nil,
333
493
  # Quote mode.
334
494
  quotes: nil,
@@ -340,10 +500,20 @@ module XTwitterScraper
340
500
  retweets: nil,
341
501
  # Only retweets of this tweet ID.
342
502
  retweets_of_tweet_id: nil,
503
+ # Enable the safe-search filter.
504
+ safe: nil,
505
+ # Select all replies, direct replies, or nested replies.
506
+ scope: nil,
343
507
  # Start date in YYYY-MM-DD format.
344
508
  since_date: nil,
509
+ # Return Tweets newer than this Tweet ID.
510
+ since_id: nil,
345
511
  # Unix timestamp - return replies posted after this time
346
512
  since_time: nil,
513
+ # Sort the selected replies before applying limit.
514
+ sort: nil,
515
+ # Match the source application.
516
+ source: nil,
347
517
  # Filter replies sent to a username.
348
518
  to_user: nil,
349
519
  # End date in YYYY-MM-DD format.
@@ -354,6 +524,10 @@ module XTwitterScraper
354
524
  url: nil,
355
525
  # Only return tweets from verified authors.
356
526
  verified_only: nil,
527
+ # Set the radius for the near filter.
528
+ within: nil,
529
+ # Match Tweets inside a recent time window.
530
+ within_time: nil,
357
531
  request_options: {}
358
532
  )
359
533
  end
@@ -362,21 +536,62 @@ module XTwitterScraper
362
536
  sig do
363
537
  params(
364
538
  id: String,
539
+ bio_contains: String,
365
540
  cursor: String,
541
+ has_location: T::Boolean,
542
+ has_website: T::Boolean,
543
+ location_contains: String,
544
+ max_followers: Integer,
545
+ max_following: Integer,
546
+ max_statuses: Integer,
547
+ min_account_age_days: Integer,
548
+ min_followers: Integer,
549
+ min_following: Integer,
550
+ min_statuses: Integer,
366
551
  page_size: Integer,
552
+ username_contains: String,
553
+ verified_only: T::Boolean,
554
+ verified_type: String,
367
555
  request_options: XTwitterScraper::RequestOptions::OrHash
368
556
  ).returns(XTwitterScraper::PaginatedUsers)
369
557
  end
370
558
  def get_retweeters(
371
559
  # Tweet ID to get retweeters
372
560
  id,
561
+ # Match any comma-separated or line-separated bio term, ignoring case.
562
+ bio_contains: nil,
373
563
  # Pagination cursor for retweeters
374
564
  cursor: nil,
375
- # Maximum user profiles requested from this page (20-200, default 200). The
376
- # response can contain fewer profiles because the source returned fewer or
377
- # remaining credits cover fewer results. Keep requesting next_cursor while
378
- # has_next_page is true. The deprecated limit and count aliases remain accepted.
565
+ # Only return profiles with a location.
566
+ has_location: nil,
567
+ # Only return profiles with a website.
568
+ has_website: nil,
569
+ # Match a location substring, ignoring case.
570
+ location_contains: nil,
571
+ # Maximum follower count. Missing counts pass this maximum.
572
+ max_followers: nil,
573
+ # Maximum following count.
574
+ max_following: nil,
575
+ # Maximum post count. maxPosts is also accepted.
576
+ max_statuses: nil,
577
+ # Minimum account age in whole days.
578
+ min_account_age_days: nil,
579
+ # Minimum follower count. Filtering happens before billing.
580
+ min_followers: nil,
581
+ # Minimum following count.
582
+ min_following: nil,
583
+ # Minimum post count. minPosts is also accepted.
584
+ min_statuses: nil,
585
+ # Maximum user profiles requested from this page (20-200, default 200). Source,
586
+ # filters, or credits can return fewer profiles. Keep requesting next_cursor while
587
+ # has_next_page is true. Deprecated aliases remain accepted.
379
588
  page_size: nil,
589
+ # Match a username substring, ignoring case.
590
+ username_contains: nil,
591
+ # Only return verified profiles.
592
+ verified_only: nil,
593
+ # Match the verification type exactly, ignoring case.
594
+ verified_type: nil,
380
595
  request_options: {}
381
596
  )
382
597
  end
@@ -403,31 +618,46 @@ module XTwitterScraper
403
618
  )
404
619
  end
405
620
 
406
- # Search tweets by query, Tweet ID, X status URL, or account date window
621
+ # No-mode search maximizes coverage.
407
622
  sig do
408
623
  params(
409
624
  q: String,
410
625
  advanced_query: String,
411
626
  any_words: String,
627
+ blue_verified_only: T::Boolean,
412
628
  bounding_box: String,
629
+ card_name: String,
413
630
  cashtags: String,
414
631
  conversation_id: String,
415
632
  cursor: String,
416
633
  exact_phrase: String,
634
+ exclude_source: String,
417
635
  exclude_words: String,
418
636
  from_user: String,
637
+ geocode: String,
419
638
  hashtags: String,
420
639
  in_reply_to_tweet_id: String,
421
640
  language: String,
422
641
  limit: Integer,
423
642
  list_id: String,
643
+ max_faves: Integer,
644
+ max_id: String,
645
+ max_quotes: Integer,
646
+ max_replies: Integer,
647
+ max_retweets: Integer,
424
648
  media_type:
425
649
  XTwitterScraper::X::TweetSearchParams::MediaType::OrSymbol,
426
650
  mentioning: String,
651
+ min_bookmarks: Integer,
427
652
  min_faves: Integer,
428
653
  min_quotes: Integer,
429
654
  min_replies: Integer,
430
655
  min_retweets: Integer,
656
+ min_views: Integer,
657
+ mode: XTwitterScraper::X::TweetSearchParams::Mode::OrSymbol,
658
+ native_retweets: T::Boolean,
659
+ near: String,
660
+ news: T::Boolean,
431
661
  place: String,
432
662
  place_country: String,
433
663
  point_radius: String,
@@ -438,55 +668,80 @@ module XTwitterScraper
438
668
  replies: XTwitterScraper::X::TweetSearchParams::Replies::OrSymbol,
439
669
  retweets: XTwitterScraper::X::TweetSearchParams::Retweets::OrSymbol,
440
670
  retweets_of_tweet_id: String,
671
+ safe: T::Boolean,
441
672
  since_date: Date,
673
+ since_id: String,
442
674
  since_time: String,
675
+ source: String,
443
676
  to_user: String,
444
677
  until_date: Date,
445
678
  until_time: String,
446
679
  url: String,
447
680
  verified_only: T::Boolean,
681
+ within: String,
682
+ within_time: String,
448
683
  request_options: XTwitterScraper::RequestOptions::OrHash
449
- ).returns(XTwitterScraper::PaginatedTweets)
684
+ ).returns(XTwitterScraper::Models::X::TweetSearchResponse::Variants)
450
685
  end
451
686
  def search(
452
- # Search query (keywords,
687
+ # Query, Tweet ID, or status URL. Valid inline bounds apply per page.
453
688
  q:,
454
689
  # Raw advanced search query appended as-is.
455
690
  advanced_query: nil,
456
691
  # Words or quoted phrases where any one can match. Separate with spaces, commas,
457
692
  # or lines.
458
693
  any_words: nil,
694
+ # Only return tweets from Blue-verified authors.
695
+ blue_verified_only: nil,
459
696
  # Geo bounding box, e.g. -74.1 40.6 -73.9 40.8.
460
697
  bounding_box: nil,
698
+ # Match the Tweet card name.
699
+ card_name: nil,
461
700
  # Cashtags separated by spaces, commas, or lines.
462
701
  cashtags: nil,
463
702
  # Conversation ID filter.
464
703
  conversation_id: nil,
465
- # Pagination cursor from previous response
704
+ # Cursor from the previous response. Xquik cursors resume automatic coverage.
705
+ # Existing unprefixed cursors keep legacy standard behavior.
466
706
  cursor: nil,
467
707
  # Exact phrase to match.
468
708
  exact_phrase: nil,
709
+ # Exclude a source application.
710
+ exclude_source: nil,
469
711
  # Words or quoted phrases to exclude. Separate with spaces, commas, or lines.
470
712
  exclude_words: nil,
471
713
  # Filter by author username.
472
714
  from_user: nil,
715
+ # Match latitude, longitude, and radius.
716
+ geocode: nil,
473
717
  # Hashtags separated by spaces, commas, or lines.
474
718
  hashtags: nil,
475
719
  # Only replies to this tweet ID.
476
720
  in_reply_to_tweet_id: nil,
477
721
  # Language code filter, e.g. en or tr.
478
722
  language: nil,
479
- # Max tweets to return (server paginates internally). Omit for single page (~20).
480
- # This is an upper bound for paid authenticated calls: remaining credits can
481
- # reduce the returned page size, and zero affordable results returns 402
482
- # insufficient_credits.
723
+ # Result upper bound. Omit it for the existing 20-row page size. Explicit coverage
724
+ # defaults to 2000 and allows 10000. For paid requests, remaining credits can
725
+ # reduce results. Zero affordable results returns 402.
483
726
  limit: nil,
484
727
  # Search within a list ID.
485
728
  list_id: nil,
729
+ # Maximum likes threshold. maxLikes is also accepted.
730
+ max_faves: nil,
731
+ # Return Tweets older than this Tweet ID.
732
+ max_id: nil,
733
+ # Maximum quotes threshold.
734
+ max_quotes: nil,
735
+ # Maximum replies threshold.
736
+ max_replies: nil,
737
+ # Maximum retweets threshold.
738
+ max_retweets: nil,
486
739
  # Filter by media type.
487
740
  media_type: nil,
488
741
  # Filter tweets mentioning a username.
489
742
  mentioning: nil,
743
+ # Minimum bookmark count threshold.
744
+ min_bookmarks: nil,
490
745
  # Minimum likes threshold.
491
746
  min_faves: nil,
492
747
  # Minimum quote count threshold.
@@ -495,6 +750,17 @@ module XTwitterScraper
495
750
  min_replies: nil,
496
751
  # Minimum retweets threshold.
497
752
  min_retweets: nil,
753
+ # Minimum view count threshold.
754
+ min_views: nil,
755
+ # Omit mode for resumable maximum coverage. Standard keeps legacy pagination.
756
+ # Coverage returns diagnostics once and rejects cursors.
757
+ mode: nil,
758
+ # Only return native reposts.
759
+ native_retweets: nil,
760
+ # Match a place name.
761
+ near: nil,
762
+ # Only return news results.
763
+ news: nil,
498
764
  # Search within a place ID.
499
765
  place: nil,
500
766
  # Search within a country code.
@@ -513,20 +779,30 @@ module XTwitterScraper
513
779
  retweets: nil,
514
780
  # Only retweets of this tweet ID.
515
781
  retweets_of_tweet_id: nil,
782
+ # Enable the safe-search filter.
783
+ safe: nil,
516
784
  # Start date in YYYY-MM-DD format.
517
785
  since_date: nil,
518
- # ISO 8601 timestamp - only return tweets after this time
786
+ # Return Tweets newer than this Tweet ID.
787
+ since_id: nil,
788
+ # Inclusive ISO bound.
519
789
  since_time: nil,
790
+ # Match the source application.
791
+ source: nil,
520
792
  # Filter replies sent to a username.
521
793
  to_user: nil,
522
794
  # End date in YYYY-MM-DD format.
523
795
  until_date: nil,
524
- # ISO 8601 timestamp - only return tweets before this time
796
+ # Exclusive ISO bound.
525
797
  until_time: nil,
526
798
  # URL substring or domain filter.
527
799
  url: nil,
528
800
  # Only return tweets from verified authors.
529
801
  verified_only: nil,
802
+ # Set the radius for the near filter.
803
+ within: nil,
804
+ # Match Tweets inside a recent time window.
805
+ within_time: nil,
530
806
  request_options: {}
531
807
  )
532
808
  end