1
Fork 0
mirror of https://github.com/thegeneralist01/twitter-openapi synced 2026-03-07 12:39:54 +01:00

Merge pull request #85 from fa0311/dev

Dev
This commit is contained in:
ふぁ 2025-03-11 22:59:34 +09:00 committed by GitHub
commit a321665475
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
12 changed files with 756 additions and 493 deletions

View file

@ -39,7 +39,7 @@ jobs:
- name: Get Openapi Generator
run: |
wget https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/7.10.0/openapi-generator-cli-7.10.0.jar -O openapi-generator-cli.jar --no-verbose
wget https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/7.12.0/openapi-generator-cli-7.12.0.jar -O openapi-generator-cli.jar --no-verbose
if: steps.openapi-generator-cache.outputs.cache-hit != 'true'
# Python Setup

View file

@ -40,7 +40,7 @@ jobs:
- name: Get Openapi Generator
run: |
wget https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/7.10.0/openapi-generator-cli-7.10.0.jar -O openapi-generator-cli.jar --no-verbose
wget https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/7.12.0/openapi-generator-cli-7.12.0.jar -O openapi-generator-cli.jar --no-verbose
if: steps.openapi-generator-cache.outputs.cache-hit != 'true'
# Python Setup

9
.vscode/launch.json vendored
View file

@ -31,6 +31,15 @@
"MULTI_THREAD": "True",
"CUESOR_TEST_COUNT": "3"
}
},
{
"name": "test-guest",
"type": "debugpy",
"request": "launch",
"program": "test/python/test_serialize_guest.py",
"console": "integratedTerminal",
"justMyCode": false,
"preLaunchTask": "build-task"
}
]
}

6
.vscode/tasks.json vendored
View file

@ -39,21 +39,21 @@
"command": [
"python3.10 -m venv .venv;",
".venv/bin/python3 -m pip install -r requirements.txt;",
"curl https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/7.10.0/openapi-generator-cli-7.10.0.jar -o openapi-generator-cli.jar;"
"curl https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/7.12.0/openapi-generator-cli-7.12.0.jar -o openapi-generator-cli.jar;"
]
},
"linux": {
"command": [
"python3 -m venv .venv;",
".venv/bin/python3 -m pip install -r requirements.txt;",
"wget https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/7.10.0/openapi-generator-cli-7.10.0.jar -O openapi-generator-cli.jar;"
"wget https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/7.12.0/openapi-generator-cli-7.12.0.jar -O openapi-generator-cli.jar;"
]
},
"windows": {
"command": [
"python -m venv .venv;",
".venv/Scripts/python -m pip install -r requirements.txt;",
"Invoke-WebRequest https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/7.10.0/openapi-generator-cli-7.10.0.jar -OutFile openapi-generator-cli.jar;"
"Invoke-WebRequest https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/7.12.0/openapi-generator-cli-7.12.0.jar -OutFile openapi-generator-cli.jar;"
]
}
}

View file

