x-twitter-scraper 0.4.2 → 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 +23 -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 +141 -84
  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
@@ -8,7 +8,7 @@ module XTwitterScraper
8
8
  #
9
9
  # @overload retrieve(id, request_options: {})
10
10
  #
11
- # @param id [String] Resource ID (stringified bigint)
11
+ # @param id [String] Resource ID returned by the matching create or list endpoint.
12
12
  #
13
13
  # @param request_options [XTwitterScraper::RequestOptions, Hash{Symbol=>Object}, nil]
14
14
  #
@@ -24,15 +24,18 @@ module XTwitterScraper
24
24
  )
25
25
  end
26
26
 
27
+ # Some parameter documentations has been truncated, see
28
+ # {XTwitterScraper::Models::EventListParams} for more details.
29
+ #
27
30
  # List events
28
31
  #
29
- # @overload list(after: nil, event_type: nil, limit: nil, monitor_id: nil, request_options: {})
32
+ # @overload list(cursor: nil, event_type: nil, limit: nil, monitor_id: nil, request_options: {})
30
33
  #
31
- # @param after [String] Cursor for keyset pagination
34
+ # @param cursor [String] Cursor for keyset pagination from prior response next_cursor
32
35
  #
33
36
  # @param event_type [Symbol, XTwitterScraper::Models::EventType] Filter events by type
34
37
  #
35
- # @param limit [Integer] Maximum number of items to return (1-100, default 50)
38
+ # @param limit [Integer] Maximum number of items to return (1-100, default 50). For paid per-result endpo
36
39
  #
37
40
  # @param monitor_id [String] Filter events by monitor ID
38
41
  #
@@ -49,7 +52,6 @@ module XTwitterScraper
49
52
  path: "events",
50
53
  query: query.transform_keys(event_type: "eventType", monitor_id: "monitorId"),
51
54
  model: XTwitterScraper::Models::EventListResponse,
52
- security: {auth_api_key: true},
53
55
  options: options
54
56
  )
55
57
  end
@@ -2,15 +2,15 @@
2
2
 
3
3
  module XTwitterScraper
4
4
  module Resources
5
- # Bulk data extraction (20 tool types)
5
+ # Bulk data extraction (23 tool types)
6
6
  class Extractions
7
7
  # Get extraction results
8
8
  #
9
- # @overload retrieve(id, after: nil, limit: nil, request_options: {})
9
+ # @overload retrieve(id, cursor: nil, limit: nil, request_options: {})
10
10
  #
11
11
  # @param id [String] Extraction public ID (UUID)
12
12
  #
13
- # @param after [String] Cursor for keyset pagination
13
+ # @param cursor [String] Cursor for keyset pagination from prior response next_cursor
14
14
  #
15
15
  # @param limit [Integer] Maximum number of results to return (1-1000, default 100)
16
16
  #
@@ -31,13 +31,16 @@ module XTwitterScraper
31
31
  )
32
32
  end
33
33
 
34
+ # Some parameter documentations has been truncated, see
35
+ # {XTwitterScraper::Models::ExtractionListParams} for more details.
36
+ #
34
37
  # List extraction jobs
35
38
  #
36
- # @overload list(after: nil, limit: nil, status: nil, tool_type: nil, request_options: {})
39
+ # @overload list(cursor: nil, limit: nil, status: nil, tool_type: nil, request_options: {})
37
40
  #
38
- # @param after [String] Cursor for keyset pagination
41
+ # @param cursor [String] Cursor for keyset pagination from prior response next_cursor
39
42
  #
40
- # @param limit [Integer] Maximum number of items to return (1-100, default 50)
43
+ # @param limit [Integer] Maximum number of items to return (1-100, default 50). For paid per-result endpo
41
44
  #
42
45
  # @param status [Symbol, XTwitterScraper::Models::ExtractionListParams::Status] Filter by job status
43
46
  #
@@ -60,30 +63,91 @@ module XTwitterScraper
60
63
  )
61
64
  end
62
65
 
66
+ # Some parameter documentations has been truncated, see
67
+ # {XTwitterScraper::Models::ExtractionEstimateCostParams} for more details.
68
+ #
63
69
  # Estimate extraction cost
64
70
  #
