x-twitter-scraper 0.12.3 → 0.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (473) hide show
  1. package/CHANGELOG.md +73 -2
  2. package/README.md +66 -51
  3. package/client.d.mts +18 -15
  4. package/client.d.mts.map +1 -1
  5. package/client.d.ts +18 -15
  6. package/client.d.ts.map +1 -1
  7. package/client.js +3 -3
  8. package/client.js.map +1 -1
  9. package/client.mjs +4 -4
  10. package/client.mjs.map +1 -1
  11. package/core/streaming.d.mts +33 -0
  12. package/core/streaming.d.mts.map +1 -0
  13. package/core/streaming.d.ts +33 -0
  14. package/core/streaming.d.ts.map +1 -0
  15. package/core/streaming.js +270 -0
  16. package/core/streaming.js.map +1 -0
  17. package/core/streaming.mjs +265 -0
  18. package/core/streaming.mjs.map +1 -0
  19. package/internal/decoders/line.d.mts +17 -0
  20. package/internal/decoders/line.d.mts.map +1 -0
  21. package/internal/decoders/line.d.ts +17 -0
  22. package/internal/decoders/line.d.ts.map +1 -0
  23. package/internal/decoders/line.js +116 -0
  24. package/internal/decoders/line.js.map +1 -0
  25. package/internal/decoders/line.mjs +111 -0
  26. package/internal/decoders/line.mjs.map +1 -0
  27. package/internal/parse.d.mts.map +1 -1
  28. package/internal/parse.d.ts.map +1 -1
  29. package/internal/parse.js +7 -0
  30. package/internal/parse.js.map +1 -1
  31. package/internal/parse.mjs +7 -0
  32. package/internal/parse.mjs.map +1 -1
  33. package/internal/tslib.js +18 -18
  34. package/package.json +23 -5
  35. package/resources/account.d.mts +35 -12
  36. package/resources/account.d.mts.map +1 -1
  37. package/resources/account.d.ts +35 -12
  38. package/resources/account.d.ts.map +1 -1
  39. package/resources/account.js +4 -3
  40. package/resources/account.js.map +1 -1
  41. package/resources/account.mjs +4 -3
  42. package/resources/account.mjs.map +1 -1
  43. package/resources/compose.d.mts +77 -21
  44. package/resources/compose.d.mts.map +1 -1
  45. package/resources/compose.d.ts +77 -21
  46. package/resources/compose.d.ts.map +1 -1
  47. package/resources/compose.js +3 -4
  48. package/resources/compose.js.map +1 -1
  49. package/resources/compose.mjs +3 -4
  50. package/resources/compose.mjs.map +1 -1
  51. package/resources/credits.d.mts +18 -10
  52. package/resources/credits.d.mts.map +1 -1
  53. package/resources/credits.d.ts +18 -10
  54. package/resources/credits.d.ts.map +1 -1
  55. package/resources/credits.js +5 -4
  56. package/resources/credits.js.map +1 -1
  57. package/resources/credits.mjs +5 -4
  58. package/resources/credits.mjs.map +1 -1
  59. package/resources/drafts.d.mts +13 -17
  60. package/resources/drafts.d.mts.map +1 -1
  61. package/resources/drafts.d.ts +13 -17
  62. package/resources/drafts.d.ts.map +1 -1
  63. package/resources/drafts.js +4 -4
  64. package/resources/drafts.mjs +4 -4
  65. package/resources/draws.d.mts +84 -28
  66. package/resources/draws.d.mts.map +1 -1
  67. package/resources/draws.d.ts +84 -28
  68. package/resources/draws.d.ts.map +1 -1
  69. package/resources/draws.js +24 -9
  70. package/resources/draws.js.map +1 -1
  71. package/resources/draws.mjs +24 -9
  72. package/resources/draws.mjs.map +1 -1
  73. package/resources/events.d.mts +2564 -21
  74. package/resources/events.d.mts.map +1 -1
  75. package/resources/events.d.ts +2564 -21
  76. package/resources/events.d.ts.map +1 -1
  77. package/resources/events.js +34 -2
  78. package/resources/events.js.map +1 -1
  79. package/resources/events.mjs +34 -2
  80. package/resources/events.mjs.map +1 -1
  81. package/resources/extractions.d.mts +410 -128
  82. package/resources/extractions.d.mts.map +1 -1
  83. package/resources/extractions.d.ts +410 -128
  84. package/resources/extractions.d.ts.map +1 -1
  85. package/resources/extractions.js +74 -12
  86. package/resources/extractions.js.map +1 -1
  87. package/resources/extractions.mjs +74 -12
  88. package/resources/extractions.mjs.map +1 -1
  89. package/resources/guest-wallets.d.mts +6 -5
  90. package/resources/guest-wallets.d.mts.map +1 -1
  91. package/resources/guest-wallets.d.ts +6 -5
  92. package/resources/guest-wallets.d.ts.map +1 -1
  93. package/resources/guest-wallets.js +2 -1
  94. package/resources/guest-wallets.js.map +1 -1
  95. package/resources/guest-wallets.mjs +2 -1
  96. package/resources/guest-wallets.mjs.map +1 -1
  97. package/resources/index.d.mts +6 -6
  98. package/resources/index.d.mts.map +1 -1
  99. package/resources/index.d.ts +6 -6
  100. package/resources/index.d.ts.map +1 -1
  101. package/resources/index.js.map +1 -1
  102. package/resources/index.mjs +1 -1
  103. package/resources/index.mjs.map +1 -1
  104. package/resources/monitors/index.d.mts +2 -2
  105. package/resources/monitors/index.d.mts.map +1 -1
  106. package/resources/monitors/index.d.ts +2 -2
  107. package/resources/monitors/index.d.ts.map +1 -1
  108. package/resources/monitors/index.js.map +1 -1
  109. package/resources/monitors/index.mjs.map +1 -1
  110. package/resources/monitors/keywords.d.mts +66 -14
  111. package/resources/monitors/keywords.d.mts.map +1 -1
  112. package/resources/monitors/keywords.d.ts +66 -14
  113. package/resources/monitors/keywords.d.ts.map +1 -1
  114. package/resources/monitors/keywords.js +16 -10
  115. package/resources/monitors/keywords.js.map +1 -1
  116. package/resources/monitors/keywords.mjs +16 -10
  117. package/resources/monitors/keywords.mjs.map +1 -1
  118. package/resources/monitors/monitors.d.mts +53 -16
  119. package/resources/monitors/monitors.d.mts.map +1 -1
  120. package/resources/monitors/monitors.d.ts +53 -16
  121. package/resources/monitors/monitors.d.ts.map +1 -1
  122. package/resources/monitors/monitors.js +12 -10
  123. package/resources/monitors/monitors.js.map +1 -1
  124. package/resources/monitors/monitors.mjs +12 -10
  125. package/resources/monitors/monitors.mjs.map +1 -1
  126. package/resources/radar.d.mts +32 -36
  127. package/resources/radar.d.mts.map +1 -1
  128. package/resources/radar.d.ts +32 -36
  129. package/resources/radar.d.ts.map +1 -1
  130. package/resources/radar.js +1 -1
  131. package/resources/radar.mjs +1 -1
  132. package/resources/shared.d.mts +1726 -233
  133. package/resources/shared.d.mts.map +1 -1
  134. package/resources/shared.d.ts +1726 -233
  135. package/resources/shared.d.ts.map +1 -1
  136. package/resources/styles.d.mts +34 -23
  137. package/resources/styles.d.mts.map +1 -1
  138. package/resources/styles.d.ts +34 -23
  139. package/resources/styles.d.ts.map +1 -1
  140. package/resources/styles.js +11 -13
  141. package/resources/styles.js.map +1 -1
  142. package/resources/styles.mjs +11 -13
  143. package/resources/styles.mjs.map +1 -1
  144. package/resources/subscribe.d.mts +1 -1
  145. package/resources/subscribe.d.ts +1 -1
  146. package/resources/subscribe.js +1 -1
  147. package/resources/subscribe.mjs +1 -1
  148. package/resources/support/index.d.mts +1 -1
  149. package/resources/support/index.d.mts.map +1 -1
  150. package/resources/support/index.d.ts +1 -1
  151. package/resources/support/index.d.ts.map +1 -1
  152. package/resources/support/index.js.map +1 -1
  153. package/resources/support/index.mjs.map +1 -1
  154. package/resources/support/support.d.mts +2 -2
  155. package/resources/support/support.d.mts.map +1 -1
  156. package/resources/support/support.d.ts +2 -2
  157. package/resources/support/support.d.ts.map +1 -1
  158. package/resources/support/support.js.map +1 -1
  159. package/resources/support/support.mjs.map +1 -1
  160. package/resources/support/tickets.d.mts +30 -10
  161. package/resources/support/tickets.d.mts.map +1 -1
  162. package/resources/support/tickets.d.ts +30 -10
  163. package/resources/support/tickets.d.ts.map +1 -1
  164. package/resources/support/tickets.js +7 -7
  165. package/resources/support/tickets.js.map +1 -1
  166. package/resources/support/tickets.mjs +7 -7
  167. package/resources/support/tickets.mjs.map +1 -1
  168. package/resources/trends.d.mts +21 -5
  169. package/resources/trends.d.mts.map +1 -1
  170. package/resources/trends.d.ts +21 -5
  171. package/resources/trends.d.ts.map +1 -1
  172. package/resources/trends.js +2 -1
  173. package/resources/trends.js.map +1 -1
  174. package/resources/trends.mjs +2 -1
  175. package/resources/trends.mjs.map +1 -1
  176. package/resources/webhooks.d.mts +80 -14
  177. package/resources/webhooks.d.mts.map +1 -1
  178. package/resources/webhooks.d.ts +80 -14
  179. package/resources/webhooks.d.ts.map +1 -1
  180. package/resources/webhooks.js +30 -11
  181. package/resources/webhooks.js.map +1 -1
  182. package/resources/webhooks.mjs +30 -11
  183. package/resources/webhooks.mjs.map +1 -1
  184. package/resources/x/account-connection-attempts.d.mts +1 -1
  185. package/resources/x/account-connection-attempts.d.ts +1 -1
  186. package/resources/x/account-connection-attempts.js +1 -1
  187. package/resources/x/account-connection-attempts.mjs +1 -1
  188. package/resources/x/account-connection-challenges.d.mts +30 -11
  189. package/resources/x/account-connection-challenges.d.mts.map +1 -1
  190. package/resources/x/account-connection-challenges.d.ts +30 -11
  191. package/resources/x/account-connection-challenges.d.ts.map +1 -1
  192. package/resources/x/account-connection-challenges.js +5 -4
  193. package/resources/x/account-connection-challenges.js.map +1 -1
  194. package/resources/x/account-connection-challenges.mjs +5 -4
  195. package/resources/x/account-connection-challenges.mjs.map +1 -1
  196. package/resources/x/accounts.d.mts +38 -10
  197. package/resources/x/accounts.d.mts.map +1 -1
  198. package/resources/x/accounts.d.ts +38 -10
  199. package/resources/x/accounts.d.ts.map +1 -1
  200. package/resources/x/accounts.js +8 -7
  201. package/resources/x/accounts.js.map +1 -1
  202. package/resources/x/accounts.mjs +8 -7
  203. package/resources/x/accounts.mjs.map +1 -1
  204. package/resources/x/analysis.d.mts +3274 -0
  205. package/resources/x/analysis.d.mts.map +1 -0
  206. package/resources/x/analysis.d.ts +3274 -0
  207. package/resources/x/analysis.d.ts.map +1 -0
  208. package/resources/x/analysis.js +132 -0
  209. package/resources/x/analysis.js.map +1 -0
  210. package/resources/x/analysis.mjs +128 -0
  211. package/resources/x/analysis.mjs.map +1 -0
  212. package/resources/x/bookmarks.d.mts +84 -9
  213. package/resources/x/bookmarks.d.mts.map +1 -1
  214. package/resources/x/bookmarks.d.ts +84 -9
  215. package/resources/x/bookmarks.d.ts.map +1 -1
  216. package/resources/x/bookmarks.js +6 -4
  217. package/resources/x/bookmarks.js.map +1 -1
  218. package/resources/x/bookmarks.mjs +6 -4
  219. package/resources/x/bookmarks.mjs.map +1 -1
  220. package/resources/x/broadcasts.d.mts +176 -0
  221. package/resources/x/broadcasts.d.mts.map +1 -0
  222. package/resources/x/broadcasts.d.ts +176 -0
  223. package/resources/x/broadcasts.d.ts.map +1 -0
  224. package/resources/x/broadcasts.js +29 -0
  225. package/resources/x/broadcasts.js.map +1 -0
  226. package/resources/x/broadcasts.mjs +25 -0
  227. package/resources/x/broadcasts.mjs.map +1 -0
  228. package/resources/x/communities/communities.d.mts +612 -128
  229. package/resources/x/communities/communities.d.mts.map +1 -1
  230. package/resources/x/communities/communities.d.ts +612 -128
  231. package/resources/x/communities/communities.d.ts.map +1 -1
  232. package/resources/x/communities/communities.js +96 -17
  233. package/resources/x/communities/communities.js.map +1 -1
  234. package/resources/x/communities/communities.mjs +96 -17
  235. package/resources/x/communities/communities.mjs.map +1 -1
  236. package/resources/x/communities/index.d.mts +2 -1
  237. package/resources/x/communities/index.d.mts.map +1 -1
  238. package/resources/x/communities/index.d.ts +2 -1
  239. package/resources/x/communities/index.d.ts.map +1 -1
  240. package/resources/x/communities/index.js +3 -1
  241. package/resources/x/communities/index.js.map +1 -1
  242. package/resources/x/communities/index.mjs +1 -0
  243. package/resources/x/communities/index.mjs.map +1 -1
  244. package/resources/x/communities/join.d.mts +46 -25
  245. package/resources/x/communities/join.d.mts.map +1 -1
  246. package/resources/x/communities/join.d.ts +46 -25
  247. package/resources/x/communities/join.d.ts.map +1 -1
  248. package/resources/x/communities/join.js +10 -7
  249. package/resources/x/communities/join.js.map +1 -1
  250. package/resources/x/communities/join.mjs +10 -7
  251. package/resources/x/communities/join.mjs.map +1 -1
  252. package/resources/x/communities/media.d.mts +197 -0
  253. package/resources/x/communities/media.d.mts.map +1 -0
  254. package/resources/x/communities/media.d.ts +197 -0
  255. package/resources/x/communities/media.d.ts.map +1 -0
  256. package/resources/x/communities/media.js +29 -0
  257. package/resources/x/communities/media.js.map +1 -0
  258. package/resources/x/communities/media.mjs +25 -0
  259. package/resources/x/communities/media.mjs.map +1 -0
  260. package/resources/x/communities/tweets.d.mts +350 -20
  261. package/resources/x/communities/tweets.d.mts.map +1 -1
  262. package/resources/x/communities/tweets.d.ts +350 -20
  263. package/resources/x/communities/tweets.d.ts.map +1 -1
  264. package/resources/x/communities/tweets.js +8 -7
  265. package/resources/x/communities/tweets.js.map +1 -1
  266. package/resources/x/communities/tweets.mjs +8 -7
  267. package/resources/x/communities/tweets.mjs.map +1 -1
  268. package/resources/x/dm.d.mts +245 -13
  269. package/resources/x/dm.d.mts.map +1 -1
  270. package/resources/x/dm.d.ts +245 -13
  271. package/resources/x/dm.d.ts.map +1 -1
  272. package/resources/x/dm.js +29 -2
  273. package/resources/x/dm.js.map +1 -1
  274. package/resources/x/dm.mjs +29 -2
  275. package/resources/x/dm.mjs.map +1 -1
  276. package/resources/x/followers.d.mts +31 -3
  277. package/resources/x/followers.d.mts.map +1 -1
  278. package/resources/x/followers.d.ts +31 -3
  279. package/resources/x/followers.d.ts.map +1 -1
  280. package/resources/x/followers.js +2 -1
  281. package/resources/x/followers.js.map +1 -1
  282. package/resources/x/followers.mjs +2 -1
  283. package/resources/x/followers.mjs.map +1 -1
  284. package/resources/x/index.d.mts +12 -8
  285. package/resources/x/index.d.mts.map +1 -1
  286. package/resources/x/index.d.ts +12 -8
  287. package/resources/x/index.d.ts.map +1 -1
  288. package/resources/x/index.js +9 -1
  289. package/resources/x/index.js.map +1 -1
  290. package/resources/x/index.mjs +5 -1
  291. package/resources/x/index.mjs.map +1 -1
  292. package/resources/x/jobs.d.mts +506 -0
  293. package/resources/x/jobs.d.mts.map +1 -0
  294. package/resources/x/jobs.d.ts +506 -0
  295. package/resources/x/jobs.d.ts.map +1 -0
  296. package/resources/x/jobs.js +60 -0
  297. package/resources/x/jobs.js.map +1 -0
  298. package/resources/x/jobs.mjs +56 -0
  299. package/resources/x/jobs.mjs.map +1 -0
  300. package/resources/x/lists.d.mts +1058 -27
  301. package/resources/x/lists.d.mts.map +1 -1
  302. package/resources/x/lists.d.ts +1058 -27
  303. package/resources/x/lists.d.ts.map +1 -1
  304. package/resources/x/lists.js +39 -9
  305. package/resources/x/lists.js.map +1 -1
  306. package/resources/x/lists.mjs +39 -9
  307. package/resources/x/lists.mjs.map +1 -1
  308. package/resources/x/media.d.mts +24 -13
  309. package/resources/x/media.d.mts.map +1 -1
  310. package/resources/x/media.d.ts +24 -13
  311. package/resources/x/media.d.ts.map +1 -1
  312. package/resources/x/media.js +2 -2
  313. package/resources/x/media.mjs +2 -2
  314. package/resources/x/profile.d.mts +60 -33
  315. package/resources/x/profile.d.mts.map +1 -1
  316. package/resources/x/profile.d.ts +60 -33
  317. package/resources/x/profile.d.ts.map +1 -1
  318. package/resources/x/profile.js +3 -3
  319. package/resources/x/profile.mjs +3 -3
  320. package/resources/x/spaces.d.mts +857 -0
  321. package/resources/x/spaces.d.mts.map +1 -0
  322. package/resources/x/spaces.d.ts +857 -0
  323. package/resources/x/spaces.d.ts.map +1 -0
  324. package/resources/x/spaces.js +58 -0
  325. package/resources/x/spaces.js.map +1 -0
  326. package/resources/x/spaces.mjs +54 -0
  327. package/resources/x/spaces.mjs.map +1 -0
  328. package/resources/x/tweets/index.d.mts +1 -1
  329. package/resources/x/tweets/index.d.mts.map +1 -1
  330. package/resources/x/tweets/index.d.ts +1 -1
  331. package/resources/x/tweets/index.d.ts.map +1 -1
  332. package/resources/x/tweets/index.js.map +1 -1
  333. package/resources/x/tweets/index.mjs.map +1 -1
  334. package/resources/x/tweets/like.d.mts +38 -20
  335. package/resources/x/tweets/like.d.mts.map +1 -1
  336. package/resources/x/tweets/like.d.ts +38 -20
  337. package/resources/x/tweets/like.d.ts.map +1 -1
  338. package/resources/x/tweets/like.js +2 -2
  339. package/resources/x/tweets/like.mjs +2 -2
  340. package/resources/x/tweets/retweet.d.mts +38 -20
  341. package/resources/x/tweets/retweet.d.mts.map +1 -1
  342. package/resources/x/tweets/retweet.d.ts +38 -20
  343. package/resources/x/tweets/retweet.d.ts.map +1 -1
  344. package/resources/x/tweets/retweet.js +2 -2
  345. package/resources/x/tweets/retweet.mjs +2 -2
  346. package/resources/x/tweets/tweets.d.mts +2639 -326
  347. package/resources/x/tweets/tweets.d.mts.map +1 -1
  348. package/resources/x/tweets/tweets.d.ts +2639 -326
  349. package/resources/x/tweets/tweets.d.ts.map +1 -1
  350. package/resources/x/tweets/tweets.js +147 -21
  351. package/resources/x/tweets/tweets.js.map +1 -1
  352. package/resources/x/tweets/tweets.mjs +147 -21
  353. package/resources/x/tweets/tweets.mjs.map +1 -1
  354. package/resources/x/users/follow.d.mts +38 -20
  355. package/resources/x/users/follow.d.mts.map +1 -1
  356. package/resources/x/users/follow.d.ts +38 -20
  357. package/resources/x/users/follow.d.ts.map +1 -1
  358. package/resources/x/users/follow.js +2 -2
  359. package/resources/x/users/follow.mjs +2 -2
  360. package/resources/x/users/index.d.mts +1 -1
  361. package/resources/x/users/index.d.mts.map +1 -1
  362. package/resources/x/users/index.d.ts +1 -1
  363. package/resources/x/users/index.d.ts.map +1 -1
  364. package/resources/x/users/index.js.map +1 -1
  365. package/resources/x/users/index.mjs.map +1 -1
  366. package/resources/x/users/users.d.mts +3068 -457
  367. package/resources/x/users/users.d.mts.map +1 -1
  368. package/resources/x/users/users.d.ts +3068 -457
  369. package/resources/x/users/users.d.ts.map +1 -1
  370. package/resources/x/users/users.js +205 -22
  371. package/resources/x/users/users.js.map +1 -1
  372. package/resources/x/users/users.mjs +205 -22
  373. package/resources/x/users/users.mjs.map +1 -1
  374. package/resources/x/write-actions.d.mts +13 -6
  375. package/resources/x/write-actions.d.mts.map +1 -1
  376. package/resources/x/write-actions.d.ts +13 -6
  377. package/resources/x/write-actions.d.ts.map +1 -1
  378. package/resources/x/write-actions.js +1 -1
  379. package/resources/x/write-actions.mjs +1 -1
  380. package/resources/x/x.d.mts +864 -27
  381. package/resources/x/x.d.mts.map +1 -1
  382. package/resources/x/x.d.ts +864 -27
  383. package/resources/x/x.d.ts.map +1 -1
  384. package/resources/x/x.js +78 -5
  385. package/resources/x/x.js.map +1 -1
  386. package/resources/x/x.mjs +80 -7
  387. package/resources/x/x.mjs.map +1 -1
  388. package/skills/x-twitter-scraper/SKILL.md +97 -350
  389. package/skills/x-twitter-scraper/metadata.json +3 -9
  390. package/skills/x-twitter-scraper/references/draws.md +24 -24
  391. package/skills/x-twitter-scraper/references/extractions.md +71 -62
  392. package/skills/x-twitter-scraper/references/mcp-setup.md +36 -39
  393. package/skills/x-twitter-scraper/references/mcp-tools.md +105 -166
  394. package/skills/x-twitter-scraper/references/python-examples.md +5 -5
  395. package/skills/x-twitter-scraper/references/security.md +8 -8
  396. package/skills/x-twitter-scraper/references/types-mcp-output-schemas.md +4 -4
  397. package/skills/x-twitter-scraper/references/types.md +0 -1
  398. package/skills/x-twitter-scraper/references/usage.md +5 -5
  399. package/skills/x-twitter-scraper/references/webhooks.md +28 -31
  400. package/skills/x-twitter-scraper/references/workflows.md +70 -71
  401. package/skills/x-twitter-scraper/skill-card.md +13 -14
  402. package/skills/x-twitter-scraper/skillspector-report.md +8 -5
  403. package/skills/xquik-account-automation/LICENSE +21 -0
  404. package/skills/xquik-account-automation/SKILL.md +91 -0
  405. package/skills/xquik-social-research/SKILL.md +49 -56
  406. package/src/client.ts +47 -4
  407. package/src/core/streaming.ts +328 -0
  408. package/src/internal/decoders/line.ts +140 -0
  409. package/src/internal/parse.ts +9 -0
  410. package/src/resources/account.ts +41 -12
  411. package/src/resources/compose.ts +77 -21
  412. package/src/resources/credits.ts +19 -10
  413. package/src/resources/drafts.ts +13 -22
  414. package/src/resources/draws.ts +94 -36
  415. package/src/resources/events.ts +3225 -68
  416. package/src/resources/extractions.ts +512 -125
  417. package/src/resources/guest-wallets.ts +6 -5
  418. package/src/resources/index.ts +24 -1
  419. package/src/resources/monitors/index.ts +2 -0
  420. package/src/resources/monitors/keywords.ts +82 -14
  421. package/src/resources/monitors/monitors.ts +66 -14
  422. package/src/resources/radar.ts +32 -36
  423. package/src/resources/shared.ts +2227 -351
  424. package/src/resources/styles.ts +43 -27
  425. package/src/resources/subscribe.ts +1 -1
  426. package/src/resources/support/index.ts +1 -0
  427. package/src/resources/support/support.ts +2 -0
  428. package/src/resources/support/tickets.ts +38 -10
  429. package/src/resources/trends.ts +23 -5
  430. package/src/resources/webhooks.ts +109 -15
  431. package/src/resources/x/account-connection-attempts.ts +1 -1
  432. package/src/resources/x/account-connection-challenges.ts +39 -11
  433. package/src/resources/x/accounts.ts +46 -10
  434. package/src/resources/x/analysis.ts +3947 -0
  435. package/src/resources/x/bookmarks.ts +103 -9
  436. package/src/resources/x/broadcasts.ts +225 -0
  437. package/src/resources/x/communities/communities.ts +743 -141
  438. package/src/resources/x/communities/index.ts +9 -0
  439. package/src/resources/x/communities/join.ts +46 -23
  440. package/src/resources/x/communities/media.ts +251 -0
  441. package/src/resources/x/communities/tweets.ts +427 -20
  442. package/src/resources/x/dm.ts +334 -11
  443. package/src/resources/x/followers.ts +35 -3
  444. package/src/resources/x/index.ts +106 -1
  445. package/src/resources/x/jobs.ts +627 -0
  446. package/src/resources/x/lists.ts +1307 -28
  447. package/src/resources/x/media.ts +24 -12
  448. package/src/resources/x/profile.ts +60 -30
  449. package/src/resources/x/spaces.ts +1076 -0
  450. package/src/resources/x/tweets/index.ts +18 -0
  451. package/src/resources/x/tweets/like.ts +38 -18
  452. package/src/resources/x/tweets/retweet.ts +38 -18
  453. package/src/resources/x/tweets/tweets.ts +3695 -843
  454. package/src/resources/x/users/follow.ts +38 -18
  455. package/src/resources/x/users/index.ts +22 -0
  456. package/src/resources/x/users/users.ts +3687 -465
  457. package/src/resources/x/write-actions.ts +13 -5
  458. package/src/resources/x/x.ts +1227 -15
  459. package/src/streaming.ts +6 -0
  460. package/src/version.ts +1 -1
  461. package/streaming.d.mts +3 -0
  462. package/streaming.d.mts.map +1 -0
  463. package/streaming.d.ts +3 -0
  464. package/streaming.d.ts.map +1 -0
  465. package/streaming.js +9 -0
  466. package/streaming.js.map +1 -0
  467. package/streaming.mjs +6 -0
  468. package/streaming.mjs.map +1 -0
  469. package/version.d.mts +1 -1
  470. package/version.d.ts +1 -1
  471. package/version.js +1 -1
  472. package/version.mjs +1 -1
  473. package/skills/x-twitter-scraper/references/types-rest-api-vs-mcp-field-naming.md +0 -15
