x-twitter-scraper 0.12.3 → 0.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (473) hide show
  1. package/CHANGELOG.md +73 -2
  2. package/README.md +66 -51
  3. package/client.d.mts +18 -15
  4. package/client.d.mts.map +1 -1
  5. package/client.d.ts +18 -15
  6. package/client.d.ts.map +1 -1
  7. package/client.js +3 -3
  8. package/client.js.map +1 -1
  9. package/client.mjs +4 -4
  10. package/client.mjs.map +1 -1
  11. package/core/streaming.d.mts +33 -0
  12. package/core/streaming.d.mts.map +1 -0
  13. package/core/streaming.d.ts +33 -0
  14. package/core/streaming.d.ts.map +1 -0
  15. package/core/streaming.js +270 -0
  16. package/core/streaming.js.map +1 -0
  17. package/core/streaming.mjs +265 -0
  18. package/core/streaming.mjs.map +1 -0
  19. package/internal/decoders/line.d.mts +17 -0
  20. package/internal/decoders/line.d.mts.map +1 -0
  21. package/internal/decoders/line.d.ts +17 -0
  22. package/internal/decoders/line.d.ts.map +1 -0
  23. package/internal/decoders/line.js +116 -0
  24. package/internal/decoders/line.js.map +1 -0
  25. package/internal/decoders/line.mjs +111 -0
  26. package/internal/decoders/line.mjs.map +1 -0
  27. package/internal/parse.d.mts.map +1 -1
  28. package/internal/parse.d.ts.map +1 -1
  29. package/internal/parse.js +7 -0
  30. package/internal/parse.js.map +1 -1
  31. package/internal/parse.mjs +7 -0
  32. package/internal/parse.mjs.map +1 -1
  33. package/internal/tslib.js +18 -18
  34. package/package.json +23 -5
  35. package/resources/account.d.mts +35 -12
  36. package/resources/account.d.mts.map +1 -1
  37. package/resources/account.d.ts +35 -12
  38. package/resources/account.d.ts.map +1 -1
  39. package/resources/account.js +4 -3
  40. package/resources/account.js.map +1 -1
  41. package/resources/account.mjs +4 -3
  42. package/resources/account.mjs.map +1 -1
  43. package/resources/compose.d.mts +77 -21
  44. package/resources/compose.d.mts.map +1 -1
  45. package/resources/compose.d.ts +77 -21
  46. package/resources/compose.d.ts.map +1 -1
  47. package/resources/compose.js +3 -4
  48. package/resources/compose.js.map +1 -1
  49. package/resources/compose.mjs +3 -4
  50. package/resources/compose.mjs.map +1 -1
  51. package/resources/credits.d.mts +18 -10
  52. package/resources/credits.d.mts.map +1 -1
  53. package/resources/credits.d.ts +18 -10
  54. package/resources/credits.d.ts.map +1 -1
  55. package/resources/credits.js +5 -4
  56. package/resources/credits.js.map +1 -1
  57. package/resources/credits.mjs +5 -4
  58. package/resources/credits.mjs.map +1 -1
  59. package/resources/drafts.d.mts +13 -17
  60. package/resources/drafts.d.mts.map +1 -1
  61. package/resources/drafts.d.ts +13 -17
  62. package/resources/drafts.d.ts.map +1 -1
  63. package/resources/drafts.js +4 -4
  64. package/resources/drafts.mjs +4 -4
  65. package/resources/draws.d.mts +84 -28
  66. package/resources/draws.d.mts.map +1 -1
  67. package/resources/draws.d.ts +84 -28
  68. package/resources/draws.d.ts.map +1 -1
  69. package/resources/draws.js +24 -9
  70. package/resources/draws.js.map +1 -1
  71. package/resources/draws.mjs +24 -9
  72. package/resources/draws.mjs.map +1 -1
  73. package/resources/events.d.mts +2564 -21
  74. package/resources/events.d.mts.map +1 -1
  75. package/resources/events.d.ts +2564 -21
  76. package/resources/events.d.ts.map +1 -1
  77. package/resources/events.js +34 -2
  78. package/resources/events.js.map +1 -1
  79. package/resources/events.mjs +34 -2
  80. package/resources/events.mjs.map +1 -1
  81. package/resources/extractions.d.mts +410 -128
  82. package/resources/extractions.d.mts.map +1 -1
  83. package/resources/extractions.d.ts +410 -128
  84. package/resources/extractions.d.ts.map +1 -1
  85. package/resources/extractions.js +74 -12
  86. package/resources/extractions.js.map +1 -1
  87. package/resources/extractions.mjs +74 -12
  88. package/resources/extractions.mjs.map +1 -1
  89. package/resources/guest-wallets.d.mts +6 -5
  90. package/resources/guest-wallets.d.mts.map +1 -1
  91. package/resources/guest-wallets.d.ts +6 -5
  92. package/resources/guest-wallets.d.ts.map +1 -1
  93. package/resources/guest-wallets.js +2 -1
  94. package/resources/guest-wallets.js.map +1 -1
  95. package/resources/guest-wallets.mjs +2 -1
  96. package/resources/guest-wallets.mjs.map +1 -1
  97. package/resources/index.d.mts +6 -6
  98. package/resources/index.d.mts.map +1 -1
  99. package/resources/index.d.ts +6 -6
  100. package/resources/index.d.ts.map +1 -1
  101. package/resources/index.js.map +1 -1
  102. package/resources/index.mjs +1 -1
  103. package/resources/index.mjs.map +1 -1
  104. package/resources/monitors/index.d.mts +2 -2
  105. package/resources/monitors/index.d.mts.map +1 -1
  106. package/resources/monitors/index.d.ts +2 -2
  107. package/resources/monitors/index.d.ts.map +1 -1
  108. package/resources/monitors/index.js.map +1 -1
  109. package/resources/monitors/index.mjs.map +1 -1
  110. package/resources/monitors/keywords.d.mts +66 -14
  111. package/resources/monitors/keywords.d.mts.map +1 -1
  112. package/resources/monitors/keywords.d.ts +66 -14
  113. package/resources/monitors/keywords.d.ts.map +1 -1
  114. package/resources/monitors/keywords.js +16 -10
  115. package/resources/monitors/keywords.js.map +1 -1
  116. package/resources/monitors/keywords.mjs +16 -10
  117. package/resources/monitors/keywords.mjs.map +1 -1
  118. package/resources/monitors/monitors.d.mts +53 -16
  119. package/resources/monitors/monitors.d.mts.map +1 -1
  120. package/resources/monitors/monitors.d.ts +53 -16
  121. package/resources/monitors/monitors.d.ts.map +1 -1
  122. package/resources/monitors/monitors.js +12 -10
  123. package/resources/monitors/monitors.js.map +1 -1
  124. package/resources/monitors/monitors.mjs +12 -10
  125. package/resources/monitors/monitors.mjs.map +1 -1
  126. package/resources/radar.d.mts +32 -36
  127. package/resources/radar.d.mts.map +1 -1
  128. package/resources/radar.d.ts +32 -36
  129. package/resources/radar.d.ts.map +1 -1
  130. package/resources/radar.js +1 -1
  131. package/resources/radar.mjs +1 -1
  132. package/resources/shared.d.mts +1726 -233
  133. package/resources/shared.d.mts.map +1 -1
  134. package/resources/shared.d.ts +1726 -233
  135. package/resources/shared.d.ts.map +1 -1
  136. package/resources/styles.d.mts +34 -23
  137. package/resources/styles.d.mts.map +1 -1
  138. package/resources/styles.d.ts +34 -23
  139. package/resources/styles.d.ts.map +1 -1
  140. package/resources/styles.js +11 -13
  141. package/resources/styles.js.map +1 -1
  142. package/resources/styles.mjs +11 -13
  143. package/resources/styles.mjs.map +1 -1
  144. package/resources/subscribe.d.mts +1 -1
  145. package/resources/subscribe.d.ts +1 -1
  146. package/resources/subscribe.js +1 -1
  147. package/resources/subscribe.mjs +1 -1
  148. package/resources/support/index.d.mts +1 -1
  149. package/resources/support/index.d.mts.map +1 -1
  150. package/resources/support/index.d.ts +1 -1
  151. package/resources/support/index.d.ts.map +1 -1
  152. package/resources/support/index.js.map +1 -1
  153. package/resources/support/index.mjs.map +1 -1
  154. package/resources/support/support.d.mts +2 -2
  155. package/resources/support/support.d.mts.map +1 -1
  156. package/resources/support/support.d.ts +2 -2
  157. package/resources/support/support.d.ts.map +1 -1
  158. package/resources/support/support.js.map +1 -1
  159. package/resources/support/support.mjs.map +1 -1
  160. package/resources/support/tickets.d.mts +30 -10
  161. package/resources/support/tickets.d.mts.map +1 -1
  162. package/resources/support/tickets.d.ts +30 -10
  163. package/resources/support/tickets.d.ts.map +1 -1
  164. package/resources/support/tickets.js +7 -7
  165. package/resources/support/tickets.js.map +1 -1
  166. package/resources/support/tickets.mjs +7 -7
  167. package/resources/support/tickets.mjs.map +1 -1
  168. package/resources/trends.d.mts +21 -5
  169. package/resources/trends.d.mts.map +1 -1
  170. package/resources/trends.d.ts +21 -5
  171. package/resources/trends.d.ts.map +1 -1
  172. package/resources/trends.js +2 -1
  173. package/resources/trends.js.map +1 -1
  174. package/resources/trends.mjs +2 -1
  175. package/resources/trends.mjs.map +1 -1
  176. package/resources/webhooks.d.mts +80 -14
  177. package/resources/webhooks.d.mts.map +1 -1
  178. package/resources/webhooks.d.ts +80 -14
  179. package/resources/webhooks.d.ts.map +1 -1
  180. package/resources/webhooks.js +30 -11
  181. package/resources/webhooks.js.map +1 -1
  182. package/resources/webhooks.mjs +30 -11
  183. package/resources/webhooks.mjs.map +1 -1
  184. package/resources/x/account-connection-attempts.d.mts +1 -1
  185. package/resources/x/account-connection-attempts.d.ts +1 -1
  186. package/resources/x/account-connection-attempts.js +1 -1
  187. package/resources/x/account-connection-attempts.mjs +1 -1
  188. package/resources/x/account-connection-challenges.d.mts +30 -11
  189. package/resources/x/account-connection-challenges.d.mts.map +1 -1
  190. package/resources/x/account-connection-challenges.d.ts +30 -11
  191. package/resources/x/account-connection-challenges.d.ts.map +1 -1
  192. package/resources/x/account-connection-challenges.js +5 -4
  193. package/resources/x/account-connection-challenges.js.map +1 -1
  194. package/resources/x/account-connection-challenges.mjs +5 -4
  195. package/resources/x/account-connection-challenges.mjs.map +1 -1
  196. package/resources/x/accounts.d.mts +38 -10
  197. package/resources/x/accounts.d.mts.map +1 -1
  198. package/resources/x/accounts.d.ts +38 -10
  199. package/resources/x/accounts.d.ts.map +1 -1
  200. package/resources/x/accounts.js +8 -7
  201. package/resources/x/accounts.js.map +1 -1
  202. package/resources/x/accounts.mjs +8 -7
  203. package/resources/x/accounts.mjs.map +1 -1
  204. package/resources/x/analysis.d.mts +3274 -0
  205. package/resources/x/analysis.d.mts.map +1 -0
  206. package/resources/x/analysis.d.ts +3274 -0
  207. package/resources/x/analysis.d.ts.map +1 -0
  208. package/resources/x/analysis.js +132 -0
  209. package/resources/x/analysis.js.map +1 -0
  210. package/resources/x/analysis.mjs +128 -0
  211. package/resources/x/analysis.mjs.map +1 -0
  212. package/resources/x/bookmarks.d.mts +84 -9
  213. package/resources/x/bookmarks.d.mts.map +1 -1
  214. package/resources/x/bookmarks.d.ts +84 -9
  215. package/resources/x/bookmarks.d.ts.map +1 -1
  216. package/resources/x/bookmarks.js +6 -4
  217. package/resources/x/bookmarks.js.map +1 -1
  218. package/resources/x/bookmarks.mjs +6 -4
  219. package/resources/x/bookmarks.mjs.map +1 -1
  220. package/resources/x/broadcasts.d.mts +176 -0
  221. package/resources/x/broadcasts.d.mts.map +1 -0
  222. package/resources/x/broadcasts.d.ts +176 -0
  223. package/resources/x/broadcasts.d.ts.map +1 -0
  224. package/resources/x/broadcasts.js +29 -0
  225. package/resources/x/broadcasts.js.map +1 -0
  226. package/resources/x/broadcasts.mjs +25 -0
  227. package/resources/x/broadcasts.mjs.map +1 -0
  228. package/resources/x/communities/communities.d.mts +612 -128
  229. package/resources/x/communities/communities.d.mts.map +1 -1
  230. package/resources/x/communities/communities.d.ts +612 -128
  231. package/resources/x/communities/communities.d.ts.map +1 -1
  232. package/resources/x/communities/communities.js +96 -17
  233. package/resources/x/communities/communities.js.map +1 -1
  234. package/resources/x/communities/communities.mjs +96 -17
  235. package/resources/x/communities/communities.mjs.map +1 -1
  236. package/resources/x/communities/index.d.mts +2 -1
  237. package/resources/x/communities/index.d.mts.map +1 -1
  238. package/resources/x/communities/index.d.ts +2 -1
  239. package/resources/x/communities/index.d.ts.map +1 -1
  240. package/resources/x/communities/index.js +3 -1
  241. package/resources/x/communities/index.js.map +1 -1
  242. package/resources/x/communities/index.mjs +1 -0
  243. package/resources/x/communities/index.mjs.map +1 -1
  244. package/resources/x/communities/join.d.mts +46 -25
  245. package/resources/x/communities/join.d.mts.map +1 -1
  246. package/resources/x/communities/join.d.ts +46 -25
  247. package/resources/x/communities/join.d.ts.map +1 -1
  248. package/resources/x/communities/join.js +10 -7
  249. package/resources/x/communities/join.js.map +1 -1
  250. package/resources/x/communities/join.mjs +10 -7
  251. package/resources/x/communities/join.mjs.map +1 -1
  252. package/resources/x/communities/media.d.mts +197 -0
  253. package/resources/x/communities/media.d.mts.map +1 -0
  254. package/resources/x/communities/media.d.ts +197 -0
  255. package/resources/x/communities/media.d.ts.map +1 -0
  256. package/resources/x/communities/media.js +29 -0
  257. package/resources/x/communities/media.js.map +1 -0
  258. package/resources/x/communities/media.mjs +25 -0
  259. package/resources/x/communities/media.mjs.map +1 -0
  260. package/resources/x/communities/tweets.d.mts +350 -20
  261. package/resources/x/communities/tweets.d.mts.map +1 -1
  262. package/resources/x/communities/tweets.d.ts +350 -20
  263. package/resources/x/communities/tweets.d.ts.map +1 -1
  264. package/resources/x/communities/tweets.js +8 -7
  265. package/resources/x/communities/tweets.js.map +1 -1
  266. package/resources/x/communities/tweets.mjs +8 -7
  267. package/resources/x/communities/tweets.mjs.map +1 -1
  268. package/resources/x/dm.d.mts +245 -13
  269. package/resources/x/dm.d.mts.map +1 -1
  270. package/resources/x/dm.d.ts +245 -13
  271. package/resources/x/dm.d.ts.map +1 -1
  272. package/resources/x/dm.js +29 -2
  273. package/resources/x/dm.js.map +1 -1
  274. package/resources/x/dm.mjs +29 -2
  275. package/resources/x/dm.mjs.map +1 -1
  276. package/resources/x/followers.d.mts +31 -3
  277. package/resources/x/followers.d.mts.map +1 -1
  278. package/resources/x/followers.d.ts +31 -3
  279. package/resources/x/followers.d.ts.map +1 -1
  280. package/resources/x/followers.js +2 -1
  281. package/resources/x/followers.js.map +1 -1
  282. package/resources/x/followers.mjs +2 -1
  283. package/resources/x/followers.mjs.map +1 -1
  284. package/resources/x/index.d.mts +12 -8
  285. package/resources/x/index.d.mts.map +1 -1
  286. package/resources/x/index.d.ts +12 -8
  287. package/resources/x/index.d.ts.map +1 -1
  288. package/resources/x/index.js +9 -1
  289. package/resources/x/index.js.map +1 -1
  290. package/resources/x/index.mjs +5 -1
  291. package/resources/x/index.mjs.map +1 -1
  292. package/resources/x/jobs.d.mts +506 -0
  293. package/resources/x/jobs.d.mts.map +1 -0
  294. package/resources/x/jobs.d.ts +506 -0
  295. package/resources/x/jobs.d.ts.map +1 -0
  296. package/resources/x/jobs.js +60 -0
  297. package/resources/x/jobs.js.map +1 -0
  298. package/resources/x/jobs.mjs +56 -0
  299. package/resources/x/jobs.mjs.map +1 -0
  300. package/resources/x/lists.d.mts +1058 -27
  301. package/resources/x/lists.d.mts.map +1 -1
  302. package/resources/x/lists.d.ts +1058 -27
  303. package/resources/x/lists.d.ts.map +1 -1
  304. package/resources/x/lists.js +39 -9
  305. package/resources/x/lists.js.map +1 -1
  306. package/resources/x/lists.mjs +39 -9
  307. package/resources/x/lists.mjs.map +1 -1
  308. package/resources/x/media.d.mts +24 -13
  309. package/resources/x/media.d.mts.map +1 -1
  310. package/resources/x/media.d.ts +24 -13
  311. package/resources/x/media.d.ts.map +1 -1
  312. package/resources/x/media.js +2 -2
  313. package/resources/x/media.mjs +2 -2
  314. package/resources/x/profile.d.mts +60 -33
  315. package/resources/x/profile.d.mts.map +1 -1
  316. package/resources/x/profile.d.ts +60 -33
  317. package/resources/x/profile.d.ts.map +1 -1
  318. package/resources/x/profile.js +3 -3
  319. package/resources/x/profile.mjs +3 -3
  320. package/resources/x/spaces.d.mts +857 -0
  321. package/resources/x/spaces.d.mts.map +1 -0
  322. package/resources/x/spaces.d.ts +857 -0
  323. package/resources/x/spaces.d.ts.map +1 -0
  324. package/resources/x/spaces.js +58 -0
  325. package/resources/x/spaces.js.map +1 -0
  326. package/resources/x/spaces.mjs +54 -0
  327. package/resources/x/spaces.mjs.map +1 -0
  328. package/resources/x/tweets/index.d.mts +1 -1
  329. package/resources/x/tweets/index.d.mts.map +1 -1
  330. package/resources/x/tweets/index.d.ts +1 -1
  331. package/resources/x/tweets/index.d.ts.map +1 -1
  332. package/resources/x/tweets/index.js.map +1 -1
  333. package/resources/x/tweets/index.mjs.map +1 -1
  334. package/resources/x/tweets/like.d.mts +38 -20
  335. package/resources/x/tweets/like.d.mts.map +1 -1
  336. package/resources/x/tweets/like.d.ts +38 -20
  337. package/resources/x/tweets/like.d.ts.map +1 -1
  338. package/resources/x/tweets/like.js +2 -2
  339. package/resources/x/tweets/like.mjs +2 -2
  340. package/resources/x/tweets/retweet.d.mts +38 -20
  341. package/resources/x/tweets/retweet.d.mts.map +1 -1
  342. package/resources/x/tweets/retweet.d.ts +38 -20
  343. package/resources/x/tweets/retweet.d.ts.map +1 -1
  344. package/resources/x/tweets/retweet.js +2 -2
  345. package/resources/x/tweets/retweet.mjs +2 -2
  346. package/resources/x/tweets/tweets.d.mts +2639 -326
  347. package/resources/x/tweets/tweets.d.mts.map +1 -1
  348. package/resources/x/tweets/tweets.d.ts +2639 -326
  349. package/resources/x/tweets/tweets.d.ts.map +1 -1
  350. package/resources/x/tweets/tweets.js +147 -21
  351. package/resources/x/tweets/tweets.js.map +1 -1
  352. package/resources/x/tweets/tweets.mjs +147 -21
  353. package/resources/x/tweets/tweets.mjs.map +1 -1
  354. package/resources/x/users/follow.d.mts +38 -20
  355. package/resources/x/users/follow.d.mts.map +1 -1
  356. package/resources/x/users/follow.d.ts +38 -20
  357. package/resources/x/users/follow.d.ts.map +1 -1
  358. package/resources/x/users/follow.js +2 -2
  359. package/resources/x/users/follow.mjs +2 -2
  360. package/resources/x/users/index.d.mts +1 -1
  361. package/resources/x/users/index.d.mts.map +1 -1
  362. package/resources/x/users/index.d.ts +1 -1
  363. package/resources/x/users/index.d.ts.map +1 -1
  364. package/resources/x/users/index.js.map +1 -1
  365. package/resources/x/users/index.mjs.map +1 -1
  366. package/resources/x/users/users.d.mts +3068 -457
  367. package/resources/x/users/users.d.mts.map +1 -1
  368. package/resources/x/users/users.d.ts +3068 -457
  369. package/resources/x/users/users.d.ts.map +1 -1
  370. package/resources/x/users/users.js +205 -22
  371. package/resources/x/users/users.js.map +1 -1
  372. package/resources/x/users/users.mjs +205 -22
  373. package/resources/x/users/users.mjs.map +1 -1
  374. package/resources/x/write-actions.d.mts +13 -6
  375. package/resources/x/write-actions.d.mts.map +1 -1
  376. package/resources/x/write-actions.d.ts +13 -6
  377. package/resources/x/write-actions.d.ts.map +1 -1
  378. package/resources/x/write-actions.js +1 -1
  379. package/resources/x/write-actions.mjs +1 -1
  380. package/resources/x/x.d.mts +864 -27
  381. package/resources/x/x.d.mts.map +1 -1
  382. package/resources/x/x.d.ts +864 -27
  383. package/resources/x/x.d.ts.map +1 -1
  384. package/resources/x/x.js +78 -5
  385. package/resources/x/x.js.map +1 -1
  386. package/resources/x/x.mjs +80 -7
  387. package/resources/x/x.mjs.map +1 -1
  388. package/skills/x-twitter-scraper/SKILL.md +97 -350
  389. package/skills/x-twitter-scraper/metadata.json +3 -9
  390. package/skills/x-twitter-scraper/references/draws.md +24 -24
  391. package/skills/x-twitter-scraper/references/extractions.md +71 -62
  392. package/skills/x-twitter-scraper/references/mcp-setup.md +36 -39
  393. package/skills/x-twitter-scraper/references/mcp-tools.md +105 -166
  394. package/skills/x-twitter-scraper/references/python-examples.md +5 -5
  395. package/skills/x-twitter-scraper/references/security.md +8 -8
  396. package/skills/x-twitter-scraper/references/types-mcp-output-schemas.md +4 -4
  397. package/skills/x-twitter-scraper/references/types.md +0 -1
  398. package/skills/x-twitter-scraper/references/usage.md +5 -5
  399. package/skills/x-twitter-scraper/references/webhooks.md +28 -31
  400. package/skills/x-twitter-scraper/references/workflows.md +70 -71
  401. package/skills/x-twitter-scraper/skill-card.md +13 -14
  402. package/skills/x-twitter-scraper/skillspector-report.md +8 -5
  403. package/skills/xquik-account-automation/LICENSE +21 -0
  404. package/skills/xquik-account-automation/SKILL.md +91 -0
  405. package/skills/xquik-social-research/SKILL.md +49 -56
  406. package/src/client.ts +47 -4
  407. package/src/core/streaming.ts +328 -0
  408. package/src/internal/decoders/line.ts +140 -0
  409. package/src/internal/parse.ts +9 -0
  410. package/src/resources/account.ts +41 -12
  411. package/src/resources/compose.ts +77 -21
  412. package/src/resources/credits.ts +19 -10
  413. package/src/resources/drafts.ts +13 -22
  414. package/src/resources/draws.ts +94 -36
  415. package/src/resources/events.ts +3225 -68
  416. package/src/resources/extractions.ts +512 -125
  417. package/src/resources/guest-wallets.ts +6 -5
  418. package/src/resources/index.ts +24 -1
  419. package/src/resources/monitors/index.ts +2 -0
  420. package/src/resources/monitors/keywords.ts +82 -14
  421. package/src/resources/monitors/monitors.ts +66 -14
  422. package/src/resources/radar.ts +32 -36
  423. package/src/resources/shared.ts +2227 -351
  424. package/src/resources/styles.ts +43 -27
  425. package/src/resources/subscribe.ts +1 -1
  426. package/src/resources/support/index.ts +1 -0
  427. package/src/resources/support/support.ts +2 -0
  428. package/src/resources/support/tickets.ts +38 -10
  429. package/src/resources/trends.ts +23 -5
  430. package/src/resources/webhooks.ts +109 -15
  431. package/src/resources/x/account-connection-attempts.ts +1 -1
  432. package/src/resources/x/account-connection-challenges.ts +39 -11
  433. package/src/resources/x/accounts.ts +46 -10
  434. package/src/resources/x/analysis.ts +3947 -0
  435. package/src/resources/x/bookmarks.ts +103 -9
  436. package/src/resources/x/broadcasts.ts +225 -0
  437. package/src/resources/x/communities/communities.ts +743 -141
  438. package/src/resources/x/communities/index.ts +9 -0
  439. package/src/resources/x/communities/join.ts +46 -23
  440. package/src/resources/x/communities/media.ts +251 -0
  441. package/src/resources/x/communities/tweets.ts +427 -20
  442. package/src/resources/x/dm.ts +334 -11
  443. package/src/resources/x/followers.ts +35 -3
  444. package/src/resources/x/index.ts +106 -1
  445. package/src/resources/x/jobs.ts +627 -0
  446. package/src/resources/x/lists.ts +1307 -28
  447. package/src/resources/x/media.ts +24 -12
  448. package/src/resources/x/profile.ts +60 -30
  449. package/src/resources/x/spaces.ts +1076 -0
  450. package/src/resources/x/tweets/index.ts +18 -0
  451. package/src/resources/x/tweets/like.ts +38 -18
  452. package/src/resources/x/tweets/retweet.ts +38 -18
  453. package/src/resources/x/tweets/tweets.ts +3695 -843
  454. package/src/resources/x/users/follow.ts +38 -18
  455. package/src/resources/x/users/index.ts +22 -0
  456. package/src/resources/x/users/users.ts +3687 -465
  457. package/src/resources/x/write-actions.ts +13 -5
  458. package/src/resources/x/x.ts +1227 -15
  459. package/src/streaming.ts +6 -0
  460. package/src/version.ts +1 -1
  461. package/streaming.d.mts +3 -0
  462. package/streaming.d.mts.map +1 -0
  463. package/streaming.d.ts +3 -0
  464. package/streaming.d.ts.map +1 -0
  465. package/streaming.js +9 -0
  466. package/streaming.js.map +1 -0
  467. package/streaming.mjs +6 -0
  468. package/streaming.mjs.map +1 -0
  469. package/version.d.mts +1 -1
  470. package/version.d.ts +1 -1
  471. package/version.js +1 -1
  472. package/version.mjs +1 -1
  473. package/skills/x-twitter-scraper/references/types-rest-api-vs-mcp-field-naming.md +0 -15
