x-twitter-scraper 0.4.3 → 0.4.4

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 (522) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +14 -0
  3. data/LICENSE +201 -0
  4. data/README.md +10 -12
  5. data/lib/x_twitter_scraper/client.rb +30 -26
  6. data/lib/x_twitter_scraper/internal/transport/base_client.rb +5 -0
  7. data/lib/x_twitter_scraper/internal/type/base_model.rb +4 -3
  8. data/lib/x_twitter_scraper/internal/util.rb +3 -1
  9. data/lib/x_twitter_scraper/models/account_retrieve_response.rb +138 -23
  10. data/lib/x_twitter_scraper/models/content_disclosure.rb +66 -0
  11. data/lib/x_twitter_scraper/models/credit_redirect_topup_checkout_params.rb +22 -0
  12. data/lib/x_twitter_scraper/models/credit_retrieve_balance_response.rb +37 -10
  13. data/lib/x_twitter_scraper/models/credit_retrieve_topup_status_params.rb +22 -0
  14. data/lib/x_twitter_scraper/models/credit_retrieve_topup_status_response.rb +45 -0
  15. data/lib/x_twitter_scraper/models/credit_topup_balance_params.rb +13 -5
  16. data/lib/x_twitter_scraper/models/credit_topup_balance_response.rb +18 -5
  17. data/lib/x_twitter_scraper/models/draft_list_params.rb +8 -2
  18. data/lib/x_twitter_scraper/models/draw_detail.rb +15 -1
  19. data/lib/x_twitter_scraper/models/draw_export_params.rb +3 -3
  20. data/lib/x_twitter_scraper/models/draw_list_item.rb +8 -1
  21. data/lib/x_twitter_scraper/models/draw_list_params.rb +13 -7
  22. data/lib/x_twitter_scraper/models/draw_run_response.rb +13 -2
  23. data/lib/x_twitter_scraper/models/embedded_tweet.rb +202 -0
  24. data/lib/x_twitter_scraper/models/error.rb +203 -34
  25. data/lib/x_twitter_scraper/models/event.rb +48 -6
  26. data/lib/x_twitter_scraper/models/event_detail.rb +46 -7
  27. data/lib/x_twitter_scraper/models/event_list_params.rb +13 -7
  28. data/lib/x_twitter_scraper/models/event_type.rb +17 -2
  29. data/lib/x_twitter_scraper/models/extraction_estimate_cost_params.rb +308 -7
  30. data/lib/x_twitter_scraper/models/extraction_estimate_cost_response.rb +38 -14
  31. data/lib/x_twitter_scraper/models/extraction_export_results_params.rb +3 -3
  32. data/lib/x_twitter_scraper/models/extraction_job.rb +3 -0
  33. data/lib/x_twitter_scraper/models/extraction_list_params.rb +16 -7
  34. data/lib/x_twitter_scraper/models/extraction_retrieve_params.rb +5 -5
  35. data/lib/x_twitter_scraper/models/extraction_retrieve_response.rb +2 -2
  36. data/lib/x_twitter_scraper/models/extraction_run_params.rb +304 -7
  37. data/lib/x_twitter_scraper/models/extraction_run_response.rb +3 -0
  38. data/lib/x_twitter_scraper/models/guest_wallet_amount.rb +25 -0
  39. data/lib/x_twitter_scraper/models/guest_wallet_create_params.rb +36 -0
  40. data/lib/x_twitter_scraper/models/guest_wallet_create_response.rb +161 -0
  41. data/lib/x_twitter_scraper/models/{integration_list_params.rb → guest_wallet_retrieve_status_params.rb} +2 -2
  42. data/lib/x_twitter_scraper/models/guest_wallet_retrieve_status_response.rb +196 -0
  43. data/lib/x_twitter_scraper/models/guest_wallet_topup_params.rb +36 -0
  44. data/lib/x_twitter_scraper/models/guest_wallet_topup_response.rb +172 -0
  45. data/lib/x_twitter_scraper/models/monitor.rb +9 -1
  46. data/lib/x_twitter_scraper/models/monitor_create_response.rb +16 -1
  47. data/lib/x_twitter_scraper/models/monitors/keyword_create_params.rb +34 -0
  48. data/lib/x_twitter_scraper/models/monitors/keyword_create_response.rb +59 -0
  49. data/lib/x_twitter_scraper/models/monitors/keyword_deactivate_params.rb +22 -0
  50. data/lib/x_twitter_scraper/models/monitors/keyword_deactivate_response.rb +18 -0
  51. data/lib/x_twitter_scraper/models/monitors/keyword_list_params.rb +16 -0
  52. data/lib/x_twitter_scraper/models/monitors/keyword_list_response.rb +76 -0
  53. data/lib/x_twitter_scraper/models/monitors/keyword_retrieve_params.rb +22 -0
  54. data/lib/x_twitter_scraper/models/monitors/keyword_retrieve_response.rb +59 -0
  55. data/lib/x_twitter_scraper/models/monitors/keyword_update_params.rb +40 -0
  56. data/lib/x_twitter_scraper/models/monitors/keyword_update_response.rb +59 -0
  57. data/lib/x_twitter_scraper/models/paginated_tweets.rb +8 -4
  58. data/lib/x_twitter_scraper/models/paginated_users.rb +8 -4
  59. data/lib/x_twitter_scraper/models/radar_item.rb +99 -6
  60. data/lib/x_twitter_scraper/models/radar_retrieve_trending_topics_params.rb +39 -14
  61. data/lib/x_twitter_scraper/models/radar_retrieve_trending_topics_response.rb +14 -5
  62. data/lib/x_twitter_scraper/models/search_tweet.rb +236 -0
  63. data/lib/x_twitter_scraper/models/subscribe_create_params.rb +21 -1
  64. data/lib/x_twitter_scraper/models/subscribe_create_response.rb +10 -10
  65. data/lib/x_twitter_scraper/models/trend_list_params.rb +7 -4
  66. data/lib/x_twitter_scraper/models/tweet_media.rb +77 -0
  67. data/lib/x_twitter_scraper/models/user_profile.rb +258 -0
  68. data/lib/x_twitter_scraper/models/webhook.rb +46 -1
  69. data/lib/x_twitter_scraper/models/webhook_create_response.rb +2 -1
  70. data/lib/x_twitter_scraper/models/{api_key_revoke_params.rb → webhook_resume_params.rb} +2 -2
  71. data/lib/x_twitter_scraper/models/webhook_resume_response.rb +31 -0
  72. data/lib/x_twitter_scraper/models/x/account_connection_challenge_submit_params.rb +31 -0
  73. data/lib/x_twitter_scraper/models/x/account_connection_challenge_submit_response.rb +66 -0
  74. data/lib/x_twitter_scraper/models/x/account_create_params.rb +1 -9
  75. data/lib/x_twitter_scraper/models/x/account_create_response.rb +30 -1
  76. data/lib/x_twitter_scraper/models/x/account_reauth_params.rb +9 -1
  77. data/lib/x_twitter_scraper/models/x/account_reauth_response.rb +36 -1
  78. data/lib/x_twitter_scraper/models/x/bookmark_retrieve_folders_response.rb +6 -2
  79. data/lib/x_twitter_scraper/models/x/communities/join_create_response.rb +20 -0
  80. data/lib/x_twitter_scraper/models/x/communities/join_delete_all_response.rb +20 -0
  81. data/lib/x_twitter_scraper/models/x/communities/tweet_list_by_community_params.rb +17 -1
  82. data/lib/x_twitter_scraper/models/x/communities/tweet_list_params.rb +43 -9
  83. data/lib/x_twitter_scraper/models/x/community_retrieve_info_response.rb +69 -1
  84. data/lib/x_twitter_scraper/models/x/community_retrieve_members_params.rb +14 -1
  85. data/lib/x_twitter_scraper/models/x/community_retrieve_search_params.rb +38 -4
  86. data/lib/x_twitter_scraper/models/x/dm_retrieve_history_params.rb +13 -1
  87. data/lib/x_twitter_scraper/models/x/dm_retrieve_history_response.rb +26 -9
  88. data/lib/x_twitter_scraper/models/x/dm_send_params.rb +3 -9
  89. data/lib/x_twitter_scraper/models/x/follower_check_params.rb +4 -4
  90. data/lib/x_twitter_scraper/models/x/list_retrieve_followers_params.rb +15 -1
  91. data/lib/x_twitter_scraper/models/x/list_retrieve_members_params.rb +9 -1
  92. data/lib/x_twitter_scraper/models/x/list_retrieve_tweets_params.rb +16 -1
  93. data/lib/x_twitter_scraper/models/x/media_download_params.rb +19 -3
  94. data/lib/x_twitter_scraper/models/x/media_upload_params.rb +8 -15
  95. data/lib/x_twitter_scraper/models/x/media_upload_response.rb +10 -1
  96. data/lib/x_twitter_scraper/models/x/profile_update_avatar_params.rb +8 -8
  97. data/lib/x_twitter_scraper/models/x/profile_update_banner_params.rb +8 -8
  98. data/lib/x_twitter_scraper/models/x/tweet_author.rb +4 -21
  99. data/lib/x_twitter_scraper/models/x/tweet_create_params.rb +18 -11
  100. data/lib/x_twitter_scraper/models/x/tweet_create_response.rb +28 -1
  101. data/lib/x_twitter_scraper/models/x/tweet_detail.rb +109 -43
  102. data/lib/x_twitter_scraper/models/x/tweet_get_favoriters_params.rb +15 -1
  103. data/lib/x_twitter_scraper/models/x/tweet_get_quotes_params.rb +268 -1
  104. data/lib/x_twitter_scraper/models/x/tweet_get_replies_params.rb +268 -1
  105. data/lib/x_twitter_scraper/models/x/tweet_get_retweeters_params.rb +15 -1
  106. data/lib/x_twitter_scraper/models/x/tweet_get_thread_params.rb +16 -1
  107. data/lib/x_twitter_scraper/models/x/tweet_retrieve_response.rb +9 -4
  108. data/lib/x_twitter_scraper/models/x/tweet_search_params.rb +314 -8
  109. data/lib/x_twitter_scraper/models/x/user_remove_follower_params.rb +31 -0
  110. data/lib/x_twitter_scraper/models/x/user_remove_follower_response.rb +18 -0
  111. data/lib/x_twitter_scraper/models/x/user_retrieve_batch_params.rb +6 -2
  112. data/lib/x_twitter_scraper/models/x/user_retrieve_batch_response.rb +83 -0
  113. data/lib/x_twitter_scraper/models/x/user_retrieve_followers_params.rb +25 -3
  114. data/lib/x_twitter_scraper/models/x/user_retrieve_followers_you_know_params.rb +16 -1
  115. data/lib/x_twitter_scraper/models/x/user_retrieve_following_params.rb +25 -3
  116. data/lib/x_twitter_scraper/models/x/user_retrieve_likes_params.rb +268 -1
  117. data/lib/x_twitter_scraper/models/x/user_retrieve_media_params.rb +268 -1
  118. data/lib/x_twitter_scraper/models/x/user_retrieve_mentions_params.rb +268 -1
  119. data/lib/x_twitter_scraper/models/x/user_retrieve_replies_params.rb +306 -0
  120. data/lib/x_twitter_scraper/models/x/user_retrieve_tweets_params.rb +268 -1
  121. data/lib/x_twitter_scraper/models/x/user_retrieve_verified_followers_params.rb +16 -1
  122. data/lib/x_twitter_scraper/models/x/write_action_retrieve_params.rb +22 -0
  123. data/lib/x_twitter_scraper/models/x/write_action_retrieve_response.rb +173 -0
  124. data/lib/x_twitter_scraper/models/x/x_account.rb +56 -2
  125. data/lib/x_twitter_scraper/models/x/x_account_detail.rb +23 -8
  126. data/lib/x_twitter_scraper/models/x_get_article_response.rb +189 -11
  127. data/lib/x_twitter_scraper/models/x_get_home_timeline_params.rb +2 -2
  128. data/lib/x_twitter_scraper/models/x_get_notifications_params.rb +3 -3
  129. data/lib/x_twitter_scraper/models/x_get_trends_params.rb +17 -1
  130. data/lib/x_twitter_scraper/models.rb +21 -21
  131. data/lib/x_twitter_scraper/resources/account.rb +1 -3
  132. data/lib/x_twitter_scraper/resources/compose.rb +1 -1
  133. data/lib/x_twitter_scraper/resources/credits.rb +54 -4
  134. data/lib/x_twitter_scraper/resources/drafts.rb +7 -4
  135. data/lib/x_twitter_scraper/resources/draws.rb +14 -8
  136. data/lib/x_twitter_scraper/resources/events.rb +7 -5
  137. data/lib/x_twitter_scraper/resources/extractions.rb +145 -20
  138. data/lib/x_twitter_scraper/resources/guest_wallets.rb +108 -0
  139. data/lib/x_twitter_scraper/resources/monitors/keywords.rb +128 -0
  140. data/lib/x_twitter_scraper/resources/monitors.rb +13 -5
  141. data/lib/x_twitter_scraper/resources/radar.rb +8 -6
  142. data/lib/x_twitter_scraper/resources/styles.rb +1 -1
  143. data/lib/x_twitter_scraper/resources/subscribe.rb +9 -4
  144. data/lib/x_twitter_scraper/resources/support/tickets.rb +3 -3
  145. data/lib/x_twitter_scraper/resources/trends.rb +7 -4
  146. data/lib/x_twitter_scraper/resources/webhooks.rb +25 -5
  147. data/lib/x_twitter_scraper/resources/x/account_connection_challenges.rb +41 -0
  148. data/lib/x_twitter_scraper/resources/x/accounts.rb +7 -13
  149. data/lib/x_twitter_scraper/resources/x/bookmarks.rb +1 -1
  150. data/lib/x_twitter_scraper/resources/x/communities/join.rb +6 -6
  151. data/lib/x_twitter_scraper/resources/x/communities/tweets.rb +27 -10
  152. data/lib/x_twitter_scraper/resources/x/communities.rb +27 -11
  153. data/lib/x_twitter_scraper/resources/x/dm.rb +9 -6
  154. data/lib/x_twitter_scraper/resources/x/followers.rb +4 -4
  155. data/lib/x_twitter_scraper/resources/x/lists.rb +22 -9
  156. data/lib/x_twitter_scraper/resources/x/media.rb +11 -9
  157. data/lib/x_twitter_scraper/resources/x/profile.rb +6 -6
  158. data/lib/x_twitter_scraper/resources/x/tweets.rb +282 -28
  159. data/lib/x_twitter_scraper/resources/x/users.rb +485 -34
  160. data/lib/x_twitter_scraper/resources/x/write_actions.rb +37 -0
  161. data/lib/x_twitter_scraper/resources/x.rb +33 -13
  162. data/lib/x_twitter_scraper/version.rb +1 -1
  163. data/lib/x_twitter_scraper.rb +41 -27
  164. data/rbi/x_twitter_scraper/client.rbi +14 -22
  165. data/rbi/x_twitter_scraper/models/account_retrieve_response.rbi +181 -23
  166. data/rbi/x_twitter_scraper/models/content_disclosure.rbi +149 -0
  167. data/rbi/x_twitter_scraper/models/{integration_retrieve_params.rbi → credit_redirect_topup_checkout_params.rbi} +14 -6
  168. data/rbi/x_twitter_scraper/models/credit_retrieve_balance_response.rbi +35 -9
  169. data/rbi/x_twitter_scraper/models/{integration_list_deliveries_params.rbi → credit_retrieve_topup_status_params.rbi} +8 -17
  170. data/rbi/x_twitter_scraper/models/credit_retrieve_topup_status_response.rbi +107 -0
  171. data/rbi/x_twitter_scraper/models/credit_topup_balance_params.rbi +20 -6
  172. data/rbi/x_twitter_scraper/models/credit_topup_balance_response.rbi +19 -5
  173. data/rbi/x_twitter_scraper/models/draft_list_params.rbi +8 -2
  174. data/rbi/x_twitter_scraper/models/draw_detail.rbi +2 -0
  175. data/rbi/x_twitter_scraper/models/draw_export_params.rbi +3 -12
  176. data/rbi/x_twitter_scraper/models/draw_list_item.rbi +2 -0
  177. data/rbi/x_twitter_scraper/models/draw_list_params.rbi +16 -10
  178. data/rbi/x_twitter_scraper/models/draw_run_response.rbi +15 -1
  179. data/rbi/x_twitter_scraper/models/embedded_tweet.rbi +255 -0
  180. data/rbi/x_twitter_scraper/models/error.rbi +865 -87
  181. data/rbi/x_twitter_scraper/models/event.rbi +63 -4
  182. data/rbi/x_twitter_scraper/models/event_detail.rbi +73 -5
  183. data/rbi/x_twitter_scraper/models/event_list_params.rbi +16 -10
  184. data/rbi/x_twitter_scraper/models/event_type.rbi +58 -4
  185. data/rbi/x_twitter_scraper/models/extraction_estimate_cost_params.rbi +580 -2
  186. data/rbi/x_twitter_scraper/models/extraction_estimate_cost_response.rbi +98 -14
  187. data/rbi/x_twitter_scraper/models/extraction_export_results_params.rbi +3 -13
  188. data/rbi/x_twitter_scraper/models/extraction_job.rbi +15 -0
  189. data/rbi/x_twitter_scraper/models/extraction_list_params.rbi +31 -10
  190. data/rbi/x_twitter_scraper/models/extraction_retrieve_params.rbi +8 -8
  191. data/rbi/x_twitter_scraper/models/extraction_retrieve_response.rbi +2 -2
  192. data/rbi/x_twitter_scraper/models/extraction_run_params.rbi +546 -2
  193. data/rbi/x_twitter_scraper/models/extraction_run_response.rbi +15 -0
  194. data/rbi/x_twitter_scraper/models/guest_wallet_amount.rbi +39 -0
  195. data/rbi/x_twitter_scraper/models/guest_wallet_create_params.rbi +58 -0
  196. data/rbi/x_twitter_scraper/models/guest_wallet_create_response.rbi +243 -0
  197. data/rbi/x_twitter_scraper/models/{integration_list_params.rbi → guest_wallet_retrieve_status_params.rbi} +2 -2
  198. data/rbi/x_twitter_scraper/models/guest_wallet_retrieve_status_response.rbi +402 -0
  199. data/rbi/x_twitter_scraper/models/guest_wallet_topup_params.rbi +58 -0
  200. data/rbi/x_twitter_scraper/models/guest_wallet_topup_response.rbi +293 -0
  201. data/rbi/x_twitter_scraper/models/monitor.rbi +8 -0
  202. data/rbi/x_twitter_scraper/models/monitor_create_response.rbi +14 -0
  203. data/rbi/x_twitter_scraper/models/monitors/keyword_create_params.rbi +56 -0
  204. data/rbi/x_twitter_scraper/models/monitors/keyword_create_response.rbi +75 -0
  205. data/rbi/x_twitter_scraper/models/monitors/keyword_deactivate_params.rbi +40 -0
  206. data/rbi/x_twitter_scraper/models/monitors/keyword_deactivate_response.rbi +28 -0
  207. data/rbi/x_twitter_scraper/models/monitors/keyword_list_params.rbi +34 -0
  208. data/rbi/x_twitter_scraper/models/monitors/keyword_list_response.rbi +123 -0
  209. data/rbi/x_twitter_scraper/models/monitors/keyword_retrieve_params.rbi +40 -0
  210. data/rbi/x_twitter_scraper/models/monitors/keyword_retrieve_response.rbi +75 -0
  211. data/rbi/x_twitter_scraper/models/monitors/keyword_update_params.rbi +72 -0
  212. data/rbi/x_twitter_scraper/models/monitors/keyword_update_response.rbi +75 -0
  213. data/rbi/x_twitter_scraper/models/paginated_tweets.rbi +8 -4
  214. data/rbi/x_twitter_scraper/models/paginated_users.rbi +8 -4
  215. data/rbi/x_twitter_scraper/models/radar_item.rbi +131 -6
  216. data/rbi/x_twitter_scraper/models/radar_retrieve_trending_topics_params.rbi +109 -20
  217. data/rbi/x_twitter_scraper/models/radar_retrieve_trending_topics_response.rbi +22 -5
  218. data/rbi/x_twitter_scraper/models/search_tweet.rbi +316 -0
  219. data/rbi/x_twitter_scraper/models/subscribe_create_params.rbi +62 -2
  220. data/rbi/x_twitter_scraper/models/subscribe_create_response.rbi +10 -23
  221. data/rbi/x_twitter_scraper/models/trend_list_params.rbi +4 -4
  222. data/rbi/x_twitter_scraper/models/tweet_media.rbi +130 -0
  223. data/rbi/x_twitter_scraper/models/user_profile.rbi +346 -0
  224. data/rbi/x_twitter_scraper/models/webhook.rbi +57 -0
  225. data/rbi/x_twitter_scraper/models/webhook_create_response.rbi +2 -0
  226. data/rbi/x_twitter_scraper/models/{api_key_revoke_params.rbi → webhook_resume_params.rbi} +2 -2
  227. data/rbi/x_twitter_scraper/models/webhook_resume_response.rbi +55 -0
  228. data/rbi/x_twitter_scraper/models/x/account_connection_challenge_submit_params.rbi +54 -0
  229. data/rbi/x_twitter_scraper/models/x/account_connection_challenge_submit_response.rbi +131 -0
  230. data/rbi/x_twitter_scraper/models/x/account_create_params.rbi +0 -11
  231. data/rbi/x_twitter_scraper/models/x/account_create_response.rbi +79 -1
  232. data/rbi/x_twitter_scraper/models/x/account_reauth_params.rbi +11 -0
  233. data/rbi/x_twitter_scraper/models/x/account_reauth_response.rbi +96 -5
  234. data/rbi/x_twitter_scraper/models/x/bookmark_retrieve_folders_response.rbi +9 -1
  235. data/rbi/x_twitter_scraper/models/x/communities/join_create_response.rbi +30 -0
  236. data/rbi/x_twitter_scraper/models/x/communities/join_delete_all_response.rbi +30 -0
  237. data/rbi/x_twitter_scraper/models/x/communities/tweet_list_by_community_params.rbi +19 -0
  238. data/rbi/x_twitter_scraper/models/x/communities/tweet_list_params.rbi +85 -10
  239. data/rbi/x_twitter_scraper/models/x/community_retrieve_info_response.rbi +115 -0
  240. data/rbi/x_twitter_scraper/models/x/community_retrieve_members_params.rbi +15 -0
  241. data/rbi/x_twitter_scraper/models/x/community_retrieve_search_params.rbi +79 -4
  242. data/rbi/x_twitter_scraper/models/x/dm_retrieve_history_params.rbi +10 -0
  243. data/rbi/x_twitter_scraper/models/x/dm_retrieve_history_response.rbi +20 -13
  244. data/rbi/x_twitter_scraper/models/x/dm_send_params.rbi +2 -9
  245. data/rbi/x_twitter_scraper/models/x/follower_check_params.rbi +4 -4
  246. data/rbi/x_twitter_scraper/models/x/list_retrieve_followers_params.rbi +17 -0
  247. data/rbi/x_twitter_scraper/models/x/list_retrieve_members_params.rbi +11 -0
  248. data/rbi/x_twitter_scraper/models/x/list_retrieve_tweets_params.rbi +19 -0
  249. data/rbi/x_twitter_scraper/models/x/media_download_params.rbi +24 -2
  250. data/rbi/x_twitter_scraper/models/x/media_upload_params.rbi +9 -18
  251. data/rbi/x_twitter_scraper/models/x/media_upload_response.rbi +20 -5
  252. data/rbi/x_twitter_scraper/models/x/profile_update_avatar_params.rbi +9 -9
  253. data/rbi/x_twitter_scraper/models/x/profile_update_banner_params.rbi +9 -9
  254. data/rbi/x_twitter_scraper/models/x/tweet_author.rbi +8 -39
  255. data/rbi/x_twitter_scraper/models/x/tweet_create_params.rbi +23 -12
  256. data/rbi/x_twitter_scraper/models/x/tweet_create_response.rbi +41 -5
  257. data/rbi/x_twitter_scraper/models/x/tweet_detail.rbi +156 -115
  258. data/rbi/x_twitter_scraper/models/x/tweet_get_favoriters_params.rbi +17 -0
  259. data/rbi/x_twitter_scraper/models/x/tweet_get_quotes_params.rbi +508 -0
  260. data/rbi/x_twitter_scraper/models/x/tweet_get_replies_params.rbi +512 -0
  261. data/rbi/x_twitter_scraper/models/x/tweet_get_retweeters_params.rbi +17 -0
  262. data/rbi/x_twitter_scraper/models/x/tweet_get_thread_params.rbi +19 -0
  263. data/rbi/x_twitter_scraper/models/x/tweet_retrieve_response.rbi +8 -4
  264. data/rbi/x_twitter_scraper/models/x/tweet_search_params.rbi +557 -7
  265. data/rbi/x_twitter_scraper/models/x/user_remove_follower_params.rbi +54 -0
  266. data/rbi/x_twitter_scraper/models/x/user_remove_follower_response.rbi +28 -0
  267. data/rbi/x_twitter_scraper/models/x/user_retrieve_batch_params.rbi +4 -2
  268. data/rbi/x_twitter_scraper/models/x/user_retrieve_batch_response.rbi +102 -0
  269. data/rbi/x_twitter_scraper/models/x/user_retrieve_followers_params.rbi +30 -2
  270. data/rbi/x_twitter_scraper/models/x/user_retrieve_followers_you_know_params.rbi +17 -0
  271. data/rbi/x_twitter_scraper/models/x/user_retrieve_following_params.rbi +30 -2
  272. data/rbi/x_twitter_scraper/models/x/user_retrieve_likes_params.rbi +520 -0
  273. data/rbi/x_twitter_scraper/models/x/user_retrieve_media_params.rbi +520 -0
  274. data/rbi/x_twitter_scraper/models/x/user_retrieve_mentions_params.rbi +523 -0
  275. data/rbi/x_twitter_scraper/models/x/user_retrieve_replies_params.rbi +591 -0
  276. data/rbi/x_twitter_scraper/models/x/user_retrieve_tweets_params.rbi +523 -0
  277. data/rbi/x_twitter_scraper/models/x/user_retrieve_verified_followers_params.rbi +17 -0
  278. data/rbi/x_twitter_scraper/models/x/write_action_retrieve_params.rbi +40 -0
  279. data/rbi/x_twitter_scraper/models/x/write_action_retrieve_response.rbi +313 -0
  280. data/rbi/x_twitter_scraper/models/x/x_account.rbi +87 -4
  281. data/rbi/x_twitter_scraper/models/x/x_account_detail.rbi +58 -10
  282. data/rbi/x_twitter_scraper/models/x_get_article_response.rbi +308 -12
  283. data/rbi/x_twitter_scraper/models/x_get_home_timeline_params.rbi +2 -2
  284. data/rbi/x_twitter_scraper/models/x_get_notifications_params.rbi +3 -3
  285. data/rbi/x_twitter_scraper/models/x_get_trends_params.rbi +30 -2
  286. data/rbi/x_twitter_scraper/models.rbi +24 -22
  287. data/rbi/x_twitter_scraper/resources/account.rbi +1 -1
  288. data/rbi/x_twitter_scraper/resources/compose.rbi +1 -1
  289. data/rbi/x_twitter_scraper/resources/credits.rbi +37 -5
  290. data/rbi/x_twitter_scraper/resources/drafts.rbi +7 -4
  291. data/rbi/x_twitter_scraper/resources/draws.rbi +14 -8
  292. data/rbi/x_twitter_scraper/resources/events.rbi +8 -5
  293. data/rbi/x_twitter_scraper/resources/extractions.rbi +210 -11
  294. data/rbi/x_twitter_scraper/resources/guest_wallets.rbi +76 -0
  295. data/rbi/x_twitter_scraper/resources/monitors/keywords.rbi +95 -0
  296. data/rbi/x_twitter_scraper/resources/monitors.rbi +12 -5
  297. data/rbi/x_twitter_scraper/resources/radar.rbi +12 -8
  298. data/rbi/x_twitter_scraper/resources/styles.rbi +1 -1
  299. data/rbi/x_twitter_scraper/resources/subscribe.rbi +9 -3
  300. data/rbi/x_twitter_scraper/resources/support/tickets.rbi +3 -3
  301. data/rbi/x_twitter_scraper/resources/trends.rbi +4 -4
  302. data/rbi/x_twitter_scraper/resources/webhooks.rbi +19 -5
  303. data/rbi/x_twitter_scraper/resources/x/account_connection_challenges.rbi +36 -0
  304. data/rbi/x_twitter_scraper/resources/x/accounts.rbi +6 -6
  305. data/rbi/x_twitter_scraper/resources/x/bookmarks.rbi +1 -1
  306. data/rbi/x_twitter_scraper/resources/x/communities/join.rbi +8 -4
  307. data/rbi/x_twitter_scraper/resources/x/communities/tweets.rbi +25 -7
  308. data/rbi/x_twitter_scraper/resources/x/communities.rbi +23 -7
  309. data/rbi/x_twitter_scraper/resources/x/dm.rbi +5 -2
  310. data/rbi/x_twitter_scraper/resources/x/followers.rbi +4 -4
  311. data/rbi/x_twitter_scraper/resources/x/lists.rbi +20 -4
  312. data/rbi/x_twitter_scraper/resources/x/media.rbi +13 -9
  313. data/rbi/x_twitter_scraper/resources/x/profile.rbi +8 -8
  314. data/rbi/x_twitter_scraper/resources/x/tweets.rbi +309 -16
  315. data/rbi/x_twitter_scraper/resources/x/users.rbi +520 -18
  316. data/rbi/x_twitter_scraper/resources/x/write_actions.rbi +31 -0
  317. data/rbi/x_twitter_scraper/resources/x.rbi +30 -12
  318. data/sig/x_twitter_scraper/client.rbs +2 -6
  319. data/sig/x_twitter_scraper/models/account_retrieve_response.rbs +106 -19
  320. data/sig/x_twitter_scraper/models/content_disclosure.rbs +78 -0
  321. data/sig/x_twitter_scraper/models/{api_key_create_params.rbs → credit_redirect_topup_checkout_params.rbs} +7 -8
  322. data/sig/x_twitter_scraper/models/credit_retrieve_balance_response.rbs +22 -12
  323. data/sig/x_twitter_scraper/models/{integration_list_deliveries_params.rbs → credit_retrieve_topup_status_params.rbs} +6 -12
  324. data/sig/x_twitter_scraper/models/credit_retrieve_topup_status_response.rbs +45 -0
  325. data/sig/x_twitter_scraper/models/credit_topup_balance_params.rbs +11 -4
  326. data/sig/x_twitter_scraper/models/credit_topup_balance_response.rbs +6 -4
  327. data/sig/x_twitter_scraper/models/draw_export_params.rbs +2 -6
  328. data/sig/x_twitter_scraper/models/draw_list_params.rbs +5 -5
  329. data/sig/x_twitter_scraper/models/embedded_tweet.rbs +187 -0
  330. data/sig/x_twitter_scraper/models/error.rbs +341 -54
  331. data/sig/x_twitter_scraper/models/event.rbs +34 -2
  332. data/sig/x_twitter_scraper/models/event_detail.rbs +34 -2
  333. data/sig/x_twitter_scraper/models/event_list_params.rbs +5 -5
  334. data/sig/x_twitter_scraper/models/event_type.rbs +34 -4
  335. data/sig/x_twitter_scraper/models/extraction_estimate_cost_params.rbs +269 -1
  336. data/sig/x_twitter_scraper/models/extraction_estimate_cost_response.rbs +46 -12
  337. data/sig/x_twitter_scraper/models/extraction_export_results_params.rbs +2 -6
  338. data/sig/x_twitter_scraper/models/extraction_job.rbs +6 -0
  339. data/sig/x_twitter_scraper/models/extraction_list_params.rbs +11 -5
  340. data/sig/x_twitter_scraper/models/extraction_retrieve_params.rbs +5 -5
  341. data/sig/x_twitter_scraper/models/extraction_run_params.rbs +269 -1
  342. data/sig/x_twitter_scraper/models/extraction_run_response.rbs +6 -0
  343. data/sig/x_twitter_scraper/models/guest_wallet_amount.rbs +15 -0
  344. data/sig/x_twitter_scraper/models/guest_wallet_create_params.rbs +32 -0
  345. data/sig/x_twitter_scraper/models/guest_wallet_create_response.rbs +125 -0
  346. data/sig/x_twitter_scraper/models/{api_key_list_params.rbs → guest_wallet_retrieve_status_params.rbs} +2 -2
  347. data/sig/x_twitter_scraper/models/guest_wallet_retrieve_status_response.rbs +163 -0
  348. data/sig/x_twitter_scraper/models/guest_wallet_topup_params.rbs +32 -0
  349. data/sig/x_twitter_scraper/models/guest_wallet_topup_response.rbs +146 -0
  350. data/sig/x_twitter_scraper/models/monitor.rbs +5 -0
  351. data/sig/x_twitter_scraper/models/monitor_create_response.rbs +10 -0
  352. data/sig/x_twitter_scraper/models/monitors/keyword_create_params.rbs +33 -0
  353. data/sig/x_twitter_scraper/models/monitors/keyword_create_response.rbs +47 -0
  354. data/sig/x_twitter_scraper/models/monitors/keyword_deactivate_params.rbs +25 -0
  355. data/sig/x_twitter_scraper/models/monitors/keyword_deactivate_response.rbs +15 -0
  356. data/sig/x_twitter_scraper/models/monitors/keyword_list_params.rbs +19 -0
  357. data/sig/x_twitter_scraper/models/monitors/keyword_list_response.rbs +69 -0
  358. data/sig/x_twitter_scraper/models/monitors/keyword_retrieve_params.rbs +25 -0
  359. data/sig/x_twitter_scraper/models/monitors/keyword_retrieve_response.rbs +47 -0
  360. data/sig/x_twitter_scraper/models/monitors/keyword_update_params.rbs +44 -0
  361. data/sig/x_twitter_scraper/models/monitors/keyword_update_response.rbs +47 -0
  362. data/sig/x_twitter_scraper/models/paginated_tweets.rbs +4 -4
  363. data/sig/x_twitter_scraper/models/paginated_users.rbs +4 -4
  364. data/sig/x_twitter_scraper/models/radar_item.rbs +81 -8
  365. data/sig/x_twitter_scraper/models/radar_retrieve_trending_topics_params.rbs +44 -10
  366. data/sig/x_twitter_scraper/models/radar_retrieve_trending_topics_response.rbs +14 -4
  367. data/sig/x_twitter_scraper/models/search_tweet.rbs +205 -0
  368. data/sig/x_twitter_scraper/models/subscribe_create_params.rbs +28 -3
  369. data/sig/x_twitter_scraper/models/subscribe_create_response.rbs +10 -16
  370. data/sig/x_twitter_scraper/models/tweet_media.rbs +72 -0
  371. data/sig/x_twitter_scraper/models/user_profile.rbs +247 -0
  372. data/sig/x_twitter_scraper/models/webhook.rbs +27 -0
  373. data/sig/x_twitter_scraper/models/{api_key_revoke_params.rbs → webhook_resume_params.rbs} +2 -2
  374. data/sig/x_twitter_scraper/models/webhook_resume_response.rbs +26 -0
  375. data/sig/x_twitter_scraper/models/x/account_connection_challenge_submit_params.rbs +30 -0
  376. data/sig/x_twitter_scraper/models/x/account_connection_challenge_submit_response.rbs +68 -0
  377. data/sig/x_twitter_scraper/models/x/account_create_params.rbs +0 -7
  378. data/sig/x_twitter_scraper/models/x/account_create_response.rbs +37 -1
  379. data/sig/x_twitter_scraper/models/x/account_reauth_params.rbs +7 -1
  380. data/sig/x_twitter_scraper/models/x/account_reauth_response.rbs +51 -3
  381. data/sig/x_twitter_scraper/models/x/communities/join_create_response.rbs +17 -0
  382. data/sig/x_twitter_scraper/models/x/communities/join_delete_all_response.rbs +17 -0
  383. data/sig/x_twitter_scraper/models/x/communities/tweet_list_by_community_params.rbs +7 -1
  384. data/sig/x_twitter_scraper/models/x/communities/tweet_list_params.rbs +34 -5
  385. data/sig/x_twitter_scraper/models/x/community_retrieve_info_response.rbs +66 -0
  386. data/sig/x_twitter_scraper/models/x/community_retrieve_members_params.rbs +7 -1
  387. data/sig/x_twitter_scraper/models/x/community_retrieve_search_params.rbs +34 -5
  388. data/sig/x_twitter_scraper/models/x/dm_retrieve_history_params.rbs +5 -1
  389. data/sig/x_twitter_scraper/models/x/dm_retrieve_history_response.rbs +13 -10
  390. data/sig/x_twitter_scraper/models/x/dm_send_params.rbs +1 -8
  391. data/sig/x_twitter_scraper/models/x/list_retrieve_followers_params.rbs +7 -1
  392. data/sig/x_twitter_scraper/models/x/list_retrieve_members_params.rbs +7 -1
  393. data/sig/x_twitter_scraper/models/x/list_retrieve_tweets_params.rbs +7 -0
  394. data/sig/x_twitter_scraper/models/x/media_download_params.rbs +18 -1
  395. data/sig/x_twitter_scraper/models/x/media_upload_params.rbs +4 -14
  396. data/sig/x_twitter_scraper/models/x/media_upload_response.rbs +10 -3
  397. data/sig/x_twitter_scraper/models/x/profile_update_avatar_params.rbs +4 -4
  398. data/sig/x_twitter_scraper/models/x/profile_update_banner_params.rbs +4 -4
  399. data/sig/x_twitter_scraper/models/x/tweet_author.rbs +8 -31
  400. data/sig/x_twitter_scraper/models/x/tweet_create_params.rbs +13 -11
  401. data/sig/x_twitter_scraper/models/x/tweet_create_response.rbs +30 -3
  402. data/sig/x_twitter_scraper/models/x/tweet_detail.rbs +99 -61
  403. data/sig/x_twitter_scraper/models/x/tweet_get_favoriters_params.rbs +7 -1
  404. data/sig/x_twitter_scraper/models/x/tweet_get_quotes_params.rbs +242 -1
  405. data/sig/x_twitter_scraper/models/x/tweet_get_replies_params.rbs +247 -1
  406. data/sig/x_twitter_scraper/models/x/tweet_get_retweeters_params.rbs +7 -1
  407. data/sig/x_twitter_scraper/models/x/tweet_get_thread_params.rbs +7 -1
  408. data/sig/x_twitter_scraper/models/x/tweet_search_params.rbs +277 -1
  409. data/sig/x_twitter_scraper/models/x/user_remove_follower_params.rbs +30 -0
  410. data/sig/x_twitter_scraper/models/x/user_remove_follower_response.rbs +15 -0
  411. data/sig/x_twitter_scraper/models/x/user_retrieve_batch_response.rbs +57 -0
  412. data/sig/x_twitter_scraper/models/x/user_retrieve_followers_params.rbs +19 -1
  413. data/sig/x_twitter_scraper/models/x/user_retrieve_followers_you_know_params.rbs +7 -1
  414. data/sig/x_twitter_scraper/models/x/user_retrieve_following_params.rbs +19 -1
  415. data/sig/x_twitter_scraper/models/x/user_retrieve_likes_params.rbs +245 -1
  416. data/sig/x_twitter_scraper/models/x/user_retrieve_media_params.rbs +245 -1
  417. data/sig/x_twitter_scraper/models/x/user_retrieve_mentions_params.rbs +247 -1
  418. data/sig/x_twitter_scraper/models/x/user_retrieve_replies_params.rbs +283 -0
  419. data/sig/x_twitter_scraper/models/x/user_retrieve_tweets_params.rbs +242 -1
  420. data/sig/x_twitter_scraper/models/x/user_retrieve_verified_followers_params.rbs +7 -1
  421. data/sig/x_twitter_scraper/models/x/write_action_retrieve_params.rbs +25 -0
  422. data/sig/x_twitter_scraper/models/x/write_action_retrieve_response.rbs +177 -0
  423. data/sig/x_twitter_scraper/models/x/x_account.rbs +41 -3
  424. data/sig/x_twitter_scraper/models/x/x_account_detail.rbs +26 -7
  425. data/sig/x_twitter_scraper/models/x_get_article_response.rbs +193 -6
  426. data/sig/x_twitter_scraper/models/x_get_trends_params.rbs +20 -3
  427. data/sig/x_twitter_scraper/models.rbs +21 -21
  428. data/sig/x_twitter_scraper/resources/credits.rbs +12 -1
  429. data/sig/x_twitter_scraper/resources/draws.rbs +2 -2
  430. data/sig/x_twitter_scraper/resources/events.rbs +1 -1
  431. data/sig/x_twitter_scraper/resources/extractions.rbs +61 -3
  432. data/sig/x_twitter_scraper/resources/guest_wallets.rbs +25 -0
  433. data/sig/x_twitter_scraper/resources/monitors/keywords.rbs +36 -0
  434. data/sig/x_twitter_scraper/resources/monitors.rbs +2 -0
  435. data/sig/x_twitter_scraper/resources/radar.rbs +3 -2
  436. data/sig/x_twitter_scraper/resources/subscribe.rbs +1 -0
  437. data/sig/x_twitter_scraper/resources/webhooks.rbs +5 -0
  438. data/sig/x_twitter_scraper/resources/x/account_connection_challenges.rbs +15 -0
  439. data/sig/x_twitter_scraper/resources/x/accounts.rbs +1 -1
  440. data/sig/x_twitter_scraper/resources/x/communities/join.rbs +2 -2
  441. data/sig/x_twitter_scraper/resources/x/communities/tweets.rbs +4 -1
  442. data/sig/x_twitter_scraper/resources/x/communities.rbs +4 -1
  443. data/sig/x_twitter_scraper/resources/x/dm.rbs +1 -1
  444. data/sig/x_twitter_scraper/resources/x/lists.rbs +3 -0
  445. data/sig/x_twitter_scraper/resources/x/media.rbs +3 -2
  446. data/sig/x_twitter_scraper/resources/x/profile.rbs +2 -2
  447. data/sig/x_twitter_scraper/resources/x/tweets.rbs +88 -2
  448. data/sig/x_twitter_scraper/resources/x/users.rbs +151 -2
  449. data/sig/x_twitter_scraper/resources/x/write_actions.rbs +14 -0
  450. data/sig/x_twitter_scraper/resources/x.rbs +6 -0
  451. metadata +125 -82
  452. data/lib/x_twitter_scraper/models/api_key.rb +0 -47
  453. data/lib/x_twitter_scraper/models/api_key_create_params.rb +0 -20
  454. data/lib/x_twitter_scraper/models/api_key_create_response.rb +0 -40
  455. data/lib/x_twitter_scraper/models/api_key_list_params.rb +0 -14
  456. data/lib/x_twitter_scraper/models/api_key_list_response.rb +0 -16
  457. data/lib/x_twitter_scraper/models/api_key_revoke_response.rb +0 -16
  458. data/lib/x_twitter_scraper/models/integration.rb +0 -93
  459. data/lib/x_twitter_scraper/models/integration_create_params.rb +0 -58
  460. data/lib/x_twitter_scraper/models/integration_delete_params.rb +0 -20
  461. data/lib/x_twitter_scraper/models/integration_delete_response.rb +0 -16
  462. data/lib/x_twitter_scraper/models/integration_delivery.rb +0 -71
  463. data/lib/x_twitter_scraper/models/integration_list_deliveries_params.rb +0 -29
  464. data/lib/x_twitter_scraper/models/integration_list_deliveries_response.rb +0 -17
  465. data/lib/x_twitter_scraper/models/integration_list_response.rb +0 -16
  466. data/lib/x_twitter_scraper/models/integration_retrieve_params.rb +0 -20
  467. data/lib/x_twitter_scraper/models/integration_send_test_params.rb +0 -20
  468. data/lib/x_twitter_scraper/models/integration_send_test_response.rb +0 -16
  469. data/lib/x_twitter_scraper/models/integration_update_params.rb +0 -77
  470. data/lib/x_twitter_scraper/models/x/community_action_result.rb +0 -31
  471. data/lib/x_twitter_scraper/models/x/search_tweet.rb +0 -119
  472. data/lib/x_twitter_scraper/models/x/user_profile.rb +0 -80
  473. data/lib/x_twitter_scraper/resources/api_keys.rb +0 -77
  474. data/lib/x_twitter_scraper/resources/bot/platform_links.rb +0 -16
  475. data/lib/x_twitter_scraper/resources/bot.rb +0 -18
  476. data/lib/x_twitter_scraper/resources/integrations.rb +0 -182
  477. data/rbi/x_twitter_scraper/models/api_key.rbi +0 -69
  478. data/rbi/x_twitter_scraper/models/api_key_create_params.rbi +0 -41
  479. data/rbi/x_twitter_scraper/models/api_key_create_response.rbi +0 -56
  480. data/rbi/x_twitter_scraper/models/api_key_list_params.rbi +0 -32
  481. data/rbi/x_twitter_scraper/models/api_key_list_response.rbi +0 -30
  482. data/rbi/x_twitter_scraper/models/api_key_revoke_response.rbi +0 -26
  483. data/rbi/x_twitter_scraper/models/integration.rbi +0 -117
  484. data/rbi/x_twitter_scraper/models/integration_create_params.rbi +0 -95
  485. data/rbi/x_twitter_scraper/models/integration_delete_params.rbi +0 -38
  486. data/rbi/x_twitter_scraper/models/integration_delete_response.rbi +0 -26
  487. data/rbi/x_twitter_scraper/models/integration_delivery.rbi +0 -108
  488. data/rbi/x_twitter_scraper/models/integration_list_deliveries_response.rbi +0 -34
  489. data/rbi/x_twitter_scraper/models/integration_list_response.rbi +0 -34
  490. data/rbi/x_twitter_scraper/models/integration_send_test_params.rbi +0 -38
  491. data/rbi/x_twitter_scraper/models/integration_send_test_response.rbi +0 -26
  492. data/rbi/x_twitter_scraper/models/integration_update_params.rbi +0 -115
  493. data/rbi/x_twitter_scraper/models/x/community_action_result.rbi +0 -49
  494. data/rbi/x_twitter_scraper/models/x/search_tweet.rbi +0 -181
  495. data/rbi/x_twitter_scraper/models/x/user_profile.rbi +0 -125
  496. data/rbi/x_twitter_scraper/resources/api_keys.rbi +0 -46
  497. data/rbi/x_twitter_scraper/resources/bot/platform_links.rbi +0 -16
  498. data/rbi/x_twitter_scraper/resources/bot.rbi +0 -15
  499. data/rbi/x_twitter_scraper/resources/integrations.rbi +0 -133
  500. data/sig/x_twitter_scraper/models/api_key.rbs +0 -47
  501. data/sig/x_twitter_scraper/models/api_key_create_response.rbs +0 -40
  502. data/sig/x_twitter_scraper/models/api_key_list_response.rbs +0 -13
  503. data/sig/x_twitter_scraper/models/api_key_revoke_response.rbs +0 -13
  504. data/sig/x_twitter_scraper/models/integration.rbs +0 -78
  505. data/sig/x_twitter_scraper/models/integration_create_params.rbs +0 -51
  506. data/sig/x_twitter_scraper/models/integration_delete_params.rbs +0 -23
  507. data/sig/x_twitter_scraper/models/integration_delete_response.rbs +0 -13
  508. data/sig/x_twitter_scraper/models/integration_delivery.rbs +0 -75
  509. data/sig/x_twitter_scraper/models/integration_list_deliveries_response.rbs +0 -18
  510. data/sig/x_twitter_scraper/models/integration_list_params.rbs +0 -15
  511. data/sig/x_twitter_scraper/models/integration_list_response.rbs +0 -16
  512. data/sig/x_twitter_scraper/models/integration_retrieve_params.rbs +0 -23
  513. data/sig/x_twitter_scraper/models/integration_send_test_params.rbs +0 -23
  514. data/sig/x_twitter_scraper/models/integration_send_test_response.rbs +0 -13
  515. data/sig/x_twitter_scraper/models/integration_update_params.rbs +0 -77
  516. data/sig/x_twitter_scraper/models/x/community_action_result.rbs +0 -28
  517. data/sig/x_twitter_scraper/models/x/search_tweet.rbs +0 -121
  518. data/sig/x_twitter_scraper/models/x/user_profile.rbs +0 -88
  519. data/sig/x_twitter_scraper/resources/api_keys.rbs +0 -21
  520. data/sig/x_twitter_scraper/resources/bot/platform_links.rbs +0 -9
  521. data/sig/x_twitter_scraper/resources/bot.rbs +0 -9
  522. data/sig/x_twitter_scraper/resources/integrations.rbs +0 -52