65
- # @overload estimate_cost(tool_type:, advanced_query: nil, exact_phrase: nil, exclude_words: nil, search_query: nil, target_community_id: nil, target_list_id: nil, target_space_id: nil, target_tweet_id: nil, target_username: nil, request_options: {})
71
+ # @overload estimate_cost(tool_type:, advanced_query: nil, any_words: nil, bounding_box: nil, cashtags: nil, conversation_id: nil, exact_phrase: nil, exclude_words: nil, from_user: nil, hashtags: nil, in_reply_to_tweet_id: nil, language: nil, list_id: nil, media_type: nil, mentioning: nil, min_faves: nil, min_quotes: nil, min_replies: nil, min_retweets: nil, place: nil, place_country: nil, point_radius: nil, quotes: nil, quotes_of_tweet_id: nil, replies: nil, results_limit: nil, retweets: nil, retweets_of_tweet_id: nil, search_query: nil, since_date: nil, target_community_id: nil, target_list_id: nil, target_space_id: nil, target_tweet_id: nil, target_username: nil, to_user: nil, until_date: nil, url: nil, verified_only: nil, request_options: {})
66
72
  #
67
73
  # @param tool_type [Symbol, XTwitterScraper::Models::ExtractionEstimateCostParams::ToolType] Identifier for the extraction tool used to run a job.
68
74
  #
69
75
  # @param advanced_query [String] Raw advanced query string appended to the estimate (tweet_search_extractor)
70
76
  #
77
+ # @param any_words [String] Alternative words or quoted phrases for estimated results. Separate with spaces,
78
+ #
79
+ # @param bounding_box [String] Geo bounding box used for estimation, e.g. -74.1 40.6 -73.9 40.8 (tweet_search_e
80
+ #
81
+ # @param cashtags [String] Cashtags applied to the estimate, separated by spaces, commas, or lines.
82
+ #
83
+ # @param conversation_id [String] Conversation ID filter used for estimation (tweet_search_extractor)
84
+ #
71
85
  # @param exact_phrase [String] Exact phrase filter for search estimation
72
86
  #
73
- # @param exclude_words [String] Words excluded from estimated search results
87
+ # @param exclude_words [String] Words or quoted phrases excluded from estimated results. Separate with spaces, c
88
+ #
89
+ # @param from_user [String] Estimate only tweets from this author username (tweet_search_extractor)
90
+ #
91
+ # @param hashtags [String] Hashtags applied to the estimate, separated by spaces, commas, or lines.
92
+ #
93
+ # @param in_reply_to_tweet_id [String] Estimate only replies to this tweet ID (tweet_search_extractor)
94
+ #
95
+ # @param language [String] Language code used for estimate filtering (tweet_search_extractor)
96
+ #
97
+ # @param list_id [String] Estimate search results within this list ID (tweet_search_extractor)
98
+ #
99
+ # @param media_type [Symbol, XTwitterScraper::Models::ExtractionEstimateCostParams::MediaType] Media type used for estimate filtering (tweet_search_extractor)
100
+ #
101
+ # @param mentioning [String] Estimate tweets mentioning this username (tweet_search_extractor)
102
+ #
103
+ # @param min_faves [Integer] Minimum likes threshold for estimated results (tweet_search_extractor)
104
+ #
105
+ # @param min_quotes [Integer] Minimum quote count threshold for estimated results (tweet_search_extractor)
106
+ #
107
+ # @param min_replies [Integer] Minimum replies threshold for estimated results (tweet_search_extractor)
74
108
  #
75
- # @param search_query [String]
109
+ # @param min_retweets [Integer] Minimum retweets threshold for estimated results (tweet_search_extractor)
76
110
  #
77
- # @param target_community_id [String]
111
+ # @param place [String] Estimate search results within this place ID (tweet_search_extractor)
78
112
  #
79
- # @param target_list_id [String]
113
+ # @param place_country [String] Estimate search results within this country code (tweet_search_extractor)
80
114
  #