@ -991,6 +991,7 @@ components:
TimelinePrompt: '#/components/schemas/TimelinePrompt'
TimelineTimelineCursor: '#/components/schemas/TimelineTimelineCursor'
TimelineTombstone: '#/components/schemas/TimelineTombstone'
TimelineTrend: '#/components/schemas/TimelineTrend'
TimelineTweet: '#/components/schemas/TimelineTweet'
TimelineUser: '#/components/schemas/TimelineUser'
propertyName: __typename
@ -1002,6 +1003,7 @@ components:
- $ref: '#/components/schemas/TimelineMessagePrompt'
- $ref: '#/components/schemas/TimelineCommunity'
- $ref: '#/components/schemas/TimelineTombstone'
- $ref: '#/components/schemas/TimelineTrend'
ItemResult:
properties:
__typename:
@ -1332,6 +1334,8 @@ components:
- itemContent
ModuleItem:
properties:
dispensable:
type: boolean
entryId:
pattern: ^(([a-z]+|[0-9]+|[0-9a-f]+)(-|$))+
type: string
@ -1680,6 +1684,16 @@ components:
- startIndex
- endIndex
type: object
ThumbnailImage:
properties:
original_img_height:
type: integer
original_img_url:
format: uri
type: string
original_img_width:
type: integer
type: object
Timeline:
properties:
instructions:
@ -2016,6 +2030,36 @@ components:
type:
$ref: '#/components/schemas/SocialContextUnionType'
type: object
TimelineTrend:
properties:
__typename:
$ref: '#/components/schemas/TypeName'
images:
items:
$ref: '#/components/schemas/TrendImage'
type: array
is_ai_trend:
type: boolean
itemType:
$ref: '#/components/schemas/ContentItemType'
name:
type: string
social_context:
$ref: '#/components/schemas/SocialContextUnion'
thumbnail_image:
$ref: '#/components/schemas/ThumbnailImage'
trend_metadata:
$ref: '#/components/schemas/TrendMetadata'
trend_url:
$ref: '#/components/schemas/SocialContextLandingUrl'
required:
- __typename
- itemType
- name
- trend_url
- trend_metadata
- thumbnail_image
- images
TimelineTweet:
properties:
__typename:
@ -2151,6 +2195,17 @@ components:
required:
- trace_id
type: object
TrendImage:
properties:
url:
format: uri
type: string
type: object
TrendMetadata:
properties:
url:
$ref: '#/components/schemas/SocialContextLandingUrl'
type: object
TrendResults:
properties:
rest_id:
@ -4277,8 +4332,8 @@ paths:
name: pathQueryId
required: true
schema:
default: L7vvM2UluPgWOW4GDvWyvw
example: L7vvM2UluPgWOW4GDvWyvw
default: 1vFR5f4iSCQZLzjdSsNYwA
example: 1vFR5f4iSCQZLzjdSsNYwA
type: string
- in: query
name: variables
@ -4291,36 +4346,40 @@ paths:
name: features
required: true
schema:
default: '{"graphql_timeline_v2_bookmark_timeline": true, "rweb_tipjar_consumption_enabled":
true, "responsive_web_graphql_exclude_directive_enabled": true, "verified_phone_label_enabled":
false, "creator_subscriptions_tweet_preview_api_enabled": true, "responsive_web_graphql_timeline_navigation_enabled":
true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled":
false, "communities_web_enable_tweet_community_results_fetch": true, "c9s_tweet_anatomy_moderator_badge_enabled":
true, "articles_preview_enabled": true, "responsive_web_edit_tweet_api_enabled":
true, "graphql_is_translatable_rweb_tweet_is_translatable_enabled": true,
"view_counts_everywhere_api_enabled": true, "longform_notetweets_consumption_enabled":
default: '{"graphql_timeline_v2_bookmark_timeline": true, "profile_label_improvements_pcf_label_in_post_enabled":
true, "rweb_tipjar_consumption_enabled": true, "responsive_web_graphql_exclude_directive_enabled":
true, "verified_phone_label_enabled": false, "creator_subscriptions_tweet_preview_api_enabled":
true, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled":
false, "premium_content_api_read_enabled": false, "communities_web_enable_tweet_community_results_fetch":
true, "c9s_tweet_anatomy_moderator_badge_enabled": true, "responsive_web_grok_analyze_button_fetch_trends_enabled":
false, "responsive_web_grok_analyze_post_followups_enabled": true, "responsive_web_jetfuel_frame":
false, "responsive_web_grok_share_attachment_enabled": true, "articles_preview_enabled":
true, "responsive_web_edit_tweet_api_enabled": true, "graphql_is_translatable_rweb_tweet_is_translatable_enabled":
true, "view_counts_everywhere_api_enabled": true, "longform_notetweets_consumption_enabled":
true, "responsive_web_twitter_article_tweet_consumption_enabled": true,
"tweet_awards_web_tipping_enabled": false, "creator_subscriptions_quote_tweet_preview_enabled":
false, "freedom_of_speech_not_reach_fetch_enabled": true, "standardized_nudges_misinfo":
true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled":
"tweet_awards_web_tipping_enabled": false, "responsive_web_grok_analysis_button_from_backend":
false, "creator_subscriptions_quote_tweet_preview_enabled": false, "freedom_of_speech_not_reach_fetch_enabled":
true, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled":
true, "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled":
true, "longform_notetweets_inline_media_enabled": true, "responsive_web_enhance_cards_enabled":
false}'
example: '{"graphql_timeline_v2_bookmark_timeline": true, "rweb_tipjar_consumption_enabled":
true, "responsive_web_graphql_exclude_directive_enabled": true, "verified_phone_label_enabled":
false, "creator_subscriptions_tweet_preview_api_enabled": true, "responsive_web_graphql_timeline_navigation_enabled":
true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled":
false, "communities_web_enable_tweet_community_results_fetch": true, "c9s_tweet_anatomy_moderator_badge_enabled":
true, "articles_preview_enabled": true, "responsive_web_edit_tweet_api_enabled":
true, "graphql_is_translatable_rweb_tweet_is_translatable_enabled": true,
"view_counts_everywhere_api_enabled": true, "longform_notetweets_consumption_enabled":
true, "longform_notetweets_inline_media_enabled": true, "responsive_web_grok_image_annotation_enabled":
true, "responsive_web_enhance_cards_enabled": false}'
example: '{"graphql_timeline_v2_bookmark_timeline": true, "profile_label_improvements_pcf_label_in_post_enabled":
true, "rweb_tipjar_consumption_enabled": true, "responsive_web_graphql_exclude_directive_enabled":
true, "verified_phone_label_enabled": false, "creator_subscriptions_tweet_preview_api_enabled":
true, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled":
false, "premium_content_api_read_enabled": false, "communities_web_enable_tweet_community_results_fetch":
true, "c9s_tweet_anatomy_moderator_badge_enabled": true, "responsive_web_grok_analyze_button_fetch_trends_enabled":
false, "responsive_web_grok_analyze_post_followups_enabled": true, "responsive_web_jetfuel_frame":
false, "responsive_web_grok_share_attachment_enabled": true, "articles_preview_enabled":
true, "responsive_web_edit_tweet_api_enabled": true, "graphql_is_translatable_rweb_tweet_is_translatable_enabled":
true, "view_counts_everywhere_api_enabled": true, "longform_notetweets_consumption_enabled":
true, "responsive_web_twitter_article_tweet_consumption_enabled": true,
"tweet_awards_web_tipping_enabled": false, "creator_subscriptions_quote_tweet_preview_enabled":
false, "freedom_of_speech_not_reach_fetch_enabled": true, "standardized_nudges_misinfo":
true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled":
"tweet_awards_web_tipping_enabled": false, "responsive_web_grok_analysis_button_from_backend":
false, "creator_subscriptions_quote_tweet_preview_enabled": false, "freedom_of_speech_not_reach_fetch_enabled":
true, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled":
true, "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled":
true, "longform_notetweets_inline_media_enabled": true, "responsive_web_enhance_cards_enabled":
false}'
true, "longform_notetweets_inline_media_enabled": true, "responsive_web_grok_image_annotation_enabled":
true, "responsive_web_enhance_cards_enabled": false}'
type: string
responses:
'200':
@ -5450,7 +5509,7 @@ paths:
true, "view_counts_everywhere_api_enabled": true, "longform_notetweets_consumption_enabled":
true, "responsive_web_twitter_article_tweet_consumption_enabled": true,
"tweet_awards_web_tipping_enabled": false, "responsive_web_grok_analysis_button_from_backend":
true, "creator_subscriptions_quote_tweet_preview_enabled": false, "freedom_of_speech_not_reach_fetch_enabled":
false, "creator_subscriptions_quote_tweet_preview_enabled": false, "freedom_of_speech_not_reach_fetch_enabled":
true, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled":
true, "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled":
true, "longform_notetweets_inline_media_enabled": true, "responsive_web_grok_image_annotation_enabled":
@ -5467,7 +5526,7 @@ paths:
true, "view_counts_everywhere_api_enabled": true, "longform_notetweets_consumption_enabled":
true, "responsive_web_twitter_article_tweet_consumption_enabled": true,
"tweet_awards_web_tipping_enabled": false, "responsive_web_grok_analysis_button_from_backend":
true, "creator_subscriptions_quote_tweet_preview_enabled": false, "freedom_of_speech_not_reach_fetch_enabled":
false, "creator_subscriptions_quote_tweet_preview_enabled": false, "freedom_of_speech_not_reach_fetch_enabled":
true, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled":
true, "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled":
true, "longform_notetweets_inline_media_enabled": true, "responsive_web_grok_image_annotation_enabled":
@ -5546,7 +5605,7 @@ paths:
true, "view_counts_everywhere_api_enabled": true, "longform_notetweets_consumption_enabled":
true, "responsive_web_twitter_article_tweet_consumption_enabled": true,
"tweet_awards_web_tipping_enabled": false, "responsive_web_grok_analysis_button_from_backend":
true, "creator_subscriptions_quote_tweet_preview_enabled": false, "freedom_of_speech_not_reach_fetch_enabled":
false, "creator_subscriptions_quote_tweet_preview_enabled": false, "freedom_of_speech_not_reach_fetch_enabled":
true, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled":
true, "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled":
true, "longform_notetweets_inline_media_enabled": true, "responsive_web_grok_image_annotation_enabled":
@ -5563,7 +5622,7 @@ paths:
true, "view_counts_everywhere_api_enabled": true, "longform_notetweets_consumption_enabled":
true, "responsive_web_twitter_article_tweet_consumption_enabled": true,
"tweet_awards_web_tipping_enabled": false, "responsive_web_grok_analysis_button_from_backend":
true, "creator_subscriptions_quote_tweet_preview_enabled": false, "freedom_of_speech_not_reach_fetch_enabled":
false, "creator_subscriptions_quote_tweet_preview_enabled": false, "freedom_of_speech_not_reach_fetch_enabled":
true, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled":
true, "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled":
true, "longform_notetweets_inline_media_enabled": true, "responsive_web_grok_image_annotation_enabled":
@ -5612,8 +5671,8 @@ paths:
name: pathQueryId
required: true
schema:
default: 8RCkxWhvFsJ8XZeNf_z5IQ
example: 8RCkxWhvFsJ8XZeNf_z5IQ
default: Jb0jbeTT4W5Bcuo7IpFa4Q
example: Jb0jbeTT4W5Bcuo7IpFa4Q
type: string
- in: query
name: variables
@ -5630,40 +5689,40 @@ paths:
name: features
required: true
schema:
default: '{"profile_label_improvements_pcf_label_in_post_enabled": false,
default: '{"profile_label_improvements_pcf_label_in_post_enabled": true,
"rweb_tipjar_consumption_enabled": true, "responsive_web_graphql_exclude_directive_enabled":
true, "verified_phone_label_enabled": false, "creator_subscriptions_tweet_preview_api_enabled":
true, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled":
false, "premium_content_api_read_enabled": false, "communities_web_enable_tweet_community_results_fetch":
true, "c9s_tweet_anatomy_moderator_badge_enabled": true, "responsive_web_grok_analyze_button_fetch_trends_enabled":
false, "responsive_web_grok_analyze_post_followups_enabled": true, "responsive_web_grok_share_attachment_enabled":
true, "articles_preview_enabled": true, "responsive_web_edit_tweet_api_enabled":
true, "graphql_is_translatable_rweb_tweet_is_translatable_enabled": true,
"view_counts_everywhere_api_enabled": true, "longform_notetweets_consumption_enabled":
false, "responsive_web_grok_analyze_post_followups_enabled": true, "responsive_web_jetfuel_frame":
false, "responsive_web_grok_share_attachment_enabled": true, "articles_preview_enabled":
true, "responsive_web_edit_tweet_api_enabled": true, "graphql_is_translatable_rweb_tweet_is_translatable_enabled":
true, "view_counts_everywhere_api_enabled": true, "longform_notetweets_consumption_enabled":
true, "responsive_web_twitter_article_tweet_consumption_enabled": true,
"tweet_awards_web_tipping_enabled": false, "creator_subscriptions_quote_tweet_preview_enabled":
false, "freedom_of_speech_not_reach_fetch_enabled": true, "standardized_nudges_misinfo":
true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled":
"tweet_awards_web_tipping_enabled": false, "responsive_web_grok_analysis_button_from_backend":
false, "creator_subscriptions_quote_tweet_preview_enabled": false, "freedom_of_speech_not_reach_fetch_enabled":
true, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled":
true, "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled":
true, "longform_notetweets_inline_media_enabled": true, "responsive_web_enhance_cards_enabled":
false}'
example: '{"profile_label_improvements_pcf_label_in_post_enabled": false,
true, "longform_notetweets_inline_media_enabled": true, "responsive_web_grok_image_annotation_enabled":
true, "responsive_web_enhance_cards_enabled": false}'
example: '{"profile_label_improvements_pcf_label_in_post_enabled": true,
"rweb_tipjar_consumption_enabled": true, "responsive_web_graphql_exclude_directive_enabled":
true, "verified_phone_label_enabled": false, "creator_subscriptions_tweet_preview_api_enabled":
true, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled":
false, "premium_content_api_read_enabled": false, "communities_web_enable_tweet_community_results_fetch":
true, "c9s_tweet_anatomy_moderator_badge_enabled": true, "responsive_web_grok_analyze_button_fetch_trends_enabled":
false, "responsive_web_grok_analyze_post_followups_enabled": true, "responsive_web_grok_share_attachment_enabled":
true, "articles_preview_enabled": true, "responsive_web_edit_tweet_api_enabled":
true, "graphql_is_translatable_rweb_tweet_is_translatable_enabled": true,
"view_counts_everywhere_api_enabled": true, "longform_notetweets_consumption_enabled":
false, "responsive_web_grok_analyze_post_followups_enabled": true, "responsive_web_jetfuel_frame":
false, "responsive_web_grok_share_attachment_enabled": true, "articles_preview_enabled":
true, "responsive_web_edit_tweet_api_enabled": true, "graphql_is_translatable_rweb_tweet_is_translatable_enabled":
true, "view_counts_everywhere_api_enabled": true, "longform_notetweets_consumption_enabled":
true, "responsive_web_twitter_article_tweet_consumption_enabled": true,
"tweet_awards_web_tipping_enabled": false, "creator_subscriptions_quote_tweet_preview_enabled":
false, "freedom_of_speech_not_reach_fetch_enabled": true, "standardized_nudges_misinfo":
true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled":
"tweet_awards_web_tipping_enabled": false, "responsive_web_grok_analysis_button_from_backend":
false, "creator_subscriptions_quote_tweet_preview_enabled": false, "freedom_of_speech_not_reach_fetch_enabled":
true, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled":
true, "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled":
true, "longform_notetweets_inline_media_enabled": true, "responsive_web_enhance_cards_enabled":
false}'
true, "longform_notetweets_inline_media_enabled": true, "responsive_web_grok_image_annotation_enabled":
true, "responsive_web_enhance_cards_enabled": false}'
type: string
- in: query
name: fieldToggles
@ -5741,7 +5800,7 @@ paths:
true, "view_counts_everywhere_api_enabled": true, "longform_notetweets_consumption_enabled":
true, "responsive_web_twitter_article_tweet_consumption_enabled": true,
"tweet_awards_web_tipping_enabled": false, "responsive_web_grok_analysis_button_from_backend":
true, "creator_subscriptions_quote_tweet_preview_enabled": false, "freedom_of_speech_not_reach_fetch_enabled":
false, "creator_subscriptions_quote_tweet_preview_enabled": false, "freedom_of_speech_not_reach_fetch_enabled":
true, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled":
true, "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled":
true, "longform_notetweets_inline_media_enabled": true, "responsive_web_grok_image_annotation_enabled":
@ -5758,7 +5817,7 @@ paths:
true, "view_counts_everywhere_api_enabled": true, "longform_notetweets_consumption_enabled":
true, "responsive_web_twitter_article_tweet_consumption_enabled": true,
"tweet_awards_web_tipping_enabled": false, "responsive_web_grok_analysis_button_from_backend":
true, "creator_subscriptions_quote_tweet_preview_enabled": false, "freedom_of_speech_not_reach_fetch_enabled":
false, "creator_subscriptions_quote_tweet_preview_enabled": false, "freedom_of_speech_not_reach_fetch_enabled":
true, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled":
true, "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled":
true, "longform_notetweets_inline_media_enabled": true, "responsive_web_grok_image_annotation_enabled":
@ -5893,7 +5952,7 @@ paths:
true, "view_counts_everywhere_api_enabled": true, "longform_notetweets_consumption_enabled":
true, "responsive_web_twitter_article_tweet_consumption_enabled": true,
"tweet_awards_web_tipping_enabled": false, "responsive_web_grok_analysis_button_from_backend":
true, "creator_subscriptions_quote_tweet_preview_enabled": false, "freedom_of_speech_not_reach_fetch_enabled":
false, "creator_subscriptions_quote_tweet_preview_enabled": false, "freedom_of_speech_not_reach_fetch_enabled":
true, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled":
true, "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled":
true, "longform_notetweets_inline_media_enabled": true, "responsive_web_grok_image_annotation_enabled":
@ -5910,7 +5969,7 @@ paths:
true, "view_counts_everywhere_api_enabled": true, "longform_notetweets_consumption_enabled":
true, "responsive_web_twitter_article_tweet_consumption_enabled": true,
"tweet_awards_web_tipping_enabled": false, "responsive_web_grok_analysis_button_from_backend":
true, "creator_subscriptions_quote_tweet_preview_enabled": false, "freedom_of_speech_not_reach_fetch_enabled":
false, "creator_subscriptions_quote_tweet_preview_enabled": false, "freedom_of_speech_not_reach_fetch_enabled":
true, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled":
true, "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled":
true, "longform_notetweets_inline_media_enabled": true, "responsive_web_grok_image_annotation_enabled":
@ -5987,7 +6046,7 @@ paths:
true, "view_counts_everywhere_api_enabled": true, "longform_notetweets_consumption_enabled":
true, "responsive_web_twitter_article_tweet_consumption_enabled": true,
"tweet_awards_web_tipping_enabled": false, "responsive_web_grok_analysis_button_from_backend":
true, "creator_subscriptions_quote_tweet_preview_enabled": false, "freedom_of_speech_not_reach_fetch_enabled":
false, "creator_subscriptions_quote_tweet_preview_enabled": false, "freedom_of_speech_not_reach_fetch_enabled":
true, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled":
true, "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled":
true, "longform_notetweets_inline_media_enabled": true, "responsive_web_grok_image_annotation_enabled":
@ -6004,7 +6063,7 @@ paths:
true, "view_counts_everywhere_api_enabled": true, "longform_notetweets_consumption_enabled":
true, "responsive_web_twitter_article_tweet_consumption_enabled": true,
"tweet_awards_web_tipping_enabled": false, "responsive_web_grok_analysis_button_from_backend":
true, "creator_subscriptions_quote_tweet_preview_enabled": false, "freedom_of_speech_not_reach_fetch_enabled":
false, "creator_subscriptions_quote_tweet_preview_enabled": false, "freedom_of_speech_not_reach_fetch_enabled":
true, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled":
true, "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled":
true, "longform_notetweets_inline_media_enabled": true, "responsive_web_grok_image_annotation_enabled":
@ -6085,7 +6144,7 @@ paths:
true, "view_counts_everywhere_api_enabled": true, "longform_notetweets_consumption_enabled":
true, "responsive_web_twitter_article_tweet_consumption_enabled": true,
"tweet_awards_web_tipping_enabled": false, "responsive_web_grok_analysis_button_from_backend":
true, "creator_subscriptions_quote_tweet_preview_enabled": false, "freedom_of_speech_not_reach_fetch_enabled":
false, "creator_subscriptions_quote_tweet_preview_enabled": false, "freedom_of_speech_not_reach_fetch_enabled":
true, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled":
true, "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled":
true, "longform_notetweets_inline_media_enabled": true, "responsive_web_grok_image_annotation_enabled":
@ -6102,7 +6161,7 @@ paths:
true, "view_counts_everywhere_api_enabled": true, "longform_notetweets_consumption_enabled":
true, "responsive_web_twitter_article_tweet_consumption_enabled": true,
"tweet_awards_web_tipping_enabled": false, "responsive_web_grok_analysis_button_from_backend":
true, "creator_subscriptions_quote_tweet_preview_enabled": false, "freedom_of_speech_not_reach_fetch_enabled":
false, "creator_subscriptions_quote_tweet_preview_enabled": false, "freedom_of_speech_not_reach_fetch_enabled":
true, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled":
true, "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled":
true, "longform_notetweets_inline_media_enabled": true, "responsive_web_grok_image_annotation_enabled":
@ -6151,105 +6210,6 @@ paths:
type: string
tags:
- tweet
/graphql/{pathQueryId}/TweetResultByRestId:
get:
description: get TweetResultByRestId
operationId: getTweetResultByRestId
parameters:
- in: path
name: pathQueryId
required: true
schema:
default: 7xflPyRiUxGVbJd4uWmbfg
example: 7xflPyRiUxGVbJd4uWmbfg
type: string
- in: query
name: variables
required: true
schema:
default: '{"tweetId": "1691730070669517096", "withCommunity": false, "includePromotedContent":
false, "withVoice": false}'
example: '{"tweetId": "1691730070669517096", "withCommunity": false, "includePromotedContent":
false, "withVoice": false}'
type: string
- in: query
name: features
required: true
schema:
default: '{"creator_subscriptions_tweet_preview_api_enabled": true, "communities_web_enable_tweet_community_results_fetch":
true, "c9s_tweet_anatomy_moderator_badge_enabled": true, "articles_preview_enabled":
true, "tweetypie_unmention_optimization_enabled": true, "responsive_web_edit_tweet_api_enabled":
true, "graphql_is_translatable_rweb_tweet_is_translatable_enabled": true,
"view_counts_everywhere_api_enabled": true, "longform_notetweets_consumption_enabled":
true, "responsive_web_twitter_article_tweet_consumption_enabled": true,
"tweet_awards_web_tipping_enabled": false, "creator_subscriptions_quote_tweet_preview_enabled":
false, "freedom_of_speech_not_reach_fetch_enabled": true, "standardized_nudges_misinfo":
true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled":
true, "tweet_with_visibility_results_prefer_gql_media_interstitial_enabled":
true, "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled":
true, "longform_notetweets_inline_media_enabled": true, "rweb_tipjar_consumption_enabled":
true, "responsive_web_graphql_exclude_directive_enabled": true, "verified_phone_label_enabled":
false, "responsive_web_graphql_skip_user_profile_image_extensions_enabled":
false, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_enhance_cards_enabled":
false}'
example: '{"creator_subscriptions_tweet_preview_api_enabled": true, "communities_web_enable_tweet_community_results_fetch":
true, "c9s_tweet_anatomy_moderator_badge_enabled": true, "articles_preview_enabled":
true, "tweetypie_unmention_optimization_enabled": true, "responsive_web_edit_tweet_api_enabled":
true, "graphql_is_translatable_rweb_tweet_is_translatable_enabled": true,
"view_counts_everywhere_api_enabled": true, "longform_notetweets_consumption_enabled":
true, "responsive_web_twitter_article_tweet_consumption_enabled": true,
"tweet_awards_web_tipping_enabled": false, "creator_subscriptions_quote_tweet_preview_enabled":
false, "freedom_of_speech_not_reach_fetch_enabled": true, "standardized_nudges_misinfo":
true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled":
true, "tweet_with_visibility_results_prefer_gql_media_interstitial_enabled":
true, "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled":
true, "longform_notetweets_inline_media_enabled": true, "rweb_tipjar_consumption_enabled":
true, "responsive_web_graphql_exclude_directive_enabled": true, "verified_phone_label_enabled":
false, "responsive_web_graphql_skip_user_profile_image_extensions_enabled":
false, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_enhance_cards_enabled":
false}'
type: string
- in: query
name: fieldToggles
required: true
schema:
default: '{"withArticleRichContentState": true, "withArticlePlainText":
false}'
example: '{"withArticleRichContentState": true, "withArticlePlainText":
false}'
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/TweetResultByRestIdResponse'
description: Successful operation
headers:
x-connection-hash:
schema:
type: string
x-rate-limit-limit:
schema:
type: integer
x-rate-limit-remaining:
schema:
type: integer
x-rate-limit-reset:
schema:
type: integer
x-response-time:
schema:
type: integer
x-tfe-preserve-body:
schema:
type: boolean
x-transaction-id:
schema:
type: string
x-twitter-response-tags:
schema:
type: string
/graphql/{pathQueryId}/UnfavoriteTweet:
post:
description: unfavorite Tweet
@ -6613,7 +6573,7 @@ paths:
true, "view_counts_everywhere_api_enabled": true, "longform_notetweets_consumption_enabled":
true, "responsive_web_twitter_article_tweet_consumption_enabled": true,
"tweet_awards_web_tipping_enabled": false, "responsive_web_grok_analysis_button_from_backend":
true, "creator_subscriptions_quote_tweet_preview_enabled": false, "freedom_of_speech_not_reach_fetch_enabled":
false, "creator_subscriptions_quote_tweet_preview_enabled": false, "freedom_of_speech_not_reach_fetch_enabled":
true, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled":
true, "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled":
true, "longform_notetweets_inline_media_enabled": true, "responsive_web_grok_image_annotation_enabled":
@ -6630,7 +6590,7 @@ paths:
true, "view_counts_everywhere_api_enabled": true, "longform_notetweets_consumption_enabled":
true, "responsive_web_twitter_article_tweet_consumption_enabled": true,
"tweet_awards_web_tipping_enabled": false, "responsive_web_grok_analysis_button_from_backend":
true, "creator_subscriptions_quote_tweet_preview_enabled": false, "freedom_of_speech_not_reach_fetch_enabled":
false, "creator_subscriptions_quote_tweet_preview_enabled": false, "freedom_of_speech_not_reach_fetch_enabled":
true, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled":
true, "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled":
true, "longform_notetweets_inline_media_enabled": true, "responsive_web_grok_image_annotation_enabled":
@ -6716,7 +6676,7 @@ paths:
true, "view_counts_everywhere_api_enabled": true, "longform_notetweets_consumption_enabled":
true, "responsive_web_twitter_article_tweet_consumption_enabled": true,
"tweet_awards_web_tipping_enabled": false, "responsive_web_grok_analysis_button_from_backend":
true, "creator_subscriptions_quote_tweet_preview_enabled": false, "freedom_of_speech_not_reach_fetch_enabled":
false, "creator_subscriptions_quote_tweet_preview_enabled": false, "freedom_of_speech_not_reach_fetch_enabled":
true, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled":
true, "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled":
true, "longform_notetweets_inline_media_enabled": true, "responsive_web_grok_image_annotation_enabled":
@ -6733,7 +6693,7 @@ paths:
true, "view_counts_everywhere_api_enabled": true, "longform_notetweets_consumption_enabled":
true, "responsive_web_twitter_article_tweet_consumption_enabled": true,
"tweet_awards_web_tipping_enabled": false, "responsive_web_grok_analysis_button_from_backend":
true, "creator_subscriptions_quote_tweet_preview_enabled": false, "freedom_of_speech_not_reach_fetch_enabled":
false, "creator_subscriptions_quote_tweet_preview_enabled": false, "freedom_of_speech_not_reach_fetch_enabled":
true, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled":
true, "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled":
true, "longform_notetweets_inline_media_enabled": true, "responsive_web_grok_image_annotation_enabled":
@ -6789,8 +6749,8 @@ paths:
name: pathQueryId
required: true
schema:
default: bZ1YnUB32SSAfKXRwDM3jw
example: bZ1YnUB32SSAfKXRwDM3jw
default: pZXwh96YGRqmBbbxu7Vk2Q
example: pZXwh96YGRqmBbbxu7Vk2Q
type: string
- in: query
name: variables
@ -6805,40 +6765,40 @@ paths:
name: features
required: true
schema:
default: '{"profile_label_improvements_pcf_label_in_post_enabled": false,
default: '{"profile_label_improvements_pcf_label_in_post_enabled": true,
"rweb_tipjar_consumption_enabled": true, "responsive_web_graphql_exclude_directive_enabled":
true, "verified_phone_label_enabled": false, "creator_subscriptions_tweet_preview_api_enabled":
true, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled":
false, "premium_content_api_read_enabled": false, "communities_web_enable_tweet_community_results_fetch":
true, "c9s_tweet_anatomy_moderator_badge_enabled": true, "responsive_web_grok_analyze_button_fetch_trends_enabled":
false, "responsive_web_grok_analyze_post_followups_enabled": true, "responsive_web_grok_share_attachment_enabled":
true, "articles_preview_enabled": true, "responsive_web_edit_tweet_api_enabled":
true, "graphql_is_translatable_rweb_tweet_is_translatable_enabled": true,
"view_counts_everywhere_api_enabled": true, "longform_notetweets_consumption_enabled":
false, "responsive_web_grok_analyze_post_followups_enabled": true, "responsive_web_jetfuel_frame":
false, "responsive_web_grok_share_attachment_enabled": true, "articles_preview_enabled":
true, "responsive_web_edit_tweet_api_enabled": true, "graphql_is_translatable_rweb_tweet_is_translatable_enabled":
true, "view_counts_everywhere_api_enabled": true, "longform_notetweets_consumption_enabled":
true, "responsive_web_twitter_article_tweet_consumption_enabled": true,
"tweet_awards_web_tipping_enabled": false, "creator_subscriptions_quote_tweet_preview_enabled":
false, "freedom_of_speech_not_reach_fetch_enabled": true, "standardized_nudges_misinfo":
true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled":
"tweet_awards_web_tipping_enabled": false, "responsive_web_grok_analysis_button_from_backend":
false, "creator_subscriptions_quote_tweet_preview_enabled": false, "freedom_of_speech_not_reach_fetch_enabled":
true, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled":
true, "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled":
true, "longform_notetweets_inline_media_enabled": true, "responsive_web_enhance_cards_enabled":
false}'
example: '{"profile_label_improvements_pcf_label_in_post_enabled": false,
true, "longform_notetweets_inline_media_enabled": true, "responsive_web_grok_image_annotation_enabled":
true, "responsive_web_enhance_cards_enabled": false}'
example: '{"profile_label_improvements_pcf_label_in_post_enabled": true,
"rweb_tipjar_consumption_enabled": true, "responsive_web_graphql_exclude_directive_enabled":
true, "verified_phone_label_enabled": false, "creator_subscriptions_tweet_preview_api_enabled":
true, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled":
false, "premium_content_api_read_enabled": false, "communities_web_enable_tweet_community_results_fetch":
true, "c9s_tweet_anatomy_moderator_badge_enabled": true, "responsive_web_grok_analyze_button_fetch_trends_enabled":
false, "responsive_web_grok_analyze_post_followups_enabled": true, "responsive_web_grok_share_attachment_enabled":
true, "articles_preview_enabled": true, "responsive_web_edit_tweet_api_enabled":
true, "graphql_is_translatable_rweb_tweet_is_translatable_enabled": true,
"view_counts_everywhere_api_enabled": true, "longform_notetweets_consumption_enabled":
false, "responsive_web_grok_analyze_post_followups_enabled": true, "responsive_web_jetfuel_frame":
false, "responsive_web_grok_share_attachment_enabled": true, "articles_preview_enabled":
true, "responsive_web_edit_tweet_api_enabled": true, "graphql_is_translatable_rweb_tweet_is_translatable_enabled":
true, "view_counts_everywhere_api_enabled": true, "longform_notetweets_consumption_enabled":
true, "responsive_web_twitter_article_tweet_consumption_enabled": true,
"tweet_awards_web_tipping_enabled": false, "creator_subscriptions_quote_tweet_preview_enabled":
false, "freedom_of_speech_not_reach_fetch_enabled": true, "standardized_nudges_misinfo":
true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled":
"tweet_awards_web_tipping_enabled": false, "responsive_web_grok_analysis_button_from_backend":
false, "creator_subscriptions_quote_tweet_preview_enabled": false, "freedom_of_speech_not_reach_fetch_enabled":
true, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled":
true, "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled":
true, "longform_notetweets_inline_media_enabled": true, "responsive_web_enhance_cards_enabled":
false}'
true, "longform_notetweets_inline_media_enabled": true, "responsive_web_grok_image_annotation_enabled":
true, "responsive_web_enhance_cards_enabled": false}'
type: string
- in: query
name: fieldToggles