@@ -3,13 +3,12 @@
3
3
  module XTwitterScraper
4
4
  module Resources
5
5
  class X
6
- # X data lookups (subscription required)
7
6
  class Users
8
7
  # X write actions (tweets, likes, follows, DMs)
9
8
  # @return [XTwitterScraper::Resources::X::Users::Follow]
10
9
  attr_reader :follow
11
10
 
12
- # Look up X user
11
+ # Get user profile with follower counts and verification
13
12
  #
14
13
  # @overload retrieve(id, request_options: {})
15
14
  #
@@ -17,27 +16,54 @@ module XTwitterScraper
17
16
  #
18
17
  # @param request_options [XTwitterScraper::RequestOptions, Hash{Symbol=>Object}, nil]
19
18
  #
20
- # @return [XTwitterScraper::Models::X::UserProfile]
19
+ # @return [XTwitterScraper::Models::UserProfile]
21
20
  #
22
21
  # @see XTwitterScraper::Models::X::UserRetrieveParams
23
22
  def retrieve(id, params = {})
24
23
  @client.request(
25
24
  method: :get,
26
25
  path: ["x/users/%1$s", id],
27
- model: XTwitterScraper::X::UserProfile,
26
+ model: XTwitterScraper::UserProfile,
28
27
  options: params[:request_options]
29
28
  )