81
- # @param target_space_id [String]
115
+ # @param point_radius [String] Geo point radius used for estimation, e.g. -73.99 40.73 25mi (tweet_search_extra
116
+ #
117
+ # @param quotes [Symbol, XTwitterScraper::Models::ExtractionEstimateCostParams::Quotes] Quote mode used for estimation (tweet_search_extractor)
118
+ #
119
+ # @param quotes_of_tweet_id [String] Estimate only quotes of this tweet ID (tweet_search_extractor)
120
+ #
121
+ # @param replies [Symbol, XTwitterScraper::Models::ExtractionEstimateCostParams::Replies] Reply mode used for estimation (tweet_search_extractor)
122
+ #
123
+ # @param results_limit [Integer] Maximum number of results to estimate. When set, the estimate caps projected res
124
+ #
125
+ # @param retweets [Symbol, XTwitterScraper::Models::ExtractionEstimateCostParams::Retweets] Retweet mode used for estimation (tweet_search_extractor)
126
+ #
127
+ # @param retweets_of_tweet_id [String] Estimate only retweets of this tweet ID (tweet_search_extractor)
128
+ #
129
+ # @param search_query [String] Required for tweet_search_extractor & community_search.
130
+ #
131
+ # @param since_date [Date] Estimate start date in YYYY-MM-DD format (tweet_search_extractor)
132
+ #
133
+ # @param target_community_id [String] Required for community_post_extractor & community_search.
134
+ #
135
+ # @param target_list_id [String] Required for list_follower_explorer, list_member_extractor & list_post_extractor
136
+ #
137
+ # @param target_space_id [String] Required for space_explorer.
82
138
  #
83
139
  # @param target_tweet_id [String]
84
140
  #
85
141
  # @param target_username [String]
86
142
  #
143
+ # @param to_user [String] Estimate replies sent to this username (tweet_search_extractor)
144
+ #
145
+ # @param until_date [Date] Estimate end date in YYYY-MM-DD format (tweet_search_extractor)
146
+ #
147
+ # @param url [String] URL substring or domain filter used for estimation (tweet_search_extractor)
148
+ #
149
+ # @param verified_only [Boolean] Estimate only verified authors (tweet_search_extractor)
150
+ #
87
151
  # @param request_options [XTwitterScraper::RequestOptions, Hash{Symbol=>Object}, nil]
88
152
  #
89
153
  # @return [XTwitterScraper::Models::ExtractionEstimateCostResponse]
@@ -102,7 +166,7 @@ module XTwitterScraper
102
166
 
103
167
  # Export extraction results
104
168
  #
105
- # @overload export_results(id, format_: nil, request_options: {})
169
+ # @overload export_results(id, format_:, request_options: {})
106
170
  #
107
171
  # @param id [String] Extraction public ID
108
172
  #
@@ -113,7 +177,7 @@ module XTwitterScraper
113
177
  # @return [StringIO]
114
178
  #
115
179
  # @see XTwitterScraper::Models::ExtractionExportResultsParams
116
- def export_results(id, params = {})
180
+ def export_results(id, params)
117
181
  parsed, options = XTwitterScraper::ExtractionExportResultsParams.dump_request(params)
118
182
  query = XTwitterScraper::Internal::Util.encode_query_params(parsed)
119
183
  @client.request(
@@ -126,30 +190,91 @@ module XTwitterScraper
126
190
  )
127
191
  end
128
192
 
193
+ # Some parameter documentations has been truncated, see
194
+ # {XTwitterScraper::Models::ExtractionRunParams} for more details.
195
+ #
129
196
  # Run extraction
130
197
  #
131
- # @overload run(tool_type:, advanced_query: nil, exact_phrase: nil, exclude_words: nil, search_query: nil, target_community_id: nil, target_list_id: nil, target_space_id: nil, target_tweet_id: nil, target_username: nil, request_options: {})
198
+ # @overload run(tool_type:, advanced_query: nil, any_words: nil, bounding_box: nil, cashtags: nil, conversation_id: nil, exact_phrase: nil, exclude_words: nil, from_user: nil, hashtags: nil, in_reply_to_tweet_id: nil, language: nil, list_id: nil, media_type: nil, mentioning: nil, min_faves: nil, min_quotes: nil, min_replies: nil, min_retweets: nil, place: nil, place_country: nil, point_radius: nil, quotes: nil, quotes_of_tweet_id: nil, replies: nil, results_limit: nil, retweets: nil, retweets_of_tweet_id: nil, search_query: nil, since_date: nil, target_community_id: nil, target_list_id: nil, target_space_id: nil, target_tweet_id: nil, target_username: nil, to_user: nil, until_date: nil, url: nil, verified_only: nil, request_options: {})
132
199
  #
