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
@@ -94,21 +94,51 @@ module XTwitterScraper
94
94
  #
95
95
  # List followers of a user
96
96
  #
97
- # @overload retrieve_followers(id, after: nil, cursor: nil, limit: nil, page_size: nil, request_options: {})
97
+ # @overload retrieve_followers(id, after: nil, bio_contains: nil, cursor: nil, has_location: nil, has_website: nil, limit: nil, location_contains: nil, max_followers: nil, max_following: nil, max_statuses: nil, min_account_age_days: nil, min_followers: nil, min_following: nil, min_statuses: nil, mode: nil, page_size: nil, username_contains: nil, verified_only: nil, verified_type: nil, request_options: {})
98
98
  #
99
99
  # @param id [String] Target user ID or username for follower lookup.
100
100
  #
101
101
  # @param after [String] Legacy cursor alias. Prefer cursor.
102
102
  #
103
- # @param cursor [String] Pagination cursor for followers list
103
+ # @param bio_contains [String] Match any comma-separated or line-separated bio term, ignoring case.
104
104
  #
105
- # @param limit [Integer] Legacy integer page size alias for following lists. Prefer pageSize.
105
+ # @param cursor [String] Cursor from the previous response. Xquik cursors resume automatic coverage. Exis
106
106
  #
107
- # @param page_size [Integer] Maximum user profiles requested from this page (20-200, default 200). The respon
107
+ # @param has_location [Boolean] Only return profiles with a location.
108
+ #
109
+ # @param has_website [Boolean] Only return profiles with a website.
110
+ #
111
+ # @param limit [Integer] Legacy page-size alias outside explicit coverage mode. Coverage accepts 1-10000.
112
+ #
113
+ # @param location_contains [String] Match a location substring, ignoring case.
114
+ #
115
+ # @param max_followers [Integer] Maximum follower count. Missing counts pass this maximum.
116
+ #
117
+ # @param max_following [Integer] Maximum following count.
118
+ #
119
+ # @param max_statuses [Integer] Maximum post count. maxPosts is also accepted.
120
+ #
121
+ # @param min_account_age_days [Integer] Minimum account age in whole days.
122
+ #
123
+ # @param min_followers [Integer] Minimum follower count. Filtering happens before billing.
124
+ #
125
+ # @param min_following [Integer] Minimum following count.
126
+ #
127
+ # @param min_statuses [Integer] Minimum post count. minPosts is also accepted.
128
+ #
129
+ # @param mode [Symbol, XTwitterScraper::Models::X::UserRetrieveFollowersParams::Mode] Omit mode for resumable maximum coverage. Standard keeps legacy pagination. Cove
130
+ #
131
+ # @param page_size [Integer] Maximum user profiles: automatic 300; standard 200. Sources return fewer profile
132
+ #
133
+ # @param username_contains [String] Match a username substring, ignoring case.
134
+ #
135
+ # @param verified_only [Boolean] Only return verified profiles.
136
+ #
137
+ # @param verified_type [String] Match the verification type exactly, ignoring case.
108
138
  #
109
139
  # @param request_options [XTwitterScraper::RequestOptions, Hash{Symbol=>Object}, nil]
110
140
  #
111
- # @return [XTwitterScraper::Models::PaginatedUsers]
141
+ # @return [XTwitterScraper::Models::PaginatedUsers, XTwitterScraper::Models::X::UserRetrieveFollowersResponse::UserListCoverageResponse]
112
142
  #
113
143
  # @see XTwitterScraper::Models::X::UserRetrieveFollowersParams
114
144
  def retrieve_followers(id, params = {})
@@ -117,8 +147,24 @@ module XTwitterScraper
117
147
  @client.request(
118
148
  method: :get,
119
149
  path: ["x/users/%1$s/followers", id],
120
- query: query.transform_keys(page_size: "pageSize"),
121
- model: XTwitterScraper::PaginatedUsers,
150
+ query: query.transform_keys(
151
+ bio_contains: "bioContains",
152
+ has_location: "hasLocation",
153
+ has_website: "hasWebsite",
154
+ location_contains: "locationContains",
155
+ max_followers: "maxFollowers",
156
+ max_following: "maxFollowing",
157
+ max_statuses: "maxStatuses",
158
+ min_account_age_days: "minAccountAgeDays",
159
+ min_followers: "minFollowers",
160
+ min_following: "minFollowing",
161
+ min_statuses: "minStatuses",
162
+ page_size: "pageSize",
163
+ username_contains: "usernameContains",
164
+ verified_only: "verifiedOnly",
165
+ verified_type: "verifiedType"
166
+ ),
167
+ model: XTwitterScraper::Models::X::UserRetrieveFollowersResponse,
122
168
  options: options
123
169
  )
124
170
  end
@@ -129,13 +175,41 @@ module XTwitterScraper
129
175
  #
130
176
  # List mutual followers between you and a user
131
177
  #
132
- # @overload retrieve_followers_you_know(id, cursor: nil, page_size: nil, request_options: {})
178
+ # @overload retrieve_followers_you_know(id, bio_contains: nil, cursor: nil, has_location: nil, has_website: nil, location_contains: nil, max_followers: nil, max_following: nil, max_statuses: nil, min_account_age_days: nil, min_followers: nil, min_following: nil, min_statuses: nil, page_size: nil, username_contains: nil, verified_only: nil, verified_type: nil, request_options: {})
133
179
  #
134
180
  # @param id [String] User ID for followers-you-know lookup
135
181
  #
182
+ # @param bio_contains [String] Match any comma-separated or line-separated bio term, ignoring case.
183
+ #
136
184
  # @param cursor [String] Pagination cursor for followers-you-know
137
185
  #
138
- # @param page_size [Integer] Maximum user profiles requested from this page (20-200, default 200). The respon
186
+ # @param has_location [Boolean] Only return profiles with a location.
187
+ #
188
+ # @param has_website [Boolean] Only return profiles with a website.
189
+ #
190
+ # @param location_contains [String] Match a location substring, ignoring case.
191
+ #
192
+ # @param max_followers [Integer] Maximum follower count. Missing counts pass this maximum.
193
+ #
194
+ # @param max_following [Integer] Maximum following count.
195
+ #
196
+ # @param max_statuses [Integer] Maximum post count. maxPosts is also accepted.
197
+ #
198
+ # @param min_account_age_days [Integer] Minimum account age in whole days.
199
+ #
200
+ # @param min_followers [Integer] Minimum follower count. Filtering happens before billing.
201
+ #
202
+ # @param min_following [Integer] Minimum following count.
203
+ #
204
+ # @param min_statuses [Integer] Minimum post count. minPosts is also accepted.
205
+ #
206
+ # @param page_size [Integer] Maximum user profiles requested from this page (20-200, default 200). Source, fi
207
+ #
208
+ # @param username_contains [String] Match a username substring, ignoring case.
209
+ #
210
+ # @param verified_only [Boolean] Only return verified profiles.
211
+ #
212
+ # @param verified_type [String] Match the verification type exactly, ignoring case.
139
213
  #
140
214
  # @param request_options [XTwitterScraper::RequestOptions, Hash{Symbol=>Object}, nil]
141
215
  #
@@ -148,7 +222,23 @@ module XTwitterScraper
148
222
  @client.request(
149
223
  method: :get,
150
224
  path: ["x/users/%1$s/followers-you-know", id],
151
- query: query.transform_keys(page_size: "pageSize"),
225
+ query: query.transform_keys(
226
+ bio_contains: "bioContains",
227
+ has_location: "hasLocation",
228
+ has_website: "hasWebsite",
229
+ location_contains: "locationContains",
230
+ max_followers: "maxFollowers",
231
+ max_following: "maxFollowing",
232
+ max_statuses: "maxStatuses",
233
+ min_account_age_days: "minAccountAgeDays",
234
+ min_followers: "minFollowers",
235
+ min_following: "minFollowing",
236
+ min_statuses: "minStatuses",
237
+ page_size: "pageSize",
238
+ username_contains: "usernameContains",
239
+ verified_only: "verifiedOnly",
240
+ verified_type: "verifiedType"
241
+ ),
152
242
  model: XTwitterScraper::PaginatedUsers,
153
243
  options: options
154
244
  )
