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
@@ -101,8 +101,9 @@ export class Extractions extends APIResource {
101
101
  * });
102
102
  * ```
103
103
  */
104
- run(body: ExtractionRunParams, options?: RequestOptions): APIPromise<ExtractionRunResponse> {
105
- return this._client.post('/extractions', { body, ...options });
104
+ run(params: ExtractionRunParams, options?: RequestOptions): APIPromise<ExtractionRunResponse> {
105
+ const { dry_run, ...body } = params;
106
+ return this._client.post('/extractions', { query: { dry_run }, body, ...options });
106
107
  }
107
108
  }
108
109
 
@@ -182,6 +183,7 @@ export interface ExtractionEstimateCostResponse {
182
183
  source:
183
184
  | 'followers'
184
185
  | 'following'
186
+ | 'collection'
185
187
  | 'paginationCap'
186
188
  | 'posts'
187
189
  | 'quoteCount'
@@ -194,54 +196,54 @@ export interface ExtractionEstimateCostResponse {
194
196
  }
195
197
 
196
198
  export interface ExtractionRunResponse {
197
- id: string;
199
+ allowed: boolean;
198
200
 
199
- status: 'running';
201
+ creditsAvailable: string;
200
202
 
201
- /**
202
- * Identifier for the extraction tool used to run a job.
203
- */
204
- toolType:
205
- | 'article_extractor'
206
- | 'community_extractor'
207
- | 'community_moderator_explorer'
208
- | 'community_post_extractor'
209
- | 'community_search'
210
- | 'favoriters'
211
- | 'follower_explorer'
212
- | 'following_explorer'
213
- | 'list_follower_explorer'
214
- | 'list_member_extractor'
215
- | 'list_post_extractor'
216
- | 'mention_extractor'
217
- | 'people_search'
218
- | 'post_extractor'
219
- | 'quote_extractor'
220
- | 'reply_extractor'
221
- | 'repost_extractor'
222
- | 'space_explorer'
223
- | 'thread_extractor'
224
- | 'tweet_search_extractor'
225
- | 'user_likes'
226
- | 'user_media'
227
- | 'verified_follower_explorer';
203
+ creditsRequired: string;
204
+
205
+ estimatedResults: number;
206
+
207
+ source: string;
208
+
209
+ resolvedXUserId?: string;
228
210
  }
229
211
 
230
212
  export interface ExtractionRetrieveParams {
231
213
  /**
232
- * Cursor for keyset pagination from prior response next_cursor
214
+ * Previous nextCursor.
233
215
  */
234
216
  cursor?: string;
235
217
 
218
+ /**
219
+ * Preserve source keys or convert result field names.
220
+ */
221
+ fieldStyle?: 'source' | 'camelCase' | 'snake_case';
222
+
223
+ /**
224
+ * Use outputMode=raw instead.
225
+ */
226
+ includeRaw?: boolean;
227
+
236
228
  /**
237
229
  * Maximum number of results to return (1-1000, default 100)
238
230
  */
239
231
  limit?: number;
232
+
233
+ /**
234
+ * Select compact, full, or raw-compatible result fields.
235
+ */
236
+ outputMode?: 'compact' | 'full' | 'raw';
237
+
238
+ /**
239
+ * Keep enrichment nested or merge it into each result.
240
+ */
241
+ outputPreset?: 'nested' | 'flat';
240
242
  }
241
243
 
242
244
  export interface ExtractionListParams {
243
245
  /**
244
- * Cursor for keyset pagination from prior response next_cursor
246
+ * Previous nextCursor.
245
247
  */
246
248
  cursor?: string;
247
249
 
@@ -317,323 +319,281 @@ export interface ExtractionEstimateCostParams {
317
319
  | 'verified_follower_explorer';
318
320
 
319
321
  /**
320
- * Raw advanced query string appended to the estimate (tweet_search_extractor)
322
+ * Raw advanced search query appended as-is (tweet_search_extractor)
321
323
  */
322
324
  advancedQuery?: string;
323
325
 
324
326
  /**
325
- * Alternative words or quoted phrases for estimated results. Separate with spaces,
326
- * commas, or lines.
327
+ * Words or quoted phrases where any one can match. Separate with spaces, commas,
328
+ * or lines. (tweet_search_extractor)
327
329
  */
328
330
  anyWords?: string;
329
331
 
330
332
  /**
331
- * Geo bounding box used for estimation, e.g. -74.1 40.6 -73.9 40.8
332
- * (tweet_search_extractor)
333
- */
334
- boundingBox?: string;
335
-
336
- /**
337
- * Cashtags applied to the estimate, separated by spaces, commas, or lines.
333
+ * Bio terms separated by commas or lines.
338
334
  */
339
- cashtags?: string;
335
+ bioContains?: string;
340
336
 
341
337
  /**
342
- * Conversation ID filter used for estimation (tweet_search_extractor)
338
+ * Return only Blue-verified Tweet authors.
343
339
  */
344
- conversationId?: string;
340
+ blueVerifiedOnly?: boolean;
345
341
 
346
342
  /**
347
- * Exact phrase filter for search estimation
343
+ * Geo bounding box, e.g. -74.1 40.6 -73.9 40.8 (tweet_search_extractor)
348
344
  */
349
- exactPhrase?: string;
345
+ boundingBox?: string;
350
346
 
351
347
  /**
352
- * Words or quoted phrases excluded from estimated results. Separate with spaces,
353
- * commas, or lines.
348
+ * Match the Tweet card name.
354
349
  */
355
- excludeWords?: string;
350
+ cardName?: string;
356
351
 
357
352
  /**
358
- * Estimate only tweets from this author username (tweet_search_extractor)
353
+ * Cashtags separated by spaces, commas, or lines. (tweet_search_extractor)
359
354
  */
360
- fromUser?: string;
355
+ cashtags?: string;
361
356
 
362
357
  /**
363
- * Hashtags applied to the estimate, separated by spaces, commas, or lines.
358
+ * Reply collection strategy.
364
359
  */
365
- hashtags?: string;
360
+ collectionStrategy?: 'auto' | 'complete' | 'direct' | 'search' | 'thread';
366
361
 
367
362
  /**
368
- * Estimate only replies to this tweet ID (tweet_search_extractor)
363
+ * Conversation ID filter (tweet_search_extractor)
369
364
  */
370
- inReplyToTweetId?: string;
365
+ conversationId?: string;
371
366
 
372
367
  /**
373
- * Language code used for estimate filtering (tweet_search_extractor)
368
+ * Merge duplicate results across collection targets.
374
369
  */
375
- language?: string;
370
+ dedupeAcrossTargets?: boolean;
376
371
 
377
372
  /**
378
- * Estimate search results within this list ID (tweet_search_extractor)
373
+ * Keep target duplicates, first rows, or merged overlap.
379
374
  */
380
- listId?: string;
375
+ dedupeMode?: 'none' | 'first' | 'merge';
381
376
 
382
377
  /**
383
- * Media type used for estimate filtering (tweet_search_extractor)
378
+ * Exact phrase to match (tweet_search_extractor)
384
379
  */
385
- mediaType?: 'images' | 'videos' | 'gifs' | 'media' | 'links' | 'none';
380
+ exactPhrase?: string;
386
381
 
387
382
  /**
388
- * Estimate tweets mentioning this username (tweet_search_extractor)
383
+ * Exclude replies from the source author.
389
384
  */
390
- mentioning?: string;
385
+ excludeOriginalAuthor?: boolean;
391
386
 
392
387
  /**
393
- * Minimum likes threshold for estimated results (tweet_search_extractor)
388
+ * Exclude a source application.
394
389
  */
395
- minFaves?: number;
390
+ excludeSource?: string;
396
391
 
397
392
  /**
398
- * Minimum quote count threshold for estimated results (tweet_search_extractor)
393
+ * Words or quoted phrases to exclude. Separate with spaces, commas, or lines.
394
+ * (tweet_search_extractor)
399
395
  */
400
- minQuotes?: number;
396
+ excludeWords?: string;
401
397
 
402
398
  /**
403
- * Minimum replies threshold for estimated results (tweet_search_extractor)
399
+ * Filter by author username (tweet_search_extractor)
404
400
  */
405
- minReplies?: number;
401
+ fromUser?: string;
406
402
 
407
403
  /**
408
- * Minimum retweets threshold for estimated results (tweet_search_extractor)
404
+ * Match latitude, longitude, and radius.
409
405
  */
410
- minRetweets?: number;
406
+ geocode?: string;
411
407
 
412
408
  /**
413
- * Estimate search results within this place ID (tweet_search_extractor)
409
+ * Hashtags separated by spaces, commas, or lines. (tweet_search_extractor)
414
410
  */
415
- place?: string;
411
+ hashtags?: string;
416
412
 
417
413
  /**
418
- * Estimate search results within this country code (tweet_search_extractor)
414
+ * Require a profile location.
419
415
  */
420
- placeCountry?: string;
416
+ hasLocation?: boolean;
421
417
 
422
418
  /**
423
- * Geo point radius used for estimation, e.g. -73.99 40.73 25mi
424
- * (tweet_search_extractor)
419
+ * Return only replies with media.
425
420
  */
426
- pointRadius?: string;
421
+ hasMediaOnly?: boolean;
427
422
 
428
423
  /**
429
- * Quote mode used for estimation (tweet_search_extractor)
424
+ * Require a profile website.
430
425
  */
431
- quotes?: 'include' | 'exclude' | 'only';
426
+ hasWebsite?: boolean;
432
427
 
433
428
  /**
434
- * Estimate only quotes of this tweet ID (tweet_search_extractor)
429
+ * Include the source post in reply results.
435
430
  */
436
- quotesOfTweetId?: string;
431
+ includeOriginalPost?: boolean;
437
432
 
438
433
  /**
439
- * Reply mode used for estimation (tweet_search_extractor)
434
+ * Add matching search terms to collection metadata.
440
435
  */
441
- replies?: 'include' | 'exclude' | 'only';
436
+ includeSearchTerms?: boolean;
442
437
 
443
438
  /**
444
- * Maximum number of results to estimate. When set, the estimate caps projected
445
- * results to this value.
439
+ * Add source target metadata to each result.
446
440
  */
447
- resultsLimit?: number;
441
+ includeTargetMetadata?: boolean;
448
442
 
449
443
  /**
450
- * Retweet mode used for estimation (tweet_search_extractor)
444
+ * Only replies to this tweet ID (tweet_search_extractor)
451
445
  */
452
- retweets?: 'include' | 'exclude' | 'only';
446
+ inReplyToTweetId?: string;
453
447
 
454
448
  /**
455
- * Estimate only retweets of this tweet ID (tweet_search_extractor)
449
+ * Language code filter (tweet_search_extractor)
456
450
  */
457
- retweetsOfTweetId?: string;
451
+ language?: string;
458
452
 
459
453
  /**
460
- * Query used to price tweet_search_extractor or community_search.
454
+ * Search within a list ID (tweet_search_extractor)
461
455
  */
462
- searchQuery?: string;
456
+ listId?: string;
463
457
 
464
458
  /**
465
- * Estimate start date in YYYY-MM-DD format (tweet_search_extractor)
459
+ * Required profile location text.
466
460
  */
467
- sinceDate?: string;
461
+ locationContains?: string;
468
462
 
469
463
  /**
470
- * Community ID used to price community_post_extractor or community_search.
464
+ * Maximum nested reply depth.
471
465
  */
472
- targetCommunityId?: string;
466
+ maxDepth?: number;
473
467
 
474
468
  /**
475
- * List ID used to price list_follower_explorer, list_member_extractor, or
476
- * list_post_extractor.
469
+ * Maximum follower count for profile results.
477
470
  */
478
- targetListId?: string;
471
+ maxFollowers?: number;
479
472
 
480
473
  /**
481
- * Space ID used to price space_explorer.
474
+ * Maximum following count for profile results.
482
475
  */
483
- targetSpaceId?: string;
484
-
485
- targetTweetId?: string;
486
-
487
- targetUsername?: string;
476
+ maxFollowing?: number;
488
477
 
489
478
  /**
490
- * Estimate replies sent to this username (tweet_search_extractor)
479
+ * Return Tweets older than this Tweet ID.
491
480
  */
492
- toUser?: string;
481
+ maxId?: string;
493
482
 
494
483
  /**
495
- * Estimate end date in YYYY-MM-DD format (tweet_search_extractor)
484
+ * Maximum results collected for each target.
496
485
  */
497
- untilDate?: string;
486
+ maxItemsPerTarget?: number;
498
487
 
499
488
  /**
500
- * URL substring or domain filter used for estimation (tweet_search_extractor)
489
+ * Maximum Tweet like count.
501
490
  */
502
- url?: string;
491
+ maxLikes?: number;
503
492
 
504
493
  /**
505
- * Estimate only verified authors (tweet_search_extractor)
494
+ * Reply pages collected for each target.
506
495
  */
507
- verifiedOnly?: boolean;
508
- }
496
+ maxPagesPerTarget?: number;
509
497
 
510
- export interface ExtractionExportResultsParams {
511
498
  /**
512
- * Export file format
499
+ * Maximum post count for profile results.
513
500
  */
514
- format: 'csv' | 'json' | 'md' | 'md-document' | 'pdf' | 'txt' | 'xlsx';
515
- }
501
+ maxPosts?: number;
516
502
 
517
- export interface ExtractionRunParams {
518
503
  /**
519
- * Identifier for the extraction tool used to run a job.
504
+ * Maximum Tweet quote count.
520
505
  */
521
- toolType:
522
- | 'article_extractor'
523
- | 'community_extractor'
524
- | 'community_moderator_explorer'
525
- | 'community_post_extractor'
526
- | 'community_search'
527
- | 'favoriters'
528
- | 'follower_explorer'
529
- | 'following_explorer'
530
- | 'list_follower_explorer'
531
- | 'list_member_extractor'
532
- | 'list_post_extractor'
533
- | 'mention_extractor'
534
- | 'people_search'
535
- | 'post_extractor'
536
- | 'quote_extractor'
537
- | 'reply_extractor'
538
- | 'repost_extractor'
539
- | 'space_explorer'
540
- | 'thread_extractor'
541
- | 'tweet_search_extractor'
542
- | 'user_likes'
543
- | 'user_media'
544
- | 'verified_follower_explorer';
506
+ maxQuotes?: number;
545
507
 
546
508
  /**
547
- * Raw advanced search query appended as-is (tweet_search_extractor)
509
+ * Maximum Tweet reply count.
548
510
  */
549
- advancedQuery?: string;
511
+ maxReplies?: number;
550
512
 
551
513
  /**
552
- * Words or quoted phrases where any one can match. Separate with spaces, commas,
553
- * or lines. (tweet_search_extractor)
514
+ * Maximum Tweet repost count.
554
515
  */
555
- anyWords?: string;
516
+ maxRetweets?: number;
556
517
 
557
518
  /**
558
- * Geo bounding box, e.g. -74.1 40.6 -73.9 40.8 (tweet_search_extractor)
519
+ * Media type filter (tweet_search_extractor)
559
520
  */
560
- boundingBox?: string;
521
+ mediaType?: 'images' | 'videos' | 'gifs' | 'media' | 'links' | 'none';
561
522
 
562
523
  /**
563
- * Cashtags separated by spaces, commas, or lines. (tweet_search_extractor)
524
+ * Filter tweets mentioning a username (tweet_search_extractor)
564
525
  */
565
- cashtags?: string;
526
+ mentioning?: string;
566
527
 
567
528
  /**
568
- * Conversation ID filter (tweet_search_extractor)
529
+ * Minimum profile age in days.
569
530
  */
570
- conversationId?: string;
531
+ minAccountAgeDays?: number;
571
532
 
572
533
  /**
573
- * Exact phrase to match (tweet_search_extractor)
534
+ * Minimum Tweet bookmark count.
574
535
  */
575
- exactPhrase?: string;
536
+ minBookmarks?: number;
576
537
 
577
538
  /**
578
- * Words or quoted phrases to exclude. Separate with spaces, commas, or lines.
579
- * (tweet_search_extractor)
539
+ * Minimum likes threshold (tweet_search_extractor)
580
540
  */
581
- excludeWords?: string;
541
+ minFaves?: number;
582
542
 
583
543
  /**
584
- * Filter by author username (tweet_search_extractor)
544
+ * Minimum follower count for profile results.
585
545
  */
586
- fromUser?: string;
546
+ minFollowers?: number;
587
547
 
588
548
  /**
589
- * Hashtags separated by spaces, commas, or lines. (tweet_search_extractor)
549
+ * Minimum following count for profile results.
590
550
  */
591
- hashtags?: string;
551
+ minFollowing?: number;
592
552
 
593
553
  /**
594
- * Only replies to this tweet ID (tweet_search_extractor)
554
+ * Minimum post count for profile results.
595
555
  */
596
- inReplyToTweetId?: string;
556
+ minPosts?: number;
597
557
 
598
558
  /**
599
- * Language code filter (tweet_search_extractor)
559
+ * Minimum quote count threshold (tweet_search_extractor)
600
560
  */
601
- language?: string;
561
+ minQuotes?: number;
602
562
 
603
563
  /**
604
- * Search within a list ID (tweet_search_extractor)
564
+ * Minimum replies threshold (tweet_search_extractor)
605
565
  */
606
- listId?: string;
566
+ minReplies?: number;
607
567
 
608
568
  /**
609
- * Media type filter (tweet_search_extractor)
569
+ * Minimum retweets threshold (tweet_search_extractor)
610
570
  */
611
- mediaType?: 'images' | 'videos' | 'gifs' | 'media' | 'links' | 'none';
571
+ minRetweets?: number;
612
572
 
613
573
  /**
614
- * Filter tweets mentioning a username (tweet_search_extractor)
574
+ * Minimum Tweet view count.
615
575
  */
616
- mentioning?: string;
576
+ minViews?: number;
617
577
 
618
578
  /**
619
- * Minimum likes threshold (tweet_search_extractor)
579
+ * Only return native reposts.
620
580
  */
621
- minFaves?: number;
581
+ nativeRetweets?: boolean;
622
582
 
623
583
  /**
624
- * Minimum quote count threshold (tweet_search_extractor)
584
+ * Match a place name.
625
585
  */
626
- minQuotes?: number;
586
+ near?: string;
627
587
 
628
588
  /**
629
- * Minimum replies threshold (tweet_search_extractor)
589
+ * Only return news results.
630
590
  */
631
- minReplies?: number;
591
+ news?: boolean;
632
592
 
633
593
  /**
634
- * Minimum retweets threshold (tweet_search_extractor)
594
+ * Shortcut for dedupeMode=merge.
635
595
  */
636
- minRetweets?: number;
596
+ overlapMode?: boolean;
637
597
 
638
598
  /**
639
599
  * Search within a place ID (tweet_search_extractor)
@@ -650,6 +610,11 @@ export interface ExtractionRunParams {
650
610
  */
651
611
  pointRadius?: string;
652
612
 
613
+ /**
614
+ * Search ranking applied to every query.
615
+ */
616
+ queryType?: 'Latest' | 'Top' | 'Both';
617
+
653
618
  /**
654
619
  * Quote mode (tweet_search_extractor)
655
620
  */
@@ -660,6 +625,11 @@ export interface ExtractionRunParams {
660
625
  */
661
626
  quotesOfTweetId?: string;
662
627
 
628
+ /**
629
+ * Profile relations processed within one job.
630
+ */
631
+ relationTargets?: Array<ExtractionEstimateCostParams.RelationTarget>;
632
+
663
633
  /**
664
634
  * Reply mode (tweet_search_extractor)
665
635
  */
@@ -681,6 +651,21 @@ export interface ExtractionRunParams {
681
651
  */
682
652
  retweetsOfTweetId?: string;
683
653
 
654
+ /**
655
+ * Enable the safe-search filter.
656
+ */
657
+ safe?: boolean;
658
+
659
+ /**
660
+ * Reply depth scope.
661
+ */
662
+ scope?: 'all' | 'direct' | 'nested';
663
+
664
+ /**
665
+ * Search queries processed as one collection job.
666
+ */
667
+ searchQueries?: Array<string>;
668
+
684
669
  /**
685
670
  * Required for tweet_search_extractor & community_search.
686
671
  */
@@ -691,17 +676,57 @@ export interface ExtractionRunParams {
691
676
  */
692
677
  sinceDate?: string;
693
678
 
679
+ /**
680
+ * Return Tweets newer than this Tweet ID.
681
+ */
682
+ sinceId?: string;
683
+
684
+ /**
685
+ * Reply start time as ISO 8601 or Unix seconds.
686
+ */
687
+ sinceTime?: string | number;
688
+
689
+ /**
690
+ * Reply result order.
691
+ */
692
+ sort?: 'relevance' | 'latest' | 'oldest' | 'likes';
693
+
694
+ /**
695
+ * Match the source application.
696
+ */
697
+ source?: string;
698
+
699
+ /**
700
+ * Resume one reply target from this cursor.
701
+ */
702
+ startCursor?: string;
703
+
694
704
  /**
695
705
  * Required for community_post_extractor & community_search.
696
706
  */
697
707
  targetCommunityId?: string;
698
708
 
709
+ /**
710
+ * Community IDs processed as one collection job.
711
+ */
712
+ targetCommunityIds?: Array<string>;
713
+
699
714
  /**
700
715
  * Required for list_follower_explorer, list_member_extractor &
701
716
  * list_post_extractor.
702
717
  */
703
718
  targetListId?: string;
704
719
 
720
+ /**
721
+ * List IDs processed as one collection job.
722
+ */
723
+ targetListIds?: Array<string>;
724
+
725
+ /**
726
+ * Mixed targets auto-routed within one job.
727
+ */
728
+ targets?: Array<string | ExtractionEstimateCostParams.UnionMember1>;
729
+
705
730
  /**
706
731
  * Required for space_explorer.
707
732
  */
@@ -709,8 +734,18 @@ export interface ExtractionRunParams {
709
734
 
710
735
  targetTweetId?: string;
711
736
 
737
+ /**
738
+ * Tweet IDs processed as one collection job.
739
+ */
740
+ targetTweetIds?: Array<string>;
741
+
712
742
  targetUsername?: string;
713
743
 
744
+ /**
745
+ * Usernames processed as one collection job.
746
+ */
747
+ targetUsernames?: Array<string>;
748
+
714
749
  /**
715
750
  * Filter replies sent to a username (tweet_search_extractor)
716
751
  */
@@ -721,15 +756,724 @@ export interface ExtractionRunParams {
721
756
  */
722
757
  untilDate?: string;
723
758
 
759
+ /**
760
+ * Reply end time as ISO 8601 or Unix seconds.
761
+ */
762
+ untilTime?: string | number;
763
+
724
764
  /**
725
765
  * URL substring or domain filter (tweet_search_extractor)
726
766
  */
727
767
  url?: string;
728
768
 
769
+ /**
770
+ * Required username text.
771
+ */
772
+ usernameContains?: string;
773
+
729
774
  /**
730
775
  * Only verified authors (tweet_search_extractor)
731
776
  */
732
777
  verifiedOnly?: boolean;
778
+
779
+ /**
780
+ * Exact profile verification type.
781
+ */
782
+ verifiedType?: string;
783
+
784
+ /**
785
+ * Set the radius for the near filter.
786
+ */
787
+ within?: string;
788
+
789
+ /**
790
+ * Match Tweets inside a recent time window.
791
+ */
792
+ withinTime?: string;
793
+ }
794
+
795
+ export namespace ExtractionEstimateCostParams {
796
+ /**
797
+ * One target and relation in a mixed profile collection.
798
+ */
799
+ export interface RelationTarget {
800
+ relation:
801
+ | 'community_members'
802
+ | 'followers'
803
+ | 'following'
804
+ | 'list_followers'
805
+ | 'list_members'
806
+ | 'verified_followers';
807
+
808
+ value: string;
809
+ }
810
+
811
+ export interface UnionMember1 {
812
+ kind:
813
+ | 'favoriters'
814
+ | 'list'
815
+ | 'profile'
816
+ | 'profile_likes'
817
+ | 'profile_media'
818
+ | 'profile_replies'
819
+ | 'quotes'
820
+ | 'replies'
821
+ | 'retweeters'
822
+ | 'search'
823
+ | 'thread'
824
+ | 'tweet';
825
+
826
+ value: string;
827
+ }
828
+ }
829
+
830
+ export interface ExtractionExportResultsParams {
831
+ /**
832
+ * Export file format
833
+ */
834
+ format: 'csv' | 'json' | 'md' | 'md-document' | 'pdf' | 'txt' | 'xlsx';
835
+
836
+ /**
837
+ * Require a non-empty description.
838
+ */
839
+ hasDescription?: boolean;
840
+
841
+ /**
842
+ * Require a non-empty location.
843
+ */
844
+ hasLocation?: boolean;
845
+
846
+ /**
847
+ * Require media.
848
+ */
849
+ hasMedia?: boolean;
850
+
851
+ /**
852
+ * Filter by language code.
853
+ */
854
+ lang?: string;
855
+
856
+ /**
857
+ * Maximum follower count.
858
+ */
859
+ maxFollowers?: number;
860
+
861
+ /**
862
+ * Maximum following count.
863
+ */
864
+ maxFollowing?: number;
865
+
866
+ /**
867
+ * Maximum post count.
868
+ */
869
+ maxPosts?: number;
870
+
871
+ /**
872
+ * Minimum follower count.
873
+ */
874
+ minFollowers?: number;
875
+
876
+ /**
877
+ * Minimum following count.
878
+ */
879
+ minFollowing?: number;
880
+
881
+ /**
882
+ * Minimum like count.
883
+ */
884
+ minLikes?: number;
885
+
886
+ /**
887
+ * Minimum post count.
888
+ */
889
+ minPosts?: number;
890
+
891
+ /**
892
+ * Minimum reply count.
893
+ */
894
+ minReplies?: number;
895
+
896
+ /**
897
+ * Minimum repost count.
898
+ */
899
+ minRetweets?: number;
900
+
901
+ /**
902
+ * Minimum view count.
903
+ */
904
+ minViews?: number;
905
+
906
+ /**
907
+ * Search exported result text.
908
+ */
909
+ search?: string;
910
+
911
+ /**
912
+ * Include results on or after this date.
913
+ */
914
+ sinceDate?: string;
915
+
916
+ /**
917
+ * Include results on or before this date.
918
+ */
919
+ untilDate?: string;
920
+
921
+ /**
922
+ * Filter by verified status.
923
+ */
924
+ verified?: boolean;
925
+ }
926
+
927
+ export interface ExtractionRunParams {
928
+ /**
929
+ * Body param: Identifier for the extraction tool used to run a job.
930
+ */
931
+ toolType:
932
+ | 'article_extractor'
933
+ | 'community_extractor'
934
+ | 'community_moderator_explorer'
935
+ | 'community_post_extractor'
936
+ | 'community_search'
937
+ | 'favoriters'
938
+ | 'follower_explorer'
939
+ | 'following_explorer'
940
+ | 'list_follower_explorer'
941
+ | 'list_member_extractor'
942
+ | 'list_post_extractor'
943
+ | 'mention_extractor'
944
+ | 'people_search'
945
+ | 'post_extractor'
946
+ | 'quote_extractor'
947
+ | 'reply_extractor'
948
+ | 'repost_extractor'
949
+ | 'space_explorer'
950
+ | 'thread_extractor'
951
+ | 'tweet_search_extractor'
952
+ | 'user_likes'
953
+ | 'user_media'
954
+ | 'verified_follower_explorer';
955
+
956
+ /**
957
+ * Query param: Estimate cost without creating an extraction.
958
+ */
959
+ dry_run?: boolean;
960
+
961
+ /**
962
+ * Body param: Raw advanced search query appended as-is (tweet_search_extractor)
963
+ */
964
+ advancedQuery?: string;
965
+
966
+ /**
967
+ * Body param: Words or quoted phrases where any one can match. Separate with
968
+ * spaces, commas, or lines. (tweet_search_extractor)
969
+ */
970
+ anyWords?: string;
971
+
972
+ /**
973
+ * Body param: Bio terms separated by commas or lines.
974
+ */
975
+ bioContains?: string;
976
+
977
+ /**
978
+ * Body param: Return only Blue-verified Tweet authors.
979
+ */
980
+ blueVerifiedOnly?: boolean;
981
+
982
+ /**
983
+ * Body param: Geo bounding box, e.g. -74.1 40.6 -73.9 40.8
984
+ * (tweet_search_extractor)
985
+ */
986
+ boundingBox?: string;
987
+
988
+ /**
989
+ * Body param: Match the Tweet card name.
990
+ */
991
+ cardName?: string;
992
+
993
+ /**
994
+ * Body param: Cashtags separated by spaces, commas, or lines.
995
+ * (tweet_search_extractor)
996
+ */
997
+ cashtags?: string;
998
+
999
+ /**
1000
+ * Body param: Reply collection strategy.
1001
+ */
1002
+ collectionStrategy?: 'auto' | 'complete' | 'direct' | 'search' | 'thread';
1003
+
1004
+ /**
1005
+ * Body param: Conversation ID filter (tweet_search_extractor)
1006
+ */
1007
+ conversationId?: string;
1008
+
1009
+ /**
1010
+ * Body param: Merge duplicate results across collection targets.
1011
+ */
1012
+ dedupeAcrossTargets?: boolean;
1013
+
1014
+ /**
1015
+ * Body param: Keep target duplicates, first rows, or merged overlap.
1016
+ */
1017
+ dedupeMode?: 'none' | 'first' | 'merge';
1018
+
1019
+ /**
1020
+ * Body param: Exact phrase to match (tweet_search_extractor)
1021
+ */
1022
+ exactPhrase?: string;
1023
+
1024
+ /**
1025
+ * Body param: Exclude replies from the source author.
1026
+ */
1027
+ excludeOriginalAuthor?: boolean;
1028
+
1029
+ /**
1030
+ * Body param: Exclude a source application.
1031
+ */
1032
+ excludeSource?: string;
1033
+
1034
+ /**
1035
+ * Body param: Words or quoted phrases to exclude. Separate with spaces, commas, or
1036
+ * lines. (tweet_search_extractor)
1037
+ */
1038
+ excludeWords?: string;
1039
+
1040
+ /**
1041
+ * Body param: Filter by author username (tweet_search_extractor)
1042
+ */
1043
+ fromUser?: string;
1044
+
1045
+ /**
1046
+ * Body param: Match latitude, longitude, and radius.
1047
+ */
1048
+ geocode?: string;
1049
+
1050
+ /**
1051
+ * Body param: Hashtags separated by spaces, commas, or lines.
1052
+ * (tweet_search_extractor)
1053
+ */
1054
+ hashtags?: string;
1055
+
1056
+ /**
1057
+ * Body param: Require a profile location.
1058
+ */
1059
+ hasLocation?: boolean;
1060
+
1061
+ /**
1062
+ * Body param: Return only replies with media.
1063
+ */
1064
+ hasMediaOnly?: boolean;
1065
+
1066
+ /**
1067
+ * Body param: Require a profile website.
1068
+ */
1069
+ hasWebsite?: boolean;
1070
+
1071
+ /**
1072
+ * Body param: Include the source post in reply results.
1073
+ */
1074
+ includeOriginalPost?: boolean;
1075
+
1076
+ /**
1077
+ * Body param: Add matching search terms to collection metadata.
1078
+ */
1079
+ includeSearchTerms?: boolean;
1080
+
1081
+ /**
1082
+ * Body param: Add source target metadata to each result.
1083
+ */
1084
+ includeTargetMetadata?: boolean;
1085
+
1086
+ /**
1087
+ * Body param: Only replies to this tweet ID (tweet_search_extractor)
1088
+ */
1089
+ inReplyToTweetId?: string;
1090
+
1091
+ /**
1092
+ * Body param: Language code filter (tweet_search_extractor)
1093
+ */
1094
+ language?: string;
1095
+
1096
+ /**
1097
+ * Body param: Search within a list ID (tweet_search_extractor)
1098
+ */
1099
+ listId?: string;
1100
+
1101
+ /**
1102
+ * Body param: Required profile location text.
1103
+ */
1104
+ locationContains?: string;
1105
+
1106
+ /**
1107
+ * Body param: Maximum nested reply depth.
1108
+ */
1109
+ maxDepth?: number;
1110
+
1111
+ /**
1112
+ * Body param: Maximum follower count for profile results.
1113
+ */
1114
+ maxFollowers?: number;
1115
+
1116
+ /**
1117
+ * Body param: Maximum following count for profile results.
1118
+ */
1119
+ maxFollowing?: number;
1120
+
1121
+ /**
1122
+ * Body param: Return Tweets older than this Tweet ID.
1123
+ */
1124
+ maxId?: string;
1125
+
1126
+ /**
1127
+ * Body param: Maximum results collected for each target.
1128
+ */
1129
+ maxItemsPerTarget?: number;
1130
+
1131
+ /**
1132
+ * Body param: Maximum Tweet like count.
1133
+ */
1134
+ maxLikes?: number;
1135
+
1136
+ /**
1137
+ * Body param: Reply pages collected for each target.
1138
+ */
1139
+ maxPagesPerTarget?: number;
1140
+
1141
+ /**
1142
+ * Body param: Maximum post count for profile results.
1143
+ */
1144
+ maxPosts?: number;
1145
+
1146
+ /**
1147
+ * Body param: Maximum Tweet quote count.
1148
+ */
1149
+ maxQuotes?: number;
1150
+
1151
+ /**
1152
+ * Body param: Maximum Tweet reply count.
1153
+ */
1154
+ maxReplies?: number;
1155
+
1156
+ /**
1157
+ * Body param: Maximum Tweet repost count.
1158
+ */
1159
+ maxRetweets?: number;
1160
+
1161
+ /**
1162
+ * Body param: Media type filter (tweet_search_extractor)
1163
+ */
1164
+ mediaType?: 'images' | 'videos' | 'gifs' | 'media' | 'links' | 'none';
1165
+
1166
+ /**
1167
+ * Body param: Filter tweets mentioning a username (tweet_search_extractor)
1168
+ */
1169
+ mentioning?: string;
1170
+
1171
+ /**
1172
+ * Body param: Minimum profile age in days.
1173
+ */
1174
+ minAccountAgeDays?: number;
1175
+
1176
+ /**
1177
+ * Body param: Minimum Tweet bookmark count.
1178
+ */
1179
+ minBookmarks?: number;
1180
+
1181
+ /**
1182
+ * Body param: Minimum likes threshold (tweet_search_extractor)
1183
+ */
1184
+ minFaves?: number;
1185
+
1186
+ /**
1187
+ * Body param: Minimum follower count for profile results.
1188
+ */
1189
+ minFollowers?: number;
1190
+
1191
+ /**
1192
+ * Body param: Minimum following count for profile results.
1193
+ */
1194
+ minFollowing?: number;
1195
+
1196
+ /**
1197
+ * Body param: Minimum post count for profile results.
1198
+ */
1199
+ minPosts?: number;
1200
+
1201
+ /**
1202
+ * Body param: Minimum quote count threshold (tweet_search_extractor)
1203
+ */
1204
+ minQuotes?: number;
1205
+
1206
+ /**
1207
+ * Body param: Minimum replies threshold (tweet_search_extractor)
1208
+ */
1209
+ minReplies?: number;
1210
+
1211
+ /**
1212
+ * Body param: Minimum retweets threshold (tweet_search_extractor)
1213
+ */
1214
+ minRetweets?: number;
1215
+
1216
+ /**
1217
+ * Body param: Minimum Tweet view count.
1218
+ */
1219
+ minViews?: number;
1220
+
1221
+ /**
1222
+ * Body param: Only return native reposts.
1223
+ */
1224
+ nativeRetweets?: boolean;
1225
+
1226
+ /**
1227
+ * Body param: Match a place name.
1228
+ */
1229
+ near?: string;
1230
+
1231
+ /**
1232
+ * Body param: Only return news results.
1233
+ */
1234
+ news?: boolean;
1235
+
1236
+ /**
1237
+ * Body param: Shortcut for dedupeMode=merge.
1238
+ */
1239
+ overlapMode?: boolean;
1240
+
1241
+ /**
1242
+ * Body param: Search within a place ID (tweet_search_extractor)
1243
+ */
1244
+ place?: string;
1245
+
1246
+ /**
1247
+ * Body param: Search within a country code (tweet_search_extractor)
1248
+ */
1249
+ placeCountry?: string;
1250
+
1251
+ /**
1252
+ * Body param: Geo point radius, e.g. -73.99 40.73 25mi (tweet_search_extractor)
1253
+ */
1254
+ pointRadius?: string;
1255
+
1256
+ /**
1257
+ * Body param: Search ranking applied to every query.
1258
+ */
1259
+ queryType?: 'Latest' | 'Top' | 'Both';
1260
+
1261
+ /**
1262
+ * Body param: Quote mode (tweet_search_extractor)
1263
+ */
1264
+ quotes?: 'include' | 'exclude' | 'only';
1265
+
1266
+ /**
1267
+ * Body param: Only quotes of this tweet ID (tweet_search_extractor)
1268
+ */
1269
+ quotesOfTweetId?: string;
1270
+
1271
+ /**
1272
+ * Body param: Profile relations processed within one job.
1273
+ */
1274
+ relationTargets?: Array<ExtractionRunParams.RelationTarget>;
1275
+
1276
+ /**
1277
+ * Body param: Reply mode (tweet_search_extractor)
1278
+ */
1279
+ replies?: 'include' | 'exclude' | 'only';
1280
+
1281
+ /**
1282
+ * Body param: Maximum number of results to extract. When set, the extraction stops
1283
+ * after reaching this limit.
1284
+ */
1285
+ resultsLimit?: number;
1286
+
1287
+ /**
1288
+ * Body param: Retweet mode (tweet_search_extractor)
1289
+ */
1290
+ retweets?: 'include' | 'exclude' | 'only';
1291
+
1292
+ /**
1293
+ * Body param: Only retweets of this tweet ID (tweet_search_extractor)
1294
+ */
1295
+ retweetsOfTweetId?: string;
1296
+
1297
+ /**
1298
+ * Body param: Enable the safe-search filter.
1299
+ */
1300
+ safe?: boolean;
1301
+
1302
+ /**
1303
+ * Body param: Reply depth scope.
1304
+ */
1305
+ scope?: 'all' | 'direct' | 'nested';
1306
+
1307
+ /**
1308
+ * Body param: Search queries processed as one collection job.
1309
+ */
1310
+ searchQueries?: Array<string>;
1311
+
1312
+ /**
1313
+ * Body param: Required for tweet_search_extractor & community_search.
1314
+ */
1315
+ searchQuery?: string;
1316
+
1317
+ /**
1318
+ * Body param: Start date YYYY-MM-DD (tweet_search_extractor)
1319
+ */
1320
+ sinceDate?: string;
1321
+
1322
+ /**
1323
+ * Body param: Return Tweets newer than this Tweet ID.
1324
+ */
1325
+ sinceId?: string;
1326
+
1327
+ /**
1328
+ * Body param: Reply start time as ISO 8601 or Unix seconds.
1329
+ */
1330
+ sinceTime?: string | number;
1331
+
1332
+ /**
1333
+ * Body param: Reply result order.
1334
+ */
1335
+ sort?: 'relevance' | 'latest' | 'oldest' | 'likes';
1336
+
1337
+ /**
1338
+ * Body param: Match the source application.
1339
+ */
1340
+ source?: string;
1341
+
1342
+ /**
1343
+ * Body param: Resume one reply target from this cursor.
1344
+ */
1345
+ startCursor?: string;
1346
+
1347
+ /**
1348
+ * Body param: Required for community_post_extractor & community_search.
1349
+ */
1350
+ targetCommunityId?: string;
1351
+
1352
+ /**
1353
+ * Body param: Community IDs processed as one collection job.
1354
+ */
1355
+ targetCommunityIds?: Array<string>;
1356
+
1357
+ /**
1358
+ * Body param: Required for list_follower_explorer, list_member_extractor &
1359
+ * list_post_extractor.
1360
+ */
1361
+ targetListId?: string;
1362
+
1363
+ /**
1364
+ * Body param: List IDs processed as one collection job.
1365
+ */
1366
+ targetListIds?: Array<string>;
1367
+
1368
+ /**
1369
+ * Body param: Mixed targets auto-routed within one job.
1370
+ */
1371
+ targets?: Array<string | ExtractionRunParams.UnionMember1>;
1372
+
1373
+ /**
1374
+ * Body param: Required for space_explorer.
1375
+ */
1376
+ targetSpaceId?: string;
1377
+
1378
+ /**
1379
+ * Body param
1380
+ */
1381
+ targetTweetId?: string;
1382
+
1383
+ /**
1384
+ * Body param: Tweet IDs processed as one collection job.
1385
+ */
1386
+ targetTweetIds?: Array<string>;
1387
+
1388
+ /**
1389
+ * Body param
1390
+ */
1391
+ targetUsername?: string;
1392
+
1393
+ /**
1394
+ * Body param: Usernames processed as one collection job.
1395
+ */
1396
+ targetUsernames?: Array<string>;
1397
+
1398
+ /**
1399
+ * Body param: Filter replies sent to a username (tweet_search_extractor)
1400
+ */
1401
+ toUser?: string;
1402
+
1403
+ /**
1404
+ * Body param: End date YYYY-MM-DD (tweet_search_extractor)
1405
+ */
1406
+ untilDate?: string;
1407
+
1408
+ /**
1409
+ * Body param: Reply end time as ISO 8601 or Unix seconds.
1410
+ */
1411
+ untilTime?: string | number;
1412
+
1413
+ /**
1414
+ * Body param: URL substring or domain filter (tweet_search_extractor)
1415
+ */
1416
+ url?: string;
1417
+
1418
+ /**
1419
+ * Body param: Required username text.
1420
+ */
1421
+ usernameContains?: string;
1422
+
1423
+ /**
1424
+ * Body param: Only verified authors (tweet_search_extractor)
1425
+ */
1426
+ verifiedOnly?: boolean;
1427
+
1428
+ /**
1429
+ * Body param: Exact profile verification type.
1430
+ */
1431
+ verifiedType?: string;
1432
+
1433
+ /**
1434
+ * Body param: Set the radius for the near filter.
1435
+ */
1436
+ within?: string;
1437
+
1438
+ /**
1439
+ * Body param: Match Tweets inside a recent time window.
1440
+ */
1441
+ withinTime?: string;
1442
+ }
1443
+
1444
+ export namespace ExtractionRunParams {
1445
+ /**
1446
+ * One target and relation in a mixed profile collection.
1447
+ */
1448
+ export interface RelationTarget {
1449
+ relation:
1450
+ | 'community_members'
1451
+ | 'followers'
1452
+ | 'following'
1453
+ | 'list_followers'
1454
+ | 'list_members'
1455
+ | 'verified_followers';
1456
+
1457
+ value: string;
1458
+ }
1459
+
1460
+ export interface UnionMember1 {
1461
+ kind:
1462
+ | 'favoriters'
1463
+ | 'list'
1464
+ | 'profile'
1465
+ | 'profile_likes'
1466
+ | 'profile_media'
1467
+ | 'profile_replies'
1468
+ | 'quotes'
1469
+ | 'replies'
1470
+ | 'retweeters'
1471
+ | 'search'
1472
+ | 'thread'
1473
+ | 'tweet';
1474
+
1475
+ value: string;
1476
+ }
733
1477
  }
734
1478
 
735
1479
  export declare namespace Extractions {