30
29
  end
31
30
 
32
- # Get multiple users by IDs
31
+ # Remove follower
32
+ #
33
+ # @overload remove_follower(id, account:, request_options: {})
34
+ #
35
+ # @param id [String] User ID to remove from your followers
36
+ #
37
+ # @param account [String] X account identifier (@username or account ID)
38
+ #
39
+ # @param request_options [XTwitterScraper::RequestOptions, Hash{Symbol=>Object}, nil]
40
+ #
41
+ # @return [XTwitterScraper::Models::X::UserRemoveFollowerResponse]
42
+ #
43
+ # @see XTwitterScraper::Models::X::UserRemoveFollowerParams
44
+ def remove_follower(id, params)
45
+ parsed, options = XTwitterScraper::X::UserRemoveFollowerParams.dump_request(params)
46
+ @client.request(
47
+ method: :post,
48
+ path: ["x/users/%1$s/remove-follower", id],
49
+ body: parsed,
50
+ model: XTwitterScraper::Models::X::UserRemoveFollowerResponse,
51
+ options: options
52
+ )
53
+ end
54
+
55
+ # Some parameter documentations has been truncated, see
56
+ # {XTwitterScraper::Models::X::UserRetrieveBatchParams} for more details.
57
+ #
58
+ # Look up multiple users by IDs in one call
33
59
  #
