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
@@ -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 Drafts
7
7
  # Save a tweet draft
8
8
  sig do
@@ -24,7 +24,7 @@ module XTwitterScraper
24
24
  ).returns(XTwitterScraper::DraftDetail)
25
25
  end
26
26
  def retrieve(
27
- # Resource ID (stringified bigint)
27
+ # Resource ID returned by the matching create or list endpoint.
28
28
  id,
29
29
  request_options: {}
30
30
  )
@@ -41,7 +41,10 @@ module XTwitterScraper
41
41
  def list(
42
42
  # Cursor for pagination
43
43
  after_cursor: nil,
44
- # Maximum number of items to return (1-100, default 50)
44
+ # Maximum number of items to return (1-100, default 50). For paid per-result
45
+ # endpoints, the returned count may be lower when remaining credits cannot cover
46
+ # the requested page. If zero paid results are affordable, the endpoint returns
47
+ # 402 insufficient_credits.
45
48
  limit: nil,
46
49
  request_options: {}
47
50
  )
@@ -55,7 +58,7 @@ module XTwitterScraper
55
58
  ).void
56
59
  end
57
60
  def delete(
58
- # Resource ID (stringified bigint)
61
+ # Resource ID returned by the matching create or list endpoint.
59
62
  id,
60
63
  request_options: {}
61
64
  )
@@ -12,7 +12,7 @@ module XTwitterScraper
12
12
  ).returns(XTwitterScraper::Models::DrawRetrieveResponse)
13
13
  end
14
14
  def retrieve(
15
- # Resource ID (stringified bigint)
15
+ # Draw public ID returned by create and list draw responses.
16
16
  id,
17
17
  request_options: {}
18
18
  )
@@ -21,15 +21,18 @@ module XTwitterScraper
21
21
  # List draws
22
22
  sig do
23
23
  params(
24
- after: String,
24
+ cursor: String,
25
25
  limit: Integer,
26
26
  request_options: XTwitterScraper::RequestOptions::OrHash
27
27
  ).returns(XTwitterScraper::Models::DrawListResponse)
28
28
  end
29
29
  def list(
30
- # Cursor for keyset pagination
31
- after: nil,
32
- # Maximum number of items to return (1-100, default 50)
30
+ # Cursor for keyset pagination from prior response next_cursor
31
+ cursor: nil,
32
+ # Maximum number of items to return (1-100, default 50). For paid per-result
33
+ # endpoints, the returned count may be lower when remaining credits cannot cover
34
+ # the requested page. If zero paid results are affordable, the endpoint returns
35
+ # 402 insufficient_credits.
33
36
  limit: nil,
34
37
  request_options: {}
35
38
  )
@@ -45,17 +48,20 @@ module XTwitterScraper
45
48
  ).returns(StringIO)
46
49
  end
47
50
  def export(
48
- # Resource ID (stringified bigint)
51
+ # Draw public ID returned by create and list draw responses.
49
52
  id,
50
53
  # Export output format
51
- format_: nil,
54
+ format_:,
52
55
  # Export winners or all entries
53
56
  type: nil,
54
57
  request_options: {}
55
58
  )
56
59
  end
57
60
 
58
- # Run giveaway draw
61
+ # Runs a giveaway draw from a source tweet. The draw first checks the minimum
62
+ # credits needed to inspect the source tweet and at least one candidate. Remaining
63
+ # credits cap how many replies and retweeters can be inspected before filters and
64
+ # winner selection run.
59
65
  sig do
60
66
  params(
61
67
  tweet_url: String,
@@ -12,7 +12,7 @@ module XTwitterScraper
12
12
  ).returns(XTwitterScraper::EventDetail)
13
13
  end
14
14
  def retrieve(
15
- # Resource ID (stringified bigint)
15
+ # Resource ID returned by the matching create or list endpoint.
16
16
  id,
17
17
  request_options: {}
18
18
  )