@@ -159,21 +249,51 @@ module XTwitterScraper
159
249
  #
160
250
  # List accounts a user follows
161
251
  #
162
- # @overload retrieve_following(id, after: nil, cursor: nil, limit: nil, page_size: nil, request_options: {})
252
+ # @overload retrieve_following(id, after: nil, bio_contains: nil, cursor: nil, has_location: nil, has_website: nil, limit: nil, location_contains: nil, max_followers: nil, max_following: nil, max_statuses: nil, min_account_age_days: nil, min_followers: nil, min_following: nil, min_statuses: nil, mode: nil, page_size: nil, username_contains: nil, verified_only: nil, verified_type: nil, request_options: {})
163
253
  #
164
254
  # @param id [String] User ID or username for following lookup
165
255
  #
166
256
  # @param after [String] Deprecated following cursor alias. Prefer cursor.
167
257
  #
168
- # @param cursor [String] Pagination cursor for following list
258
+ # @param bio_contains [String] Match any comma-separated or line-separated bio term, ignoring case.
259
+ #
260
+ # @param cursor [String] Cursor from the previous response. Xquik cursors resume automatic coverage. Exis
261
+ #
262
+ # @param has_location [Boolean] Only return profiles with a location.
263
+ #
264
+ # @param has_website [Boolean] Only return profiles with a website.
265
+ #
266
+ # @param limit [Integer] Legacy page-size alias outside explicit coverage mode. Coverage accepts 1-10000.
267
+ #
268
+ # @param location_contains [String] Match a location substring, ignoring case.
269
+ #
270
+ # @param max_followers [Integer] Maximum follower count. Missing counts pass this maximum.
271
+ #
272
+ # @param max_following [Integer] Maximum following count.
273
+ #
274
+ # @param max_statuses [Integer] Maximum post count. maxPosts is also accepted.
275
+ #
276
+ # @param min_account_age_days [Integer] Minimum account age in whole days.
277
+ #
278
+ # @param min_followers [Integer] Minimum follower count. Filtering happens before billing.
279
+ #
280
+ # @param min_following [Integer] Minimum following count.
281
+ #
282
+ # @param min_statuses [Integer] Minimum post count. minPosts is also accepted.
169
283
  #
170
- # @param limit [Integer] Legacy page size alias. Prefer pageSize.
284
+ # @param mode [Symbol, XTwitterScraper::Models::X::UserRetrieveFollowingParams::Mode] Omit mode for resumable maximum coverage. Standard keeps legacy pagination. Cove
171
285
  #
172
- # @param page_size [Integer] Maximum user profiles requested from this page (20-200, default 200). The respon
286
+ # @param page_size [Integer] Maximum user profiles: automatic 300; standard 200. Sources return fewer profile
287
+ #
288
+ # @param username_contains [String] Match a username substring, ignoring case.
289
+ #
290
+ # @param verified_only [Boolean] Only return verified profiles.
291
+ #
292
+ # @param verified_type [String] Match the verification type exactly, ignoring case.
173
293
  #
174
294
  # @param request_options [XTwitterScraper::RequestOptions, Hash{Symbol=>Object}, nil]
175
295
  #
176
- # @return [XTwitterScraper::Models::PaginatedUsers]
296
+ # @return [XTwitterScraper::Models::PaginatedUsers, XTwitterScraper::Models::X::UserRetrieveFollowingResponse::UserListCoverageResponse]
177
297
  #
178
298
  # @see XTwitterScraper::Models::X::UserRetrieveFollowingParams
179
299
  def retrieve_following(id, params = {})
@@ -182,8 +302,24 @@ module XTwitterScraper
182
302
  @client.request(
183
303
  method: :get,
184
304
  path: ["x/users/%1$s/following", id],
185
- query: query.transform_keys(page_size: "pageSize"),
186
- model: XTwitterScraper::PaginatedUsers,
305
+ query: query.transform_keys(
306
+ bio_contains: "bioContains",
307
+ has_location: "hasLocation",
308
+ has_website: "hasWebsite",
309
+ location_contains: "locationContains",
310
+ max_followers: "maxFollowers",
311
+ max_following: "maxFollowing",
312
+ max_statuses: "maxStatuses",
313
+ min_account_age_days: "minAccountAgeDays",
314
+ min_followers: "minFollowers",
315
+ min_following: "minFollowing",
316
+ min_statuses: "minStatuses",
317
+ page_size: "pageSize",
318
+ username_contains: "usernameContains",
319
+ verified_only: "verifiedOnly",
320
+ verified_type: "verifiedType"
321
+ ),
322
+ model: XTwitterScraper::Models::X::UserRetrieveFollowingResponse,
187
323
  options: options
188
324
  )
189
325
  end
@@ -193,12 +329,16 @@ module XTwitterScraper
193
329
  #
194
330
  # List tweets liked by a user
195
331
  #
196
- # @overload retrieve_likes(id, any_words: nil, cashtags: nil, conversation_id: nil, cursor: nil, exact_phrase: nil, exclude_words: nil, from_user: nil, hashtags: nil, in_reply_to_tweet_id: nil, language: nil, media_type: nil, mentioning: nil, min_faves: nil, min_quotes: nil, min_replies: nil, min_retweets: nil, page_size: nil, quotes: nil, quotes_of_tweet_id: nil, replies: nil, retweets: nil, retweets_of_tweet_id: nil, since_date: nil, to_user: nil, until_date: nil, url: nil, verified_only: nil, request_options: {})
332
+ # @overload retrieve_likes(id, any_words: nil, blue_verified_only: nil, card_name: nil, cashtags: nil, conversation_id: nil, cursor: nil, exact_phrase: nil, exclude_source: nil, exclude_words: nil, from_user: nil, geocode: nil, hashtags: nil, in_reply_to_tweet_id: nil, language: nil, max_faves: nil, max_id: nil, max_quotes: nil, max_replies: nil, max_retweets: nil, media_type: nil, mentioning: nil, min_bookmarks: nil, min_faves: nil, min_quotes: nil, min_replies: nil, min_retweets: nil, min_views: nil, native_retweets: nil, near: nil, news: nil, page_size: nil, quotes: nil, quotes_of_tweet_id: nil, replies: nil, retweets: nil, retweets_of_tweet_id: nil, safe: nil, since_date: nil, since_id: nil, source: nil, to_user: nil, until_date: nil, url: nil, verified_only: nil, within: nil, within_time: nil, request_options: {})
197
333
  #
198
334
  # @param id [String] User ID or username
199
335
  #
200
336
  # @param any_words [String] Words or quoted phrases where any one can match. Separate with spaces, commas, o
201
337
  #
338
+ # @param blue_verified_only [Boolean] Only return tweets from Blue-verified authors.
339
+ #
340
+ # @param card_name [String] Match the Tweet card name.
341
+ #
202
342
  # @param cashtags [String] Cashtags separated by spaces, commas, or lines.
203
343
  #
204
344
  # @param conversation_id [String] Conversation ID filter.
@@ -207,20 +347,36 @@ module XTwitterScraper
207
347
  #
208
348
  # @param exact_phrase [String] Exact phrase to match.
209
349
  #
350
+ # @param exclude_source [String] Exclude a source application.
351
+ #
210
352
  # @param exclude_words [String] Words or quoted phrases to exclude. Separate with spaces, commas, or lines.
211
353
  #
212
354
  # @param from_user [String] Filter by author username.
