x-twitter-scraper 0.8.4 → 0.10.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 (147) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/README.md +1 -3
  3. package/package.json +1 -1
  4. package/resources/credits.d.mts +5 -5
  5. package/resources/credits.d.ts +5 -5
  6. package/resources/credits.js +2 -2
  7. package/resources/credits.mjs +2 -2
  8. package/resources/draws.d.mts +3 -2
  9. package/resources/draws.d.mts.map +1 -1
  10. package/resources/draws.d.ts +3 -2
  11. package/resources/draws.d.ts.map +1 -1
  12. package/resources/events.d.mts +6 -2
  13. package/resources/events.d.mts.map +1 -1
  14. package/resources/events.d.ts +6 -2
  15. package/resources/events.d.ts.map +1 -1
  16. package/resources/extractions.d.mts +672 -91
  17. package/resources/extractions.d.mts.map +1 -1
  18. package/resources/extractions.d.ts +672 -91
  19. package/resources/extractions.d.ts.map +1 -1
  20. package/resources/extractions.js +3 -2
  21. package/resources/extractions.js.map +1 -1
  22. package/resources/extractions.mjs +3 -2
  23. package/resources/extractions.mjs.map +1 -1
  24. package/resources/guest-wallets.d.mts +20 -18
  25. package/resources/guest-wallets.d.mts.map +1 -1
  26. package/resources/guest-wallets.d.ts +20 -18
  27. package/resources/guest-wallets.d.ts.map +1 -1
  28. package/resources/guest-wallets.js +9 -13
  29. package/resources/guest-wallets.js.map +1 -1
  30. package/resources/guest-wallets.mjs +9 -13
  31. package/resources/guest-wallets.mjs.map +1 -1
  32. package/resources/monitors/monitors.d.mts +8 -0
  33. package/resources/monitors/monitors.d.mts.map +1 -1
  34. package/resources/monitors/monitors.d.ts +8 -0
  35. package/resources/monitors/monitors.d.ts.map +1 -1
  36. package/resources/monitors/monitors.js.map +1 -1
  37. package/resources/monitors/monitors.mjs.map +1 -1
  38. package/resources/shared.d.mts +11 -11
  39. package/resources/shared.d.mts.map +1 -1
  40. package/resources/shared.d.ts +11 -11
  41. package/resources/shared.d.ts.map +1 -1
  42. package/resources/support/attachments.d.mts +33 -0
  43. package/resources/support/attachments.d.mts.map +1 -0
  44. package/resources/support/attachments.d.ts +33 -0
  45. package/resources/support/attachments.d.ts.map +1 -0
  46. package/resources/support/attachments.js +42 -0
  47. package/resources/support/attachments.js.map +1 -0
  48. package/resources/support/attachments.mjs +38 -0
  49. package/resources/support/attachments.mjs.map +1 -0
  50. package/resources/support/index.d.mts +1 -0
  51. package/resources/support/index.d.mts.map +1 -1
  52. package/resources/support/index.d.ts +1 -0
  53. package/resources/support/index.d.ts.map +1 -1
  54. package/resources/support/index.js +3 -1
  55. package/resources/support/index.js.map +1 -1
  56. package/resources/support/index.mjs +1 -0
  57. package/resources/support/index.mjs.map +1 -1
  58. package/resources/support/support.d.mts +4 -0
  59. package/resources/support/support.d.mts.map +1 -1
  60. package/resources/support/support.d.ts +4 -0
  61. package/resources/support/support.d.ts.map +1 -1
  62. package/resources/support/support.js +4 -0
  63. package/resources/support/support.js.map +1 -1
  64. package/resources/support/support.mjs +4 -0
  65. package/resources/support/support.mjs.map +1 -1
  66. package/resources/x/accounts.d.mts +3 -5
  67. package/resources/x/accounts.d.mts.map +1 -1
  68. package/resources/x/accounts.d.ts +3 -5
  69. package/resources/x/accounts.d.ts.map +1 -1
  70. package/resources/x/communities/communities.d.mts +112 -0
  71. package/resources/x/communities/communities.d.mts.map +1 -1
  72. package/resources/x/communities/communities.d.ts +112 -0
  73. package/resources/x/communities/communities.d.ts.map +1 -1
  74. package/resources/x/communities/communities.js.map +1 -1
  75. package/resources/x/communities/communities.mjs.map +1 -1
  76. package/resources/x/index.d.mts +2 -2
  77. package/resources/x/index.d.mts.map +1 -1
  78. package/resources/x/index.d.ts +2 -2
  79. package/resources/x/index.d.ts.map +1 -1
  80. package/resources/x/index.js.map +1 -1
  81. package/resources/x/index.mjs.map +1 -1
  82. package/resources/x/lists.d.mts +115 -4
  83. package/resources/x/lists.d.mts.map +1 -1
  84. package/resources/x/lists.d.ts +115 -4
  85. package/resources/x/lists.d.ts.map +1 -1
  86. package/resources/x/tweets/index.d.mts +1 -1
  87. package/resources/x/tweets/index.d.mts.map +1 -1
  88. package/resources/x/tweets/index.d.ts +1 -1
  89. package/resources/x/tweets/index.d.ts.map +1 -1
  90. package/resources/x/tweets/index.js.map +1 -1
  91. package/resources/x/tweets/index.mjs.map +1 -1
  92. package/resources/x/tweets/tweets.d.mts +482 -38
  93. package/resources/x/tweets/tweets.d.mts.map +1 -1
  94. package/resources/x/tweets/tweets.d.ts +482 -38
  95. package/resources/x/tweets/tweets.d.ts.map +1 -1
  96. package/resources/x/tweets/tweets.js +5 -8
  97. package/resources/x/tweets/tweets.js.map +1 -1
  98. package/resources/x/tweets/tweets.mjs +5 -8
  99. package/resources/x/tweets/tweets.mjs.map +1 -1
  100. package/resources/x/users/index.d.mts +1 -1
  101. package/resources/x/users/index.d.mts.map +1 -1
  102. package/resources/x/users/index.d.ts +1 -1
  103. package/resources/x/users/index.d.ts.map +1 -1
  104. package/resources/x/users/index.js.map +1 -1
  105. package/resources/x/users/index.mjs.map +1 -1
  106. package/resources/x/users/users.d.mts +910 -40
  107. package/resources/x/users/users.d.mts.map +1 -1
  108. package/resources/x/users/users.d.ts +910 -40
  109. package/resources/x/users/users.d.ts.map +1 -1
  110. package/resources/x/users/users.js +12 -7
  111. package/resources/x/users/users.js.map +1 -1
  112. package/resources/x/users/users.mjs +12 -7
  113. package/resources/x/users/users.mjs.map +1 -1
  114. package/resources/x/x.d.mts +4 -4
  115. package/resources/x/x.d.mts.map +1 -1
  116. package/resources/x/x.d.ts +4 -4
  117. package/resources/x/x.d.ts.map +1 -1
  118. package/resources/x/x.js.map +1 -1
  119. package/resources/x/x.mjs.map +1 -1
  120. package/src/resources/credits.ts +5 -5
  121. package/src/resources/draws.ts +3 -2
  122. package/src/resources/events.ts +7 -2
  123. package/src/resources/extractions.ts +929 -185
  124. package/src/resources/guest-wallets.ts +20 -18
  125. package/src/resources/monitors/monitors.ts +10 -0
  126. package/src/resources/shared.ts +17 -9
  127. package/src/resources/support/attachments.ts +57 -0
  128. package/src/resources/support/index.ts +1 -0
  129. package/src/resources/support/support.ts +6 -0
  130. package/src/resources/x/accounts.ts +3 -5
  131. package/src/resources/x/communities/communities.ts +140 -0
  132. package/src/resources/x/index.ts +4 -0
  133. package/src/resources/x/lists.ts +143 -4
  134. package/src/resources/x/tweets/index.ts +1 -0
  135. package/src/resources/x/tweets/tweets.ts +610 -37
  136. package/src/resources/x/users/index.ts +3 -0
  137. package/src/resources/x/users/users.ts +1363 -221
  138. package/src/resources/x/x.ts +8 -0
  139. package/src/version.ts +1 -1
  140. package/version.d.mts +1 -1
  141. package/version.d.mts.map +1 -1
  142. package/version.d.ts +1 -1
  143. package/version.d.ts.map +1 -1
  144. package/version.js +1 -1
  145. package/version.js.map +1 -1
  146. package/version.mjs +1 -1
  147. package/version.mjs.map +1 -1