@@ -21,7 +21,7 @@ module XTwitterScraper
21
21
  # List events
22
22
  sig do
23
23
  params(
24
- after: String,
24
+ cursor: String,
25
25
  event_type: XTwitterScraper::EventType::OrSymbol,
26
26
  limit: Integer,
27
27
  monitor_id: String,
@@ -29,11 +29,14 @@ module XTwitterScraper
29
29
  ).returns(XTwitterScraper::Models::EventListResponse)
30
30
  end
31
31
  def list(
32
- # Cursor for keyset pagination
33
- after: nil,
32
+ # Cursor for keyset pagination from prior response next_cursor
33
+ cursor: nil,
34
34
  # Filter events by type
35
35
  event_type: nil,
36
- # Maximum number of items to return (1-100, default 50)
36
+ # Maximum number of items to return (1-100, default 50). For paid per-result
37
+ # endpoints, the returned count may be lower when remaining credits cannot cover
38
+ # the requested page. If zero paid results are affordable, the endpoint returns
39
+ # 402 insufficient_credits.
37
40
  limit: nil,
38
41
  # Filter events by monitor ID
39
42
  monitor_id: nil,
@@ -2,13 +2,13 @@
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
  sig do
9
9
  params(
10
10
  id: String,
11
- after: String,
11
+ cursor: String,
12
12
  limit: Integer,
13
13
  request_options: XTwitterScraper::RequestOptions::OrHash
14
14
  ).returns(XTwitterScraper::Models::ExtractionRetrieveResponse)
@@ -16,8 +16,8 @@ module XTwitterScraper
16
16
  def retrieve(
17
17
  # Extraction public ID (UUID)
18
18
  id,
19
- # Cursor for keyset pagination
20
- after: nil,
19
+ # Cursor for keyset pagination from prior response next_cursor
20
+ cursor: nil,
21
21
  # Maximum number of results to return (1-1000, default 100)
22
22
  limit: nil,
23
23
  request_options: {}
@@ -27,7 +27,7 @@ module XTwitterScraper
27
27
  # List extraction jobs
28
28
  sig do
29
29
  params(
30
- after: String,
30
+ cursor: String,
31
31
  limit: Integer,
32
32
  status: XTwitterScraper::ExtractionListParams::Status::OrSymbol,
33
33
  tool_type: XTwitterScraper::ExtractionListParams::ToolType::OrSymbol,
@@ -35,9 +35,12 @@ module XTwitterScraper
35
35
  ).returns(XTwitterScraper::Models::ExtractionListResponse)
36
36
  end
37
37
  def list(
38
- # Cursor for keyset pagination
39
- after: nil,
40
- # Maximum number of items to return (1-100, default 50)
38
+ # Cursor for keyset pagination from prior response next_cursor
39
+ cursor: nil,
40
+ # Maximum number of items to return (1-100, default 50). For paid per-result
41
+ # endpoints, the returned count may be lower when remaining credits cannot cover
42
+ # the requested page. If zero paid results are affordable, the endpoint returns
43
+ # 402 insufficient_credits.
41
44
  limit: nil,
42
45
  # Filter by job status
43
46
  status: nil,
@@ -53,14 +56,47 @@ module XTwitterScraper
53
56
  tool_type:
54
57
  XTwitterScraper::ExtractionEstimateCostParams::ToolType::OrSymbol,
55
58
  advanced_query: String,
59
+ any_words: String,
60
+ bounding_box: String,
61
+ cashtags: String,
62
+ conversation_id: String,
56
63
  exact_phrase: String,
57
64
  exclude_words: String,
65
+ from_user: String,
66
+ hashtags: String,
67
+ in_reply_to_tweet_id: String,
68
+ language: String,
69
+ list_id: String,
70
+ media_type:
71
+ XTwitterScraper::ExtractionEstimateCostParams::MediaType::OrSymbol,
72
+ mentioning: String,
73
+ min_faves: Integer,
74
+ min_quotes: Integer,
75
+ min_replies: Integer,
76
+ min_retweets: Integer,
77
+ place: String,
78
+ place_country: String,
79
+ point_radius: String,
80
+ quotes:
81
+ XTwitterScraper::ExtractionEstimateCostParams::Quotes::OrSymbol,
82
+ quotes_of_tweet_id: String,
83
+ replies:
84
+ XTwitterScraper::ExtractionEstimateCostParams::Replies::OrSymbol,
85
+ results_limit: Integer,
86
+ retweets:
87
+ XTwitterScraper::ExtractionEstimateCostParams::Retweets::OrSymbol,
88
+ retweets_of_tweet_id: String,
58
89
  search_query: String,
90
+ since_date: Date,
59
91
  target_community_id: String,
60
92
  target_list_id: String,
61
93
  target_space_id: String,
62
94
  target_tweet_id: String,
63
95
  target_username: String,
96
+ to_user: String,
97
+ until_date: Date,
98
+ url: String,
99
+ verified_only: T::Boolean,
64
100
  request_options: XTwitterScraper::RequestOptions::OrHash
65
101
  ).returns(XTwitterScraper::Models::ExtractionEstimateCostResponse)
66
102
  end
@@ -69,16 +105,84 @@ module XTwitterScraper
69
105
  tool_type:,
70
106
  # Raw advanced query string appended to the estimate (tweet_search_extractor)
71
107
  advanced_query: nil,
108
+ # Alternative words or quoted phrases for estimated results. Separate with spaces,
109
+ # commas, or lines.
110
+ any_words: nil,
111
+ # Geo bounding box used for estimation, e.g. -74.1 40.6 -73.9 40.8
112
+ # (tweet_search_extractor)
113
+ bounding_box: nil,
114
+ # Cashtags applied to the estimate, separated by spaces, commas, or lines.
115
+ cashtags: nil,
116
+ # Conversation ID filter used for estimation (tweet_search_extractor)
117
+ conversation_id: nil,
72
118
  # Exact phrase filter for search estimation
73
119
  exact_phrase: nil,
74
- # Words excluded from estimated search results
120
+ # Words or quoted phrases excluded from estimated results. Separate with spaces,
121
+ # commas, or lines.
75
122
  exclude_words: nil,
123
+ # Estimate only tweets from this author username (tweet_search_extractor)
124
+ from_user: nil,
125
+ # Hashtags applied to the estimate, separated by spaces, commas, or lines.
126
+ hashtags: nil,
127
+ # Estimate only replies to this tweet ID (tweet_search_extractor)
128
+ in_reply_to_tweet_id: nil,
129
+ # Language code used for estimate filtering (tweet_search_extractor)
130
+ language: nil,
131
+ # Estimate search results within this list ID (tweet_search_extractor)
132
+ list_id: nil,
133
+ # Media type used for estimate filtering (tweet_search_extractor)
134
+ media_type: nil,
135
+ # Estimate tweets mentioning this username (tweet_search_extractor)
136
+ mentioning: nil,
137
+ # Minimum likes threshold for estimated results (tweet_search_extractor)
138
+ min_faves: nil,
139
+ # Minimum quote count threshold for estimated results (tweet_search_extractor)
140
+ min_quotes: nil,
141
+ # Minimum replies threshold for estimated results (tweet_search_extractor)
142
+ min_replies: nil,
143
+ # Minimum retweets threshold for estimated results (tweet_search_extractor)
144
+ min_retweets: nil,
145
+ # Estimate search results within this place ID (tweet_search_extractor)
146
+ place: nil,
147
+ # Estimate search results within this country code (tweet_search_extractor)
148
+ place_country: nil,
149
+ # Geo point radius used for estimation, e.g. -73.99 40.73 25mi
150
+ # (tweet_search_extractor)
151
+ point_radius: nil,
152
+ # Quote mode used for estimation (tweet_search_extractor)
153
+ quotes: nil,
154
+ # Estimate only quotes of this tweet ID (tweet_search_extractor)
155
+ quotes_of_tweet_id: nil,
156
+ # Reply mode used for estimation (tweet_search_extractor)
157
+ replies: nil,
158
+ # Maximum number of results to estimate. When set, the estimate caps projected
159
+ # results to this value.
160
+ results_limit: nil,
161
+ # Retweet mode used for estimation (tweet_search_extractor)
162
+ retweets: nil,
163
+ # Estimate only retweets of this tweet ID (tweet_search_extractor)
164
+ retweets_of_tweet_id: nil,
165
+ # Required for tweet_search_extractor & community_search.
76
166
  search_query: nil,
167
+ # Estimate start date in YYYY-MM-DD format (tweet_search_extractor)
168
+ since_date: nil,
169
+ # Required for community_post_extractor & community_search.
77
170
  target_community_id: nil,
171
+ # Required for list_follower_explorer, list_member_extractor &
172
+ # list_post_extractor.
78
173
  target_list_id: nil,
174
+ # Required for space_explorer.
79
175
  target_space_id: nil,
80
176
  target_tweet_id: nil,
81
177
  target_username: nil,
178
+ # Estimate replies sent to this username (tweet_search_extractor)
179
+ to_user: nil,
180
+ # Estimate end date in YYYY-MM-DD format (tweet_search_extractor)
181
+ until_date: nil,
182
+ # URL substring or domain filter used for estimation (tweet_search_extractor)
183
+ url: nil,
184
+ # Estimate only verified authors (tweet_search_extractor)
185
+ verified_only: nil,
82
186
  request_options: {}
83
187
  )
84
188
  end
@@ -96,7 +200,7 @@ module XTwitterScraper
96
200
  # Extraction public ID
97
201
  id,
98
202
  # Export file format
99
- format_: nil,
203
+ format_:,
100
204
  request_options: {}
101
205
  )