213
355
  #
356
+ # @param geocode [String] Match latitude, longitude, and radius.
357
+ #
214
358
  # @param hashtags [String] Hashtags separated by spaces, commas, or lines.
215
359
  #
216
360
  # @param in_reply_to_tweet_id [String] Only replies to this tweet ID.
217
361
  #
218
362
  # @param language [String] Language code filter, e.g. en or tr.
219
363
  #
364
+ # @param max_faves [Integer] Maximum likes threshold. maxLikes is also accepted.
365
+ #
366
+ # @param max_id [String] Return Tweets older than this Tweet ID.
367
+ #
368
+ # @param max_quotes [Integer] Maximum quotes threshold.
369
+ #
370
+ # @param max_replies [Integer] Maximum replies threshold.
371
+ #
372
+ # @param max_retweets [Integer] Maximum retweets threshold.
373
+ #
220
374
  # @param media_type [Symbol, XTwitterScraper::Models::X::UserRetrieveLikesParams::MediaType] Filter by media type.
221
375
  #
222
376
  # @param mentioning [String] Filter tweets mentioning a username.
223
377
  #
378
+ # @param min_bookmarks [Integer] Minimum bookmark count threshold.
379
+ #
224
380
  # @param min_faves [Integer] Minimum likes threshold.
225
381
  #
226
382
  # @param min_quotes [Integer] Minimum quote count threshold.
@@ -229,6 +385,14 @@ module XTwitterScraper
229
385
  #
230
386
  # @param min_retweets [Integer] Minimum retweets threshold.
231
387
  #
388
+ # @param min_views [Integer] Minimum view count threshold.
389
+ #
390
+ # @param native_retweets [Boolean] Only return native reposts.
391
+ #
392
+ # @param near [String] Match a place name.
393
+ #
394
+ # @param news [Boolean] Only return news results.
395
+ #
232
396
  # @param page_size [Integer] Maximum page items (1-100, default 20). Source, filters, or credits can reduce r
233
397
  #
234
398
  # @param quotes [Symbol, XTwitterScraper::Models::X::UserRetrieveLikesParams::Quotes] Quote mode.
@@ -241,8 +405,14 @@ module XTwitterScraper
241
405
  #
242
406
  # @param retweets_of_tweet_id [String] Only retweets of this tweet ID.
243
407
  #
408
+ # @param safe [Boolean] Enable the safe-search filter.
409
+ #
244
410
  # @param since_date [Date] Start date in YYYY-MM-DD format.
245
411
  #
412
+ # @param since_id [String] Return Tweets newer than this Tweet ID.
413
+ #
414
+ # @param source [String] Match the source application.
415
+ #
246
416
  # @param to_user [String] Filter replies sent to a username.
247
417
  #
248
418
  # @param until_date [Date] End date in YYYY-MM-DD format.
@@ -251,6 +421,10 @@ module XTwitterScraper
251
421
  #
252
422
  # @param verified_only [Boolean] Only return tweets from verified authors.
253
423
  #
424
+ # @param within [String] Set the radius for the near filter.
425
+ #
426
+ # @param within_time [String] Match Tweets inside a recent time window.
427
+ #
254
428
  # @param request_options [XTwitterScraper::RequestOptions, Hash{Symbol=>Object}, nil]
255
429
  #
256
430
  # @return [XTwitterScraper::Models::PaginatedTweets]
@@ -264,23 +438,36 @@ module XTwitterScraper
264
438
  path: ["x/users/%1$s/likes", id],
265
439
  query: query.transform_keys(
266
440
  any_words: "anyWords",
441
+ blue_verified_only: "blueVerifiedOnly",
442
+ card_name: "cardName",
267
443
  conversation_id: "conversationId",
268
444
  exact_phrase: "exactPhrase",
445
+ exclude_source: "excludeSource",
269
446
  exclude_words: "excludeWords",
270
447
  from_user: "fromUser",
271
448
  in_reply_to_tweet_id: "inReplyToTweetId",
449
+ max_faves: "maxFaves",
450
+ max_id: "maxId",
451
+ max_quotes: "maxQuotes",
452
+ max_replies: "maxReplies",
453
+ max_retweets: "maxRetweets",
272
454
  media_type: "mediaType",
455
+ min_bookmarks: "minBookmarks",
273
456
  min_faves: "minFaves",
274
457
  min_quotes: "minQuotes",
275
458
  min_replies: "minReplies",
276
459
  min_retweets: "minRetweets",
460
+ min_views: "minViews",
461
+ native_retweets: "nativeRetweets",
277
462
  page_size: "pageSize",
278
463
  quotes_of_tweet_id: "quotesOfTweetId",
279
464
  retweets_of_tweet_id: "retweetsOfTweetId",
280
465
  since_date: "sinceDate",
466
+ since_id: "sinceId",
281
467
  to_user: "toUser",
282
468
  until_date: "untilDate",
283
- verified_only: "verifiedOnly"
469
+ verified_only: "verifiedOnly",
470
+ within_time: "withinTime"
284
471
  ),
285
472
  model: XTwitterScraper::PaginatedTweets,
286
473
  options: options
@@ -292,12 +479,16 @@ module XTwitterScraper
292
479
  #
293
480
  # List media tweets posted by a user
294
481
  #
295
- # @overload retrieve_media(id, any_words: nil, cashtags: nil, conversation_id: nil, cursor: nil, exact_phrase: nil, exclude_words: nil, from_user: nil, hashtags: nil, in_reply_to_tweet_id: nil, language: nil, media_type: nil, mentioning: nil, min_faves: nil, min_quotes: nil, min_replies: nil, min_retweets: nil, page_size: nil, quotes: nil, quotes_of_tweet_id: nil, replies: nil, retweets: nil, retweets_of_tweet_id: nil, since_date: nil, to_user: nil, until_date: nil, url: nil, verified_only: nil, request_options: {})
482
+ # @overload retrieve_media(id, any_words: nil, blue_verified_only: nil, card_name: nil, cashtags: nil, conversation_id: nil, cursor: nil, exact_phrase: nil, exclude_source: nil, exclude_words: nil, from_user: nil, geocode: nil, hashtags: nil, in_reply_to_tweet_id: nil, language: nil, max_faves: nil, max_id: nil, max_quotes: nil, max_replies: nil, max_retweets: nil, media_type: nil, mentioning: nil, min_bookmarks: nil, min_faves: nil, min_quotes: nil, min_replies: nil, min_retweets: nil, min_views: nil, native_retweets: nil, near: nil, news: nil, page_size: nil, quotes: nil, quotes_of_tweet_id: nil, replies: nil, retweets: nil, retweets_of_tweet_id: nil, safe: nil, since_date: nil, since_id: nil, source: nil, to_user: nil, until_date: nil, url: nil, verified_only: nil, within: nil, within_time: nil, request_options: {})
296
483
  #
297
484
  # @param id [String] User ID or username for media lookup
298
485
  #
299
486
  # @param any_words [String] Words or quoted phrases where any one can match. Separate with spaces, commas, o
300
487
  #
488
+ # @param blue_verified_only [Boolean] Only return tweets from Blue-verified authors.
489
+ #
490
+ # @param card_name [String] Match the Tweet card name.
491
+ #
301
492
  # @param cashtags [String] Cashtags separated by spaces, commas, or lines.
302
493
  #
303
494
  # @param conversation_id [String] Conversation ID filter.
@@ -306,20 +497,36 @@ module XTwitterScraper
306
497
  #
307
498
  # @param exact_phrase [String] Exact phrase to match.
308
499
  #
500
+ # @param exclude_source [String] Exclude a source application.
501
+ #
309
502
  # @param exclude_words [String] Words or quoted phrases to exclude. Separate with spaces, commas, or lines.
310
503
  #
