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
@@ -0,0 +1,31 @@
1
+ # typed: strong
2
+
3
+ module XTwitterScraper
4
+ module Resources
5
+ class X
6
+ # X write actions (tweets, likes, follows, DMs)
7
+ class WriteActions
8
+ # Get write action status
9
+ sig do
10
+ params(
11
+ id: String,
12
+ request_options: XTwitterScraper::RequestOptions::OrHash
13
+ ).returns(XTwitterScraper::Models::X::WriteActionRetrieveResponse)
14
+ end
15
+ def retrieve(
16
+ # Write action ID returned by a pending write response.
17
+ id,
18
+ request_options: {}
19
+ )
20
+ end
21
+
22
+ # @api private
23
+ sig do
24
+ params(client: XTwitterScraper::Client).returns(T.attached_class)
25
+ end
26
+ def self.new(client:)
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
@@ -2,23 +2,25 @@
2
2
 
3
3
  module XTwitterScraper
4
4
  module Resources
5
- # X data lookups (subscription required)
6
5
  class X
6
+ # X write actions (tweets, likes, follows, DMs)
7
+ sig { returns(XTwitterScraper::Resources::X::WriteActions) }
8
+ attr_reader :write_actions
9
+
7
10
  sig { returns(XTwitterScraper::Resources::X::Tweets) }
8
11
  attr_reader :tweets
9
12
 
10
- # X data lookups (subscription required)
11
13
  sig { returns(XTwitterScraper::Resources::X::Users) }
12
14
  attr_reader :users
13
15
 
14
- # X data lookups (subscription required)
16
+ # Look up, search, and explore user profiles and relationships
15
17
  sig { returns(XTwitterScraper::Resources::X::Followers) }
16
18
  attr_reader :followers
17
19
 
18
20
  sig { returns(XTwitterScraper::Resources::X::Dm) }
19
21
  attr_reader :dm
20
22
 
21
- # Media upload & download
23
+ # Media upload and download
22
24
  sig { returns(XTwitterScraper::Resources::X::Media) }
23
25
  attr_reader :media
24
26
 
@@ -33,15 +35,22 @@ module XTwitterScraper
33
35
  sig { returns(XTwitterScraper::Resources::X::Accounts) }
34
36
  attr_reader :accounts
35
37
 
36
- # X data lookups (subscription required)
38
+ # Connected X account management
39
+ sig do
40
+ returns(XTwitterScraper::Resources::X::AccountConnectionChallenges)
41
+ end
42
+ attr_reader :account_connection_challenges
43
+
44
+ # Look up, search, and analyze individual tweets
37
45
  sig { returns(XTwitterScraper::Resources::X::Bookmarks) }
38
46
  attr_reader :bookmarks
39
47
 
40
- # X data lookups (subscription required)
48
+ # X List followers, members, and tweets
41
49
  sig { returns(XTwitterScraper::Resources::X::Lists) }
42
50
  attr_reader :lists
43
51
 
44
- # Retrieve the full content of an X Article (long-form post) by tweet ID.
52
+ # Retrieve the full content of an X Article (long-form post) by numeric tweet ID.
53
+ # Returns article_not_found when the tweet is valid but is not an X Article.
45
54
  sig do
46
55
  params(
47
56
  tweet_id: String,
@@ -49,7 +58,8 @@ module XTwitterScraper
49
58
  ).returns(XTwitterScraper::Models::XGetArticleResponse)
50
59
  end
51
60
  def get_article(
52
- # Tweet ID of the article
61
+ # Numeric tweet ID of the article, 15-20 digits. If you have a tweet URL, use the
62
+ # final status ID.
53
63
  tweet_id,
54
64
  request_options: {}
55
65
  )
@@ -66,7 +76,7 @@ module XTwitterScraper
66
76
  def get_home_timeline(
67
77
  # Pagination cursor for timeline
68
78
  cursor: nil,
69
- # Comma-separated tweet IDs to exclude from results
79
+ # Comma-separated tweet IDs to exclude from results. Empty entries are ignored.
70
80
  seen_tweet_ids: nil,
71
81
  request_options: {}
72
82
  )
@@ -83,19 +93,27 @@ module XTwitterScraper
83
93
  def get_notifications(
84
94
  # Pagination cursor for notifications
85
95
  cursor: nil,
86
- # Notification type filter
96
+ # Notification type filter. Unrecognized values fall back to All.
87
97
  type: nil,
88
98
  request_options: {}
89
99
  )