View file

@ -991,6 +991,7 @@ components:
TimelinePrompt: '#/components/schemas/TimelinePrompt'
TimelineTimelineCursor: '#/components/schemas/TimelineTimelineCursor'
TimelineTombstone: '#/components/schemas/TimelineTombstone'
TimelineTrend: '#/components/schemas/TimelineTrend'
TimelineTweet: '#/components/schemas/TimelineTweet'
TimelineUser: '#/components/schemas/TimelineUser'
propertyName: __typename
@ -1002,6 +1003,7 @@ components:
- $ref: '#/components/schemas/TimelineMessagePrompt'
- $ref: '#/components/schemas/TimelineCommunity'
- $ref: '#/components/schemas/TimelineTombstone'
- $ref: '#/components/schemas/TimelineTrend'
ItemResult:
properties:
__typename:
@ -1332,6 +1334,8 @@ components:
- itemContent
ModuleItem:
properties:
dispensable:
type: boolean
entryId:
pattern: ^(([a-z]+|[0-9]+|[0-9a-f]+)(-|$))+
type: string
@ -1680,6 +1684,16 @@ components:
- startIndex
- endIndex
type: object
ThumbnailImage:
properties:
original_img_height:
type: integer
original_img_url:
format: uri
type: string
original_img_width:
type: integer
type: object
Timeline:
properties:
instructions:
@ -2016,6 +2030,36 @@ components:
type:
$ref: '#/components/schemas/SocialContextUnionType'
type: object
TimelineTrend:
properties:
__typename:
$ref: '#/components/schemas/TypeName'
images:
items:
$ref: '#/components/schemas/TrendImage'
type: array
is_ai_trend:
type: boolean
itemType:
$ref: '#/components/schemas/ContentItemType'
name:
type: string
social_context:
$ref: '#/components/schemas/SocialContextUnion'
thumbnail_image:
$ref: '#/components/schemas/ThumbnailImage'
trend_metadata:
$ref: '#/components/schemas/TrendMetadata'
trend_url:
$ref: '#/components/schemas/SocialContextLandingUrl'
required:
- __typename
- itemType
- name
- trend_url
- trend_metadata
- thumbnail_image
- images
TimelineTweet:
properties:
__typename:
@ -2151,6 +2195,17 @@ components:
required:
- trace_id
type: object
TrendImage:
properties:
url:
format: uri
type: string
type: object
TrendMetadata:
properties:
url:
$ref: '#/components/schemas/SocialContextLandingUrl'
type: object
TrendResults:
properties:
rest_id:
@ -4277,8 +4332,8 @@ paths:
name: pathQueryId
required: true
schema:
default: L7vvM2UluPgWOW4GDvWyvw
example: L7vvM2UluPgWOW4GDvWyvw
default: 1vFR5f4iSCQZLzjdSsNYwA
example: 1vFR5f4iSCQZLzjdSsNYwA
type: string
- content:
application/json:
@ -4347,6 +4402,14 @@ paths:
default: true
example: true
type: boolean
premium_content_api_read_enabled:
default: false
example: false
type: boolean
profile_label_improvements_pcf_label_in_post_enabled:
default: true
example: true
type: boolean
responsive_web_edit_tweet_api_enabled:
default: true
example: true
@ -4367,6 +4430,30 @@ paths:
default: true
example: true
type: boolean
responsive_web_grok_analysis_button_from_backend:
default: false
example: false
type: boolean
responsive_web_grok_analyze_button_fetch_trends_enabled:
default: false
example: false
type: boolean
responsive_web_grok_analyze_post_followups_enabled:
default: true
example: true
type: boolean
responsive_web_grok_image_annotation_enabled:
default: true
example: true
type: boolean
responsive_web_grok_share_attachment_enabled:
default: true
example: true
type: boolean
responsive_web_jetfuel_frame:
default: false
example: false
type: boolean
responsive_web_twitter_article_tweet_consumption_enabled:
default: true
example: true
@ -4401,14 +4488,20 @@ paths:
type: boolean
required:
- graphql_timeline_v2_bookmark_timeline
- profile_label_improvements_pcf_label_in_post_enabled
- rweb_tipjar_consumption_enabled
- responsive_web_graphql_exclude_directive_enabled
- verified_phone_label_enabled
- creator_subscriptions_tweet_preview_api_enabled
- responsive_web_graphql_timeline_navigation_enabled
- responsive_web_graphql_skip_user_profile_image_extensions_enabled
- premium_content_api_read_enabled
- communities_web_enable_tweet_community_results_fetch
- c9s_tweet_anatomy_moderator_badge_enabled
- responsive_web_grok_analyze_button_fetch_trends_enabled
- responsive_web_grok_analyze_post_followups_enabled
- responsive_web_jetfuel_frame
- responsive_web_grok_share_attachment_enabled
- articles_preview_enabled
- responsive_web_edit_tweet_api_enabled
- graphql_is_translatable_rweb_tweet_is_translatable_enabled
@ -4416,6 +4509,7 @@ paths:
- longform_notetweets_consumption_enabled
- responsive_web_twitter_article_tweet_consumption_enabled
- tweet_awards_web_tipping_enabled
- responsive_web_grok_analysis_button_from_backend
- creator_subscriptions_quote_tweet_preview_enabled
- freedom_of_speech_not_reach_fetch_enabled
- standardized_nudges_misinfo
@ -4423,6 +4517,7 @@ paths:
- rweb_video_timestamps_enabled
- longform_notetweets_rich_text_read_enabled
- longform_notetweets_inline_media_enabled
- responsive_web_grok_image_annotation_enabled
- responsive_web_enhance_cards_enabled
type: object
in: query
@ -6200,8 +6295,8 @@ paths:
example: true
type: boolean
responsive_web_grok_analysis_button_from_backend:
default: true
example: true
default: false
example: false
type: boolean
responsive_web_grok_analyze_button_fetch_trends_enabled:
default: false
@ -6451,8 +6546,8 @@ paths:
example: true
type: boolean
responsive_web_grok_analysis_button_from_backend:
default: true
example: true
default: false
example: false
type: boolean
responsive_web_grok_analyze_button_fetch_trends_enabled:
default: false
@ -6585,8 +6680,8 @@ paths:
name: pathQueryId
required: true
schema:
default: 8RCkxWhvFsJ8XZeNf_z5IQ
example: 8RCkxWhvFsJ8XZeNf_z5IQ
default: Jb0jbeTT4W5Bcuo7IpFa4Q
example: Jb0jbeTT4W5Bcuo7IpFa4Q
type: string
- content:
application/json:
@ -6681,8 +6776,8 @@ paths:
example: false
type: boolean
profile_label_improvements_pcf_label_in_post_enabled:
default: false
example: false
default: true
example: true
type: boolean
responsive_web_edit_tweet_api_enabled:
default: true
@ -6704,6 +6799,10 @@ paths:
default: true
example: true
type: boolean
responsive_web_grok_analysis_button_from_backend:
default: false
example: false
type: boolean
responsive_web_grok_analyze_button_fetch_trends_enabled:
default: false
example: false
@ -6712,10 +6811,18 @@ paths:
default: true
example: true
type: boolean
responsive_web_grok_image_annotation_enabled:
default: true
example: true
type: boolean
responsive_web_grok_share_attachment_enabled:
default: true
example: true
type: boolean
responsive_web_jetfuel_frame:
default: false
example: false
type: boolean
responsive_web_twitter_article_tweet_consumption_enabled:
default: true
example: true
@ -6761,6 +6868,7 @@ paths:
- c9s_tweet_anatomy_moderator_badge_enabled
- responsive_web_grok_analyze_button_fetch_trends_enabled
- responsive_web_grok_analyze_post_followups_enabled
- responsive_web_jetfuel_frame
- responsive_web_grok_share_attachment_enabled
- articles_preview_enabled
- responsive_web_edit_tweet_api_enabled
@ -6769,6 +6877,7 @@ paths:
- longform_notetweets_consumption_enabled
- responsive_web_twitter_article_tweet_consumption_enabled
- tweet_awards_web_tipping_enabled
- responsive_web_grok_analysis_button_from_backend
- creator_subscriptions_quote_tweet_preview_enabled
- freedom_of_speech_not_reach_fetch_enabled
- standardized_nudges_misinfo
@ -6776,6 +6885,7 @@ paths:
- rweb_video_timestamps_enabled
- longform_notetweets_rich_text_read_enabled
- longform_notetweets_inline_media_enabled
- responsive_web_grok_image_annotation_enabled
- responsive_web_enhance_cards_enabled
type: object
in: query
@ -6933,8 +7043,8 @@ paths:
example: true
type: boolean
responsive_web_grok_analysis_button_from_backend:
default: true
example: true
default: false
example: false
type: boolean
responsive_web_grok_analyze_button_fetch_trends_enabled:
default: false
@ -7233,8 +7343,8 @@ paths:
example: true
type: boolean
responsive_web_grok_analysis_button_from_backend:
default: true
example: true
default: false
example: false
type: boolean
responsive_web_grok_analyze_button_fetch_trends_enabled:
default: false
@ -7472,8 +7582,8 @@ paths:
example: true
type: boolean
responsive_web_grok_analysis_button_from_backend:
default: true
example: true
default: false
example: false
type: boolean
responsive_web_grok_analyze_button_fetch_trends_enabled:
default: false
@ -7736,8 +7846,8 @@ paths:
example: true
type: boolean
responsive_web_grok_analysis_button_from_backend:
default: true
example: true
default: false
example: false
type: boolean
responsive_web_grok_analyze_button_fetch_trends_enabled:
default: false
@ -7890,232 +8000,6 @@ paths:
type: string
tags:
- tweet
/graphql/{pathQueryId}/TweetResultByRestId:
get:
description: get TweetResultByRestId
operationId: getTweetResultByRestId
parameters:
- in: path
name: pathQueryId
required: true
schema:
default: 7xflPyRiUxGVbJd4uWmbfg
example: 7xflPyRiUxGVbJd4uWmbfg
type: string
- content:
application/json:
schema:
properties:
includePromotedContent:
default: false
example: false
type: boolean
tweetId:
default: '1691730070669517096'
example: '1691730070669517096'
type: string
withCommunity:
default: false
example: false
type: boolean
withVoice:
default: false
example: false
type: boolean
required:
- tweetId
- withCommunity
- includePromotedContent
- withVoice
type: object
in: query
name: variables
required: true
- content:
application/json:
schema:
properties:
articles_preview_enabled:
default: true
example: true
type: boolean
c9s_tweet_anatomy_moderator_badge_enabled:
default: true
example: true
type: boolean
communities_web_enable_tweet_community_results_fetch:
default: true
example: true
type: boolean
creator_subscriptions_quote_tweet_preview_enabled:
default: false
example: false
type: boolean
creator_subscriptions_tweet_preview_api_enabled:
default: true
example: true
type: boolean
freedom_of_speech_not_reach_fetch_enabled:
default: true
example: true
type: boolean
graphql_is_translatable_rweb_tweet_is_translatable_enabled:
default: true
example: true
type: boolean
longform_notetweets_consumption_enabled:
default: true
example: true
type: boolean
longform_notetweets_inline_media_enabled:
default: true
example: true
type: boolean
longform_notetweets_rich_text_read_enabled:
default: true
example: true
type: boolean
responsive_web_edit_tweet_api_enabled:
default: true
example: true
type: boolean
responsive_web_enhance_cards_enabled:
default: false
example: false
type: boolean
responsive_web_graphql_exclude_directive_enabled:
default: true
example: true
type: boolean
responsive_web_graphql_skip_user_profile_image_extensions_enabled:
default: false
example: false
type: boolean
responsive_web_graphql_timeline_navigation_enabled:
default: true
example: true
type: boolean
responsive_web_twitter_article_tweet_consumption_enabled:
default: true
example: true
type: boolean
rweb_tipjar_consumption_enabled:
default: true
example: true
type: boolean
rweb_video_timestamps_enabled:
default: true
example: true
type: boolean
standardized_nudges_misinfo:
default: true
example: true
type: boolean
tweet_awards_web_tipping_enabled:
default: false
example: false
type: boolean
tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled:
default: true
example: true
type: boolean
tweet_with_visibility_results_prefer_gql_media_interstitial_enabled:
default: true
example: true
type: boolean
tweetypie_unmention_optimization_enabled:
default: true
example: true
type: boolean
verified_phone_label_enabled:
default: false
example: false
type: boolean
view_counts_everywhere_api_enabled:
default: true
example: true
type: boolean
required:
- creator_subscriptions_tweet_preview_api_enabled
- communities_web_enable_tweet_community_results_fetch
- c9s_tweet_anatomy_moderator_badge_enabled
- articles_preview_enabled
- tweetypie_unmention_optimization_enabled
- responsive_web_edit_tweet_api_enabled
- graphql_is_translatable_rweb_tweet_is_translatable_enabled
- view_counts_everywhere_api_enabled
- longform_notetweets_consumption_enabled
- responsive_web_twitter_article_tweet_consumption_enabled
- tweet_awards_web_tipping_enabled
- creator_subscriptions_quote_tweet_preview_enabled
- freedom_of_speech_not_reach_fetch_enabled
- standardized_nudges_misinfo
- tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled
- tweet_with_visibility_results_prefer_gql_media_interstitial_enabled
- rweb_video_timestamps_enabled
- longform_notetweets_rich_text_read_enabled
- longform_notetweets_inline_media_enabled
- rweb_tipjar_consumption_enabled
- responsive_web_graphql_exclude_directive_enabled
- verified_phone_label_enabled
- responsive_web_graphql_skip_user_profile_image_extensions_enabled
- responsive_web_graphql_timeline_navigation_enabled
- responsive_web_enhance_cards_enabled
type: object
in: query
name: features
required: true
- content:
application/json:
schema:
properties:
withArticlePlainText:
default: false
example: false
type: boolean
withArticleRichContentState:
default: true
example: true
type: boolean
required:
- withArticleRichContentState
- withArticlePlainText
type: object
in: query
name: fieldToggles
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/TweetResultByRestIdResponse'
description: Successful operation
headers:
x-connection-hash:
schema:
type: string
x-rate-limit-limit:
schema:
type: integer
x-rate-limit-remaining:
schema:
type: integer
x-rate-limit-reset:
schema:
type: integer
x-response-time:
schema:
type: integer
x-tfe-preserve-body:
schema:
type: boolean
x-transaction-id:
schema:
type: string
x-twitter-response-tags:
schema:
type: string
/graphql/{pathQueryId}/UnfavoriteTweet:
post:
description: unfavorite Tweet
@ -8824,8 +8708,8 @@ paths:
example: true
type: boolean
responsive_web_grok_analysis_button_from_backend:
default: true
example: true
default: false
example: false
type: boolean
responsive_web_grok_analyze_button_fetch_trends_enabled:
default: false
@ -9087,8 +8971,8 @@ paths:
example: true
type: boolean
responsive_web_grok_analysis_button_from_backend:
default: true
example: true
default: false
example: false
type: boolean
responsive_web_grok_analyze_button_fetch_trends_enabled:
default: false
@ -9235,8 +9119,8 @@ paths:
name: pathQueryId
required: true
schema:
default: bZ1YnUB32SSAfKXRwDM3jw
example: bZ1YnUB32SSAfKXRwDM3jw
default: pZXwh96YGRqmBbbxu7Vk2Q
example: pZXwh96YGRqmBbbxu7Vk2Q
type: string
- content:
application/json:
@ -9326,8 +9210,8 @@ paths:
example: false
type: boolean
profile_label_improvements_pcf_label_in_post_enabled:
default: false
example: false
default: true
example: true
type: boolean
responsive_web_edit_tweet_api_enabled:
default: true
@ -9349,6 +9233,10 @@ paths:
default: true
example: true
type: boolean
responsive_web_grok_analysis_button_from_backend:
default: false
example: false
type: boolean
responsive_web_grok_analyze_button_fetch_trends_enabled:
default: false
example: false
@ -9357,10 +9245,18 @@ paths:
default: true
example: true
type: boolean
responsive_web_grok_image_annotation_enabled:
default: true
example: true
type: boolean
responsive_web_grok_share_attachment_enabled:
default: true
example: true
type: boolean
responsive_web_jetfuel_frame:
default: false
example: false
type: boolean
responsive_web_twitter_article_tweet_consumption_enabled:
default: true
example: true
@ -9406,6 +9302,7 @@ paths:
- c9s_tweet_anatomy_moderator_badge_enabled
- responsive_web_grok_analyze_button_fetch_trends_enabled
- responsive_web_grok_analyze_post_followups_enabled
- responsive_web_jetfuel_frame
- responsive_web_grok_share_attachment_enabled
- articles_preview_enabled
- responsive_web_edit_tweet_api_enabled
@ -9414,6 +9311,7 @@ paths:
- longform_notetweets_consumption_enabled
- responsive_web_twitter_article_tweet_consumption_enabled
- tweet_awards_web_tipping_enabled
- responsive_web_grok_analysis_button_from_backend
- creator_subscriptions_quote_tweet_preview_enabled
- freedom_of_speech_not_reach_fetch_enabled
- standardized_nudges_misinfo
@ -9421,6 +9319,7 @@ paths:
- rweb_video_timestamps_enabled
- longform_notetweets_rich_text_read_enabled
- longform_notetweets_inline_media_enabled
- responsive_web_grok_image_annotation_enabled
- responsive_web_enhance_cards_enabled
type: object
in: query