133
200
  # @param tool_type [Symbol, XTwitterScraper::Models::ExtractionRunParams::ToolType] Identifier for the extraction tool used to run a job.
134
201
  #
135
202
  # @param advanced_query [String] Raw advanced search query appended as-is (tweet_search_extractor)
136
203
  #
204
+ # @param any_words [String] Words or quoted phrases where any one can match. Separate with spaces, commas, o
205
+ #
206
+ # @param bounding_box [String] Geo bounding box, e.g. -74.1 40.6 -73.9 40.8 (tweet_search_extractor)
207
+ #
208
+ # @param cashtags [String] Cashtags separated by spaces, commas, or lines. (tweet_search_extractor)
209
+ #
210
+ # @param conversation_id [String] Conversation ID filter (tweet_search_extractor)
211
+ #
137
212
  # @param exact_phrase [String] Exact phrase to match (tweet_search_extractor)
138
213
  #
139
- # @param exclude_words [String] Words to exclude from results (tweet_search_extractor)
214
+ # @param exclude_words [String] Words or quoted phrases to exclude. Separate with spaces, commas, or lines. (twe
215
+ #
216
+ # @param from_user [String] Filter by author username (tweet_search_extractor)
217
+ #
218
+ # @param hashtags [String] Hashtags separated by spaces, commas, or lines. (tweet_search_extractor)
219
+ #
220
+ # @param in_reply_to_tweet_id [String] Only replies to this tweet ID (tweet_search_extractor)
221
+ #
222
+ # @param language [String] Language code filter (tweet_search_extractor)
223
+ #
224
+ # @param list_id [String] Search within a list ID (tweet_search_extractor)
225
+ #
226
+ # @param media_type [Symbol, XTwitterScraper::Models::ExtractionRunParams::MediaType] Media type filter (tweet_search_extractor)
227
+ #
228
+ # @param mentioning [String] Filter tweets mentioning a username (tweet_search_extractor)
229
+ #
230
+ # @param min_faves [Integer] Minimum likes threshold (tweet_search_extractor)
231
+ #
232
+ # @param min_quotes [Integer] Minimum quote count threshold (tweet_search_extractor)
233
+ #
234
+ # @param min_replies [Integer] Minimum replies threshold (tweet_search_extractor)
140
235
  #
141
- # @param search_query [String]
236
+ # @param min_retweets [Integer] Minimum retweets threshold (tweet_search_extractor)
142
237
  #
143
- # @param target_community_id [String]
238
+ # @param place [String] Search within a place ID (tweet_search_extractor)
144
239
  #
145
- # @param target_list_id [String]
240
+ # @param place_country [String] Search within a country code (tweet_search_extractor)
146
241
  #
147
- # @param target_space_id [String]
242
+ # @param point_radius [String] Geo point radius, e.g. -73.99 40.73 25mi (tweet_search_extractor)
243
+ #
244
+ # @param quotes [Symbol, XTwitterScraper::Models::ExtractionRunParams::Quotes] Quote mode (tweet_search_extractor)
245
+ #
246
+ # @param quotes_of_tweet_id [String] Only quotes of this tweet ID (tweet_search_extractor)
247
+ #
248
+ # @param replies [Symbol, XTwitterScraper::Models::ExtractionRunParams::Replies] Reply mode (tweet_search_extractor)
249
+ #
250
+ # @param results_limit [Integer] Maximum number of results to extract. When set, the extraction stops after reach
251
+ #
252
+ # @param retweets [Symbol, XTwitterScraper::Models::ExtractionRunParams::Retweets] Retweet mode (tweet_search_extractor)
253
+ #
254
+ # @param retweets_of_tweet_id [String] Only retweets of this tweet ID (tweet_search_extractor)
255
+ #
256
+ # @param search_query [String] Required for tweet_search_extractor & community_search.
257
+ #
258
+ # @param since_date [Date] Start date YYYY-MM-DD (tweet_search_extractor)
259
+ #
260
+ # @param target_community_id [String] Required for community_post_extractor & community_search.
261
+ #
262
+ # @param target_list_id [String] Required for list_follower_explorer, list_member_extractor & list_post_extractor
263
+ #
264
+ # @param target_space_id [String] Required for space_explorer.
148
265
  #
149
266
  # @param target_tweet_id [String]
150
267
  #
151
268
  # @param target_username [String]