34
60
  # @overload retrieve_batch(ids:, request_options: {})
35
61
  #
36
- # @param ids [String] Comma-separated user IDs (max 100)
62
+ # @param ids [String] Comma-separated numeric user IDs (1-100 values). Duplicate IDs are ignored while
37
63
  #
38
64
  # @param request_options [XTwitterScraper::RequestOptions, Hash{Symbol=>Object}, nil]
39
65
  #
40
- # @return [XTwitterScraper::Models::PaginatedUsers]
66
+ # @return [XTwitterScraper::Models::X::UserRetrieveBatchResponse]
41
67
  #
42
68
  # @see XTwitterScraper::Models::X::UserRetrieveBatchParams
43
69
  def retrieve_batch(params)
@@ -47,20 +73,27 @@ module XTwitterScraper
47
73
  method: :get,
48
74
  path: "x/users/batch",
49
75
  query: query,
50
- model: XTwitterScraper::PaginatedUsers,
76
+ model: XTwitterScraper::Models::X::UserRetrieveBatchResponse,
51
77
  options: options
52
78
  )
53
79
  end
54
80
 
55
- # Get user followers
81
+ # Some parameter documentations has been truncated, see
82
+ # {XTwitterScraper::Models::X::UserRetrieveFollowersParams} for more details.
83
+ #
84
+ # List followers of a user
56
85
  #