Binary file not shown.

View file

@ -31,7 +31,7 @@
"longform_notetweets_consumption_enabled": true,
"responsive_web_twitter_article_tweet_consumption_enabled": true,
"tweet_awards_web_tipping_enabled": false,
"responsive_web_grok_analysis_button_from_backend": true,
"responsive_web_grok_analysis_button_from_backend": false,
"creator_subscriptions_quote_tweet_preview_enabled": false,
"freedom_of_speech_not_reach_fetch_enabled": true,
"standardized_nudges_misinfo": true,
@ -74,7 +74,7 @@
"longform_notetweets_consumption_enabled": true,
"responsive_web_twitter_article_tweet_consumption_enabled": true,
"tweet_awards_web_tipping_enabled": false,
"responsive_web_grok_analysis_button_from_backend": true,
"responsive_web_grok_analysis_button_from_backend": false,
"creator_subscriptions_quote_tweet_preview_enabled": false,
"freedom_of_speech_not_reach_fetch_enabled": true,
"standardized_nudges_misinfo": true,
@ -114,7 +114,7 @@
"longform_notetweets_consumption_enabled": true,
"responsive_web_twitter_article_tweet_consumption_enabled": true,
"tweet_awards_web_tipping_enabled": false,
"responsive_web_grok_analysis_button_from_backend": true,
"responsive_web_grok_analysis_button_from_backend": false,
"creator_subscriptions_quote_tweet_preview_enabled": false,
"freedom_of_speech_not_reach_fetch_enabled": true,
"standardized_nudges_misinfo": true,
@ -221,7 +221,7 @@
"longform_notetweets_consumption_enabled": true,
"responsive_web_twitter_article_tweet_consumption_enabled": true,
"tweet_awards_web_tipping_enabled": false,
"responsive_web_grok_analysis_button_from_backend": true,
"responsive_web_grok_analysis_button_from_backend": false,
"creator_subscriptions_quote_tweet_preview_enabled": false,
"freedom_of_speech_not_reach_fetch_enabled": true,
"standardized_nudges_misinfo": true,
@ -237,7 +237,7 @@
}
},
"UserTweetsAndReplies": {
"queryId": "bZ1YnUB32SSAfKXRwDM3jw",
"queryId": "pZXwh96YGRqmBbbxu7Vk2Q",
"variables": {
"userId": "44196397",
"count": 40,
@ -247,7 +247,7 @@
"withV2Timeline": true
},
"features": {
"profile_label_improvements_pcf_label_in_post_enabled": false,
"profile_label_improvements_pcf_label_in_post_enabled": true,
"rweb_tipjar_consumption_enabled": true,
"responsive_web_graphql_exclude_directive_enabled": true,
"verified_phone_label_enabled": false,
@ -259,6 +259,7 @@
"c9s_tweet_anatomy_moderator_badge_enabled": true,
"responsive_web_grok_analyze_button_fetch_trends_enabled": false,
"responsive_web_grok_analyze_post_followups_enabled": true,
"responsive_web_jetfuel_frame": false,
"responsive_web_grok_share_attachment_enabled": true,
"articles_preview_enabled": true,
"responsive_web_edit_tweet_api_enabled": true,
@ -267,6 +268,7 @@
"longform_notetweets_consumption_enabled": true,
"responsive_web_twitter_article_tweet_consumption_enabled": true,
"tweet_awards_web_tipping_enabled": false,
"responsive_web_grok_analysis_button_from_backend": false,
"creator_subscriptions_quote_tweet_preview_enabled": false,
"freedom_of_speech_not_reach_fetch_enabled": true,
"standardized_nudges_misinfo": true,
@ -274,6 +276,7 @@
"rweb_video_timestamps_enabled": true,
"longform_notetweets_rich_text_read_enabled": true,
"longform_notetweets_inline_media_enabled": true,
"responsive_web_grok_image_annotation_enabled": true,
"responsive_web_enhance_cards_enabled": false
},
"fieldToggles": {
@ -355,7 +358,7 @@
"longform_notetweets_consumption_enabled": true,
"responsive_web_twitter_article_tweet_consumption_enabled": true,
"tweet_awards_web_tipping_enabled": false,
"responsive_web_grok_analysis_button_from_backend": true,
"responsive_web_grok_analysis_button_from_backend": false,
"creator_subscriptions_quote_tweet_preview_enabled": false,
"freedom_of_speech_not_reach_fetch_enabled": true,
"standardized_nudges_misinfo": true,
@ -371,7 +374,7 @@
}
},
"Likes": {
"queryId": "8RCkxWhvFsJ8XZeNf_z5IQ",
"queryId": "Jb0jbeTT4W5Bcuo7IpFa4Q",
"variables": {
"userId": "44196397",
"count": 20,
@ -382,7 +385,7 @@
"withV2Timeline": true
},
"features": {
"profile_label_improvements_pcf_label_in_post_enabled": false,
"profile_label_improvements_pcf_label_in_post_enabled": true,
"rweb_tipjar_consumption_enabled": true,
"responsive_web_graphql_exclude_directive_enabled": true,
"verified_phone_label_enabled": false,
@ -394,6 +397,7 @@
"c9s_tweet_anatomy_moderator_badge_enabled": true,
"responsive_web_grok_analyze_button_fetch_trends_enabled": false,
"responsive_web_grok_analyze_post_followups_enabled": true,
"responsive_web_jetfuel_frame": false,
"responsive_web_grok_share_attachment_enabled": true,
"articles_preview_enabled": true,
"responsive_web_edit_tweet_api_enabled": true,
@ -402,6 +406,7 @@
"longform_notetweets_consumption_enabled": true,
"responsive_web_twitter_article_tweet_consumption_enabled": true,
"tweet_awards_web_tipping_enabled": false,
"responsive_web_grok_analysis_button_from_backend": false,
"creator_subscriptions_quote_tweet_preview_enabled": false,
"freedom_of_speech_not_reach_fetch_enabled": true,
"standardized_nudges_misinfo": true,
@ -409,6 +414,7 @@
"rweb_video_timestamps_enabled": true,
"longform_notetweets_rich_text_read_enabled": true,
"longform_notetweets_inline_media_enabled": true,
"responsive_web_grok_image_annotation_enabled": true,
"responsive_web_enhance_cards_enabled": false
},
"fieldToggles": {
@ -416,21 +422,27 @@
}
},
"Bookmarks": {
"queryId": "L7vvM2UluPgWOW4GDvWyvw",
"queryId": "1vFR5f4iSCQZLzjdSsNYwA",
"variables": {
"count": 20,
"includePromotedContent": true
},
"features": {
"graphql_timeline_v2_bookmark_timeline": true,
"profile_label_improvements_pcf_label_in_post_enabled": true,
"rweb_tipjar_consumption_enabled": true,
"responsive_web_graphql_exclude_directive_enabled": true,
"verified_phone_label_enabled": false,
"creator_subscriptions_tweet_preview_api_enabled": true,
"responsive_web_graphql_timeline_navigation_enabled": true,
"responsive_web_graphql_skip_user_profile_image_extensions_enabled": false,
"premium_content_api_read_enabled": false,
"communities_web_enable_tweet_community_results_fetch": true,
"c9s_tweet_anatomy_moderator_badge_enabled": true,
"responsive_web_grok_analyze_button_fetch_trends_enabled": false,
"responsive_web_grok_analyze_post_followups_enabled": true,
"responsive_web_jetfuel_frame": false,
"responsive_web_grok_share_attachment_enabled": true,
"articles_preview_enabled": true,
"responsive_web_edit_tweet_api_enabled": true,
"graphql_is_translatable_rweb_tweet_is_translatable_enabled": true,
@ -438,6 +450,7 @@
"longform_notetweets_consumption_enabled": true,
"responsive_web_twitter_article_tweet_consumption_enabled": true,
"tweet_awards_web_tipping_enabled": false,
"responsive_web_grok_analysis_button_from_backend": false,
"creator_subscriptions_quote_tweet_preview_enabled": false,
"freedom_of_speech_not_reach_fetch_enabled": true,
"standardized_nudges_misinfo": true,
@ -445,6 +458,7 @@
"rweb_video_timestamps_enabled": true,
"longform_notetweets_rich_text_read_enabled": true,
"longform_notetweets_inline_media_enabled": true,
"responsive_web_grok_image_annotation_enabled": true,
"responsive_web_enhance_cards_enabled": false
}
},
@ -483,7 +497,7 @@
"longform_notetweets_consumption_enabled": true,
"responsive_web_twitter_article_tweet_consumption_enabled": true,
"tweet_awards_web_tipping_enabled": false,
"responsive_web_grok_analysis_button_from_backend": true,
"responsive_web_grok_analysis_button_from_backend": false,
"creator_subscriptions_quote_tweet_preview_enabled": false,
"freedom_of_speech_not_reach_fetch_enabled": true,
"standardized_nudges_misinfo": true,
@ -571,7 +585,7 @@
"longform_notetweets_consumption_enabled": true,
"responsive_web_twitter_article_tweet_consumption_enabled": true,
"tweet_awards_web_tipping_enabled": false,
"responsive_web_grok_analysis_button_from_backend": true,
"responsive_web_grok_analysis_button_from_backend": false,
"creator_subscriptions_quote_tweet_preview_enabled": false,
"freedom_of_speech_not_reach_fetch_enabled": true,
"standardized_nudges_misinfo": true,
@ -653,7 +667,7 @@
"longform_notetweets_consumption_enabled": true,
"responsive_web_twitter_article_tweet_consumption_enabled": true,
"tweet_awards_web_tipping_enabled": false,
"responsive_web_grok_analysis_button_from_backend": true,
"responsive_web_grok_analysis_button_from_backend": false,
"creator_subscriptions_quote_tweet_preview_enabled": false,
"freedom_of_speech_not_reach_fetch_enabled": true,
"standardized_nudges_misinfo": true,
@ -1073,7 +1087,7 @@
"longform_notetweets_consumption_enabled": true,
"responsive_web_twitter_article_tweet_consumption_enabled": true,
"tweet_awards_web_tipping_enabled": false,
"responsive_web_grok_analysis_button_from_backend": true,
"responsive_web_grok_analysis_button_from_backend": false,
"creator_subscriptions_quote_tweet_preview_enabled": false,
"freedom_of_speech_not_reach_fetch_enabled": true,
"standardized_nudges_misinfo": true,
@ -1128,16 +1142,22 @@
"queryId": "xfgycRkhqXy90CmTQZ7Kig"
},
"CommunitiesRankedTimeline": {
"queryId": "NVJIUjvGDC3o814fGgkU3g",
"queryId": "EPoSkfcuBVl14JujJXhPHA",
"features": {
"profile_label_improvements_pcf_label_in_post_enabled": true,
"rweb_tipjar_consumption_enabled": true,
"responsive_web_graphql_exclude_directive_enabled": true,
"verified_phone_label_enabled": false,
"creator_subscriptions_tweet_preview_api_enabled": true,
"responsive_web_graphql_timeline_navigation_enabled": true,
"responsive_web_graphql_skip_user_profile_image_extensions_enabled": false,
"premium_content_api_read_enabled": false,
"communities_web_enable_tweet_community_results_fetch": true,
"c9s_tweet_anatomy_moderator_badge_enabled": true,
"responsive_web_grok_analyze_button_fetch_trends_enabled": false,
"responsive_web_grok_analyze_post_followups_enabled": true,
"responsive_web_jetfuel_frame": false,
"responsive_web_grok_share_attachment_enabled": true,
"articles_preview_enabled": true,
"responsive_web_edit_tweet_api_enabled": true,
"graphql_is_translatable_rweb_tweet_is_translatable_enabled": true,
@ -1145,6 +1165,7 @@
"longform_notetweets_consumption_enabled": true,
"responsive_web_twitter_article_tweet_consumption_enabled": true,
"tweet_awards_web_tipping_enabled": false,
"responsive_web_grok_analysis_button_from_backend": false,
"creator_subscriptions_quote_tweet_preview_enabled": false,
"freedom_of_speech_not_reach_fetch_enabled": true,
"standardized_nudges_misinfo": true,
@ -1152,6 +1173,7 @@
"rweb_video_timestamps_enabled": true,
"longform_notetweets_rich_text_read_enabled": true,
"longform_notetweets_inline_media_enabled": true,
"responsive_web_grok_image_annotation_enabled": true,
"responsive_web_enhance_cards_enabled": false
},
"variables": {
@ -1160,16 +1182,22 @@
}
},
"BirdwatchFetchGlobalTimeline": {
"queryId": "9TNlnKM4cSOwNE4txrtnJQ",
"queryId": "J6wd8tw7uKgdjJnkZg5kBg",
"features": {
"profile_label_improvements_pcf_label_in_post_enabled": true,
"rweb_tipjar_consumption_enabled": true,
"responsive_web_graphql_exclude_directive_enabled": true,
"verified_phone_label_enabled": false,
"responsive_web_graphql_timeline_navigation_enabled": true,
"responsive_web_graphql_skip_user_profile_image_extensions_enabled": false,
"creator_subscriptions_tweet_preview_api_enabled": true,
"premium_content_api_read_enabled": false,
"communities_web_enable_tweet_community_results_fetch": true,
"c9s_tweet_anatomy_moderator_badge_enabled": true,
"responsive_web_grok_analyze_button_fetch_trends_enabled": false,
"responsive_web_grok_analyze_post_followups_enabled": true,
"responsive_web_jetfuel_frame": false,
"responsive_web_grok_share_attachment_enabled": true,
"articles_preview_enabled": true,
"responsive_web_edit_tweet_api_enabled": true,
"graphql_is_translatable_rweb_tweet_is_translatable_enabled": true,
@ -1177,6 +1205,7 @@
"longform_notetweets_consumption_enabled": true,
"responsive_web_twitter_article_tweet_consumption_enabled": true,
"tweet_awards_web_tipping_enabled": false,
"responsive_web_grok_analysis_button_from_backend": false,
"creator_subscriptions_quote_tweet_preview_enabled": false,
"freedom_of_speech_not_reach_fetch_enabled": true,
"standardized_nudges_misinfo": true,
@ -1184,6 +1213,7 @@
"rweb_video_timestamps_enabled": true,
"longform_notetweets_rich_text_read_enabled": true,
"longform_notetweets_inline_media_enabled": true,
"responsive_web_grok_image_annotation_enabled": true,
"responsive_web_enhance_cards_enabled": false
}
},
@ -1242,16 +1272,22 @@
"queryId": "_gBQBgClVuMQb8efxWkbbQ"
},
"GenericTimelineById": {
"queryId": "eob7MfQ-OPla82tbCSxZUA",
"queryId": "5u36Lskx1dfACjC_WHmH3Q",
"features": {
"profile_label_improvements_pcf_label_in_post_enabled": true,
"rweb_tipjar_consumption_enabled": true,
"responsive_web_graphql_exclude_directive_enabled": true,
"verified_phone_label_enabled": false,
"creator_subscriptions_tweet_preview_api_enabled": true,
"responsive_web_graphql_timeline_navigation_enabled": true,
"responsive_web_graphql_skip_user_profile_image_extensions_enabled": false,
"premium_content_api_read_enabled": false,
"communities_web_enable_tweet_community_results_fetch": true,
"c9s_tweet_anatomy_moderator_badge_enabled": true,
"responsive_web_grok_analyze_button_fetch_trends_enabled": false,
"responsive_web_grok_analyze_post_followups_enabled": true,
"responsive_web_jetfuel_frame": false,
"responsive_web_grok_share_attachment_enabled": true,
"articles_preview_enabled": true,
"responsive_web_edit_tweet_api_enabled": true,
"graphql_is_translatable_rweb_tweet_is_translatable_enabled": true,
@ -1259,6 +1295,7 @@
"longform_notetweets_consumption_enabled": true,
"responsive_web_twitter_article_tweet_consumption_enabled": true,
"tweet_awards_web_tipping_enabled": false,
"responsive_web_grok_analysis_button_from_backend": false,
"creator_subscriptions_quote_tweet_preview_enabled": false,
"freedom_of_speech_not_reach_fetch_enabled": true,
"standardized_nudges_misinfo": true,
@ -1266,6 +1303,7 @@
"rweb_video_timestamps_enabled": true,
"longform_notetweets_rich_text_read_enabled": true,
"longform_notetweets_inline_media_enabled": true,
"responsive_web_grok_image_annotation_enabled": true,
"responsive_web_enhance_cards_enabled": false
}
},
@ -1312,9 +1350,9 @@
"queryId": "9bDdJ6AL26RLkcUShEcF-A"
},
"ListsManagementPageTimeline": {
"queryId": "BM3FLgok8ytu4s5h56E0Ww",
"queryId": "Ly8-jWQCO-MDBeYZM1Tigg",
"features": {
"profile_label_improvements_pcf_label_in_post_enabled": false,
"profile_label_improvements_pcf_label_in_post_enabled": true,
"rweb_tipjar_consumption_enabled": true,
"responsive_web_graphql_exclude_directive_enabled": true,
"verified_phone_label_enabled": false,
@ -1326,6 +1364,7 @@
"c9s_tweet_anatomy_moderator_badge_enabled": true,
"responsive_web_grok_analyze_button_fetch_trends_enabled": false,
"responsive_web_grok_analyze_post_followups_enabled": true,
"responsive_web_jetfuel_frame": false,
"responsive_web_grok_share_attachment_enabled": true,
"articles_preview_enabled": true,
"responsive_web_edit_tweet_api_enabled": true,
@ -1334,6 +1373,7 @@
"longform_notetweets_consumption_enabled": true,
"responsive_web_twitter_article_tweet_consumption_enabled": true,
"tweet_awards_web_tipping_enabled": false,
"responsive_web_grok_analysis_button_from_backend": false,
"creator_subscriptions_quote_tweet_preview_enabled": false,
"freedom_of_speech_not_reach_fetch_enabled": true,
"standardized_nudges_misinfo": true,
@ -1341,10 +1381,182 @@
"rweb_video_timestamps_enabled": true,
"longform_notetweets_rich_text_read_enabled": true,
"longform_notetweets_inline_media_enabled": true,
"responsive_web_grok_image_annotation_enabled": true,
"responsive_web_enhance_cards_enabled": false
}
},
"useFetchProfileSections_canViewExpandedProfileQuery": {
"queryId": "vqu78dKcEkW-UAYLw5rriA"
},
"affiliatesQuery": {
"queryId": "lre2gA0kvs0gf4XRNei6Qw"
},
"UserPreferences": {
"queryId": "xFxU-O8hEYe74ovNVU74jA"
},
"CommunitiesFetchOneQuery": {
"queryId": "qoO_JjXzufVpsHld_wO9bw",
"features": {
"profile_label_improvements_pcf_label_in_post_enabled": true,
"responsive_web_graphql_exclude_directive_enabled": true,
"responsive_web_graphql_skip_user_profile_image_extensions_enabled": false,
"responsive_web_graphql_timeline_navigation_enabled": true,
"rweb_tipjar_consumption_enabled": true,
"verified_phone_label_enabled": false
}
},
"CommunityQuery": {
"queryId": "YDYGxdoPEu0zNC2eWP_0MQ",
"features": {
"c9s_list_members_action_api_enabled": false,
"c9s_superc9s_indication_enabled": false
}
},
"CommunityTweetsTimeline": {
"queryId": "9Aek_FuJnKEtOZuUzMb--A",
"features": {
"profile_label_improvements_pcf_label_in_post_enabled": true,
"rweb_tipjar_consumption_enabled": true,
"responsive_web_graphql_exclude_directive_enabled": true,
"verified_phone_label_enabled": false,
"creator_subscriptions_tweet_preview_api_enabled": true,
"responsive_web_graphql_timeline_navigation_enabled": true,
"responsive_web_graphql_skip_user_profile_image_extensions_enabled": false,
"premium_content_api_read_enabled": false,
"communities_web_enable_tweet_community_results_fetch": true,
"c9s_tweet_anatomy_moderator_badge_enabled": true,
"responsive_web_grok_analyze_button_fetch_trends_enabled": false,
"responsive_web_grok_analyze_post_followups_enabled": true,
"responsive_web_jetfuel_frame": false,
"responsive_web_grok_share_attachment_enabled": true,
"articles_preview_enabled": true,
"responsive_web_edit_tweet_api_enabled": true,
"graphql_is_translatable_rweb_tweet_is_translatable_enabled": true,
"view_counts_everywhere_api_enabled": true,
"longform_notetweets_consumption_enabled": true,
"responsive_web_twitter_article_tweet_consumption_enabled": true,
"tweet_awards_web_tipping_enabled": false,
"responsive_web_grok_analysis_button_from_backend": false,
"creator_subscriptions_quote_tweet_preview_enabled": false,
"freedom_of_speech_not_reach_fetch_enabled": true,
"standardized_nudges_misinfo": true,
"tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": true,
"rweb_video_timestamps_enabled": true,
"longform_notetweets_rich_text_read_enabled": true,
"longform_notetweets_inline_media_enabled": true,
"responsive_web_grok_image_annotation_enabled": true,
"responsive_web_enhance_cards_enabled": false
}
},
"CommunityMediaTimeline": {
"queryId": "AeGLWU3FS7hlZsvwRtMTRg",
"features": {
"profile_label_improvements_pcf_label_in_post_enabled": true,
"rweb_tipjar_consumption_enabled": true,
"responsive_web_graphql_exclude_directive_enabled": true,
"verified_phone_label_enabled": false,
"creator_subscriptions_tweet_preview_api_enabled": true,
"responsive_web_graphql_timeline_navigation_enabled": true,
"responsive_web_graphql_skip_user_profile_image_extensions_enabled": false,
"premium_content_api_read_enabled": false,
"communities_web_enable_tweet_community_results_fetch": true,
"c9s_tweet_anatomy_moderator_badge_enabled": true,
"responsive_web_grok_analyze_button_fetch_trends_enabled": false,
"responsive_web_grok_analyze_post_followups_enabled": true,
"responsive_web_jetfuel_frame": false,
"responsive_web_grok_share_attachment_enabled": true,
"articles_preview_enabled": true,
"responsive_web_edit_tweet_api_enabled": true,
"graphql_is_translatable_rweb_tweet_is_translatable_enabled": true,
"view_counts_everywhere_api_enabled": true,
"longform_notetweets_consumption_enabled": true,
"responsive_web_twitter_article_tweet_consumption_enabled": true,
"tweet_awards_web_tipping_enabled": false,
"responsive_web_grok_analysis_button_from_backend": false,
"creator_subscriptions_quote_tweet_preview_enabled": false,
"freedom_of_speech_not_reach_fetch_enabled": true,
"standardized_nudges_misinfo": true,
"tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": true,
"rweb_video_timestamps_enabled": true,
"longform_notetweets_rich_text_read_enabled": true,
"longform_notetweets_inline_media_enabled": true,
"responsive_web_grok_image_annotation_enabled": true,
"responsive_web_enhance_cards_enabled": false
}
},
"CommunityAboutTimeline": {
"queryId": "Cr3qPw53XABLDuzCFJmnhA",
"features": {
"profile_label_improvements_pcf_label_in_post_enabled": true,
"rweb_tipjar_consumption_enabled": true,
"responsive_web_graphql_exclude_directive_enabled": true,
"verified_phone_label_enabled": false,
"creator_subscriptions_tweet_preview_api_enabled": true,
"responsive_web_graphql_timeline_navigation_enabled": true,
"responsive_web_graphql_skip_user_profile_image_extensions_enabled": false,
"premium_content_api_read_enabled": false,
"communities_web_enable_tweet_community_results_fetch": true,
"c9s_tweet_anatomy_moderator_badge_enabled": true,
"responsive_web_grok_analyze_button_fetch_trends_enabled": false,
"responsive_web_grok_analyze_post_followups_enabled": true,
"responsive_web_jetfuel_frame": false,
"responsive_web_grok_share_attachment_enabled": true,
"articles_preview_enabled": true,
"responsive_web_edit_tweet_api_enabled": true,
"graphql_is_translatable_rweb_tweet_is_translatable_enabled": true,
"view_counts_everywhere_api_enabled": true,
"longform_notetweets_consumption_enabled": true,
"responsive_web_twitter_article_tweet_consumption_enabled": true,
"tweet_awards_web_tipping_enabled": false,
"responsive_web_grok_analysis_button_from_backend": false,
"creator_subscriptions_quote_tweet_preview_enabled": false,
"freedom_of_speech_not_reach_fetch_enabled": true,
"standardized_nudges_misinfo": true,
"tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": true,
"rweb_video_timestamps_enabled": true,
"longform_notetweets_rich_text_read_enabled": true,
"longform_notetweets_inline_media_enabled": true,
"responsive_web_grok_image_annotation_enabled": true,
"responsive_web_enhance_cards_enabled": false
}
},
"CommunityHashtagsTimeline": {
"queryId": "zD5okPf_YV2nYIC8MIPBOQ",
"features": {
"profile_label_improvements_pcf_label_in_post_enabled": true,
"rweb_tipjar_consumption_enabled": true,
"responsive_web_graphql_exclude_directive_enabled": true,
"verified_phone_label_enabled": false,
"creator_subscriptions_tweet_preview_api_enabled": true,
"responsive_web_graphql_timeline_navigation_enabled": true,
"responsive_web_graphql_skip_user_profile_image_extensions_enabled": false,
"premium_content_api_read_enabled": false,
"communities_web_enable_tweet_community_results_fetch": true,
"c9s_tweet_anatomy_moderator_badge_enabled": true,
"responsive_web_grok_analyze_button_fetch_trends_enabled": false,
"responsive_web_grok_analyze_post_followups_enabled": true,
"responsive_web_jetfuel_frame": false,
"responsive_web_grok_share_attachment_enabled": true,
"articles_preview_enabled": true,
"responsive_web_edit_tweet_api_enabled": true,
"graphql_is_translatable_rweb_tweet_is_translatable_enabled": true,
"view_counts_everywhere_api_enabled": true,
"longform_notetweets_consumption_enabled": true,
"responsive_web_twitter_article_tweet_consumption_enabled": true,
"tweet_awards_web_tipping_enabled": false,
"responsive_web_grok_analysis_button_from_backend": false,
"creator_subscriptions_quote_tweet_preview_enabled": false,
"freedom_of_speech_not_reach_fetch_enabled": true,
"standardized_nudges_misinfo": true,
"tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": true,
"rweb_video_timestamps_enabled": true,
"longform_notetweets_rich_text_read_enabled": true,
"longform_notetweets_inline_media_enabled": true,
"responsive_web_grok_image_annotation_enabled": true,
"responsive_web_enhance_cards_enabled": false
}
},
"isEligibleForVoButtonUpsellQuery": {
"queryId": "BuWF9hiwmUyFdGo3J4DqbA"
}
}

