x-twitter-scraper 0.12.4 → 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 (466) hide show
  1. package/CHANGELOG.md +65 -0
  2. package/README.md +30 -9
  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 +99 -344
  389. package/skills/x-twitter-scraper/metadata.json +2 -2
  390. package/skills/x-twitter-scraper/references/mcp-setup.md +12 -15
  391. package/skills/x-twitter-scraper/references/mcp-tools.md +105 -166
  392. package/skills/x-twitter-scraper/references/types-mcp-output-schemas.md +4 -4
  393. package/skills/x-twitter-scraper/references/types.md +0 -1
  394. package/skills/x-twitter-scraper/skill-card.md +5 -6
  395. package/skills/x-twitter-scraper/skillspector-report.md +6 -3
  396. package/skills/xquik-account-automation/LICENSE +21 -0
  397. package/skills/xquik-account-automation/SKILL.md +91 -0
  398. package/skills/xquik-social-research/SKILL.md +48 -55
  399. package/src/client.ts +47 -4
  400. package/src/core/streaming.ts +328 -0
  401. package/src/internal/decoders/line.ts +140 -0
  402. package/src/internal/parse.ts +9 -0
  403. package/src/resources/account.ts +41 -12
  404. package/src/resources/compose.ts +77 -21
  405. package/src/resources/credits.ts +19 -10
  406. package/src/resources/drafts.ts +13 -22
  407. package/src/resources/draws.ts +94 -36
  408. package/src/resources/events.ts +3225 -68
  409. package/src/resources/extractions.ts +512 -125
  410. package/src/resources/guest-wallets.ts +6 -5
  411. package/src/resources/index.ts +24 -1
  412. package/src/resources/monitors/index.ts +2 -0
  413. package/src/resources/monitors/keywords.ts +82 -14
  414. package/src/resources/monitors/monitors.ts +66 -14
  415. package/src/resources/radar.ts +32 -36
  416. package/src/resources/shared.ts +2227 -351
  417. package/src/resources/styles.ts +43 -27
  418. package/src/resources/subscribe.ts +1 -1
  419. package/src/resources/support/index.ts +1 -0
  420. package/src/resources/support/support.ts +2 -0
  421. package/src/resources/support/tickets.ts +38 -10
  422. package/src/resources/trends.ts +23 -5
  423. package/src/resources/webhooks.ts +109 -15
  424. package/src/resources/x/account-connection-attempts.ts +1 -1
  425. package/src/resources/x/account-connection-challenges.ts +39 -11
  426. package/src/resources/x/accounts.ts +46 -10
  427. package/src/resources/x/analysis.ts +3947 -0
  428. package/src/resources/x/bookmarks.ts +103 -9
  429. package/src/resources/x/broadcasts.ts +225 -0
  430. package/src/resources/x/communities/communities.ts +743 -141
  431. package/src/resources/x/communities/index.ts +9 -0
  432. package/src/resources/x/communities/join.ts +46 -23
  433. package/src/resources/x/communities/media.ts +251 -0
  434. package/src/resources/x/communities/tweets.ts +427 -20
  435. package/src/resources/x/dm.ts +334 -11
  436. package/src/resources/x/followers.ts +35 -3
  437. package/src/resources/x/index.ts +106 -1
  438. package/src/resources/x/jobs.ts +627 -0
  439. package/src/resources/x/lists.ts +1307 -28
  440. package/src/resources/x/media.ts +24 -12
  441. package/src/resources/x/profile.ts +60 -30
  442. package/src/resources/x/spaces.ts +1076 -0
  443. package/src/resources/x/tweets/index.ts +18 -0
  444. package/src/resources/x/tweets/like.ts +38 -18
  445. package/src/resources/x/tweets/retweet.ts +38 -18
  446. package/src/resources/x/tweets/tweets.ts +3695 -843
  447. package/src/resources/x/users/follow.ts +38 -18
  448. package/src/resources/x/users/index.ts +22 -0
  449. package/src/resources/x/users/users.ts +3687 -465
  450. package/src/resources/x/write-actions.ts +13 -5
  451. package/src/resources/x/x.ts +1227 -15
  452. package/src/streaming.ts +6 -0
  453. package/src/version.ts +1 -1
  454. package/streaming.d.mts +3 -0
  455. package/streaming.d.mts.map +1 -0
  456. package/streaming.d.ts +3 -0
  457. package/streaming.d.ts.map +1 -0
  458. package/streaming.js +9 -0
  459. package/streaming.js.map +1 -0
  460. package/streaming.mjs +6 -0
  461. package/streaming.mjs.map +1 -0
  462. package/version.d.mts +1 -1
  463. package/version.d.ts +1 -1
  464. package/version.js +1 -1
  465. package/version.mjs +1 -1
  466. package/skills/x-twitter-scraper/references/types-rest-api-vs-mcp-field-naming.md +0 -15
@@ -7,16 +7,16 @@ import { RequestOptions } from "../../../internal/request-options.js";
7
7
  export declare class Users extends APIResource {
8
8
  follow: FollowAPI.Follow;
9
9
  /**
10
- * Get user profile with follower counts and verification
10
+ * Returns one public profile with counts and verification details.
11
11
  *
12
12
  * @example
13
13
  * ```ts
14
14
  * const userProfile = await client.x.users.retrieve('id');
15
15
  * ```
16
16
  */
17
- retrieve(id: string, options?: RequestOptions): APIPromise<Shared.UserProfile>;
17
+ retrieve(id: string, query?: UserRetrieveParams | null | undefined, options?: RequestOptions): APIPromise<Shared.UserProfile>;
18
18
  /**
19
- * Remove follower
19
+ * Removes a follower from a connected X account.
20
20
  *
21
21
  * @example
22
22
  * ```ts
@@ -28,18 +28,64 @@ export declare class Users extends APIResource {
28
28
  */
29
29
  removeFollower(id: string, params: UserRemoveFollowerParams, options?: RequestOptions): APIPromise<UserRemoveFollowerResponse>;
30
30
  /**
31
- * Look up multiple users by IDs in one call
31
+ * Returns the accounts an organization lists as its affiliates, in X's order. An
32
+ * account without affiliates returns an empty list.
32
33
  *
33
34
  * @example
34
35
  * ```ts
35
- * const response = await client.x.users.retrieveBatch({
36
- * ids: 'ids',
37
- * });
36
+ * const paginatedUsers =
37
+ * await client.x.users.retrieveAffiliates('id');
38
+ * ```
39
+ */
40
+ retrieveAffiliates(id: string, query?: UserRetrieveAffiliatesParams | null | undefined, options?: RequestOptions): APIPromise<Shared.PaginatedUsers>;
41
+ /**
42
+ * Returns the posts on the user's Articles tab, newest first. Each post's
43
+ * `article` holds the Article's ID, title, preview, cover & dates. Read the full
44
+ * text with GET /x/articles/{tweetId}.
45
+ *
46
+ * @example
47
+ * ```ts
48
+ * const paginatedTweets =
49
+ * await client.x.users.retrieveArticles('id');
50
+ * ```
51
+ */
52
+ retrieveArticles(id: string, query?: UserRetrieveArticlesParams | null | undefined, options?: RequestOptions): APIPromise<Shared.PaginatedTweets>;
53
+ /**
54
+ * Returns public profiles for up to 100 user IDs, usernames or profile links. Send
55
+ * ids or usernames, not both. Each returned profile costs 1 credit.
56
+ *
57
+ * @example
58
+ * ```ts
59
+ * const response = await client.x.users.retrieveBatch();
60
+ * ```
61
+ */
62
+ retrieveBatch(query?: UserRetrieveBatchParams | null | undefined, options?: RequestOptions): APIPromise<UserRetrieveBatchResponse>;
63
+ /**
64
+ * Returns the newest posts of up to 20 users, named by user ID, username or
65
+ * profile link, in the order named. Send ids or usernames, not both. Each post
66
+ * costs 1 credit. A user in unavailable_ids or unprocessed_ids costs nothing.
67
+ *
68
+ * @example
69
+ * ```ts
70
+ * const response = await client.x.users.retrieveBatchTweets();
71
+ * ```
72
+ */
73
+ retrieveBatchTweets(query?: UserRetrieveBatchTweetsParams | null | undefined, options?: RequestOptions): APIPromise<UserRetrieveBatchTweetsResponse>;
74
+ /**
75
+ * Returns the user IDs of the selected user's followers, newest first, up to 5,000
76
+ * a page. Use it when you need IDs only. Each ID costs 1 credit.
77
+ *
78
+ * @example
79
+ * ```ts
80
+ * const response = await client.x.users.retrieveFollowerIds(
81
+ * 'id',
82
+ * );
38
83
  * ```
39
84
  */
40
- retrieveBatch(query: UserRetrieveBatchParams, options?: RequestOptions): APIPromise<UserRetrieveBatchResponse>;
85
+ retrieveFollowerIds(id: string, query?: UserRetrieveFollowerIDsParams | null | undefined, options?: RequestOptions): APIPromise<UserRetrieveFollowerIDsResponse>;
41
86
  /**
42
- * List followers of a user
87
+ * Returns public follower profiles for the selected user, newest first. x.com puts
88
+ * some promoted followers first; Xquik doesn't.
43
89
  *
44
90
  * @example
45
91
  * ```ts
@@ -50,7 +96,7 @@ export declare class Users extends APIResource {
50
96
  */
51
97
  retrieveFollowers(id: string, query?: UserRetrieveFollowersParams | null | undefined, options?: RequestOptions): APIPromise<UserRetrieveFollowersResponse>;
52
98
  /**
53
- * List mutual followers between you and a user
99
+ * Mutuals your X account sees, else 424 `account_required`.
54
100
  *
55
101
  * @example
56
102
  * ```ts
@@ -60,7 +106,7 @@ export declare class Users extends APIResource {
60
106
  */
61
107
  retrieveFollowersYouKnow(id: string, query?: UserRetrieveFollowersYouKnowParams | null | undefined, options?: RequestOptions): APIPromise<Shared.PaginatedUsers>;
62
108
  /**
63
- * List accounts a user follows
109
+ * Returns public profiles followed by the selected user.
64
110
  *
65
111
  * @example
66
112
  * ```ts
@@ -71,7 +117,44 @@ export declare class Users extends APIResource {
71
117
  */
72
118
  retrieveFollowing(id: string, query?: UserRetrieveFollowingParams | null | undefined, options?: RequestOptions): APIPromise<UserRetrieveFollowingResponse>;
73
119
  /**
74
- * List tweets liked by a user
120
+ * Returns the user IDs of the accounts the selected user follows, newest first, up
121
+ * to 5,000 a page. Use it when you need IDs only. Each ID costs 1 credit.
122
+ *
123
+ * @example
124
+ * ```ts
125
+ * const response = await client.x.users.retrieveFollowingIds(
126
+ * 'id',
127
+ * );
128
+ * ```
129
+ */
130
+ retrieveFollowingIds(id: string, query?: UserRetrieveFollowingIDsParams | null | undefined, options?: RequestOptions): APIPromise<UserRetrieveFollowingIDsResponse>;
131
+ /**
132
+ * Returns the posts on the user's Highlights tab, in X's order. An account without
133
+ * highlights returns an empty list.
134
+ *
135
+ * @example
136
+ * ```ts
137
+ * const paginatedTweets =
138
+ * await client.x.users.retrieveHighlights('id');
139
+ * ```
140
+ */
141
+ retrieveHighlights(id: string, query?: UserRetrieveHighlightsParams | null | undefined, options?: RequestOptions): APIPromise<Shared.PaginatedTweets>;
142
+ /**
143
+ * Returns engagement insights for one profile: engagement rate, averages per post
144
+ * and posting rate, from its counts and its last 20 posts. Reposts and the pinned
145
+ * post stay out of the averages. Each report costs 1 credit, whatever it reads.
146
+ *
147
+ * @example
148
+ * ```ts
149
+ * const response = await client.x.users.retrieveInsights(
150
+ * 'id',
151
+ * );
152
+ * ```
153
+ */
154
+ retrieveInsights(id: string, query?: UserRetrieveInsightsParams | null | undefined, options?: RequestOptions): APIPromise<UserRetrieveInsightsResponse>;
155
+ /**
156
+ * Your X account's likes, else 424 `account_required`. Others' likes get 424
157
+ * `likes_unavailable`.
75
158
  *
76
159
  * @example
77
160
  * ```ts
@@ -82,7 +165,40 @@ export declare class Users extends APIResource {
82
165
  */
83
166
  retrieveLikes(id: string, query?: UserRetrieveLikesParams | null | undefined, options?: RequestOptions): APIPromise<Shared.PaginatedTweets>;
84
167
  /**
85
- * List media tweets posted by a user
168
+ * Returns the public X Lists that include the selected user, as the profile's List
169
+ * memberships page shows them. Each List costs 1 credit. A protected account
170
+ * answers 403.
171
+ *
172
+ * @example
173
+ * ```ts
174
+ * const response =
175
+ * await client.x.users.retrieveListMemberships('id');
176
+ * ```
177
+ */
178
+ retrieveListMemberships(id: string, query?: UserRetrieveListMembershipsParams | null | undefined, options?: RequestOptions): APIPromise<UserRetrieveListMembershipsResponse>;
179
+ /**
180
+ * Returns the public X Lists the selected user created, in X's order, as the
181
+ * profile's Lists tab shows them. Each List costs 1 credit. A protected account
182
+ * answers 403.
183
+ *
184
+ * @example
185
+ * ```ts
186
+ * const response = await client.x.users.retrieveLists('id');
187
+ * ```
188
+ */
189
+ retrieveLists(id: string, query?: UserRetrieveListsParams | null | undefined, options?: RequestOptions): APIPromise<UserRetrieveListsResponse>;
190
+ /**
191
+ * Says whether one user is broadcasting live video on X right now, with their
192
+ * latest broadcast, live or ended. Each check costs 1 credit.
193
+ *
194
+ * @example
195
+ * ```ts
196
+ * const response = await client.x.users.retrieveLive('id');
197
+ * ```
198
+ */
199
+ retrieveLive(id: string, query?: UserRetrieveLiveParams | null | undefined, options?: RequestOptions): APIPromise<UserRetrieveLiveResponse>;
200
+ /**
201
+ * Returns public media posts from the selected user.
86
202
  *
87
203
  * @example
88
204
  * ```ts
@@ -93,7 +209,7 @@ export declare class Users extends APIResource {
93
209
  */
94
210
  retrieveMedia(id: string, query?: UserRetrieveMediaParams | null | undefined, options?: RequestOptions): APIPromise<Shared.PaginatedTweets>;
95
211
  /**
96
- * List tweets mentioning a user
212
+ * Returns public posts mentioning the selected user.
97
213
  *
98
214
  * @example
99
215
  * ```ts
@@ -103,9 +219,9 @@ export declare class Users extends APIResource {
103
219
  */
104
220
  retrieveMentions(id: string, query?: UserRetrieveMentionsParams | null | undefined, options?: RequestOptions): APIPromise<Shared.PaginatedTweets>;
105
221
  /**
106
- * Returns target-authored posts and replies. Omit mode for automatic maximum
107
- * coverage. Pass next_cursor unchanged. Unprefixed cursors stay legacy. Excludes
108
- * other-author context.
222
+ * Returns target-authored posts & replies, without other authors' context. Omit
223
+ * mode for automatic maximum coverage. Pass next_cursor unchanged; unprefixed
224
+ * cursors are legacy. It never opens with the pinned tweet.
109
225
  *
110
226
  * @example
111
227
  * ```ts
@@ -115,7 +231,7 @@ export declare class Users extends APIResource {
115
231
  */
116
232
  retrieveReplies(id: string, query?: UserRetrieveRepliesParams | null | undefined, options?: RequestOptions): APIPromise<Shared.PaginatedTweets>;
117
233
  /**
118
- * Search users by name or username
234
+ * Returns public profiles matching a name or username.
119
235
  *
120
236
  * @example
121
237
  * ```ts
@@ -126,8 +242,36 @@ export declare class Users extends APIResource {
126
242
  */
127
243
  retrieveSearch(query: UserRetrieveSearchParams, options?: RequestOptions): APIPromise<Shared.PaginatedUsers>;
128
244
  /**
129
- * Omit mode for automatic maximum coverage. Pass next_cursor unchanged. Unprefixed
130
- * cursors use legacy pagination. Shape and billing stay the same.
245
+ * Returns the public accounts X lists as similar to the selected user, in X's
246
+ * order. X can list slightly different accounts on each call. Each account costs 1
247
+ * credit.
248
+ *
249
+ * @example
250
+ * ```ts
251
+ * const paginatedUsers = await client.x.users.retrieveSimilar(
252
+ * 'id',
253
+ * );
254
+ * ```
255
+ */
256
+ retrieveSimilar(id: string, query?: UserRetrieveSimilarParams | null | undefined, options?: RequestOptions): APIPromise<Shared.PaginatedUsers>;
257
+ /**
258
+ * Returns the creators the selected user subscribes to, in X's order. An account
259
+ * that hides its subscriptions returns an empty list.
260
+ *
261
+ * @example
262
+ * ```ts
263
+ * const paginatedUsers =
264
+ * await client.x.users.retrieveSubscriptions('id');
265
+ * ```
266
+ */
267
+ retrieveSubscriptions(id: string, query?: UserRetrieveSubscriptionsParams | null | undefined, options?: RequestOptions): APIPromise<Shared.PaginatedUsers>;
268
+ /**
269
+ * For the newest posts of 2 to 20 users, use getBatchUserTweets. For more, use
270
+ * createExtraction with tweet_search_extractor & targetUsernames. Omit mode for
271
+ * automatic maximum coverage. Pass next_cursor unchanged; unprefixed cursors are
272
+ * legacy. The first page opens with the pinned tweet, flagged isPinned, unless
273
+ * replies are included. Rows stay newest first. x.com's Posts tab groups
274
+ * self-threads & hides reposts; retweets=exclude drops reposts.
131
275
  *
132
276
  * @example
133
277
  * ```ts
@@ -138,7 +282,7 @@ export declare class Users extends APIResource {
138
282
  */
139
283
  retrieveTweets(id: string, query?: UserRetrieveTweetsParams | null | undefined, options?: RequestOptions): APIPromise<Shared.PaginatedTweets>;
140
284
  /**
141
- * List verified followers of a user
285
+ * Returns verified public profiles following the selected user.
142
286
  *
143
287
  * @example
144
288
  * ```ts
@@ -147,11 +291,24 @@ export declare class Users extends APIResource {
147
291
  * ```
148
292
  */
149
293
  retrieveVerifiedFollowers(id: string, query?: UserRetrieveVerifiedFollowersParams | null | undefined, options?: RequestOptions): APIPromise<UserRetrieveVerifiedFollowersResponse>;
294
+ /**
295
+ * Returns X's own translation of one profile's bio into the language you pick,
296
+ * with the links, mentions, and tags X places in the translated text. A profile
297
+ * without a bio returns translation null & a message, free of charge.
298
+ *
299
+ * @example
300
+ * ```ts
301
+ * const response = await client.x.users.translateBio('id', {
302
+ * language: 'es',
303
+ * });
304
+ * ```
305
+ */
306
+ translateBio(id: string, query: UserTranslateBioParams, options?: RequestOptions): APIPromise<UserTranslateBioResponse>;
150
307
  }
151
308
  /**
152
- * Durable write lifecycle record. Poll statusUrl until terminal is true. Reusing
153
- * the original Idempotency-Key returns this same record. Submit a new write only
154
- * when safeToRetry is true, using a new key.
309
+ * Durable write record. Poll statusUrl until terminal is true. Reusing its
310
+ * Idempotency-Key returns this record. Create another action only when safeToRetry
311
+ * is true.
155
312
  */