57
- # @overload retrieve_followers(id, cursor: nil, page_size: nil, request_options: {})
86
+ # @overload retrieve_followers(id, after: nil, cursor: nil, limit: nil, page_size: nil, request_options: {})
58
87
  #
59
88
  # @param id [String] User ID or username
60
89
  #
90
+ # @param after [String] Legacy cursor alias. Prefer cursor.
91
+ #
61
92
  # @param cursor [String] Pagination cursor for followers list
62
93
  #
63
- # @param page_size [Integer] Items per page (20-200, default 200)
94
+ # @param limit [Integer] Legacy integer page size alias for following lists. Prefer pageSize.
95
+ #
96
+ # @param page_size [Integer] Maximum user profiles requested from this page (20-200, default 200). The respon
64
97
  #
65
98
  # @param request_options [XTwitterScraper::RequestOptions, Hash{Symbol=>Object}, nil]
66
99
  #
@@ -79,14 +112,20 @@ module XTwitterScraper
79
112
  )
80
113
  end
81
114
 
82
- # Get followers you know for a user
115
+ # Some parameter documentations has been truncated, see
116
+ # {XTwitterScraper::Models::X::UserRetrieveFollowersYouKnowParams} for more
117
+ # details.
118
+ #
119
+ # List mutual followers between you and a user
83
120
  #
