rettiwt-api 5.0.0-alpha.2 → 5.0.0-alpha.4

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 (117) hide show
  1. package/dist/collections/Extractors.d.ts +6 -2
  2. package/dist/collections/Extractors.js +1 -0
  3. package/dist/collections/Extractors.js.map +1 -1
  4. package/dist/collections/Groups.js +1 -0
  5. package/dist/collections/Groups.js.map +1 -1
  6. package/dist/collections/Requests.js +1 -0
  7. package/dist/collections/Requests.js.map +1 -1
  8. package/dist/commands/User.js +15 -0
  9. package/dist/commands/User.js.map +1 -1
  10. package/dist/enums/Api.d.ts +1 -51
  11. package/dist/enums/Api.js +1 -52
  12. package/dist/enums/Api.js.map +1 -1
  13. package/dist/enums/Resource.d.ts +1 -0
  14. package/dist/enums/Resource.js +1 -0
  15. package/dist/enums/Resource.js.map +1 -1
  16. package/dist/index.d.ts +5 -6
  17. package/dist/index.js +2 -5
  18. package/dist/index.js.map +1 -1
  19. package/dist/models/data/List.d.ts +4 -0
  20. package/dist/models/data/List.js +7 -0
  21. package/dist/models/data/List.js.map +1 -1
  22. package/dist/models/data/Notification.d.ts +4 -0
  23. package/dist/models/data/Notification.js +7 -0
  24. package/dist/models/data/Notification.js.map +1 -1
  25. package/dist/models/data/Tweet.d.ts +4 -0
  26. package/dist/models/data/Tweet.js +7 -0
  27. package/dist/models/data/Tweet.js.map +1 -1
  28. package/dist/models/data/User.d.ts +4 -0
  29. package/dist/models/data/User.js +7 -0
  30. package/dist/models/data/User.js.map +1 -1
  31. package/dist/models/errors/TwitterError.d.ts +37 -0
  32. package/dist/models/errors/TwitterError.js +60 -0
  33. package/dist/models/errors/TwitterError.js.map +1 -0
  34. package/dist/requests/List.js +28 -9
  35. package/dist/requests/List.js.map +1 -1
  36. package/dist/requests/Tweet.js +111 -34
  37. package/dist/requests/Tweet.js.map +1 -1
  38. package/dist/requests/User.js +231 -111
  39. package/dist/requests/User.js.map +1 -1
  40. package/dist/services/internal/AuthService.d.ts +5 -5
  41. package/dist/services/internal/AuthService.js +6 -7
  42. package/dist/services/internal/AuthService.js.map +1 -1
  43. package/dist/services/internal/ErrorService.d.ts +5 -76
  44. package/dist/services/internal/ErrorService.js +13 -116
  45. package/dist/services/internal/ErrorService.js.map +1 -1
  46. package/dist/services/internal/TidService.d.ts +4 -4
  47. package/dist/services/internal/TidService.js +8 -9
  48. package/dist/services/internal/TidService.js.map +1 -1
  49. package/dist/services/public/FetcherService.js +2 -2
  50. package/dist/services/public/FetcherService.js.map +1 -1
  51. package/dist/services/public/TweetService.js.map +1 -1
  52. package/dist/services/public/UserService.d.ts +29 -2
  53. package/dist/services/public/UserService.js +46 -4
  54. package/dist/services/public/UserService.js.map +1 -1
  55. package/dist/types/errors/TwitterError.d.ts +30 -0
  56. package/dist/types/{raw/generic/Error.js → errors/TwitterError.js} +1 -1
  57. package/dist/types/errors/TwitterError.js.map +1 -0
  58. package/dist/types/raw/base/Error.d.ts +32 -0
  59. package/dist/types/raw/base/Error.js +4 -0
  60. package/dist/types/raw/base/Error.js.map +1 -0
  61. package/dist/types/raw/generic/Response.d.ts +0 -2
  62. package/dist/types/raw/tweet/DetailsBulk.d.ts +288 -0
  63. package/dist/types/raw/tweet/DetailsBulk.js +4 -0
  64. package/dist/types/raw/tweet/DetailsBulk.js.map +1 -0
  65. package/dist/types/raw/user/DetailsBulk.d.ts +91 -0
  66. package/dist/types/raw/user/DetailsBulk.js +4 -0
  67. package/dist/types/raw/user/DetailsBulk.js.map +1 -0
  68. package/package.json +1 -1
  69. package/src/collections/Extractors.ts +8 -2
  70. package/src/collections/Groups.ts +1 -0
  71. package/src/collections/Requests.ts +1 -0
  72. package/src/commands/User.ts +15 -0
  73. package/src/enums/Api.ts +0 -51
  74. package/src/enums/Resource.ts +1 -0
  75. package/src/index.ts +5 -6
  76. package/src/models/data/List.ts +9 -0
  77. package/src/models/data/Notification.ts +10 -0
  78. package/src/models/data/Tweet.ts +9 -0
  79. package/src/models/data/User.ts +9 -0
  80. package/src/models/errors/TwitterError.ts +65 -0
  81. package/src/requests/List.ts +28 -9
  82. package/src/requests/Tweet.ts +111 -34
  83. package/src/requests/User.ts +231 -111
  84. package/src/services/internal/AuthService.ts +7 -8
  85. package/src/services/internal/ErrorService.ts +14 -132
  86. package/src/services/internal/TidService.ts +9 -10
  87. package/src/services/public/FetcherService.ts +2 -2
  88. package/src/services/public/TweetService.ts +3 -2
  89. package/src/services/public/UserService.ts +59 -8
  90. package/src/types/errors/TwitterError.ts +37 -0
  91. package/src/types/raw/base/Error.ts +37 -0
  92. package/src/types/raw/generic/Response.ts +0 -3
  93. package/src/types/raw/tweet/DetailsBulk.ts +338 -0
  94. package/src/types/raw/user/DetailsBulk.ts +104 -0
  95. package/dist/enums/Http.d.ts +0 -68
  96. package/dist/enums/Http.js +0 -73
  97. package/dist/enums/Http.js.map +0 -1
  98. package/dist/models/errors/ApiError.d.ts +0 -15
  99. package/dist/models/errors/ApiError.js +0 -23
  100. package/dist/models/errors/ApiError.js.map +0 -1
  101. package/dist/models/errors/HttpError.d.ts +0 -15
  102. package/dist/models/errors/HttpError.js +0 -23
  103. package/dist/models/errors/HttpError.js.map +0 -1
  104. package/dist/models/errors/RettiwtError.d.ts +0 -9
  105. package/dist/models/errors/RettiwtError.js +0 -17
  106. package/dist/models/errors/RettiwtError.js.map +0 -1
  107. package/dist/models/errors/TimeoutError.d.ts +0 -12
  108. package/dist/models/errors/TimeoutError.js +0 -19
  109. package/dist/models/errors/TimeoutError.js.map +0 -1
  110. package/dist/types/raw/generic/Error.d.ts +0 -30
  111. package/dist/types/raw/generic/Error.js.map +0 -1
  112. package/src/enums/Http.ts +0 -68
  113. package/src/models/errors/ApiError.ts +0 -21
  114. package/src/models/errors/HttpError.ts +0 -21
  115. package/src/models/errors/RettiwtError.ts +0 -13
  116. package/src/models/errors/TimeoutError.ts +0 -15
  117. package/src/types/raw/generic/Error.ts +0 -35