@@ -41,7 +41,8 @@ export class GuestWallets extends APIResource {
41
41
  /**
42
42
  * Poll after payment. Use usable to decide whether paid reads can run. An active
43
43
  * wallet can remain usable while a top-up is pending. A new wallet becomes usable
44
- * only after payment is verified. Send the guest key as Authorization: Bearer.
44
+ * only after payment is verified. Send the guest key as Authorization: Bearer
45
+ * xq_...
45
46
  *
46
47
  * @example
47
48
  * ```ts
@@ -119,7 +120,7 @@ export interface GuestWalletCreateResponse {
119
120
  credential_notice: 'Store api_key and the Idempotency-Key securely before sharing checkout_url. No email recovery is available.';
120
121
 
121
122
  /**
122
- * Usage granted after verified payment.
123
+ * Credits granted after verified payment.
123
124
  */
124
125
  credits: string;
125
126
 
@@ -164,7 +165,7 @@ export interface GuestWalletRetrieveStatusResponse {
164
165
  balance: string;
165
166
 
166
167
  /**
167
- * Latest guest wallet purchase fulfillment state.
168
+ * Latest purchase state. This does not determine usability.
168
169
  */
169
170
  latest_purchase: GuestWalletRetrieveStatusResponse.LatestPurchase | null;
170
171
 
@@ -229,7 +230,7 @@ export namespace GuestWalletRetrieveStatusResponse {
229
230
  }
230
231
 
231
232
  /**
232
- * Pending hosted checkout and guest wallet purchase details.
233
+ * Existing guest wallet top-up response without a new key.
233
234
  */
234
235
  export interface GuestWalletTopupResponse {
235
236
  account_required: false;
@@ -245,7 +246,7 @@ export interface GuestWalletTopupResponse {
245
246
  checkout_url: string;
246
247
 
247
248
  /**
248
- * Usage granted after verified payment.
249
+ * Credits granted after verified payment.
249
250
  */
250
251
  credits: string;
251
252
 
@@ -43,12 +43,20 @@ export {
43
43
  type DrawExportParams,
44
44
  type DrawRunParams,
45
45
  } from './draws';
46
- export { Events, type Event, type EventDetail, type EventListResponse, type EventListParams } from './events';
46
+ export {
47
+ Events,
48
+ type Event,
49
+ type EventDetail,
50
+ type EventListResponse,
51
+ type EventListParams,
52
+ type EventStreamParams,
53
+ } from './events';
47
54
  export {
48
55
  Extractions,
49
56
  type ExtractionJob,
50
57
  type ExtractionRetrieveResponse,
51
58
  type ExtractionListResponse,
59
+ type ExtractionCancelResponse,
52
60
  type ExtractionEstimateCostResponse,
53
61
  type ExtractionRunResponse,
54
62
  type ExtractionRetrieveParams,
@@ -74,6 +82,7 @@ export {
74
82
  type MonitorDeactivateResponse,
75
83
  type MonitorCreateParams,
76
84
  type MonitorUpdateParams,
85
+ type MonitorListParams,
77
86
  } from './monitors/monitors';
78
87
  export {
79
88
  Radar,
@@ -89,6 +98,7 @@ export {
89
98
  type StyleCompareResponse,
90
99
  type StyleGetPerformanceResponse,
91
100
  type StyleUpdateParams,
101
+ type StyleListParams,
92
102
  type StyleAnalyzeParams,
93
103
  type StyleCompareParams,
94
104
  } from './styles';
@@ -101,19 +111,32 @@ export {
101
111
  type Webhook,
102
112
  type WebhookCreateResponse,
103
113
  type WebhookListResponse,
114
+ type WebhookCreateTelegramLinkResponse,
104
115
  type WebhookDeactivateResponse,
105
116
  type WebhookListDeliveriesResponse,
106
117
  type WebhookResumeResponse,
107
118
  type WebhookTestResponse,
108
119
  type WebhookCreateParams,
109
120
  type WebhookUpdateParams,
121
+ type WebhookListParams,
122
+ type WebhookCreateTelegramLinkParams,
123
+ type WebhookListDeliveriesParams,
110
124
  } from './webhooks';
111
125
  export {
112
126
  X,
127
+ type XAutocompleteSearchResponse,
113
128
  type XGetArticleResponse,
129
+ type XGetHashflagsResponse,
114
130
  type XGetNotificationsResponse,
131
+ type XGetTrendLocationsResponse,
115
132
  type XGetTrendsResponse,
133
+ type XSearchPlacesResponse,
134
+ type XAutocompleteSearchParams,
135
+ type XGetArticleParams,
136
+ type XGetHashflagsParams,
116
137
  type XGetHomeTimelineParams,
117
138
  type XGetNotificationsParams,
139
+ type XGetTrendLocationsParams,
118
140
  type XGetTrendsParams,
141
+ type XSearchPlacesParams,
119
142
  } from './x/x';
@@ -13,6 +13,7 @@ export {
13
13
  type KeywordDeactivateResponse,
14
14
  type KeywordCreateParams,
15
15
  type KeywordUpdateParams,
16
+ type KeywordListParams,
16
17
  } from './keywords';
17
18
  export {
18
19
  Monitors,
@@ -22,4 +23,5 @@ export {
22
23
  type MonitorDeactivateResponse,
23
24
  type MonitorCreateParams,
24
25
  type MonitorUpdateParams,
26
+ type MonitorListParams,
25
27
  } from './monitors';
@@ -15,15 +15,16 @@ import { path } from '../../internal/utils/path';
15
15
  */
16
16
  export class Keywords extends APIResource {
17
17
  /**
18
- * Creates a keyword monitor. Keyword monitors are unlimited. Active monitors check
19
- * every 1 second and cost 21 credits per hour. Events and webhook deliveries are
20
- * included. Creation requires available credits for the first hourly charge.
18
+ * Creates a keyword monitor, with no count limit. Active monitors check every
19
+ * second for 30 credits an hour, events & webhook deliveries included. That hourly
20
+ * price is a monitor's only charge. Creation needs the credits of the first hour.
21
21
  *
22
22
  * @example
23
23
  * ```ts
24
24
  * const keyword = await client.monitors.keywords.create({
25
25
  * eventTypes: ['tweet.new'],
26
26
  * query: 'xquik OR "x api"',
27
+ * name: 'Launch mentions',
27
28
  * });
28
29
  * ```
29
30
  */
@@ -32,7 +33,7 @@ export class Keywords extends APIResource {
32
33
  }
33
34
 
34
35
  /**
35
- * Get keyword monitor
36
+ * Returns configuration and status for one keyword monitor.
36
37
  *
37
38
  * @example
38
39
  * ```ts
@@ -46,13 +47,17 @@ export class Keywords extends APIResource {
46
47
  }
47
48
 
48
49
  /**
49
- * Update keyword monitor
50
+ * Updates mutable settings for an existing keyword monitor.
50
51
  *
51
52
  * @example
52
53
  * ```ts
53
54
  * const keyword = await client.monitors.keywords.update(
54
55
  * 'id',
55
- * { eventTypes: ['tweet.new'], isActive: true },
56
+ * {
57
+ * eventTypes: ['tweet.new'],
58
+ * isActive: true,
59
+ * name: 'Launch mentions',
60
+ * },
56
61
  * );
57
62
  * ```
58
63
  */
@@ -61,19 +66,23 @@ export class Keywords extends APIResource {
61
66
  }
62
67
 
63
68
  /**
64
- * List keyword monitors
69
+ * Returns keyword monitors with their current operating states.
65
70
  *
66
71
  * @example
67
72
  * ```ts
68
73
  * const keywords = await client.monitors.keywords.list();
69
74
  * ```
70
75
  */
71
- list(options?: RequestOptions): APIPromise<KeywordListResponse> {
72
- return this._client.get('/monitors/keywords', options);
76
+ list(
77
+ query: KeywordListParams | null | undefined = {},
78
+ options?: RequestOptions,
79
+ ): APIPromise<KeywordListResponse> {
80
+ return this._client.get('/monitors/keywords', { query, ...options });
73
81
  }
74
82
 
75
83
  /**
76
- * Delete keyword monitor
84
+ * Stops one keyword monitor, then removes its stored events in bounded batches.
85
+ * Poll statusUrl until the monitor returns 404.
77
86
  *
78
87
  * @example
79
88
  * ```ts
@@ -103,11 +112,16 @@ export interface KeywordCreateResponse {
103
112
  isActive: boolean;
104
113
 
105
114
  /**
106
- * Next hourly usage charge time for this keyword query monitor.
115
+ * Next hourly credit charge time for this keyword query monitor.
107
116
  */
108
117
  nextBillingAt: string;
109
118
 
110
119
  query: string;
120
+
121
+ /**
122
+ * Customer-set label of the keyword monitor, when set.
123
+ */
124
+ name?: string;
111
125
  }
112
126
 
113
127
  /**
@@ -126,11 +140,16 @@ export interface KeywordRetrieveResponse {
126
140
  isActive: boolean;
127
141
 
128
142
  /**
129
- * Next hourly usage charge time for this keyword query monitor.
143
+ * Next hourly credit charge time for this keyword query monitor.
130
144
  */
131
145
  nextBillingAt: string;
132
146
 
133
147
  query: string;
148
+
149
+ /**
150
+ * Customer-set label of the keyword monitor, when set.
151
+ */
152
+ name?: string;
134
153
  }
135
154
 
136
155
  /**
@@ -149,17 +168,29 @@ export interface KeywordUpdateResponse {
149
168
  isActive: boolean;
150
169
 
151
170
  /**
152
- * Next hourly usage charge time for this keyword query monitor.
171
+ * Next hourly credit charge time for this keyword query monitor.
153
172
  */
154
173
  nextBillingAt: string;
155
174
 
156
175
  query: string;
176
+
177
+ /**
178
+ * Customer-set label of the keyword monitor, when set.
179
+ */
180
+ name?: string;
157
181
  }
158
182
 
159
183
  export interface KeywordListResponse {
184
+ hasMore: boolean;
185
+
160
186
  monitors: Array<KeywordListResponse.Monitor>;
161
187
 
188
+ /**
189
+ * Keyword monitors on this page.
190
+ */
162
191
  total: number;
192
+
193
+ nextCursor?: string;
163
194
  }
164
195
 
165
196
  export namespace KeywordListResponse {
@@ -179,15 +210,27 @@ export namespace KeywordListResponse {
179
210
  isActive: boolean;
180
211
 
181
212
  /**
182
- * Next hourly usage charge time for this keyword query monitor.
213
+ * Next hourly credit charge time for this keyword query monitor.
183
214
  */
184
215
  nextBillingAt: string;
185
216
 
186
217
  query: string;
218
+
219
+ /**
220
+ * Customer-set label of the keyword monitor, when set.
221
+ */
222
+ name?: string;
187
223
  }
188
224
  }
189
225
 
190
226
  export interface KeywordDeactivateResponse {
227
+ deletionStatus: 'deleting';
228
+
229
+ /**
230
+ * Poll this monitor URL until it returns 404.
231
+ */
232
+ statusUrl: string;
233
+
191
234
  success: true;
192
235
  }
193
236
 
@@ -201,6 +244,11 @@ export interface KeywordCreateParams {
201
244
  * X search query to monitor. Whitespace is normalized.
202
245
  */
203
246
  query: string;
247
+
248
+ /**
249
+ * Your own label for the keyword monitor. Its events carry it as monitorName.
250
+ */
251
+ name?: string;
204
252
  }
205
253
 
206
254
  export interface KeywordUpdateParams {
@@ -210,6 +258,25 @@ export interface KeywordUpdateParams {
210
258
  eventTypes?: Array<Shared.EventType>;
211
259
 
212
260
  isActive?: boolean;
261
+
262
+ /**
263
+ * New label for the keyword monitor. Send null to remove it.
264
+ */
265
+ name?: string | null;
266
+ }
267
+
268
+ export interface KeywordListParams {
269
+ /**
270
+ * Previous nextCursor. The after alias also works. Offset pagination is not
271
+ * supported.
272
+ */
273
+ cursor?: string;
274
+
275
+ /**
276
+ * Maximum items per page: 1 to 200, default 200. Pass nextCursor as cursor for the
277
+ * next page.
278
+ */
279
+ limit?: number;
213
280
  }
214
281
 
215
282
  export declare namespace Keywords {
@@ -221,5 +288,6 @@ export declare namespace Keywords {
221
288
  type KeywordDeactivateResponse as KeywordDeactivateResponse,
222
289
  type KeywordCreateParams as KeywordCreateParams,
223
290
  type KeywordUpdateParams as KeywordUpdateParams,
291
+ type KeywordListParams as KeywordListParams,
224
292
  };
225
293
  }
@@ -11,6 +11,7 @@ import {
11
11
  KeywordCreateParams,
12
12
  KeywordCreateResponse,
13
13
  KeywordDeactivateResponse,
14
+ KeywordListParams,
14
15
  KeywordListResponse,
15
16
  KeywordRetrieveResponse,
16
17
  KeywordUpdateParams,
@@ -28,16 +29,16 @@ export class Monitors extends APIResource {
28
29
  keywords: KeywordsAPI.Keywords = new KeywordsAPI.Keywords(this._client);
29
30
 
30
31
  /**
31
- * Creates an account monitor. Monitors are unlimited. Active monitors check every
32
- * 1 second and cost 21 credits per hour. Events and webhook deliveries are
33
- * included. Creation requires available credits for the first hourly charge and
34
- * username lookup.
32
+ * Creates an account monitor, with no count limit. Active monitors check every
33
+ * second for 30 credits an hour, events & webhook deliveries included. That hourly
34
+ * price is a monitor's only charge. Creation needs the credits of the first hour.
35
35
  *
36
36
  * @example
37
37
  * ```ts
38
38
  * const monitor = await client.monitors.create({
39
39
  * eventTypes: ['tweet.new', 'tweet.reply'],
40
40
  * username: 'elonmusk',
41
+ * name: 'Launch watch',
41
42
  * });
42
43
  * ```
43
44
  */
@@ -46,7 +47,7 @@ export class Monitors extends APIResource {
46
47
  }
47
48
 
48
49
  /**
49
- * Get monitor
50
+ * Returns configuration and status for one account monitor.
50
51
  *
51
52
  * @example
52
53
  * ```ts
@@ -58,13 +59,14 @@ export class Monitors extends APIResource {
58
59
  }
59
60
 
60
61
  /**
61
- * Update monitor
62
+ * Updates mutable settings for an existing account monitor.
62
63
  *
63
64
  * @example
64
65
  * ```ts
65
66
  * const monitor = await client.monitors.update('id', {
66
67
  * eventTypes: ['tweet.new'],
67
68
  * isActive: true,
69
+ * name: 'Launch watch',
68
70
  * });
69
71
  * ```
70
72
  */
@@ -73,19 +75,23 @@ export class Monitors extends APIResource {
73
75
  }
74
76
 
75
77
  /**
76
- * List monitors
78
+ * Returns account monitors with their current operating states.
77
79
  *
78
80
  * @example
79
81
  * ```ts
80
82
  * const monitors = await client.monitors.list();
81
83
  * ```
82
84
  */
83
- list(options?: RequestOptions): APIPromise<MonitorListResponse> {
84
- return this._client.get('/monitors', options);
85
+ list(
86
+ query: MonitorListParams | null | undefined = {},
87
+ options?: RequestOptions,
88
+ ): APIPromise<MonitorListResponse> {
89
+ return this._client.get('/monitors', { query, ...options });
85
90
  }
86
91
 
87
92
  /**
88
- * Delete monitor
93
+ * Stops one account monitor, then removes its stored events in bounded batches.
94
+ * Poll statusUrl until the monitor returns 404.
89
95
  *
90
96
  * @example
91
97
  * ```ts
@@ -113,7 +119,7 @@ export interface Monitor {
113
119
  isActive: boolean;
114
120
 
115
121
  /**
116
- * Next hourly usage charge time for this account monitor.
122
+ * Next hourly credit charge time for this account monitor.
117
123
  */
118
124
  nextBillingAt: string;
119
125
 
@@ -121,6 +127,11 @@ export interface Monitor {
121
127
 
122
128
  xUserId: string;
123
129
 
130
+ /**
131
+ * Customer-set label of the account monitor, when set.
132
+ */
133
+ name?: string;
134
+
124
135
  /**
125
136
  * When Xquik automatically paused this monitor.
126
137
  */
@@ -129,7 +140,7 @@ export interface Monitor {
129
140
  /**
130
141
  * Why Xquik automatically paused this monitor.
131
142
  */
132
- pausedReason?: 'x_user_not_found';
143
+ pausedReason?: 'x_account_protected' | 'x_user_not_found';
133
144
  }
134
145
 
135
146
  export interface MonitorCreateResponse {
@@ -145,7 +156,7 @@ export interface MonitorCreateResponse {
145
156
  isActive: boolean;
146
157
 
147
158
  /**
148
- * Next hourly usage charge time. New active monitors are due immediately.
159
+ * Next hourly credit charge time. New active monitors are due immediately.
149
160
  */
150
161
  nextBillingAt: string;
151
162
 
@@ -155,12 +166,26 @@ export interface MonitorCreateResponse {
155
166
  }
156
167
 
157
168
  export interface MonitorListResponse {
169
+ hasMore: boolean;
170
+
158
171
  monitors: Array<Monitor>;
159
172
 
173
+ /**
174
+ * Account monitors on this page.
175
+ */
160
176
  total: number;
177
+
178
+ nextCursor?: string;
161
179
  }
162
180
 
163
181
  export interface MonitorDeactivateResponse {
182
+ deletionStatus: 'deleting';
183
+
184
+ /**
185
+ * Poll this monitor URL until it returns 404.
186
+ */
187
+ statusUrl: string;
188
+
164
189
  success: true;
165
190
  }
166
191
 
@@ -171,9 +196,15 @@ export interface MonitorCreateParams {
171
196
  eventTypes: Array<Shared.EventType>;
172
197
 
173
198
  /**
174
- * X username (without @)
199
+ * X username to monitor, with or without @
175
200
  */
176
201
  username: string;
202
+
203
+ /**
204
+ * Your label for the monitor. Its events carry it as monitorName. Whitespace is
205
+ * normalized.
206
+ */
207
+ name?: string;
177
208
  }
178
209
 
179
210
  export interface MonitorUpdateParams {
@@ -183,6 +214,25 @@ export interface MonitorUpdateParams {
183
214
  eventTypes?: Array<Shared.EventType>;
184
215
 
185
216
  isActive?: boolean;
217
+
218
+ /**
219
+ * New label for the account monitor. Send null to remove the label.
220
+ */
221
+ name?: string | null;
222
+ }
223
+
224
+ export interface MonitorListParams {
225
+ /**
226
+ * Previous nextCursor. The after alias also works. Offset pagination is not
227
+ * supported.
228
+ */
229
+ cursor?: string;
230
+
231
+ /**
232
+ * Maximum items per page: 1 to 200, default 200. Pass nextCursor as cursor for the
233
+ * next page.
234
+ */
235
+ limit?: number;
186
236
  }
187
237
 
188
238
  Monitors.Keywords = Keywords;
@@ -195,6 +245,7 @@ export declare namespace Monitors {
195
245
  type MonitorDeactivateResponse as MonitorDeactivateResponse,
196
246
  type MonitorCreateParams as MonitorCreateParams,
197
247
  type MonitorUpdateParams as MonitorUpdateParams,
248
+ type MonitorListParams as MonitorListParams,
198
249
  };
199
250
 
200
251
  export {
@@ -206,5 +257,6 @@ export declare namespace Monitors {
206
257
  type KeywordDeactivateResponse as KeywordDeactivateResponse,
207
258
  type KeywordCreateParams as KeywordCreateParams,
208
259
  type KeywordUpdateParams as KeywordUpdateParams,
260
+ type KeywordListParams as KeywordListParams,
209
261
  };
210
262
  }
@@ -13,7 +13,7 @@ import { RequestOptions } from '../internal/request-options';
13
13
  */
14
14
  export class Radar extends APIResource {
15
15
  /**
16
- * Get trending topics from curated sources
16
+ * Returns current topics and sources for writing research.
17
17
  */
18
18
  retrieveTrendingTopics(
19
19
  query: RadarRetrieveTrendingTopicsParams | null | undefined = {},
@@ -43,33 +43,26 @@ export interface RadarItem {
43
43
  language: string;
44
44
 
45
45
  /**
46
- * Source-specific fields. Shape varies per source:
47
- *
46
+ * Source fields vary:
48
47
  * - reddit: { author, authorId?, subreddit, subredditId?, subredditSubscribers?,
49
48
  * sourceFormat, score?, upvoteRatio?, estimatedUpvotes?, estimatedDownvotes?,
50
49
  * numberComments?, numberCrossposts?, selftext?, contentUrl?, domain?,
51
50
  * postHint?, linkFlairText?, distinguished?, totalAwardsReceived?, viewCount?,
52
51
  * editedAt?, galleryImageUrls?, redditVideo?, archived?, contestMode?,
53
52
  * isCrosspostable?, isMeta?, isNsfw?, isOriginalContent?, isRobotIndexable?,
54
- * isSelf?, isSpoiler?, isVideo?, locked?, stickied? }. `score` is Reddit's
55
- * public net score. Exact public upvote and downvote counts are not available.
56
- * Estimated counts derive from the public score and upvote ratio, which Reddit
57
- * may fuzz. Comment bodies are not included. Current items combine public
58
- * listing discovery with server-rendered post data and use `sourceFormat: html`;
59
- * `json` and `rss` remain for legacy rows.
60
- * - github: { starsToday: number }
61
- * - hacker_news: { points: number, numberComments: number }
62
- * - google_trends: { approxTraffic: number }
63
- * - polymarket: { volume24hr: number }
64
- * - wikipedia: { views: number }
53
+ * isSelf?, isSpoiler?, isVideo?, locked?, stickied? }.
54
+ * - github: { starsToday }
55
+ * - hacker_news: { points, numberComments }
56
+ * - google_trends: { approxTraffic }
57
+ * - polymarket: { volume24hr }
58
+ * - wikipedia: { views }
65
59
  * - trustmrr: { mrr, growthPercent, last30Days, total, customers,
66
60
  * activeSubscriptions, onSale, xHandle?, category?, askingPrice?, country?,
67
61
  * foundedDate?, googleSearchImpressionsLast30Days?, growthMrrPercent?,
68
62
  * multiple?, paymentProvider?, profitMarginLast30Days?, rank?,
69
- * revenuePerVisitor?, targetAudience?, visitorsLast30Days? } For the startup
70
- * growth source, xHandle is the founder's X username without @. The rank field
71
- * is the source's revenue rank. Result order represents reported 30-day
72
- * revenue-growth rank.
63
+ * revenuePerVisitor?, targetAudience?, visitorsLast30Days? } Reddit score is
64
+ * public net. Vote estimates use its fuzzed ratio. Comments are omitted. Startup
65
+ * xHandle omits @. rank is its growth rank.
73
66
  */
74
67
  metadata: RadarItem.Metadata;
75
68
 
@@ -100,43 +93,45 @@ export interface RadarItem {
100
93
 
101
94
  export namespace RadarItem {
102
95
  /**
103
- * Source-specific fields. Shape varies per source:
104
- *
96
+ * Source fields vary:
105
97
  * - reddit: { author, authorId?, subreddit, subredditId?, subredditSubscribers?,
106
98
  * sourceFormat, score?, upvoteRatio?, estimatedUpvotes?, estimatedDownvotes?,
107
99
  * numberComments?, numberCrossposts?, selftext?, contentUrl?, domain?,
108
100
  * postHint?, linkFlairText?, distinguished?, totalAwardsReceived?, viewCount?,
109
101
  * editedAt?, galleryImageUrls?, redditVideo?, archived?, contestMode?,
110
102
  * isCrosspostable?, isMeta?, isNsfw?, isOriginalContent?, isRobotIndexable?,
111
- * isSelf?, isSpoiler?, isVideo?, locked?, stickied? }. `score` is Reddit's
112
- * public net score. Exact public upvote and downvote counts are not available.
113
- * Estimated counts derive from the public score and upvote ratio, which Reddit
114
- * may fuzz. Comment bodies are not included. Current items combine public
115
- * listing discovery with server-rendered post data and use `sourceFormat: html`;
116
- * `json` and `rss` remain for legacy rows.
117
- * - github: { starsToday: number }
118
- * - hacker_news: { points: number, numberComments: number }
119
- * - google_trends: { approxTraffic: number }
120
- * - polymarket: { volume24hr: number }
121
- * - wikipedia: { views: number }
103
+ * isSelf?, isSpoiler?, isVideo?, locked?, stickied? }.
104
+ * - github: { starsToday }
105
+ * - hacker_news: { points, numberComments }
106
+ * - google_trends: { approxTraffic }
107
+ * - polymarket: { volume24hr }
108
+ * - wikipedia: { views }
122
109
  * - trustmrr: { mrr, growthPercent, last30Days, total, customers,
123
110
  * activeSubscriptions, onSale, xHandle?, category?, askingPrice?, country?,
124
111
  * foundedDate?, googleSearchImpressionsLast30Days?, growthMrrPercent?,
125
112
  * multiple?, paymentProvider?, profitMarginLast30Days?, rank?,
126
- * revenuePerVisitor?, targetAudience?, visitorsLast30Days? } For the startup
127
- * growth source, xHandle is the founder's X username without @. The rank field
128
- * is the source's revenue rank. Result order represents reported 30-day
129
- * revenue-growth rank.
113
+ * revenuePerVisitor?, targetAudience?, visitorsLast30Days? } Reddit score is
114
+ * public net. Vote estimates use its fuzzed ratio. Comments are omitted. Startup
115
+ * xHandle omits @. rank is its growth rank.
130
116
  */
131
117
  export interface Metadata {
132
118
  author?: string;
133
119
 
134
120
  contentUrl?: string;
135
121
 
122
+ /**
123
+ * Whole number from 0.
124
+ */
136
125
  estimatedDownvotes?: number;
137
126
 
127
+ /**
128
+ * Whole number from 0.
129
+ */
138
130
  estimatedUpvotes?: number;
139
131
 
132
+ /**
133
+ * Whole number from 0.
134
+ */
140
135
  numberComments?: number;
141
136
 
142
137
  score?: number;
@@ -169,7 +164,8 @@ export interface RadarRetrieveTrendingTopicsResponse {
169
164
 
170
165
  export interface RadarRetrieveTrendingTopicsParams {
171
166
  /**
172
- * Cursor for pagination (from prior response nextCursor).
167
+ * Cursor for pagination, from the prior response's nextCursor. A cursor the radar
168
+ * can't read gets 400 `invalid_input`.
173
169
  */
174
170
  after?: string;
175
171