@@ -131,10 +131,9 @@ export class Tweets extends APIResource {
131
131
  }
132
132
 
133
133
  /**
134
- * Returns direct replies. Complete mode merges available timeline views, supported
135
- * rankings, every forward cursor module, labeled hidden-content branches,
136
- * exact-parent time partitions scaled to the reported reply count, and search. It
137
- * separates nested replies and returns 424 below 80% coverage.
134
+ * Returns direct replies. Omit mode for automatic maximum coverage with resumable
135
+ * pagination. Complete mode returns nested replies, diagnostics, and 424 when
136
+ * direct coverage stays below 80%.
138
137
  *
139
138
  * @example
140
139
  * ```ts
@@ -186,16 +185,14 @@ export class Tweets extends APIResource {
186
185
  }
187
186
 
188
187
  /**
189
- * Search tweets by query, Tweet ID, X status URL, or account date window
188
+ * No-mode search maximizes coverage.
190
189
  *
191
190
  * @example
192
191
  * ```ts
193
- * const paginatedTweets = await client.x.tweets.search({
194
- * q: 'q',
195
- * });
192
+ * const response = await client.x.tweets.search({ q: 'q' });
196
193
  * ```
197
194
  */
198
- search(query: TweetSearchParams, options?: RequestOptions): APIPromise<Shared.PaginatedTweets> {
195
+ search(query: TweetSearchParams, options?: RequestOptions): APIPromise<TweetSearchResponse> {
199
196
  return this._client.get('/x/tweets/search', { query, ...options });
200
197
  }
201
198
  }
@@ -994,8 +991,9 @@ export namespace TweetDeleteResponse {
994
991
  }
995
992
 
996
993
  /**
997
- * Reply rows. Complete mode also returns nested replies and coverage diagnostics.
998
- * Keep nested replies separate from direct coverage.
994
+ * Direct reply rows. No-mode requests use resumable automatic coverage. Complete
995
+ * mode also returns nested replies and coverage diagnostics. Keep nested replies
996
+ * separate from direct coverage.
999
997
  */