311
504
  # @param from_user [String] Filter by author username.
312
505
  #
506
+ # @param geocode [String] Match latitude, longitude, and radius.
507
+ #
313
508
  # @param hashtags [String] Hashtags separated by spaces, commas, or lines.
314
509
  #
315
510
  # @param in_reply_to_tweet_id [String] Only replies to this tweet ID.
316
511
  #
317
512
  # @param language [String] Language code filter, e.g. en or tr.
318
513
  #
514
+ # @param max_faves [Integer] Maximum likes threshold. maxLikes is also accepted.
515
+ #
516
+ # @param max_id [String] Return Tweets older than this Tweet ID.
517
+ #
518
+ # @param max_quotes [Integer] Maximum quotes threshold.
519
+ #
520
+ # @param max_replies [Integer] Maximum replies threshold.
521
+ #
522
+ # @param max_retweets [Integer] Maximum retweets threshold.
523
+ #
319
524
  # @param media_type [Symbol, XTwitterScraper::Models::X::UserRetrieveMediaParams::MediaType] Filter by media type.
320
525
  #
321
526
  # @param mentioning [String] Filter tweets mentioning a username.
322
527
  #
528
+ # @param min_bookmarks [Integer] Minimum bookmark count threshold.
529
+ #
323
530
  # @param min_faves [Integer] Minimum likes threshold.
324
531
  #
325
532
  # @param min_quotes [Integer] Minimum quote count threshold.
@@ -328,6 +535,14 @@ module XTwitterScraper
328
535
  #
329
536
  # @param min_retweets [Integer] Minimum retweets threshold.
330
537
  #
538
+ # @param min_views [Integer] Minimum view count threshold.
539
+ #
540
+ # @param native_retweets [Boolean] Only return native reposts.
541
+ #
542
+ # @param near [String] Match a place name.
543
+ #
544
+ # @param news [Boolean] Only return news results.
545
+ #
331
546
  # @param page_size [Integer] Maximum page items (1-100, default 20). Source, filters, or credits can reduce r
332
547
  #
333
548
  # @param quotes [Symbol, XTwitterScraper::Models::X::UserRetrieveMediaParams::Quotes] Quote mode.
@@ -340,8 +555,14 @@ module XTwitterScraper
340
555
  #
341
556
  # @param retweets_of_tweet_id [String] Only retweets of this tweet ID.
342
557
  #
558
+ # @param safe [Boolean] Enable the safe-search filter.
559
+ #
343
560
  # @param since_date [Date] Start date in YYYY-MM-DD format.
344
561
  #
562
+ # @param since_id [String] Return Tweets newer than this Tweet ID.
563
+ #
564
+ # @param source [String] Match the source application.
565
+ #
345
566
  # @param to_user [String] Filter replies sent to a username.
346
567
  #
347
568
  # @param until_date [Date] End date in YYYY-MM-DD format.
@@ -350,6 +571,10 @@ module XTwitterScraper
350
571
  #
351
572
  # @param verified_only [Boolean] Only return tweets from verified authors.
352
573
  #
574
+ # @param within [String] Set the radius for the near filter.
575
+ #
576
+ # @param within_time [String] Match Tweets inside a recent time window.
577
+ #
353
578
  # @param request_options [XTwitterScraper::RequestOptions, Hash{Symbol=>Object}, nil]
354
579
  #
355
580
  # @return [XTwitterScraper::Models::PaginatedTweets]
@@ -363,23 +588,36 @@ module XTwitterScraper
363
588
  path: ["x/users/%1$s/media", id],
364
589
  query: query.transform_keys(
365
590
  any_words: "anyWords",
591
+ blue_verified_only: "blueVerifiedOnly",
592
+ card_name: "cardName",
366
593
  conversation_id: "conversationId",
367
594
  exact_phrase: "exactPhrase",
595
+ exclude_source: "excludeSource",
368
596
  exclude_words: "excludeWords",
369
597
  from_user: "fromUser",
370
598
  in_reply_to_tweet_id: "inReplyToTweetId",
599
+ max_faves: "maxFaves",
600
+ max_id: "maxId",
601
+ max_quotes: "maxQuotes",
602
+ max_replies: "maxReplies",
603
+ max_retweets: "maxRetweets",
371
604
  media_type: "mediaType",
605
+ min_bookmarks: "minBookmarks",
372
606
  min_faves: "minFaves",
373
607
  min_quotes: "minQuotes",
374
608
  min_replies: "minReplies",
375
609
  min_retweets: "minRetweets",
610
+ min_views: "minViews",
611
+ native_retweets: "nativeRetweets",
376
612
  page_size: "pageSize",
377
613
  quotes_of_tweet_id: "quotesOfTweetId",
378
614
  retweets_of_tweet_id: "retweetsOfTweetId",
379
615
  since_date: "sinceDate",
616
+ since_id: "sinceId",
380
617
  to_user: "toUser",
381
618
  until_date: "untilDate",
382
- verified_only: "verifiedOnly"
619
+ verified_only: "verifiedOnly",
620
+ within_time: "withinTime"
383
621
  ),
384
622
  model: XTwitterScraper::PaginatedTweets,
385
623
  options: options
@@ -391,12 +629,16 @@ module XTwitterScraper
391
629
  #
392
630
  # List tweets mentioning a user
393
631
  #
394
- # @overload retrieve_mentions(id, any_words: nil, cashtags: nil, conversation_id: nil, cursor: nil, exact_phrase: nil, exclude_words: nil, from_user: nil, hashtags: nil, in_reply_to_tweet_id: nil, language: nil, media_type: nil, mentioning: nil, min_faves: nil, min_quotes: nil, min_replies: nil, min_retweets: nil, page_size: nil, quotes: nil, quotes_of_tweet_id: nil, replies: nil, retweets: nil, retweets_of_tweet_id: nil, since_date: nil, since_time: nil, to_user: nil, until_date: nil, until_time: nil, url: nil, verified_only: nil, request_options: {})
632
+ # @overload retrieve_mentions(id, any_words: nil, blue_verified_only: nil, card_name: nil, cashtags: nil, conversation_id: nil, cursor: nil, exact_phrase: nil, exclude_source: nil, exclude_words: nil, from_user: nil, geocode: nil, hashtags: nil, in_reply_to_tweet_id: nil, language: nil, max_faves: nil, max_id: nil, max_quotes: nil, max_replies: nil, max_retweets: nil, media_type: nil, mentioning: nil, min_bookmarks: nil, min_faves: nil, min_quotes: nil, min_replies: nil, min_retweets: nil, min_views: nil, native_retweets: nil, near: nil, news: nil, page_size: nil, quotes: nil, quotes_of_tweet_id: nil, replies: nil, retweets: nil, retweets_of_tweet_id: nil, safe: nil, since_date: nil, since_id: nil, since_time: nil, source: nil, to_user: nil, until_date: nil, until_time: nil, url: nil, verified_only: nil, within: nil, within_time: nil, request_options: {})
395
633
  #
396
634
  # @param id [String] User ID or username for mentions lookup
397
635
  #
398
636
  # @param any_words [String] Words or quoted phrases where any one can match. Separate with spaces, commas, o
399
637
  #
638
+ # @param blue_verified_only [Boolean] Only return tweets from Blue-verified authors.
639
+ #
640
+ # @param card_name [String] Match the Tweet card name.
641
+ #
400
642
  # @param cashtags [String] Cashtags separated by spaces, commas, or lines.
401
643
  #
402
644
  # @param conversation_id [String] Conversation ID filter.
@@ -405,20 +647,36 @@ module XTwitterScraper
405
647
  #
406
648
  # @param exact_phrase [String] Exact phrase to match.
407
649
  #
650
+ # @param exclude_source [String] Exclude a source application.
651
+ #
408
652
  # @param exclude_words [String] Words or quoted phrases to exclude. Separate with spaces, commas, or lines.