156
313
  export interface UserRemoveFollowerResponse {
157
314
  id: string;
@@ -159,7 +316,7 @@ export interface UserRemoveFollowerResponse {
159
316
  * Connected account selected for the write.
160
317
  */
161
318
  account: UserRemoveFollowerResponse.Account | null;
162
- action: 'create_tweet' | 'delete_tweet' | 'like' | 'unlike' | 'retweet' | 'unretweet' | 'follow' | 'unfollow' | 'remove_follower' | 'send_dm' | 'upload_media' | 'update_profile' | 'update_avatar' | 'update_banner' | 'create_community' | 'delete_community' | 'join_community' | 'leave_community';
319
+ action: 'create_tweet' | 'delete_tweet' | 'like' | 'unlike' | 'retweet' | 'unretweet' | 'follow' | 'unfollow' | 'remove_follower' | 'send_dm' | 'delete_dm' | 'upload_media' | 'update_profile' | 'update_avatar' | 'update_banner' | 'create_community' | 'delete_community' | 'join_community' | 'leave_community';
163
320
  /**
164
321
  * plannedCredits is the approved maximum. chargedCredits comes from the settled
165
322
  * credit ledger. Pending or failed writes are not charged.
@@ -186,7 +343,7 @@ export interface UserRemoveFollowerResponse {
186
343
  */
187
344
  retryable: boolean;
188
345
  /**
189
- * True only when no write was dispatched and a new idempotency key may be used.
346
+ * True only when X did not get the write and a new idempotency key may be used.
190
347
  */
191
348
  safeToRetry: boolean;
192
349
  sendDispatched: boolean;
@@ -225,6 +382,10 @@ export interface UserRemoveFollowerResponse {
225
382
  * retention deadline.
226
383
  */
227
384
  expiresAt?: string;
385
+ /**
386
+ * True when this answers a retry of an earlier request with the same
387
+ * Idempotency-Key.
388
+ */
228
389
  idempotent?: boolean;
229
390
  /**
230
391
  * Media count, kind, size, and billing details when used.
@@ -284,6 +445,9 @@ export declare namespace UserRemoveFollowerResponse {
284
445
  */
285
446
  interface NextAction {
286
447
  type: 'poll' | 'retry' | 'verify_result' | 'fix_request';
448
+ /**
449
+ * Milliseconds to wait before you poll or retry.
450
+ */
287
451
  afterMs?: number;
288
452
  requiresNewIdempotencyKey?: boolean;
289
453
  url?: string;
@@ -320,12 +484,15 @@ export declare namespace UserRemoveFollowerResponse {
320
484
  }
321
485
  }
322
486
  /**
323
- * Batch user lookup results. Duplicate requested IDs are ignored while preserving
324
- * first-seen order. unavailable_ids identifies processed IDs with no returned
325
- * profile. unprocessed_ids identifies IDs skipped when the available usage balance limited
326
- * processing.
487
+ * Batch lookup preserves first-seen order and ignores duplicates. The ID lists
488
+ * name the requested IDs or usernames. A profile link is named by its username.
327
489
  */
328
490
  export interface UserRetrieveBatchResponse {
491
+ /**
492
+ * Processed IDs that failed to load, in first-seen request order. They cost
493
+ * nothing. Retry them.
494
+ */
495
+ failed_ids: Array<string>;
329
496
  /**
330
497
  * Batch lookups never paginate.
331
498
  */
@@ -347,31 +514,65 @@ export interface UserRetrieveBatchResponse {
347
514
  */
348
515
  returned_count: number;
349
516
  /**
350
- * Processed IDs with no returned profile, in first-seen request order.
517
+ * Processed IDs with no profile on X, in first-seen request order.
351
518
  */
352
519
  unavailable_ids: Array<string>;
353
520
  /**
354
- * Requested IDs skipped because the available usage balance limited processing. Retry these
355
- * IDs after adding balance.
521
+ * Requested IDs skipped because available credits limited processing. Retry these
522
+ * IDs after adding credits.
356
523
  */
357
524
  unprocessed_ids: Array<string>;
358
525
  users: Array<Shared.UserProfile>;
526
+ /**
527
+ * Profiles rejected by the requested filters.
528
+ */
529
+ filtered_count?: number;
530
+ }
531
+ /**
532
+ * Each user's newest posts, in the order the users were named, with the pinned
533
+ * post first. The ID lists name the requested IDs or usernames. A profile link is
534
+ * named by its username.
535
+ */
536
+ export interface UserRetrieveBatchTweetsResponse {
537
+ /**
538
+ * Always false. The answer holds every post in 1 page.
539
+ */
540
+ has_next_page: false;
541
+ /**
542
+ * Always empty. The answer holds every post in 1 page.
543
+ */
544
+ next_cursor: string;
545
+ tweets: Array<Shared.SearchTweet>;
546
+ /**
547
+ * Users with no account on X or with protected posts, in first-seen request order.
548
+ * They cost nothing.
549
+ */
550
+ unavailable_ids: Array<string>;
551
+ /**
552
+ * Users the call did not read, in first-seen request order. Their read failed, the
553
+ * call ran out of time or credits ran out. They cost nothing. Send them again.
554
+ */
555
+ unprocessed_ids: Array<string>;
556
+ }
557
+ /**
558
+ * A page of user IDs without profiles. Follow next_cursor while the response
559
+ * reports more pages.
560
+ */
561
+ export interface UserRetrieveFollowerIDsResponse {
562
+ has_next_page: boolean;
563
+ /**
564
+ * X user IDs, newest relationship first.
565
+ */
566
+ ids: Array<string>;
567
+ next_cursor: string;
359
568
  }
360
569
  /**
361
- * Paginated user profiles. No-mode follower, following, and verified follower
362
- * requests merge independent views automatically. Response fields, page size,
363
- * aliases, filters, and per-returned-profile billing stay unchanged. Existing
364
- * unprefixed cursors retain legacy behavior. Follow next_cursor while
365
- * has_next_page is true.
570
+ * A standard or terminal maximum-coverage relationship page.
366
571
  */
367
572
  export type UserRetrieveFollowersResponse = Shared.PaginatedUsers | UserRetrieveFollowersResponse.UserListCoverageResponse;
368
573
  export declare namespace UserRetrieveFollowersResponse {
369
574
  /**
370
- * Paginated user profiles. No-mode follower, following, and verified follower
371
- * requests merge independent views automatically. Response fields, page size,
372
- * aliases, filters, and per-returned-profile billing stay unchanged. Existing
373
- * unprefixed cursors retain legacy behavior. Follow next_cursor while
374
- * has_next_page is true.
575
+ * Terminal relationship coverage response with diagnostics.
375
576
  */
376
577
  interface UserListCoverageResponse extends Omit<Shared.PaginatedUsers, 'has_next_page' | 'next_cursor'> {
377
578
  /**
@@ -387,52 +588,78 @@ export declare namespace UserRetrieveFollowersResponse {
387
588
  */
388
589
  interface Diagnostic {
389
590
  /**
390
- * True when every strategy exhausted its source.
591
+ * True after all active strategies exhaust their sources. An empty read of the
592
+ * whole search window also ends its time slices.
391
593
  */
392
594
  complete: boolean;
595
+ /**
596
+ * Whole number from 0.
597
+ */
393
598
  cursorFailureCount: number;
394
599
  deadlineReached: boolean;
600
+ /**
601
+ * Whole number from 0.
602
+ */
395
603
  duplicateCount: number;
604
+ /**
605
+ * Whole number from 0.
606
+ */
396
607
  failedStrategyCount: number;
608
+ /**
609
+ * Whole number from 0.
610
+ */
397
611
  malformedCount: number;
612
+ /**
613
+ * Whole number from 0.
614
+ */
398
615
  pagesFetched: number;
399
616
  /**
400
- * Whether credits or the requested limit reduced output.
617
+ * True when credits or the requested limit reduce output.
401
618
  */
402
619
  responseTruncated: boolean;
403
620
  resultLimitReached: boolean;
404
621
  returnedUsers: number;
622
+ /**
623
+ * Whole number from 0.
624
+ */
405
625
  stalledStrategyCount: number;
406
626
  strategies: Array<Diagnostic.Strategy>;
407
627
  strategyCount: number;
408
628
  uniqueUsers: number;
409
629
  }
410
630
  namespace Diagnostic {
631
+ /**
632
+ * Result counts and stop reason for one relationship strategy.
633
+ */
411
634
  interface Strategy {
635
+ /**
636
+ * Whole number from 0.
637
+ */
412
638
  duplicateCount: number;
639
+ /**
640
+ * Whole number from 0.
641
+ */
413
642
  pagesFetched: number;
643
+ /**
644
+ * Reason a coverage strategy stopped.
645
+ */
414
646
  stopReason: 'cursor_failure' | 'deadline' | 'exhausted' | 'failed' | 'page_limit' | 'result_limit' | 'stalled';
415
647
  strategy: number;
648
+ /**
649
+ * Whole number from 0.
650
+ */
416
651
  uniqueAdded: number;
417
652
  }
418
653
  }
419
654
  }
420
655
  }
421
656
  /**
422
- * Paginated user profiles. No-mode follower, following, and verified follower
423
- * requests merge independent views automatically. Response fields, page size,
424
- * aliases, filters, and per-returned-profile billing stay unchanged. Existing
425
- * unprefixed cursors retain legacy behavior. Follow next_cursor while
426
- * has_next_page is true.
657
+ * A standard or terminal maximum-coverage relationship page.
427
658
  */
428
659
  export type UserRetrieveFollowingResponse = Shared.PaginatedUsers | UserRetrieveFollowingResponse.UserListCoverageResponse;
429
660
  export declare namespace UserRetrieveFollowingResponse {
430
661
  /**
431
- * Paginated user profiles. No-mode follower, following, and verified follower
432
- * requests merge independent views automatically. Response fields, page size,
433
- * aliases, filters, and per-returned-profile billing stay unchanged. Existing
434
- * unprefixed cursors retain legacy behavior. Follow next_cursor while
435
- * has_next_page is true.
662
+ * Terminal relationship coverage response with diagnostics.
436
663
  */
437
664
  interface UserListCoverageResponse extends Omit<Shared.PaginatedUsers, 'has_next_page' | 'next_cursor'> {
438
665
  /**
@@ -448,351 +675,2427 @@ export declare namespace UserRetrieveFollowingResponse {
448
675
  */
449
676
  interface Diagnostic {
450
677
  /**
451
- * True when every strategy exhausted its source.
678
+ * True after all active strategies exhaust their sources. An empty read of the
679
+ * whole search window also ends its time slices.
452
680
  */
453
681
  complete: boolean;
682
+ /**
683
+ * Whole number from 0.
684
+ */
454
685
  cursorFailureCount: number;
455
686
  deadlineReached: boolean;
687
+ /**
688
+ * Whole number from 0.
689
+ */
456
690
  duplicateCount: number;
691
+ /**
692
+ * Whole number from 0.
693
+ */
457
694
  failedStrategyCount: number;
695
+ /**
696
+ * Whole number from 0.
697
+ */
458
698
  malformedCount: number;
699
+ /**
700
+ * Whole number from 0.
701
+ */
459
702
  pagesFetched: number;
460
703
  /**
461
- * Whether credits or the requested limit reduced output.
704
+ * True when credits or the requested limit reduce output.
462
705
  */
463
706
  responseTruncated: boolean;
464
707
  resultLimitReached: boolean;
465
708
  returnedUsers: number;
709
+ /**
710
+ * Whole number from 0.
711
+ */
466
712
  stalledStrategyCount: number;
467
713
  strategies: Array<Diagnostic.Strategy>;
468
714
  strategyCount: number;
469
715
  uniqueUsers: number;
470
716
  }
471
717
  namespace Diagnostic {
718
+ /**
719
+ * Result counts and stop reason for one relationship strategy.
720
+ */
472
721
  interface Strategy {
722
+ /**
723
+ * Whole number from 0.
724
+ */
473
725
  duplicateCount: number;
726
+ /**
727
+ * Whole number from 0.
728
+ */
474
729
  pagesFetched: number;
730
+ /**
731
+ * Reason a coverage strategy stopped.
732
+ */
475
733
  stopReason: 'cursor_failure' | 'deadline' | 'exhausted' | 'failed' | 'page_limit' | 'result_limit' | 'stalled';
476
734
  strategy: number;
735
+ /**
736
+ * Whole number from 0.
737
+ */
477
738
  uniqueAdded: number;
478
739
  }
479
740
  }
480
741
  }
481
742
  }
482
743
  /**
483
- * Paginated user profiles. No-mode follower, following, and verified follower
484
- * requests merge independent views automatically. Response fields, page size,
485
- * aliases, filters, and per-returned-profile billing stay unchanged. Existing
486
- * unprefixed cursors retain legacy behavior. Follow next_cursor while
487
- * has_next_page is true.
744
+ * A page of user IDs without profiles. Follow next_cursor while the response
745
+ * reports more pages.
488
746
  */
489
- export type UserRetrieveVerifiedFollowersResponse = Shared.PaginatedUsers | UserRetrieveVerifiedFollowersResponse.UserListCoverageResponse;
490
- export declare namespace UserRetrieveVerifiedFollowersResponse {
747
+ export interface UserRetrieveFollowingIDsResponse {
748
+ has_next_page: boolean;
491
749
  /**
492
- * Paginated user profiles. No-mode follower, following, and verified follower
493
- * requests merge independent views automatically. Response fields, page size,
494
- * aliases, filters, and per-returned-profile billing stay unchanged. Existing
495
- * unprefixed cursors retain legacy behavior. Follow next_cursor while
496
- * has_next_page is true.
750
+ * X user IDs, newest relationship first.
497
751
  */
498
- interface UserListCoverageResponse extends Omit<Shared.PaginatedUsers, 'has_next_page' | 'next_cursor'> {
752
+ ids: Array<string>;
753
+ next_cursor: string;
754
+ }
755
+ export interface UserRetrieveInsightsResponse {
756
+ /**
757
+ * Engagement insights of one profile. Engagements are likes, replies, reposts and
758
+ * quotes. A rate is null when nothing divides it, such as a profile without posts
759
+ * of its own.
760
+ */
761
+ insights: UserRetrieveInsightsResponse.Insights;
762
+ /**
763
+ * Says why the report has counts only.
764
+ */
765
+ message?: string;
766
+ }
767
+ export declare namespace UserRetrieveInsightsResponse {
768
+ /**
769
+ * Engagement insights of one profile. Engagements are likes, replies, reposts and
770
+ * quotes. A rate is null when nothing divides it, such as a profile without posts
771
+ * of its own.
772
+ */
773
+ interface Insights {
499
774
  /**
500
- * Coverage evidence across parallel relationship strategies.
775
+ * Whole days since the account joined X.
501
776
  */
502
- diagnostic: UserListCoverageResponse.Diagnostic;
503
- has_next_page?: false;
504
- next_cursor?: '';
777
+ accountAgeDays: number | null;
778
+ /**
779
+ * Each count per post of the sample. Null without posts.
780
+ */
781
+ averages: Insights.Averages | null;
782
+ /**
783
+ * Engagements as a percent of views across the sample.
784
+ */
785
+ engagementPerView: number | null;
786
+ /**
787
+ * Average engagements per post, as a percent of followers.
788
+ */
789
+ engagementRate: number | null;
790
+ /**
791
+ * Followers.
792
+ */
793
+ followers: number;
794
+ /**
795
+ * Accounts the user follows.
796
+ */
797
+ following: number;
798
+ /**
799
+ * Posts the user has made.
800
+ */
801
+ posts: number;
802
+ /**
803
+ * Sampled posts per day, from the oldest one until now.
804
+ */
805
+ postsPerDay: number | null;
806
+ /**
807
+ * True when only the account's followers see its posts. The report then has its
808
+ * counts only.
809
+ */
810
+ postsPrivate: boolean;
811
+ /**
812
+ * The recent posts the averages read.
813
+ */
814
+ sample: Insights.Sample;
815
+ /**
816
+ * The sampled post with the most engagements.
817
+ */
818
+ topPostId: string | null;
819
+ /**
820
+ * ID of the profile the insights describe.
821
+ */
822
+ userId: string;
823
+ /**
824
+ * Username of that profile.
825
+ */
826
+ userName: string;
505
827
  }
506
- namespace UserListCoverageResponse {
828
+ namespace Insights {
507
829
  /**
508
- * Coverage evidence across parallel relationship strategies.
830
+ * Each count per post of the sample. Null without posts.
509
831
  */
510
- interface Diagnostic {
832
+ interface Averages {
511
833
  /**
512
- * True when every strategy exhausted its source.
834
+ * Bookmarks.
513
835
  */
514
- complete: boolean;
515
- cursorFailureCount: number;
516
- deadlineReached: boolean;
517
- duplicateCount: number;
518
- failedStrategyCount: number;
519
- malformedCount: number;
520
- pagesFetched: number;
836
+ bookmarks: number;
521
837
  /**
522
- * Whether credits or the requested limit reduced output.
838
+ * Likes, replies, reposts and quotes per post.
523
839
  */
524
- responseTruncated: boolean;
525
- resultLimitReached: boolean;
526
- returnedUsers: number;
527
- stalledStrategyCount: number;
528
- strategies: Array<Diagnostic.Strategy>;
529
- strategyCount: number;
530
- uniqueUsers: number;
840
+ engagements: number;
841
+ /**
842
+ * Likes.
843
+ */
844
+ likes: number;
845
+ /**
846
+ * Quotes.
847
+ */
848
+ quotes: number;
849
+ /**
850
+ * Replies.
851
+ */
852
+ replies: number;
853
+ /**
854
+ * Reposts.
855
+ */
856
+ reposts: number;
857
+ /**
858
+ * Views.
859
+ */
860
+ views: number;
531
861
  }
532
- namespace Diagnostic {
533
- interface Strategy {
534
- duplicateCount: number;
535
- pagesFetched: number;
536
- stopReason: 'cursor_failure' | 'deadline' | 'exhausted' | 'failed' | 'page_limit' | 'result_limit' | 'stalled';
537
- strategy: number;
538
- uniqueAdded: number;
539
- }
862
+ /**
863
+ * The recent posts the averages read.
864
+ */
865
+ interface Sample {
866
+ /**
867
+ * When the newest of them went up.
868
+ */
869
+ newestAt: string | null;
870
+ /**
871
+ * When the oldest of them went up.
872
+ */
873
+ oldestAt: string | null;
874
+ /**
875
+ * Posts read.
876
+ */
877
+ posts: number;
540
878
  }
541
879
  }
542
880
  }
543
- export interface UserRemoveFollowerParams {
544
- /**
545
- * Body param: X account identifier (@username or account ID)
546
- */
547
- account: string;
548
- /**
549
- * Header param: Generate one unique value for each intended write. Reuse it only
550
- * when retrying the exact same account, action, target, and payload. A reused key
551
- * returns the original action. Reusing it with different input returns 409. Replay
552
- * protection remains active for at least 90 days.
553
- */
554
- 'Idempotency-Key': string;
555
- }
556
- export interface UserRetrieveBatchParams {
557
- /**
558
- * Comma-separated numeric user IDs (1-100 values). Duplicate IDs are ignored while
559
- * preserving first-seen order.
560
- */
561
- ids: string;
881
+ /**
882
+ * One page of public X Lists. Follow next_cursor while the response reports more
883
+ * pages. Each returned List costs 1 credit.
884
+ */
885
+ export interface UserRetrieveListMembershipsResponse {
886
+ has_next_page: boolean;
887
+ lists: Array<UserRetrieveListMembershipsResponse.List>;
888
+ next_cursor: string;
562
889
  }
563
- export interface UserRetrieveFollowersParams {
890
+ export declare namespace UserRetrieveListMembershipsResponse {
564
891
  /**
565
- * Legacy cursor alias. Prefer cursor.
892
+ * Public X List with its owner's public profile. Leaves out what X tells the
893
+ * reading account, such as whether it follows the List.
566
894
  */
567
- after?: string;
568
- /**
569
- * Match any comma-separated or line-separated bio term, ignoring case.
895
+ interface List {
896
+ /**
897
+ * Numeric ID of the List.
898
+ */
899
+ id: string;
900
+ /**
901
+ * Name the owner gave the List.
902
+ */
903
+ name: string;
904
+ /**
905
+ * URL of the banner the owner uploaded. Absent when the owner uploaded none.
906
+ */
907
+ bannerUrl?: string;
908
+ /**
909
+ * When the owner made the List.
910
+ */
911
+ createdAt?: string;
912
+ /**
913
+ * Banner the owner uploaded.
914
+ */
915
+ customBanner?: List.CustomBanner;
916
+ /**
917
+ * Banner X shows when the owner uploaded none. X picks it per reading account, so
918
+ * 2 calls can return different ones.
919
+ */
920
+ defaultBanner?: List.DefaultBanner;
921
+ /**
922
+ * About text of the List. Empty when the owner wrote none.
923
+ */
924
+ description?: string;
925
+ /**
926
+ * Avatar URLs of a few List members, which X may pick per request.
927
+ */
928
+ facepileUrls?: Array<string>;
929
+ /**
930
+ * Accounts on the List.
931
+ */
932
+ memberCount?: number;
933
+ /**
934
+ * Member count as X words it, such as 35 members.
935
+ */
936
+ membersContext?: string;
937
+ /**
938
+ * Public profile of the account that owns the List.
939
+ */
940
+ owner?: Shared.UserProfile;
941
+ /**
942
+ * Accounts that follow the List, which X calls followers.
943
+ */
944
+ subscriberCount?: number;
945
+ /**
946
+ * List page on x.com.
947
+ */
948
+ url?: string;
949
+ }
950
+ namespace List {
951
+ /**
952
+ * Banner the owner uploaded.
953
+ */
954
+ interface CustomBanner {
955
+ /**
956
+ * Banner image URL.
957
+ */
958
+ url: string;
959
+ /**
960
+ * Banner height in pixels.
961
+ */
962
+ height?: number;
963
+ /**
964
+ * Media ID of an uploaded banner.
965
+ */
966
+ mediaId?: string;
967
+ /**
968
+ * Stable media key of an uploaded banner.
969
+ */
970
+ mediaKey?: string;
971
+ /**
972
+ * Dominant colors of an uploaded banner and their shares.
973
+ */
974
+ palette?: Array<CustomBanner.Palette>;
975
+ /**
976
+ * Area X marks as the subject of the banner, in pixels.
977
+ */
978
+ salientRect?: CustomBanner.SalientRect;
979
+ /**
980
+ * Banner width in pixels.
981
+ */
982
+ width?: number;
983
+ }
984
+ namespace CustomBanner {
985
+ interface Palette {
986
+ /**
987
+ * Share of the banner
988
+ */
989
+ percentage?: number;
990
+ /**
991
+ * The color's red, green and blue values.
992
+ */
993
+ rgb?: Palette.Rgb;
994
+ }
995
+ namespace Palette {
996
+ /**
997
+ * The color's red, green and blue values.
998
+ */
999
+ interface Rgb {
1000
+ blue?: number;
1001
+ green?: number;
1002
+ red?: number;
1003
+ }
1004
+ }
1005
+ /**
1006
+ * Area X marks as the subject of the banner, in pixels.
1007
+ */
1008
+ interface SalientRect {
1009
+ /**
1010
+ * Height of the marked area.
1011
+ */
1012
+ height?: number;
1013
+ /**
1014
+ * Pixels from the banner's left.
1015
+ */
1016
+ left?: number;
1017
+ /**
1018
+ * Pixels from the banner's top.
1019
+ */
1020
+ top?: number;
1021
+ /**
1022
+ * Width of the marked area.
1023
+ */
1024
+ width?: number;
1025
+ }
1026
+ }
1027
+ /**
1028
+ * Banner X shows when the owner uploaded none. X picks it per reading account, so
1029
+ * 2 calls can return different ones.
1030
+ */
1031
+ interface DefaultBanner {
1032
+ /**
1033
+ * Banner image URL.
1034
+ */
1035
+ url: string;
1036
+ /**
1037
+ * Banner height in pixels.
1038
+ */
1039
+ height?: number;
1040
+ /**
1041
+ * Media ID of an uploaded banner.
1042
+ */
1043
+ mediaId?: string;
1044
+ /**
1045
+ * Stable media key of an uploaded banner.
1046
+ */
1047
+ mediaKey?: string;
1048
+ /**
1049
+ * Dominant colors of an uploaded banner and their shares.
1050
+ */
1051
+ palette?: Array<DefaultBanner.Palette>;
1052
+ /**
1053
+ * Area X marks as the subject of the banner, in pixels.
1054
+ */
1055
+ salientRect?: DefaultBanner.SalientRect;
1056
+ /**
1057
+ * Banner width in pixels.
1058
+ */
1059
+ width?: number;
1060
+ }
1061
+ namespace DefaultBanner {
1062
+ interface Palette {
1063
+ /**
1064
+ * Share of the banner
1065
+ */
1066
+ percentage?: number;
1067
+ /**
1068
+ * The color's red, green and blue values.
1069
+ */
1070
+ rgb?: Palette.Rgb;
1071
+ }
1072
+ namespace Palette {
1073
+ /**
1074
+ * The color's red, green and blue values.
1075
+ */
1076
+ interface Rgb {
1077
+ blue?: number;
1078
+ green?: number;
1079
+ red?: number;
1080
+ }
1081
+ }
1082
+ /**
1083
+ * Area X marks as the subject of the banner, in pixels.
1084
+ */
1085
+ interface SalientRect {
1086
+ /**
1087
+ * Height of the marked area.
1088
+ */
1089
+ height?: number;
1090
+ /**
1091
+ * Pixels from the banner's left.
1092
+ */
1093
+ left?: number;
1094
+ /**
1095
+ * Pixels from the banner's top.
1096
+ */
1097
+ top?: number;
1098
+ /**
1099
+ * Width of the marked area.
1100
+ */
1101
+ width?: number;
1102
+ }
1103
+ }
1104
+ }
1105
+ }
1106
+ /**
1107
+ * One page of public X Lists. Follow next_cursor while the response reports more
1108
+ * pages. Each returned List costs 1 credit.
1109
+ */
1110
+ export interface UserRetrieveListsResponse {
1111
+ has_next_page: boolean;
1112
+ lists: Array<UserRetrieveListsResponse.List>;
1113
+ next_cursor: string;
1114
+ }
1115
+ export declare namespace UserRetrieveListsResponse {
1116
+ /**
1117
+ * Public X List with its owner's public profile. Leaves out what X tells the
1118
+ * reading account, such as whether it follows the List.
1119
+ */
1120
+ interface List {
1121
+ /**
1122
+ * Numeric ID of the List.
1123
+ */
1124
+ id: string;
1125
+ /**
1126
+ * Name the owner gave the List.
1127
+ */
1128
+ name: string;
1129
+ /**
1130
+ * URL of the banner the owner uploaded. Absent when the owner uploaded none.
1131
+ */
1132
+ bannerUrl?: string;
1133
+ /**
1134
+ * When the owner made the List.
1135
+ */
1136
+ createdAt?: string;
1137
+ /**
1138
+ * Banner the owner uploaded.
1139
+ */
1140
+ customBanner?: List.CustomBanner;
1141
+ /**
1142
+ * Banner X shows when the owner uploaded none. X picks it per reading account, so
1143
+ * 2 calls can return different ones.
1144
+ */
1145
+ defaultBanner?: List.DefaultBanner;
1146
+ /**
1147
+ * About text of the List. Empty when the owner wrote none.
1148
+ */
1149
+ description?: string;
1150
+ /**
1151
+ * Avatar URLs of a few List members, which X may pick per request.
1152
+ */
1153
+ facepileUrls?: Array<string>;
1154
+ /**
1155
+ * Accounts on the List.
1156
+ */
1157
+ memberCount?: number;
1158
+ /**
1159
+ * Member count as X words it, such as 35 members.
1160
+ */
1161
+ membersContext?: string;
1162
+ /**
1163
+ * Public profile of the account that owns the List.
1164
+ */
1165
+ owner?: Shared.UserProfile;
1166
+ /**
1167
+ * Accounts that follow the List, which X calls followers.
1168
+ */
1169
+ subscriberCount?: number;
1170
+ /**
1171
+ * List page on x.com.
1172
+ */
1173
+ url?: string;
1174
+ }
1175
+ namespace List {
1176
+ /**
1177
+ * Banner the owner uploaded.
1178
+ */
1179
+ interface CustomBanner {
1180
+ /**
1181
+ * Banner image URL.
1182
+ */
1183
+ url: string;
1184
+ /**
1185
+ * Banner height in pixels.
1186
+ */
1187
+ height?: number;
1188
+ /**
1189
+ * Media ID of an uploaded banner.
1190
+ */
1191
+ mediaId?: string;
1192
+ /**
1193
+ * Stable media key of an uploaded banner.
1194
+ */
1195
+ mediaKey?: string;
1196
+ /**
1197
+ * Dominant colors of an uploaded banner and their shares.
1198
+ */
1199
+ palette?: Array<CustomBanner.Palette>;
1200
+ /**
1201
+ * Area X marks as the subject of the banner, in pixels.
1202
+ */
1203
+ salientRect?: CustomBanner.SalientRect;
1204
+ /**
1205
+ * Banner width in pixels.
1206
+ */
1207
+ width?: number;
1208
+ }
1209
+ namespace CustomBanner {
1210
+ interface Palette {
1211
+ /**
1212
+ * Share of the banner
1213
+ */
1214
+ percentage?: number;
1215
+ /**
1216
+ * The color's red, green and blue values.
1217
+ */
1218
+ rgb?: Palette.Rgb;
1219
+ }
1220
+ namespace Palette {
1221
+ /**
1222
+ * The color's red, green and blue values.
1223
+ */
1224
+ interface Rgb {
1225
+ blue?: number;
1226
+ green?: number;
1227
+ red?: number;
1228
+ }
1229
+ }
1230
+ /**
1231
+ * Area X marks as the subject of the banner, in pixels.
1232
+ */
1233
+ interface SalientRect {
1234
+ /**
1235
+ * Height of the marked area.
1236
+ */
1237
+ height?: number;
1238
+ /**
1239
+ * Pixels from the banner's left.
1240
+ */
1241
+ left?: number;
1242
+ /**
1243
+ * Pixels from the banner's top.
1244
+ */
1245
+ top?: number;
1246
+ /**
1247
+ * Width of the marked area.
1248
+ */
1249
+ width?: number;
1250
+ }
1251
+ }
1252
+ /**
1253
+ * Banner X shows when the owner uploaded none. X picks it per reading account, so
1254
+ * 2 calls can return different ones.
1255
+ */
1256
+ interface DefaultBanner {
1257
+ /**
1258
+ * Banner image URL.
1259
+ */
1260
+ url: string;
1261
+ /**
1262
+ * Banner height in pixels.
1263
+ */
1264
+ height?: number;
1265
+ /**
1266
+ * Media ID of an uploaded banner.
1267
+ */
1268
+ mediaId?: string;
1269
+ /**
1270
+ * Stable media key of an uploaded banner.
1271
+ */
1272
+ mediaKey?: string;
1273
+ /**
1274
+ * Dominant colors of an uploaded banner and their shares.
1275
+ */
1276
+ palette?: Array<DefaultBanner.Palette>;
1277
+ /**
1278
+ * Area X marks as the subject of the banner, in pixels.
1279
+ */
1280
+ salientRect?: DefaultBanner.SalientRect;
1281
+ /**
1282
+ * Banner width in pixels.
1283
+ */
1284
+ width?: number;
1285
+ }
1286
+ namespace DefaultBanner {
1287
+ interface Palette {
1288
+ /**
1289
+ * Share of the banner
1290
+ */
1291
+ percentage?: number;
1292
+ /**
1293
+ * The color's red, green and blue values.
1294
+ */
1295
+ rgb?: Palette.Rgb;
1296
+ }
1297
+ namespace Palette {
1298
+ /**
1299
+ * The color's red, green and blue values.
1300
+ */
1301
+ interface Rgb {
1302
+ blue?: number;
1303
+ green?: number;
1304
+ red?: number;
1305
+ }
1306
+ }
1307
+ /**
1308
+ * Area X marks as the subject of the banner, in pixels.
1309
+ */
1310
+ interface SalientRect {
1311
+ /**
1312
+ * Height of the marked area.
1313
+ */
1314
+ height?: number;
1315
+ /**
1316
+ * Pixels from the banner's left.
1317
+ */
1318
+ left?: number;
1319
+ /**
1320
+ * Pixels from the banner's top.
1321
+ */
1322
+ top?: number;
1323
+ /**
1324
+ * Width of the marked area.
1325
+ */
1326
+ width?: number;
1327
+ }
1328
+ }
1329
+ }
1330
+ }
1331
+ /**
1332
+ * Says whether a user broadcasts live video on X now. `broadcast` is their latest
1333
+ * broadcast, live or ended, and null when X shows none.
1334
+ */
1335
+ export interface UserRetrieveLiveResponse {
1336
+ /**
1337
+ * Latest broadcast, live or ended. Null when X shows none.
1338
+ */
1339
+ broadcast: UserRetrieveLiveResponse.Broadcast | null;
1340
+ /**
1341
+ * True while the user's latest broadcast is running.
1342
+ */
1343
+ live: boolean;
1344
+ /**
1345
+ * ID of the user.
1346
+ */
1347
+ userId: string;
1348
+ /**
1349
+ * Username of the user.
1350
+ */
1351
+ userName: string;
1352
+ }
1353
+ export declare namespace UserRetrieveLiveResponse {
1354
+ /**
1355
+ * X broadcast, a live video
1356
+ */
1357
+ interface Broadcast {
1358
+ /**
1359
+ * Broadcast ID
1360
+ */
1361
+ id: string;
1362
+ /**
1363
+ * Camera rotation in degrees
1364
+ */
1365
+ cameraRotation?: number;
1366
+ /**
1367
+ * X's code for who may chat
1368
+ */
1369
+ chatOption?: number;
1370
+ /**
1371
+ * Public X profile.
1372
+ */
1373
+ creator?: Shared.UserProfile;
1374
+ /**
1375
+ * When the broadcast ended
1376
+ */
1377
+ endedAt?: string;
1378
+ /**
1379
+ * Video height in pixels
1380
+ */
1381
+ height?: number;
1382
+ /**
1383
+ * Whether X offers a recording of the broadcast
1384
+ */
1385
+ isAvailableForReplay?: boolean;
1386
+ /**
1387
+ * Whether the video stream runs in high-latency mode
1388
+ */
1389
+ isHighLatency?: boolean;
1390
+ /**
1391
+ * Whether X marks the chat private
1392
+ */
1393
+ isPrivateChat?: boolean;
1394
+ /**
1395
+ * Whether the broadcaster edited the title of the replay
1396
+ */
1397
+ isTitleEdited?: boolean;
1398
+ /**
1399
+ * When the video stream last reached X
1400
+ */
1401
+ lastPingAt?: string;
1402
+ /**
1403
+ * X's media key for the video
1404
+ */
1405
+ mediaKey?: string;
1406
+ /**
1407
+ * Broadcaster, as X's live video service names the account
1408
+ */
1409
+ periscopeUser?: Broadcast.PeriscopeUser;
1410
+ /**
1411
+ * Image X shows before the broadcast starts
1412
+ */
1413
+ preLiveSlateUrl?: string;
1414
+ /**
1415
+ * When the broadcast was set to start
1416
+ */
1417
+ scheduledStart?: string;
1418
+ /**
1419
+ * What produced the video stream, as X names it
1420
+ */
1421
+ source?: string;
1422
+ /**
1423
+ * When the broadcast went live
1424
+ */
1425
+ startedAt?: string;
1426
+ /**
1427
+ * Such as NotStarted, Running or Ended, as X names it
1428
+ */
1429
+ state?: string;
1430
+ /**
1431
+ * Broadcast title
1432
+ */
1433
+ title?: string;
1434
+ /**
1435
+ * Accounts that watched, live or after
1436
+ */
1437
+ totalWatched?: number;
1438
+ /**
1439
+ * Accounts watching, as X counts them
1440
+ */
1441
+ totalWatching?: number;
1442
+ /**
1443
+ * Search tweet with author. Zero metrics may mean X omitted counts.
1444
+ */
1445
+ tweet?: Shared.SearchTweet;
1446
+ /**
1447
+ * ID of the post that announces the broadcast
1448
+ */
1449
+ tweetId?: string;
1450
+ /**
1451
+ * X's revision number of the broadcast
1452
+ */
1453
+ version?: number;
1454
+ /**
1455
+ * Video width in pixels
1456
+ */
1457
+ width?: number;
1458
+ }
1459
+ namespace Broadcast {
1460
+ /**
1461
+ * Broadcaster, as X's live video service names the account
1462
+ */
1463
+ interface PeriscopeUser {
1464
+ /**
1465
+ * Live video account ID
1466
+ */
1467
+ id?: string;
1468
+ /**
1469
+ * Live video display name
1470
+ */
1471
+ displayName?: string;
1472
+ /**
1473
+ * Live video avatar URL
1474
+ */
1475
+ profilePicture?: string;
1476
+ /**
1477
+ * Live video username
1478
+ */
1479
+ username?: string;
1480
+ }
1481
+ }
1482
+ }
1483
+ /**
1484
+ * A standard or terminal maximum-coverage relationship page.
1485
+ */
1486
+ export type UserRetrieveVerifiedFollowersResponse = Shared.PaginatedUsers | UserRetrieveVerifiedFollowersResponse.UserListCoverageResponse;
1487
+ export declare namespace UserRetrieveVerifiedFollowersResponse {
1488
+ /**
1489
+ * Terminal relationship coverage response with diagnostics.
1490
+ */
1491
+ interface UserListCoverageResponse extends Omit<Shared.PaginatedUsers, 'has_next_page' | 'next_cursor'> {
1492
+ /**
1493
+ * Coverage evidence across parallel relationship strategies.
1494
+ */
1495
+ diagnostic: UserListCoverageResponse.Diagnostic;
1496
+ has_next_page?: false;
1497
+ next_cursor?: '';
1498
+ }
1499
+ namespace UserListCoverageResponse {
1500
+ /**
1501
+ * Coverage evidence across parallel relationship strategies.
1502
+ */
1503
+ interface Diagnostic {
1504
+ /**
1505
+ * True after all active strategies exhaust their sources. An empty read of the
1506
+ * whole search window also ends its time slices.
1507
+ */
1508
+ complete: boolean;
1509
+ /**
1510
+ * Whole number from 0.
1511
+ */
1512
+ cursorFailureCount: number;
1513
+ deadlineReached: boolean;
1514
+ /**
1515
+ * Whole number from 0.
1516
+ */
1517
+ duplicateCount: number;
1518
+ /**
1519
+ * Whole number from 0.
1520
+ */
1521
+ failedStrategyCount: number;
1522
+ /**
1523
+ * Whole number from 0.
1524
+ */
1525
+ malformedCount: number;
1526
+ /**
1527
+ * Whole number from 0.
1528
+ */
1529
+ pagesFetched: number;
1530
+ /**
1531
+ * True when credits or the requested limit reduce output.
1532
+ */
1533
+ responseTruncated: boolean;
1534
+ resultLimitReached: boolean;
1535
+ returnedUsers: number;
1536
+ /**
1537
+ * Whole number from 0.
1538
+ */
1539
+ stalledStrategyCount: number;
1540
+ strategies: Array<Diagnostic.Strategy>;
1541
+ strategyCount: number;
1542
+ uniqueUsers: number;
1543
+ }
1544
+ namespace Diagnostic {
1545
+ /**
1546
+ * Result counts and stop reason for one relationship strategy.
1547
+ */
1548
+ interface Strategy {
1549
+ /**
1550
+ * Whole number from 0.
1551
+ */
1552
+ duplicateCount: number;
1553
+ /**
1554
+ * Whole number from 0.
1555
+ */
1556
+ pagesFetched: number;
1557
+ /**
1558
+ * Reason a coverage strategy stopped.
1559
+ */
1560
+ stopReason: 'cursor_failure' | 'deadline' | 'exhausted' | 'failed' | 'page_limit' | 'result_limit' | 'stalled';
1561
+ strategy: number;
1562
+ /**
1563
+ * Whole number from 0.
1564
+ */
1565
+ uniqueAdded: number;
1566
+ }
1567
+ }
1568
+ }
1569
+ }
1570
+ export interface UserTranslateBioResponse {
1571
+ /**
1572
+ * Null when the profile has no bio.
1573
+ */
1574
+ translation: UserTranslateBioResponse.Translation | null;
1575
+ /**
1576
+ * Says why translation is null.
1577
+ */
1578
+ message?: string;
1579
+ }
1580
+ export declare namespace UserTranslateBioResponse {
1581
+ /**
1582
+ * Holds X's translation of one profile's bio into the requested language.
1583
+ * `entities` holds the links, mentions, and tags with their offsets in the
1584
+ * translated text, and is empty when the text has none.
1585
+ */
1586
+ interface Translation {
1587
+ /**
1588
+ * Lists hashtags, symbols, links, and mentions from tweet text.
1589
+ */
1590
+ entities: Translation.Entities;
1591
+ /**
1592
+ * Language code of the translated bio, in lower case.
1593
+ */
1594
+ language: string;
1595
+ /**
1596
+ * Translated bio.
1597
+ */
1598
+ text: string;
1599
+ /**
1600
+ * ID of the account whose bio X translated.
1601
+ */
1602
+ userId: string;
1603
+ /**
1604
+ * Username of that account.
1605
+ */
1606
+ userName: string;
1607
+ /**
1608
+ * Language code X detects in the bio, when it names one.
1609
+ */
1610
+ sourceLanguage?: string;
1611
+ }
1612
+ namespace Translation {
1613
+ /**
1614
+ * Lists hashtags, symbols, links, and mentions from tweet text.
1615
+ */
1616
+ interface Entities {
1617
+ hashtags?: Array<Entities.Hashtag>;
1618
+ smarttags?: Array<Entities.Smarttag>;
1619
+ symbols?: Array<Entities.Symbol>;
1620
+ timestamps?: Array<Entities.Timestamp>;
1621
+ urls?: Array<Entities.URL>;
1622
+ user_mentions?: Array<Entities.UserMention>;
1623
+ }
1624
+ namespace Entities {
1625
+ /**
1626
+ * Provides hashtag text and source offsets within a tweet.
1627
+ */
1628
+ interface Hashtag {
1629
+ text: string;
1630
+ indices?: Array<number>;
1631
+ /**
1632
+ * X's SmartTag for a cashtag, smarttag or hashtag. Xquik leaves out X's trading
1633
+ * platforms, which differ by reader.
1634
+ */
1635
+ tag?: Hashtag.Tag;
1636
+ }
1637
+ namespace Hashtag {
1638
+ /**
1639
+ * X's SmartTag for a cashtag, smarttag or hashtag. Xquik leaves out X's trading
1640
+ * platforms, which differ by reader.
1641
+ */
1642
+ interface Tag {
1643
+ /**
1644
+ * X's ID for the SmartTag.
1645
+ */
1646
+ id?: string;
1647
+ info?: Tag.Info;
1648
+ }
1649
+ namespace Tag {
1650
+ interface Info {
1651
+ info?: Info.Info;
1652
+ }
1653
+ namespace Info {
1654
+ interface Info {
1655
+ /**
1656
+ * Whether X marks the SmartTag active.
1657
+ */
1658
+ active?: boolean;
1659
+ name?: string;
1660
+ ticker?: string;
1661
+ }
1662
+ }
1663
+ }
1664
+ }
1665
+ /**
1666
+ * Indexed smart-tag, cashtag, or video timestamp metadata.
1667
+ */
1668
+ interface Smarttag {
1669
+ indices?: Array<number>;
1670
+ seconds?: number;
1671
+ /**
1672
+ * X's SmartTag for a cashtag, smarttag or hashtag. Xquik leaves out X's trading
1673
+ * platforms, which differ by reader.
1674
+ */
1675
+ tag?: Smarttag.Tag;
1676
+ text?: string;
1677
+ }
1678
+ namespace Smarttag {
1679
+ /**
1680
+ * X's SmartTag for a cashtag, smarttag or hashtag. Xquik leaves out X's trading
1681
+ * platforms, which differ by reader.
1682
+ */
1683
+ interface Tag {
1684
+ /**
1685
+ * X's ID for the SmartTag.
1686
+ */
1687
+ id?: string;
1688
+ info?: Tag.Info;
1689
+ }
1690
+ namespace Tag {
1691
+ interface Info {
1692
+ info?: Info.Info;
1693
+ }
1694
+ namespace Info {
1695
+ interface Info {
1696
+ /**
1697
+ * Whether X marks the SmartTag active.
1698
+ */
1699
+ active?: boolean;
1700
+ name?: string;
1701
+ ticker?: string;
1702
+ }
1703
+ }
1704
+ }
1705
+ }
1706
+ /**
1707
+ * Indexed smart-tag, cashtag, or video timestamp metadata.
1708
+ */
1709
+ interface Symbol {
1710
+ indices?: Array<number>;
1711
+ seconds?: number;
1712
+ /**
1713
+ * X's SmartTag for a cashtag, smarttag or hashtag. Xquik leaves out X's trading
1714
+ * platforms, which differ by reader.
1715
+ */
1716
+ tag?: Symbol.Tag;
1717
+ text?: string;
1718
+ }
1719
+ namespace Symbol {
1720
+ /**
1721
+ * X's SmartTag for a cashtag, smarttag or hashtag. Xquik leaves out X's trading
1722
+ * platforms, which differ by reader.
1723
+ */
1724
+ interface Tag {
1725
+ /**
1726
+ * X's ID for the SmartTag.
1727
+ */
1728
+ id?: string;
1729
+ info?: Tag.Info;
1730
+ }
1731
+ namespace Tag {
1732
+ interface Info {
1733
+ info?: Info.Info;
1734
+ }
1735
+ namespace Info {
1736
+ interface Info {
1737
+ /**
1738
+ * Whether X marks the SmartTag active.
1739
+ */
1740
+ active?: boolean;
1741
+ name?: string;
1742
+ ticker?: string;
1743
+ }
1744
+ }
1745
+ }
1746
+ }
1747
+ /**
1748
+ * Indexed smart-tag, cashtag, or video timestamp metadata.
1749
+ */
1750
+ interface Timestamp {
1751
+ indices?: Array<number>;
1752
+ seconds?: number;
1753
+ /**
1754
+ * X's SmartTag for a cashtag, smarttag or hashtag. Xquik leaves out X's trading
1755
+ * platforms, which differ by reader.
1756
+ */
1757
+ tag?: Timestamp.Tag;
1758
+ text?: string;
1759
+ }
1760
+ namespace Timestamp {
1761
+ /**
1762
+ * X's SmartTag for a cashtag, smarttag or hashtag. Xquik leaves out X's trading
1763
+ * platforms, which differ by reader.
1764
+ */
1765
+ interface Tag {
1766
+ /**
1767
+ * X's ID for the SmartTag.
1768
+ */
1769
+ id?: string;
1770
+ info?: Tag.Info;
1771
+ }
1772
+ namespace Tag {
1773
+ interface Info {
1774
+ info?: Info.Info;
1775
+ }
1776
+ namespace Info {
1777
+ interface Info {
1778
+ /**
1779
+ * Whether X marks the SmartTag active.
1780
+ */
1781
+ active?: boolean;
1782
+ name?: string;
1783
+ ticker?: string;
1784
+ }
1785
+ }
1786
+ }
1787
+ }
1788
+ /**
1789
+ * Provides shortened, display, and expanded URLs from tweet text.
1790
+ */
1791
+ interface URL {
1792
+ display_url?: string;
1793
+ expanded_url?: string;
1794
+ indices?: Array<number>;
1795
+ url?: string;
1796
+ }
1797
+ /**
1798
+ * Provides profile identity and source offsets for a mention.
1799
+ */
1800
+ interface UserMention {
1801
+ screen_name: string;
1802
+ id_str?: string;
1803
+ indices?: Array<number>;
1804
+ name?: string;
1805
+ }
1806
+ }
1807
+ }
1808
+ }
1809
+ export interface UserRetrieveParams {
1810
+ /**
1811
+ * Fields to keep in each row, comma-separated. Use dots for nested fields, such as
1812
+ * author.username. A list keeps the field in each item. Case & underscores do not
1813
+ * matter. A row that lacks a field leaves it out. Cursors, counts & diagnostics
1814
+ * always stay. An unknown name answers 400 unknown_field with the valid names,
1815
+ * before any read. The price stays the same. SDK row types then hold only the
1816
+ * named fields.
1817
+ */
1818
+ fields?: string;
1819
+ /**
1820
+ * Fields to drop from each row, comma-separated. It takes the same names as
1821
+ * fields. With fields, it drops from the kept fields.
1822
+ */
1823
+ omit?: string;
1824
+ }
1825
+ export interface UserRemoveFollowerParams {
1826
+ /**
1827
+ * Body param: X account identifier (@username or account ID)
1828
+ */
1829
+ account: string;
1830
+ /**
1831
+ * Header param: Use one unique value per intended write. Reuse it only for an
1832
+ * identical retry. A matching retry returns the first answer again, with
1833
+ * idempotent: true added. It keeps the first status, body & Retry-After. It sends
1834
+ * nothing to X & charges nothing. While the first request runs, a retry returns
1835
+ * 202 & the action. Different input returns 409. Protection lasts at least 90
1836
+ * days.
1837
+ */
1838
+ 'Idempotency-Key': string;
1839
+ }
1840
+ export interface UserRetrieveAffiliatesParams {
1841
+ /**
1842
+ * Match any comma-separated or line-separated bio term, ignoring case.
1843
+ */
1844
+ bioContains?: string;
1845
+ /**
1846
+ * Only return profiles X marks as blue verified. X marks many business &
1847
+ * government accounts blue too. Use verifiedType for 1 badge type.
1848
+ */
1849
+ blueVerifiedOnly?: boolean;
1850
+ /**
1851
+ * Only return profiles that publish an email outside free webmail, such as Gmail.
1852
+ */
1853
+ businessEmailOnly?: boolean;
1854
+ /**
1855
+ * Pagination cursor for collection results. Also read as next_cursor, next_token,
1856
+ * pagination_token or continuation_token.
1857
+ */
1858
+ cursor?: string;
1859
+ /**
1860
+ * Only return profiles with an email at one of these domains. Separate domains
1861
+ * with commas. Subdomains match.
1862
+ */
1863
+ emailDomains?: string;
1864
+ /**
1865
+ * Fields to keep in each row, comma-separated. Use dots for nested fields, such as
1866
+ * author.username. A list keeps the field in each item. Case & underscores do not
1867
+ * matter. A row that lacks a field leaves it out. Cursors, counts & diagnostics
1868
+ * always stay. An unknown name answers 400 unknown_field with the valid names,
1869
+ * before any read. The price stays the same. SDK row types then hold only the
1870
+ * named fields.
1871
+ */
1872
+ fields?: string;
1873
+ /**
1874
+ * Only return profiles that publish an email.
1875
+ */
1876
+ hasEmail?: boolean;
1877
+ /**
1878
+ * Only return profiles with a location.
1879
+ */
1880
+ hasLocation?: boolean;
1881
+ /**
1882
+ * Only return profiles with a website.
1883
+ */
1884
+ hasWebsite?: boolean;
1885
+ /**
1886
+ * Match a location substring, ignoring case.
1887
+ */
1888
+ locationContains?: string;
1889
+ /**
1890
+ * Maximum follower count. Missing counts pass this maximum.
1891
+ */
1892
+ maxFollowers?: number;
1893
+ /**
1894
+ * Profiles may follow at most this many accounts.
1895
+ */
1896
+ maxFollowing?: number;
1897
+ /**
1898
+ * Maximum post count. maxPosts is also accepted.
1899
+ */
1900
+ maxStatuses?: number;
1901
+ /**
1902
+ * Minimum account age in whole days.
1903
+ */
1904
+ minAccountAgeDays?: number;
1905
+ /**
1906
+ * Minimum follower count. Filtering happens before billing.
1907
+ */
1908
+ minFollowers?: number;
1909
+ /**
1910
+ * Profiles must follow at least this many accounts.
1911
+ */
1912
+ minFollowing?: number;
1913
+ /**
1914
+ * Minimum post count. minPosts is also accepted.
1915
+ */
1916
+ minStatuses?: number;
1917
+ /**
1918
+ * Fields to drop from each row, comma-separated. It takes the same names as
1919
+ * fields. With fields, it drops from the kept fields.
1920
+ */
1921
+ omit?: string;
1922
+ /**
1923
+ * Profiles to request from this page (1-200, default 200). Source, filters or
1924
+ * credits can return fewer. Follow next_cursor for more pages. Aliases: limit,
1925
+ * count, max_results, maxItems, max_items & per_page.
1926
+ */
1927
+ pageSize?: number;
1928
+ /**
1929
+ * Match a username substring, ignoring case.
1930
+ */
1931
+ usernameContains?: string;
1932
+ /**
1933
+ * Only return verified profiles.
1934
+ */
1935
+ verifiedOnly?: boolean;
1936
+ /**
1937
+ * Match the verification type exactly, ignoring case.
1938
+ */
1939
+ verifiedType?: string;
1940
+ }
1941
+ export interface UserRetrieveArticlesParams {
1942
+ /**
1943
+ * Words or quoted phrases where any one can match. Separate with spaces, commas,
1944
+ * or lines.
1945
+ */
1946
+ anyWords?: string;
1947
+ /**
1948
+ * Only return tweets from Blue-verified authors.
1949
+ */
1950
+ blueVerifiedOnly?: boolean;
1951
+ /**
1952
+ * Cashtags separated by spaces, commas, or lines.
1953
+ */
1954
+ cashtags?: string;
1955
+ /**
1956
+ * Conversation ID filter.
1957
+ */
1958
+ conversationId?: string;
1959
+ /**
1960
+ * Pagination cursor for collection results. Also read as next_cursor, next_token,
1961
+ * pagination_token or continuation_token.
1962
+ */
1963
+ cursor?: string;
1964
+ /**
1965
+ * Match this literal phrase, including any hyphens.
1966
+ */
1967
+ exactPhrase?: string;
1968
+ /**
1969
+ * Words or quoted phrases to exclude. Separate with spaces, commas, or lines.
1970
+ */
1971
+ excludeWords?: string;
1972
+ /**
1973
+ * Fields to keep in each row, comma-separated. Use dots for nested fields, such as
1974
+ * author.username. A list keeps the field in each item. Case & underscores do not
1975
+ * matter. A row that lacks a field leaves it out. Cursors, counts & diagnostics
1976
+ * always stay. An unknown name answers 400 unknown_field with the valid names,
1977
+ * before any read. The price stays the same. SDK row types then hold only the
1978
+ * named fields.
1979
+ */
1980
+ fields?: string;
1981
+ /**
1982
+ * Filter by author username.
1983
+ */
1984
+ fromUser?: string;
1985
+ /**
1986
+ * Hashtags separated by spaces, commas, or lines.
1987
+ */
1988
+ hashtags?: string;
1989
+ /**
1990
+ * Only replies to this tweet ID.
1991
+ */
1992
+ inReplyToTweetId?: string;
1993
+ /**
1994
+ * Filter by language. Alias `lang` is accepted.
1995
+ */
1996
+ language?: string;
1997
+ /**
1998
+ * Maximum likes threshold. maxLikes & max_likes also work.
1999
+ */
2000
+ maxFaves?: number;
2001
+ /**
2002
+ * Return Tweets at or below this ID.
2003
+ */
2004
+ maxId?: string;
2005
+ /**
2006
+ * Maximum quotes threshold.
2007
+ */
2008
+ maxQuotes?: number;
2009
+ /**
2010
+ * Maximum replies threshold.
2011
+ */
2012
+ maxReplies?: number;
2013
+ /**
2014
+ * Maximum retweets threshold.
2015
+ */
2016
+ maxRetweets?: number;
2017
+ /**
2018
+ * Filter media. Aliases: has_video, has_media.
2019
+ */
2020
+ mediaType?: 'images' | 'videos' | 'gifs' | 'media' | 'links' | 'none';
2021
+ /**
2022
+ * Filter tweets mentioning a username.
2023
+ */
2024
+ mentioning?: string;
2025
+ /**
2026
+ * Minimum bookmark count threshold.
2027
+ */
2028
+ minBookmarks?: number;
2029
+ /**
2030
+ * Minimum likes. Aliases: minFaves, min_likes, min_faves.
2031
+ */
2032
+ minLikes?: number;
2033
+ /**
2034
+ * Minimum quote count threshold.
2035
+ */
2036
+ minQuotes?: number;
2037
+ /**
2038
+ * Minimum replies threshold.
2039
+ */
2040
+ minReplies?: number;
2041
+ /**
2042
+ * Minimum retweets threshold.
2043
+ */
2044
+ minRetweets?: number;
2045
+ /**
2046
+ * Minimum view count threshold.
2047
+ */
2048
+ minViews?: number;
2049
+ /**
2050
+ * Only return native reposts.
2051
+ */
2052
+ nativeRetweets?: boolean;
2053
+ /**
2054
+ * Fields to drop from each row, comma-separated. It takes the same names as
2055
+ * fields. With fields, it drops from the kept fields.
2056
+ */
2057
+ omit?: string;
2058
+ /**
2059
+ * Items per page (1-100, default 20). Source, filters or credits can return fewer.
2060
+ * Follow next_cursor for more pages. Aliases: limit, count, max_results, maxItems,
2061
+ * max_items & per_page.
2062
+ */
2063
+ pageSize?: number;
2064
+ /**
2065
+ * Only when the caller requests a quote mode.
2066
+ */
2067
+ quotes?: 'include' | 'exclude' | 'only';
2068
+ /**
2069
+ * Only quotes of this tweet ID.
2070
+ */
2071
+ quotesOfTweetId?: string;
2072
+ /**
2073
+ * Reply mode. Exclude keeps own-thread replies.
2074
+ */
2075
+ replies?: 'include' | 'exclude' | 'only';
2076
+ /**
2077
+ * Only when the caller requests a repost mode.
2078
+ */
2079
+ retweets?: 'include' | 'exclude' | 'only';
2080
+ /**
2081
+ * Only retweets of this tweet ID.
2082
+ */
2083
+ retweetsOfTweetId?: string;
2084
+ /**
2085
+ * Start date in YYYY-MM-DD format, as a UTC day.
2086
+ */
2087
+ sinceDate?: string;
2088
+ /**
2089
+ * Return Tweets whose IDs exceed this ID.
2090
+ */
2091
+ sinceId?: string;
2092
+ /**
2093
+ * Filter replies sent to a username.
2094
+ */
2095
+ toUser?: string;
2096
+ /**
2097
+ * End date in YYYY-MM-DD format, as a UTC day, inclusive, so its own posts count.
2098
+ */
2099
+ untilDate?: string;
2100
+ /**
2101
+ * URL substring or domain filter.
2102
+ */
2103
+ url?: string;
2104
+ /**
2105
+ * Only return tweets from verified authors.
2106
+ */
2107
+ verifiedOnly?: boolean;
2108
+ /**
2109
+ * Keeps Tweets from a recent window, such as 90m or 7d. Use a whole number & s, m,
2110
+ * h or d.
2111
+ */
2112
+ withinTime?: string;
2113
+ }
2114
+ export interface UserRetrieveBatchParams {
2115
+ /**
2116
+ * Match any comma-separated or line-separated bio term, ignoring case.
2117
+ */
2118
+ bioContains?: string;
2119
+ /**
2120
+ * Only return profiles X marks as blue verified. X marks many business &
2121
+ * government accounts blue too. Use verifiedType for 1 badge type.
2122
+ */
2123
+ blueVerifiedOnly?: boolean;
2124
+ /**
2125
+ * Only return profiles that publish an email outside free webmail, such as Gmail.
2126
+ */
2127
+ businessEmailOnly?: boolean;
2128
+ /**
2129
+ * Only return profiles with an email at one of these domains. Separate domains
2130
+ * with commas. Subdomains match.
2131
+ */
2132
+ emailDomains?: string;
2133
+ /**
2134
+ * Fields to keep in each row, comma-separated. Use dots for nested fields, such as
2135
+ * author.username. A list keeps the field in each item. Case & underscores do not
2136
+ * matter. A row that lacks a field leaves it out. Cursors, counts & diagnostics
2137
+ * always stay. An unknown name answers 400 unknown_field with the valid names,
2138
+ * before any read. The price stays the same. SDK row types then hold only the
2139
+ * named fields.
2140
+ */
2141
+ fields?: string;
2142
+ /**
2143
+ * Only return profiles that publish an email.
2144
+ */
2145
+ hasEmail?: boolean;
2146
+ /**
2147
+ * Only return profiles with a location.
2148
+ */
2149
+ hasLocation?: boolean;
2150
+ /**
2151
+ * Only return profiles with a website.
2152
+ */
2153
+ hasWebsite?: boolean;
2154
+ /**
2155
+ * Comma-separated numeric user IDs (1-100 values). Duplicate IDs are ignored while
2156
+ * preserving first-seen order.
2157
+ */
2158
+ ids?: string;
2159
+ /**
2160
+ * Match a location substring, ignoring case.
2161
+ */
2162
+ locationContains?: string;
2163
+ /**
2164
+ * Maximum follower count. Missing counts pass this maximum.
2165
+ */
2166
+ maxFollowers?: number;
2167
+ /**
2168
+ * Profiles may follow at most this many accounts.
2169
+ */
2170
+ maxFollowing?: number;
2171
+ /**
2172
+ * Maximum post count. maxPosts is also accepted.
2173
+ */
2174
+ maxStatuses?: number;
2175
+ /**
2176
+ * Minimum account age in whole days.
2177
+ */
2178
+ minAccountAgeDays?: number;
2179
+ /**
2180
+ * Minimum follower count. Filtering happens before billing.
2181
+ */
2182
+ minFollowers?: number;
2183
+ /**
2184
+ * Profiles must follow at least this many accounts.
2185
+ */
2186
+ minFollowing?: number;
2187
+ /**
2188
+ * Minimum post count. minPosts is also accepted.
2189
+ */
2190
+ minStatuses?: number;
2191
+ /**
2192
+ * Fields to drop from each row, comma-separated. It takes the same names as
2193
+ * fields. With fields, it drops from the kept fields.
2194
+ */
2195
+ omit?: string;
2196
+ /**
2197
+ * Match a username substring, ignoring case.
2198
+ */
2199
+ usernameContains?: string;
2200
+ /**
2201
+ * Comma-separated X usernames, with or without @, or profile links such as
2202
+ * x.com/nasa (1-100 values), in place of ids. A name in another case is the same
2203
+ * account.
2204
+ */
2205
+ usernames?: string;
2206
+ /**
2207
+ * Only return verified profiles.
2208
+ */
2209
+ verifiedOnly?: boolean;
2210
+ /**
2211
+ * Match the verification type exactly, ignoring case.
2212
+ */
2213
+ verifiedType?: string;
2214
+ }
2215
+ export interface UserRetrieveBatchTweetsParams {
2216
+ /**
2217
+ * Fields to keep in each row, comma-separated. Use dots for nested fields, such as
2218
+ * author.username. A list keeps the field in each item. Case & underscores do not
2219
+ * matter. A row that lacks a field leaves it out. Cursors, counts & diagnostics
2220
+ * always stay. An unknown name answers 400 unknown_field with the valid names,
2221
+ * before any read. The price stays the same. SDK row types then hold only the
2222
+ * named fields.
2223
+ */
2224
+ fields?: string;
2225
+ /**
2226
+ * Comma-separated numeric user IDs (1-20 values). Duplicate IDs are ignored while
2227
+ * preserving first-seen order.
2228
+ */
2229
+ ids?: string;
2230
+ /**
2231
+ * Fields to drop from each row, comma-separated. It takes the same names as
2232
+ * fields. With fields, it drops from the kept fields.
2233
+ */
2234
+ omit?: string;
2235
+ /**
2236
+ * Posts per user (1-20, default 20). Credits can return fewer. Aliases: limit,
2237
+ * count, max_results, maxItems, max_items & per_page.
2238
+ */
2239
+ pageSize?: number;
2240
+ /**
2241
+ * Comma-separated X usernames, with or without @, or profile links such as
2242
+ * x.com/nasa (1-20 values), in place of ids. A name in another case is the same
2243
+ * account.
2244
+ */
2245
+ usernames?: string;
2246
+ }
2247
+ export interface UserRetrieveFollowerIDsParams {
2248
+ /**
2249
+ * Pagination cursor for collection results. Also read as next_cursor, next_token,
2250
+ * pagination_token or continuation_token.
2251
+ */
2252
+ cursor?: string;
2253
+ /**
2254
+ * User IDs to request from this page (1-5000, default 5000). Credits can return
2255
+ * fewer. Follow next_cursor for more pages. Aliases: limit, count, max_results,
2256
+ * maxItems, max_items & per_page.
2257
+ */
2258
+ pageSize?: number;
2259
+ }
2260
+ export interface UserRetrieveFollowersParams {
2261
+ /**
2262
+ * Legacy cursor alias. Prefer cursor.
2263
+ */
2264
+ after?: string;
2265
+ /**
2266
+ * Match any comma-separated or line-separated bio term, ignoring case.
2267
+ */
2268
+ bioContains?: string;
2269
+ /**
2270
+ * Only return profiles X marks as blue verified. X marks many business &
2271
+ * government accounts blue too. Use verifiedType for 1 badge type.
2272
+ */
2273
+ blueVerifiedOnly?: boolean;
2274
+ /**
2275
+ * Only return profiles that publish an email outside free webmail, such as Gmail.
2276
+ */
2277
+ businessEmailOnly?: boolean;
2278
+ /**
2279
+ * Cursor from the previous response. Existing unprefixed cursors keep legacy
2280
+ * standard behavior. Pages can be empty before more rows; follow next_cursor. Also
2281
+ * read as next_cursor, next_token, pagination_token or continuation_token.
2282
+ */
2283
+ cursor?: string;
2284
+ /**
2285
+ * Only return profiles with an email at one of these domains. Separate domains
2286
+ * with commas. Subdomains match.
2287
+ */
2288
+ emailDomains?: string;
2289
+ /**
2290
+ * Add each row's full profile, as GET /x/users/{id} returns it. Pages take several
2291
+ * seconds longer.
2292
+ */
2293
+ enrichProfiles?: boolean;
2294
+ /**
2295
+ * Fields to keep in each row, comma-separated. Use dots for nested fields, such as
2296
+ * author.username. A list keeps the field in each item. Case & underscores do not
2297
+ * matter. A row that lacks a field leaves it out. Cursors, counts & diagnostics
2298
+ * always stay. An unknown name answers 400 unknown_field with the valid names,
2299
+ * before any read. The price stays the same. SDK row types then hold only the
2300
+ * named fields.
2301
+ */
2302
+ fields?: string;
2303
+ /**
2304
+ * Only return profiles that publish an email.
2305
+ */
2306
+ hasEmail?: boolean;
2307
+ /**
2308
+ * Only return profiles with a location.
2309
+ */
2310
+ hasLocation?: boolean;
2311
+ /**
2312
+ * Only return profiles with a website.
2313
+ */
2314
+ hasWebsite?: boolean;
2315
+ /**
2316
+ * Legacy page-size alias outside coverage mode. Coverage accepts 1-10000. Prefer
2317
+ * pageSize.
2318
+ */
2319
+ limit?: number;
2320
+ /**
2321
+ * Match a location substring, ignoring case.
2322
+ */
2323
+ locationContains?: string;
2324
+ /**
2325
+ * Maximum follower count. Missing counts pass this maximum.
2326
+ */
2327
+ maxFollowers?: number;
2328
+ /**
2329
+ * Profiles may follow at most this many accounts.
2330
+ */
2331
+ maxFollowing?: number;
2332
+ /**
2333
+ * Most profiles 1 request reads, kept or dropped by the filters. A filter that
2334
+ * keeps few profiles reads up to 65 s a request without it. The request then
2335
+ * answers the profiles it kept, the count it dropped & the cursor to read on. Each
2336
+ * request of a cursor may send its own value. Automatic mode only.
2337
+ */
2338
+ maxScan?: number;
2339
+ /**
2340
+ * Maximum post count. maxPosts is also accepted.
2341
+ */
2342
+ maxStatuses?: number;
2343
+ /**
2344
+ * Minimum account age in whole days.
2345
+ */
2346
+ minAccountAgeDays?: number;
2347
+ /**
2348
+ * Minimum follower count. Filtering happens before billing.
2349
+ */
2350
+ minFollowers?: number;
2351
+ /**
2352
+ * Profiles must follow at least this many accounts.
2353
+ */
2354
+ minFollowing?: number;
2355
+ /**
2356
+ * Minimum post count. minPosts is also accepted.
2357
+ */
2358
+ minStatuses?: number;
2359
+ /**
2360
+ * Omit mode for resumable maximum coverage. Standard keeps legacy pagination.
2361
+ * Coverage returns diagnostics once and rejects cursors.
2362
+ */
2363
+ mode?: 'standard' | 'coverage';
2364
+ /**
2365
+ * Fields to drop from each row, comma-separated. It takes the same names as
2366
+ * fields. With fields, it drops from the kept fields.
2367
+ */
2368
+ omit?: string;
2369
+ /**
2370
+ * Up to 300 user profiles in automatic mode, 200 in standard. Sources can return
2371
+ * fewer. Follow next_cursor for more pages. Aliases: limit, count, max_results,
2372
+ * maxItems, max_items & per_page.
2373
+ */
2374
+ pageSize?: number;
2375
+ /**
2376
+ * Match a username substring, ignoring case.
2377
+ */
2378
+ usernameContains?: string;
2379
+ /**
2380
+ * Only return verified profiles.
2381
+ */
2382
+ verifiedOnly?: boolean;
2383
+ /**
2384
+ * Match the verification type exactly, ignoring case.
2385
+ */
2386
+ verifiedType?: string;
2387
+ }
2388
+ export interface UserRetrieveFollowersYouKnowParams {
2389
+ /**
2390
+ * Match any comma-separated or line-separated bio term, ignoring case.
2391
+ */
2392
+ bioContains?: string;
2393
+ /**
2394
+ * Only return profiles X marks as blue verified. X marks many business &
2395
+ * government accounts blue too. Use verifiedType for 1 badge type.
2396
+ */
2397
+ blueVerifiedOnly?: boolean;
2398
+ /**
2399
+ * Only return profiles that publish an email outside free webmail, such as Gmail.
2400
+ */
2401
+ businessEmailOnly?: boolean;
2402
+ /**
2403
+ * Pagination cursor for collection results. Also read as next_cursor, next_token,
2404
+ * pagination_token or continuation_token.
2405
+ */
2406
+ cursor?: string;
2407
+ /**
2408
+ * Only return profiles with an email at one of these domains. Separate domains
2409
+ * with commas. Subdomains match.
2410
+ */
2411
+ emailDomains?: string;
2412
+ /**
2413
+ * Fields to keep in each row, comma-separated. Use dots for nested fields, such as
2414
+ * author.username. A list keeps the field in each item. Case & underscores do not
2415
+ * matter. A row that lacks a field leaves it out. Cursors, counts & diagnostics
2416
+ * always stay. An unknown name answers 400 unknown_field with the valid names,
2417
+ * before any read. The price stays the same. SDK row types then hold only the
2418
+ * named fields.
2419
+ */
2420
+ fields?: string;
2421
+ /**
2422
+ * Only return profiles that publish an email.
2423
+ */
2424
+ hasEmail?: boolean;
2425
+ /**
2426
+ * Only return profiles with a location.
2427
+ */
2428
+ hasLocation?: boolean;
2429
+ /**
2430
+ * Only return profiles with a website.
2431
+ */
2432
+ hasWebsite?: boolean;
2433
+ /**
2434
+ * Match a location substring, ignoring case.
2435
+ */
2436
+ locationContains?: string;
2437
+ /**
2438
+ * Maximum follower count. Missing counts pass this maximum.
2439
+ */
2440
+ maxFollowers?: number;
2441
+ /**
2442
+ * Profiles may follow at most this many accounts.
2443
+ */
2444
+ maxFollowing?: number;
2445
+ /**
2446
+ * Maximum post count. maxPosts is also accepted.
2447
+ */
2448
+ maxStatuses?: number;
2449
+ /**
2450
+ * Minimum account age in whole days.
2451
+ */
2452
+ minAccountAgeDays?: number;
2453
+ /**
2454
+ * Minimum follower count. Filtering happens before billing.
2455
+ */
2456
+ minFollowers?: number;
2457
+ /**
2458
+ * Profiles must follow at least this many accounts.
2459
+ */
2460
+ minFollowing?: number;
2461
+ /**
2462
+ * Minimum post count. minPosts is also accepted.
2463
+ */
2464
+ minStatuses?: number;
2465
+ /**
2466
+ * Fields to drop from each row, comma-separated. It takes the same names as
2467
+ * fields. With fields, it drops from the kept fields.
2468
+ */
2469
+ omit?: string;
2470
+ /**
2471
+ * Profiles to request from this page (1-200, default 200). Source, filters or
2472
+ * credits can return fewer. Follow next_cursor for more pages. Aliases: limit,
2473
+ * count, max_results, maxItems, max_items & per_page.
2474
+ */
2475
+ pageSize?: number;
2476
+ /**
2477
+ * Match a username substring, ignoring case.
2478
+ */
2479
+ usernameContains?: string;
2480
+ /**
2481
+ * Only return verified profiles.
2482
+ */
2483
+ verifiedOnly?: boolean;
2484
+ /**
2485
+ * Match the verification type exactly, ignoring case.
2486
+ */
2487
+ verifiedType?: string;
2488
+ }
2489
+ export interface UserRetrieveFollowingParams {
2490
+ /**
2491
+ * Legacy cursor alias. Prefer cursor.
2492
+ */
2493
+ after?: string;
2494
+ /**
2495
+ * Match any comma-separated or line-separated bio term, ignoring case.
2496
+ */
2497
+ bioContains?: string;
2498
+ /**
2499
+ * Only return profiles X marks as blue verified. X marks many business &
2500
+ * government accounts blue too. Use verifiedType for 1 badge type.
2501
+ */
2502
+ blueVerifiedOnly?: boolean;
2503
+ /**
2504
+ * Only return profiles that publish an email outside free webmail, such as Gmail.
2505
+ */
2506
+ businessEmailOnly?: boolean;
2507
+ /**
2508
+ * Cursor from the previous response. Existing unprefixed cursors keep legacy
2509
+ * standard behavior. Pages can be empty before more rows; follow next_cursor. Also
2510
+ * read as next_cursor, next_token, pagination_token or continuation_token.
2511
+ */
2512
+ cursor?: string;
2513
+ /**
2514
+ * Only return profiles with an email at one of these domains. Separate domains
2515
+ * with commas. Subdomains match.
2516
+ */
2517
+ emailDomains?: string;
2518
+ /**
2519
+ * Add each row's full profile, as GET /x/users/{id} returns it. Pages take several
2520
+ * seconds longer.
2521
+ */
2522
+ enrichProfiles?: boolean;
2523
+ /**
2524
+ * Fields to keep in each row, comma-separated. Use dots for nested fields, such as
2525
+ * author.username. A list keeps the field in each item. Case & underscores do not
2526
+ * matter. A row that lacks a field leaves it out. Cursors, counts & diagnostics
2527
+ * always stay. An unknown name answers 400 unknown_field with the valid names,
2528
+ * before any read. The price stays the same. SDK row types then hold only the
2529
+ * named fields.
2530
+ */
2531
+ fields?: string;
2532
+ /**
2533
+ * Only return profiles that publish an email.
2534
+ */
2535
+ hasEmail?: boolean;
2536
+ /**
2537
+ * Only return profiles with a location.
2538
+ */
2539
+ hasLocation?: boolean;
2540
+ /**
2541
+ * Only return profiles with a website.
2542
+ */
2543
+ hasWebsite?: boolean;
2544
+ /**
2545
+ * Legacy page-size alias outside coverage mode. Coverage accepts 1-10000. Prefer
2546
+ * pageSize.
2547
+ */
2548
+ limit?: number;
2549
+ /**
2550
+ * Match a location substring, ignoring case.
2551
+ */
2552
+ locationContains?: string;
2553
+ /**
2554
+ * Maximum follower count. Missing counts pass this maximum.
2555
+ */
2556
+ maxFollowers?: number;
2557
+ /**
2558
+ * Profiles may follow at most this many accounts.
2559
+ */
2560
+ maxFollowing?: number;
2561
+ /**
2562
+ * Most profiles 1 request reads, kept or dropped by the filters. A filter that
2563
+ * keeps few profiles reads up to 65 s a request without it. The request then
2564
+ * answers the profiles it kept, the count it dropped & the cursor to read on. Each
2565
+ * request of a cursor may send its own value. Automatic mode only.
2566
+ */
2567
+ maxScan?: number;
2568
+ /**
2569
+ * Maximum post count. maxPosts is also accepted.
2570
+ */
2571
+ maxStatuses?: number;
2572
+ /**
2573
+ * Minimum account age in whole days.
2574
+ */
2575
+ minAccountAgeDays?: number;
2576
+ /**
2577
+ * Minimum follower count. Filtering happens before billing.
2578
+ */
2579
+ minFollowers?: number;
2580
+ /**
2581
+ * Profiles must follow at least this many accounts.
2582
+ */
2583
+ minFollowing?: number;
2584
+ /**
2585
+ * Minimum post count. minPosts is also accepted.
2586
+ */
2587
+ minStatuses?: number;
2588
+ /**
2589
+ * Omit mode for resumable maximum coverage. Standard keeps legacy pagination.
2590
+ * Coverage returns diagnostics once and rejects cursors.
2591
+ */
2592
+ mode?: 'standard' | 'coverage';
2593
+ /**
2594
+ * Fields to drop from each row, comma-separated. It takes the same names as
2595
+ * fields. With fields, it drops from the kept fields.
2596
+ */
2597
+ omit?: string;
2598
+ /**
2599
+ * Up to 300 user profiles in automatic mode, 200 in standard. Sources can return
2600
+ * fewer. Follow next_cursor for more pages. Aliases: limit, count, max_results,
2601
+ * maxItems, max_items & per_page.
2602
+ */
2603
+ pageSize?: number;
2604
+ /**
2605
+ * Match a username substring, ignoring case.
2606
+ */
2607
+ usernameContains?: string;
2608
+ /**
2609
+ * Only return verified profiles.
2610
+ */
2611
+ verifiedOnly?: boolean;
2612
+ /**
2613
+ * Match the verification type exactly, ignoring case.
2614
+ */
2615
+ verifiedType?: string;
2616
+ }
2617
+ export interface UserRetrieveFollowingIDsParams {
2618
+ /**
2619
+ * Pagination cursor for collection results. Also read as next_cursor, next_token,
2620
+ * pagination_token or continuation_token.
2621
+ */
2622
+ cursor?: string;
2623
+ /**
2624
+ * User IDs to request from this page (1-5000, default 5000). Credits can return
2625
+ * fewer. Follow next_cursor for more pages. Aliases: limit, count, max_results,
2626
+ * maxItems, max_items & per_page.
2627
+ */
2628
+ pageSize?: number;
2629
+ }
2630
+ export interface UserRetrieveHighlightsParams {
2631
+ /**
2632
+ * Words or quoted phrases where any one can match. Separate with spaces, commas,
2633
+ * or lines.
2634
+ */
2635
+ anyWords?: string;
2636
+ /**
2637
+ * Only return tweets from Blue-verified authors.
2638
+ */
2639
+ blueVerifiedOnly?: boolean;
2640
+ /**
2641
+ * Cashtags separated by spaces, commas, or lines.
2642
+ */
2643
+ cashtags?: string;
2644
+ /**
2645
+ * Conversation ID filter.
2646
+ */
2647
+ conversationId?: string;
2648
+ /**
2649
+ * Pagination cursor for collection results. Also read as next_cursor, next_token,
2650
+ * pagination_token or continuation_token.
2651
+ */
2652
+ cursor?: string;
2653
+ /**
2654
+ * Match this literal phrase, including any hyphens.
2655
+ */
2656
+ exactPhrase?: string;
2657
+ /**
2658
+ * Words or quoted phrases to exclude. Separate with spaces, commas, or lines.
2659
+ */
2660
+ excludeWords?: string;
2661
+ /**
2662
+ * Fields to keep in each row, comma-separated. Use dots for nested fields, such as
2663
+ * author.username. A list keeps the field in each item. Case & underscores do not
2664
+ * matter. A row that lacks a field leaves it out. Cursors, counts & diagnostics
2665
+ * always stay. An unknown name answers 400 unknown_field with the valid names,
2666
+ * before any read. The price stays the same. SDK row types then hold only the
2667
+ * named fields.
2668
+ */
2669
+ fields?: string;
2670
+ /**
2671
+ * Filter by author username.
2672
+ */
2673
+ fromUser?: string;
2674
+ /**
2675
+ * Hashtags separated by spaces, commas, or lines.
2676
+ */
2677
+ hashtags?: string;
2678
+ /**
2679
+ * Only replies to this tweet ID.
2680
+ */
2681
+ inReplyToTweetId?: string;
2682
+ /**
2683
+ * Filter by language. Alias `lang` is accepted.
2684
+ */
2685
+ language?: string;
2686
+ /**
2687
+ * Maximum likes threshold. maxLikes & max_likes also work.
2688
+ */
2689
+ maxFaves?: number;
2690
+ /**
2691
+ * Return Tweets at or below this ID.
2692
+ */
2693
+ maxId?: string;
2694
+ /**
2695
+ * Maximum quotes threshold.
2696
+ */
2697
+ maxQuotes?: number;
2698
+ /**
2699
+ * Maximum replies threshold.
2700
+ */
2701
+ maxReplies?: number;
2702
+ /**
2703
+ * Maximum retweets threshold.
2704
+ */
2705
+ maxRetweets?: number;
2706
+ /**
2707
+ * Filter media. Aliases: has_video, has_media.
2708
+ */
2709
+ mediaType?: 'images' | 'videos' | 'gifs' | 'media' | 'links' | 'none';
2710
+ /**
2711
+ * Filter tweets mentioning a username.
2712
+ */
2713
+ mentioning?: string;
2714
+ /**
2715
+ * Minimum bookmark count threshold.
2716
+ */
2717
+ minBookmarks?: number;
2718
+ /**
2719
+ * Minimum likes. Aliases: minFaves, min_likes, min_faves.
570
2720
  */
571
- bioContains?: string;
2721
+ minLikes?: number;
572
2722
  /**
573
- * Cursor from the previous response. Xquik cursors resume automatic coverage.
574
- * Existing unprefixed cursors keep legacy standard behavior.
2723
+ * Minimum quote count threshold.
575
2724
  */
576
- cursor?: string;
2725
+ minQuotes?: number;
577
2726
  /**
578
- * Only return profiles with a location.
2727
+ * Minimum replies threshold.
579
2728
  */
580
- hasLocation?: boolean;
2729
+ minReplies?: number;
581
2730
  /**
582
- * Only return profiles with a website.
2731
+ * Minimum retweets threshold.
583
2732
  */
584
- hasWebsite?: boolean;
2733
+ minRetweets?: number;
585
2734
  /**
586
- * Legacy page-size alias outside explicit coverage mode. Coverage accepts 1-10000.
587
- * Prefer pageSize.
2735
+ * Minimum view count threshold.
588
2736
  */
589
- limit?: number;
2737
+ minViews?: number;
590
2738
  /**
591
- * Match a location substring, ignoring case.
2739
+ * Only return native reposts.
592
2740
  */
593
- locationContains?: string;
2741
+ nativeRetweets?: boolean;
594
2742
  /**
595
- * Maximum follower count. Missing counts pass this maximum.
2743
+ * Fields to drop from each row, comma-separated. It takes the same names as
2744
+ * fields. With fields, it drops from the kept fields.
596
2745
  */
597
- maxFollowers?: number;
2746
+ omit?: string;
598
2747
  /**
599
- * Maximum following count.
2748
+ * Items per page (1-100, default 20). Source, filters or credits can return fewer.
2749
+ * Follow next_cursor for more pages. Aliases: limit, count, max_results, maxItems,
2750
+ * max_items & per_page.
600
2751
  */
601
- maxFollowing?: number;
2752
+ pageSize?: number;
602
2753
  /**
603
- * Maximum post count. maxPosts is also accepted.
2754
+ * Only when the caller requests a quote mode.
604
2755
  */
605
- maxStatuses?: number;
2756
+ quotes?: 'include' | 'exclude' | 'only';
606
2757
  /**
607
- * Minimum account age in whole days.
2758
+ * Only quotes of this tweet ID.
608
2759
  */
609
- minAccountAgeDays?: number;
2760
+ quotesOfTweetId?: string;
610
2761
  /**
611
- * Minimum follower count. Filtering happens before billing.
2762
+ * Reply mode. Exclude keeps own-thread replies.
612
2763
  */
613
- minFollowers?: number;
2764
+ replies?: 'include' | 'exclude' | 'only';
614
2765
  /**
615
- * Minimum following count.
2766
+ * Only when the caller requests a repost mode.
616
2767
  */
617
- minFollowing?: number;
2768
+ retweets?: 'include' | 'exclude' | 'only';
618
2769
  /**
619
- * Minimum post count. minPosts is also accepted.
2770
+ * Only retweets of this tweet ID.
620
2771
  */
621
- minStatuses?: number;
2772
+ retweetsOfTweetId?: string;
622
2773
  /**
623
- * Omit mode for resumable maximum coverage. Standard keeps legacy pagination.
624
- * Coverage returns diagnostics once and rejects cursors.
2774
+ * Start date in YYYY-MM-DD format, as a UTC day.
625
2775
  */
626
- mode?: 'standard' | 'coverage';
2776
+ sinceDate?: string;
627
2777
  /**
628
- * Maximum user profiles: automatic 300; standard 200. Sources return fewer
629
- * profiles. Continue with has_next_page.
2778
+ * Return Tweets whose IDs exceed this ID.
630
2779
  */
631
- pageSize?: number;
2780
+ sinceId?: string;
632
2781
  /**
633
- * Match a username substring, ignoring case.
2782
+ * Filter replies sent to a username.
634
2783
  */
635
- usernameContains?: string;
2784
+ toUser?: string;
636
2785
  /**
637
- * Only return verified profiles.
2786
+ * End date in YYYY-MM-DD format, as a UTC day, inclusive, so its own posts count.
2787
+ */
2788
+ untilDate?: string;
2789
+ /**
2790
+ * URL substring or domain filter.
2791
+ */
2792
+ url?: string;
2793
+ /**
2794
+ * Only return tweets from verified authors.
638
2795
  */
639
2796
  verifiedOnly?: boolean;
640
2797
  /**
641
- * Match the verification type exactly, ignoring case.
2798
+ * Keeps Tweets from a recent window, such as 90m or 7d. Use a whole number & s, m,
2799
+ * h or d.
642
2800
  */
643
- verifiedType?: string;
2801
+ withinTime?: string;
644
2802
  }
645
- export interface UserRetrieveFollowersYouKnowParams {
2803
+ export interface UserRetrieveInsightsParams {
646
2804
  /**
647
- * Match any comma-separated or line-separated bio term, ignoring case.
2805
+ * Fields to keep in each row, comma-separated. Use dots for nested fields, such as
2806
+ * author.username. A list keeps the field in each item. Case & underscores do not
2807
+ * matter. A row that lacks a field leaves it out. Cursors, counts & diagnostics
2808
+ * always stay. An unknown name answers 400 unknown_field with the valid names,
2809
+ * before any read. The price stays the same. SDK row types then hold only the
2810
+ * named fields.
648
2811
  */
649
- bioContains?: string;
2812
+ fields?: string;
2813
+ /**
2814
+ * Fields to drop from each row, comma-separated. It takes the same names as
2815
+ * fields. With fields, it drops from the kept fields.
2816
+ */
2817
+ omit?: string;
2818
+ }
2819
+ export interface UserRetrieveLikesParams {
2820
+ /**
2821
+ * Words or quoted phrases where any one can match. Separate with spaces, commas,
2822
+ * or lines.
2823
+ */
2824
+ anyWords?: string;
2825
+ /**
2826
+ * Only return tweets from Blue-verified authors.
2827
+ */
2828
+ blueVerifiedOnly?: boolean;
2829
+ /**
2830
+ * @deprecated This endpoint no longer documents this filter. Remove it.
2831
+ */
2832
+ cardName?: string;
2833
+ /**
2834
+ * Cashtags separated by spaces, commas, or lines.
2835
+ */
2836
+ cashtags?: string;
2837
+ /**
2838
+ * Conversation ID filter.
2839
+ */
2840
+ conversationId?: string;
650
2841
  /**
651
- * Pagination cursor for followers-you-know
2842
+ * Pagination cursor for collection results. Also read as next_cursor, next_token,
2843
+ * pagination_token or continuation_token.
652
2844
  */
653
2845
  cursor?: string;
654
2846
  /**
655
- * Only return profiles with a location.
2847
+ * Match this literal phrase, including any hyphens.
656
2848
  */
657
- hasLocation?: boolean;
2849
+ exactPhrase?: string;
658
2850
  /**
659
- * Only return profiles with a website.
2851
+ * @deprecated This endpoint no longer documents this filter. Remove it.
660
2852
  */
661
- hasWebsite?: boolean;
2853
+ excludeSource?: string;
662
2854
  /**
663
- * Match a location substring, ignoring case.
2855
+ * Words or quoted phrases to exclude. Separate with spaces, commas, or lines.
664
2856
  */
665
- locationContains?: string;
2857
+ excludeWords?: string;
666
2858
  /**
667
- * Maximum follower count. Missing counts pass this maximum.
2859
+ * Fields to keep in each row, comma-separated. Use dots for nested fields, such as
2860
+ * author.username. A list keeps the field in each item. Case & underscores do not
2861
+ * matter. A row that lacks a field leaves it out. Cursors, counts & diagnostics
2862
+ * always stay. An unknown name answers 400 unknown_field with the valid names,
2863
+ * before any read. The price stays the same. SDK row types then hold only the
2864
+ * named fields.
668
2865
  */
669
- maxFollowers?: number;
2866
+ fields?: string;
670
2867
  /**
671
- * Maximum following count.
2868
+ * Filter by author username.
672
2869
  */
673
- maxFollowing?: number;
2870
+ fromUser?: string;
674
2871
  /**
675
- * Maximum post count. maxPosts is also accepted.
2872
+ * @deprecated This endpoint no longer documents this filter. Remove it.
676
2873
  */
677
- maxStatuses?: number;
2874
+ geocode?: string;
678
2875
  /**
679
- * Minimum account age in whole days.
2876
+ * Hashtags separated by spaces, commas, or lines.
680
2877
  */
681
- minAccountAgeDays?: number;
2878
+ hashtags?: string;
682
2879
  /**
683
- * Minimum follower count. Filtering happens before billing.
2880
+ * Only replies to this tweet ID.
684
2881
  */
685
- minFollowers?: number;
2882
+ inReplyToTweetId?: string;
686
2883
  /**
687
- * Minimum following count.
2884
+ * Filter by language. Alias `lang` is accepted.
688
2885
  */
689
- minFollowing?: number;
2886
+ language?: string;
690
2887
  /**
691
- * Minimum post count. minPosts is also accepted.
2888
+ * Maximum likes threshold. maxLikes & max_likes also work.
692
2889
  */
693
- minStatuses?: number;
2890
+ maxFaves?: number;
2891
+ /**
2892
+ * Return Tweets at or below this ID.
2893
+ */
2894
+ maxId?: string;
2895
+ /**
2896
+ * Maximum quotes threshold.
2897
+ */
2898
+ maxQuotes?: number;
694
2899
  /**
695
- * Maximum user profiles requested from this page (20-200, default 200). Source,
696
- * filters, or credits can return fewer profiles. Keep requesting next_cursor while
697
- * has_next_page is true. Deprecated aliases remain accepted.
2900
+ * Maximum replies threshold.
2901
+ */
2902
+ maxReplies?: number;
2903
+ /**
2904
+ * Maximum retweets threshold.
2905
+ */
2906
+ maxRetweets?: number;
2907
+ /**
2908
+ * Filter media. Aliases: has_video, has_media.
2909
+ */
2910
+ mediaType?: 'images' | 'videos' | 'gifs' | 'media' | 'links' | 'none';
2911
+ /**
2912
+ * Filter tweets mentioning a username.
2913
+ */
2914
+ mentioning?: string;
2915
+ /**
2916
+ * Minimum bookmark count threshold.
2917
+ */
2918
+ minBookmarks?: number;
2919
+ /**
2920
+ * @deprecated Use minLikes instead. The API still reads minFaves.
2921
+ */
2922
+ minFaves?: number;
2923
+ /**
2924
+ * Minimum likes. Aliases: minFaves, min_likes, min_faves.
2925
+ */
2926
+ minLikes?: number;
2927
+ /**
2928
+ * Minimum quote count threshold.
2929
+ */
2930
+ minQuotes?: number;
2931
+ /**
2932
+ * Minimum replies threshold.
2933
+ */
2934
+ minReplies?: number;
2935
+ /**
2936
+ * Minimum retweets threshold.
2937
+ */
2938
+ minRetweets?: number;
2939
+ /**
2940
+ * Minimum view count threshold.
2941
+ */
2942
+ minViews?: number;
2943
+ /**
2944
+ * Only return native reposts.
2945
+ */
2946
+ nativeRetweets?: boolean;
2947
+ /**
2948
+ * @deprecated This endpoint no longer documents this filter. Remove it.
2949
+ */
2950
+ near?: string;
2951
+ /**
2952
+ * @deprecated This endpoint no longer documents this filter. Remove it.
2953
+ */
2954
+ news?: boolean;
2955
+ /**
2956
+ * Fields to drop from each row, comma-separated. It takes the same names as
2957
+ * fields. With fields, it drops from the kept fields.
2958
+ */
2959
+ omit?: string;
2960
+ /**
2961
+ * Items per page (1-100, default 20). Source, filters or credits can return fewer.
2962
+ * Follow next_cursor for more pages. Aliases: limit, count, max_results, maxItems,
2963
+ * max_items & per_page.
698
2964
  */
699
2965
  pageSize?: number;
700
2966
  /**
701
- * Match a username substring, ignoring case.
2967
+ * Only when the caller requests a quote mode.
702
2968
  */
703
- usernameContains?: string;
2969
+ quotes?: 'include' | 'exclude' | 'only';
704
2970
  /**
705
- * Only return verified profiles.
2971
+ * Only quotes of this tweet ID.
706
2972
  */
707
- verifiedOnly?: boolean;
2973
+ quotesOfTweetId?: string;
708
2974
  /**
709
- * Match the verification type exactly, ignoring case.
2975
+ * Reply mode. Exclude keeps own-thread replies.
710
2976
  */
711
- verifiedType?: string;
712
- }
713
- export interface UserRetrieveFollowingParams {
2977
+ replies?: 'include' | 'exclude' | 'only';
714
2978
  /**
715
- * Deprecated following cursor alias. Prefer cursor.
2979
+ * Only when the caller requests a repost mode.
716
2980
  */
717
- after?: string;
2981
+ retweets?: 'include' | 'exclude' | 'only';
718
2982
  /**
719
- * Match any comma-separated or line-separated bio term, ignoring case.
2983
+ * Only retweets of this tweet ID.
720
2984
  */
721
- bioContains?: string;
2985
+ retweetsOfTweetId?: string;
722
2986
  /**
723
- * Cursor from the previous response. Xquik cursors resume automatic coverage.
724
- * Existing unprefixed cursors keep legacy standard behavior.
2987
+ * @deprecated This endpoint no longer documents this filter. Remove it.
725
2988
  */
726
- cursor?: string;
2989
+ safe?: boolean;
727
2990
  /**
728
- * Only return profiles with a location.
2991
+ * Start date in YYYY-MM-DD format, as a UTC day.
729
2992
  */
730
- hasLocation?: boolean;
2993
+ sinceDate?: string;
731
2994
  /**
732
- * Only return profiles with a website.
2995
+ * Return Tweets whose IDs exceed this ID.
733
2996
  */
734
- hasWebsite?: boolean;
2997
+ sinceId?: string;
735
2998
  /**
736
- * Legacy page-size alias outside explicit coverage mode. Coverage accepts 1-10000.
737
- * Prefer pageSize.
2999
+ * @deprecated This endpoint no longer documents this filter. Remove it.
738
3000
  */
739
- limit?: number;
3001
+ source?: string;
740
3002
  /**
741
- * Match a location substring, ignoring case.
3003
+ * Filter replies sent to a username.
742
3004
  */
743
- locationContains?: string;
3005
+ toUser?: string;
744
3006
  /**
745
- * Maximum follower count. Missing counts pass this maximum.
3007
+ * End date in YYYY-MM-DD format, as a UTC day, inclusive, so its own posts count.
746
3008
  */
747
- maxFollowers?: number;
3009
+ untilDate?: string;
748
3010
  /**
749
- * Maximum following count.
3011
+ * URL substring or domain filter.
750
3012
  */
751
- maxFollowing?: number;
3013
+ url?: string;
752
3014
  /**
753
- * Maximum post count. maxPosts is also accepted.
3015
+ * Only return tweets from verified authors.
754
3016
  */
755
- maxStatuses?: number;
3017
+ verifiedOnly?: boolean;
756
3018
  /**
757
- * Minimum account age in whole days.
3019
+ * @deprecated This endpoint no longer documents this filter. Remove it.
758
3020
  */
759
- minAccountAgeDays?: number;
3021
+ within?: string;
760
3022
  /**
761
- * Minimum follower count. Filtering happens before billing.
3023
+ * Keeps Tweets from a recent window, such as 90m or 7d. Use a whole number & s, m,
3024
+ * h or d.
762
3025
  */
763
- minFollowers?: number;
3026
+ withinTime?: string;
3027
+ }
3028
+ export interface UserRetrieveListMembershipsParams {
764
3029
  /**
765
- * Minimum following count.
3030
+ * Pagination cursor for collection results. Also read as next_cursor, next_token,
3031
+ * pagination_token or continuation_token.
766
3032
  */
767
- minFollowing?: number;
3033
+ cursor?: string;
768
3034
  /**
769
- * Minimum post count. minPosts is also accepted.
3035
+ * Fields to keep in each row, comma-separated. Use dots for nested fields, such as
3036
+ * author.username. A list keeps the field in each item. Case & underscores do not
3037
+ * matter. A row that lacks a field leaves it out. Cursors, counts & diagnostics
3038
+ * always stay. An unknown name answers 400 unknown_field with the valid names,
3039
+ * before any read. The price stays the same. SDK row types then hold only the
3040
+ * named fields.
770
3041
  */
771
- minStatuses?: number;
3042
+ fields?: string;
772
3043
  /**
773
- * Omit mode for resumable maximum coverage. Standard keeps legacy pagination.
774
- * Coverage returns diagnostics once and rejects cursors.
3044
+ * Fields to drop from each row, comma-separated. It takes the same names as
3045
+ * fields. With fields, it drops from the kept fields.
775
3046
  */
776
- mode?: 'standard' | 'coverage';
3047
+ omit?: string;
777
3048
  /**
778
- * Maximum user profiles: automatic 300; standard 200. Sources return fewer
779
- * profiles. Continue with has_next_page.
3049
+ * Items per page (1-100, default 20). Source, filters or credits can return fewer.
3050
+ * Follow next_cursor for more pages. Aliases: limit, count, max_results, maxItems,
3051
+ * max_items & per_page.
780
3052
  */
781
3053
  pageSize?: number;
3054
+ }
3055
+ export interface UserRetrieveListsParams {
782
3056
  /**
783
- * Match a username substring, ignoring case.
3057
+ * Pagination cursor for collection results. Also read as next_cursor, next_token,
3058
+ * pagination_token or continuation_token.
784
3059
  */
785
- usernameContains?: string;
3060
+ cursor?: string;
786
3061
  /**
787
- * Only return verified profiles.
3062
+ * Fields to keep in each row, comma-separated. Use dots for nested fields, such as
3063
+ * author.username. A list keeps the field in each item. Case & underscores do not
3064
+ * matter. A row that lacks a field leaves it out. Cursors, counts & diagnostics
3065
+ * always stay. An unknown name answers 400 unknown_field with the valid names,
3066
+ * before any read. The price stays the same. SDK row types then hold only the
3067
+ * named fields.
788
3068
  */
789
- verifiedOnly?: boolean;
3069
+ fields?: string;
790
3070
  /**
791
- * Match the verification type exactly, ignoring case.
3071
+ * Fields to drop from each row, comma-separated. It takes the same names as
3072
+ * fields. With fields, it drops from the kept fields.
792
3073
  */
793
- verifiedType?: string;
3074
+ omit?: string;
3075
+ /**
3076
+ * Items per page (1-100, default 20). Source, filters or credits can return fewer.
3077
+ * Follow next_cursor for more pages. Aliases: limit, count, max_results, maxItems,
3078
+ * max_items & per_page.
3079
+ */
3080
+ pageSize?: number;
794
3081
  }
795
- export interface UserRetrieveLikesParams {
3082
+ export interface UserRetrieveLiveParams {
3083
+ /**
3084
+ * Fields to keep in each row, comma-separated. Use dots for nested fields, such as
3085
+ * author.username. A list keeps the field in each item. Case & underscores do not
3086
+ * matter. A row that lacks a field leaves it out. Cursors, counts & diagnostics
3087
+ * always stay. An unknown name answers 400 unknown_field with the valid names,
3088
+ * before any read. The price stays the same. SDK row types then hold only the
3089
+ * named fields.
3090
+ */
3091
+ fields?: string;
3092
+ /**
3093
+ * Fields to drop from each row, comma-separated. It takes the same names as
3094
+ * fields. With fields, it drops from the kept fields.
3095
+ */
3096
+ omit?: string;
3097
+ }
3098
+ export interface UserRetrieveMediaParams {
796
3099
  /**
797
3100
  * Words or quoted phrases where any one can match. Separate with spaces, commas,
798
3101
  * or lines.
@@ -803,7 +3106,7 @@ export interface UserRetrieveLikesParams {
803
3106
  */
804
3107
  blueVerifiedOnly?: boolean;
805
3108
  /**
806
- * Match the Tweet card name.
3109
+ * @deprecated This endpoint no longer documents this filter. Remove it.
807
3110
  */
808
3111
  cardName?: string;
809
3112
  /**
@@ -815,27 +3118,37 @@ export interface UserRetrieveLikesParams {
815
3118
  */
816
3119
  conversationId?: string;
817
3120
  /**
818
- * Pagination cursor for liked tweets
3121
+ * Pagination cursor for collection results. Also read as next_cursor, next_token,
3122
+ * pagination_token or continuation_token.
819
3123
  */
820
3124
  cursor?: string;
821
3125
  /**
822
- * Exact phrase to match.
3126
+ * Match this literal phrase, including any hyphens.
823
3127
  */
824
3128
  exactPhrase?: string;
825
3129
  /**
826
- * Exclude a source application.
3130
+ * @deprecated This endpoint no longer documents this filter. Remove it.
827
3131
  */
828
3132
  excludeSource?: string;
829
3133
  /**
830
3134
  * Words or quoted phrases to exclude. Separate with spaces, commas, or lines.
831
3135
  */
832
3136
  excludeWords?: string;
3137
+ /**
3138
+ * Fields to keep in each row, comma-separated. Use dots for nested fields, such as
3139
+ * author.username. A list keeps the field in each item. Case & underscores do not
3140
+ * matter. A row that lacks a field leaves it out. Cursors, counts & diagnostics
3141
+ * always stay. An unknown name answers 400 unknown_field with the valid names,
3142
+ * before any read. The price stays the same. SDK row types then hold only the
3143
+ * named fields.
3144
+ */
3145
+ fields?: string;
833
3146
  /**
834
3147
  * Filter by author username.
835
3148
  */
836
3149
  fromUser?: string;
837
3150
  /**
838
- * Match latitude, longitude, and radius.
3151
+ * @deprecated This endpoint no longer documents this filter. Remove it.
839
3152
  */
840
3153
  geocode?: string;
841
3154
  /**
@@ -847,15 +3160,15 @@ export interface UserRetrieveLikesParams {
847
3160
  */
848
3161
  inReplyToTweetId?: string;
849
3162
  /**
850
- * Language code filter, e.g. en or tr.
3163
+ * Filter by language. Alias `lang` is accepted.
851
3164
  */
852
3165
  language?: string;
853
3166
  /**
854
- * Maximum likes threshold. maxLikes is also accepted.
3167
+ * Maximum likes threshold. maxLikes & max_likes also work.
855
3168
  */
856
3169
  maxFaves?: number;
857
3170
  /**
858
- * Return Tweets older than this Tweet ID.
3171
+ * Return Tweets at or below this ID.
859
3172
  */
860
3173
  maxId?: string;
861
3174
  /**
@@ -871,7 +3184,7 @@ export interface UserRetrieveLikesParams {
871
3184
  */
872
3185
  maxRetweets?: number;
873
3186
  /**
874
- * Filter by media type.
3187
+ * Filter media. Aliases: has_video, has_media.
875
3188
  */
876
3189
  mediaType?: 'images' | 'videos' | 'gifs' | 'media' | 'links' | 'none';
877
3190
  /**
@@ -883,9 +3196,13 @@ export interface UserRetrieveLikesParams {
883
3196
  */
884
3197
  minBookmarks?: number;
885
3198
  /**
886
- * Minimum likes threshold. minLikes is also accepted.
3199
+ * @deprecated Use minLikes instead. The API still reads minFaves.
887
3200
  */
888
3201
  minFaves?: number;
3202
+ /**
3203
+ * Minimum likes. Aliases: minFaves, min_likes, min_faves.
3204
+ */
3205
+ minLikes?: number;
889
3206
  /**
890
3207
  * Minimum quote count threshold.
891
3208
  */
@@ -907,21 +3224,26 @@ export interface UserRetrieveLikesParams {
907
3224
  */
908
3225
  nativeRetweets?: boolean;
909
3226
  /**
910
- * Match a place name.
3227
+ * @deprecated This endpoint no longer documents this filter. Remove it.
911
3228
  */
912
3229
  near?: string;
913
3230
  /**
914
- * Only return news results.
3231
+ * @deprecated This endpoint no longer documents this filter. Remove it.
915
3232
  */
916
3233
  news?: boolean;
917
3234
  /**
918
- * Maximum page items (1-100, default 20). Source, filters, or credits can reduce
919
- * results. Continue while has_next_page is true. Deprecated limit and count
920
- * aliases remain accepted.
3235
+ * Fields to drop from each row, comma-separated. It takes the same names as
3236
+ * fields. With fields, it drops from the kept fields.
3237
+ */
3238
+ omit?: string;
3239
+ /**
3240
+ * Items per page (1-100, default 20). Source, filters or credits can return fewer.
3241
+ * Follow next_cursor for more pages. Aliases: limit, count, max_results, maxItems,
3242
+ * max_items & per_page.
921
3243
  */
922
3244
  pageSize?: number;
923
3245
  /**
924
- * Quote mode.
3246
+ * Only when the caller requests a quote mode.
925
3247
  */
926
3248
  quotes?: 'include' | 'exclude' | 'only';
927
3249
  /**
@@ -929,11 +3251,11 @@ export interface UserRetrieveLikesParams {
929
3251
  */
930
3252
  quotesOfTweetId?: string;
931
3253
  /**
932
- * Reply mode.
3254
+ * Reply mode. Exclude keeps own-thread replies.
933
3255
  */
934
3256
  replies?: 'include' | 'exclude' | 'only';
935
3257
  /**
936
- * Retweet mode.
3258
+ * Only when the caller requests a repost mode.
937
3259
  */
938
3260
  retweets?: 'include' | 'exclude' | 'only';
939
3261
  /**
@@ -941,19 +3263,19 @@ export interface UserRetrieveLikesParams {
941
3263
  */
942
3264
  retweetsOfTweetId?: string;
943
3265
  /**
944
- * Enable the safe-search filter.
3266
+ * @deprecated This endpoint no longer documents this filter. Remove it.
945
3267
  */
946
3268
  safe?: boolean;
947
3269
  /**
948
- * Start date in YYYY-MM-DD format.
3270
+ * Start date in YYYY-MM-DD format, as a UTC day.
949
3271
  */
950
3272
  sinceDate?: string;
951
3273
  /**
952
- * Return Tweets newer than this Tweet ID.
3274
+ * Return Tweets whose IDs exceed this ID.
953
3275
  */
954
3276
  sinceId?: string;
955
3277
  /**
956
- * Match the source application.
3278
+ * @deprecated This endpoint no longer documents this filter. Remove it.
957
3279
  */
958
3280
  source?: string;
959
3281
  /**
@@ -961,7 +3283,7 @@ export interface UserRetrieveLikesParams {
961
3283
  */
962
3284
  toUser?: string;
963
3285
  /**
964
- * End date in YYYY-MM-DD format.
3286
+ * End date in YYYY-MM-DD format, as a UTC day, inclusive, so its own posts count.
965
3287
  */
966
3288
  untilDate?: string;
967
3289
  /**
@@ -973,15 +3295,16 @@ export interface UserRetrieveLikesParams {
973
3295
  */
974
3296
  verifiedOnly?: boolean;
975
3297
  /**
976
- * Set the radius for the near filter.
3298
+ * @deprecated This endpoint no longer documents this filter. Remove it.
977
3299
  */
978
3300
  within?: string;
979
3301
  /**
980
- * Match Tweets inside a recent time window.
3302
+ * Keeps Tweets from a recent window, such as 90m or 7d. Use a whole number & s, m,
3303
+ * h or d.
981
3304
  */
982
3305
  withinTime?: string;
983
3306
  }
984
- export interface UserRetrieveMediaParams {
3307
+ export interface UserRetrieveMentionsParams {
985
3308
  /**
986
3309
  * Words or quoted phrases where any one can match. Separate with spaces, commas,
987
3310
  * or lines.
@@ -992,7 +3315,7 @@ export interface UserRetrieveMediaParams {
992
3315
  */
993
3316
  blueVerifiedOnly?: boolean;
994
3317
  /**
995
- * Match the Tweet card name.
3318
+ * @deprecated This endpoint no longer documents this filter. Remove it.
996
3319
  */
997
3320
  cardName?: string;
998
3321
  /**
@@ -1004,27 +3327,37 @@ export interface UserRetrieveMediaParams {
1004
3327
  */
1005
3328
  conversationId?: string;
1006
3329
  /**
1007
- * Pagination cursor for media tweets
3330
+ * Pagination cursor for collection results. Also read as next_cursor, next_token,
3331
+ * pagination_token or continuation_token.
1008
3332
  */
1009
3333
  cursor?: string;
1010
3334
  /**
1011
- * Exact phrase to match.
3335
+ * Match this literal phrase, including any hyphens.
1012
3336
  */
1013
3337
  exactPhrase?: string;
1014
3338
  /**
1015
- * Exclude a source application.
3339
+ * @deprecated This endpoint no longer documents this filter. Remove it.
1016
3340
  */
1017
3341
  excludeSource?: string;
1018
3342
  /**
1019
3343
  * Words or quoted phrases to exclude. Separate with spaces, commas, or lines.
1020
3344
  */
1021
3345
  excludeWords?: string;
3346
+ /**
3347
+ * Fields to keep in each row, comma-separated. Use dots for nested fields, such as
3348
+ * author.username. A list keeps the field in each item. Case & underscores do not
3349
+ * matter. A row that lacks a field leaves it out. Cursors, counts & diagnostics
3350
+ * always stay. An unknown name answers 400 unknown_field with the valid names,
3351
+ * before any read. The price stays the same. SDK row types then hold only the
3352
+ * named fields.
3353
+ */
3354
+ fields?: string;
1022
3355
  /**
1023
3356
  * Filter by author username.
1024
3357
  */
1025
3358
  fromUser?: string;
1026
3359
  /**
1027
- * Match latitude, longitude, and radius.
3360
+ * @deprecated This endpoint no longer documents this filter. Remove it.
1028
3361
  */
1029
3362
  geocode?: string;
1030
3363
  /**
@@ -1036,15 +3369,15 @@ export interface UserRetrieveMediaParams {
1036
3369
  */
1037
3370
  inReplyToTweetId?: string;
1038
3371
  /**
1039
- * Language code filter, e.g. en or tr.
3372
+ * Filter by language. Alias `lang` is accepted.
1040
3373
  */
1041
3374
  language?: string;
1042
3375
  /**
1043
- * Maximum likes threshold. maxLikes is also accepted.
3376
+ * Maximum likes threshold. maxLikes & max_likes also work.
1044
3377
  */
1045
3378
  maxFaves?: number;
1046
3379
  /**
1047
- * Return Tweets older than this Tweet ID.
3380
+ * Return Tweets at or below this ID.
1048
3381
  */
1049
3382
  maxId?: string;
1050
3383
  /**
@@ -1060,7 +3393,7 @@ export interface UserRetrieveMediaParams {
1060
3393
  */
1061
3394
  maxRetweets?: number;
1062
3395
  /**
1063
- * Filter by media type.
3396
+ * Filter media. Aliases: has_video, has_media.
1064
3397
  */
1065
3398
  mediaType?: 'images' | 'videos' | 'gifs' | 'media' | 'links' | 'none';
1066
3399
  /**
@@ -1072,9 +3405,13 @@ export interface UserRetrieveMediaParams {
1072
3405
  */
1073
3406
  minBookmarks?: number;
1074
3407
  /**
1075
- * Minimum likes threshold. minLikes is also accepted.
3408
+ * @deprecated Use minLikes instead. The API still reads minFaves.
1076
3409
  */
1077
3410
  minFaves?: number;
3411
+ /**
3412
+ * Minimum likes. Aliases: minFaves, min_likes, min_faves.
3413
+ */
3414
+ minLikes?: number;
1078
3415
  /**
1079
3416
  * Minimum quote count threshold.
1080
3417
  */
@@ -1096,21 +3433,26 @@ export interface UserRetrieveMediaParams {
1096
3433
  */
1097
3434
  nativeRetweets?: boolean;
1098
3435
  /**
1099
- * Match a place name.
3436
+ * @deprecated This endpoint no longer documents this filter. Remove it.
1100
3437
  */
1101
3438
  near?: string;
1102
3439
  /**
1103
- * Only return news results.
3440
+ * @deprecated This endpoint no longer documents this filter. Remove it.
1104
3441
  */
1105
3442
  news?: boolean;
1106
3443
  /**
1107
- * Maximum page items (1-100, default 20). Source, filters, or credits can reduce
1108
- * results. Continue while has_next_page is true. Deprecated limit and count
1109
- * aliases remain accepted.
3444
+ * Fields to drop from each row, comma-separated. It takes the same names as
3445
+ * fields. With fields, it drops from the kept fields.
3446
+ */
3447
+ omit?: string;
3448
+ /**
3449
+ * Items per page (1-100, default 20). Source, filters or credits can return fewer.
3450
+ * Follow next_cursor for more pages. Aliases: limit, count, max_results, maxItems,
3451
+ * max_items & per_page.
1110
3452
  */
1111
3453
  pageSize?: number;
1112
3454
  /**
1113
- * Quote mode.
3455
+ * Only when the caller requests a quote mode.
1114
3456
  */
1115
3457
  quotes?: 'include' | 'exclude' | 'only';
1116
3458
  /**
@@ -1118,11 +3460,11 @@ export interface UserRetrieveMediaParams {
1118
3460
  */
1119
3461
  quotesOfTweetId?: string;
1120
3462
  /**
1121
- * Reply mode.
3463
+ * Reply mode. Exclude keeps own-thread replies.
1122
3464
  */
1123
3465
  replies?: 'include' | 'exclude' | 'only';
1124
3466
  /**
1125
- * Retweet mode.
3467
+ * Only when the caller requests a repost mode.
1126
3468
  */
1127
3469
  retweets?: 'include' | 'exclude' | 'only';
1128
3470
  /**
@@ -1130,19 +3472,24 @@ export interface UserRetrieveMediaParams {
1130
3472
  */
1131
3473
  retweetsOfTweetId?: string;
1132
3474
  /**
1133
- * Enable the safe-search filter.
3475
+ * @deprecated This endpoint no longer documents this filter. Remove it.
1134
3476
  */
1135
3477
  safe?: boolean;
1136
3478
  /**
1137
- * Start date in YYYY-MM-DD format.
3479
+ * Start date in YYYY-MM-DD format, as a UTC day.
1138
3480
  */
1139
3481
  sinceDate?: string;
1140
3482
  /**
1141
- * Return Tweets newer than this Tweet ID.
3483
+ * Return Tweets whose IDs exceed this ID.
1142
3484
  */
1143
3485
  sinceId?: string;
1144
3486
  /**
1145
- * Match the source application.
3487
+ * Inclusive ISO bound for Tweet creation time, such as 2026-09-25T19:20:41Z. Unix
3488
+ * seconds also work. A time without an offset is UTC.
3489
+ */
3490
+ sinceTime?: string;
3491
+ /**
3492
+ * @deprecated This endpoint no longer documents this filter. Remove it.
1146
3493
  */
1147
3494
  source?: string;
1148
3495
  /**
@@ -1150,9 +3497,14 @@ export interface UserRetrieveMediaParams {
1150
3497
  */
1151
3498
  toUser?: string;
1152
3499
  /**
1153
- * End date in YYYY-MM-DD format.
3500
+ * End date in YYYY-MM-DD format, as a UTC day, inclusive, so its own posts count.
1154
3501
  */
1155
3502
  untilDate?: string;
3503
+ /**
3504
+ * Exclusive ISO bound for Tweet creation time. Unix seconds also work. A time
3505
+ * without an offset is UTC.
3506
+ */
3507
+ untilTime?: string;
1156
3508
  /**
1157
3509
  * URL substring or domain filter.
1158
3510
  */
@@ -1162,15 +3514,20 @@ export interface UserRetrieveMediaParams {
1162
3514
  */
1163
3515
  verifiedOnly?: boolean;
1164
3516
  /**
1165
- * Set the radius for the near filter.
3517
+ * @deprecated This endpoint no longer documents this filter. Remove it.
1166
3518
  */
1167
3519
  within?: string;
1168
3520
  /**
1169
- * Match Tweets inside a recent time window.
3521
+ * Keeps Tweets from a recent window, such as 90m or 7d. Use a whole number & s, m,
3522
+ * h or d.
1170
3523
  */
1171
3524
  withinTime?: string;
1172
3525
  }
1173
- export interface UserRetrieveMentionsParams {
3526
+ export interface UserRetrieveRepliesParams {
3527
+ /**
3528
+ * Raw advanced search query appended as-is.
3529
+ */
3530
+ advancedQuery?: string;
1174
3531
  /**
1175
3532
  * Words or quoted phrases where any one can match. Separate with spaces, commas,
1176
3533
  * or lines.
@@ -1181,7 +3538,12 @@ export interface UserRetrieveMentionsParams {
1181
3538
  */
1182
3539
  blueVerifiedOnly?: boolean;
1183
3540
  /**
1184
- * Match the Tweet card name.
3541
+ * Geo bounding box, e.g. -74.1 40.6 -73.9 40.8.
3542
+ */
3543
+ boundingBox?: string;
3544
+ /**
3545
+ * Keep only Tweets with this card type, such as poll2choice_text_only. Tweet
3546
+ * search checks each Tweet's card.
1185
3547
  */
1186
3548
  cardName?: string;
1187
3549
  /**
@@ -1193,47 +3555,74 @@ export interface UserRetrieveMentionsParams {
1193
3555
  */
1194
3556
  conversationId?: string;
1195
3557
  /**
1196
- * Pagination cursor for mentions
3558
+ * Cursor from the previous response. Existing unprefixed cursors keep legacy
3559
+ * standard behavior. Pages can be empty before more rows; follow next_cursor. Also
3560
+ * read as next_cursor, next_token, pagination_token or continuation_token.
1197
3561
  */
1198
3562
  cursor?: string;
1199
3563
  /**
1200
- * Exact phrase to match.
3564
+ * Match this literal phrase, including any hyphens.
1201
3565
  */
1202
3566
  exactPhrase?: string;
1203
3567
  /**
1204
- * Exclude a source application.
3568
+ * X search no longer supports excludeSource. A Tweet search with it answers 424 &
3569
+ * charges nothing.
1205
3570
  */
1206
3571
  excludeSource?: string;
1207
3572
  /**
1208
3573
  * Words or quoted phrases to exclude. Separate with spaces, commas, or lines.
1209
3574
  */
1210
3575
  excludeWords?: string;
3576
+ /**
3577
+ * Fields to keep in each row, comma-separated. Use dots for nested fields, such as
3578
+ * author.username. A list keeps the field in each item. Case & underscores do not
3579
+ * matter. A row that lacks a field leaves it out. Cursors, counts & diagnostics
3580
+ * always stay. An unknown name answers 400 unknown_field with the valid names,
3581
+ * before any read. The price stays the same. SDK row types then hold only the
3582
+ * named fields.
3583
+ */
3584
+ fields?: string;
1211
3585
  /**
1212
3586
  * Filter by author username.
1213
3587
  */
1214
3588
  fromUser?: string;
1215
3589
  /**
1216
- * Match latitude, longitude, and radius.
3590
+ * X search no longer supports geocode. A Tweet search with it answers 424 &
3591
+ * charges nothing.
1217
3592
  */
1218
3593
  geocode?: string;
1219
3594
  /**
1220
3595
  * Hashtags separated by spaces, commas, or lines.
1221
3596
  */
1222
3597
  hashtags?: string;
3598
+ /**
3599
+ * Include each reply's parent tweet as parentTweet on the reply. A reply whose
3600
+ * parent X does not return comes without it. Search-only filters such as keywords
3601
+ * do not apply with it.
3602
+ */
3603
+ includeParentTweet?: boolean;
1223
3604
  /**
1224
3605
  * Only replies to this tweet ID.
1225
3606
  */
1226
3607
  inReplyToTweetId?: string;
1227
3608
  /**
1228
- * Language code filter, e.g. en or tr.
3609
+ * Words the Tweets must match, in X search syntax.
3610
+ */
3611
+ keywords?: string;
3612
+ /**
3613
+ * Filter by language. Alias `lang` is accepted.
1229
3614
  */
1230
3615
  language?: string;
1231
3616
  /**
1232
- * Maximum likes threshold. maxLikes is also accepted.
3617
+ * Search within a list ID.
3618
+ */
3619
+ listId?: string;
3620
+ /**
3621
+ * Maximum likes threshold. maxLikes & max_likes also work.
1233
3622
  */
1234
3623
  maxFaves?: number;
1235
3624
  /**
1236
- * Return Tweets older than this Tweet ID.
3625
+ * Return Tweets at or below this ID.
1237
3626
  */
1238
3627
  maxId?: string;
1239
3628
  /**
@@ -1249,7 +3638,7 @@ export interface UserRetrieveMentionsParams {
1249
3638
  */
1250
3639
  maxRetweets?: number;
1251
3640
  /**
1252
- * Filter by media type.
3641
+ * Filter media. Aliases: has_video, has_media.
1253
3642
  */
1254
3643
  mediaType?: 'images' | 'videos' | 'gifs' | 'media' | 'links' | 'none';
1255
3644
  /**
@@ -1261,9 +3650,13 @@ export interface UserRetrieveMentionsParams {
1261
3650
  */
1262
3651
  minBookmarks?: number;
1263
3652
  /**
1264
- * Minimum likes threshold. minLikes is also accepted.
3653
+ * @deprecated Use minLikes instead. The API still reads minFaves.
1265
3654
  */
1266
3655
  minFaves?: number;
3656
+ /**
3657
+ * Minimum likes. Aliases: minFaves, min_likes, min_faves.
3658
+ */
3659
+ minLikes?: number;
1267
3660
  /**
1268
3661
  * Minimum quote count threshold.
1269
3662
  */
@@ -1280,6 +3673,11 @@ export interface UserRetrieveMentionsParams {
1280
3673
  * Minimum view count threshold.
1281
3674
  */
1282
3675
  minViews?: number;
3676
+ /**
3677
+ * Optional legacy pagination override. Search-only filters such as keywords apply
3678
+ * only without it.
3679
+ */
3680
+ mode?: 'standard';
1283
3681
  /**
1284
3682
  * Only return native reposts.
1285
3683
  */
@@ -1289,17 +3687,34 @@ export interface UserRetrieveMentionsParams {
1289
3687
  */
1290
3688
  near?: string;
1291
3689
  /**
1292
- * Only return news results.
3690
+ * X no longer searches filter:news.
1293
3691
  */
1294
3692
  news?: boolean;
1295
3693
  /**
1296
- * Maximum page items (1-100, default 20). Source, filters, or credits can reduce
1297
- * results. Continue while has_next_page is true. Deprecated limit and count
1298
- * aliases remain accepted.
3694
+ * Fields to drop from each row, comma-separated. It takes the same names as
3695
+ * fields. With fields, it drops from the kept fields.
3696
+ */
3697
+ omit?: string;
3698
+ /**
3699
+ * Automatic pages accept 1-300 Tweets, standard pages 1-100. Default 20. Follow
3700
+ * next_cursor for more pages. Aliases: limit, count, max_results, maxItems,
3701
+ * max_items & per_page.
1299
3702
  */
1300
3703
  pageSize?: number;
1301
3704
  /**
1302
- * Quote mode.
3705
+ * Search within a place ID.
3706
+ */
3707
+ place?: string;
3708
+ /**
3709
+ * Search within a country code.
3710
+ */
3711
+ placeCountry?: string;
3712
+ /**
3713
+ * Geo point radius, e.g. -73.99 40.73 25mi.
3714
+ */
3715
+ pointRadius?: string;
3716
+ /**
3717
+ * Only when the caller requests a quote mode.
1303
3718
  */
1304
3719
  quotes?: 'include' | 'exclude' | 'only';
1305
3720
  /**
@@ -1307,11 +3722,11 @@ export interface UserRetrieveMentionsParams {
1307
3722
  */
1308
3723
  quotesOfTweetId?: string;
1309
3724
  /**
1310
- * Reply mode.
3725
+ * Reply mode. Exclude keeps own-thread replies.
1311
3726
  */
1312
3727
  replies?: 'include' | 'exclude' | 'only';
1313
3728
  /**
1314
- * Retweet mode.
3729
+ * Only when the caller requests a repost mode.
1315
3730
  */
1316
3731
  retweets?: 'include' | 'exclude' | 'only';
1317
3732
  /**
@@ -1323,19 +3738,21 @@ export interface UserRetrieveMentionsParams {
1323
3738
  */
1324
3739
  safe?: boolean;
1325
3740
  /**
1326
- * Start date in YYYY-MM-DD format.
3741
+ * Start date in YYYY-MM-DD format, as a UTC day.
1327
3742
  */
1328
3743
  sinceDate?: string;
1329
3744
  /**
1330
- * Return Tweets newer than this Tweet ID.
3745
+ * Return Tweets whose IDs exceed this ID.
1331
3746
  */
1332
3747
  sinceId?: string;
1333
3748
  /**
1334
- * Unix timestamp - return mentions after this time
3749
+ * Inclusive ISO bound for Tweet creation time, such as 2026-09-25T19:20:41Z. Unix
3750
+ * seconds also work. A time without an offset is UTC.
1335
3751
  */
1336
3752
  sinceTime?: string;
1337
3753
  /**
1338
- * Match the source application.
3754
+ * X search no longer supports source. A Tweet search with it answers 424 & charges
3755
+ * nothing.
1339
3756
  */
1340
3757
  source?: string;
1341
3758
  /**
@@ -1343,11 +3760,12 @@ export interface UserRetrieveMentionsParams {
1343
3760
  */
1344
3761
  toUser?: string;
1345
3762
  /**
1346
- * End date in YYYY-MM-DD format.
3763
+ * End date in YYYY-MM-DD format, as a UTC day, inclusive, so its own posts count.
1347
3764
  */
1348
3765
  untilDate?: string;
1349
3766
  /**
1350
- * Unix timestamp - return mentions before this time
3767
+ * Exclusive ISO bound for Tweet creation time. Unix seconds also work. A time
3768
+ * without an offset is UTC.
1351
3769
  */
1352
3770
  untilTime?: string;
1353
3771
  /**
@@ -1359,220 +3777,264 @@ export interface UserRetrieveMentionsParams {
1359
3777
  */
1360
3778
  verifiedOnly?: boolean;
1361
3779
  /**
1362
- * Set the radius for the near filter.
3780
+ * X search no longer supports within. A Tweet search with it answers 424 & charges
3781
+ * nothing. Use near alone.
1363
3782
  */
1364
3783
  within?: string;
1365
3784
  /**
1366
- * Match Tweets inside a recent time window.
3785
+ * Keeps Tweets from a recent window, such as 90m or 7d. Use a whole number & s, m,
3786
+ * h or d.
1367
3787
  */
1368
3788
  withinTime?: string;
1369
3789
  }
1370
- export interface UserRetrieveRepliesParams {
3790
+ export interface UserRetrieveSearchParams {
1371
3791
  /**
1372
- * Words or quoted phrases where any one can match. Separate with spaces, commas,
1373
- * or lines.
3792
+ * User search query
1374
3793
  */
1375
- anyWords?: string;
3794
+ q: string;
1376
3795
  /**
1377
- * Only return tweets from Blue-verified authors.
3796
+ * Match any comma-separated or line-separated bio term, ignoring case.
1378
3797
  */
1379
- blueVerifiedOnly?: boolean;
3798
+ bioContains?: string;
1380
3799
  /**
1381
- * Match the Tweet card name.
3800
+ * Only return profiles X marks as blue verified. X marks many business &
3801
+ * government accounts blue too. Use verifiedType for 1 badge type.
1382
3802
  */
1383
- cardName?: string;
3803
+ blueVerifiedOnly?: boolean;
1384
3804
  /**
1385
- * Cashtags separated by spaces, commas, or lines.
3805
+ * Only return profiles that publish an email outside free webmail, such as Gmail.
1386
3806
  */
1387
- cashtags?: string;
3807
+ businessEmailOnly?: boolean;
1388
3808
  /**
1389
- * Conversation ID filter.
3809
+ * Pagination cursor for collection results. Also read as next_cursor, next_token,
3810
+ * pagination_token or continuation_token.
1390
3811
  */
1391
- conversationId?: string;
3812
+ cursor?: string;
1392
3813
  /**
1393
- * Cursor from the previous response. Xquik cursors resume automatic coverage.
1394
- * Existing unprefixed cursors keep legacy standard behavior.
3814
+ * Only return profiles with an email at one of these domains. Separate domains
3815
+ * with commas. Subdomains match.
1395
3816
  */
1396
- cursor?: string;
3817
+ emailDomains?: string;
1397
3818
  /**
1398
- * Exact phrase to match.
3819
+ * Add each row's full profile, as GET /x/users/{id} returns it. Pages take several
3820
+ * seconds longer.
1399
3821
  */
1400
- exactPhrase?: string;
3822
+ enrichProfiles?: boolean;
1401
3823
  /**
1402
- * Exclude a source application.
3824
+ * Fields to keep in each row, comma-separated. Use dots for nested fields, such as
3825
+ * author.username. A list keeps the field in each item. Case & underscores do not
3826
+ * matter. A row that lacks a field leaves it out. Cursors, counts & diagnostics
3827
+ * always stay. An unknown name answers 400 unknown_field with the valid names,
3828
+ * before any read. The price stays the same. SDK row types then hold only the
3829
+ * named fields.
1403
3830
  */
1404
- excludeSource?: string;
3831
+ fields?: string;
1405
3832
  /**
1406
- * Words or quoted phrases to exclude. Separate with spaces, commas, or lines.
3833
+ * Only return profiles that publish an email.
1407
3834
  */
1408
- excludeWords?: string;
3835
+ hasEmail?: boolean;
1409
3836
  /**
1410
- * Filter by author username.
3837
+ * Only return profiles with a location.
1411
3838
  */
1412
- fromUser?: string;
3839
+ hasLocation?: boolean;
1413
3840
  /**
1414
- * Match latitude, longitude, and radius.
3841
+ * Only return profiles with a website.
1415
3842
  */
1416
- geocode?: string;
3843
+ hasWebsite?: boolean;
1417
3844
  /**
1418
- * Hashtags separated by spaces, commas, or lines.
3845
+ * Match a location substring, ignoring case.
1419
3846
  */
1420
- hashtags?: string;
3847
+ locationContains?: string;
1421
3848
  /**
1422
- * Include each reply's parent tweet.
3849
+ * Maximum follower count. Missing counts pass this maximum.
1423
3850
  */
1424
- includeParentTweet?: boolean;
3851
+ maxFollowers?: number;
1425
3852
  /**
1426
- * Only replies to this tweet ID.
3853
+ * Profiles may follow at most this many accounts.
1427
3854
  */
1428
- inReplyToTweetId?: string;
3855
+ maxFollowing?: number;
1429
3856
  /**
1430
- * Language code filter, e.g. en or tr.
3857
+ * Maximum post count. maxPosts is also accepted.
1431
3858
  */
1432
- language?: string;
3859
+ maxStatuses?: number;
1433
3860
  /**
1434
- * Maximum likes threshold. maxLikes is also accepted.
3861
+ * Minimum account age in whole days.
1435
3862
  */
1436
- maxFaves?: number;
3863
+ minAccountAgeDays?: number;
1437
3864
  /**
1438
- * Return Tweets older than this Tweet ID.
3865
+ * Minimum follower count. Filtering happens before billing.
1439
3866
  */
1440
- maxId?: string;
3867
+ minFollowers?: number;
1441
3868
  /**
1442
- * Maximum quotes threshold.
3869
+ * Profiles must follow at least this many accounts.
1443
3870
  */
1444
- maxQuotes?: number;
3871
+ minFollowing?: number;
1445
3872
  /**
1446
- * Maximum replies threshold.
3873
+ * Minimum post count. minPosts is also accepted.
1447
3874
  */
1448
- maxReplies?: number;
3875
+ minStatuses?: number;
1449
3876
  /**
1450
- * Maximum retweets threshold.
3877
+ * Fields to drop from each row, comma-separated. It takes the same names as
3878
+ * fields. With fields, it drops from the kept fields.
1451
3879
  */
1452
- maxRetweets?: number;
3880
+ omit?: string;
1453
3881
  /**
1454
- * Filter by media type.
3882
+ * Items per page (1-100, default 20). Source, filters or credits can return fewer.
3883
+ * Follow next_cursor for more pages. Aliases: limit, count, max_results, maxItems,
3884
+ * max_items & per_page.
1455
3885
  */
1456
- mediaType?: 'images' | 'videos' | 'gifs' | 'media' | 'links' | 'none';
3886
+ pageSize?: number;
1457
3887
  /**
1458
- * Filter tweets mentioning a username.
3888
+ * Match a username substring, ignoring case.
1459
3889
  */
1460
- mentioning?: string;
3890
+ usernameContains?: string;
1461
3891
  /**
1462
- * Minimum bookmark count threshold.
3892
+ * Only return verified profiles.
1463
3893
  */
1464
- minBookmarks?: number;
3894
+ verifiedOnly?: boolean;
1465
3895
  /**
1466
- * Minimum likes threshold. minLikes is also accepted.
3896
+ * Match the verification type exactly, ignoring case.
1467
3897
  */
1468
- minFaves?: number;
3898
+ verifiedType?: string;
3899
+ }
3900
+ export interface UserRetrieveSimilarParams {
1469
3901
  /**
1470
- * Minimum quote count threshold.
3902
+ * Match any comma-separated or line-separated bio term, ignoring case.
1471
3903
  */
1472
- minQuotes?: number;
3904
+ bioContains?: string;
1473
3905
  /**
1474
- * Minimum replies threshold.
3906
+ * Only return profiles X marks as blue verified. X marks many business &
3907
+ * government accounts blue too. Use verifiedType for 1 badge type.
1475
3908
  */
1476
- minReplies?: number;
3909
+ blueVerifiedOnly?: boolean;
1477
3910
  /**
1478
- * Minimum retweets threshold.
3911
+ * Only return profiles that publish an email outside free webmail, such as Gmail.
1479
3912
  */
1480
- minRetweets?: number;
3913
+ businessEmailOnly?: boolean;
1481
3914
  /**
1482
- * Minimum view count threshold.
3915
+ * Pagination cursor for collection results. Also read as next_cursor, next_token,
3916
+ * pagination_token or continuation_token.
1483
3917
  */
1484
- minViews?: number;
3918
+ cursor?: string;
1485
3919
  /**
1486
- * Only return native reposts.
3920
+ * Only return profiles with an email at one of these domains. Separate domains
3921
+ * with commas. Subdomains match.
1487
3922
  */
1488
- nativeRetweets?: boolean;
3923
+ emailDomains?: string;
1489
3924
  /**
1490
- * Match a place name.
3925
+ * Fields to keep in each row, comma-separated. Use dots for nested fields, such as
3926
+ * author.username. A list keeps the field in each item. Case & underscores do not
3927
+ * matter. A row that lacks a field leaves it out. Cursors, counts & diagnostics
3928
+ * always stay. An unknown name answers 400 unknown_field with the valid names,
3929
+ * before any read. The price stays the same. SDK row types then hold only the
3930
+ * named fields.
1491
3931
  */
1492
- near?: string;
3932
+ fields?: string;
1493
3933
  /**
1494
- * Only return news results.
3934
+ * Only return profiles that publish an email.
1495
3935
  */
1496
- news?: boolean;
3936
+ hasEmail?: boolean;
1497
3937
  /**
1498
- * Automatic pages accept 1-300 Tweets. Standard pages keep 1-100. Default 20.
1499
- * Continue while has_next_page is true. Deprecated aliases remain accepted.
3938
+ * Only return profiles with a location.
1500
3939
  */
1501
- pageSize?: number;
3940
+ hasLocation?: boolean;
1502
3941
  /**
1503
- * Quote mode.
3942
+ * Only return profiles with a website.
1504
3943
  */
1505
- quotes?: 'include' | 'exclude' | 'only';
3944
+ hasWebsite?: boolean;
1506
3945
  /**
1507
- * Only quotes of this tweet ID.
3946
+ * Match a location substring, ignoring case.
1508
3947
  */
1509
- quotesOfTweetId?: string;
3948
+ locationContains?: string;
1510
3949
  /**
1511
- * Reply mode.
3950
+ * Maximum follower count. Missing counts pass this maximum.
1512
3951
  */
1513
- replies?: 'include' | 'exclude' | 'only';
3952
+ maxFollowers?: number;
1514
3953
  /**
1515
- * Retweet mode.
3954
+ * Profiles may follow at most this many accounts.
1516
3955
  */
1517
- retweets?: 'include' | 'exclude' | 'only';
3956
+ maxFollowing?: number;
1518
3957
  /**
1519
- * Only retweets of this tweet ID.
3958
+ * Maximum post count. maxPosts is also accepted.
1520
3959
  */
1521
- retweetsOfTweetId?: string;
3960
+ maxStatuses?: number;
1522
3961
  /**
1523
- * Enable the safe-search filter.
3962
+ * Minimum account age in whole days.
1524
3963
  */
1525
- safe?: boolean;
3964
+ minAccountAgeDays?: number;
1526
3965
  /**
1527
- * Start date in YYYY-MM-DD format.
3966
+ * Minimum follower count. Filtering happens before billing.
1528
3967
  */
1529
- sinceDate?: string;
3968
+ minFollowers?: number;
1530
3969
  /**
1531
- * Return Tweets newer than this Tweet ID.
3970
+ * Profiles must follow at least this many accounts.
1532
3971
  */
1533
- sinceId?: string;
3972
+ minFollowing?: number;
1534
3973
  /**
1535
- * Match the source application.
3974
+ * Minimum post count. minPosts is also accepted.
1536
3975
  */
1537
- source?: string;
3976
+ minStatuses?: number;
1538
3977
  /**
1539
- * Filter replies sent to a username.
3978
+ * Fields to drop from each row, comma-separated. It takes the same names as
3979
+ * fields. With fields, it drops from the kept fields.
1540
3980
  */
1541
- toUser?: string;
3981
+ omit?: string;
1542
3982
  /**
1543
- * End date in YYYY-MM-DD format.
3983
+ * Profiles to request from this page (1-200, default 200). Source, filters or
3984
+ * credits can return fewer. Follow next_cursor for more pages. Aliases: limit,
3985
+ * count, max_results, maxItems, max_items & per_page.
1544
3986
  */
1545
- untilDate?: string;
3987
+ pageSize?: number;
1546
3988
  /**
1547
- * URL substring or domain filter.
3989
+ * Match a username substring, ignoring case.
1548
3990
  */
1549
- url?: string;
3991
+ usernameContains?: string;
1550
3992
  /**
1551
- * Only return tweets from verified authors.
3993
+ * Only return verified profiles.
1552
3994
  */
1553
3995
  verifiedOnly?: boolean;
1554
3996
  /**
1555
- * Set the radius for the near filter.
3997
+ * Match the verification type exactly, ignoring case.
1556
3998
  */
1557
- within?: string;
3999
+ verifiedType?: string;
4000
+ }
4001
+ export interface UserRetrieveSubscriptionsParams {
1558
4002
  /**
1559
- * Match Tweets inside a recent time window.
4003
+ * Match any comma-separated or line-separated bio term, ignoring case.
1560
4004
  */
1561
- withinTime?: string;
1562
- }
1563
- export interface UserRetrieveSearchParams {
4005
+ bioContains?: string;
1564
4006
  /**
1565
- * User search query
4007
+ * Only return profiles X marks as blue verified. X marks many business &
4008
+ * government accounts blue too. Use verifiedType for 1 badge type.
1566
4009
  */
1567
- q: string;
4010
+ blueVerifiedOnly?: boolean;
1568
4011
  /**
1569
- * Match any comma-separated or line-separated bio term, ignoring case.
4012
+ * Only return profiles that publish an email outside free webmail, such as Gmail.
1570
4013
  */
1571
- bioContains?: string;
4014
+ businessEmailOnly?: boolean;
1572
4015
  /**
1573
- * Pagination cursor for user search
4016
+ * Pagination cursor for collection results. Also read as next_cursor, next_token,
4017
+ * pagination_token or continuation_token.
1574
4018
  */
1575
4019
  cursor?: string;
4020
+ /**
4021
+ * Only return profiles with an email at one of these domains. Separate domains
4022
+ * with commas. Subdomains match.
4023
+ */
4024
+ emailDomains?: string;
4025
+ /**
4026
+ * Fields to keep in each row, comma-separated. Use dots for nested fields, such as
4027
+ * author.username. A list keeps the field in each item. Case & underscores do not
4028
+ * matter. A row that lacks a field leaves it out. Cursors, counts & diagnostics
4029
+ * always stay. An unknown name answers 400 unknown_field with the valid names,
4030
+ * before any read. The price stays the same. SDK row types then hold only the
4031
+ * named fields.
4032
+ */
4033
+ fields?: string;
4034
+ /**
4035
+ * Only return profiles that publish an email.
4036
+ */
4037
+ hasEmail?: boolean;
1576
4038
  /**
1577
4039
  * Only return profiles with a location.
1578
4040
  */
@@ -1590,7 +4052,7 @@ export interface UserRetrieveSearchParams {
1590
4052
  */
1591
4053
  maxFollowers?: number;
1592
4054
  /**
1593
- * Maximum following count.
4055
+ * Profiles may follow at most this many accounts.
1594
4056
  */
1595
4057
  maxFollowing?: number;
1596
4058
  /**
@@ -1606,13 +4068,24 @@ export interface UserRetrieveSearchParams {
1606
4068
  */
1607
4069
  minFollowers?: number;
1608
4070
  /**
1609
- * Minimum following count.
4071
+ * Profiles must follow at least this many accounts.
1610
4072
  */
1611
4073
  minFollowing?: number;
1612
4074
  /**
1613
4075
  * Minimum post count. minPosts is also accepted.
1614
4076
  */
1615
4077
  minStatuses?: number;
4078
+ /**
4079
+ * Fields to drop from each row, comma-separated. It takes the same names as
4080
+ * fields. With fields, it drops from the kept fields.
4081
+ */
4082
+ omit?: string;
4083
+ /**
4084
+ * Profiles to request from this page (1-200, default 200). Source, filters or
4085
+ * credits can return fewer. Follow next_cursor for more pages. Aliases: limit,
4086
+ * count, max_results, maxItems, max_items & per_page.
4087
+ */
4088
+ pageSize?: number;
1616
4089
  /**
1617
4090
  * Match a username substring, ignoring case.
1618
4091
  */
@@ -1627,6 +4100,10 @@ export interface UserRetrieveSearchParams {
1627
4100
  verifiedType?: string;
1628
4101
  }
1629
4102
  export interface UserRetrieveTweetsParams {
4103
+ /**
4104
+ * Raw advanced search query appended as-is.
4105
+ */
4106
+ advancedQuery?: string;
1630
4107
  /**
1631
4108
  * Words or quoted phrases where any one can match. Separate with spaces, commas,
1632
4109
  * or lines.
@@ -1637,7 +4114,12 @@ export interface UserRetrieveTweetsParams {
1637
4114
  */
1638
4115
  blueVerifiedOnly?: boolean;
1639
4116
  /**
1640
- * Match the Tweet card name.
4117
+ * Geo bounding box, e.g. -74.1 40.6 -73.9 40.8.
4118
+ */
4119
+ boundingBox?: string;
4120
+ /**
4121
+ * Keep only Tweets with this card type, such as poll2choice_text_only. Tweet
4122
+ * search checks each Tweet's card.
1641
4123
  */
1642
4124
  cardName?: string;
1643
4125
  /**
@@ -1649,28 +4131,40 @@ export interface UserRetrieveTweetsParams {
1649
4131
  */
1650
4132
  conversationId?: string;
1651
4133
  /**
1652
- * Cursor from the previous response. Xquik cursors resume automatic coverage.
1653
- * Existing unprefixed cursors keep legacy standard behavior.
4134
+ * Cursor from the previous response. Existing unprefixed cursors keep legacy
4135
+ * standard behavior. Pages can be empty before more rows; follow next_cursor. Also
4136
+ * read as next_cursor, next_token, pagination_token or continuation_token.
1654
4137
  */
1655
4138
  cursor?: string;
1656
4139
  /**
1657
- * Exact phrase to match.
4140
+ * Match this literal phrase, including any hyphens.
1658
4141
  */
1659
4142
  exactPhrase?: string;
1660
4143
  /**
1661
- * Exclude a source application.
4144
+ * X search no longer supports excludeSource. A Tweet search with it answers 424 &
4145
+ * charges nothing.
1662
4146
  */
1663
4147
  excludeSource?: string;
1664
4148
  /**
1665
4149
  * Words or quoted phrases to exclude. Separate with spaces, commas, or lines.
1666
4150
  */
1667
4151
  excludeWords?: string;
4152
+ /**
4153
+ * Fields to keep in each row, comma-separated. Use dots for nested fields, such as
4154
+ * author.username. A list keeps the field in each item. Case & underscores do not
4155
+ * matter. A row that lacks a field leaves it out. Cursors, counts & diagnostics
4156
+ * always stay. An unknown name answers 400 unknown_field with the valid names,
4157
+ * before any read. The price stays the same. SDK row types then hold only the
4158
+ * named fields.
4159
+ */
4160
+ fields?: string;
1668
4161
  /**
1669
4162
  * Filter by author username.
1670
4163
  */
1671
4164
  fromUser?: string;
1672
4165
  /**
1673
- * Match latitude, longitude, and radius.
4166
+ * X search no longer supports geocode. A Tweet search with it answers 424 &
4167
+ * charges nothing.
1674
4168
  */
1675
4169
  geocode?: string;
1676
4170
  /**
@@ -1678,11 +4172,13 @@ export interface UserRetrieveTweetsParams {
1678
4172
  */
1679
4173
  hashtags?: string;
1680
4174
  /**
1681
- * Include parent tweet for replies
4175
+ * Include each reply's parent tweet as parentTweet on the reply. A reply whose
4176
+ * parent X does not return comes without it. Search-only filters such as keywords
4177
+ * do not apply with it.
1682
4178
  */
1683
4179
  includeParentTweet?: boolean;
1684
4180
  /**
1685
- * Include reply tweets
4181
+ * Include reply tweets unless replies specifies another mode.
1686
4182
  */
1687
4183
  includeReplies?: boolean;
1688
4184
  /**
@@ -1690,15 +4186,23 @@ export interface UserRetrieveTweetsParams {
1690
4186
  */
1691
4187
  inReplyToTweetId?: string;
1692
4188
  /**
1693
- * Language code filter, e.g. en or tr.
4189
+ * Words the Tweets must match, in X search syntax.
4190
+ */
4191
+ keywords?: string;
4192
+ /**
4193
+ * Filter by language. Alias `lang` is accepted.
1694
4194
  */
1695
4195
  language?: string;
1696
4196
  /**
1697
- * Maximum likes threshold. maxLikes is also accepted.
4197
+ * Search within a list ID.
4198
+ */
4199
+ listId?: string;
4200
+ /**
4201
+ * Maximum likes threshold. maxLikes & max_likes also work.
1698
4202
  */
1699
4203
  maxFaves?: number;
1700
4204
  /**
1701
- * Return Tweets older than this Tweet ID.
4205
+ * Return Tweets at or below this ID.
1702
4206
  */
1703
4207
  maxId?: string;
1704
4208
  /**
@@ -1714,7 +4218,7 @@ export interface UserRetrieveTweetsParams {
1714
4218
  */
1715
4219
  maxRetweets?: number;
1716
4220
  /**
1717
- * Filter by media type.
4221
+ * Filter media. Aliases: has_video, has_media.
1718
4222
  */
1719
4223
  mediaType?: 'images' | 'videos' | 'gifs' | 'media' | 'links' | 'none';
1720
4224
  /**
@@ -1726,9 +4230,13 @@ export interface UserRetrieveTweetsParams {
1726
4230
  */
1727
4231
  minBookmarks?: number;
1728
4232
  /**
1729
- * Minimum likes threshold. minLikes is also accepted.
4233
+ * @deprecated Use minLikes instead. The API still reads minFaves.
1730
4234
  */
1731
4235
  minFaves?: number;
4236
+ /**
4237
+ * Minimum likes. Aliases: minFaves, min_likes, min_faves.
4238
+ */
4239
+ minLikes?: number;
1732
4240
  /**
1733
4241
  * Minimum quote count threshold.
1734
4242
  */
@@ -1745,6 +4253,11 @@ export interface UserRetrieveTweetsParams {
1745
4253
  * Minimum view count threshold.
1746
4254
  */
1747
4255
  minViews?: number;
4256
+ /**
4257
+ * Optional legacy pagination override. Search-only filters such as keywords apply
4258
+ * only without it.
4259
+ */
4260
+ mode?: 'standard';
1748
4261
  /**
1749
4262
  * Only return native reposts.
1750
4263
  */
@@ -1754,16 +4267,34 @@ export interface UserRetrieveTweetsParams {
1754
4267
  */
1755
4268
  near?: string;
1756
4269
  /**
1757
- * Only return news results.
4270
+ * X no longer searches filter:news.
1758
4271
  */
1759
4272
  news?: boolean;
1760
4273
  /**
1761
- * Automatic pages accept 1-300 Tweets. Standard pages keep 1-100. Default 20.
1762
- * Continue while has_next_page is true. Deprecated aliases remain accepted.
4274
+ * Fields to drop from each row, comma-separated. It takes the same names as
4275
+ * fields. With fields, it drops from the kept fields.
4276
+ */
4277
+ omit?: string;
4278
+ /**
4279
+ * Automatic pages accept 1-300 Tweets, standard pages 1-100. Default 20. Follow
4280
+ * next_cursor for more pages. Aliases: limit, count, max_results, maxItems,
4281
+ * max_items & per_page.
1763
4282
  */
1764
4283
  pageSize?: number;
1765
4284
  /**
1766
- * Quote mode.
4285
+ * Search within a place ID.
4286
+ */
4287
+ place?: string;
4288
+ /**
4289
+ * Search within a country code.
4290
+ */
4291
+ placeCountry?: string;
4292
+ /**
4293
+ * Geo point radius, e.g. -73.99 40.73 25mi.
4294
+ */
4295
+ pointRadius?: string;
4296
+ /**
4297
+ * Only when the caller requests a quote mode.
1767
4298
  */
1768
4299
  quotes?: 'include' | 'exclude' | 'only';
1769
4300
  /**
@@ -1771,11 +4302,11 @@ export interface UserRetrieveTweetsParams {
1771
4302
  */
1772
4303
  quotesOfTweetId?: string;
1773
4304
  /**
1774
- * Reply mode.
4305
+ * Reply mode. Exclude keeps own-thread replies.
1775
4306
  */
1776
4307
  replies?: 'include' | 'exclude' | 'only';
1777
4308
  /**
1778
- * Retweet mode.
4309
+ * Only when the caller requests a repost mode.
1779
4310
  */
1780
4311
  retweets?: 'include' | 'exclude' | 'only';
1781
4312
  /**
@@ -1787,15 +4318,21 @@ export interface UserRetrieveTweetsParams {
1787
4318
  */
1788
4319
  safe?: boolean;
1789
4320
  /**
1790
- * Start date in YYYY-MM-DD format.
4321
+ * Start date in YYYY-MM-DD format, as a UTC day.
1791
4322
  */
1792
4323
  sinceDate?: string;
1793
4324
  /**
1794
- * Return Tweets newer than this Tweet ID.
4325
+ * Return Tweets whose IDs exceed this ID.
1795
4326
  */
1796
4327
  sinceId?: string;
1797
4328
  /**
1798
- * Match the source application.
4329
+ * Inclusive ISO bound for Tweet creation time, such as 2026-09-25T19:20:41Z. Unix
4330
+ * seconds also work. A time without an offset is UTC.
4331
+ */
4332
+ sinceTime?: string;
4333
+ /**
4334
+ * X search no longer supports source. A Tweet search with it answers 424 & charges
4335
+ * nothing.
1799
4336
  */
1800
4337
  source?: string;
1801
4338
  /**
@@ -1803,9 +4340,14 @@ export interface UserRetrieveTweetsParams {
1803
4340
  */
1804
4341
  toUser?: string;
1805
4342
  /**
1806
- * End date in YYYY-MM-DD format.
4343
+ * End date in YYYY-MM-DD format, as a UTC day, inclusive, so its own posts count.
1807
4344
  */
1808
4345
  untilDate?: string;
4346
+ /**
4347
+ * Exclusive ISO bound for Tweet creation time. Unix seconds also work. A time
4348
+ * without an offset is UTC.
4349
+ */
4350
+ untilTime?: string;
1809
4351
  /**
1810
4352
  * URL substring or domain filter.
1811
4353
  */
@@ -1815,11 +4357,13 @@ export interface UserRetrieveTweetsParams {
1815
4357
  */
1816
4358
  verifiedOnly?: boolean;
1817
4359
  /**
1818
- * Set the radius for the near filter.
4360
+ * X search no longer supports within. A Tweet search with it answers 424 & charges
4361
+ * nothing. Use near alone.
1819
4362
  */
1820
4363
  within?: string;
1821
4364
  /**
1822
- * Match Tweets inside a recent time window.
4365
+ * Keeps Tweets from a recent window, such as 90m or 7d. Use a whole number & s, m,
4366
+ * h or d.
1823
4367
  */
1824
4368
  withinTime?: string;
1825
4369
  }
@@ -1833,10 +4377,43 @@ export interface UserRetrieveVerifiedFollowersParams {
1833
4377
  */
1834
4378
  bioContains?: string;
1835
4379
  /**
1836
- * Cursor from the previous response. Xquik cursors resume automatic coverage.
1837
- * Existing unprefixed cursors keep legacy standard behavior.
4380
+ * Only return profiles X marks as blue verified. X marks many business &
4381
+ * government accounts blue too. Use verifiedType for 1 badge type.
4382
+ */
4383
+ blueVerifiedOnly?: boolean;
4384
+ /**
4385
+ * Only return profiles that publish an email outside free webmail, such as Gmail.
4386
+ */
4387
+ businessEmailOnly?: boolean;
4388
+ /**
4389
+ * Cursor from the previous response. Existing unprefixed cursors keep legacy
4390
+ * standard behavior. Pages can be empty before more rows; follow next_cursor. Also
4391
+ * read as next_cursor, next_token, pagination_token or continuation_token.
1838
4392
  */
1839
4393
  cursor?: string;
4394
+ /**
4395
+ * Only return profiles with an email at one of these domains. Separate domains
4396
+ * with commas. Subdomains match.
4397
+ */
4398
+ emailDomains?: string;
4399
+ /**
4400
+ * Add each row's full profile, as GET /x/users/{id} returns it. Pages take several
4401
+ * seconds longer.
4402
+ */
4403
+ enrichProfiles?: boolean;
4404
+ /**
4405
+ * Fields to keep in each row, comma-separated. Use dots for nested fields, such as
4406
+ * author.username. A list keeps the field in each item. Case & underscores do not
4407
+ * matter. A row that lacks a field leaves it out. Cursors, counts & diagnostics
4408
+ * always stay. An unknown name answers 400 unknown_field with the valid names,
4409
+ * before any read. The price stays the same. SDK row types then hold only the
4410
+ * named fields.
4411
+ */
4412
+ fields?: string;
4413
+ /**
4414
+ * Only return profiles that publish an email.
4415
+ */
4416
+ hasEmail?: boolean;
1840
4417
  /**
1841
4418
  * Only return profiles with a location.
1842
4419
  */
@@ -1846,8 +4423,8 @@ export interface UserRetrieveVerifiedFollowersParams {
1846
4423
  */
1847
4424
  hasWebsite?: boolean;
1848
4425
  /**
1849
- * Legacy page-size alias outside explicit coverage mode. Coverage accepts 1-10000.
1850
- * Prefer pageSize.
4426
+ * Legacy page-size alias outside coverage mode. Coverage accepts 1-10000. Prefer
4427
+ * pageSize.
1851
4428
  */
1852
4429
  limit?: number;
1853
4430
  /**
@@ -1859,9 +4436,16 @@ export interface UserRetrieveVerifiedFollowersParams {
1859
4436
  */
1860
4437
  maxFollowers?: number;
1861
4438
  /**
1862
- * Maximum following count.
4439
+ * Profiles may follow at most this many accounts.
1863
4440
  */
1864
4441
  maxFollowing?: number;
4442
+ /**
4443
+ * Most profiles 1 request reads, kept or dropped by the filters. A filter that
4444
+ * keeps few profiles reads up to 65 s a request without it. The request then
4445
+ * answers the profiles it kept, the count it dropped & the cursor to read on. Each
4446
+ * request of a cursor may send its own value. Automatic mode only.
4447
+ */
4448
+ maxScan?: number;
1865
4449
  /**
1866
4450
  * Maximum post count. maxPosts is also accepted.
1867
4451
  */
@@ -1875,7 +4459,7 @@ export interface UserRetrieveVerifiedFollowersParams {
1875
4459
  */
1876
4460
  minFollowers?: number;
1877
4461
  /**
1878
- * Minimum following count.
4462
+ * Profiles must follow at least this many accounts.
1879
4463
  */
1880
4464
  minFollowing?: number;
1881
4465
  /**
@@ -1888,8 +4472,14 @@ export interface UserRetrieveVerifiedFollowersParams {
1888
4472
  */
1889
4473
  mode?: 'standard' | 'coverage';
1890
4474
  /**
1891
- * Maximum user profiles: automatic 300; standard 200. Sources return fewer
1892
- * profiles. Continue with has_next_page.
4475
+ * Fields to drop from each row, comma-separated. It takes the same names as
4476
+ * fields. With fields, it drops from the kept fields.
4477
+ */
4478
+ omit?: string;
4479
+ /**
4480
+ * Up to 300 user profiles in automatic mode, 200 in standard. Sources can return
4481
+ * fewer. Follow next_cursor for more pages. Aliases: limit, count, max_results,
4482
+ * maxItems, max_items & per_page.
1893
4483
  */
1894
4484
  pageSize?: number;
1895
4485
  /**
@@ -1905,8 +4495,29 @@ export interface UserRetrieveVerifiedFollowersParams {
1905
4495
  */
1906
4496
  verifiedType?: string;
1907
4497
  }
4498
+ export interface UserTranslateBioParams {
4499
+ /**
4500
+ * Language code to translate into, such as `es`, `tr`, `pt-br`, or `zh-tw`. Upper
4501
+ * and lower case both work.
4502
+ */
4503
+ language: string;
4504
+ /**
4505
+ * Fields to keep in each row, comma-separated. Use dots for nested fields, such as
4506
+ * author.username. A list keeps the field in each item. Case & underscores do not
4507
+ * matter. A row that lacks a field leaves it out. Cursors, counts & diagnostics
4508
+ * always stay. An unknown name answers 400 unknown_field with the valid names,
4509
+ * before any read. The price stays the same. SDK row types then hold only the
4510
+ * named fields.
4511
+ */
4512
+ fields?: string;
4513
+ /**
4514
+ * Fields to drop from each row, comma-separated. It takes the same names as
4515
+ * fields. With fields, it drops from the kept fields.
4516
+ */
4517
+ omit?: string;
4518
+ }
1908
4519
  export declare namespace Users {
1909
- export { type UserRemoveFollowerResponse as UserRemoveFollowerResponse, type UserRetrieveBatchResponse as UserRetrieveBatchResponse, type UserRetrieveFollowersResponse as UserRetrieveFollowersResponse, type UserRetrieveFollowingResponse as UserRetrieveFollowingResponse, type UserRetrieveVerifiedFollowersResponse as UserRetrieveVerifiedFollowersResponse, type UserRemoveFollowerParams as UserRemoveFollowerParams, type UserRetrieveBatchParams as UserRetrieveBatchParams, type UserRetrieveFollowersParams as UserRetrieveFollowersParams, type UserRetrieveFollowersYouKnowParams as UserRetrieveFollowersYouKnowParams, type UserRetrieveFollowingParams as UserRetrieveFollowingParams, type UserRetrieveLikesParams as UserRetrieveLikesParams, type UserRetrieveMediaParams as UserRetrieveMediaParams, type UserRetrieveMentionsParams as UserRetrieveMentionsParams, type UserRetrieveRepliesParams as UserRetrieveRepliesParams, type UserRetrieveSearchParams as UserRetrieveSearchParams, type UserRetrieveTweetsParams as UserRetrieveTweetsParams, type UserRetrieveVerifiedFollowersParams as UserRetrieveVerifiedFollowersParams, };
4520
+ export { type UserRemoveFollowerResponse as UserRemoveFollowerResponse, type UserRetrieveBatchResponse as UserRetrieveBatchResponse, type UserRetrieveBatchTweetsResponse as UserRetrieveBatchTweetsResponse, type UserRetrieveFollowerIDsResponse as UserRetrieveFollowerIDsResponse, type UserRetrieveFollowersResponse as UserRetrieveFollowersResponse, type UserRetrieveFollowingResponse as UserRetrieveFollowingResponse, type UserRetrieveFollowingIDsResponse as UserRetrieveFollowingIDsResponse, type UserRetrieveInsightsResponse as UserRetrieveInsightsResponse, type UserRetrieveListMembershipsResponse as UserRetrieveListMembershipsResponse, type UserRetrieveListsResponse as UserRetrieveListsResponse, type UserRetrieveLiveResponse as UserRetrieveLiveResponse, type UserRetrieveVerifiedFollowersResponse as UserRetrieveVerifiedFollowersResponse, type UserTranslateBioResponse as UserTranslateBioResponse, type UserRetrieveParams as UserRetrieveParams, type UserRemoveFollowerParams as UserRemoveFollowerParams, type UserRetrieveAffiliatesParams as UserRetrieveAffiliatesParams, type UserRetrieveArticlesParams as UserRetrieveArticlesParams, type UserRetrieveBatchParams as UserRetrieveBatchParams, type UserRetrieveBatchTweetsParams as UserRetrieveBatchTweetsParams, type UserRetrieveFollowerIDsParams as UserRetrieveFollowerIDsParams, type UserRetrieveFollowersParams as UserRetrieveFollowersParams, type UserRetrieveFollowersYouKnowParams as UserRetrieveFollowersYouKnowParams, type UserRetrieveFollowingParams as UserRetrieveFollowingParams, type UserRetrieveFollowingIDsParams as UserRetrieveFollowingIDsParams, type UserRetrieveHighlightsParams as UserRetrieveHighlightsParams, type UserRetrieveInsightsParams as UserRetrieveInsightsParams, type UserRetrieveLikesParams as UserRetrieveLikesParams, type UserRetrieveListMembershipsParams as UserRetrieveListMembershipsParams, type UserRetrieveListsParams as UserRetrieveListsParams, type UserRetrieveLiveParams as UserRetrieveLiveParams, type UserRetrieveMediaParams as UserRetrieveMediaParams, type UserRetrieveMentionsParams as UserRetrieveMentionsParams, type UserRetrieveRepliesParams as UserRetrieveRepliesParams, type UserRetrieveSearchParams as UserRetrieveSearchParams, type UserRetrieveSimilarParams as UserRetrieveSimilarParams, type UserRetrieveSubscriptionsParams as UserRetrieveSubscriptionsParams, type UserRetrieveTweetsParams as UserRetrieveTweetsParams, type UserRetrieveVerifiedFollowersParams as UserRetrieveVerifiedFollowersParams, type UserTranslateBioParams as UserTranslateBioParams, };
1910
4521
  export { Follow as Follow, type FollowCreateResponse as FollowCreateResponse, type FollowDeleteAllResponse as FollowDeleteAllResponse, type FollowCreateParams as FollowCreateParams, type FollowDeleteAllParams as FollowDeleteAllParams, };
1911
4522
  }
1912
4523
  //# sourceMappingURL=users.d.ts.map