102
206
  end
@@ -106,14 +210,43 @@ module XTwitterScraper
106
210
  params(
107
211
  tool_type: XTwitterScraper::ExtractionRunParams::ToolType::OrSymbol,
108
212
  advanced_query: String,
213
+ any_words: String,
214
+ bounding_box: String,
215
+ cashtags: String,
216
+ conversation_id: String,
109
217
  exact_phrase: String,
110
218
  exclude_words: String,
219
+ from_user: String,
220
+ hashtags: String,
221
+ in_reply_to_tweet_id: String,
222
+ language: String,
223
+ list_id: String,
224
+ media_type: XTwitterScraper::ExtractionRunParams::MediaType::OrSymbol,
225
+ mentioning: String,
226
+ min_faves: Integer,
227
+ min_quotes: Integer,
228
+ min_replies: Integer,
229
+ min_retweets: Integer,
230
+ place: String,
231
+ place_country: String,
232
+ point_radius: String,
233
+ quotes: XTwitterScraper::ExtractionRunParams::Quotes::OrSymbol,
234
+ quotes_of_tweet_id: String,
235
+ replies: XTwitterScraper::ExtractionRunParams::Replies::OrSymbol,
236
+ results_limit: Integer,
237
+ retweets: XTwitterScraper::ExtractionRunParams::Retweets::OrSymbol,
238
+ retweets_of_tweet_id: String,
111
239
  search_query: String,
240
+ since_date: Date,
112
241
  target_community_id: String,
113
242
  target_list_id: String,
114
243
  target_space_id: String,
115
244
  target_tweet_id: String,
116
245
  target_username: String,
246
+ to_user: String,
247
+ until_date: Date,
248
+ url: String,
249
+ verified_only: T::Boolean,
117
250
  request_options: XTwitterScraper::RequestOptions::OrHash
118
251
  ).returns(XTwitterScraper::Models::ExtractionRunResponse)