View file

@ -18,19 +18,19 @@ paths:
tags:
- "tweet"
/graphql/{pathQueryId}/TweetResultByRestId:
get:
operationId: getTweetResultByRestId
description: get TweetResultByRestId
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/TweetResultByRestIdResponse"
# tags:
# - "tweet"
# /graphql/{pathQueryId}/TweetResultByRestId:
# get:
# operationId: getTweetResultByRestId
# description: get TweetResultByRestId
# responses:
# "200":
# description: Successful operation
# content:
# application/json:
# schema:
# $ref: "#/components/schemas/TweetResultByRestIdResponse"
# # tags:
# # - "tweet"
/graphql/{pathQueryId}/Favoriters:
get:

View file

@ -129,6 +129,8 @@ components:
pattern: "^(([a-z]+|[0-9]+|[0-9a-f]+)(-|$))+"
item:
$ref: "#/components/schemas/ModuleEntry"
dispensable:
type: boolean
ModuleEntry:
required:
@ -163,6 +165,7 @@ components:
- $ref: "#/components/schemas/TimelineMessagePrompt"
- $ref: "#/components/schemas/TimelineCommunity"
- $ref: "#/components/schemas/TimelineTombstone"
- $ref: "#/components/schemas/TimelineTrend"
discriminator:
propertyName: __typename
@ -174,6 +177,7 @@ components:
TimelineMessagePrompt: "#/components/schemas/TimelineMessagePrompt"
TimelineCommunity: "#/components/schemas/TimelineCommunity"
TimelineTombstone: "#/components/schemas/TimelineTombstone"
TimelineTrend: "#/components/schemas/TimelineTrend"
ContentItemType:
type: string
@ -450,3 +454,60 @@ components:
urlType:
type: string
enum: [ExternalUrl]
# {"itemType": "TimelineTrend", "__typename": "TimelineTrend", "social_context": {"type": "TimelineGeneralContext", "contextType": "Facepile", "text": "18 hours ago \\u00b7 Sports \\u00b7 64K posts", "contextImageUrls": ["https://pbs.twimg.com/profile_images/1889603596309639168/KSBuQ9vL_normal.png", "https://pbs.twimg.com/profile_images/1638484441101221890/dp7HU1PB_normal.jpg", "https://pbs.twimg.com/profile_images/1605131756310614017/05qwHae-_normal.jpg"]}, "is_ai_trend": true, "name": "Manchester United Unveils Plans for \\u00a32bn Stadium with 100,000 Capacity", "trend_url": {"url": "twitter://trending/1899449402634424550", "urlType": "DeepLink"}, "trend_metadata": {"url": {"url": "twitter://trending/1899449402634424550", "urlType": "DeepLink"}}, "thumbnail_image": {"original_img_url": "https://pbs.twimg.com/media/Glv52LAXgAAzZcC.jpg", "original_img_width": 3072, "original_img_height": 4096}, "images": [{"url": "https://pbs.twimg.com/media/Glv52LAXgAAzZcC.jpg"}]}
TimelineTrend:
required:
- "__typename"
- "itemType"
- "name"
- "trend_url"
- "trend_metadata"
- "thumbnail_image"
- "images"
properties:
__typename:
$ref: "./typename.yaml#/components/schemas/TypeName" # TimelineTrend
itemType:
$ref: "#/components/schemas/ContentItemType" # TimelineTrend
social_context:
$ref: "#/components/schemas/SocialContextUnion"
is_ai_trend:
type: boolean
name:
type: string
trend_url:
$ref: "#/components/schemas/SocialContextLandingUrl"
trend_metadata:
$ref: "#/components/schemas/TrendMetadata"
thumbnail_image:
$ref: "#/components/schemas/ThumbnailImage"
images:
type: array
items:
$ref: "#/components/schemas/TrendImage"
TrendMetadata:
type: object
properties:
url:
$ref: "#/components/schemas/SocialContextLandingUrl"
ThumbnailImage:
type: object
properties:
original_img_url:
type: string
format: uri
original_img_width:
type: integer
original_img_height:
type: integer
TrendImage:
type: object
properties:
url:
type: string
format: uri