152
269
  #
270
+ # @param to_user [String] Filter replies sent to a username (tweet_search_extractor)
271
+ #
272
+ # @param until_date [Date] End date YYYY-MM-DD (tweet_search_extractor)
273
+ #
274
+ # @param url [String] URL substring or domain filter (tweet_search_extractor)
275
+ #
276
+ # @param verified_only [Boolean] Only verified authors (tweet_search_extractor)
277
+ #
153
278
  # @param request_options [XTwitterScraper::RequestOptions, Hash{Symbol=>Object}, nil]
154
279
  #
155
280
  # @return [XTwitterScraper::Models::ExtractionRunResponse]
@@ -0,0 +1,108 @@
1
+ # frozen_string_literal: true
2
+
3
+ module XTwitterScraper
4
+ module Resources
5
+ # Accountless prepaid access for paid read endpoints
6
+ class GuestWallets
7
+ # Some parameter documentations has been truncated, see
8
+ # {XTwitterScraper::Models::GuestWalletCreateParams} for more details.
9
+ #
10
+ # Create a one-use Stripe-hosted checkout after the user explicitly confirms a
11
+ # $10-$250 USD amount. This request creates no charge by itself. The user opens
12
+ # checkout_url on Stripe. This endpoint returns the paid-read API key without
13
+ # requiring an Xquik account, email, dashboard, or Xquik web page. An idempotent
14
+ # replay returns the same key.
15
+ #
16
+ # @overload create(amount_minor:, idempotency_key:, currency: :usd, request_options: {})
17
+ #
18
+ # @param amount_minor [Integer] Body param: Confirmed USD amount in cents.
19
+ #
20
+ # @param idempotency_key [String] Header param: Generate a cryptographically random UUID v4. Reuse it only to retr
21
+ #
22
+ # @param currency [Symbol, :usd] Body param
23
+ #
24
+ # @param request_options [XTwitterScraper::RequestOptions, Hash{Symbol=>Object}, nil]
25
+ #
26
+ # @return [XTwitterScraper::Models::GuestWalletCreateResponse]
27
+ #
28
+ # @see XTwitterScraper::Models::GuestWalletCreateParams
29
+ def create(params)
30
+ parsed, options = XTwitterScraper::GuestWalletCreateParams.dump_request(params)
31
+ header_params = {idempotency_key: "idempotency-key"}
32
+ @client.request(
33
+ method: :post,
34
+ path: "guest-wallets",
35
+ headers: parsed.slice(*header_params.keys).transform_keys(header_params),
36
+ body: parsed.except(*header_params.keys),
37
+ model: XTwitterScraper::Models::GuestWalletCreateResponse,
38
+ security: {},
39
+ options: options
40
+ )
41
+ end
42
+
43
+ # Poll after Stripe payment. Use usable to decide whether paid reads can run. An
44
+ # active wallet can remain usable while a top-up is pending. A new wallet becomes
45
+ # usable only after verified webhook fulfillment. Send the guest key as
46
+ # Authorization: Bearer.
47
+ #
48
+ # @overload retrieve_status(request_options: {})
49
+ #
50
+ # @param request_options [XTwitterScraper::RequestOptions, Hash{Symbol=>Object}, nil]
51
+ #
52
+ # @return [XTwitterScraper::Models::GuestWalletRetrieveStatusResponse]
53
+ #
54
+ # @see XTwitterScraper::Models::GuestWalletRetrieveStatusParams
55
+ def retrieve_status(params = {})
56
+ @client.request(
57
+ method: :get,
58
+ path: "guest-wallets/status",
59
+ model: XTwitterScraper::Models::GuestWalletRetrieveStatusResponse,
60
+ security: {auth_api_key: true},
61
+ options: params[:request_options]
62
+ )
63
+ end
64
+
65
+ # Some parameter documentations has been truncated, see
66
+ # {XTwitterScraper::Models::GuestWalletTopupParams} for more details.
67
+ #
68
+ # Create a one-use Stripe-hosted checkout for an existing paid-read guest key
69
+ # after the user explicitly confirms a $10-$250 USD amount. The key remains the
70
+ # same. This request creates no charge by itself and never redirects through an
71
+ # Xquik web page.
72
+ #
73
+ # @overload topup(amount_minor:, idempotency_key:, currency: :usd, request_options: {})
74
+ #
75
+ # @param amount_minor [Integer] Body param: Confirmed USD amount in cents.
76
+ #
77
+ # @param idempotency_key [String] Header param: Generate a cryptographically random UUID v4. Reuse it only to retr
78
+ #
79
+ # @param currency [Symbol, :usd] Body param
80
+ #
81
+ # @param request_options [XTwitterScraper::RequestOptions, Hash{Symbol=>Object}, nil]
82
+ #
83
+ # @return [XTwitterScraper::Models::GuestWalletTopupResponse]
84
+ #
85
+ # @see XTwitterScraper::Models::GuestWalletTopupParams
86
+ def topup(params)
87
+ parsed, options = XTwitterScraper::GuestWalletTopupParams.dump_request(params)
88
+ header_params = {idempotency_key: "idempotency-key"}
89
+ @client.request(
90
+ method: :post,
91
+ path: "guest-wallets/topups",
92
+ headers: parsed.slice(*header_params.keys).transform_keys(header_params),
93
+ body: parsed.except(*header_params.keys),
94
+ model: XTwitterScraper::Models::GuestWalletTopupResponse,
95
+ security: {auth_api_key: true},
96
+ options: options
97
+ )
98
+ end
99
+
100
+ # @api private
101
+ #
102
+ # @param client [XTwitterScraper::Client]
103
+ def initialize(client:)
104
+ @client = client
105
+ end
106
+ end
107
+ end
108
+ end
@@ -0,0 +1,128 @@
1
+ # frozen_string_literal: true
2
+
3
+ module XTwitterScraper
4
+ module Resources
5
+ class Monitors
6
+ # Real-time X account monitoring
7
+ class Keywords
8
+ # Creates an instant keyword monitor. Keyword monitors are unlimited. Active
9
+ # monitors check every 1 second and cost 21 credits per hour. Events and webhook
10
+ # deliveries are included. Creation requires available credits for the first
11
+ # hourly charge.
12
+ #
13
+ # @overload create(event_types:, query:, request_options: {})
14
+ #
15
+ # @param event_types [Array<Symbol, XTwitterScraper::Models::EventType>] Array of event types to subscribe to.
16
+ #
17
+ # @param query [String] X search query to monitor. Whitespace is normalized.
18
+ #
19
+ # @param request_options [XTwitterScraper::RequestOptions, Hash{Symbol=>Object}, nil]
20
+ #
21
+ # @return [XTwitterScraper::Models::Monitors::KeywordCreateResponse]
22
+ #
23
+ # @see XTwitterScraper::Models::Monitors::KeywordCreateParams
24
+ def create(params)
25
+ parsed, options = XTwitterScraper::Monitors::KeywordCreateParams.dump_request(params)
26
+ @client.request(
27
+ method: :post,
28
+ path: "monitors/keywords",
29
+ body: parsed,
30
+ model: XTwitterScraper::Models::Monitors::KeywordCreateResponse,
31
+ options: options
32
+ )
33
+ end
34
+
35
+ # Get keyword monitor
36
+ #
37
+ # @overload retrieve(id, request_options: {})
38
+ #
39
+ # @param id [String] Resource ID returned by the matching create or list endpoint.
40
+ #
41
+ # @param request_options [XTwitterScraper::RequestOptions, Hash{Symbol=>Object}, nil]
42
+ #
43
+ # @return [XTwitterScraper::Models::Monitors::KeywordRetrieveResponse]
44
+ #
45
+ # @see XTwitterScraper::Models::Monitors::KeywordRetrieveParams
46
+ def retrieve(id, params = {})
47
+ @client.request(
48
+ method: :get,
49
+ path: ["monitors/keywords/%1$s", id],
50
+ model: XTwitterScraper::Models::Monitors::KeywordRetrieveResponse,
51
+ options: params[:request_options]
52
+ )
53
+ end
54
+
55
+ # Update keyword monitor
56
+ #
57
+ # @overload update(id, event_types: nil, is_active: nil, request_options: {})
58
+ #
59
+ # @param id [String] Resource ID returned by the matching create or list endpoint.
60
+ #
61
+ # @param event_types [Array<Symbol, XTwitterScraper::Models::EventType>] Array of event types to subscribe to.
62
+ #
63
+ # @param is_active [Boolean]
64
+ #
65
+ # @param request_options [XTwitterScraper::RequestOptions, Hash{Symbol=>Object}, nil]
66
+ #
67
+ # @return [XTwitterScraper::Models::Monitors::KeywordUpdateResponse]
68
+ #
69
+ # @see XTwitterScraper::Models::Monitors::KeywordUpdateParams
70
+ def update(id, params = {})
71
+ parsed, options = XTwitterScraper::Monitors::KeywordUpdateParams.dump_request(params)
72
+ @client.request(
73
+ method: :patch,
74
+ path: ["monitors/keywords/%1$s", id],
75
+ body: parsed,
76
+ model: XTwitterScraper::Models::Monitors::KeywordUpdateResponse,
77
+ options: options
78
+ )
79
+ end
80
+
81
+ # List keyword monitors
82
+ #
83
+ # @overload list(request_options: {})
84
+ #
85
+ # @param request_options [XTwitterScraper::RequestOptions, Hash{Symbol=>Object}, nil]
86
+ #
87
+ # @return [XTwitterScraper::Models::Monitors::KeywordListResponse]
88
+ #
89
+ # @see XTwitterScraper::Models::Monitors::KeywordListParams
90
+ def list(params = {})
91
+ @client.request(
92
+ method: :get,
93
+ path: "monitors/keywords",
94
+ model: XTwitterScraper::Models::Monitors::KeywordListResponse,
95
+ options: params[:request_options]
96
+ )
97
+ end
98
+
99
+ # Delete keyword monitor
100
+ #
101
+ # @overload deactivate(id, request_options: {})
102
+ #
103
+ # @param id [String] Resource ID returned by the matching create or list endpoint.
104
+ #
105
+ # @param request_options [XTwitterScraper::RequestOptions, Hash{Symbol=>Object}, nil]
106
+ #
107
+ # @return [XTwitterScraper::Models::Monitors::KeywordDeactivateResponse]
108
+ #
109
+ # @see XTwitterScraper::Models::Monitors::KeywordDeactivateParams
110
+ def deactivate(id, params = {})
111
+ @client.request(
112
+ method: :delete,
113
+ path: ["monitors/keywords/%1$s", id],
114
+ model: XTwitterScraper::Models::Monitors::KeywordDeactivateResponse,
115
+ options: params[:request_options]
116
+ )
117
+ end
118
+
119
+ # @api private
120
+ #
121
+ # @param client [XTwitterScraper::Client]
122
+ def initialize(client:)
123
+ @client = client
124
+ end
125
+ end
126
+ end
127
+ end
128
+ end
@@ -4,7 +4,14 @@ module XTwitterScraper
4
4
  module Resources