119
252
  end
@@ -122,16 +255,82 @@ module XTwitterScraper
122
255
  tool_type:,
123
256
  # Raw advanced search query appended as-is (tweet_search_extractor)
124
257
  advanced_query: nil,
258
+ # Words or quoted phrases where any one can match. Separate with spaces, commas,
259
+ # or lines. (tweet_search_extractor)
260
+ any_words: nil,
261
+ # Geo bounding box, e.g. -74.1 40.6 -73.9 40.8 (tweet_search_extractor)
262
+ bounding_box: nil,
263
+ # Cashtags separated by spaces, commas, or lines. (tweet_search_extractor)
264
+ cashtags: nil,
265
+ # Conversation ID filter (tweet_search_extractor)
266
+ conversation_id: nil,
125
267
  # Exact phrase to match (tweet_search_extractor)
126
268
  exact_phrase: nil,
127
- # Words to exclude from results (tweet_search_extractor)
269
+ # Words or quoted phrases to exclude. Separate with spaces, commas, or lines.
270
+ # (tweet_search_extractor)
128
271
  exclude_words: nil,
272
+ # Filter by author username (tweet_search_extractor)
273
+ from_user: nil,
274
+ # Hashtags separated by spaces, commas, or lines. (tweet_search_extractor)
275
+ hashtags: nil,
276
+ # Only replies to this tweet ID (tweet_search_extractor)
277
+ in_reply_to_tweet_id: nil,
278
+ # Language code filter (tweet_search_extractor)
279
+ language: nil,
280
+ # Search within a list ID (tweet_search_extractor)
281
+ list_id: nil,
282
+ # Media type filter (tweet_search_extractor)
283
+ media_type: nil,
284
+ # Filter tweets mentioning a username (tweet_search_extractor)
285
+ mentioning: nil,
286
+ # Minimum likes threshold (tweet_search_extractor)
287
+ min_faves: nil,
288
+ # Minimum quote count threshold (tweet_search_extractor)
289
+ min_quotes: nil,
290
+ # Minimum replies threshold (tweet_search_extractor)
291
+ min_replies: nil,
292
+ # Minimum retweets threshold (tweet_search_extractor)
293
+ min_retweets: nil,
294
+ # Search within a place ID (tweet_search_extractor)
295
+ place: nil,
296
+ # Search within a country code (tweet_search_extractor)
297
+ place_country: nil,
298
+ # Geo point radius, e.g. -73.99 40.73 25mi (tweet_search_extractor)
299
+ point_radius: nil,
300
+ # Quote mode (tweet_search_extractor)
301
+ quotes: nil,
302
+ # Only quotes of this tweet ID (tweet_search_extractor)
303
+ quotes_of_tweet_id: nil,
304
+ # Reply mode (tweet_search_extractor)
305
+ replies: nil,
306
+ # Maximum number of results to extract. When set, the extraction stops after
307
+ # reaching this limit.
308
+ results_limit: nil,
309
+ # Retweet mode (tweet_search_extractor)
310
+ retweets: nil,
311
+ # Only retweets of this tweet ID (tweet_search_extractor)
312
+ retweets_of_tweet_id: nil,
313
+ # Required for tweet_search_extractor & community_search.
129
314
  search_query: nil,