@@ -11,46 +11,85 @@ import { RequestOptions } from '../../internal/request-options';
11
11
  import { path } from '../../internal/utils/path';
12
12
 
13
13
  /**
14
- * X List followers, members, and tweets
14
+ * X List search, details, followers, members, and tweets
15
15
  */
16
16
  export class Lists extends APIResource {
17
17
  /**
18
- * List followers of an X List
18
+ * Returns one public X List as its page on X shows it. Accepts the List ID or the
19
+ * URL-encoded List URL, such as x.com/i/lists/4143408. A private List answers 404
20
+ * list_not_found.
19
21
  *
20
22
  * @example
21
23
  * ```ts
22
- * const paginatedUsers =
23
- * await client.x.lists.retrieveFollowers('id');
24
+ * const list = await client.x.lists.retrieve('id');
25
+ * ```
26
+ */
27
+ retrieve(
28
+ id: string,
29
+ query: ListRetrieveParams | null | undefined = {},
30
+ options?: RequestOptions,
31
+ ): APIPromise<ListRetrieveResponse> {
32
+ return this._client.get(path`/x/lists/${id}`, { query, ...options });
33
+ }
34
+
35
+ /**
36
+ * Returns a public List's followers with resumable or standard pagination. A
37
+ * private List answers 404 list_not_found.
38
+ *
39
+ * @example
40
+ * ```ts
41
+ * const response = await client.x.lists.retrieveFollowers(
42
+ * 'id',
43
+ * );
24
44
  * ```
25
45
  */
26
46
  retrieveFollowers(
27
47
  id: string,
28
48
  query: ListRetrieveFollowersParams | null | undefined = {},
29
49
  options?: RequestOptions,
30
- ): APIPromise<Shared.PaginatedUsers> {
50
+ ): APIPromise<ListRetrieveFollowersResponse> {
31
51
  return this._client.get(path`/x/lists/${id}/followers`, { query, ...options });
32
52
  }
33
53
 
34
54
  /**
35
- * List members of an X List
55
+ * Returns a public List's members with resumable or standard pagination. A private
56
+ * List answers 404 list_not_found.
36
57
  *
37
58
  * @example
38
59
  * ```ts
39
- * const paginatedUsers = await client.x.lists.retrieveMembers(
40
- * 'id',
41
- * );
60
+ * const response = await client.x.lists.retrieveMembers('id');
42
61
  * ```
43
62
  */
44
63
  retrieveMembers(
45
64
  id: string,
46
65
  query: ListRetrieveMembersParams | null | undefined = {},
47
66
  options?: RequestOptions,
48
- ): APIPromise<Shared.PaginatedUsers> {
67
+ ): APIPromise<ListRetrieveMembersResponse> {
49
68
  return this._client.get(path`/x/lists/${id}/members`, { query, ...options });
50
69
  }
51
70
 
52
71
  /**
53
- * List tweets from an X List
72
+ * Returns one page of public Lists with member counts, banners & owner profiles. X
73
+ * may rank the Lists differently per request. Pass next_cursor as cursor for the
74
+ * next page.
75
+ *
76
+ * @example
77
+ * ```ts
78
+ * const response = await client.x.lists.retrieveSearch({
79
+ * q: 'q',
80
+ * });
81
+ * ```
82
+ */
83
+ retrieveSearch(
84
+ query: ListRetrieveSearchParams,
85
+ options?: RequestOptions,
86
+ ): APIPromise<ListRetrieveSearchResponse> {
87
+ return this._client.get('/x/lists/search', { query, ...options });
88
+ }
89
+
90
+ /**
91
+ * Omit mode for resumable maximum coverage. Pass next_cursor unchanged. Standard
92
+ * keeps legacy pagination. A private List answers 404 list_not_found.
54
93
  *
55
94
  * @example
56
95
  * ```ts
@@ -68,17 +107,846 @@ export class Lists extends APIResource {
68
107
  }
69
108
  }
70
109
 
110
+ export interface ListRetrieveResponse {
111
+ /**
112
+ * Public X List with its owner's public profile. Leaves out what X tells the
113
+ * reading account, such as whether it follows the List.
114
+ */
115
+ list: ListRetrieveResponse.List;
116
+ }
117
+
118
+ export namespace ListRetrieveResponse {
119
+ /**
120
+ * Public X List with its owner's public profile. Leaves out what X tells the
121
+ * reading account, such as whether it follows the List.
122
+ */
123
+ export interface List {
124
+ /**
125
+ * Numeric ID of the List.
126
+ */
127
+ id: string;
128
+
129
+ /**
130
+ * Name the owner gave the List.
131
+ */
132
+ name: string;
133
+
134
+ /**
135
+ * URL of the banner the owner uploaded. Absent when the owner uploaded none.
136
+ */
137
+ bannerUrl?: string;
138
+
139
+ /**
140
+ * When the owner made the List.
141
+ */
142
+ createdAt?: string;
143
+
144
+ /**
145
+ * Banner the owner uploaded.
146
+ */
147
+ customBanner?: List.CustomBanner;
148
+
149
+ /**
150
+ * Banner X shows when the owner uploaded none. X picks it per reading account, so
151
+ * 2 calls can return different ones.
152
+ */
153
+ defaultBanner?: List.DefaultBanner;
154
+
155
+ /**
156
+ * About text of the List. Empty when the owner wrote none.
157
+ */
158
+ description?: string;
159
+
160
+ /**
161
+ * Avatar URLs of a few List members, which X may pick per request.
162
+ */
163
+ facepileUrls?: Array<string>;
164
+
165
+ /**
166
+ * Accounts on the List.
167
+ */
168
+ memberCount?: number;
169
+
170
+ /**
171
+ * Member count as X words it, such as 35 members.
172
+ */
173
+ membersContext?: string;
174
+
175
+ /**
176
+ * Public profile of the account that owns the List.
177
+ */
178
+ owner?: Shared.UserProfile;
179
+
180
+ /**
181
+ * Accounts that follow the List, which X calls followers.
182
+ */
183
+ subscriberCount?: number;
184
+
185
+ /**
186
+ * List page on x.com.
187
+ */
188
+ url?: string;
189
+ }
190
+
191
+ export namespace List {
192
+ /**
193
+ * Banner the owner uploaded.
194
+ */
195
+ export interface CustomBanner {
196
+ /**
197
+ * Banner image URL.
198
+ */
199
+ url: string;
200
+
201
+ /**
202
+ * Banner height in pixels.
203
+ */
204
+ height?: number;
205
+
206
+ /**
207
+ * Media ID of an uploaded banner.
208
+ */
209
+ mediaId?: string;
210
+
211
+ /**
212
+ * Stable media key of an uploaded banner.
213
+ */
214
+ mediaKey?: string;
215
+
216
+ /**
217
+ * Dominant colors of an uploaded banner and their shares.
218
+ */
219
+ palette?: Array<CustomBanner.Palette>;
220
+
221
+ /**
222
+ * Area X marks as the subject of the banner, in pixels.
223
+ */
224
+ salientRect?: CustomBanner.SalientRect;
225
+
226
+ /**
227
+ * Banner width in pixels.
228
+ */
229
+ width?: number;
230
+ }
231
+
232
+ export namespace CustomBanner {
233
+ export interface Palette {
234
+ /**
235
+ * Share of the banner
236
+ */
237
+ percentage?: number;
238
+
239
+ /**
240
+ * The color's red, green and blue values.
241
+ */
242
+ rgb?: Palette.Rgb;
243
+ }
244
+
245
+ export namespace Palette {
246
+ /**
247
+ * The color's red, green and blue values.
248
+ */
249
+ export interface Rgb {
250
+ blue?: number;
251
+
252
+ green?: number;
253
+
254
+ red?: number;
255
+ }
256
+ }
257
+
258
+ /**
259
+ * Area X marks as the subject of the banner, in pixels.
260
+ */
261
+ export interface SalientRect {
262
+ /**
263
+ * Height of the marked area.
264
+ */
265
+ height?: number;
266
+
267
+ /**
268
+ * Pixels from the banner's left.
269
+ */
270
+ left?: number;
271
+
272
+ /**
273
+ * Pixels from the banner's top.
274
+ */
275
+ top?: number;
276
+
277
+ /**
278
+ * Width of the marked area.
279
+ */
280
+ width?: number;
281
+ }
282
+ }
283
+
284
+ /**
285
+ * Banner X shows when the owner uploaded none. X picks it per reading account, so
286
+ * 2 calls can return different ones.
287
+ */
288
+ export interface DefaultBanner {
289
+ /**
290
+ * Banner image URL.
291
+ */
292
+ url: string;
293
+
294
+ /**
295
+ * Banner height in pixels.
296
+ */
297
+ height?: number;
298
+
299
+ /**
300
+ * Media ID of an uploaded banner.
301
+ */
302
+ mediaId?: string;
303
+
304
+ /**
305
+ * Stable media key of an uploaded banner.
306
+ */
307
+ mediaKey?: string;
308
+
309
+ /**
310
+ * Dominant colors of an uploaded banner and their shares.
311
+ */
312
+ palette?: Array<DefaultBanner.Palette>;
313
+
314
+ /**
315
+ * Area X marks as the subject of the banner, in pixels.
316
+ */
317
+ salientRect?: DefaultBanner.SalientRect;
318
+
319
+ /**
320
+ * Banner width in pixels.
321
+ */
322
+ width?: number;
323
+ }
324
+
325
+ export namespace DefaultBanner {
326
+ export interface Palette {
327
+ /**
328
+ * Share of the banner
329
+ */
330
+ percentage?: number;
331
+
332
+ /**
333
+ * The color's red, green and blue values.
334
+ */
335
+ rgb?: Palette.Rgb;
336
+ }
337
+
338
+ export namespace Palette {
339
+ /**
340
+ * The color's red, green and blue values.
341
+ */
342
+ export interface Rgb {
343
+ blue?: number;
344
+
345
+ green?: number;
346
+
347
+ red?: number;
348
+ }
349
+ }
350
+
351
+ /**
352
+ * Area X marks as the subject of the banner, in pixels.
353
+ */
354
+ export interface SalientRect {
355
+ /**
356
+ * Height of the marked area.
357
+ */
358
+ height?: number;
359
+
360
+ /**
361
+ * Pixels from the banner's left.
362
+ */
363
+ left?: number;
364
+
365
+ /**
366
+ * Pixels from the banner's top.
367
+ */
368
+ top?: number;
369
+
370
+ /**
371
+ * Width of the marked area.
372
+ */
373
+ width?: number;
374
+ }
375
+ }
376
+ }
377
+ }
378
+
379
+ /**
380
+ * A standard or terminal maximum-coverage relationship page.
381
+ */
382
+ export type ListRetrieveFollowersResponse =
383
+ Shared.PaginatedUsers | ListRetrieveFollowersResponse.UserListCoverageResponse;
384
+
385
+ export namespace ListRetrieveFollowersResponse {
386
+ /**
387
+ * Terminal relationship coverage response with diagnostics.
388
+ */
389
+ export interface UserListCoverageResponse extends Omit<
390
+ Shared.PaginatedUsers,
391
+ 'has_next_page' | 'next_cursor'
392
+ > {
393
+ /**
394
+ * Coverage evidence across parallel relationship strategies.
395
+ */
396
+ diagnostic: UserListCoverageResponse.Diagnostic;
397
+
398
+ has_next_page?: false;
399
+
400
+ next_cursor?: '';
401
+ }
402
+
403
+ export namespace UserListCoverageResponse {
404
+ /**
405
+ * Coverage evidence across parallel relationship strategies.
406
+ */
407
+ export interface Diagnostic {
408
+ /**
409
+ * True after all active strategies exhaust their sources. An empty read of the
410
+ * whole search window also ends its time slices.
411
+ */
412
+ complete: boolean;
413
+
414
+ /**
415
+ * Whole number from 0.
416
+ */
417
+ cursorFailureCount: number;
418
+
419
+ deadlineReached: boolean;
420
+
421
+ /**
422
+ * Whole number from 0.
423
+ */
424
+ duplicateCount: number;
425
+
426
+ /**
427
+ * Whole number from 0.
428
+ */
429
+ failedStrategyCount: number;
430
+
431
+ /**
432
+ * Whole number from 0.
433
+ */
434
+ malformedCount: number;
435
+
436
+ /**
437
+ * Whole number from 0.
438
+ */
439
+ pagesFetched: number;
440
+
441
+ /**
442
+ * True when credits or the requested limit reduce output.
443
+ */
444
+ responseTruncated: boolean;
445
+
446
+ resultLimitReached: boolean;
447
+
448
+ returnedUsers: number;
449
+
450
+ /**
451
+ * Whole number from 0.
452
+ */
453
+ stalledStrategyCount: number;
454
+
455
+ strategies: Array<Diagnostic.Strategy>;
456
+
457
+ strategyCount: number;
458
+
459
+ uniqueUsers: number;
460
+ }
461
+
462
+ export namespace Diagnostic {
463
+ /**
464
+ * Result counts and stop reason for one relationship strategy.
465
+ */
466
+ export interface Strategy {
467
+ /**
468
+ * Whole number from 0.
469
+ */
470
+ duplicateCount: number;
471
+
472
+ /**
473
+ * Whole number from 0.
474
+ */
475
+ pagesFetched: number;
476
+
477
+ /**
478
+ * Reason a coverage strategy stopped.
479
+ */
480
+ stopReason:
481
+ 'cursor_failure' | 'deadline' | 'exhausted' | 'failed' | 'page_limit' | 'result_limit' | 'stalled';
482
+
483
+ strategy: number;
484
+
485
+ /**
486
+ * Whole number from 0.
487
+ */
488
+ uniqueAdded: number;
489
+ }
490
+ }
491
+ }
492
+ }
493
+
494
+ /**
495
+ * A standard or terminal maximum-coverage relationship page.
496
+ */
497
+ export type ListRetrieveMembersResponse =
498
+ Shared.PaginatedUsers | ListRetrieveMembersResponse.UserListCoverageResponse;
499
+
500
+ export namespace ListRetrieveMembersResponse {
501
+ /**
502
+ * Terminal relationship coverage response with diagnostics.
503
+ */
504
+ export interface UserListCoverageResponse extends Omit<
505
+ Shared.PaginatedUsers,
506
+ 'has_next_page' | 'next_cursor'
507
+ > {
508
+ /**
509
+ * Coverage evidence across parallel relationship strategies.
510
+ */
511
+ diagnostic: UserListCoverageResponse.Diagnostic;
512
+
513
+ has_next_page?: false;
514
+
515
+ next_cursor?: '';
516
+ }
517
+
518
+ export namespace UserListCoverageResponse {
519
+ /**
520
+ * Coverage evidence across parallel relationship strategies.
521
+ */
522
+ export interface Diagnostic {
523
+ /**
524
+ * True after all active strategies exhaust their sources. An empty read of the
525
+ * whole search window also ends its time slices.
526
+ */
527
+ complete: boolean;
528
+
529
+ /**
530
+ * Whole number from 0.
531
+ */
532
+ cursorFailureCount: number;
533
+
534
+ deadlineReached: boolean;
535
+
536
+ /**
537
+ * Whole number from 0.
538
+ */
539
+ duplicateCount: number;
540
+
541
+ /**
542
+ * Whole number from 0.
543
+ */
544
+ failedStrategyCount: number;
545
+
546
+ /**
547
+ * Whole number from 0.
548
+ */
549
+ malformedCount: number;
550
+
551
+ /**
552
+ * Whole number from 0.
553
+ */
554
+ pagesFetched: number;
555
+
556
+ /**
557
+ * True when credits or the requested limit reduce output.
558
+ */
559
+ responseTruncated: boolean;
560
+
561
+ resultLimitReached: boolean;
562
+
563
+ returnedUsers: number;
564
+
565
+ /**
566
+ * Whole number from 0.
567
+ */
568
+ stalledStrategyCount: number;
569
+
570
+ strategies: Array<Diagnostic.Strategy>;
571
+
572
+ strategyCount: number;
573
+
574
+ uniqueUsers: number;
575
+ }
576
+
577
+ export namespace Diagnostic {
578
+ /**
579
+ * Result counts and stop reason for one relationship strategy.
580
+ */
581
+ export interface Strategy {
582
+ /**
583
+ * Whole number from 0.
584
+ */
585
+ duplicateCount: number;
586
+
587
+ /**
588
+ * Whole number from 0.
589
+ */
590
+ pagesFetched: number;
591
+
592
+ /**
593
+ * Reason a coverage strategy stopped.
594
+ */
595
+ stopReason:
596
+ 'cursor_failure' | 'deadline' | 'exhausted' | 'failed' | 'page_limit' | 'result_limit' | 'stalled';
597
+
598
+ strategy: number;
599
+
600
+ /**
601
+ * Whole number from 0.
602
+ */
603
+ uniqueAdded: number;
604
+ }
605
+ }
606
+ }
607
+ }
608
+
609
+ /**
610
+ * One page of public X Lists. Follow next_cursor while the response reports more
611
+ * pages. Each returned List costs 1 credit.
612
+ */
613
+ export interface ListRetrieveSearchResponse {
614
+ has_next_page: boolean;
615
+
616
+ lists: Array<ListRetrieveSearchResponse.List>;
617
+
618
+ next_cursor: string;
619
+ }
620
+
621
+ export namespace ListRetrieveSearchResponse {
622
+ /**
623
+ * Public X List with its owner's public profile. Leaves out what X tells the
624
+ * reading account, such as whether it follows the List.
625
+ */
626
+ export interface List {
627
+ /**
628
+ * Numeric ID of the List.
629
+ */
630
+ id: string;
631
+
632
+ /**
633
+ * Name the owner gave the List.
634
+ */
635
+ name: string;
636
+
637
+ /**
638
+ * URL of the banner the owner uploaded. Absent when the owner uploaded none.
639
+ */
640
+ bannerUrl?: string;
641
+
642
+ /**
643
+ * When the owner made the List.
644
+ */
645
+ createdAt?: string;
646
+
647
+ /**
648
+ * Banner the owner uploaded.
649
+ */
650
+ customBanner?: List.CustomBanner;
651
+
652
+ /**
653
+ * Banner X shows when the owner uploaded none. X picks it per reading account, so
654
+ * 2 calls can return different ones.
655
+ */
656
+ defaultBanner?: List.DefaultBanner;
657
+
658
+ /**
659
+ * About text of the List. Empty when the owner wrote none.
660
+ */
661
+ description?: string;
662
+
663
+ /**
664
+ * Avatar URLs of a few List members, which X may pick per request.
665
+ */
666
+ facepileUrls?: Array<string>;
667
+
668
+ /**
669
+ * Accounts on the List.
670
+ */
671
+ memberCount?: number;
672
+
673
+ /**
674
+ * Member count as X words it, such as 35 members.
675
+ */
676
+ membersContext?: string;
677
+
678
+ /**
679
+ * Public profile of the account that owns the List.
680
+ */
681
+ owner?: Shared.UserProfile;
682
+
683
+ /**
684
+ * Accounts that follow the List, which X calls followers.
685
+ */
686
+ subscriberCount?: number;
687
+
688
+ /**
689
+ * List page on x.com.
690
+ */
691
+ url?: string;
692
+ }
693
+
694
+ export namespace List {
695
+ /**
696
+ * Banner the owner uploaded.
697
+ */
698
+ export interface CustomBanner {
699
+ /**
700
+ * Banner image URL.
701
+ */
702
+ url: string;
703
+
704
+ /**
705
+ * Banner height in pixels.
706
+ */
707
+ height?: number;
708
+
709
+ /**
710
+ * Media ID of an uploaded banner.
711
+ */
712
+ mediaId?: string;
713
+
714
+ /**
715
+ * Stable media key of an uploaded banner.
716
+ */
717
+ mediaKey?: string;
718
+
719
+ /**
720
+ * Dominant colors of an uploaded banner and their shares.
721
+ */
722
+ palette?: Array<CustomBanner.Palette>;
723
+
724
+ /**
725
+ * Area X marks as the subject of the banner, in pixels.
726
+ */
727
+ salientRect?: CustomBanner.SalientRect;
728
+
729
+ /**
730
+ * Banner width in pixels.
731
+ */
732
+ width?: number;
733
+ }
734
+
735
+ export namespace CustomBanner {
736
+ export interface Palette {
737
+ /**
738
+ * Share of the banner
739
+ */
740
+ percentage?: number;
741
+
742
+ /**
743
+ * The color's red, green and blue values.
744
+ */
745
+ rgb?: Palette.Rgb;
746
+ }
747
+
748
+ export namespace Palette {
749
+ /**
750
+ * The color's red, green and blue values.
751
+ */
752
+ export interface Rgb {
753
+ blue?: number;
754
+
755
+ green?: number;
756
+
757
+ red?: number;
758
+ }
759
+ }
760
+
761
+ /**
762
+ * Area X marks as the subject of the banner, in pixels.
763
+ */
764
+ export interface SalientRect {
765
+ /**
766
+ * Height of the marked area.
767
+ */
768
+ height?: number;
769
+
770
+ /**
771
+ * Pixels from the banner's left.
772
+ */
773
+ left?: number;
774
+
775
+ /**
776
+ * Pixels from the banner's top.
777
+ */
778
+ top?: number;
779
+
780
+ /**
781
+ * Width of the marked area.
782
+ */
783
+ width?: number;
784
+ }
785
+ }
786
+
787
+ /**
788
+ * Banner X shows when the owner uploaded none. X picks it per reading account, so
789
+ * 2 calls can return different ones.
790
+ */
791
+ export interface DefaultBanner {
792
+ /**
793
+ * Banner image URL.
794
+ */
795
+ url: string;
796
+
797
+ /**
798
+ * Banner height in pixels.
799
+ */
800
+ height?: number;
801
+
802
+ /**
803
+ * Media ID of an uploaded banner.
804
+ */
805
+ mediaId?: string;
806
+
807
+ /**
808
+ * Stable media key of an uploaded banner.
809
+ */
810
+ mediaKey?: string;
811
+
812
+ /**
813
+ * Dominant colors of an uploaded banner and their shares.
814
+ */
815
+ palette?: Array<DefaultBanner.Palette>;
816
+
817
+ /**
818
+ * Area X marks as the subject of the banner, in pixels.
819
+ */
820
+ salientRect?: DefaultBanner.SalientRect;
821
+
822
+ /**
823
+ * Banner width in pixels.
824
+ */
825
+ width?: number;
826
+ }
827
+
828
+ export namespace DefaultBanner {
829
+ export interface Palette {
830
+ /**
831
+ * Share of the banner
832
+ */
833
+ percentage?: number;
834
+
835
+ /**
836
+ * The color's red, green and blue values.
837
+ */
838
+ rgb?: Palette.Rgb;
839
+ }
840
+
841
+ export namespace Palette {
842
+ /**
843
+ * The color's red, green and blue values.
844
+ */
845
+ export interface Rgb {
846
+ blue?: number;
847
+
848
+ green?: number;
849
+
850
+ red?: number;
851
+ }
852
+ }
853
+
854
+ /**
855
+ * Area X marks as the subject of the banner, in pixels.
856
+ */
857
+ export interface SalientRect {
858
+ /**
859
+ * Height of the marked area.
860
+ */
861
+ height?: number;
862
+
863
+ /**
864
+ * Pixels from the banner's left.
865
+ */
866
+ left?: number;
867
+
868
+ /**
869
+ * Pixels from the banner's top.
870
+ */
871
+ top?: number;
872
+
873
+ /**
874
+ * Width of the marked area.
875
+ */
876
+ width?: number;
877
+ }
878
+ }
879
+ }
880
+ }
881
+
882
+ export interface ListRetrieveParams {
883
+ /**
884
+ * Fields to keep in each row, comma-separated. Use dots for nested fields, such as
885
+ * author.username. A list keeps the field in each item. Case & underscores do not
886
+ * matter. A row that lacks a field leaves it out. Cursors, counts & diagnostics
887
+ * always stay. An unknown name answers 400 unknown_field with the valid names,
888
+ * before any read. The price stays the same. SDK row types then hold only the
889
+ * named fields.
890
+ */
891
+ fields?: string;
892
+
893
+ /**
894
+ * Fields to drop from each row, comma-separated. It takes the same names as
895
+ * fields. With fields, it drops from the kept fields.
896
+ */
897
+ omit?: string;
898
+ }
899
+
71
900
  export interface ListRetrieveFollowersParams {
901
+ /**
902
+ * Legacy cursor alias. Prefer cursor.
903
+ */
904
+ after?: string;
905
+
72
906
  /**
73
907
  * Match any comma-separated or line-separated bio term, ignoring case.
74
908
  */
75
909
  bioContains?: string;
76
910
 
77
911
  /**
78
- * Pagination cursor for list followers
912
+ * Only return profiles X marks as blue verified. X marks many business &
913
+ * government accounts blue too. Use verifiedType for 1 badge type.
914
+ */
915
+ blueVerifiedOnly?: boolean;
916
+
917
+ /**
918
+ * Only return profiles that publish an email outside free webmail, such as Gmail.
919
+ */
920
+ businessEmailOnly?: boolean;
921
+
922
+ /**
923
+ * Cursor from the previous response. Existing unprefixed cursors keep legacy
924
+ * standard behavior. Pages can be empty before more rows; follow next_cursor. Also
925
+ * read as next_cursor, next_token, pagination_token or continuation_token.
79
926
  */
80
927
  cursor?: string;
81
928
 
929
+ /**
930
+ * Only return profiles with an email at one of these domains. Separate domains
931
+ * with commas. Subdomains match.
932
+ */
933
+ emailDomains?: string;
934
+
935
+ /**
936
+ * Fields to keep in each row, comma-separated. Use dots for nested fields, such as
937
+ * author.username. A list keeps the field in each item. Case & underscores do not
938
+ * matter. A row that lacks a field leaves it out. Cursors, counts & diagnostics
939
+ * always stay. An unknown name answers 400 unknown_field with the valid names,
940
+ * before any read. The price stays the same. SDK row types then hold only the
941
+ * named fields.
942
+ */
943
+ fields?: string;
944
+
945
+ /**
946
+ * Only return profiles that publish an email.
947
+ */
948
+ hasEmail?: boolean;
949
+
82
950
  /**
83
951
  * Only return profiles with a location.
84
952
  */
@@ -100,10 +968,18 @@ export interface ListRetrieveFollowersParams {
100
968
  maxFollowers?: number;
101
969
 
102
970
  /**
103
- * Maximum following count.
971
+ * Profiles may follow at most this many accounts.
104
972
  */
105
973
  maxFollowing?: number;
106
974
 
975
+ /**
976
+ * Most profiles 1 request reads, kept or dropped by the filters. A filter that
977
+ * keeps few profiles reads up to 65 s a request without it. The request then
978
+ * answers the profiles it kept, the count it dropped & the cursor to read on. Each
979
+ * request of a cursor may send its own value. Automatic mode only.
980
+ */
981
+ maxScan?: number;
982
+
107
983
  /**
108
984
  * Maximum post count. maxPosts is also accepted.
109
985
  */
@@ -120,7 +996,7 @@ export interface ListRetrieveFollowersParams {
120
996
  minFollowers?: number;
121
997
 
122
998
  /**
123
- * Minimum following count.
999
+ * Profiles must follow at least this many accounts.
124
1000
  */
125
1001
  minFollowing?: number;
126
1002
 
@@ -130,9 +1006,21 @@ export interface ListRetrieveFollowersParams {
130
1006
  minStatuses?: number;
131
1007
 
132
1008
  /**
133
- * Maximum user profiles requested from this page (20-200, default 200). Source,
134
- * filters, or credits can return fewer profiles. Keep requesting next_cursor while
135
- * has_next_page is true. Deprecated aliases remain accepted.
1009
+ * Omit mode for resumable maximum coverage. Standard keeps legacy pagination.
1010
+ * Coverage returns diagnostics once and rejects cursors.
1011
+ */
1012
+ mode?: 'standard' | 'coverage';
1013
+
1014
+ /**
1015
+ * Fields to drop from each row, comma-separated. It takes the same names as
1016
+ * fields. With fields, it drops from the kept fields.
1017
+ */
1018
+ omit?: string;
1019
+
1020
+ /**
1021
+ * Up to 300 user profiles in automatic mode, 200 in standard. Sources can return
1022
+ * fewer. Follow next_cursor for more pages. Aliases: limit, count, max_results,
1023
+ * maxItems, max_items & per_page.
136
1024
  */
137
1025
  pageSize?: number;
138
1026
 
@@ -153,16 +1041,55 @@ export interface ListRetrieveFollowersParams {
153
1041
  }
154
1042
 
155
1043
  export interface ListRetrieveMembersParams {
1044
+ /**
1045
+ * Legacy cursor alias. Prefer cursor.
1046
+ */
1047
+ after?: string;
1048
+
156
1049
  /**
157
1050
  * Match any comma-separated or line-separated bio term, ignoring case.
158
1051
  */
159
1052
  bioContains?: string;
160
1053
 
161
1054
  /**
162
- * Pagination cursor for list members
1055
+ * Only return profiles X marks as blue verified. X marks many business &
1056
+ * government accounts blue too. Use verifiedType for 1 badge type.
1057
+ */
1058
+ blueVerifiedOnly?: boolean;
1059
+
1060
+ /**
1061
+ * Only return profiles that publish an email outside free webmail, such as Gmail.
1062
+ */
1063
+ businessEmailOnly?: boolean;
1064
+
1065
+ /**
1066
+ * Cursor from the previous response. Existing unprefixed cursors keep legacy
1067
+ * standard behavior. Pages can be empty before more rows; follow next_cursor. Also
1068
+ * read as next_cursor, next_token, pagination_token or continuation_token.
163
1069
  */
164
1070
  cursor?: string;
165
1071
 
1072
+ /**
1073
+ * Only return profiles with an email at one of these domains. Separate domains
1074
+ * with commas. Subdomains match.
1075
+ */
1076
+ emailDomains?: string;
1077
+
1078
+ /**
1079
+ * Fields to keep in each row, comma-separated. Use dots for nested fields, such as
1080
+ * author.username. A list keeps the field in each item. Case & underscores do not
1081
+ * matter. A row that lacks a field leaves it out. Cursors, counts & diagnostics
1082
+ * always stay. An unknown name answers 400 unknown_field with the valid names,
1083
+ * before any read. The price stays the same. SDK row types then hold only the
1084
+ * named fields.
1085
+ */
1086
+ fields?: string;
1087
+
1088
+ /**
1089
+ * Only return profiles that publish an email.
1090
+ */
1091
+ hasEmail?: boolean;
1092
+
166
1093
  /**
167
1094
  * Only return profiles with a location.
168
1095
  */
@@ -184,10 +1111,18 @@ export interface ListRetrieveMembersParams {
184
1111
  maxFollowers?: number;
185
1112
 
186
1113
  /**
187
- * Maximum following count.
1114
+ * Profiles may follow at most this many accounts.
188
1115
  */
189
1116
  maxFollowing?: number;
190
1117
 
1118
+ /**
1119
+ * Most profiles 1 request reads, kept or dropped by the filters. A filter that
1120
+ * keeps few profiles reads up to 65 s a request without it. The request then
1121
+ * answers the profiles it kept, the count it dropped & the cursor to read on. Each
1122
+ * request of a cursor may send its own value. Automatic mode only.
1123
+ */
1124
+ maxScan?: number;
1125
+
191
1126
  /**
192
1127
  * Maximum post count. maxPosts is also accepted.
193
1128
  */
@@ -204,7 +1139,7 @@ export interface ListRetrieveMembersParams {
204
1139
  minFollowers?: number;
205
1140
 
206
1141
  /**
207
- * Minimum following count.
1142
+ * Profiles must follow at least this many accounts.
208
1143
  */
209
1144
  minFollowing?: number;
210
1145
 
@@ -214,7 +1149,21 @@ export interface ListRetrieveMembersParams {
214
1149
  minStatuses?: number;
215
1150
 
216
1151
  /**
217
- * Members per page (20-200, default 20)
1152
+ * Omit mode for resumable maximum coverage. Standard keeps legacy pagination.
1153
+ * Coverage returns diagnostics once and rejects cursors.
1154
+ */
1155
+ mode?: 'standard' | 'coverage';
1156
+
1157
+ /**
1158
+ * Fields to drop from each row, comma-separated. It takes the same names as
1159
+ * fields. With fields, it drops from the kept fields.
1160
+ */
1161
+ omit?: string;
1162
+
1163
+ /**
1164
+ * Up to 300 user profiles in automatic mode, 200 in standard. Sources can return
1165
+ * fewer. Follow next_cursor for more pages. Aliases: limit, count, max_results,
1166
+ * maxItems, max_items & per_page.
218
1167
  */
219
1168
  pageSize?: number;
220
1169
 
@@ -234,39 +1183,369 @@ export interface ListRetrieveMembersParams {
234
1183
  verifiedType?: string;
235
1184
  }
236
1185
 
1186
+ export interface ListRetrieveSearchParams {
1187
+ /**
1188
+ * Keywords to find Lists by, such as a topic. Alias query.
1189
+ */
1190
+ q: string;
1191
+
1192
+ /**
1193
+ * Pagination cursor for collection results. Also read as next_cursor, next_token,
1194
+ * pagination_token or continuation_token.
1195
+ */
1196
+ cursor?: string;
1197
+
1198
+ /**
1199
+ * Fields to keep in each row, comma-separated. Use dots for nested fields, such as
1200
+ * author.username. A list keeps the field in each item. Case & underscores do not
1201
+ * matter. A row that lacks a field leaves it out. Cursors, counts & diagnostics
1202
+ * always stay. An unknown name answers 400 unknown_field with the valid names,
1203
+ * before any read. The price stays the same. SDK row types then hold only the
1204
+ * named fields.
1205
+ */
1206
+ fields?: string;
1207
+
1208
+ /**
1209
+ * Fields to drop from each row, comma-separated. It takes the same names as
1210
+ * fields. With fields, it drops from the kept fields.
1211
+ */
1212
+ omit?: string;
1213
+
1214
+ /**
1215
+ * Items per page (1-100, default 20). Source, filters or credits can return fewer.
1216
+ * Follow next_cursor for more pages. Aliases: limit, count, max_results, maxItems,
1217
+ * max_items & per_page.
1218
+ */
1219
+ pageSize?: number;
1220
+ }
1221
+
237
1222
  export interface ListRetrieveTweetsParams {
238
1223
  /**
239
- * Pagination cursor for list tweets
1224
+ * Raw advanced search query appended as-is.
1225
+ */
1226
+ advancedQuery?: string;
1227
+
1228
+ /**
1229
+ * Legacy cursor alias. Prefer cursor.
1230
+ */
1231
+ after?: string;
1232
+
1233
+ /**
1234
+ * Words or quoted phrases where any one can match. Separate with spaces, commas,
1235
+ * or lines.
1236
+ */
1237
+ anyWords?: string;
1238
+
1239
+ /**
1240
+ * Only return tweets from Blue-verified authors.
1241
+ */
1242
+ blueVerifiedOnly?: boolean;
1243
+
1244
+ /**
1245
+ * Geo bounding box, e.g. -74.1 40.6 -73.9 40.8.
1246
+ */
1247
+ boundingBox?: string;
1248
+
1249
+ /**
1250
+ * Keep only Tweets with this card type, such as poll2choice_text_only. Tweet
1251
+ * search checks each Tweet's card.
1252
+ */
1253
+ cardName?: string;
1254
+
1255
+ /**
1256
+ * Cashtags separated by spaces, commas, or lines.
1257
+ */
1258
+ cashtags?: string;
1259
+
1260
+ /**
1261
+ * Conversation ID filter.
1262
+ */
1263
+ conversationId?: string;
1264
+
1265
+ /**
1266
+ * Cursor from the previous response. Existing unprefixed cursors keep legacy
1267
+ * standard behavior. Pages can be empty before more rows; follow next_cursor. Also
1268
+ * read as next_cursor, next_token, pagination_token or continuation_token.
240
1269
  */
241
1270
  cursor?: string;
242
1271
 
243
1272
  /**
244
- * Include replies (default false)
1273
+ * Match this literal phrase, including any hyphens.
1274
+ */
1275
+ exactPhrase?: string;
1276
+
1277
+ /**
1278
+ * X search no longer supports excludeSource. A Tweet search with it answers 424 &
1279
+ * charges nothing.
1280
+ */
1281
+ excludeSource?: string;
1282
+
1283
+ /**
1284
+ * Words or quoted phrases to exclude. Separate with spaces, commas, or lines.
1285
+ */
1286
+ excludeWords?: string;
1287
+
1288
+ /**
1289
+ * Fields to keep in each row, comma-separated. Use dots for nested fields, such as
1290
+ * author.username. A list keeps the field in each item. Case & underscores do not
1291
+ * matter. A row that lacks a field leaves it out. Cursors, counts & diagnostics
1292
+ * always stay. An unknown name answers 400 unknown_field with the valid names,
1293
+ * before any read. The price stays the same. SDK row types then hold only the
1294
+ * named fields.
1295
+ */
1296
+ fields?: string;
1297
+
1298
+ /**
1299
+ * Filter by author username.
1300
+ */
1301
+ fromUser?: string;
1302
+
1303
+ /**
1304
+ * X search no longer supports geocode. A Tweet search with it answers 424 &
1305
+ * charges nothing.
1306
+ */
1307
+ geocode?: string;
1308
+
1309
+ /**
1310
+ * Hashtags separated by spaces, commas, or lines.
1311
+ */
1312
+ hashtags?: string;
1313
+
1314
+ /**
1315
+ * Include reply tweets unless replies specifies another mode.
245
1316
  */
246
1317
  includeReplies?: boolean;
247
1318
 
248
1319
  /**
249
- * Maximum page items (1-100, default 20). Source, filters, or credits can reduce
250
- * results. Continue while has_next_page is true. Deprecated limit and count
251
- * aliases remain accepted.
1320
+ * Only replies to this tweet ID.
1321
+ */
1322
+ inReplyToTweetId?: string;
1323
+
1324
+ /**
1325
+ * Words the Tweets must match, in X search syntax.
1326
+ */
1327
+ keywords?: string;
1328
+
1329
+ /**
1330
+ * Filter by language. Alias `lang` is accepted.
1331
+ */
1332
+ language?: string;
1333
+
1334
+ /**
1335
+ * Maximum likes threshold. maxLikes & max_likes also work.
1336
+ */
1337
+ maxFaves?: number;
1338
+
1339
+ /**
1340
+ * Return Tweets at or below this ID.
1341
+ */
1342
+ maxId?: string;
1343
+
1344
+ /**
1345
+ * Maximum quotes threshold.
1346
+ */
1347
+ maxQuotes?: number;
1348
+
1349
+ /**
1350
+ * Maximum replies threshold.
1351
+ */
1352
+ maxReplies?: number;
1353
+
1354
+ /**
1355
+ * Maximum retweets threshold.
1356
+ */
1357
+ maxRetweets?: number;
1358
+
1359
+ /**
1360
+ * Filter media. Aliases: has_video, has_media.
1361
+ */
1362
+ mediaType?: 'images' | 'videos' | 'gifs' | 'media' | 'links' | 'none';
1363
+
1364
+ /**
1365
+ * Filter tweets mentioning a username.
1366
+ */
1367
+ mentioning?: string;
1368
+
1369
+ /**
1370
+ * Minimum bookmark count threshold.
1371
+ */
1372
+ minBookmarks?: number;
1373
+
1374
+ /**
1375
+ * Minimum likes. Aliases: minFaves, min_likes, min_faves.
1376
+ */
1377
+ minLikes?: number;
1378
+
1379
+ /**
1380
+ * Minimum quote count threshold.
1381
+ */
1382
+ minQuotes?: number;
1383
+
1384
+ /**
1385
+ * Minimum replies threshold.
1386
+ */
1387
+ minReplies?: number;
1388
+
1389
+ /**
1390
+ * Minimum retweets threshold.
1391
+ */
1392
+ minRetweets?: number;
1393
+
1394
+ /**
1395
+ * Minimum view count threshold.
1396
+ */
1397
+ minViews?: number;
1398
+
1399
+ /**
1400
+ * Omit mode for resumable maximum coverage. Standard keeps legacy pagination.
1401
+ * Coverage returns diagnostics once and rejects cursors.
1402
+ */
1403
+ mode?: 'standard' | 'coverage';
1404
+
1405
+ /**
1406
+ * Only return native reposts.
1407
+ */
1408
+ nativeRetweets?: boolean;
1409
+
1410
+ /**
1411
+ * Match a place name.
1412
+ */
1413
+ near?: string;
1414
+
1415
+ /**
1416
+ * X no longer searches filter:news.
1417
+ */
1418
+ news?: boolean;
1419
+
1420
+ /**
1421
+ * Fields to drop from each row, comma-separated. It takes the same names as
1422
+ * fields. With fields, it drops from the kept fields.
1423
+ */
1424
+ omit?: string;
1425
+
1426
+ /**
1427
+ * Automatic pages accept 1-300 Tweets, standard pages 1-100. Default 20. Follow
1428
+ * next_cursor for more pages. Aliases: limit, count, max_results, maxItems,
1429
+ * max_items & per_page.
252
1430
  */
253
1431
  pageSize?: number;
254
1432
 
255
1433
  /**
256
- * Unix timestamp - filter after
1434
+ * Search within a place ID.
1435
+ */
1436
+ place?: string;
1437
+
1438
+ /**
1439
+ * Search within a country code.
1440
+ */
1441
+ placeCountry?: string;
1442
+
1443
+ /**
1444
+ * Geo point radius, e.g. -73.99 40.73 25mi.
1445
+ */
1446
+ pointRadius?: string;
1447
+
1448
+ /**
1449
+ * Only when the caller requests a quote mode.
1450
+ */
1451
+ quotes?: 'include' | 'exclude' | 'only';
1452
+
1453
+ /**
1454
+ * Only quotes of this tweet ID.
1455
+ */
1456
+ quotesOfTweetId?: string;
1457
+
1458
+ /**
1459
+ * Reply mode. Exclude keeps own-thread replies.
1460
+ */
1461
+ replies?: 'include' | 'exclude' | 'only';
1462
+
1463
+ /**
1464
+ * Only when the caller requests a repost mode.
1465
+ */
1466
+ retweets?: 'include' | 'exclude' | 'only';
1467
+
1468
+ /**
1469
+ * Only retweets of this tweet ID.
1470
+ */
1471
+ retweetsOfTweetId?: string;
1472
+
1473
+ /**
1474
+ * Enable the safe-search filter.
1475
+ */
1476
+ safe?: boolean;
1477
+
1478
+ /**
1479
+ * Start date in YYYY-MM-DD format, as a UTC day.
1480
+ */
1481
+ sinceDate?: string;
1482
+
1483
+ /**
1484
+ * Return Tweets whose IDs exceed this ID.
1485
+ */
1486
+ sinceId?: string;
1487
+
1488
+ /**
1489
+ * Inclusive ISO bound for Tweet creation time, such as 2026-09-25T19:20:41Z. Unix
1490
+ * seconds also work. A time without an offset is UTC.
257
1491
  */
258
1492
  sinceTime?: string;
259
1493
 
260
1494
  /**
261
- * Unix timestamp - filter before
1495
+ * X search no longer supports source. A Tweet search with it answers 424 & charges
1496
+ * nothing.
1497
+ */
1498
+ source?: string;
1499
+
1500
+ /**
1501
+ * Filter replies sent to a username.
1502
+ */
1503
+ toUser?: string;
1504
+
1505
+ /**
1506
+ * End date in YYYY-MM-DD format, as a UTC day, inclusive, so its own posts count.
1507
+ */
1508
+ untilDate?: string;
1509
+
1510
+ /**
1511
+ * Exclusive ISO bound for Tweet creation time. Unix seconds also work. A time
1512
+ * without an offset is UTC.
262
1513
  */
263
1514
  untilTime?: string;
1515
+
1516
+ /**
1517
+ * URL substring or domain filter.
1518
+ */
1519
+ url?: string;
1520
+
1521
+ /**
1522
+ * Only return tweets from verified authors.
1523
+ */
1524
+ verifiedOnly?: boolean;
1525
+
1526
+ /**
1527
+ * X search no longer supports within. A Tweet search with it answers 424 & charges
1528
+ * nothing. Use near alone.
1529
+ */
1530
+ within?: string;
1531
+
1532
+ /**
1533
+ * Keeps Tweets from a recent window, such as 90m or 7d. Use a whole number & s, m,
1534
+ * h or d.
1535
+ */
1536
+ withinTime?: string;
264
1537
  }
265
1538
 
266
1539
  export declare namespace Lists {
267
1540
  export {
1541
+ type ListRetrieveResponse as ListRetrieveResponse,
1542
+ type ListRetrieveFollowersResponse as ListRetrieveFollowersResponse,
1543
+ type ListRetrieveMembersResponse as ListRetrieveMembersResponse,
1544
+ type ListRetrieveSearchResponse as ListRetrieveSearchResponse,
1545
+ type ListRetrieveParams as ListRetrieveParams,
268
1546
  type ListRetrieveFollowersParams as ListRetrieveFollowersParams,
269
1547
  type ListRetrieveMembersParams as ListRetrieveMembersParams,
1548
+ type ListRetrieveSearchParams as ListRetrieveSearchParams,
270
1549
  type ListRetrieveTweetsParams as ListRetrieveTweetsParams,
271
1550
  };
272
1551
  }