90
100
  end
91
101
 
92
- # Get trending topics
102
+ # Get trending hashtags and topics from X by region
93
103
  sig do
94
104
  params(
105
+ count: Integer,
106
+ woeid: Integer,
95
107
  request_options: XTwitterScraper::RequestOptions::OrHash
96
108
  ).returns(XTwitterScraper::Models::XGetTrendsResponse)
97
109
  end
98
- def get_trends(request_options: {})
110
+ def get_trends(
111
+ # Number of trending topics to return (1-50, default 30)
112
+ count: nil,
113
+ # Region WOEID (1=Worldwide, 23424977=US, 23424975=UK, 23424969=Turkey)
114
+ woeid: nil,
115
+ request_options: {}
116
+ )
99
117
  end
100
118
 
101
119
  # @api private
@@ -14,8 +14,6 @@ module XTwitterScraper
14
14
 
15
15
  attr_reader account: XTwitterScraper::Resources::Account
16
16
 
17
- attr_reader api_keys: XTwitterScraper::Resources::APIKeys
18
-
19
17
  attr_reader subscribe: XTwitterScraper::Resources::Subscribe
20
18
 
21
19
  attr_reader compose: XTwitterScraper::Resources::Compose
@@ -36,18 +34,16 @@ module XTwitterScraper
36
34
 
37
35
  attr_reader webhooks: XTwitterScraper::Resources::Webhooks
38
36
 
39
- attr_reader integrations: XTwitterScraper::Resources::Integrations
40
-
41
37
  attr_reader x: XTwitterScraper::Resources::X
42
38
 
43
39
  attr_reader trends: XTwitterScraper::Resources::Trends
44
40
 
45
- attr_reader bot: XTwitterScraper::Resources::Bot
46
-
47
41
  attr_reader support: XTwitterScraper::Resources::Support
48
42
 
49
43
  attr_reader credits: XTwitterScraper::Resources::Credits
50
44
 
45
+ attr_reader guest_wallets: XTwitterScraper::Resources::GuestWallets
46
+
51
47
  private def auth_headers: (
52
48
  security: { auth_api_key: bool, oauth_bearer: bool }
53
49
  ) -> ::Hash[String, String]
@@ -2,39 +2,98 @@ module XTwitterScraper
2
2
  module Models
3
3
  type account_retrieve_response =
4
4
  {
5
+ monitor_billing: XTwitterScraper::Models::AccountRetrieveResponse::MonitorBilling,
5
6
  monitors_allowed: Integer,
6
7
  monitors_used: Integer,
7
8
  plan: XTwitterScraper::Models::AccountRetrieveResponse::plan,
8
- current_period: XTwitterScraper::Models::AccountRetrieveResponse::CurrentPeriod
9
+ credit_info: XTwitterScraper::Models::AccountRetrieveResponse::CreditInfo,
10
+ x_username: String
9
11
  }
10
12
 
11
13
  class AccountRetrieveResponse < XTwitterScraper::Internal::Type::BaseModel
14
+ attr_accessor monitor_billing: XTwitterScraper::Models::AccountRetrieveResponse::MonitorBilling
15
+
12
16
  attr_accessor monitors_allowed: Integer
13
17
 
14
18
  attr_accessor monitors_used: Integer
15
19
 
16
20
  attr_accessor plan: XTwitterScraper::Models::AccountRetrieveResponse::plan
17
21
 
18
- attr_reader current_period: XTwitterScraper::Models::AccountRetrieveResponse::CurrentPeriod?
22
+ attr_reader credit_info: XTwitterScraper::Models::AccountRetrieveResponse::CreditInfo?
23
+
24
+ def credit_info=: (
25
+ XTwitterScraper::Models::AccountRetrieveResponse::CreditInfo
26
+ ) -> XTwitterScraper::Models::AccountRetrieveResponse::CreditInfo
27
+
28
+ attr_reader x_username: String?
19
29
 
20
- def current_period=: (
21
- XTwitterScraper::Models::AccountRetrieveResponse::CurrentPeriod
22
- ) -> XTwitterScraper::Models::AccountRetrieveResponse::CurrentPeriod
30
+ def x_username=: (String) -> String
23
31
 