@@ -19,7 +19,7 @@ class UserRequests {
19
19
  static affiliates(id, count, cursor) {
20
20
  return {
21
21
  method: 'get',
22
- url: 'https://x.com/i/api/graphql/0M9yTHGhZjdIIxIcI9H2xQ/UserBusinessProfileTeamTimeline',
22
+ url: 'https://x.com/i/api/graphql/OVFfg1hExk_AygiMVSJd-Q/UserBusinessProfileTeamTimeline',
23
23
  params: {
24
24
  /* eslint-disable @typescript-eslint/naming-convention */
25
25
  variables: JSON.stringify({
@@ -32,9 +32,9 @@ class UserRequests {
32
32
  withVoice: false,
33
33
  }),
34
34
  features: JSON.stringify({
35
+ rweb_video_screen_enabled: false,
35
36
  profile_label_improvements_pcf_label_in_post_enabled: true,
36
37
  rweb_tipjar_consumption_enabled: true,
37
- responsive_web_graphql_exclude_directive_enabled: true,
38
38
  verified_phone_label_enabled: true,
39
39
  creator_subscriptions_tweet_preview_api_enabled: true,
40
40
  responsive_web_graphql_timeline_navigation_enabled: true,
@@ -53,15 +53,15 @@ class UserRequests {
53
53
  longform_notetweets_consumption_enabled: true,
54
54
  responsive_web_twitter_article_tweet_consumption_enabled: true,
55
55
  tweet_awards_web_tipping_enabled: false,
56
+ responsive_web_grok_show_grok_translated_post: false,
56
57
  responsive_web_grok_analysis_button_from_backend: true,
57
58
  creator_subscriptions_quote_tweet_preview_enabled: false,
58
59
  freedom_of_speech_not_reach_fetch_enabled: true,
59
60
  standardized_nudges_misinfo: true,
60
61
  tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled: true,
61
- rweb_video_timestamps_enabled: true,
62
62
  longform_notetweets_rich_text_read_enabled: true,
63
63
  longform_notetweets_inline_media_enabled: true,
64
- responsive_web_grok_image_annotation_enabled: false,
64
+ responsive_web_grok_image_annotation_enabled: true,
65
65
  responsive_web_enhance_cards_enabled: false,
66
66
  }),
67
67
  /* eslint-enable @typescript-eslint/naming-convention */
@@ -96,7 +96,7 @@ class UserRequests {
96
96
  static bookmarks(count, cursor) {
97
97
  return {
98
98
  method: 'get',
99
- url: 'https://x.com/i/api/graphql/qToeLeMs43Q8cr7tRYXmaQ/Bookmarks',
99
+ url: 'https://x.com/i/api/graphql/-LGfdImKeQz0xS_jjUwzlA/Bookmarks',
100
100
  params: {
101
101
  /* eslint-disable @typescript-eslint/naming-convention */
102
102
  variables: JSON.stringify({
@@ -105,27 +105,36 @@ class UserRequests {
105
105
  includePromotedContent: false,
106
106
  }),
107
107
  features: JSON.stringify({
108
- graphql_timeline_v2_bookmark_timeline: true,
108
+ rweb_video_screen_enabled: false,
109
+ profile_label_improvements_pcf_label_in_post_enabled: true,
110
+ rweb_tipjar_consumption_enabled: true,
111
+ verified_phone_label_enabled: true,
109
112
  creator_subscriptions_tweet_preview_api_enabled: true,
113
+ responsive_web_graphql_timeline_navigation_enabled: true,
114
+ responsive_web_graphql_skip_user_profile_image_extensions_enabled: false,
115
+ premium_content_api_read_enabled: false,
116
+ communities_web_enable_tweet_community_results_fetch: true,
110
117
  c9s_tweet_anatomy_moderator_badge_enabled: true,
111
- tweetypie_unmention_optimization_enabled: true,
118
+ responsive_web_grok_analyze_button_fetch_trends_enabled: false,
119
+ responsive_web_grok_analyze_post_followups_enabled: true,
120
+ responsive_web_jetfuel_frame: false,
121
+ responsive_web_grok_share_attachment_enabled: true,
122
+ articles_preview_enabled: true,
112
123
  responsive_web_edit_tweet_api_enabled: true,
113
124
  graphql_is_translatable_rweb_tweet_is_translatable_enabled: true,
114
125
  view_counts_everywhere_api_enabled: true,
115
126
  longform_notetweets_consumption_enabled: true,
116
127
  responsive_web_twitter_article_tweet_consumption_enabled: true,
117
128
  tweet_awards_web_tipping_enabled: false,
118
- longform_notetweets_rich_text_read_enabled: true,
119
- longform_notetweets_inline_media_enabled: true,
120
- rweb_video_timestamps_enabled: true,
121
- responsive_web_graphql_exclude_directive_enabled: true,
122
- verified_phone_label_enabled: false,
129
+ responsive_web_grok_show_grok_translated_post: false,
130
+ responsive_web_grok_analysis_button_from_backend: true,
131
+ creator_subscriptions_quote_tweet_preview_enabled: false,
123
132
  freedom_of_speech_not_reach_fetch_enabled: true,
124
133
  standardized_nudges_misinfo: true,
125
134
  tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled: true,
126
- responsive_web_media_download_video_enabled: false,
127
- responsive_web_graphql_skip_user_profile_image_extensions_enabled: false,
128
- responsive_web_graphql_timeline_navigation_enabled: true,
135
+ longform_notetweets_rich_text_read_enabled: true,
136
+ longform_notetweets_inline_media_enabled: true,
137
+ responsive_web_grok_image_annotation_enabled: true,
129
138
  responsive_web_enhance_cards_enabled: false,
130
139
  }),
131
140
  /* eslint-enable @typescript-eslint/naming-convention */
@@ -144,14 +153,18 @@ class UserRequests {
144
153
  /* eslint-disable @typescript-eslint/naming-convention */
145
154
  variables: JSON.stringify({ userIds: ids }),
146
155
  features: JSON.stringify({
156
+ hidden_profile_likes_enabled: false,
157
+ hidden_profile_subscriptions_enabled: false,
158
+ responsive_web_graphql_exclude_directive_enabled: true,
159
+ verified_phone_label_enabled: true,
160
+ subscriptions_verification_info_verified_since_enabled: true,
161
+ highlights_tweets_tab_ui_enabled: true,
162
+ creator_subscriptions_tweet_preview_api_enabled: true,
163
+ responsive_web_graphql_skip_user_profile_image_extensions_enabled: false,
164
+ responsive_web_graphql_timeline_navigation_enabled: true,
147
165
  profile_label_improvements_pcf_label_in_post_enabled: false,
148
166
  rweb_tipjar_consumption_enabled: false,
149
- responsive_web_graphql_exclude_directive_enabled: false,
150
- verified_phone_label_enabled: false,
151
- responsive_web_graphql_skip_user_profile_image_extensions_enabled: false,
152
- responsive_web_graphql_timeline_navigation_enabled: false,
153
167
  }),
154
- fieldToggles: JSON.stringify({ withAuxiliaryUserLabels: false }),
155
168
  /* eslint-enable @typescript-eslint/naming-convention */
156
169
  },
157
170
  paramsSerializer: { encode: encodeURIComponent },
@@ -163,19 +176,20 @@ class UserRequests {
163
176
  static detailsById(id) {
164
177
  return {
165
178
  method: 'get',
166
- url: 'https://x.com/i/api/graphql/i_0UQ54YrCyqLUvgGzXygA/UserByRestId',
179
+ url: 'https://x.com/i/api/graphql/WJ7rCtezBVT6nk6VM5R8Bw/UserByRestId',
167
180
  params: {
168
181
  /* eslint-disable @typescript-eslint/naming-convention */
169
182
  variables: JSON.stringify({ userId: id, withSafetyModeUserFields: true }),
170
183
  features: JSON.stringify({
171
- hidden_profile_likes_enabled: false,
172
- hidden_profile_subscriptions_enabled: false,
173
- responsive_web_graphql_exclude_directive_enabled: true,
184
+ hidden_profile_subscriptions_enabled: true,
185
+ profile_label_improvements_pcf_label_in_post_enabled: true,
186
+ rweb_tipjar_consumption_enabled: true,
174
187
  verified_phone_label_enabled: true,
175
- subscriptions_verification_info_verified_since_enabled: true,
176
188
  highlights_tweets_tab_ui_enabled: true,
189
+ responsive_web_twitter_article_notes_tab_enabled: true,
190
+ subscriptions_feature_can_gift_premium: true,
177
191
  creator_subscriptions_tweet_preview_api_enabled: true,
178
- responsive_web_graphql_skip_user_profile_image_extensions_enabled: false,
192
+ responsive_web_graphql_skip_user_profile_image_extensions_enabled: true,
179
193
  responsive_web_graphql_timeline_navigation_enabled: true,
180
194
  }),
181
195
  /* eslint-enable @typescript-eslint/naming-convention */
@@ -189,20 +203,25 @@ class UserRequests {
189
203
  static detailsByUsername(userName) {
190
204
  return {
191
205
  method: 'get',
192
- url: 'https://x.com/i/api/graphql/oUZZZ8Oddwxs8Cd3iW3UEA/UserByScreenName',
206
+ url: 'https://x.com/i/api/graphql/1VOOyvKkiI3FMmkeDNxM9A/UserByScreenName',
193
207
  params: {
194
208
  /* eslint-disable @typescript-eslint/naming-convention */
195
209
  variables: JSON.stringify({ screen_name: userName, withSafetyModeUserFields: true }),
196
210
  features: JSON.stringify({
197
- hidden_profile_likes_enabled: false,
198
- responsive_web_graphql_exclude_directive_enabled: true,
211
+ hidden_profile_subscriptions_enabled: true,
212
+ profile_label_improvements_pcf_label_in_post_enabled: true,
213
+ rweb_tipjar_consumption_enabled: true,
199
214
  verified_phone_label_enabled: true,
215
+ subscriptions_verification_info_is_identity_verified_enabled: true,
200
216
  subscriptions_verification_info_verified_since_enabled: true,
201
217
  highlights_tweets_tab_ui_enabled: true,
218
+ responsive_web_twitter_article_notes_tab_enabled: true,
219
+ subscriptions_feature_can_gift_premium: true,
202
220
  creator_subscriptions_tweet_preview_api_enabled: true,
203
221
  responsive_web_graphql_skip_user_profile_image_extensions_enabled: false,
204
222
  responsive_web_graphql_timeline_navigation_enabled: true,
205
223
  }),
224
+ fieldToggles: JSON.stringify({ withAuxiliaryUserLabels: true }),
206
225
  /* eslint-enable @typescript-eslint/naming-convention */
207
226
  },
208
227
  paramsSerializer: { encode: encodeURIComponent },
@@ -229,7 +248,7 @@ class UserRequests {
229
248
  static followed(count, cursor) {
230
249
  return {
231
250
  method: 'get',
232
- url: 'https://x.com/i/api/graphql/9EwYy8pLBOSFlEoSP2STiQ/HomeLatestTimeline',
251
+ url: 'https://x.com/i/api/graphql/CRprHpVA12yhsub-KRERIg/HomeLatestTimeline',
233
252
  params: {
234
253
  /* eslint-disable @typescript-eslint/naming-convention */
235
254
  variables: JSON.stringify({
@@ -240,30 +259,36 @@ class UserRequests {
240
259
  withCommunity: false,
241
260
  }),
242
261
  features: JSON.stringify({
262
+ rweb_video_screen_enabled: false,
263
+ profile_label_improvements_pcf_label_in_post_enabled: true,
243
264
  rweb_tipjar_consumption_enabled: true,
244
- responsive_web_graphql_exclude_directive_enabled: true,
245
265
  verified_phone_label_enabled: true,
246
266
  creator_subscriptions_tweet_preview_api_enabled: true,
247
267
  responsive_web_graphql_timeline_navigation_enabled: true,
248
268
  responsive_web_graphql_skip_user_profile_image_extensions_enabled: false,
269
+ premium_content_api_read_enabled: false,
249
270
  communities_web_enable_tweet_community_results_fetch: true,
250
271
  c9s_tweet_anatomy_moderator_badge_enabled: true,
251
- articles_preview_enabled: false,
252
- tweetypie_unmention_optimization_enabled: true,
272
+ responsive_web_grok_analyze_button_fetch_trends_enabled: false,
273
+ responsive_web_grok_analyze_post_followups_enabled: true,
274
+ responsive_web_jetfuel_frame: false,
275
+ responsive_web_grok_share_attachment_enabled: true,
276
+ articles_preview_enabled: true,
253
277
  responsive_web_edit_tweet_api_enabled: true,
254
278
  graphql_is_translatable_rweb_tweet_is_translatable_enabled: true,
255
279
  view_counts_everywhere_api_enabled: true,
256
280
  longform_notetweets_consumption_enabled: true,
257
281
  responsive_web_twitter_article_tweet_consumption_enabled: true,
258
282
  tweet_awards_web_tipping_enabled: false,
283
+ responsive_web_grok_show_grok_translated_post: false,
284
+ responsive_web_grok_analysis_button_from_backend: true,
259
285
  creator_subscriptions_quote_tweet_preview_enabled: false,
260
286
  freedom_of_speech_not_reach_fetch_enabled: true,
261
287
  standardized_nudges_misinfo: true,
262
288
  tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled: true,
263
- tweet_with_visibility_results_prefer_gql_media_interstitial_enabled: false,
264
- rweb_video_timestamps_enabled: true,
265
289
  longform_notetweets_rich_text_read_enabled: true,
266
290
  longform_notetweets_inline_media_enabled: true,
291
+ responsive_web_grok_image_annotation_enabled: true,
267
292
  responsive_web_enhance_cards_enabled: false,
268
293
  }),
269
294
  /* eslint-enable @typescript-eslint/naming-convention */
@@ -279,7 +304,7 @@ class UserRequests {
279
304
  static followers(id, count, cursor) {
280
305
  return {
281
306
  method: 'get',
282
- url: 'https://x.com/i/api/graphql/6y5TB_HrwQM0FBGDiNfoEA/Followers',
307
+ url: 'https://x.com/i/api/graphql/Elc_-qTARceHpztqhI9PQA/Followers',
283
308
  params: {
284
309
  /* eslint-disable @typescript-eslint/naming-convention */
285
310
  variables: JSON.stringify({
@@ -289,25 +314,36 @@ class UserRequests {
289
314
  includePromotedContent: false,
290
315
  }),
291
316
  features: JSON.stringify({
292
- rweb_lists_timeline_redesign_enabled: true,
293
- responsive_web_graphql_exclude_directive_enabled: true,
317
+ rweb_video_screen_enabled: false,
318
+ profile_label_improvements_pcf_label_in_post_enabled: true,
319
+ rweb_tipjar_consumption_enabled: true,
294
320
  verified_phone_label_enabled: true,
295
321
  creator_subscriptions_tweet_preview_api_enabled: true,
296
322
  responsive_web_graphql_timeline_navigation_enabled: true,
297
323
  responsive_web_graphql_skip_user_profile_image_extensions_enabled: false,
298
- tweetypie_unmention_optimization_enabled: true,
324
+ premium_content_api_read_enabled: false,
325
+ communities_web_enable_tweet_community_results_fetch: true,
326
+ c9s_tweet_anatomy_moderator_badge_enabled: true,
327
+ responsive_web_grok_analyze_button_fetch_trends_enabled: false,
328
+ responsive_web_grok_analyze_post_followups_enabled: true,
329
+ responsive_web_jetfuel_frame: false,
330
+ responsive_web_grok_share_attachment_enabled: true,
331
+ articles_preview_enabled: true,
299
332
  responsive_web_edit_tweet_api_enabled: true,
300
333
  graphql_is_translatable_rweb_tweet_is_translatable_enabled: true,
301
334
  view_counts_everywhere_api_enabled: true,
302
335
  longform_notetweets_consumption_enabled: true,
303
- responsive_web_twitter_article_tweet_consumption_enabled: false,
336
+ responsive_web_twitter_article_tweet_consumption_enabled: true,
304
337
  tweet_awards_web_tipping_enabled: false,
338
+ responsive_web_grok_show_grok_translated_post: false,
339
+ responsive_web_grok_analysis_button_from_backend: true,
340
+ creator_subscriptions_quote_tweet_preview_enabled: false,
305
341
  freedom_of_speech_not_reach_fetch_enabled: true,
306
342
  standardized_nudges_misinfo: true,
307
343
  tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled: true,
308
344
  longform_notetweets_rich_text_read_enabled: true,
309
345
  longform_notetweets_inline_media_enabled: true,
310
- responsive_web_media_download_video_enabled: false,
346
+ responsive_web_grok_image_annotation_enabled: true,
311
347
  responsive_web_enhance_cards_enabled: false,
312
348
  }),
313
349
  /* eslint-enable @typescript-eslint/naming-convention */
@@ -323,7 +359,7 @@ class UserRequests {
323
359
  static following(id, count, cursor) {
324
360
  return {
325
361
  method: 'get',
326
- url: 'https://x.com/i/api/graphql/V8zHw0SZijWORSsb-FNrng/Following',
362
+ url: 'https://x.com/i/api/graphql/C1qZ6bs-L3oc_TKSZyxkXQ/Following',
327
363
  params: {
328
364
  /* eslint-disable @typescript-eslint/naming-convention */
329
365
  variables: JSON.stringify({
@@ -333,25 +369,36 @@ class UserRequests {
333
369
  includePromotedContent: false,
334
370
  }),
335
371
  features: JSON.stringify({
336
- rweb_lists_timeline_redesign_enabled: true,
337
- responsive_web_graphql_exclude_directive_enabled: true,
372
+ rweb_video_screen_enabled: false,
373
+ profile_label_improvements_pcf_label_in_post_enabled: true,
374
+ rweb_tipjar_consumption_enabled: true,
338
375
  verified_phone_label_enabled: true,
339
376
  creator_subscriptions_tweet_preview_api_enabled: true,
340
377
  responsive_web_graphql_timeline_navigation_enabled: true,
341
378
  responsive_web_graphql_skip_user_profile_image_extensions_enabled: false,
342
- tweetypie_unmention_optimization_enabled: true,
379
+ premium_content_api_read_enabled: false,
380
+ communities_web_enable_tweet_community_results_fetch: true,
381
+ c9s_tweet_anatomy_moderator_badge_enabled: true,
382
+ responsive_web_grok_analyze_button_fetch_trends_enabled: false,
383
+ responsive_web_grok_analyze_post_followups_enabled: true,
384
+ responsive_web_jetfuel_frame: false,
385
+ responsive_web_grok_share_attachment_enabled: true,
386
+ articles_preview_enabled: true,
343
387
  responsive_web_edit_tweet_api_enabled: true,
344
388
  graphql_is_translatable_rweb_tweet_is_translatable_enabled: true,
345
389
  view_counts_everywhere_api_enabled: true,
346
390
  longform_notetweets_consumption_enabled: true,
347
- responsive_web_twitter_article_tweet_consumption_enabled: false,
391
+ responsive_web_twitter_article_tweet_consumption_enabled: true,
348
392
  tweet_awards_web_tipping_enabled: false,
393
+ responsive_web_grok_show_grok_translated_post: false,
394
+ responsive_web_grok_analysis_button_from_backend: true,
395
+ creator_subscriptions_quote_tweet_preview_enabled: false,
349
396
  freedom_of_speech_not_reach_fetch_enabled: true,
350
397
  standardized_nudges_misinfo: true,
351
398
  tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled: true,
352
399
  longform_notetweets_rich_text_read_enabled: true,
353
400
  longform_notetweets_inline_media_enabled: true,
354
- responsive_web_media_download_video_enabled: false,
401
+ responsive_web_grok_image_annotation_enabled: true,
355
402
  responsive_web_enhance_cards_enabled: false,
356
403
  }),
357
404
  /* eslint-enable @typescript-eslint/naming-convention */
@@ -367,7 +414,7 @@ class UserRequests {
367
414
  static highlights(id, count, cursor) {
368
415
  return {
369
416
  method: 'get',
370
- url: 'https://x.com/i/api/graphql/Tqc024xHjye_svtpHJ236Q/UserHighlightsTweets',
417
+ url: 'https://x.com/i/api/graphql/cr8FsaThDCa9LKeD9CNZ4w/UserHighlightsTweets',
371
418
  params: {
372
419
  /* eslint-disable @typescript-eslint/naming-convention */
373
420
  variables: JSON.stringify({
@@ -378,27 +425,39 @@ class UserRequests {
378
425
  withVoice: false,
379
426
  }),
380
427
  features: JSON.stringify({
381
- responsive_web_graphql_exclude_directive_enabled: true,
428
+ rweb_video_screen_enabled: false,
429
+ profile_label_improvements_pcf_label_in_post_enabled: true,
430
+ rweb_tipjar_consumption_enabled: true,
382
431
  verified_phone_label_enabled: true,
383
432
  creator_subscriptions_tweet_preview_api_enabled: true,
384
433
  responsive_web_graphql_timeline_navigation_enabled: true,
385
434
  responsive_web_graphql_skip_user_profile_image_extensions_enabled: false,
435
+ premium_content_api_read_enabled: false,
436
+ communities_web_enable_tweet_community_results_fetch: true,
386
437
  c9s_tweet_anatomy_moderator_badge_enabled: true,
387
- tweetypie_unmention_optimization_enabled: true,
438
+ responsive_web_grok_analyze_button_fetch_trends_enabled: false,
439
+ responsive_web_grok_analyze_post_followups_enabled: true,
440
+ responsive_web_jetfuel_frame: false,
441
+ responsive_web_grok_share_attachment_enabled: true,
442
+ articles_preview_enabled: true,
388
443
  responsive_web_edit_tweet_api_enabled: true,
389
444
  graphql_is_translatable_rweb_tweet_is_translatable_enabled: true,
390
445
  view_counts_everywhere_api_enabled: true,
391
446
  longform_notetweets_consumption_enabled: true,
392
447
  responsive_web_twitter_article_tweet_consumption_enabled: true,
393
448
  tweet_awards_web_tipping_enabled: false,
449
+ responsive_web_grok_show_grok_translated_post: false,
450
+ responsive_web_grok_analysis_button_from_backend: true,
451
+ creator_subscriptions_quote_tweet_preview_enabled: false,
394
452
  freedom_of_speech_not_reach_fetch_enabled: true,
395
453
  standardized_nudges_misinfo: true,
396
454
  tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled: true,
397
- rweb_video_timestamps_enabled: true,
398
455
  longform_notetweets_rich_text_read_enabled: true,
399
456
  longform_notetweets_inline_media_enabled: true,
457
+ responsive_web_grok_image_annotation_enabled: true,
400
458
  responsive_web_enhance_cards_enabled: false,
401
459
  }),
460
+ fieldToggles: { withArticlePlainText: false },
402
461
  /* eslint-enable @typescript-eslint/naming-convention */
403
462
  },
404
463
  paramsSerializer: { encode: encodeURIComponent },
@@ -412,7 +471,7 @@ class UserRequests {
412
471
  static likes(id, count, cursor) {
413
472
  return {
414
473
  method: 'get',
415
- url: 'https://x.com/i/api/graphql/kgZtsNyE46T3JaEf2nF9vw/Likes',
474
+ url: 'https://x.com/i/api/graphql/eQl7iWsCr2fChppuJdAeRw/Likes',
416
475
  params: {
417
476
  /* eslint-disable @typescript-eslint/naming-convention */
418
477
  variables: JSON.stringify({
@@ -426,27 +485,39 @@ class UserRequests {
426
485
  withV2Timeline: false,
427
486
  }),
428
487
  features: JSON.stringify({
429
- rweb_lists_timeline_redesign_enabled: true,
430
- responsive_web_graphql_exclude_directive_enabled: true,
488
+ rweb_video_screen_enabled: false,
489
+ profile_label_improvements_pcf_label_in_post_enabled: true,
490
+ rweb_tipjar_consumption_enabled: true,
431
491
  verified_phone_label_enabled: true,
432
492
  creator_subscriptions_tweet_preview_api_enabled: true,
433
493
  responsive_web_graphql_timeline_navigation_enabled: true,
434
494
  responsive_web_graphql_skip_user_profile_image_extensions_enabled: false,
435
- tweetypie_unmention_optimization_enabled: true,
495
+ premium_content_api_read_enabled: false,
496
+ communities_web_enable_tweet_community_results_fetch: true,
497
+ c9s_tweet_anatomy_moderator_badge_enabled: true,
498
+ responsive_web_grok_analyze_button_fetch_trends_enabled: false,
499
+ responsive_web_grok_analyze_post_followups_enabled: true,
500
+ responsive_web_jetfuel_frame: false,
501
+ responsive_web_grok_share_attachment_enabled: true,
502
+ articles_preview_enabled: true,
436
503
  responsive_web_edit_tweet_api_enabled: true,
437
504
  graphql_is_translatable_rweb_tweet_is_translatable_enabled: true,
438
505
  view_counts_everywhere_api_enabled: true,
439
506
  longform_notetweets_consumption_enabled: true,
440
- responsive_web_twitter_article_tweet_consumption_enabled: false,
507
+ responsive_web_twitter_article_tweet_consumption_enabled: true,
441
508
  tweet_awards_web_tipping_enabled: false,
509
+ responsive_web_grok_show_grok_translated_post: false,
510
+ responsive_web_grok_analysis_button_from_backend: true,
511
+ creator_subscriptions_quote_tweet_preview_enabled: false,
442
512
  freedom_of_speech_not_reach_fetch_enabled: true,
443
513
  standardized_nudges_misinfo: true,
444
514
  tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled: true,
445
515
  longform_notetweets_rich_text_read_enabled: true,
446
516
  longform_notetweets_inline_media_enabled: true,
447
- responsive_web_media_download_video_enabled: false,
517
+ responsive_web_grok_image_annotation_enabled: true,
448
518
  responsive_web_enhance_cards_enabled: false,
449
519
  }),
520
+ fieldToggles: { withArticlePlainText: false },
450
521
  /* eslint-enable @typescript-eslint/naming-convention */
451
522
  },
452
523
  paramsSerializer: { encode: encodeURIComponent },
@@ -460,7 +531,7 @@ class UserRequests {
460
531
  static media(id, count, cursor) {
461
532
  return {
462
533
  method: 'get',
463
- url: 'https://x.com/i/api/graphql/EnIWTNQ8Tum-7t1NnZHOEQ/UserMedia',
534
+ url: 'https://x.com/i/api/graphql/vFPc2LVIu7so2uA_gHQAdg/UserMedia',
464
535
  params: {
465
536
  /* eslint-disable @typescript-eslint/naming-convention */
466
537
  variables: JSON.stringify({
@@ -474,27 +545,39 @@ class UserRequests {
474
545
  withV2Timeline: false,
475
546
  }),
476
547
  features: JSON.stringify({
477
- responsive_web_graphql_exclude_directive_enabled: true,
548
+ rweb_video_screen_enabled: false,
549
+ profile_label_improvements_pcf_label_in_post_enabled: true,
550
+ rweb_tipjar_consumption_enabled: true,
478
551
  verified_phone_label_enabled: true,
479
552
  creator_subscriptions_tweet_preview_api_enabled: true,
480
553
  responsive_web_graphql_timeline_navigation_enabled: true,
481
554
  responsive_web_graphql_skip_user_profile_image_extensions_enabled: false,
555
+ premium_content_api_read_enabled: false,
556
+ communities_web_enable_tweet_community_results_fetch: true,
482
557
  c9s_tweet_anatomy_moderator_badge_enabled: true,
483
- tweetypie_unmention_optimization_enabled: true,
558
+ responsive_web_grok_analyze_button_fetch_trends_enabled: false,
559
+ responsive_web_grok_analyze_post_followups_enabled: true,
560
+ responsive_web_jetfuel_frame: false,
561
+ responsive_web_grok_share_attachment_enabled: true,
562
+ articles_preview_enabled: true,
484
563
  responsive_web_edit_tweet_api_enabled: true,
485
564
  graphql_is_translatable_rweb_tweet_is_translatable_enabled: true,
486
565
  view_counts_everywhere_api_enabled: true,
487
566
  longform_notetweets_consumption_enabled: true,
488
567
  responsive_web_twitter_article_tweet_consumption_enabled: true,
489
568
  tweet_awards_web_tipping_enabled: false,
569
+ responsive_web_grok_show_grok_translated_post: false,
570
+ responsive_web_grok_analysis_button_from_backend: true,
571
+ creator_subscriptions_quote_tweet_preview_enabled: false,
490
572
  freedom_of_speech_not_reach_fetch_enabled: true,
491
573
  standardized_nudges_misinfo: true,
492
574
  tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled: true,
493
- rweb_video_timestamps_enabled: true,
494
575
  longform_notetweets_rich_text_read_enabled: true,
495
576
  longform_notetweets_inline_media_enabled: true,
577
+ responsive_web_grok_image_annotation_enabled: true,
496
578
  responsive_web_enhance_cards_enabled: false,
497
579
  }),
580
+ fieldToggles: { withArticlePlainText: false },
498
581
  /* eslint-enable @typescript-eslint/naming-convention */
499
582
  },
500
583
  paramsSerializer: { encode: encodeURIComponent },
@@ -507,40 +590,47 @@ class UserRequests {
507
590
  static notifications(count, cursor) {
508
591
  return {
509
592
  method: 'get',
510
- url: 'https://x.com/i/api/2/notifications/all.json',
593
+ url: 'https://x.com/i/api/graphql/gaBVLalXDBRDJz6maKgdWg/NotificationsTimeline',
511
594
  params: {
512
595
  /* eslint-disable @typescript-eslint/naming-convention */
513
- include_profile_interstitial_type: 1,
514
- include_blocking: 1,
515
- include_blocked_by: 1,
516
- include_followed_by: 1,
517
- include_want_retweets: 1,
518
- include_mute_edge: 1,
519
- include_can_dm: 1,
520
- include_can_media_tag: 1,
521
- include_ext_is_blue_verified: 1,
522
- include_ext_verified_type: 1,
523
- include_ext_profile_image_shape: 1,
524
- skip_status: 1,
525
- cards_platform: 'Web-12',
526
- include_cards: 1,
527
- include_ext_alt_text: true,
528
- include_ext_limited_action_results: true,
529
- include_quote_count: true,
530
- include_reply_count: 1,
531
- tweet_mode: 'extended',
532
- include_ext_views: true,
533
- include_entities: true,
534
- include_user_entities: true,
535
- include_ext_media_color: true,
536
- include_ext_media_availability: true,
537
- include_ext_sensitive_media_warning: true,
538
- include_ext_trusted_friends_metadata: true,
539
- send_error_codes: true,
540
- simple_quoted_tweet: true,
541
- count: count,
542
- cursor: cursor,
543
- ext: 'mediaStats%2ChighlightedLabel%2CvoiceInfo%2CbirdwatchPivot%2CsuperFollowMetadata%2CunmentionInfo%2CeditControl%2Carticle',
596
+ variables: JSON.stringify({
597
+ timeline_type: 'All',
598
+ count: count,
599
+ cursor: cursor,
600
+ }),
601
+ features: JSON.stringify({
602
+ rweb_video_screen_enabled: false,
603
+ profile_label_improvements_pcf_label_in_post_enabled: true,
604
+ rweb_tipjar_consumption_enabled: true,
605
+ verified_phone_label_enabled: true,
606
+ creator_subscriptions_tweet_preview_api_enabled: true,
607
+ responsive_web_graphql_timeline_navigation_enabled: true,
608
+ responsive_web_graphql_skip_user_profile_image_extensions_enabled: false,
609
+ premium_content_api_read_enabled: false,
610
+ communities_web_enable_tweet_community_results_fetch: true,
611
+ c9s_tweet_anatomy_moderator_badge_enabled: true,
612
+ responsive_web_grok_analyze_button_fetch_trends_enabled: false,
613
+ responsive_web_grok_analyze_post_followups_enabled: true,
614
+ responsive_web_jetfuel_frame: false,
615
+ responsive_web_grok_share_attachment_enabled: true,
616
+ articles_preview_enabled: true,
617
+ responsive_web_edit_tweet_api_enabled: true,
618
+ graphql_is_translatable_rweb_tweet_is_translatable_enabled: true,
619
+ view_counts_everywhere_api_enabled: true,
620
+ longform_notetweets_consumption_enabled: true,
621
+ responsive_web_twitter_article_tweet_consumption_enabled: true,
622
+ tweet_awards_web_tipping_enabled: false,
623
+ responsive_web_grok_show_grok_translated_post: false,
624
+ responsive_web_grok_analysis_button_from_backend: true,
625
+ creator_subscriptions_quote_tweet_preview_enabled: false,
626
+ freedom_of_speech_not_reach_fetch_enabled: true,
627
+ standardized_nudges_misinfo: true,
628
+ tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled: true,
629
+ longform_notetweets_rich_text_read_enabled: true,
630
+ longform_notetweets_inline_media_enabled: true,
631
+ responsive_web_grok_image_annotation_enabled: true,
632
+ responsive_web_enhance_cards_enabled: false,
633
+ }),
544
634
  /* eslint-enable @typescript-eslint/naming-convention */
545
635
  },
546
636
  };
@@ -552,7 +642,7 @@ class UserRequests {
552
642
  static recommended(count, cursor) {
553
643
  return {
554
644
  method: 'get',
555
- url: 'https://x.com/i/api/graphql/q1x0puFIVMzsbx2Yoh-usA/HomeTimeline',
645
+ url: 'https://x.com/i/api/graphql/Q_P3YVnmHunGFkZ8ISM-7w/HomeTimeline',
556
646
  params: {
557
647
  /* eslint-disable @typescript-eslint/naming-convention */
558
648
  variables: JSON.stringify({
@@ -564,30 +654,36 @@ class UserRequests {
564
654
  seenTweetIds: [],
565
655
  }),
566
656
  features: JSON.stringify({
657
+ rweb_video_screen_enabled: false,
658
+ profile_label_improvements_pcf_label_in_post_enabled: true,
567
659
  rweb_tipjar_consumption_enabled: true,
568
- responsive_web_graphql_exclude_directive_enabled: true,
569
660
  verified_phone_label_enabled: true,
570
661
  creator_subscriptions_tweet_preview_api_enabled: true,
571
662
  responsive_web_graphql_timeline_navigation_enabled: true,
572
663
  responsive_web_graphql_skip_user_profile_image_extensions_enabled: false,
664
+ premium_content_api_read_enabled: false,
573
665
  communities_web_enable_tweet_community_results_fetch: true,
574
666
  c9s_tweet_anatomy_moderator_badge_enabled: true,
575
- articles_preview_enabled: false,
576
- tweetypie_unmention_optimization_enabled: true,
667
+ responsive_web_grok_analyze_button_fetch_trends_enabled: false,
668
+ responsive_web_grok_analyze_post_followups_enabled: true,
669
+ responsive_web_jetfuel_frame: false,
670
+ responsive_web_grok_share_attachment_enabled: true,
671
+ articles_preview_enabled: true,
577
672
  responsive_web_edit_tweet_api_enabled: true,
578
673
  graphql_is_translatable_rweb_tweet_is_translatable_enabled: true,
579
674
  view_counts_everywhere_api_enabled: true,
580
675
  longform_notetweets_consumption_enabled: true,
581
676
  responsive_web_twitter_article_tweet_consumption_enabled: true,
582
677
  tweet_awards_web_tipping_enabled: false,
678
+ responsive_web_grok_show_grok_translated_post: false,
679
+ responsive_web_grok_analysis_button_from_backend: true,
583
680
  creator_subscriptions_quote_tweet_preview_enabled: false,
584
681
  freedom_of_speech_not_reach_fetch_enabled: true,
585
682
  standardized_nudges_misinfo: true,
586
683
  tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled: true,
587
- tweet_with_visibility_results_prefer_gql_media_interstitial_enabled: false,
588
- rweb_video_timestamps_enabled: true,
589
684
  longform_notetweets_rich_text_read_enabled: true,
590
685
  longform_notetweets_inline_media_enabled: true,
686
+ responsive_web_grok_image_annotation_enabled: true,
591
687
  responsive_web_enhance_cards_enabled: false,
592
688
  }),
593
689
  /* eslint-enable @typescript-eslint/naming-convention */
@@ -657,7 +753,7 @@ class UserRequests {
657
753
  static tweets(id, count, cursor) {
658
754
  return {
659
755
  method: 'get',
660
- url: 'https://x.com/i/api/graphql/9bXBrlmUXOHFZEq0DuvYWA/UserTweets',
756
+ url: 'https://x.com/i/api/graphql/HeWHY26ItCfUmm1e6ITjeA/UserTweets',
661
757
  params: {
662
758
  /* eslint-disable @typescript-eslint/naming-convention */
663
759
  variables: JSON.stringify({
@@ -670,27 +766,39 @@ class UserRequests {
670
766
  withV2Timeline: false,
671
767
  }),
672
768
  features: JSON.stringify({
673
- responsive_web_graphql_exclude_directive_enabled: true,
769
+ rweb_video_screen_enabled: false,
770
+ profile_label_improvements_pcf_label_in_post_enabled: true,
771
+ rweb_tipjar_consumption_enabled: true,
674
772
  verified_phone_label_enabled: true,
675
- responsive_web_home_pinned_timelines_enabled: false,
676
773
  creator_subscriptions_tweet_preview_api_enabled: true,
677
774
  responsive_web_graphql_timeline_navigation_enabled: true,
678
775
  responsive_web_graphql_skip_user_profile_image_extensions_enabled: false,
679
- tweetypie_unmention_optimization_enabled: true,
776
+ premium_content_api_read_enabled: false,
777
+ communities_web_enable_tweet_community_results_fetch: true,
778
+ c9s_tweet_anatomy_moderator_badge_enabled: true,
779
+ responsive_web_grok_analyze_button_fetch_trends_enabled: false,
780
+ responsive_web_grok_analyze_post_followups_enabled: true,
781
+ responsive_web_jetfuel_frame: false,
782
+ responsive_web_grok_share_attachment_enabled: true,
783
+ articles_preview_enabled: true,
680
784
  responsive_web_edit_tweet_api_enabled: true,
681
785
  graphql_is_translatable_rweb_tweet_is_translatable_enabled: true,
682
786
  view_counts_everywhere_api_enabled: true,
683
787
  longform_notetweets_consumption_enabled: true,
684
- responsive_web_twitter_article_tweet_consumption_enabled: false,
788
+ responsive_web_twitter_article_tweet_consumption_enabled: true,
685
789
  tweet_awards_web_tipping_enabled: false,
790
+ responsive_web_grok_show_grok_translated_post: false,
791
+ responsive_web_grok_analysis_button_from_backend: true,
792
+ creator_subscriptions_quote_tweet_preview_enabled: false,
686
793
  freedom_of_speech_not_reach_fetch_enabled: true,
687
794
  standardized_nudges_misinfo: true,
688
795
  tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled: true,
689
796
  longform_notetweets_rich_text_read_enabled: true,
690
797
  longform_notetweets_inline_media_enabled: true,
691
- responsive_web_media_download_video_enabled: false,
798
+ responsive_web_grok_image_annotation_enabled: true,
692
799
  responsive_web_enhance_cards_enabled: false,
693
800
  }),
801
+ fieldToggles: { withArticlePlainText: false },
694
802
  /* eslint-enable @typescript-eslint/naming-convention */
695
803
  },
696
804
  paramsSerializer: { encode: encodeURIComponent },
@@ -704,7 +812,7 @@ class UserRequests {
704
812
  static tweetsAndReplies(id, count, cursor) {
705
813
  return {
706
814
  method: 'get',
707
- url: 'https://x.com/i/api/graphql/JFsmXeZ0h-hs934UFSfayw/UserTweetsAndReplies',
815
+ url: 'https://x.com/i/api/graphql/OAx9yEcW3JA9bPo63pcYlA/UserTweetsAndReplies',
708
816
  params: {
709
817
  /* eslint-disable @typescript-eslint/naming-convention */
710
818
  variables: JSON.stringify({
@@ -717,27 +825,39 @@ class UserRequests {
717
825
  withV2Timeline: false,
718
826
  }),
719
827
  features: JSON.stringify({
720
- responsive_web_graphql_exclude_directive_enabled: true,
828
+ rweb_video_screen_enabled: false,
829
+ profile_label_improvements_pcf_label_in_post_enabled: true,
830
+ rweb_tipjar_consumption_enabled: true,
721
831
  verified_phone_label_enabled: true,
722
- responsive_web_home_pinned_timelines_enabled: true,
723
832
  creator_subscriptions_tweet_preview_api_enabled: true,
724
833
  responsive_web_graphql_timeline_navigation_enabled: true,
725
834
  responsive_web_graphql_skip_user_profile_image_extensions_enabled: false,
726
- tweetypie_unmention_optimization_enabled: true,
835
+ premium_content_api_read_enabled: false,
836
+ communities_web_enable_tweet_community_results_fetch: true,
837
+ c9s_tweet_anatomy_moderator_badge_enabled: true,
838
+ responsive_web_grok_analyze_button_fetch_trends_enabled: false,
839
+ responsive_web_grok_analyze_post_followups_enabled: true,
840
+ responsive_web_jetfuel_frame: false,
841
+ responsive_web_grok_share_attachment_enabled: true,
842
+ articles_preview_enabled: true,
727
843
  responsive_web_edit_tweet_api_enabled: true,
728
844
  graphql_is_translatable_rweb_tweet_is_translatable_enabled: true,
729
845
  view_counts_everywhere_api_enabled: true,
730
846
  longform_notetweets_consumption_enabled: true,
731
- responsive_web_twitter_article_tweet_consumption_enabled: false,
847
+ responsive_web_twitter_article_tweet_consumption_enabled: true,
732
848
  tweet_awards_web_tipping_enabled: false,
849
+ responsive_web_grok_show_grok_translated_post: false,
850
+ responsive_web_grok_analysis_button_from_backend: true,
851
+ creator_subscriptions_quote_tweet_preview_enabled: false,
733
852
  freedom_of_speech_not_reach_fetch_enabled: true,
734
853
  standardized_nudges_misinfo: true,
735
854
  tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled: true,
736
855
  longform_notetweets_rich_text_read_enabled: true,
737
856
  longform_notetweets_inline_media_enabled: true,
738
- responsive_web_media_download_video_enabled: false,
857
+ responsive_web_grok_image_annotation_enabled: true,
739
858
  responsive_web_enhance_cards_enabled: false,
740
859
  }),
860
+ fieldToggles: { withArticlePlainText: false },
741
861
  /* eslint-enable @typescript-eslint/naming-convention */
742
862
  },
743
863
  paramsSerializer: { encode: encodeURIComponent },