409
653
  #
410
654
  # @param from_user [String] Filter by author username.
411
655
  #
656
+ # @param geocode [String] Match latitude, longitude, and radius.
657
+ #
412
658
  # @param hashtags [String] Hashtags separated by spaces, commas, or lines.
413
659
  #
414
660
  # @param in_reply_to_tweet_id [String] Only replies to this tweet ID.
415
661
  #
416
662
  # @param language [String] Language code filter, e.g. en or tr.
417
663
  #
664
+ # @param max_faves [Integer] Maximum likes threshold. maxLikes is also accepted.
665
+ #
666
+ # @param max_id [String] Return Tweets older than this Tweet ID.
667
+ #
668
+ # @param max_quotes [Integer] Maximum quotes threshold.
669
+ #
670
+ # @param max_replies [Integer] Maximum replies threshold.
671
+ #
672
+ # @param max_retweets [Integer] Maximum retweets threshold.
673
+ #
418
674
  # @param media_type [Symbol, XTwitterScraper::Models::X::UserRetrieveMentionsParams::MediaType] Filter by media type.
419
675
  #
420
676
  # @param mentioning [String] Filter tweets mentioning a username.
421
677
  #
678
+ # @param min_bookmarks [Integer] Minimum bookmark count threshold.
679
+ #
422
680
  # @param min_faves [Integer] Minimum likes threshold.
423
681
  #
424
682
  # @param min_quotes [Integer] Minimum quote count threshold.
@@ -427,6 +685,14 @@ module XTwitterScraper
427
685
  #
428
686
  # @param min_retweets [Integer] Minimum retweets threshold.
429
687
  #
688
+ # @param min_views [Integer] Minimum view count threshold.
689
+ #
690
+ # @param native_retweets [Boolean] Only return native reposts.
691
+ #
692
+ # @param near [String] Match a place name.
693
+ #
694
+ # @param news [Boolean] Only return news results.
695
+ #
430
696
  # @param page_size [Integer] Maximum page items (1-100, default 20). Source, filters, or credits can reduce r
431
697
  #
432
698
  # @param quotes [Symbol, XTwitterScraper::Models::X::UserRetrieveMentionsParams::Quotes] Quote mode.
@@ -439,10 +705,16 @@ module XTwitterScraper
439
705
  #
440
706
  # @param retweets_of_tweet_id [String] Only retweets of this tweet ID.
441
707
  #
708
+ # @param safe [Boolean] Enable the safe-search filter.
709
+ #
442
710
  # @param since_date [Date] Start date in YYYY-MM-DD format.
443
711
  #
712
+ # @param since_id [String] Return Tweets newer than this Tweet ID.
713
+ #
444
714
  # @param since_time [String] Unix timestamp - return mentions after this time
445
715
  #
716
+ # @param source [String] Match the source application.
717
+ #
446
718
  # @param to_user [String] Filter replies sent to a username.
447
719
  #
448
720
  # @param until_date [Date] End date in YYYY-MM-DD format.
@@ -453,6 +725,10 @@ module XTwitterScraper
453
725
  #
454
726
  # @param verified_only [Boolean] Only return tweets from verified authors.
455
727
  #
728
+ # @param within [String] Set the radius for the near filter.
729
+ #
730
+ # @param within_time [String] Match Tweets inside a recent time window.
731
+ #
456
732
  # @param request_options [XTwitterScraper::RequestOptions, Hash{Symbol=>Object}, nil]
457
733
  #
458
734
  # @return [XTwitterScraper::Models::PaginatedTweets]
@@ -466,25 +742,38 @@ module XTwitterScraper
466
742
  path: ["x/users/%1$s/mentions", id],
467
743
  query: query.transform_keys(
468
744
  any_words: "anyWords",
745
+ blue_verified_only: "blueVerifiedOnly",
746
+ card_name: "cardName",
469
747
  conversation_id: "conversationId",
470
748
  exact_phrase: "exactPhrase",
749
+ exclude_source: "excludeSource",
471
750
  exclude_words: "excludeWords",
472
751
  from_user: "fromUser",
473
752
  in_reply_to_tweet_id: "inReplyToTweetId",
753
+ max_faves: "maxFaves",
754
+ max_id: "maxId",
755
+ max_quotes: "maxQuotes",
756
+ max_replies: "maxReplies",
757
+ max_retweets: "maxRetweets",
474
758
  media_type: "mediaType",
759
+ min_bookmarks: "minBookmarks",
475
760
  min_faves: "minFaves",
476
761
  min_quotes: "minQuotes",
477
762
  min_replies: "minReplies",
478
763
  min_retweets: "minRetweets",
764
+ min_views: "minViews",
765
+ native_retweets: "nativeRetweets",
479
766
  page_size: "pageSize",
480
767
  quotes_of_tweet_id: "quotesOfTweetId",
481
768
  retweets_of_tweet_id: "retweetsOfTweetId",
482
769
  since_date: "sinceDate",
770
+ since_id: "sinceId",
483
771
  since_time: "sinceTime",
484
772
  to_user: "toUser",
485
773
  until_date: "untilDate",
486
774
  until_time: "untilTime",
487
- verified_only: "verifiedOnly"
775
+ verified_only: "verifiedOnly",
776
+ within_time: "withinTime"
488
777
  ),
489
778
  model: XTwitterScraper::PaginatedTweets,
490
779
  options: options
@@ -494,26 +783,36 @@ module XTwitterScraper
494
783
  # Some parameter documentations has been truncated, see
495
784
  # {XTwitterScraper::Models::X::UserRetrieveRepliesParams} for more details.
496
785
  #
497
- # Returns the user's timeline with replies included by default.
786
+ # Returns target-authored posts and replies. Omit mode for automatic maximum
787
+ # coverage. Pass next_cursor unchanged. Unprefixed cursors stay legacy. Excludes
788
+ # other-author context.
498
789
  #
499
- # @overload retrieve_replies(id, any_words: nil, cashtags: nil, conversation_id: nil, cursor: nil, exact_phrase: nil, exclude_words: nil, from_user: nil, hashtags: nil, include_parent_tweet: nil, in_reply_to_tweet_id: nil, language: nil, media_type: nil, mentioning: nil, min_faves: nil, min_quotes: nil, min_replies: nil, min_retweets: nil, page_size: nil, quotes: nil, quotes_of_tweet_id: nil, replies: nil, retweets: nil, retweets_of_tweet_id: nil, since_date: nil, to_user: nil, until_date: nil, url: nil, verified_only: nil, request_options: {})
790
+ # @overload retrieve_replies(id, any_words: nil, blue_verified_only: nil, card_name: nil, cashtags: nil, conversation_id: nil, cursor: nil, exact_phrase: nil, exclude_source: nil, exclude_words: nil, from_user: nil, geocode: nil, hashtags: nil, include_parent_tweet: nil, in_reply_to_tweet_id: nil, language: nil, max_faves: nil, max_id: nil, max_quotes: nil, max_replies: nil, max_retweets: nil, media_type: nil, mentioning: nil, min_bookmarks: nil, min_faves: nil, min_quotes: nil, min_replies: nil, min_retweets: nil, min_views: nil, native_retweets: nil, near: nil, news: nil, page_size: nil, quotes: nil, quotes_of_tweet_id: nil, replies: nil, retweets: nil, retweets_of_tweet_id: nil, safe: nil, since_date: nil, since_id: nil, source: nil, to_user: nil, until_date: nil, url: nil, verified_only: nil, within: nil, within_time: nil, request_options: {})
500
791
  #
501
792
  # @param id [String] Target user ID or username for the replies timeline.
502
793
  #
503
794
  # @param any_words [String] Words or quoted phrases where any one can match. Separate with spaces, commas, o
504
795
  #