24
32
  def initialize: (
33
+ monitor_billing: XTwitterScraper::Models::AccountRetrieveResponse::MonitorBilling,
25
34
  monitors_allowed: Integer,
26
35
  monitors_used: Integer,
27
36
  plan: XTwitterScraper::Models::AccountRetrieveResponse::plan,
28
- ?current_period: XTwitterScraper::Models::AccountRetrieveResponse::CurrentPeriod
37
+ ?credit_info: XTwitterScraper::Models::AccountRetrieveResponse::CreditInfo,
38
+ ?x_username: String
29
39
  ) -> void
30
40
 
31
41
  def to_hash: -> {
42
+ monitor_billing: XTwitterScraper::Models::AccountRetrieveResponse::MonitorBilling,
32
43
  monitors_allowed: Integer,
33
44
  monitors_used: Integer,
34
45
  plan: XTwitterScraper::Models::AccountRetrieveResponse::plan,
35
- current_period: XTwitterScraper::Models::AccountRetrieveResponse::CurrentPeriod
46
+ credit_info: XTwitterScraper::Models::AccountRetrieveResponse::CreditInfo,
47
+ x_username: String
36
48
  }
37
49
 
50
+ type monitor_billing =
51
+ {
52
+ active_daily_estimate: String,
53
+ active_hourly_burn: String,
54
+ credits_per_active_monitor_day: String,
55
+ credits_per_active_monitor_hour: String,
56
+ events_included: bool,
57
+ instant_check_interval_seconds: Integer,
58
+ unlimited_slots: bool
59
+ }
60
+
61
+ class MonitorBilling < XTwitterScraper::Internal::Type::BaseModel
62
+ attr_accessor active_daily_estimate: String
63
+
64
+ attr_accessor active_hourly_burn: String
65
+
66
+ attr_accessor credits_per_active_monitor_day: String
67
+
68
+ attr_accessor credits_per_active_monitor_hour: String
69
+
70
+ attr_accessor events_included: bool
71
+
72
+ attr_accessor instant_check_interval_seconds: Integer
73
+
74
+ attr_accessor unlimited_slots: bool
75
+
76
+ def initialize: (
77
+ active_daily_estimate: String,
78
+ active_hourly_burn: String,
79
+ credits_per_active_monitor_day: String,
80
+ credits_per_active_monitor_hour: String,
81
+ events_included: bool,
82
+ instant_check_interval_seconds: Integer,
83
+ unlimited_slots: bool
84
+ ) -> void
85
+
86
+ def to_hash: -> {
87
+ active_daily_estimate: String,
88
+ active_hourly_burn: String,
89
+ credits_per_active_monitor_day: String,
90
+ credits_per_active_monitor_hour: String,
91
+ events_included: bool,
92
+ instant_check_interval_seconds: Integer,
93
+ unlimited_slots: bool
94
+ }
95
+ end
96
+
38
97
  type plan = :active | :inactive
39
98
 
40
99
  module Plan
@@ -46,18 +105,46 @@ module XTwitterScraper
46
105
  def self?.values: -> ::Array[XTwitterScraper::Models::AccountRetrieveResponse::plan]
47
106
  end
48
107
 
49
- type current_period = { end_: Time, start: Time, usage_percent: Float }
50
-
51
- class CurrentPeriod < XTwitterScraper::Internal::Type::BaseModel
52
- attr_accessor end_: Time
53
-
54
- attr_accessor start: Time
55
-
56
- attr_accessor usage_percent: Float
57
-
58
- def initialize: (end_: Time, start: Time, usage_percent: Float) -> void
59
-
60
- def to_hash: -> { end_: Time, start: Time, usage_percent: Float }
108
+ type credit_info =
109
+ {
110
+ auto_topup_amount_dollars: Float,
111
+ auto_topup_enabled: bool,
112
+ auto_topup_threshold: String,
113
+ balance: String,
114
+ lifetime_purchased: String,
115
+ lifetime_used: String
116
+ }
117
+
118
+ class CreditInfo < XTwitterScraper::Internal::Type::BaseModel
119
+ attr_accessor auto_topup_amount_dollars: Float
120
+
121
+ attr_accessor auto_topup_enabled: bool
122
+
123
+ attr_accessor auto_topup_threshold: String
124
+
125
+ attr_accessor balance: String
126
+
127
+ attr_accessor lifetime_purchased: String
128
+
129
+ attr_accessor lifetime_used: String
130
+
131
+ def initialize: (
132
+ auto_topup_amount_dollars: Float,
133
+ auto_topup_enabled: bool,
134
+ auto_topup_threshold: String,
135
+ balance: String,
136
+ lifetime_purchased: String,
137
+ lifetime_used: String
138
+ ) -> void
139
+
140
+ def to_hash: -> {
141
+ auto_topup_amount_dollars: Float,
142
+ auto_topup_enabled: bool,
143
+ auto_topup_threshold: String,
144
+ balance: String,
145
+ lifetime_purchased: String,
146
+ lifetime_used: String
147
+ }
61
148
  end