5
5
  # Real-time X account monitoring
6
6
  class Monitors
7
- # Create monitor
7
+ # Real-time X account monitoring
8
+ # @return [XTwitterScraper::Resources::Monitors::Keywords]
9
+ attr_reader :keywords
10
+
11
+ # Creates an instant monitor. Monitors are unlimited. Active monitors check every
12
+ # 1 second and cost 21 credits per hour. Events and webhook deliveries are
13
+ # included. Creation requires available credits for the first hourly charge and
14
+ # username lookup.
8
15
  #
9
16
  # @overload create(event_types:, username:, request_options: {})
10
17
  #
@@ -32,7 +39,7 @@ module XTwitterScraper
32
39
  #
33
40
  # @overload retrieve(id, request_options: {})
34
41
  #
35
- # @param id [String] Resource ID (stringified bigint)
42
+ # @param id [String] Resource ID returned by the matching create or list endpoint.
36
43
  #
37
44
  # @param request_options [XTwitterScraper::RequestOptions, Hash{Symbol=>Object}, nil]
38
45
  #
@@ -52,7 +59,7 @@ module XTwitterScraper
52
59
  #
53
60
  # @overload update(id, event_types: nil, is_active: nil, request_options: {})
54
61
  #
55
- # @param id [String] Resource ID (stringified bigint)
62
+ # @param id [String] Resource ID returned by the matching create or list endpoint.
56
63
  #