796
+ # @param blue_verified_only [Boolean] Only return tweets from Blue-verified authors.
797
+ #
798
+ # @param card_name [String] Match the Tweet card name.
799
+ #
505
800
  # @param cashtags [String] Cashtags separated by spaces, commas, or lines.
506
801
  #
507
802
  # @param conversation_id [String] Conversation ID filter.
508
803
  #
509
- # @param cursor [String] Pagination cursor for user replies
804
+ # @param cursor [String] Cursor from the previous response. Xquik cursors resume automatic coverage. Exis
510
805
  #
511
806
  # @param exact_phrase [String] Exact phrase to match.
512
807
  #
808
+ # @param exclude_source [String] Exclude a source application.
809
+ #
513
810
  # @param exclude_words [String] Words or quoted phrases to exclude. Separate with spaces, commas, or lines.
514
811
  #
515
812
  # @param from_user [String] Filter by author username.
516
813
  #
814
+ # @param geocode [String] Match latitude, longitude, and radius.
815
+ #
517
816
  # @param hashtags [String] Hashtags separated by spaces, commas, or lines.
518
817
  #
519
818
  # @param include_parent_tweet [Boolean] Include each reply's parent tweet.
@@ -522,10 +821,22 @@ module XTwitterScraper
522
821
  #
523
822
  # @param language [String] Language code filter, e.g. en or tr.
524
823
  #
824
+ # @param max_faves [Integer] Maximum likes threshold. maxLikes is also accepted.
825
+ #
826
+ # @param max_id [String] Return Tweets older than this Tweet ID.
827
+ #
828
+ # @param max_quotes [Integer] Maximum quotes threshold.
829
+ #
830
+ # @param max_replies [Integer] Maximum replies threshold.
831
+ #
832
+ # @param max_retweets [Integer] Maximum retweets threshold.
833
+ #
525
834
  # @param media_type [Symbol, XTwitterScraper::Models::X::UserRetrieveRepliesParams::MediaType] Filter by media type.
526
835
  #
527
836
  # @param mentioning [String] Filter tweets mentioning a username.
528
837
  #
838
+ # @param min_bookmarks [Integer] Minimum bookmark count threshold.
839
+ #
529
840
  # @param min_faves [Integer] Minimum likes threshold.
530
841
  #
531
842
  # @param min_quotes [Integer] Minimum quote count threshold.
@@ -534,7 +845,15 @@ module XTwitterScraper
534
845
  #
535
846
  # @param min_retweets [Integer] Minimum retweets threshold.
536
847
  #
537
- # @param page_size [Integer] Maximum page items (1-100, default 20). Source, filters, or credits can reduce r
848
+ # @param min_views [Integer] Minimum view count threshold.
849
+ #
850
+ # @param native_retweets [Boolean] Only return native reposts.
851
+ #
852
+ # @param near [String] Match a place name.
853
+ #
854
+ # @param news [Boolean] Only return news results.
855
+ #
856
+ # @param page_size [Integer] Automatic pages accept 1-300 Tweets. Standard pages keep 1-100. Default 20. Cont
538
857
  #
539
858
  # @param quotes [Symbol, XTwitterScraper::Models::X::UserRetrieveRepliesParams::Quotes] Quote mode.
540
859
  #
@@ -546,8 +865,14 @@ module XTwitterScraper
546
865
  #
547
866
  # @param retweets_of_tweet_id [String] Only retweets of this tweet ID.
548
867
  #
868
+ # @param safe [Boolean] Enable the safe-search filter.
869
+ #
549
870
  # @param since_date [Date] Start date in YYYY-MM-DD format.
550
871
  #
872
+ # @param since_id [String] Return Tweets newer than this Tweet ID.
873
+ #
874
+ # @param source [String] Match the source application.
875
+ #
551
876
  # @param to_user [String] Filter replies sent to a username.
552
877
  #
553
878
  # @param until_date [Date] End date in YYYY-MM-DD format.
@@ -556,6 +881,10 @@ module XTwitterScraper
556
881
  #
557
882
  # @param verified_only [Boolean] Only return tweets from verified authors.
558
883
  #
884
+ # @param within [String] Set the radius for the near filter.
885
+ #
886
+ # @param within_time [String] Match Tweets inside a recent time window.
887
+ #
559
888
  # @param request_options [XTwitterScraper::RequestOptions, Hash{Symbol=>Object}, nil]
560
889
  #
561
890
  # @return [XTwitterScraper::Models::PaginatedTweets]
@@ -569,38 +898,82 @@ module XTwitterScraper
569
898
  path: ["x/users/%1$s/replies", id],
570
899
  query: query.transform_keys(
571
900
  any_words: "anyWords",
901
+ blue_verified_only: "blueVerifiedOnly",
902
+ card_name: "cardName",
572
903
  conversation_id: "conversationId",
573
904
  exact_phrase: "exactPhrase",
905
+ exclude_source: "excludeSource",
574
906
  exclude_words: "excludeWords",
575
907
  from_user: "fromUser",
576
908
  include_parent_tweet: "includeParentTweet",
577
909
  in_reply_to_tweet_id: "inReplyToTweetId",
910
+ max_faves: "maxFaves",
911
+ max_id: "maxId",
912
+ max_quotes: "maxQuotes",
913
+ max_replies: "maxReplies",
914
+ max_retweets: "maxRetweets",
578
915
  media_type: "mediaType",
916
+ min_bookmarks: "minBookmarks",
579
917
  min_faves: "minFaves",
580
918
  min_quotes: "minQuotes",
581
919
  min_replies: "minReplies",
582
920
  min_retweets: "minRetweets",
921
+ min_views: "minViews",
922
+ native_retweets: "nativeRetweets",
583
923
  page_size: "pageSize",
584
924
  quotes_of_tweet_id: "quotesOfTweetId",
585
925
  retweets_of_tweet_id: "retweetsOfTweetId",
586
926
  since_date: "sinceDate",
927
+ since_id: "sinceId",
587
928
  to_user: "toUser",
588
929
  until_date: "untilDate",
589
- verified_only: "verifiedOnly"
930
+ verified_only: "verifiedOnly",
931
+ within_time: "withinTime"
590
932
  ),
591
933
  model: XTwitterScraper::PaginatedTweets,
592
934
  options: options
593
935
  )
594
936
  end
595
937
 
938
+ # Some parameter documentations has been truncated, see
939
+ # {XTwitterScraper::Models::X::UserRetrieveSearchParams} for more details.
940
+ #
596
941
  # Search users by name or username
597
942
  #
598
- # @overload retrieve_search(q:, cursor: nil, request_options: {})
943
+ # @overload retrieve_search(q:, bio_contains: nil, cursor: nil, has_location: nil, has_website: nil, location_contains: nil, max_followers: nil, max_following: nil, max_statuses: nil, min_account_age_days: nil, min_followers: nil, min_following: nil, min_statuses: nil, username_contains: nil, verified_only: nil, verified_type: nil, request_options: {})
599
944
  #
600
945
  # @param q [String] User search query
601
946
  #
947
+ # @param bio_contains [String] Match any comma-separated or line-separated bio term, ignoring case.
948
+ #
602
949
  # @param cursor [String] Pagination cursor for user search
603
950
  #