62
149
  end
63
150
  end
@@ -0,0 +1,78 @@
1
+ module XTwitterScraper
2
+ module Models
3
+ type content_disclosure =
4
+ {
5
+ advertising: XTwitterScraper::ContentDisclosure::Advertising,
6
+ ai_generated: XTwitterScraper::ContentDisclosure::AIGenerated
7
+ }
8
+
9
+ class ContentDisclosure < XTwitterScraper::Internal::Type::BaseModel
10
+ attr_reader advertising: XTwitterScraper::ContentDisclosure::Advertising?
11
+
12
+ def advertising=: (
13
+ XTwitterScraper::ContentDisclosure::Advertising
14
+ ) -> XTwitterScraper::ContentDisclosure::Advertising
15
+
16
+ attr_reader ai_generated: XTwitterScraper::ContentDisclosure::AIGenerated?
17
+
18
+ def ai_generated=: (
19
+ XTwitterScraper::ContentDisclosure::AIGenerated
20
+ ) -> XTwitterScraper::ContentDisclosure::AIGenerated
21
+
22
+ def initialize: (
23
+ ?advertising: XTwitterScraper::ContentDisclosure::Advertising,
24
+ ?ai_generated: XTwitterScraper::ContentDisclosure::AIGenerated
25
+ ) -> void
26
+
27
+ def to_hash: -> {
28
+ advertising: XTwitterScraper::ContentDisclosure::Advertising,
29
+ ai_generated: XTwitterScraper::ContentDisclosure::AIGenerated
30
+ }
31
+
32
+ type advertising = { is_paid_promotion: bool }
33
+
34
+ class Advertising < XTwitterScraper::Internal::Type::BaseModel
35
+ attr_reader is_paid_promotion: bool?
36
+
37
+ def is_paid_promotion=: (bool) -> bool
38
+
39
+ def initialize: (?is_paid_promotion: bool) -> void
40
+
41
+ def to_hash: -> { is_paid_promotion: bool }
42
+ end
43
+
44
+ type ai_generated =
45
+ {
46
+ can_edit: bool,
47
+ detection_source: String,
48
+ has_ai_generated_media: bool
49
+ }
50
+
51
+ class AIGenerated < XTwitterScraper::Internal::Type::BaseModel
52
+ attr_reader can_edit: bool?
53
+
54
+ def can_edit=: (bool) -> bool
55
+
56
+ attr_reader detection_source: String?
57
+
58
+ def detection_source=: (String) -> String
59
+
60
+ attr_reader has_ai_generated_media: bool?
61
+
62
+ def has_ai_generated_media=: (bool) -> bool
63
+
64
+ def initialize: (
65
+ ?can_edit: bool,
66
+ ?detection_source: String,
67
+ ?has_ai_generated_media: bool
68
+ ) -> void
69
+
70
+ def to_hash: -> {
71
+ can_edit: bool,
72
+ detection_source: String,
73
+ has_ai_generated_media: bool
74
+ }
75
+ end
76
+ end
77
+ end
78
+ end
@@ -1,23 +1,22 @@
1
1
  module XTwitterScraper
2
2
  module Models
3
- type api_key_create_params =
4
- { name: String } & XTwitterScraper::Internal::Type::request_parameters
3
+ type credit_redirect_topup_checkout_params =
4
+ { session_id: String }
5
+ & XTwitterScraper::Internal::Type::request_parameters
5
6
 
6
- class APIKeyCreateParams < XTwitterScraper::Internal::Type::BaseModel
7
+ class CreditRedirectTopupCheckoutParams < XTwitterScraper::Internal::Type::BaseModel
7
8
  extend XTwitterScraper::Internal::Type::RequestParameters::Converter
8
9
  include XTwitterScraper::Internal::Type::RequestParameters
9
10
 