57
64
  # @param event_types [Array<Symbol, XTwitterScraper::Models::EventType>] Array of event types to subscribe to.
58
65
  #
@@ -92,11 +99,11 @@ module XTwitterScraper
92
99
  )
93
100
  end
94
101
 
95
- # Deactivate monitor
102
+ # Delete monitor
96
103
  #
97
104
  # @overload deactivate(id, request_options: {})
98
105
  #
99
- # @param id [String] Resource ID (stringified bigint)
106
+ # @param id [String] Resource ID returned by the matching create or list endpoint.
100
107
  #
101
108
  # @param request_options [XTwitterScraper::RequestOptions, Hash{Symbol=>Object}, nil]
102
109
  #
@@ -117,6 +124,7 @@ module XTwitterScraper
117
124
  # @param client [XTwitterScraper::Client]
118
125
  def initialize(client:)
119
126
  @client = client
127
+ @keywords = XTwitterScraper::Resources::Monitors::Keywords.new(client: client)
120
128
  end
121
129
  end
122
130
  end
@@ -2,22 +2,24 @@
2
2
 
3
3
  module XTwitterScraper
4
4
  module Resources
5
- # Tweet composition, drafts, writing styles & radar
5
+ # AI tweet composition, drafts, writing styles, and radar
6
6
  class Radar