951
+ # @param has_location [Boolean] Only return profiles with a location.
952
+ #
953
+ # @param has_website [Boolean] Only return profiles with a website.
954
+ #
955
+ # @param location_contains [String] Match a location substring, ignoring case.
956
+ #
957
+ # @param max_followers [Integer] Maximum follower count. Missing counts pass this maximum.
958
+ #
959
+ # @param max_following [Integer] Maximum following count.
960
+ #
961
+ # @param max_statuses [Integer] Maximum post count. maxPosts is also accepted.
962
+ #
963
+ # @param min_account_age_days [Integer] Minimum account age in whole days.
964
+ #
965
+ # @param min_followers [Integer] Minimum follower count. Filtering happens before billing.
966
+ #
967
+ # @param min_following [Integer] Minimum following count.
968
+ #
969
+ # @param min_statuses [Integer] Minimum post count. minPosts is also accepted.
970
+ #
971
+ # @param username_contains [String] Match a username substring, ignoring case.
972
+ #
973
+ # @param verified_only [Boolean] Only return verified profiles.
974
+ #
975
+ # @param verified_type [String] Match the verification type exactly, ignoring case.
976
+ #
604
977
  # @param request_options [XTwitterScraper::RequestOptions, Hash{Symbol=>Object}, nil]
605
978
  #
606
979
  # @return [XTwitterScraper::Models::PaginatedUsers]
@@ -612,7 +985,22 @@ module XTwitterScraper
612
985
  @client.request(
613
986
  method: :get,
614
987
  path: "x/users/search",
615
- query: query,
988
+ query: query.transform_keys(
989
+ bio_contains: "bioContains",
990
+ has_location: "hasLocation",
991
+ has_website: "hasWebsite",
992
+ location_contains: "locationContains",
993
+ max_followers: "maxFollowers",
994
+ max_following: "maxFollowing",
995
+ max_statuses: "maxStatuses",
996
+ min_account_age_days: "minAccountAgeDays",
997
+ min_followers: "minFollowers",
998
+ min_following: "minFollowing",
999
+ min_statuses: "minStatuses",
1000
+ username_contains: "usernameContains",
1001
+ verified_only: "verifiedOnly",
1002
+ verified_type: "verifiedType"
1003
+ ),
616
1004
  model: XTwitterScraper::PaginatedUsers,
617
1005
  options: options
618
1006
  )
@@ -621,26 +1009,35 @@ module XTwitterScraper
621
1009
  # Some parameter documentations has been truncated, see
622
1010
  # {XTwitterScraper::Models::X::UserRetrieveTweetsParams} for more details.
623
1011
  #
624
- # List recent tweets posted by a user
1012
+ # Omit mode for automatic maximum coverage. Pass next_cursor unchanged. Unprefixed
1013
+ # cursors use legacy pagination. Shape and billing stay the same.
625
1014
  #
626
- # @overload retrieve_tweets(id, any_words: nil, cashtags: nil, conversation_id: nil, cursor: nil, exact_phrase: nil, exclude_words: nil, from_user: nil, hashtags: nil, include_parent_tweet: nil, include_replies: nil, in_reply_to_tweet_id: nil, language: nil, media_type: nil, mentioning: nil, min_faves: nil, min_quotes: nil, min_replies: nil, min_retweets: nil, page_size: nil, quotes: nil, quotes_of_tweet_id: nil, replies: nil, retweets: nil, retweets_of_tweet_id: nil, since_date: nil, to_user: nil, until_date: nil, url: nil, verified_only: nil, request_options: {})
1015
+ # @overload retrieve_tweets(id, any_words: nil, blue_verified_only: nil, card_name: nil, cashtags: nil, conversation_id: nil, cursor: nil, exact_phrase: nil, exclude_source: nil, exclude_words: nil, from_user: nil, geocode: nil, hashtags: nil, include_parent_tweet: nil, include_replies: nil, in_reply_to_tweet_id: nil, language: nil, max_faves: nil, max_id: nil, max_quotes: nil, max_replies: nil, max_retweets: nil, media_type: nil, mentioning: nil, min_bookmarks: nil, min_faves: nil, min_quotes: nil, min_replies: nil, min_retweets: nil, min_views: nil, native_retweets: nil, near: nil, news: nil, page_size: nil, quotes: nil, quotes_of_tweet_id: nil, replies: nil, retweets: nil, retweets_of_tweet_id: nil, safe: nil, since_date: nil, since_id: nil, source: nil, to_user: nil, until_date: nil, url: nil, verified_only: nil, within: nil, within_time: nil, request_options: {})
627
1016
  #
628
1017
  # @param id [String] X user ID or username
629
1018
  #
630
1019
  # @param any_words [String] Words or quoted phrases where any one can match. Separate with spaces, commas, o
631
1020
  #
1021
+ # @param blue_verified_only [Boolean] Only return tweets from Blue-verified authors.
1022
+ #
1023
+ # @param card_name [String] Match the Tweet card name.
1024
+ #
632
1025
  # @param cashtags [String] Cashtags separated by spaces, commas, or lines.
633
1026
  #
634
1027
  # @param conversation_id [String] Conversation ID filter.
635
1028
  #
636
- # @param cursor [String] Pagination cursor for user tweets
1029
+ # @param cursor [String] Cursor from the previous response. Xquik cursors resume automatic coverage. Exis
637
1030
  #
638
1031
  # @param exact_phrase [String] Exact phrase to match.
639
1032
  #
1033
+ # @param exclude_source [String] Exclude a source application.
1034
+ #
640
1035
  # @param exclude_words [String] Words or quoted phrases to exclude. Separate with spaces, commas, or lines.
641
1036
  #
642
1037
  # @param from_user [String] Filter by author username.
643
1038
  #
1039
+ # @param geocode [String] Match latitude, longitude, and radius.
1040
+ #
644
1041
  # @param hashtags [String] Hashtags separated by spaces, commas, or lines.
645
1042
  #
646
1043
  # @param include_parent_tweet [Boolean] Include parent tweet for replies
@@ -651,10 +1048,22 @@ module XTwitterScraper
651
1048
  #
652
1049
  # @param language [String] Language code filter, e.g. en or tr.
653
1050
  #
1051
+ # @param max_faves [Integer] Maximum likes threshold. maxLikes is also accepted.
1052
+ #
1053
+ # @param max_id [String] Return Tweets older than this Tweet ID.
1054
+ #
1055
+ # @param max_quotes [Integer] Maximum quotes threshold.
1056
+ #
1057
+ # @param max_replies [Integer] Maximum replies threshold.
1058
+ #
1059
+ # @param max_retweets [Integer] Maximum retweets threshold.
1060
+ #
654
1061
  # @param media_type [Symbol, XTwitterScraper::Models::X::UserRetrieveTweetsParams::MediaType] Filter by media type.
655
1062
  #
656
1063
  # @param mentioning [String] Filter tweets mentioning a username.
657
1064
  #
1065
+ # @param min_bookmarks [Integer] Minimum bookmark count threshold.
1066
+ #
658
1067
  # @param min_faves [Integer] Minimum likes threshold.
659
1068
  #
660
1069
  # @param min_quotes [Integer] Minimum quote count threshold.
@@ -663,7 +1072,15 @@ module XTwitterScraper
663
1072
  #
664
1073
  # @param min_retweets [Integer] Minimum retweets threshold.
665
1074
  #
666
- # @param page_size [Integer] Maximum page items (1-100, default 20). Source, filters, or credits can reduce r
1075
+ # @param min_views [Integer] Minimum view count threshold.
1076
+ #
1077
+ # @param native_retweets [Boolean] Only return native reposts.
1078
+ #
1079
+ # @param near [String] Match a place name.
1080
+ #
1081
+ # @param news [Boolean] Only return news results.
1082
+ #
1083
+ # @param page_size [Integer] Automatic pages accept 1-300 Tweets. Standard pages keep 1-100. Default 20. Cont
667
1084
  #
668
1085
  # @param quotes [Symbol, XTwitterScraper::Models::X::UserRetrieveTweetsParams::Quotes] Quote mode.
669
1086
  #
@@ -675,8 +1092,14 @@ module XTwitterScraper
675
1092
  #
676
1093
  # @param retweets_of_tweet_id [String] Only retweets of this tweet ID.
677
1094
  #
1095
+ # @param safe [Boolean] Enable the safe-search filter.
1096
+ #
678
1097
  # @param since_date [Date] Start date in YYYY-MM-DD format.