1000
998
  export interface TweetGetRepliesResponse extends Shared.PaginatedTweets {
1001
999
  /**
@@ -1197,6 +1195,119 @@ export namespace TweetGetRepliesResponse {
1197
1195
  }
1198
1196
  }
1199
1197
 
1198
+ /**
1199
+ * No-mode search, user Tweet, user reply, and direct reply reads use automatic
1200
+ * coverage. Shape, filters, aliases, and billing stay compatible. Unprefixed
1201
+ * cursors remain legacy. Follow next_cursor while has_next_page is true. An empty
1202
+ * filtered page can still have has_next_page true.
1203
+ */
1204
+ export type TweetSearchResponse = Shared.PaginatedTweets | TweetSearchResponse.TweetSearchCoverageResponse;
1205
+
1206
+ export namespace TweetSearchResponse {
1207
+ /**
1208
+ * No-mode search, user Tweet, user reply, and direct reply reads use automatic
1209
+ * coverage. Shape, filters, aliases, and billing stay compatible. Unprefixed
1210
+ * cursors remain legacy. Follow next_cursor while has_next_page is true. An empty
1211
+ * filtered page can still have has_next_page true.
1212
+ */
1213
+ export interface TweetSearchCoverageResponse
1214
+ extends Omit<Shared.PaginatedTweets, 'has_next_page' | 'next_cursor'> {
1215
+ /**
1216
+ * Coverage evidence across parallel search strategies.
1217
+ */
1218
+ diagnostic: TweetSearchCoverageResponse.Diagnostic;
1219
+
1220
+ has_next_page?: false;
1221
+
1222
+ next_cursor?: '';
1223
+ }
1224
+
1225
+ export namespace TweetSearchCoverageResponse {
1226
+ /**
1227
+ * Coverage evidence across parallel search strategies.
1228
+ */
1229
+ export interface Diagnostic {
1230
+ /**
1231
+ * True when every strategy exhausted its source.
1232
+ */
1233
+ complete: boolean;
1234
+
1235
+ cursorFailureCount: number;
1236
+
1237
+ deadlineReached: boolean;
1238
+
1239
+ duplicateCount: number;
1240
+
1241
+ failedStrategyCount: number;
1242
+
1243
+ malformedCount: number;
1244
+
1245
+ pagesFetched: number;
1246
+
1247
+ /**
1248
+ * Whether bounded time windows ran in parallel.
1249
+ */
1250
+ partitioned: boolean;
1251
+
1252
+ /**
1253
+ * Whether credits or the requested limit reduced output.
1254
+ */
1255
+ responseTruncated: boolean;
1256
+
1257
+ resultLimitReached: boolean;
1258
+
1259
+ returnedTweets: number;
1260
+
1261
+ stalledStrategyCount: number;
1262
+
1263
+ strategies: Array<Diagnostic.Strategy>;
1264
+
1265
+ strategyCount: number;
1266
+
1267
+ uniqueTweets: number;
1268
+ }
1269
+
1270
+ export namespace Diagnostic {
1271
+ export interface Strategy {
1272
+ duplicateCount: number;
1273
+
1274
+ pagesFetched: number;
1275
+
1276
+ queryType: 'Latest' | 'Top';
1277
+
1278
+ stopReason:
1279
+ | 'cursor_failure'
1280
+ | 'deadline'
1281
+ | 'exhausted'
1282
+ | 'failed'
1283
+ | 'page_limit'
1284
+ | 'result_limit'
1285
+ | 'stalled';
1286
+
1287
+ strategy: number;
1288
+
1289
+ uniqueAdded: number;
1290
+
1291
+ /**
1292
+ * Non-overlapping time partition used by one strategy.
1293
+ */
1294
+ window?: Strategy.Window;
1295
+ }
1296
+
1297
+ export namespace Strategy {
1298
+ /**
1299
+ * Non-overlapping time partition used by one strategy.
1300
+ */
1301
+ export interface Window {
1302
+ sinceTime: string;
1303
+
1304
+ untilTime: string;
1305
+ }
1306
+ }
1307
+ }
1308
+ }
1309
+ }
1310
+
1200
1311
  export interface TweetCreateParams {
1201
1312
  /**
1202
1313
  * Body param: X account (@username or account ID)
@@ -1262,18 +1373,87 @@ export interface TweetDeleteParams {
1262
1373
  }
1263
1374
 
1264
1375
  export interface TweetGetFavoritersParams {
1376
+ /**
1377
+ * Match any comma-separated or line-separated bio term, ignoring case.
1378
+ */
1379
+ bioContains?: string;
1380
+
1265
1381
  /**
1266
1382
  * Pagination cursor for favoriters
1267
1383
  */
1268
1384
  cursor?: string;
1269
1385
 
1270
1386
  /**
1271
- * Maximum user profiles requested from this page (20-200, default 200). The
1272
- * response can contain fewer profiles because the source returned fewer or
1273
- * the available usage balance covers fewer results. Keep requesting next_cursor while
1274
- * has_next_page is true. The deprecated limit and count aliases remain accepted.
1387
+ * Only return profiles with a location.
1388
+ */
1389
+ hasLocation?: boolean;
1390
+
1391
+ /**
1392
+ * Only return profiles with a website.
1393
+ */
1394
+ hasWebsite?: boolean;
1395
+
1396
+ /**
1397
+ * Match a location substring, ignoring case.
1398
+ */
1399
+ locationContains?: string;
1400
+
1401
+ /**
1402
+ * Maximum follower count. Missing counts pass this maximum.
1403
+ */
1404
+ maxFollowers?: number;
1405
+
1406
+ /**
1407
+ * Maximum following count.
1408
+ */
1409
+ maxFollowing?: number;
1410
+
1411
+ /**
1412
+ * Maximum post count. maxPosts is also accepted.
1413
+ */
1414
+ maxStatuses?: number;
1415
+
1416
+ /**
1417
+ * Minimum account age in whole days.
1418
+ */
1419
+ minAccountAgeDays?: number;
1420
+
1421
+ /**
1422
+ * Minimum follower count. Filtering happens before billing.
1423
+ */
1424
+ minFollowers?: number;
1425
+
1426
+ /**
1427
+ * Minimum following count.
1428
+ */
1429
+ minFollowing?: number;
1430
+
1431
+ /**
1432
+ * Minimum post count. minPosts is also accepted.
1433
+ */
1434
+ minStatuses?: number;
1435
+
1436
+ /**
1437
+ * Maximum user profiles requested from this page (20-200, default 200). Source,
1438
+ * filters, or credits can return fewer profiles. Keep requesting next_cursor while
1439
+ * has_next_page is true. Deprecated aliases remain accepted.
1275
1440
  */
1276
1441
  pageSize?: number;
1442
+
1443
+ /**
1444
+ * Match a username substring, ignoring case.
1445
+ */
1446
+ usernameContains?: string;
1447
+
1448
+ /**
1449
+ * Only return verified profiles.
1450
+ */
1451
+ verifiedOnly?: boolean;
1452
+
1453
+ /**
1454
+ * Match the verification type exactly, ignoring case.
1455
+ */
1456
+ verifiedType?: string;
1277
1457
  }
1278
1458
 
1279
1459
  export interface TweetGetQuotesParams {
@@ -1283,6 +1463,16 @@ export interface TweetGetQuotesParams {
1283
1463
  */
1284
1464
  anyWords?: string;
1285
1465
 
1466
+ /**
1467
+ * Only return tweets from Blue-verified authors.
1468
+ */
1469
+ blueVerifiedOnly?: boolean;
1470
+
1471
+ /**
1472
+ * Match the Tweet card name.
1473
+ */
1474
+ cardName?: string;
1475
+
1286
1476
  /**
1287
1477
  * Cashtags separated by spaces, commas, or lines.
1288
1478
  */
@@ -1303,6 +1493,11 @@ export interface TweetGetQuotesParams {
1303
1493
  */
1304
1494
  exactPhrase?: string;
1305
1495
 
1496
+ /**
1497
+ * Exclude a source application.
1498
+ */
1499
+ excludeSource?: string;
1500
+
1306
1501
  /**
1307
1502
  * Words or quoted phrases to exclude. Separate with spaces, commas, or lines.
1308
1503
  */
@@ -1313,6 +1508,11 @@ export interface TweetGetQuotesParams {
1313
1508
  */
1314
1509
  fromUser?: string;
1315
1510
 
1511
+ /**
1512
+ * Match latitude, longitude, and radius.
1513
+ */
1514
+ geocode?: string;
1515
+
1316
1516
  /**
1317
1517
  * Hashtags separated by spaces, commas, or lines.
1318
1518
  */
@@ -1333,6 +1533,31 @@ export interface TweetGetQuotesParams {
1333
1533
  */
1334
1534
  language?: string;
1335
1535
 
1536
+ /**
1537
+ * Maximum likes threshold. maxLikes is also accepted.
1538
+ */
1539
+ maxFaves?: number;
1540
+
1541
+ /**
1542
+ * Return Tweets older than this Tweet ID.
1543
+ */
1544
+ maxId?: string;
1545
+
1546
+ /**
1547
+ * Maximum quotes threshold.
1548
+ */
1549
+ maxQuotes?: number;
1550
+
1551
+ /**
1552
+ * Maximum replies threshold.
1553
+ */
1554
+ maxReplies?: number;
1555
+
1556
+ /**
1557
+ * Maximum retweets threshold.
1558
+ */
1559
+ maxRetweets?: number;
1560
+
1336
1561
  /**
1337
1562
  * Filter by media type.
1338
1563
  */
@@ -1343,6 +1568,11 @@ export interface TweetGetQuotesParams {
1343
1568
  */
1344
1569
  mentioning?: string;
1345
1570
 
1571
+ /**
1572
+ * Minimum bookmark count threshold.
1573
+ */
1574
+ minBookmarks?: number;
1575
+
1346
1576
  /**
1347
1577
  * Minimum likes threshold.
1348
1578
  */
@@ -1363,6 +1593,26 @@ export interface TweetGetQuotesParams {
1363
1593
  */
1364
1594
  minRetweets?: number;
1365
1595
 
1596
+ /**
1597
+ * Minimum view count threshold.
1598
+ */
1599
+ minViews?: number;
1600
+
1601
+ /**
1602
+ * Only return native reposts.
1603
+ */
1604
+ nativeRetweets?: boolean;
1605
+
1606
+ /**
1607
+ * Match a place name.
1608
+ */
1609
+ near?: string;
1610
+
1611
+ /**
1612
+ * Only return news results.
1613
+ */
1614
+ news?: boolean;
1615
+
1366
1616
  /**
1367
1617
  * Maximum page items (1-100, default 20). Source, filters, or credits can reduce
1368
1618
  * results. Continue while has_next_page is true. Deprecated limit and count
@@ -1395,16 +1645,31 @@ export interface TweetGetQuotesParams {
1395
1645
  */
1396
1646
  retweetsOfTweetId?: string;
1397
1647
 
1648
+ /**
1649
+ * Enable the safe-search filter.
1650
+ */
1651
+ safe?: boolean;
1652
+
1398
1653
  /**
1399
1654
  * Start date in YYYY-MM-DD format.
1400
1655
  */
1401
1656
  sinceDate?: string;
1402
1657
 
1658
+ /**
1659
+ * Return Tweets newer than this Tweet ID.
1660
+ */
1661
+ sinceId?: string;
1662
+
1403
1663
  /**
1404
1664
  * Unix timestamp - return quotes posted after this time
1405
1665
  */
1406
1666
  sinceTime?: string;
1407
1667
 
1668
+ /**
1669
+ * Match the source application.
1670
+ */
1671
+ source?: string;
1672
+
1408
1673
  /**
1409
1674
  * Filter replies sent to a username.
1410
1675
  */
@@ -1429,6 +1694,16 @@ export interface TweetGetQuotesParams {
1429
1694
  * Only return tweets from verified authors.
1430
1695
  */
1431
1696
  verifiedOnly?: boolean;
1697
+
1698
+ /**
1699
+ * Set the radius for the near filter.
1700
+ */
1701
+ within?: string;
1702
+
1703
+ /**
1704
+ * Match Tweets inside a recent time window.
1705
+ */
1706
+ withinTime?: string;
1432
1707
  }
1433
1708
 
1434
1709
  export interface TweetGetRepliesParams {
@@ -1438,6 +1713,16 @@ export interface TweetGetRepliesParams {
1438
1713
  */
1439
1714
  anyWords?: string;
1440
1715
 
1716
+ /**
1717
+ * Only return tweets from Blue-verified authors.
1718
+ */
1719
+ blueVerifiedOnly?: boolean;
1720
+
1721
+ /**
1722
+ * Match the Tweet card name.
1723
+ */
1724
+ cardName?: string;
1725
+
1441
1726
  /**
1442
1727
  * Cashtags separated by spaces, commas, or lines.
1443
1728
  */
@@ -1449,7 +1734,8 @@ export interface TweetGetRepliesParams {
1449
1734
  conversationId?: string;
1450
1735
 
1451
1736
  /**
1452
- * Pagination cursor for tweet replies
1737
+ * Cursor from the previous response. Xquik cursors resume automatic coverage.
1738
+ * Existing unprefixed cursors keep legacy standard behavior.
1453
1739
  */
1454
1740
  cursor?: string;
1455
1741
 
@@ -1458,6 +1744,16 @@ export interface TweetGetRepliesParams {
1458
1744
  */
1459
1745
  exactPhrase?: string;
1460
1746
 
1747
+ /**
1748
+ * Exclude replies written by the source-post author.
1749
+ */
1750
+ excludeOriginalAuthor?: boolean;
1751
+
1752
+ /**
1753
+ * Exclude a source application.
1754
+ */
1755
+ excludeSource?: string;
1756
+
1461
1757
  /**
1462
1758
  * Words or quoted phrases to exclude. Separate with spaces, commas, or lines.
1463
1759
  */
@@ -1468,11 +1764,26 @@ export interface TweetGetRepliesParams {
1468
1764
  */
1469
1765
  fromUser?: string;
1470
1766
 
1767
+ /**
1768
+ * Match latitude, longitude, and radius.
1769
+ */
1770
+ geocode?: string;
1771
+
1471
1772
  /**
1472
1773
  * Hashtags separated by spaces, commas, or lines.
1473
1774
  */
1474
1775
  hashtags?: string;
1475
1776
 
1777
+ /**
1778
+ * Only return replies containing media.
1779
+ */
1780
+ hasMediaOnly?: boolean;
1781
+
1782
+ /**
1783
+ * Include the source post and count it toward limit.
1784
+ */
1785
+ includeOriginalPost?: boolean;
1786
+
1476
1787
  /**
1477
1788
  * Only replies to this tweet ID.
1478
1789
  */
@@ -1484,12 +1795,42 @@ export interface TweetGetRepliesParams {
1484
1795
  language?: string;
1485
1796
 
1486
1797
  /**
1487
- * With mode=complete, maximum combined direct and nested reply rows (1-25000).
1488
- * Without complete mode, this is the deprecated pageSize alias and uses the normal
1489
- * 1-100 page range.
1798
+ * With mode=complete, maximum combined direct and nested reply rows (1-25000,
1799
+ * default 25000). Automatic pages accept 1-300. Standard pages accept 1-100.
1800
+ * Prefer pageSize outside complete mode.
1490
1801
  */
1491
1802
  limit?: number;
1492
1803
 
1804
+ /**
1805
+ * Maximum reply depth from the source post.
1806
+ */
1807
+ maxDepth?: number;
1808
+
1809
+ /**
1810
+ * Maximum likes threshold. maxLikes is also accepted.
1811
+ */
1812
+ maxFaves?: number;
1813
+
1814
+ /**
1815
+ * Return Tweets older than this Tweet ID.
1816
+ */
1817
+ maxId?: string;
1818
+
1819
+ /**
1820
+ * Maximum quotes threshold.
1821
+ */
1822
+ maxQuotes?: number;
1823
+
1824
+ /**
1825
+ * Maximum replies threshold.
1826
+ */
1827
+ maxReplies?: number;
1828
+
1829
+ /**
1830
+ * Maximum retweets threshold.
1831
+ */
1832
+ maxRetweets?: number;
1833
+
1493
1834
  /**
1494
1835
  * Filter by media type.
1495
1836
  */
@@ -1500,6 +1841,11 @@ export interface TweetGetRepliesParams {
1500
1841
  */
1501
1842
  mentioning?: string;
1502
1843
 
1844
+ /**
1845
+ * Minimum bookmark count threshold.
1846
+ */
1847
+ minBookmarks?: number;
1848
+
1503
1849
  /**
1504
1850
  * Minimum likes threshold.
1505
1851
  */
@@ -1521,15 +1867,36 @@ export interface TweetGetRepliesParams {
1521
1867
  minRetweets?: number;
1522
1868
 
1523
1869
  /**
1524
- * Set complete for maximum-coverage collection. Complete mode accepts only limit.
1525
- * Remove cursor, pageSize, count, time ranges, and tweet filters.
1870
+ * Minimum view count threshold.
1526
1871
  */
1527
- mode?: 'complete';
1872
+ minViews?: number;
1528
1873
 
1529
1874
  /**
1530
- * Maximum page items (1-100, default 20). Source, filters, or credits can reduce
1531
- * results. Continue while has_next_page is true. Deprecated limit and count
1532
- * aliases remain accepted.
1875
+ * Optional advanced override. Omit mode for automatic maximum direct reply
1876
+ * coverage with pagination. Standard keeps legacy pagination. Complete returns
1877
+ * direct and nested replies with diagnostics, scope, depth, sorting, and
1878
+ * original-post controls.
1879
+ */
1880
+ mode?: 'standard' | 'complete';
1881
+
1882
+ /**
1883
+ * Only return native reposts.
1884
+ */
1885
+ nativeRetweets?: boolean;
1886
+
1887
+ /**
1888
+ * Match a place name.
1889
+ */
1890
+ near?: string;
1891
+
1892
+ /**
1893
+ * Only return news results.
1894
+ */
1895
+ news?: boolean;
1896
+
1897
+ /**
1898
+ * Automatic pages accept 1-300 Tweets. Standard pages keep 1-100. Default 20.
1899
+ * Continue while has_next_page is true. Deprecated aliases remain accepted.
1533
1900
  */
1534
1901
  pageSize?: number;
1535
1902
 
@@ -1558,16 +1925,41 @@ export interface TweetGetRepliesParams {
1558
1925
  */
1559
1926
  retweetsOfTweetId?: string;
1560
1927
 
1928
+ /**
1929
+ * Enable the safe-search filter.
1930
+ */
1931
+ safe?: boolean;
1932
+
1933
+ /**
1934
+ * Select all replies, direct replies, or nested replies.
1935
+ */
1936
+ scope?: 'all' | 'direct' | 'nested';
1937
+
1561
1938
  /**
1562
1939
  * Start date in YYYY-MM-DD format.
1563
1940
  */
1564
1941
  sinceDate?: string;
1565
1942
 
1943
+ /**
1944
+ * Return Tweets newer than this Tweet ID.
1945
+ */
1946
+ sinceId?: string;
1947
+
1566
1948
  /**
1567
1949
  * Unix timestamp - return replies posted after this time
1568
1950
  */
1569
1951
  sinceTime?: string;
1570
1952
 
1953
+ /**
1954
+ * Sort the selected replies before applying limit.
1955
+ */
1956
+ sort?: 'relevance' | 'latest' | 'oldest' | 'likes';
1957
+
1958
+ /**
1959
+ * Match the source application.
1960
+ */
1961
+ source?: string;
1962
+
1571
1963
  /**
1572
1964
  * Filter replies sent to a username.
1573
1965
  */
@@ -1592,21 +1984,100 @@ export interface TweetGetRepliesParams {
1592
1984
  * Only return tweets from verified authors.
1593
1985
  */
1594
1986
  verifiedOnly?: boolean;
1987
+
1988
+ /**
1989
+ * Set the radius for the near filter.
1990
+ */
1991
+ within?: string;
1992
+
1993
+ /**
1994
+ * Match Tweets inside a recent time window.
1995
+ */
1996
+ withinTime?: string;
1595
1997
  }
1596
1998
 
1597
1999
  export interface TweetGetRetweetersParams {
2000
+ /**
2001
+ * Match any comma-separated or line-separated bio term, ignoring case.
2002
+ */
2003
+ bioContains?: string;
2004
+
1598
2005
  /**
1599
2006
  * Pagination cursor for retweeters
1600
2007
  */
1601
2008
  cursor?: string;
1602
2009
 
1603
2010
  /**
1604
- * Maximum user profiles requested from this page (20-200, default 200). The
1605
- * response can contain fewer profiles because the source returned fewer or
1606
- * the available usage balance covers fewer results. Keep requesting next_cursor while
1607
- * has_next_page is true. The deprecated limit and count aliases remain accepted.
2011
+ * Only return profiles with a location.
2012
+ */
2013
+ hasLocation?: boolean;
2014
+
2015
+ /**
2016
+ * Only return profiles with a website.
2017
+ */
2018
+ hasWebsite?: boolean;
2019
+
2020
+ /**
2021
+ * Match a location substring, ignoring case.
2022
+ */
2023
+ locationContains?: string;
2024
+
2025
+ /**
2026
+ * Maximum follower count. Missing counts pass this maximum.
2027
+ */
2028
+ maxFollowers?: number;
2029
+
2030
+ /**
2031
+ * Maximum following count.
2032
+ */
2033
+ maxFollowing?: number;
2034
+
2035
+ /**
2036
+ * Maximum post count. maxPosts is also accepted.
2037
+ */
2038
+ maxStatuses?: number;
2039
+
2040
+ /**
2041
+ * Minimum account age in whole days.
2042
+ */
2043
+ minAccountAgeDays?: number;
2044
+
2045
+ /**
2046
+ * Minimum follower count. Filtering happens before billing.
2047
+ */
2048
+ minFollowers?: number;
2049
+
2050
+ /**
2051
+ * Minimum following count.
2052
+ */
2053
+ minFollowing?: number;
2054
+
2055
+ /**
2056
+ * Minimum post count. minPosts is also accepted.
2057
+ */
2058
+ minStatuses?: number;
2059
+
2060
+ /**
2061
+ * Maximum user profiles requested from this page (20-200, default 200). Source,
2062
+ * filters, or credits can return fewer profiles. Keep requesting next_cursor while
2063
+ * has_next_page is true. Deprecated aliases remain accepted.
1608
2064
  */
1609
2065
  pageSize?: number;
2066
+
2067
+ /**
2068
+ * Match a username substring, ignoring case.
2069
+ */
2070
+ usernameContains?: string;
2071
+
2072
+ /**
2073
+ * Only return verified profiles.
2074
+ */
2075
+ verifiedOnly?: boolean;
2076
+
2077
+ /**
2078
+ * Match the verification type exactly, ignoring case.
2079
+ */
2080
+ verifiedType?: string;
1610
2081
  }
1611
2082
 
1612
2083
  export interface TweetGetThreadParams {
@@ -1625,7 +2096,7 @@ export interface TweetGetThreadParams {
1625
2096
 
1626
2097
  export interface TweetSearchParams {
1627
2098
  /**
1628
- * Search query (keywords,
2099
+ * Query, Tweet ID, or status URL. Valid inline bounds apply per page.
1629
2100
  */
1630
2101
  q: string;
1631
2102
 
@@ -1640,11 +2111,21 @@ export interface TweetSearchParams {
1640
2111
  */
1641
2112
  anyWords?: string;
1642
2113
 
2114
+ /**
2115
+ * Only return tweets from Blue-verified authors.
2116
+ */
2117
+ blueVerifiedOnly?: boolean;
2118
+
1643
2119
  /**
1644
2120
  * Geo bounding box, e.g. -74.1 40.6 -73.9 40.8.
1645
2121
  */
1646
2122
  boundingBox?: string;
1647
2123
 
2124
+ /**
2125
+ * Match the Tweet card name.
2126
+ */
2127
+ cardName?: string;
2128
+
1648
2129
  /**
1649
2130
  * Cashtags separated by spaces, commas, or lines.
1650
2131
  */
@@ -1656,7 +2137,8 @@ export interface TweetSearchParams {
1656
2137
  conversationId?: string;
1657
2138
 
1658
2139
  /**
1659
- * Pagination cursor from previous response
2140
+ * Cursor from the previous response. Xquik cursors resume automatic coverage.
2141
+ * Existing unprefixed cursors keep legacy standard behavior.
1660
2142
  */
1661
2143
  cursor?: string;
1662
2144
 
@@ -1665,6 +2147,11 @@ export interface TweetSearchParams {
1665
2147
  */
1666
2148
  exactPhrase?: string;
1667
2149
 
2150
+ /**
2151
+ * Exclude a source application.
2152
+ */
2153
+ excludeSource?: string;
2154
+
1668
2155
  /**
1669
2156
  * Words or quoted phrases to exclude. Separate with spaces, commas, or lines.
1670
2157
  */
@@ -1675,6 +2162,11 @@ export interface TweetSearchParams {
1675
2162
  */
1676
2163
  fromUser?: string;
1677
2164
 
2165
+ /**
2166
+ * Match latitude, longitude, and radius.
2167
+ */
2168
+ geocode?: string;
2169
+
1678
2170
  /**
1679
2171
  * Hashtags separated by spaces, commas, or lines.
1680
2172
  */
@@ -1691,10 +2183,9 @@ export interface TweetSearchParams {
1691
2183
  language?: string;
1692
2184
 
1693
2185
  /**
1694
- * Max tweets to return (server paginates internally). Omit for single page (~20).
1695
- * This is an upper bound for paid authenticated calls: available usage balance can
1696
- * reduce the returned page size, and zero affordable results returns 402
1697
- * insufficient_credits.
2186
+ * Result upper bound. Omit it for the existing 20-row page size. Explicit coverage
2187
+ * defaults to 2000 and allows 10000. For paid requests, remaining credits can
2188
+ * reduce results. Zero affordable results returns 402.
1698
2189
  */
1699
2190
  limit?: number;
1700
2191
 
@@ -1703,6 +2194,31 @@ export interface TweetSearchParams {
1703
2194
  */
1704
2195
  listId?: string;
1705
2196
 
2197
+ /**
2198
+ * Maximum likes threshold. maxLikes is also accepted.
2199
+ */
2200
+ maxFaves?: number;
2201
+
2202
+ /**
2203
+ * Return Tweets older than this Tweet ID.
2204
+ */
2205
+ maxId?: string;
2206
+
2207
+ /**
2208
+ * Maximum quotes threshold.
2209
+ */
2210
+ maxQuotes?: number;
2211
+
2212
+ /**
2213
+ * Maximum replies threshold.
2214
+ */
2215
+ maxReplies?: number;
2216
+
2217
+ /**
2218
+ * Maximum retweets threshold.
2219
+ */
2220
+ maxRetweets?: number;
2221
+
1706
2222
  /**
1707
2223
  * Filter by media type.
1708
2224
  */
@@ -1713,6 +2229,11 @@ export interface TweetSearchParams {
1713
2229
  */
1714
2230
  mentioning?: string;
1715
2231
 
2232
+ /**
2233
+ * Minimum bookmark count threshold.
2234
+ */
2235
+ minBookmarks?: number;
2236
+
1716
2237
  /**
1717
2238
  * Minimum likes threshold.
1718
2239
  */
@@ -1733,6 +2254,32 @@ export interface TweetSearchParams {
1733
2254
  */
1734
2255
  minRetweets?: number;
1735
2256
 
2257
+ /**
2258
+ * Minimum view count threshold.
2259
+ */
2260
+ minViews?: number;
2261
+
2262
+ /**
2263
+ * Omit mode for resumable maximum coverage. Standard keeps legacy pagination.
2264
+ * Coverage returns diagnostics once and rejects cursors.
2265
+ */
2266
+ mode?: 'standard' | 'coverage';
2267
+
2268
+ /**
2269
+ * Only return native reposts.
2270
+ */
2271
+ nativeRetweets?: boolean;
2272
+
2273
+ /**
2274
+ * Match a place name.
2275
+ */
2276
+ near?: string;
2277
+
2278
+ /**
2279
+ * Only return news results.
2280
+ */
2281
+ news?: boolean;
2282
+
1736
2283
  /**
1737
2284
  * Search within a place ID.
1738
2285
  */
@@ -1778,16 +2325,31 @@ export interface TweetSearchParams {
1778
2325
  */
1779
2326
  retweetsOfTweetId?: string;
1780
2327
 
2328
+ /**
2329
+ * Enable the safe-search filter.
2330
+ */
2331
+ safe?: boolean;
2332
+
1781
2333
  /**
1782
2334
  * Start date in YYYY-MM-DD format.
1783
2335
  */
1784
2336
  sinceDate?: string;
1785
2337
 
1786
2338
  /**
1787
- * ISO 8601 timestamp - only return tweets after this time
2339
+ * Return Tweets newer than this Tweet ID.
2340
+ */
2341
+ sinceId?: string;
2342
+
2343
+ /**
2344
+ * Inclusive ISO bound.
1788
2345
  */
1789
2346
  sinceTime?: string;
1790
2347
 
2348
+ /**
2349
+ * Match the source application.
2350
+ */
2351
+ source?: string;
2352
+
1791
2353
  /**
1792
2354
  * Filter replies sent to a username.
1793
2355
  */
@@ -1799,7 +2361,7 @@ export interface TweetSearchParams {
1799
2361
  untilDate?: string;
1800
2362
 
1801
2363
  /**
1802
- * ISO 8601 timestamp - only return tweets before this time
2364
+ * Exclusive ISO bound.
1803
2365
  */
1804
2366
  untilTime?: string;
1805
2367
 
@@ -1812,6 +2374,16 @@ export interface TweetSearchParams {
1812
2374
  * Only return tweets from verified authors.
1813
2375
  */
1814
2376
  verifiedOnly?: boolean;
2377
+
2378
+ /**
2379
+ * Set the radius for the near filter.
2380
+ */
2381
+ within?: string;
2382
+
2383
+ /**
2384
+ * Match Tweets inside a recent time window.
2385
+ */
2386
+ withinTime?: string;
1815
2387
  }
1816
2388
 
1817
2389
  Tweets.Like = Like;
@@ -1825,6 +2397,7 @@ export declare namespace Tweets {
1825
2397
  type TweetRetrieveResponse as TweetRetrieveResponse,
1826
2398
  type TweetDeleteResponse as TweetDeleteResponse,
1827
2399
  type TweetGetRepliesResponse as TweetGetRepliesResponse,
2400
+ type TweetSearchResponse as TweetSearchResponse,
1828
2401
  type TweetCreateParams as TweetCreateParams,
1829
2402
  type TweetListParams as TweetListParams,
1830
2403
  type TweetDeleteParams as TweetDeleteParams,