10
- attr_reader name: String?
11
-
12
- def name=: (String) -> String
11
+ attr_accessor session_id: String
13
12
 
14
13
  def initialize: (
15
- ?name: String,
14
+ session_id: String,
16
15
  ?request_options: XTwitterScraper::request_opts
17
16
  ) -> void
18
17
 
19
18
  def to_hash: -> {
20
- name: String,
19
+ session_id: String,
21
20
  request_options: XTwitterScraper::RequestOptions
22
21
  }
23
22
  end
@@ -2,33 +2,43 @@ module XTwitterScraper
2
2
  module Models
3
3
  type credit_retrieve_balance_response =
4
4
  {
5
+ auto_topup_amount_dollars: Float,
5
6
  auto_topup_enabled: bool,
6
- balance: Integer,
7
- lifetime_purchased: Integer,
8
- lifetime_used: Integer
7
+ auto_topup_threshold: String,
8
+ balance: String,
9
+ lifetime_purchased: String,
10
+ lifetime_used: String
9
11
  }
10
12
 
11
13
  class CreditRetrieveBalanceResponse < XTwitterScraper::Internal::Type::BaseModel
14
+ attr_accessor auto_topup_amount_dollars: Float
15
+
12
16
  attr_accessor auto_topup_enabled: bool
13
17
 
14
- attr_accessor balance: Integer
18
+ attr_accessor auto_topup_threshold: String
19
+
20
+ attr_accessor balance: String
15
21
 
16
- attr_accessor lifetime_purchased: Integer
22
+ attr_accessor lifetime_purchased: String
17
23
 
18
- attr_accessor lifetime_used: Integer
24
+ attr_accessor lifetime_used: String
19
25
 
20
26
  def initialize: (
27
+ auto_topup_amount_dollars: Float,
21
28
  auto_topup_enabled: bool,
22
- balance: Integer,
23
- lifetime_purchased: Integer,
24
- lifetime_used: Integer
29
+ auto_topup_threshold: String,
30
+ balance: String,
31
+ lifetime_purchased: String,
32
+ lifetime_used: String
25
33
  ) -> void
26
34
 
27
35
  def to_hash: -> {
36
+ auto_topup_amount_dollars: Float,
28
37
  auto_topup_enabled: bool,
29
- balance: Integer,
30
- lifetime_purchased: Integer,
31
- lifetime_used: Integer
38
+ auto_topup_threshold: String,
39
+ balance: String,
40
+ lifetime_purchased: String,
41
+ lifetime_used: String
32
42
  }
33
43
  end
34
44
  end
@@ -1,28 +1,22 @@
1
1
  module XTwitterScraper
2
2
  module Models
3
- type integration_list_deliveries_params =
4
- { id: String, limit: Integer }
3
+ type credit_retrieve_topup_status_params =
4
+ { session_id: String }
5
5
  & XTwitterScraper::Internal::Type::request_parameters
6
6
 
7
- class IntegrationListDeliveriesParams < XTwitterScraper::Internal::Type::BaseModel
7
+ class CreditRetrieveTopupStatusParams < XTwitterScraper::Internal::Type::BaseModel
8
8
  extend XTwitterScraper::Internal::Type::RequestParameters::Converter
9
9
  include XTwitterScraper::Internal::Type::RequestParameters
10
10
 
11
- attr_accessor id: String
12
-
13
- attr_reader limit: Integer?
14
-
15
- def limit=: (Integer) -> Integer
11
+ attr_accessor session_id: String
16
12
 
17
13
  def initialize: (
18
- id: String,
19
- ?limit: Integer,
14
+ session_id: String,
20
15
  ?request_options: XTwitterScraper::request_opts
21
16
  ) -> void
22
17
 
23
18
  def to_hash: -> {
24
- id: String,
25
- limit: Integer,
19
+ session_id: String,
26
20
  request_options: XTwitterScraper::RequestOptions
27
21
  }
28
22
  end