View file

@ -388,6 +388,7 @@ if __name__ == "__main__":
"1875050002046726519",
"1848219562136801480",
"1881993128288399684",
"1899104692577489182"
]
for id in ids:
try:

View file

@ -1,5 +1,6 @@
import json
from pathlib import Path
import re
from urllib.parse import urlencode, urlparse
import openapi_client as pt
import urllib3
@ -16,13 +17,133 @@ def get_kwargs(key, additional):
return kwargs
class SessionManager:
def __init__(self) -> None:
header = "https://raw.githubusercontent.com/fa0311/latest-user-agent/refs/heads/main/header.json"
self.http = urllib3.PoolManager()
self.chorome_header = json.loads(self.http.request("GET", header).data)
def child(self):
return SessionManagerChild(self.http,self.chorome_header)
class SessionManagerChild:
def __init__(self, http, chorome_header) -> None:
self.http = http
self.chorome_header = chorome_header
self.session = {}
def cookie_normalize(self, cookie: list[str]) -> dict[str, str]:
value = {x.split("; ")[0].split("=")[0]: x.split("; ")[0].split("=")[1] for x in cookie}
return {key: value[key] for key in value if len(value[key]) > 0}
def cookie_to_str(self, cookie: dict[str, str]) -> str:
return "; ".join([f"{key}={value}" for key, value in cookie.items()])
def getHader(self, additionals={}) -> dict[str, str]:
ignore = ["host", "connection"]
base = {key: value for key, value in self.chorome_header["chrome"].items() if key not in ignore}
return base | {"cookie": self.cookie_to_str(self.session)} | additionals
def update_normalize(self, cookie: list[str]):
self.update(self.cookie_normalize(cookie))
def update(self, cookie: dict[str, str]):
self.session.update(cookie)
def pop(self, key: str):
self.session.pop(key)
def get(self, key: str):
return self.session.get(key)
def to_str(self):
return self.cookie_to_str(self.session)
def get_guest_token():
twitter_url = "https://x.com/elonmusk"
http = urllib3.PoolManager()
chrome = SessionManager()
x = chrome.child()
twitter = chrome.child()
def regex(str: str, **kwargs) -> str:
return str.format(
quote=r"[\'\"]",
space=r"\s*",
dot=r"\.",
any=r".*?",
target=r"([\s\S]*?)",
**kwargs
)
def redirect(method: str, url: str, body: str = None, headers: dict[str, str] = {}) -> urllib3.HTTPResponse:
for _ in range(10):
if urlparse(url).netloc == "x.com":
res = http.request(method, url, headers=x.getHader(headers), body=body, redirect=False)
x.update_normalize(res.headers._container["set-cookie"][1:])
elif urlparse(url).netloc == "twitter.com":
res = http.request(method, url, headers=twitter.getHader(headers), body=body, redirect=False)
twitter.update_normalize(res.headers._container["set-cookie"][1:])
else:
raise Exception("Invalid domain")
method = "GET"
body = None
headers = {}
location = "document{dot}location{space}={space}{quote}{target}{quote}"
submit = "document{dot}forms{dot}{target}{dot}submit"
form = "<form{space}action{space}={space}{quote}{target}{quote}{space}method{space}={space}{quote}post{quote}{space}name{space}={space}{quote}{name}{quote}>{target}</form>"
input = "<input{space}type{space}={space}{quote}hidden{quote}{space}name{space}={space}{quote}{target}{quote}{space}value{space}={space}{quote}{target}{quote}{space}/>"
if res.status >= 300 and res.status < 400:
new_path = res.headers._container["location"][1]
if new_path.startswith("/"):
domain = f"{urlparse(url).scheme}://{urlparse(url).netloc}"
url = f"{domain}{new_path}"
else:
url = new_path
elif re.findall(regex(location), res.data.decode()):
url = re.findall(regex(location), res.data.decode())[0]
elif re.findall(regex(submit), res.data.decode()):
name = re.findall(regex(submit), res.data.decode())
form_html = re.findall(regex(form, name=name[0]), res.data.decode())
input_html = re.findall(regex(input), form_html[0][1])
method = "POST"
url = form_html[0][0]
body = urlencode({k:v for k,v in input_html})
headers = {"content-type": "application/x-www-form-urlencoded"}
elif res.status == 200:
return res
else:
raise Exception("Failed to redirect")
else:
raise Exception("Failed to redirect")
res = redirect("GET", twitter_url)
reg = "document{dot}cookie{space}={space}{quote}{target}{quote}"
if re.findall(regex(reg), res.data.decode()):
find = re.findall(regex(reg), res.data.decode())
x.update_normalize(find)
if x.get("gt") is None:
raise Exception("Failed to get guest token")
return x
if __name__ == "__main__":
if Path("cookie.json").exists():
with open("cookie.json", "r") as f:
cookies = json.load(f)
if isinstance(cookies, list):
cookies = {k["name"]: k["value"] for k in cookies}
cookies_str = "; ".join([f"{k}={v}" for k, v in cookies.items()])
cookies = get_guest_token()
cookies_str = cookies.to_str()
with open("src/config/placeholder.json", "r") as f:
placeholder = json.load(f)
@ -31,7 +152,7 @@ if __name__ == "__main__":
api_key={
"ClientLanguage": "en",
"ActiveUser": "yes",
"GuestToken": cookies["gt"],
"GuestToken": cookies.get("gt"),
},
)
@ -46,15 +167,15 @@ if __name__ == "__main__":
api_client = pt.ApiClient(configuration=api_conf, cookie=cookies_str)
api_client.user_agent = latest_user_agent["chrome-fetch"]
pt.TweetApi(api_client).get_user_tweets_with_http_info(
res = pt.TweetApi(api_client).get_user_tweets_with_http_info(
**get_kwargs("UserTweets", {}),
)
pt.TweetApi(api_client).get_user_highlights_tweets_with_http_info(
).model_dump_json()
res = pt.TweetApi(api_client).get_user_highlights_tweets_with_http_info(
**get_kwargs("UserHighlightsTweets", {}),
)
pt.DefaultApi(api_client).get_tweet_result_by_rest_id_with_http_info(
).model_dump_json()
res = pt.DefaultApi(api_client).get_tweet_result_by_rest_id_with_http_info(
**get_kwargs("TweetResultByRestId", {}),
)
pt.UserApi(api_client).get_user_by_screen_name_with_http_info(
).model_dump_json()
res = pt.UserApi(api_client).get_user_by_screen_name_with_http_info(
**get_kwargs("UserByScreenName", {})
)
).model_dump_json()