315
+ # Start date YYYY-MM-DD (tweet_search_extractor)
316
+ since_date: nil,
317
+ # Required for community_post_extractor & community_search.
130
318
  target_community_id: nil,
319
+ # Required for list_follower_explorer, list_member_extractor &
320
+ # list_post_extractor.
131
321
  target_list_id: nil,
322
+ # Required for space_explorer.
132
323
  target_space_id: nil,
133
324
  target_tweet_id: nil,
134
325
  target_username: nil,
326
+ # Filter replies sent to a username (tweet_search_extractor)
327
+ to_user: nil,
328
+ # End date YYYY-MM-DD (tweet_search_extractor)
329
+ until_date: nil,
330
+ # URL substring or domain filter (tweet_search_extractor)
331
+ url: nil,
332
+ # Only verified authors (tweet_search_extractor)
333
+ verified_only: nil,
135
334
  request_options: {}
136
335
  )
137
336
  end
@@ -0,0 +1,76 @@
1
+ # typed: strong
2
+
3
+ module XTwitterScraper
4
+ module Resources
5
+ # Accountless prepaid access for paid read endpoints
6
+ class GuestWallets
7
+ # Create a one-use Stripe-hosted checkout after the user explicitly confirms a
8
+ # $10-$250 USD amount. This request creates no charge by itself. The user opens
9
+ # checkout_url on Stripe. This endpoint returns the paid-read API key without
10
+ # requiring an Xquik account, email, dashboard, or Xquik web page. An idempotent
11
+ # replay returns the same key.
12
+ sig do
13
+ params(
14
+ amount_minor: Integer,
15
+ idempotency_key: String,
16
+ currency: Symbol,
17
+ request_options: XTwitterScraper::RequestOptions::OrHash
18
+ ).returns(XTwitterScraper::Models::GuestWalletCreateResponse)
19
+ end
20
+ def create(
21
+ # Body param: Confirmed USD amount in cents.
22
+ amount_minor:,
23
+ # Header param: Generate a cryptographically random UUID v4. Reuse it only to
24
+ # retry the same wallet and amount request. Initial wallet creation can recover
25
+ # the API key from this value, so store it as a secret and never log it.
26
+ idempotency_key:,
27
+ # Body param
28
+ currency: :usd,
29
+ request_options: {}
30
+ )
31
+ end
32
+
33
+ # Poll after Stripe payment. Use usable to decide whether paid reads can run. An
34
+ # active wallet can remain usable while a top-up is pending. A new wallet becomes
35
+ # usable only after verified webhook fulfillment. Send the guest key as
36
+ # Authorization: Bearer.
37
+ sig do
38
+ params(
39
+ request_options: XTwitterScraper::RequestOptions::OrHash
40
+ ).returns(XTwitterScraper::Models::GuestWalletRetrieveStatusResponse)
41
+ end
42
+ def retrieve_status(request_options: {})
43
+ end
44
+
45
+ # Create a one-use Stripe-hosted checkout for an existing paid-read guest key
46
+ # after the user explicitly confirms a $10-$250 USD amount. The key remains the
47
+ # same. This request creates no charge by itself and never redirects through an
48
+ # Xquik web page.
49
+ sig do
50
+ params(
51
+ amount_minor: Integer,
52
+ idempotency_key: String,
53
+ currency: Symbol,
54
+ request_options: XTwitterScraper::RequestOptions::OrHash
55
+ ).returns(XTwitterScraper::Models::GuestWalletTopupResponse)
56
+ end
57
+ def topup(
58
+ # Body param: Confirmed USD amount in cents.
59
+ amount_minor:,
60
+ # Header param: Generate a cryptographically random UUID v4. Reuse it only to
61
+ # retry the same wallet and amount request. Initial wallet creation can recover
62
+ # the API key from this value, so store it as a secret and never log it.
63
+ idempotency_key:,
64
+ # Body param
65
+ currency: :usd,
66
+ request_options: {}
67
+ )
68
+ end
69
+
70
+ # @api private
71
+ sig { params(client: XTwitterScraper::Client).returns(T.attached_class) }
72
+ def self.new(client:)
73
+ end
74
+ end
75
+ end
76
+ end
@@ -0,0 +1,95 @@
1
+ # typed: strong
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
+ sig do
13
+ params(
14
+ event_types: T::Array[XTwitterScraper::EventType::OrSymbol],
15
+ query: String,
16
+ request_options: XTwitterScraper::RequestOptions::OrHash
17
+ ).returns(XTwitterScraper::Models::Monitors::KeywordCreateResponse)
18
+ end
19
+ def create(
20
+ # Array of event types to subscribe to.
21
+ event_types:,
22
+ # X search query to monitor. Whitespace is normalized.
23
+ query:,
24
+ request_options: {}
25
+ )
26
+ end
27
+
28
+ # Get keyword monitor
29
+ sig do
30
+ params(
31
+ id: String,
32
+ request_options: XTwitterScraper::RequestOptions::OrHash
33
+ ).returns(XTwitterScraper::Models::Monitors::KeywordRetrieveResponse)
34
+ end
35
+ def retrieve(
36
+ # Resource ID returned by the matching create or list endpoint.
37
+ id,
38
+ request_options: {}
39
+ )
40
+ end
41
+
42
+ # Update keyword monitor
43
+ sig do
44
+ params(
45
+ id: String,
46
+ event_types: T::Array[XTwitterScraper::EventType::OrSymbol],
47
+ is_active: T::Boolean,
48
+ request_options: XTwitterScraper::RequestOptions::OrHash
49
+ ).returns(XTwitterScraper::Models::Monitors::KeywordUpdateResponse)
50
+ end
51
+ def update(
52
+ # Resource ID returned by the matching create or list endpoint.
53
+ id,
54
+ # Array of event types to subscribe to.
55
+ event_types: nil,
56
+ is_active: nil,
57
+ request_options: {}
58
+ )
59
+ end
60
+
61
+ # List keyword monitors
62
+ sig do
63
+ params(
64
+ request_options: XTwitterScraper::RequestOptions::OrHash
65
+ ).returns(XTwitterScraper::Models::Monitors::KeywordListResponse)
66
+ end
67
+ def list(request_options: {})
68
+ end
69
+
70
+ # Delete keyword monitor
71
+ sig do
72
+ params(
73
+ id: String,
74
+ request_options: XTwitterScraper::RequestOptions::OrHash
75
+ ).returns(
76
+ XTwitterScraper::Models::Monitors::KeywordDeactivateResponse
77
+ )
78
+ end
79
+ def deactivate(
80
+ # Resource ID returned by the matching create or list endpoint.
81
+ id,
82
+ request_options: {}
83
+ )
84
+ end
85
+
86
+ # @api private
87
+ sig do
88
+ params(client: XTwitterScraper::Client).returns(T.attached_class)
89
+ end
90
+ def self.new(client:)
91
+ end
92
+ end
93
+ end
94
+ end
95
+ 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
+ sig { returns(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
  sig do
9
16
  params(
10
17
  event_types: T::Array[XTwitterScraper::EventType::OrSymbol],
@@ -29,7 +36,7 @@ module XTwitterScraper
29
36
  ).returns(XTwitterScraper::Monitor)
30
37
  end
31
38
  def retrieve(
32
- # Resource ID (stringified bigint)
39
+ # Resource ID returned by the matching create or list endpoint.
33
40
  id,
34
41
  request_options: {}
35
42
  )
@@ -45,7 +52,7 @@ module XTwitterScraper
45
52
  ).returns(XTwitterScraper::Monitor)
46
53
  end
47
54
  def update(
48
- # Resource ID (stringified bigint)
55
+ # Resource ID returned by the matching create or list endpoint.
49
56
  id,
50
57
  # Array of event types to subscribe to.
51
58
  event_types: nil,
@@ -63,7 +70,7 @@ module XTwitterScraper
63
70
  def list(request_options: {})
64
71
  end
65
72
 
66
- # Deactivate monitor
73
+ # Delete monitor
67
74
  sig do
68
75
  params(
69
76
  id: String,
@@ -71,7 +78,7 @@ module XTwitterScraper
71
78
  ).returns(XTwitterScraper::Models::MonitorDeactivateResponse)
72
79
  end
73
80
  def deactivate(
74
- # Resource ID (stringified bigint)
81
+ # Resource ID returned by the matching create or list endpoint.
75
82
  id,
76
83
  request_options: {}
77
84
  )