679
1098
  #
1099
+ # @param since_id [String] Return Tweets newer than this Tweet ID.
1100
+ #
1101
+ # @param source [String] Match the source application.
1102
+ #
680
1103
  # @param to_user [String] Filter replies sent to a username.
681
1104
  #
682
1105
  # @param until_date [Date] End date in YYYY-MM-DD format.
@@ -685,6 +1108,10 @@ module XTwitterScraper
685
1108
  #
686
1109
  # @param verified_only [Boolean] Only return tweets from verified authors.
687
1110
  #
1111
+ # @param within [String] Set the radius for the near filter.
1112
+ #
1113
+ # @param within_time [String] Match Tweets inside a recent time window.
1114
+ #
688
1115
  # @param request_options [XTwitterScraper::RequestOptions, Hash{Symbol=>Object}, nil]
689
1116
  #
690
1117
  # @return [XTwitterScraper::Models::PaginatedTweets]
@@ -698,25 +1125,38 @@ module XTwitterScraper
698
1125
  path: ["x/users/%1$s/tweets", id],
699
1126
  query: query.transform_keys(
700
1127
  any_words: "anyWords",
1128
+ blue_verified_only: "blueVerifiedOnly",
1129
+ card_name: "cardName",
701
1130
  conversation_id: "conversationId",
702
1131
  exact_phrase: "exactPhrase",
1132
+ exclude_source: "excludeSource",
703
1133
  exclude_words: "excludeWords",
704
1134
  from_user: "fromUser",
705
1135
  include_parent_tweet: "includeParentTweet",
706
1136
  include_replies: "includeReplies",
707
1137
  in_reply_to_tweet_id: "inReplyToTweetId",
1138
+ max_faves: "maxFaves",
1139
+ max_id: "maxId",
1140
+ max_quotes: "maxQuotes",
1141
+ max_replies: "maxReplies",
1142
+ max_retweets: "maxRetweets",
708
1143
  media_type: "mediaType",
1144
+ min_bookmarks: "minBookmarks",
709
1145
  min_faves: "minFaves",
710
1146
  min_quotes: "minQuotes",
711
1147
  min_replies: "minReplies",
712
1148
  min_retweets: "minRetweets",
1149
+ min_views: "minViews",
1150
+ native_retweets: "nativeRetweets",
713
1151
  page_size: "pageSize",
714
1152
  quotes_of_tweet_id: "quotesOfTweetId",
715
1153
  retweets_of_tweet_id: "retweetsOfTweetId",
716
1154
  since_date: "sinceDate",
1155
+ since_id: "sinceId",
717
1156
  to_user: "toUser",
718
1157
  until_date: "untilDate",
719
- verified_only: "verifiedOnly"
1158
+ verified_only: "verifiedOnly",
1159
+ within_time: "withinTime"
720
1160
  ),
721
1161
  model: XTwitterScraper::PaginatedTweets,
722
1162
  options: options
@@ -729,17 +1169,51 @@ module XTwitterScraper
729
1169
  #
730
1170
  # List verified followers of a user
731
1171
  #
732
- # @overload retrieve_verified_followers(id, cursor: nil, page_size: nil, request_options: {})
1172
+ # @overload retrieve_verified_followers(id, after: nil, bio_contains: nil, cursor: nil, has_location: nil, has_website: nil, limit: nil, location_contains: nil, max_followers: nil, max_following: nil, max_statuses: nil, min_account_age_days: nil, min_followers: nil, min_following: nil, min_statuses: nil, mode: nil, page_size: nil, username_contains: nil, verified_only: nil, verified_type: nil, request_options: {})
733
1173
  #
734
1174
  # @param id [String] User ID or username for verified followers
735
1175
  #
736
- # @param cursor [String] Pagination cursor for verified followers
1176
+ # @param after [String] Legacy cursor alias. Prefer cursor.
1177
+ #
1178
+ # @param bio_contains [String] Match any comma-separated or line-separated bio term, ignoring case.
1179
+ #
1180
+ # @param cursor [String] Cursor from the previous response. Xquik cursors resume automatic coverage. Exis
1181
+ #
1182
+ # @param has_location [Boolean] Only return profiles with a location.
1183
+ #
1184
+ # @param has_website [Boolean] Only return profiles with a website.
1185
+ #
1186
+ # @param limit [Integer] Legacy page-size alias outside explicit coverage mode. Coverage accepts 1-10000.
1187
+ #
1188
+ # @param location_contains [String] Match a location substring, ignoring case.
1189
+ #
1190
+ # @param max_followers [Integer] Maximum follower count. Missing counts pass this maximum.
1191
+ #
1192
+ # @param max_following [Integer] Maximum following count.
1193
+ #
1194
+ # @param max_statuses [Integer] Maximum post count. maxPosts is also accepted.
1195
+ #
1196
+ # @param min_account_age_days [Integer] Minimum account age in whole days.
737
1197
  #
738
- # @param page_size [Integer] Maximum user profiles requested from this page (20-200, default 200). The respon
1198
+ # @param min_followers [Integer] Minimum follower count. Filtering happens before billing.
1199
+ #
1200
+ # @param min_following [Integer] Minimum following count.
1201
+ #
1202
+ # @param min_statuses [Integer] Minimum post count. minPosts is also accepted.
1203
+ #
1204
+ # @param mode [Symbol, XTwitterScraper::Models::X::UserRetrieveVerifiedFollowersParams::Mode] Omit mode for resumable maximum coverage. Standard keeps legacy pagination. Cove
1205
+ #
1206
+ # @param page_size [Integer] Maximum user profiles: automatic 300; standard 200. Sources return fewer profile
1207
+ #
1208
+ # @param username_contains [String] Match a username substring, ignoring case.
1209
+ #
1210
+ # @param verified_only [Boolean] Only return verified profiles.
1211
+ #
1212
+ # @param verified_type [String] Match the verification type exactly, ignoring case.
739
1213
  #
740
1214
  # @param request_options [XTwitterScraper::RequestOptions, Hash{Symbol=>Object}, nil]
741
1215
  #
742
- # @return [XTwitterScraper::Models::PaginatedUsers]
1216
+ # @return [XTwitterScraper::Models::PaginatedUsers, XTwitterScraper::Models::X::UserRetrieveVerifiedFollowersResponse::UserListCoverageResponse]
743
1217
  #
744
1218
  # @see XTwitterScraper::Models::X::UserRetrieveVerifiedFollowersParams
745
1219
  def retrieve_verified_followers(id, params = {})
@@ -748,8 +1222,24 @@ module XTwitterScraper
748
1222
  @client.request(
749
1223
  method: :get,
750
1224
  path: ["x/users/%1$s/verified-followers", id],
751
- query: query.transform_keys(page_size: "pageSize"),
752
- model: XTwitterScraper::PaginatedUsers,
1225
+ query: query.transform_keys(
1226
+ bio_contains: "bioContains",
1227
+ has_location: "hasLocation",
1228
+ has_website: "hasWebsite",
1229
+ location_contains: "locationContains",
1230
+ max_followers: "maxFollowers",
1231
+ max_following: "maxFollowing",
1232
+ max_statuses: "maxStatuses",
1233
+ min_account_age_days: "minAccountAgeDays",
1234
+ min_followers: "minFollowers",
1235
+ min_following: "minFollowing",
1236
+ min_statuses: "minStatuses",
1237
+ page_size: "pageSize",
1238
+ username_contains: "usernameContains",
1239
+ verified_only: "verifiedOnly",
1240
+ verified_type: "verifiedType"
1241
+ ),
1242
+ model: XTwitterScraper::Models::X::UserRetrieveVerifiedFollowersResponse,
753
1243
  options: options
754
1244
  )
755
1245
  end