84
- # @overload retrieve_followers_you_know(id, cursor: nil, request_options: {})
121
+ # @overload retrieve_followers_you_know(id, cursor: nil, page_size: nil, request_options: {})
85
122
  #
86
123
  # @param id [String] User ID for followers-you-know lookup
87
124
  #
88
125
  # @param cursor [String] Pagination cursor for followers-you-know
89
126
  #
127
+ # @param page_size [Integer] Maximum user profiles requested from this page (20-200, default 200). The respon
128
+ #
90
129
  # @param request_options [XTwitterScraper::RequestOptions, Hash{Symbol=>Object}, nil]
91
130
  #
92
131
  # @return [XTwitterScraper::Models::PaginatedUsers]
@@ -98,21 +137,28 @@ module XTwitterScraper
98
137
  @client.request(
99
138
  method: :get,
100
139
  path: ["x/users/%1$s/followers-you-know", id],
101
- query: query,
140
+ query: query.transform_keys(page_size: "pageSize"),
102
141
  model: XTwitterScraper::PaginatedUsers,
103
142
  options: options
104
143
  )
105
144
  end
106
145
 
107
- # Get users this user follows
146
+ # Some parameter documentations has been truncated, see
147
+ # {XTwitterScraper::Models::X::UserRetrieveFollowingParams} for more details.
108
148
  #
109
- # @overload retrieve_following(id, cursor: nil, page_size: nil, request_options: {})
149
+ # List accounts a user follows
150
+ #
151
+ # @overload retrieve_following(id, after: nil, cursor: nil, limit: nil, page_size: nil, request_options: {})
110
152
  #
111
153
  # @param id [String] User ID or username for following lookup
112
154
  #
155
+ # @param after [String] Legacy cursor alias. Prefer cursor.
156
+ #
113
157
  # @param cursor [String] Pagination cursor for following list
114
158
  #
115
- # @param page_size [Integer] Results per page (20-200, default 200)
159
+ # @param limit [Integer] Legacy page size alias. Prefer pageSize.
160
+ #
161
+ # @param page_size [Integer] Maximum user profiles requested from this page (20-200, default 200). The respon
116
162
  #
117
163
  # @param request_options [XTwitterScraper::RequestOptions, Hash{Symbol=>Object}, nil]
118
164
  #
@@ -131,14 +177,69 @@ module XTwitterScraper
131
177
  )
132
178
  end
133
179
 
134
- # Get tweets liked by a user
180
+ # Some parameter documentations has been truncated, see
181
+ # {XTwitterScraper::Models::X::UserRetrieveLikesParams} for more details.
135
182
  #
136
- # @overload retrieve_likes(id, cursor: nil, request_options: {})
183
+ # List tweets liked by a user
137
184
  #
138
- # @param id [String] User ID
185
+ # @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: {})
186
+ #
187
+ # @param id [String] User ID or username
188
+ #
189
+ # @param any_words [String] Words or quoted phrases where any one can match. Separate with spaces, commas, o
190
+ #
191
+ # @param cashtags [String] Cashtags separated by spaces, commas, or lines.
192
+ #
193
+ # @param conversation_id [String] Conversation ID filter.
139
194
  #
140
195
  # @param cursor [String] Pagination cursor for liked tweets
141
196
  #
197
+ # @param exact_phrase [String] Exact phrase to match.
198
+ #
199
+ # @param exclude_words [String] Words or quoted phrases to exclude. Separate with spaces, commas, or lines.
200
+ #
201
+ # @param from_user [String] Filter by author username.
202
+ #
203
+ # @param hashtags [String] Hashtags separated by spaces, commas, or lines.
204
+ #
205
+ # @param in_reply_to_tweet_id [String] Only replies to this tweet ID.
206
+ #
207
+ # @param language [String] Language code filter, e.g. en or tr.
208
+ #
209
+ # @param media_type [Symbol, XTwitterScraper::Models::X::UserRetrieveLikesParams::MediaType] Filter by media type.
210
+ #
211
+ # @param mentioning [String] Filter tweets mentioning a username.
212
+ #
213
+ # @param min_faves [Integer] Minimum likes threshold.
214
+ #
215
+ # @param min_quotes [Integer] Minimum quote count threshold.
216
+ #
217
+ # @param min_replies [Integer] Minimum replies threshold.
218
+ #
219
+ # @param min_retweets [Integer] Minimum retweets threshold.
220
+ #
221
+ # @param page_size [Integer] Maximum items requested from this page (1-100, default 20). The response can con
222
+ #
223
+ # @param quotes [Symbol, XTwitterScraper::Models::X::UserRetrieveLikesParams::Quotes] Quote mode.
224
+ #
225
+ # @param quotes_of_tweet_id [String] Only quotes of this tweet ID.
226
+ #
227
+ # @param replies [Symbol, XTwitterScraper::Models::X::UserRetrieveLikesParams::Replies] Reply mode.
228
+ #
229
+ # @param retweets [Symbol, XTwitterScraper::Models::X::UserRetrieveLikesParams::Retweets] Retweet mode.
230
+ #
231
+ # @param retweets_of_tweet_id [String] Only retweets of this tweet ID.
232
+ #
233
+ # @param since_date [Date] Start date in YYYY-MM-DD format.
234
+ #
235
+ # @param to_user [String] Filter replies sent to a username.
236
+ #
237
+ # @param until_date [Date] End date in YYYY-MM-DD format.
238
+ #
239
+ # @param url [String] URL substring or domain filter.
240
+ #
241
+ # @param verified_only [Boolean] Only return tweets from verified authors.
242
+ #
142
243
  # @param request_options [XTwitterScraper::RequestOptions, Hash{Symbol=>Object}, nil]
143
244
  #
144
245
  # @return [XTwitterScraper::Models::PaginatedTweets]
@@ -150,20 +251,94 @@ module XTwitterScraper
150
251
  @client.request(
151
252
  method: :get,
152
253
  path: ["x/users/%1$s/likes", id],
153
- query: query,
254
+ query: query.transform_keys(
255
+ any_words: "anyWords",
256
+ conversation_id: "conversationId",
257
+ exact_phrase: "exactPhrase",
258
+ exclude_words: "excludeWords",
259
+ from_user: "fromUser",
260
+ in_reply_to_tweet_id: "inReplyToTweetId",
261
+ media_type: "mediaType",
262
+ min_faves: "minFaves",
263
+ min_quotes: "minQuotes",
264
+ min_replies: "minReplies",
265
+ min_retweets: "minRetweets",
266
+ page_size: "pageSize",
267
+ quotes_of_tweet_id: "quotesOfTweetId",
268
+ retweets_of_tweet_id: "retweetsOfTweetId",
269
+ since_date: "sinceDate",
270
+ to_user: "toUser",
271
+ until_date: "untilDate",
272
+ verified_only: "verifiedOnly"
273
+ ),
154
274
  model: XTwitterScraper::PaginatedTweets,
155
275
  options: options
156
276
  )
157
277
  end
158
278
 