7
7
  # Some parameter documentations has been truncated, see
8
8
  # {XTwitterScraper::Models::RadarRetrieveTrendingTopicsParams} for more details.
9
9
  #
10
10
  # Get trending topics from curated sources
11
11
  #
12
- # @overload retrieve_trending_topics(category: nil, count: nil, hours: nil, region: nil, source: nil, request_options: {})
12
+ # @overload retrieve_trending_topics(after: nil, category: nil, hours: nil, limit: nil, region: nil, source: nil, request_options: {})
13
13
  #
14
- # @param category [String] Filter by category (general, tech, dev, etc.)
14
+ # @param after [String] Cursor for pagination (from prior response nextCursor).
15
15
  #
16
- # @param count [Integer] Number of items to return
16
+ # @param category [Symbol, XTwitterScraper::Models::RadarRetrieveTrendingTopicsParams::Category] Filter by category.
17
17
  #
18
- # @param hours [Integer] Lookback window in hours
18
+ # @param hours [Integer] Lookback window in hours (1-72, default 6).
19
19
  #
20
- # @param region [String] Region filter (us, global, etc.)
20
+ # @param limit [Integer] Number of items to return (1-100, default 50).
21
+ #
22
+ # @param region [String] Region filter. Use `global` or a region code such as `US`, `GB`, `TR`, or `ES`.
21
23
  #
22
24
  # @param source [Symbol, XTwitterScraper::Models::RadarRetrieveTrendingTopicsParams::Source] Source filter. One of: github, google_trends, hacker_news, polymarket, reddit, t
23
25
  #
@@ -2,7 +2,7 @@
2
2
 
3
3
  module XTwitterScraper
4
4
  module Resources
5
- # Tweet composition, drafts, writing styles & radar
5
+ # AI tweet composition, drafts, writing styles, and radar
6
6
  class Styles
7
7
  # Get cached style profile
8
8
  #
@@ -2,11 +2,14 @@
2
2
 
3
3
  module XTwitterScraper
4
4
  module Resources
5
- # Subscription & billing
5
+ # Subscription, billing, and credits
6
6
  class Subscribe
7
- # Get checkout or billing URL
7
+ # Create a subscription checkout or billing-management URL only after the user
8
+ # confirms. The request never completes payment by itself.
8
9
  #
9
- # @overload create(request_options: {})
10
+ # @overload create(tier: nil, request_options: {})
11
+ #
12
+ # @param tier [Symbol, XTwitterScraper::Models::SubscribeCreateParams::Tier] Subscription tier to pre-select.
10
13
  #
11
14
  # @param request_options [XTwitterScraper::RequestOptions, Hash{Symbol=>Object}, nil]
12
15
  #
@@ -14,11 +17,13 @@ module XTwitterScraper
14
17
  #
15
18
  # @see XTwitterScraper::Models::SubscribeCreateParams
16
19
  def create(params = {})
20
+ parsed, options = XTwitterScraper::SubscribeCreateParams.dump_request(params)
17
21
  @client.request(
18
22
  method: :post,
19
23
  path: "subscribe",
24
+ body: parsed,
20
25
  model: XTwitterScraper::Models::SubscribeCreateResponse,
21
- options: params[:request_options]
26
+ options: options
22
27
  )
23
28
  end
24
29