@@ -0,0 +1,45 @@
1
+ module XTwitterScraper
2
+ module Models
3
+ type credit_retrieve_topup_status_response =
4
+ {
5
+ status: XTwitterScraper::Models::CreditRetrieveTopupStatusResponse::status,
6
+ amount_dollars: Integer?,
7
+ credits: String
8
+ }
9
+
10
+ class CreditRetrieveTopupStatusResponse < XTwitterScraper::Internal::Type::BaseModel
11
+ attr_accessor status: XTwitterScraper::Models::CreditRetrieveTopupStatusResponse::status
12
+
13
+ attr_accessor amount_dollars: Integer?
14
+
15
+ attr_reader credits: String?
16
+
17
+ def credits=: (String) -> String
18
+
19
+ def initialize: (
20
+ status: XTwitterScraper::Models::CreditRetrieveTopupStatusResponse::status,
21
+ ?amount_dollars: Integer?,
22
+ ?credits: String
23
+ ) -> void
24
+
25
+ def to_hash: -> {
26
+ status: XTwitterScraper::Models::CreditRetrieveTopupStatusResponse::status,
27
+ amount_dollars: Integer?,
28
+ credits: String
29
+ }
30
+
31
+ type status = :paid | :processing | :failed | :expired
32
+
33
+ module Status
34
+ extend XTwitterScraper::Internal::Type::Enum
35
+
36
+ PAID: :paid
37
+ PROCESSING: :processing
38
+ FAILED: :failed
39
+ EXPIRED: :expired
40
+
41
+ def self?.values: -> ::Array[XTwitterScraper::Models::CreditRetrieveTopupStatusResponse::status]
42
+ end
43
+ end
44
+ end
45
+ end
@@ -1,21 +1,28 @@
1
1
  module XTwitterScraper
2
2
  module Models
3
3
  type credit_topup_balance_params =
4
- { amount: Integer } & XTwitterScraper::Internal::Type::request_parameters
4
+ { dollars: Integer, locale: String }
5
+ & XTwitterScraper::Internal::Type::request_parameters
5
6
 
6
7
  class CreditTopupBalanceParams < XTwitterScraper::Internal::Type::BaseModel
7
8
  extend XTwitterScraper::Internal::Type::RequestParameters::Converter
8
9
  include XTwitterScraper::Internal::Type::RequestParameters
9
10
 
10
- attr_accessor amount: Integer
11
+ attr_accessor dollars: Integer
12
+
13
+ attr_reader locale: String?
14
+
15
+ def locale=: (String) -> String
11
16
 
12
17
  def initialize: (
13
- amount: Integer,
18
+ dollars: Integer,
19
+ ?locale: String,
14
20
  ?request_options: XTwitterScraper::request_opts
15
21
  ) -> void
16
22
 
17
23
  def to_hash: -> {
18
- amount: Integer,
24
+ dollars: Integer,
25
+ locale: String,
19
26
  request_options: XTwitterScraper::RequestOptions
20
27
  }
21
28
  end
@@ -1,13 +1,15 @@
1
1
  module XTwitterScraper
2
2
  module Models
3
- type credit_topup_balance_response = { success: true }
3
+ type credit_topup_balance_response = { redirect_url: String, url: String }
4
4
 
5
5
  class CreditTopupBalanceResponse < XTwitterScraper::Internal::Type::BaseModel
6
- attr_accessor success: true
6
+ attr_accessor redirect_url: String
7
7
 
8
- def initialize: (?success: true) -> void
8
+ attr_accessor url: String
9
9
 
10
- def to_hash: -> { success: true }
10
+ def initialize: (redirect_url: String, url: String) -> void
11
+
12
+ def to_hash: -> { redirect_url: String, url: String }
11
13
  end
12
14
  end
13
15
  end
@@ -14,11 +14,7 @@ module XTwitterScraper
14
14
 
15
15
  attr_accessor id: String
16
16
 
17
- attr_reader format_: XTwitterScraper::Models::DrawExportParams::format_?
18
-
19
- def format_=: (
20
- XTwitterScraper::Models::DrawExportParams::format_
21
- ) -> XTwitterScraper::Models::DrawExportParams::format_
17
+ attr_accessor format_: XTwitterScraper::Models::DrawExportParams::format_
22
18
 
23
19
  attr_reader type: XTwitterScraper::Models::DrawExportParams::type_?
24
20
 
@@ -28,7 +24,7 @@ module XTwitterScraper
28
24
 
29
25
  def initialize: (
30
26
  id: String,
31
- ?format_: XTwitterScraper::Models::DrawExportParams::format_,
27
+ format_: XTwitterScraper::Models::DrawExportParams::format_,
32
28
  ?type: XTwitterScraper::Models::DrawExportParams::type_,
33
29
  ?request_options: XTwitterScraper::request_opts
34
30
  ) -> void