159
- # Get media tweets by a user
279
+ # Some parameter documentations has been truncated, see
280
+ # {XTwitterScraper::Models::X::UserRetrieveMediaParams} for more details.
160
281
  #
161
- # @overload retrieve_media(id, cursor: nil, request_options: {})
282
+ # List media tweets posted by a user
162
283
  #
163
- # @param id [String] User ID for media lookup
284
+ # @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: {})
285
+ #
286
+ # @param id [String] User ID or username for media lookup
287
+ #
288
+ # @param any_words [String] Words or quoted phrases where any one can match. Separate with spaces, commas, o
289
+ #
290
+ # @param cashtags [String] Cashtags separated by spaces, commas, or lines.
291
+ #
292
+ # @param conversation_id [String] Conversation ID filter.
164
293
  #
165
294
  # @param cursor [String] Pagination cursor for media tweets
166
295
  #
296
+ # @param exact_phrase [String] Exact phrase to match.
297
+ #
298
+ # @param exclude_words [String] Words or quoted phrases to exclude. Separate with spaces, commas, or lines.
299
+ #
300
+ # @param from_user [String] Filter by author username.
301
+ #
302
+ # @param hashtags [String] Hashtags separated by spaces, commas, or lines.
303
+ #
304
+ # @param in_reply_to_tweet_id [String] Only replies to this tweet ID.
305
+ #
306
+ # @param language [String] Language code filter, e.g. en or tr.
307
+ #
308
+ # @param media_type [Symbol, XTwitterScraper::Models::X::UserRetrieveMediaParams::MediaType] Filter by media type.
309
+ #
310
+ # @param mentioning [String] Filter tweets mentioning a username.
311
+ #
312
+ # @param min_faves [Integer] Minimum likes threshold.
313
+ #
314
+ # @param min_quotes [Integer] Minimum quote count threshold.
315
+ #
316
+ # @param min_replies [Integer] Minimum replies threshold.
317
+ #
318
+ # @param min_retweets [Integer] Minimum retweets threshold.
319
+ #
320
+ # @param page_size [Integer] Maximum items requested from this page (1-100, default 20). The response can con
321
+ #
322
+ # @param quotes [Symbol, XTwitterScraper::Models::X::UserRetrieveMediaParams::Quotes] Quote mode.
323
+ #
324
+ # @param quotes_of_tweet_id [String] Only quotes of this tweet ID.
325
+ #
326
+ # @param replies [Symbol, XTwitterScraper::Models::X::UserRetrieveMediaParams::Replies] Reply mode.
327
+ #
328
+ # @param retweets [Symbol, XTwitterScraper::Models::X::UserRetrieveMediaParams::Retweets] Retweet mode.
329
+ #
330
+ # @param retweets_of_tweet_id [String] Only retweets of this tweet ID.
331
+ #
332
+ # @param since_date [Date] Start date in YYYY-MM-DD format.
333
+ #
334
+ # @param to_user [String] Filter replies sent to a username.
335
+ #
336
+ # @param until_date [Date] End date in YYYY-MM-DD format.
337
+ #
338
+ # @param url [String] URL substring or domain filter.
339
+ #
340
+ # @param verified_only [Boolean] Only return tweets from verified authors.
341
+ #
167
342
  # @param request_options [XTwitterScraper::RequestOptions, Hash{Symbol=>Object}, nil]
168
343
  #
169
344
  # @return [XTwitterScraper::Models::PaginatedTweets]
@@ -175,24 +350,98 @@ module XTwitterScraper
175
350
  @client.request(
176
351
  method: :get,
177
352
  path: ["x/users/%1$s/media", id],
178
- query: query,
353
+ query: query.transform_keys(
354
+ any_words: "anyWords",
355
+ conversation_id: "conversationId",
356
+ exact_phrase: "exactPhrase",
357
+ exclude_words: "excludeWords",
358
+ from_user: "fromUser",
359
+ in_reply_to_tweet_id: "inReplyToTweetId",
360
+ media_type: "mediaType",
361
+ min_faves: "minFaves",
362
+ min_quotes: "minQuotes",
363
+ min_replies: "minReplies",
364
+ min_retweets: "minRetweets",
365
+ page_size: "pageSize",
366
+ quotes_of_tweet_id: "quotesOfTweetId",
367
+ retweets_of_tweet_id: "retweetsOfTweetId",
368
+ since_date: "sinceDate",
369
+ to_user: "toUser",
370
+ until_date: "untilDate",
371
+ verified_only: "verifiedOnly"
372
+ ),
179
373
  model: XTwitterScraper::PaginatedTweets,
180
374
  options: options
181
375
  )
182
376
  end
183
377
 
184
- # Get tweets mentioning a user
378
+ # Some parameter documentations has been truncated, see
379
+ # {XTwitterScraper::Models::X::UserRetrieveMentionsParams} for more details.
185
380
  #
186
- # @overload retrieve_mentions(id, cursor: nil, since_time: nil, until_time: nil, request_options: {})
381
+ # List tweets mentioning a user
382
+ #
383
+ # @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: {})
187
384
  #
188
385
  # @param id [String] User ID or username for mentions lookup
189
386
  #
387
+ # @param any_words [String] Words or quoted phrases where any one can match. Separate with spaces, commas, o
388
+ #
389
+ # @param cashtags [String] Cashtags separated by spaces, commas, or lines.
390
+ #
391
+ # @param conversation_id [String] Conversation ID filter.
392
+ #
190
393
  # @param cursor [String] Pagination cursor for mentions
191
394
  #
395
+ # @param exact_phrase [String] Exact phrase to match.
396
+ #
397
+ # @param exclude_words [String] Words or quoted phrases to exclude. Separate with spaces, commas, or lines.
398
+ #
399
+ # @param from_user [String] Filter by author username.
400
+ #
401
+ # @param hashtags [String] Hashtags separated by spaces, commas, or lines.
402
+ #
403
+ # @param in_reply_to_tweet_id [String] Only replies to this tweet ID.
404
+ #
405
+ # @param language [String] Language code filter, e.g. en or tr.
406
+ #
407
+ # @param media_type [Symbol, XTwitterScraper::Models::X::UserRetrieveMentionsParams::MediaType] Filter by media type.
408
+ #
409
+ # @param mentioning [String] Filter tweets mentioning a username.
410
+ #
411
+ # @param min_faves [Integer] Minimum likes threshold.
412
+ #
413
+ # @param min_quotes [Integer] Minimum quote count threshold.
414
+ #
415
+ # @param min_replies [Integer] Minimum replies threshold.
416
+ #
417
+ # @param min_retweets [Integer] Minimum retweets threshold.
418
+ #
419
+ # @param page_size [Integer] Maximum items requested from this page (1-100, default 20). The response can con
420
+ #
421
+ # @param quotes [Symbol, XTwitterScraper::Models::X::UserRetrieveMentionsParams::Quotes] Quote mode.
422
+ #
423
+ # @param quotes_of_tweet_id [String] Only quotes of this tweet ID.
424
+ #
425
+ # @param replies [Symbol, XTwitterScraper::Models::X::UserRetrieveMentionsParams::Replies] Reply mode.
426
+ #
427
+ # @param retweets [Symbol, XTwitterScraper::Models::X::UserRetrieveMentionsParams::Retweets] Retweet mode.
428
+ #
429
+ # @param retweets_of_tweet_id [String] Only retweets of this tweet ID.
430
+ #
431
+ # @param since_date [Date] Start date in YYYY-MM-DD format.
432
+ #
192
433
  # @param since_time [String] Unix timestamp - return mentions after this time
193
434
  #
435
+ # @param to_user [String] Filter replies sent to a username.
436
+ #
437
+ # @param until_date [Date] End date in YYYY-MM-DD format.
438
+ #
194
439
  # @param until_time [String] Unix timestamp - return mentions before this time
195
440
  #
441
+ # @param url [String] URL substring or domain filter.
442
+ #
443
+ # @param verified_only [Boolean] Only return tweets from verified authors.
444
+ #
196
445
  # @param request_options [XTwitterScraper::RequestOptions, Hash{Symbol=>Object}, nil]
197
446
  #
198
447
  # @return [XTwitterScraper::Models::PaginatedTweets]
@@ -204,7 +453,130 @@ module XTwitterScraper
204
453
  @client.request(
205
454
  method: :get,
206
455
  path: ["x/users/%1$s/mentions", id],
207
- query: query.transform_keys(since_time: "sinceTime", until_time: "untilTime"),
456
+ query: query.transform_keys(
457
+ any_words: "anyWords",
458
+ conversation_id: "conversationId",
459
+ exact_phrase: "exactPhrase",
460
+ exclude_words: "excludeWords",
461
+ from_user: "fromUser",
462
+ in_reply_to_tweet_id: "inReplyToTweetId",
463
+ media_type: "mediaType",
464
+ min_faves: "minFaves",
465
+ min_quotes: "minQuotes",
466
+ min_replies: "minReplies",
467
+ min_retweets: "minRetweets",
468
+ page_size: "pageSize",
469
+ quotes_of_tweet_id: "quotesOfTweetId",
470
+ retweets_of_tweet_id: "retweetsOfTweetId",
471
+ since_date: "sinceDate",
472
+ since_time: "sinceTime",
473
+ to_user: "toUser",
474
+ until_date: "untilDate",
475
+ until_time: "untilTime",
476
+ verified_only: "verifiedOnly"
477
+ ),
478
+ model: XTwitterScraper::PaginatedTweets,
479
+ options: options
480
+ )
481
+ end
482
+
483
+ # Some parameter documentations has been truncated, see
484
+ # {XTwitterScraper::Models::X::UserRetrieveRepliesParams} for more details.
485
+ #
486
+ # Returns the user's timeline with replies included by default.
487
+ #
488
+ # @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: {})
489
+ #
490
+ # @param id [String] X user ID or username
491
+ #
492
+ # @param any_words [String] Words or quoted phrases where any one can match. Separate with spaces, commas, o
493
+ #
494
+ # @param cashtags [String] Cashtags separated by spaces, commas, or lines.
495
+ #
496
+ # @param conversation_id [String] Conversation ID filter.
497
+ #
498
+ # @param cursor [String] Pagination cursor for user replies
499
+ #
500
+ # @param exact_phrase [String] Exact phrase to match.
501
+ #
502
+ # @param exclude_words [String] Words or quoted phrases to exclude. Separate with spaces, commas, or lines.
503
+ #
504
+ # @param from_user [String] Filter by author username.
505
+ #
506
+ # @param hashtags [String] Hashtags separated by spaces, commas, or lines.
507
+ #
508
+ # @param include_parent_tweet [Boolean] Include parent tweet for replies
509
+ #
510
+ # @param in_reply_to_tweet_id [String] Only replies to this tweet ID.
511
+ #
512
+ # @param language [String] Language code filter, e.g. en or tr.
513
+ #
514
+ # @param media_type [Symbol, XTwitterScraper::Models::X::UserRetrieveRepliesParams::MediaType] Filter by media type.
515
+ #
516
+ # @param mentioning [String] Filter tweets mentioning a username.
517
+ #
518
+ # @param min_faves [Integer] Minimum likes threshold.
519
+ #
520
+ # @param min_quotes [Integer] Minimum quote count threshold.
521
+ #
522
+ # @param min_replies [Integer] Minimum replies threshold.
523
+ #
524
+ # @param min_retweets [Integer] Minimum retweets threshold.
525
+ #
526
+ # @param page_size [Integer] Maximum items requested from this page (1-100, default 20). The response can con
527
+ #
528
+ # @param quotes [Symbol, XTwitterScraper::Models::X::UserRetrieveRepliesParams::Quotes] Quote mode.
529
+ #
530
+ # @param quotes_of_tweet_id [String] Only quotes of this tweet ID.
531
+ #
532
+ # @param replies [Symbol, XTwitterScraper::Models::X::UserRetrieveRepliesParams::Replies] Reply mode.
533
+ #
534
+ # @param retweets [Symbol, XTwitterScraper::Models::X::UserRetrieveRepliesParams::Retweets] Retweet mode.
535
+ #
536
+ # @param retweets_of_tweet_id [String] Only retweets of this tweet ID.
537
+ #
538
+ # @param since_date [Date] Start date in YYYY-MM-DD format.
539
+ #
540
+ # @param to_user [String] Filter replies sent to a username.
541
+ #
542
+ # @param until_date [Date] End date in YYYY-MM-DD format.
543
+ #
544
+ # @param url [String] URL substring or domain filter.
545
+ #
546
+ # @param verified_only [Boolean] Only return tweets from verified authors.
547
+ #
548
+ # @param request_options [XTwitterScraper::RequestOptions, Hash{Symbol=>Object}, nil]
549
+ #
550
+ # @return [XTwitterScraper::Models::PaginatedTweets]
551
+ #
552
+ # @see XTwitterScraper::Models::X::UserRetrieveRepliesParams
553
+ def retrieve_replies(id, params = {})
554
+ parsed, options = XTwitterScraper::X::UserRetrieveRepliesParams.dump_request(params)
555
+ query = XTwitterScraper::Internal::Util.encode_query_params(parsed)
556
+ @client.request(
557
+ method: :get,
558
+ path: ["x/users/%1$s/replies", id],
559
+ query: query.transform_keys(
560
+ any_words: "anyWords",
561
+ conversation_id: "conversationId",
562
+ exact_phrase: "exactPhrase",
563
+ exclude_words: "excludeWords",
564
+ from_user: "fromUser",
565
+ include_parent_tweet: "includeParentTweet",
566
+ in_reply_to_tweet_id: "inReplyToTweetId",
567
+ media_type: "mediaType",
568
+ min_faves: "minFaves",
569
+ min_quotes: "minQuotes",
570
+ min_replies: "minReplies",
571
+ min_retweets: "minRetweets",
572
+ page_size: "pageSize",
573
+ quotes_of_tweet_id: "quotesOfTweetId",
574
+ retweets_of_tweet_id: "retweetsOfTweetId",
575
+ since_date: "sinceDate",
576
+ to_user: "toUser",
577
+ until_date: "untilDate",
578
+ verified_only: "verifiedOnly"
579
+ ),
208
580
  model: XTwitterScraper::PaginatedTweets,
209
581
  options: options
210
582
  )
@@ -235,18 +607,73 @@ module XTwitterScraper
235
607
  )
236
608
  end
237
609
 
238
- # Get recent tweets by a user
610
+ # Some parameter documentations has been truncated, see
611
+ # {XTwitterScraper::Models::X::UserRetrieveTweetsParams} for more details.
612
+ #
613
+ # List recent tweets posted by a user
239
614
  #
240
- # @overload retrieve_tweets(id, cursor: nil, include_parent_tweet: nil, include_replies: nil, request_options: {})
615
+ # @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: {})
241
616
  #
242
617
  # @param id [String] X user ID or username
243
618
  #
619
+ # @param any_words [String] Words or quoted phrases where any one can match. Separate with spaces, commas, o
620
+ #
621
+ # @param cashtags [String] Cashtags separated by spaces, commas, or lines.
622
+ #
623
+ # @param conversation_id [String] Conversation ID filter.
624
+ #
244
625
  # @param cursor [String] Pagination cursor for user tweets
245
626
  #
627
+ # @param exact_phrase [String] Exact phrase to match.
628
+ #
629
+ # @param exclude_words [String] Words or quoted phrases to exclude. Separate with spaces, commas, or lines.
630
+ #
631
+ # @param from_user [String] Filter by author username.
632
+ #
633
+ # @param hashtags [String] Hashtags separated by spaces, commas, or lines.
634
+ #
246
635
  # @param include_parent_tweet [Boolean] Include parent tweet for replies
247
636
  #
248
637
  # @param include_replies [Boolean] Include reply tweets
249
638
  #
639
+ # @param in_reply_to_tweet_id [String] Only replies to this tweet ID.
640
+ #
641
+ # @param language [String] Language code filter, e.g. en or tr.
642
+ #
643
+ # @param media_type [Symbol, XTwitterScraper::Models::X::UserRetrieveTweetsParams::MediaType] Filter by media type.
644
+ #
645
+ # @param mentioning [String] Filter tweets mentioning a username.
646
+ #
647
+ # @param min_faves [Integer] Minimum likes threshold.
648
+ #
649
+ # @param min_quotes [Integer] Minimum quote count threshold.
650
+ #
651
+ # @param min_replies [Integer] Minimum replies threshold.
652
+ #
653
+ # @param min_retweets [Integer] Minimum retweets threshold.
654
+ #
655
+ # @param page_size [Integer] Maximum items requested from this page (1-100, default 20). The response can con
656
+ #
657
+ # @param quotes [Symbol, XTwitterScraper::Models::X::UserRetrieveTweetsParams::Quotes] Quote mode.
658
+ #
659
+ # @param quotes_of_tweet_id [String] Only quotes of this tweet ID.
660
+ #
661
+ # @param replies [Symbol, XTwitterScraper::Models::X::UserRetrieveTweetsParams::Replies] Reply mode.
662
+ #
663
+ # @param retweets [Symbol, XTwitterScraper::Models::X::UserRetrieveTweetsParams::Retweets] Retweet mode.
664
+ #
665
+ # @param retweets_of_tweet_id [String] Only retweets of this tweet ID.
666
+ #
667
+ # @param since_date [Date] Start date in YYYY-MM-DD format.
668
+ #
669
+ # @param to_user [String] Filter replies sent to a username.
670
+ #
671
+ # @param until_date [Date] End date in YYYY-MM-DD format.
672
+ #
673
+ # @param url [String] URL substring or domain filter.
674
+ #
675
+ # @param verified_only [Boolean] Only return tweets from verified authors.
676
+ #
250
677
  # @param request_options [XTwitterScraper::RequestOptions, Hash{Symbol=>Object}, nil]
251
678
  #
252
679
  # @return [XTwitterScraper::Models::PaginatedTweets]
@@ -259,22 +686,46 @@ module XTwitterScraper
259
686
  method: :get,
260
687
  path: ["x/users/%1$s/tweets", id],
261
688
  query: query.transform_keys(
689
+ any_words: "anyWords",
690
+ conversation_id: "conversationId",
691
+ exact_phrase: "exactPhrase",
692
+ exclude_words: "excludeWords",
693
+ from_user: "fromUser",
262
694
  include_parent_tweet: "includeParentTweet",
263
- include_replies: "includeReplies"
695
+ include_replies: "includeReplies",
696
+ in_reply_to_tweet_id: "inReplyToTweetId",
697
+ media_type: "mediaType",
698
+ min_faves: "minFaves",
699
+ min_quotes: "minQuotes",
700
+ min_replies: "minReplies",
701
+ min_retweets: "minRetweets",
702
+ page_size: "pageSize",
703
+ quotes_of_tweet_id: "quotesOfTweetId",
704
+ retweets_of_tweet_id: "retweetsOfTweetId",
705
+ since_date: "sinceDate",
706
+ to_user: "toUser",
707
+ until_date: "untilDate",
708
+ verified_only: "verifiedOnly"
264
709
  ),
265
710
  model: XTwitterScraper::PaginatedTweets,
266
711
  options: options
267
712
  )
268
713
  end
269
714
 
270
- # Get verified followers
715
+ # Some parameter documentations has been truncated, see
716
+ # {XTwitterScraper::Models::X::UserRetrieveVerifiedFollowersParams} for more
717
+ # details.
718
+ #
719
+ # List verified followers of a user
271
720
  #
272
- # @overload retrieve_verified_followers(id, cursor: nil, request_options: {})
721
+ # @overload retrieve_verified_followers(id, cursor: nil, page_size: nil, request_options: {})
273
722
  #
274
723
  # @param id [String] User ID or username for verified followers
275
724
  #
276
725
  # @param cursor [String] Pagination cursor for verified followers
277
726
  #
727
+ # @param page_size [Integer] Maximum user profiles requested from this page (20-200, default 200). The respon
728
+ #
278
729
  # @param request_options [XTwitterScraper::RequestOptions, Hash{Symbol=>Object}, nil]
279
730
  #
280
731
  # @return [XTwitterScraper::Models::PaginatedUsers]
@@ -286,7 +737,7 @@ module XTwitterScraper
286
737
  @client.request(
287
738
  method: :get,
288
739
  path: ["x/users/%1$s/verified-followers", id],
289
- query: query,
740
+ query: query.transform_keys(page_size: "pageSize"),
290
741
  model: XTwitterScraper::PaginatedUsers,
291
742
  options: options
292
743
  )