diff --git a/.vscode/launch.json b/.vscode/launch.json index 1df138e..15a4bcc 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -26,7 +26,9 @@ "justMyCode": false, "preLaunchTask": "build-task", "env": { - "ERROR_UNCATCHED": "True" + "ERROR_UNCATCHED": "True", + "STRICT_MODE": "True", + "MULTI_THREAD": "True" } } ] diff --git a/dist/compatible/openapi-3.0.yaml b/dist/compatible/openapi-3.0.yaml index 91196ef..d06c9f6 100644 --- a/dist/compatible/openapi-3.0.yaml +++ b/dist/compatible/openapi-3.0.yaml @@ -2,10 +2,45 @@ components: schemas: AdditionalMediaInfo: properties: + call_to_actions: + $ref: '#/components/schemas/AdditionalMediaInfoCallToActions' + description: + type: string + embeddable: + type: boolean monetizable: type: boolean + source_user: + $ref: '#/components/schemas/UserResultCore' + title: + type: string required: - monetizable + AdditionalMediaInfoCallToActions: + properties: + visit_site: + $ref: '#/components/schemas/AdditionalMediaInfoCallToActionsVisitSite' + required: + - visit_site + AdditionalMediaInfoCallToActionsVisitSite: + properties: + url: + format: uri + type: string + required: + - url + AuthorCommunityRelationship: + properties: + community_results: + $ref: '#/components/schemas/Community' + role: + enum: + - Member + type: string + user_results: + $ref: '#/components/schemas/UserResults' + required: + - community_results BirdwatchEntity: properties: fromIndex: @@ -37,6 +72,8 @@ components: - urlType BirdwatchPivot: properties: + callToAction: + $ref: '#/components/schemas/BirdwatchPivotCallToAction' destinationUrl: format: uri type: string @@ -66,6 +103,19 @@ components: - title - shorttitle - iconType + BirdwatchPivotCallToAction: + properties: + destinationUrl: + format: uri + type: string + prompt: + type: string + title: + type: string + required: + - prompt + - title + - destinationUrl BirdwatchPivotFooter: properties: entities: @@ -136,6 +186,201 @@ components: required: - create type: object + Community: + properties: + result: + $ref: '#/components/schemas/CommunityData' + required: + - result + CommunityActions: + properties: + delete_action_result: + $ref: '#/components/schemas/CommunityDeleteActionResult' + join_action_result: + $ref: '#/components/schemas/CommunityJoinActionResult' + leave_action_result: + $ref: '#/components/schemas/CommunityLeaveActionResult' + pin_action_result: + $ref: '#/components/schemas/CommunityPinActionResult' + required: + - delete_action_result + - join_action_result + - leave_action_result + - pin_action_result + CommunityData: + properties: + __typename: + $ref: '#/components/schemas/TypeName' + actions: + $ref: '#/components/schemas/CommunityActions' + admin_results: + $ref: '#/components/schemas/UserResults' + created_at: + type: integer + creator_results: + $ref: '#/components/schemas/UserResults' + custom_banner_media: + additionalProperties: true + type: object + default_banner_media: + additionalProperties: true + type: object + description: + type: string + id_str: + pattern: ^[0-9]+$ + type: string + invites_policy: + enum: + - MemberInvitesAllowed + type: string + invites_result: + $ref: '#/components/schemas/CommunityInvitesResult' + is_pinned: + type: boolean + join_policy: + enum: + - Open + type: string + join_requests_result: + $ref: '#/components/schemas/CommunityJoinRequestsResult' + member_count: + type: integer + members_facepile_results: + items: + $ref: '#/components/schemas/UserResults' + type: array + moderator_count: + type: integer + name: + type: string + primary_community_topic: + $ref: '#/components/schemas/PrimaryCommunityTopic' + question: + type: string + role: + enum: + - NonMember + type: string + rules: + items: + $ref: '#/components/schemas/CommunityRule' + type: array + search_tags: + items: + type: string + type: array + show_only_users_to_display: + items: + type: string + type: array + urls: + $ref: '#/components/schemas/CommunityUrls' + viewer_relationship: + additionalProperties: true + type: object + required: + - __typename + - id_str + - name + - description + - question + - search_tags + - primary_community_topic + - actions + - admin_results + - creator_results + - invites_result + - join_policy + - invites_policy + - is_pinned + - members_facepile_results + - moderator_count + - member_count + - role + - rules + CommunityDeleteActionResult: + properties: + __typename: + $ref: '#/components/schemas/TypeName' + reason: + enum: + - Unavailable + type: string + required: + - __typename + - reason + CommunityInvitesResult: + properties: + __typename: + $ref: '#/components/schemas/TypeName' + message: + type: string + reason: + enum: + - Unavailable + type: string + required: + - __typename + - reason + - message + CommunityJoinActionResult: + properties: + __typename: + $ref: '#/components/schemas/TypeName' + required: + - __typename + CommunityJoinRequestsResult: + properties: + __typename: + $ref: '#/components/schemas/TypeName' + required: + - __typename + CommunityLeaveActionResult: + properties: + __typename: + $ref: '#/components/schemas/TypeName' + message: + type: string + reason: + enum: + - ViewerNotMember + type: string + required: + - __typename + - reason + - message + CommunityPinActionResult: + properties: + __typename: + $ref: '#/components/schemas/TypeName' + required: + - __typename + CommunityRule: + properties: + description: + type: string + name: + type: string + rest_id: + pattern: ^[0-9]+$ + type: string + required: + - rest_id + - name + CommunityUrls: + properties: + permalink: + $ref: '#/components/schemas/CommunityUrlsPermalink' + required: + - permalink + CommunityUrlsPermalink: + properties: + url: + format: uri + type: string + required: + - url ContentEntryType: enum: - TimelineTimelineItem @@ -291,6 +536,13 @@ components: type: object required: - tweet_results + DisplayTreatment: + properties: + actionText: + type: string + required: + - actionText + type: object Entities: properties: hashtags: @@ -395,6 +647,15 @@ components: required: - errors type: object + ExtMediaAvailability: + properties: + reason: + type: string + status: + enum: + - Available + - Unavailable + type: string ExtendedEntities: properties: media: @@ -434,6 +695,14 @@ components: $ref: '#/components/schemas/FavoriteTweet' required: - data + FeedbackInfo: + properties: + feedbackKeys: + items: + type: string + type: array + required: + - feedbackType FollowResponse: properties: data: @@ -470,6 +739,15 @@ components: Hashtag: additionalProperties: true type: object + Highlight: + properties: + textHighlights: + items: + $ref: '#/components/schemas/TextHighlight' + type: array + required: + - textHighlights + type: object HomeTimelineHome: properties: home_timeline_urt: @@ -571,12 +849,19 @@ components: type: object Media: properties: + additional_media_info: + additionalProperties: true + type: object display_url: format: uri type: string expanded_url: format: uri type: string + ext_alt_text: + type: string + ext_media_availability: + $ref: '#/components/schemas/ExtMediaAvailability' features: type: object id_str: @@ -586,6 +871,8 @@ components: items: type: integer type: array + media_key: + type: string media_url_https: format: uri type: string @@ -593,6 +880,12 @@ components: $ref: '#/components/schemas/MediaOriginalInfo' sizes: $ref: '#/components/schemas/MediaSizes' + source_status_id_str: + pattern: ^[0-9]+$ + type: string + source_user_id_str: + pattern: ^[0-9]+$ + type: string type: enum: - photo @@ -602,6 +895,9 @@ components: url: format: uri type: string + video_info: + additionalProperties: true + type: object required: - display_url - expanded_url @@ -612,6 +908,8 @@ components: - url - sizes - original_info + - media_key + - ext_media_availability MediaExtended: properties: additional_media_info: @@ -622,8 +920,10 @@ components: expanded_url: format: uri type: string + ext_alt_text: + type: string ext_media_availability: - $ref: '#/components/schemas/extMediaAvailability' + $ref: '#/components/schemas/ExtMediaAvailability' features: type: object id_str: @@ -634,7 +934,7 @@ components: type: integer type: array mediaStats: - $ref: '#/components/schemas/mediaStats' + $ref: '#/components/schemas/MediaStats' media_key: type: string media_url_https: @@ -644,6 +944,12 @@ components: $ref: '#/components/schemas/MediaOriginalInfo' sizes: $ref: '#/components/schemas/MediaSizes' + source_status_id_str: + pattern: ^[0-9]+$ + type: string + source_user_id_str: + pattern: ^[0-9]+$ + type: string type: enum: - photo @@ -725,6 +1031,12 @@ components: - medium - small - thumb + MediaStats: + properties: + viewCount: + type: integer + required: + - viewCount MediaVideoInfo: properties: aspect_ratio: @@ -857,6 +1169,16 @@ components: Session: $ref: '#/components/schemas/Session' type: object + PrimaryCommunityTopic: + properties: + topic_id: + pattern: ^[0-9]+$ + type: string + topic_name: + type: string + required: + - topic_id + - topic_name ProfileResponse: properties: data: @@ -869,6 +1191,37 @@ components: $ref: '#/components/schemas/UserResultByScreenName' required: - user_result_by_screen_name + QuotedRefResult: + properties: + result: + $ref: '#/components/schemas/QuotedRefResultData' + required: + - result + QuotedRefResultData: + properties: + __typename: + $ref: '#/components/schemas/TypeName' + rest_id: + pattern: ^[0-9]+$ + type: string + required: + - __typename + - rest_id + QuotedStatusPermalink: + properties: + display: + format: uri + type: string + expanded: + format: uri + type: string + url: + format: uri + type: string + required: + - url + - expanded + - display Retweet: properties: legacy: @@ -967,15 +1320,54 @@ components: - userFeatures - isSuperFollowSubscriber type: object - SocialContext: + SocialContextLandingUrl: properties: - contextType: + url: + format: uri type: string - text: - type: string - type: + urlType: + enum: + - DeepLink + - UrtEndpoint type: string + urtEndpointOptions: + $ref: '#/components/schemas/UrtEndpointOptions' type: object + SocialContextUnion: + discriminator: + mapping": + TimelineGeneralContext: '#/components/schemas/TimelineGeneralContext' + TimelineTopicContext: '#/components/schemas/TimelineTopicContext' + propertyName: type + oneOf: + - $ref: '#/components/schemas/TimelineGeneralContext' + - $ref: '#/components/schemas/TimelineTopicContext' + SocialContextUnionType: + enum: + - TimelineGeneralContext + - TimelineTopicContext + type: string + SuperFollowsReplyUserResult: + properties: + result: + $ref: '#/components/schemas/SuperFollowsReplyUserResultData' + required: + - result + SuperFollowsReplyUserResultData: + properties: + __typename: + $ref: '#/components/schemas/TypeName' + legacy: + $ref: '#/components/schemas/SuperFollowsReplyUserResultLegacy' + required: + - __typename + - legacy + SuperFollowsReplyUserResultLegacy: + properties: + screen_name: + type: string + required: + - screen_name Symbol: additionalProperties: true type: object @@ -1019,6 +1411,16 @@ components: - type - url - urlType + TextHighlight: + properties: + endIndex: + type: integer + startIndex: + type: integer + required: + - startIndex + - endIndex + type: object Timeline: properties: instructions: @@ -1093,6 +1495,23 @@ components: type: string required: - type + TimelineGeneralContext: + properties: + contextType: + enum: + - Follow + - Pin + - Like + - Location + - Sparkle + type: string + landingUrl: + $ref: '#/components/schemas/SocialContextLandingUrl' + text: + type: string + type: + $ref: '#/components/schemas/SocialContextUnionType' + type: object TimelineHalfCover: properties: dismissible: @@ -1230,16 +1649,22 @@ components: $ref: '#/components/schemas/TypeName' cursorType: $ref: '#/components/schemas/CursorType' + displayTreatment: + $ref: '#/components/schemas/DisplayTreatment' entryType: $ref: '#/components/schemas/ContentEntryType' itemType: $ref: '#/components/schemas/ContentEntryType' + stopOnEmptyResponse: + default: false + type: boolean value: type: string required: - __typename - cursorType - value + - stopOnEmptyResponse TimelineTimelineItem: properties: __typename: @@ -1274,6 +1699,8 @@ components: type: string entryType: $ref: '#/components/schemas/ContentEntryType' + feedbackInfo: + $ref: '#/components/schemas/FeedbackInfo' footer: additionalProperties: true type: object @@ -1284,22 +1711,38 @@ components: items: $ref: '#/components/schemas/ModuleItem' type: array + metadata: + additionalProperties: true + type: object required: - __typename - entryType - displayType - clientEventInfo + TimelineTopicContext: + properties: + functionalityType: + enum: + - Basic + type: string + topic: + $ref: '#/components/schemas/TopicContext' + type: + $ref: '#/components/schemas/SocialContextUnionType' + type: object TimelineTweet: properties: - SocialContext: - $ref: '#/components/schemas/SocialContext' __typename: $ref: '#/components/schemas/TypeName' + highlights: + $ref: '#/components/schemas/Highlight' itemType: $ref: '#/components/schemas/ContentItemType' promotedMetadata: additionalProperties: true type: object + socialContext: + $ref: '#/components/schemas/SocialContextUnion' tweetDisplayType: type: string tweet_results: @@ -1311,12 +1754,12 @@ components: - tweet_results TimelineUser: properties: - SocialContext: - $ref: '#/components/schemas/SocialContext' __typename: $ref: '#/components/schemas/TypeName' itemType: $ref: '#/components/schemas/ContentItemType' + socialContext: + $ref: '#/components/schemas/SocialContextUnion' userDisplayType: enum: - User @@ -1328,7 +1771,6 @@ components: required: - __typename - itemType - - socialContext - userDisplayType - user_results TimelineV2: @@ -1337,6 +1779,24 @@ components: $ref: '#/components/schemas/Timeline' required: - timeline + TopicContext: + properties: + description: + type: string + following: + type: boolean + icon_url: + format: uri + type: string + id: + type: string + name: + type: string + not_interested: + type: boolean + topic_id: + type: string + type: object Tracing: properties: trace_id: @@ -1349,6 +1809,8 @@ components: properties: __typename: $ref: '#/components/schemas/TypeName' + author_community_relationship: + $ref: '#/components/schemas/AuthorCommunityRelationship' birdwatch_pivot: $ref: '#/components/schemas/BirdwatchPivot' card: @@ -1359,6 +1821,8 @@ components: $ref: '#/components/schemas/TweetEditControl' edit_prespective: $ref: '#/components/schemas/TweetEditPrespective' + has_birdwatch_notes: + type: boolean is_translatable: default: false type: boolean @@ -1366,8 +1830,12 @@ components: $ref: '#/components/schemas/TweetLegacy' note_tweet: $ref: '#/components/schemas/NoteTweet' + previous_counts: + $ref: '#/components/schemas/TweetPreviousCounts' quick_promote_eligibility: type: object + quotedRefResult: + $ref: '#/components/schemas/QuotedRefResult' quoted_status_result: $ref: '#/components/schemas/ItemResult' rest_id: @@ -1375,6 +1843,10 @@ components: type: string source: type: string + superFollowsReplyUserResult: + $ref: '#/components/schemas/SuperFollowsReplyUserResult' + unified_card: + $ref: '#/components/schemas/UnifiedCard' unmention_data: additionalProperties: true type: object @@ -1397,10 +1869,16 @@ components: items: $ref: '#/components/schemas/TweetCardLegacyBindingValue' type: array + card_platform: + $ref: '#/components/schemas/TweetCardPlatformData' name: type: string url: type: string + user_refs_results: + items: + $ref: '#/components/schemas/UserResults' + type: array required: - binding_values - name @@ -1418,14 +1896,69 @@ components: properties: boolean_value: type: boolean + image_color_value: + additionalProperties: true + type: object + image_value: + $ref: '#/components/schemas/TweetCardLegacyBindingValueDataImage' scribe_key: type: string string_value: type: string type: type: string + user_value: + $ref: '#/components/schemas/UserValue' required: - type + TweetCardLegacyBindingValueDataImage: + properties: + alt: + type: string + height: + type: integer + url: + format: uri + type: string + width: + type: integer + required: + - height + - width + - url + TweetCardPlatform: + properties: + audience: + $ref: '#/components/schemas/TweetCardPlatformAudience' + device: + $ref: '#/components/schemas/TweetCardPlatformDevice' + required: + - audience + - device + TweetCardPlatformAudience: + properties: + name: + enum: + - production + type: string + required: + - name + TweetCardPlatformData: + properties: + platform: + $ref: '#/components/schemas/TweetCardPlatform' + required: + - platform + TweetCardPlatformDevice: + properties: + name: + type: string + version: + pattern: ^[0-9]+$ + type: string + required: + - name + - version TweetDetailResponse: properties: data: @@ -1496,12 +2029,88 @@ components: $ref: '#/components/schemas/TimelineV2' required: - favoriters_timeline + TweetInterstitial: + properties: + __typename: + $ref: '#/components/schemas/TypeName' + displayType: + enum: + - NonCompliant + type: string + revealText: + $ref: '#/components/schemas/TweetInterstitialRevealText' + text: + $ref: '#/components/schemas/TweetInterstitialText' + required: + - __typename + - displayType + - text + - revealText + TweetInterstitialRevealText: + properties: + entities: + items: + $ref: '#/components/schemas/TweetInterstitialTextEntity' + type: array + rtl: + type: boolean + text: + type: string + required: + - rtl + - text + - entities + TweetInterstitialText: + properties: + entities: + items: + $ref: '#/components/schemas/TweetInterstitialTextEntity' + type: array + rtl: + type: boolean + text: + type: string + required: + - rtl + - text + - entities + TweetInterstitialTextEntity: + properties: + fromIndex: + type: integer + ref: + $ref: '#/components/schemas/TweetInterstitialTextEntityRef' + toIndex: + type: integer + required: + - fromIndex + - toIndex + - ref + TweetInterstitialTextEntityRef: + properties: + type: + enum: + - TimelineUrl + type: string + url: + format: uri + type: string + urlType: + enum: + - ExternalUrl + type: string + required: + - type + - url + - urlType TweetLegacy: properties: bookmark_count: type: integer bookmarked: type: boolean + conversation_control: + additionalProperties: true conversation_id_str: pattern: ^[0-9]+$ type: string @@ -1524,10 +2133,27 @@ components: id_str: pattern: ^[0-9]+$ type: string + in_reply_to_screen_name: + type: string + in_reply_to_status_id_str: + pattern: ^[0-9]+$ + type: string + in_reply_to_user_id_str: + pattern: ^[0-9]+$ + type: string is_quote_status: type: boolean lang: type: string + limited_actions: + enum: + - limited_replies + - community_tweet_non_member_public_community + - non_compliant + - dynamic_product_ad + type: string + place: + additionalProperties: true possibly_sensitive: default: false type: boolean @@ -1536,6 +2162,11 @@ components: type: boolean quote_count: type: integer + quoted_status_id_str: + pattern: ^[0-9]+$ + type: string + quoted_status_permalink: + $ref: '#/components/schemas/QuotedStatusPermalink' reply_count: type: integer retweet_count: @@ -1544,6 +2175,8 @@ components: type: boolean retweeted_status_result: $ref: '#/components/schemas/ItemResult' + scopes: + $ref: '#/components/schemas/TweetLegacyScopes' self_thread: $ref: '#/components/schemas/SelfThread' user_id_str: @@ -1567,6 +2200,30 @@ components: - retweeted - user_id_str - id_str + TweetLegacyScopes: + properties: + followers: + type: boolean + required: + - followers + TweetPreviousCounts: + properties: + bookmark_count: + type: integer + favorite_count: + type: integer + quote_count: + type: integer + reply_count: + type: integer + retweet_count: + type: integer + required: + - bookmark_count + - favorite_count + - quote_count + - reply_count + - retweet_count TweetResultByRestIdData: properties: tweetResult: @@ -1622,11 +2279,17 @@ components: properties: __typename: $ref: '#/components/schemas/TypeName' + limitedActionResults: + additionalProperties: true + type: object tweet: $ref: '#/components/schemas/Tweet' + tweetInterstitial: + $ref: '#/components/schemas/TweetInterstitial' required: - __typename - tweet + - limitedActionResults TwitterTimeFormat: example: Sat Dec 31 23:59:59 +0000 2023 pattern: '^(Sun|Mon|Tue|Wed|Thu|Fri|Sat) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) @@ -1640,6 +2303,7 @@ components: - TimelineUser - TimelineTimelineCursor - TweetWithVisibilityResults + - ContextualTweetInterstitial - TimelineTimelineModule - TweetTombstone - TimelinePrompt @@ -1649,6 +2313,13 @@ components: - Tweet - User - UserUnavailable + - Community + - CommunityDeleteActionUnavailable + - CommunityJoinAction + - CommunityLeaveActionUnavailable + - CommunityTweetPinActionUnavailable + - CommunityInvitesUnavailable + - CommunityJoinRequestsUnavailable type: string UnfavoriteTweet: properties: @@ -1662,6 +2333,14 @@ components: $ref: '#/components/schemas/UnfavoriteTweet' required: - data + UnifiedCard: + properties: + card_fetch_state: + enum: + - NoCard + type: string + required: + - card_fetch_state Url: properties: display_url: @@ -1682,6 +2361,28 @@ components: - expanded_url - display_url type: object + UrtEndpointOptions: + properties: + requestParams: + items: + $ref: '#/components/schemas/UrtEndpointRequestParams' + type: array + title: + type: string + required: + - title + - requestParams + type: object + UrtEndpointRequestParams: + properties: + key: + type: string + value: + type: string + required: + - key + - value + type: object User: properties: __typename: @@ -1692,19 +2393,33 @@ components: business_account: additionalProperties: true type: object + creator_subscriptions_count: + type: integer has_graduated_access: type: boolean has_nft_avatar: default: false type: boolean + highlights_info: + $ref: '#/components/schemas/UserHighlightsInfo' id: pattern: ^([A-Za-z0-9+/]{4})*([A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}==)?$ type: string is_blue_verified: default: false type: boolean + is_profile_translatable: + type: boolean legacy: $ref: '#/components/schemas/UserLegacy' + professional: + $ref: '#/components/schemas/UserProfessional' + profile_image_shape: + enum: + - Circle + - Square + - Hexagon + type: string rest_id: pattern: ^[0-9]+$ type: string @@ -1717,6 +2432,10 @@ components: super_following: default: false type: boolean + user_seed_tweet_count: + type: integer + verification_info: + $ref: '#/components/schemas/UserVerificationInfo' required: - __typename - affiliates_highlighted_label @@ -1727,6 +2446,7 @@ components: - super_follow_eligible - super_followed_by - super_following + - profile_image_shape UserFeatures: properties: mediatool_studio_library: @@ -1734,6 +2454,15 @@ components: required: - mediatool_studio_library type: object + UserHighlightsInfo: + properties: + can_highlight_tweets: + type: boolean + highlighted_tweets: + type: string + required: + - can_highlight_tweets + - highlighted_tweets UserHighlightsTweetsData: properties: user: @@ -1872,9 +2601,18 @@ components: type: string verified: type: boolean + verified_type: + enum: + - Business + - Government + type: string want_retweets: default: false type: boolean + withheld_in_countries: + items: + type: string + type: array required: - blocked_by - blocking @@ -1910,6 +2648,36 @@ components: UserMention: additionalProperties: true type: object + UserProfessional: + properties: + category: + items: + $ref: '#/components/schemas/UserProfessionalCategory' + type: array + professional_type: + enum: + - Business + - Creator + type: string + rest_id: + pattern: ^[0-9]+$ + type: string + required: + - rest_id + - professional_type + - category + UserProfessionalCategory: + properties: + icon_name: + type: string + id: + type: integer + name: + type: string + required: + - id + - name + - icon_name UserResponse: properties: data: @@ -2024,6 +2792,70 @@ components: oneOf: - $ref: '#/components/schemas/User' - $ref: '#/components/schemas/UserUnavailable' + UserValue: + properties: + id_str: + pattern: ^[0-9]+$ + type: string + required: + - id_str + UserVerificationInfo: + properties: + is_identity_verified: + default: false + type: boolean + reason: + $ref: '#/components/schemas/UserVerificationInfoReason' + required: + - is_identity_verified + UserVerificationInfoReason: + properties: + description: + $ref: '#/components/schemas/UserVerificationInfoReasonDescription' + override_verified_year: + type: integer + verified_since_msec: + pattern: ^-?[0-9]+$ + type: string + required: + - description + - verified_since_msec + - override_verified_year + UserVerificationInfoReasonDescription: + properties: + entities: + items: + $ref: '#/components/schemas/UserVerificationInfoReasonDescriptionEntities' + type: array + text: + type: string + required: + - text + - entities + UserVerificationInfoReasonDescriptionEntities: + properties: + from_index: + type: integer + ref: + $ref: '#/components/schemas/UserVerificationInfoReasonDescriptionEntitiesRef' + to_index: + type: integer + required: + - from_index + - to_index + - ref + UserVerificationInfoReasonDescriptionEntitiesRef: + properties: + url: + format: uri + type: string + url_type: + enum: + - ExternalUrl + type: string + required: + - url + - url_type UsersResponse: properties: data: @@ -2038,21 +2870,6 @@ components: type: array required: - users - extMediaAvailability: - properties: - reason: - type: string - status: - enum: - - Available - - Unavailable - type: string - mediaStats: - properties: - viewCount: - type: integer - required: - - viewCount securitySchemes: Accept: description: '*/*' @@ -2941,8 +3758,8 @@ paths: name: pathQueryId required: true schema: - default: j5KExFXtSWj8HjRui17ydA - example: j5KExFXtSWj8HjRui17ydA + default: cQxQgX8MJYjWwC0dxpyfYg + example: cQxQgX8MJYjWwC0dxpyfYg type: string - in: query name: variables @@ -2958,27 +3775,27 @@ paths: default: '{"graphql_timeline_v2_bookmark_timeline": 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, "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": false, + false, "c9s_tweet_anatomy_moderator_badge_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, "freedom_of_speech_not_reach_fetch_enabled": true, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": - true, "longform_notetweets_rich_text_read_enabled": true, "longform_notetweets_inline_media_enabled": - true, "responsive_web_media_download_video_enabled": false, "responsive_web_enhance_cards_enabled": - false}' + true, "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled": + true, "longform_notetweets_inline_media_enabled": true, "responsive_web_media_download_video_enabled": + false, "responsive_web_enhance_cards_enabled": false}' example: '{"graphql_timeline_v2_bookmark_timeline": 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, "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": false, + false, "c9s_tweet_anatomy_moderator_badge_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, "freedom_of_speech_not_reach_fetch_enabled": true, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": - true, "longform_notetweets_rich_text_read_enabled": true, "longform_notetweets_inline_media_enabled": - true, "responsive_web_media_download_video_enabled": false, "responsive_web_enhance_cards_enabled": - false}' + true, "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled": + true, "longform_notetweets_inline_media_enabled": true, "responsive_web_media_download_video_enabled": + false, "responsive_web_enhance_cards_enabled": false}' type: string responses: '200': @@ -3101,8 +3918,8 @@ paths: name: pathQueryId required: true schema: - default: PIZtQLRIYtSa9AtW_fI2Mw - example: PIZtQLRIYtSa9AtW_fI2Mw + default: 8ED1SMuUGkOZVBEjiYUTfw + example: 8ED1SMuUGkOZVBEjiYUTfw type: string requestBody: content: @@ -3111,6 +3928,10 @@ paths: properties: features: properties: + c9s_tweet_anatomy_moderator_badge_enabled: + default: true + example: true + type: boolean freedom_of_speech_not_reach_fetch_enabled: default: true example: true @@ -3156,8 +3977,12 @@ paths: example: false type: boolean responsive_web_twitter_article_tweet_consumption_enabled: - default: false - example: false + default: true + example: true + type: boolean + rweb_video_timestamps_enabled: + default: true + example: true type: boolean standardized_nudges_misinfo: default: true @@ -3184,6 +4009,7 @@ paths: example: true type: boolean required: + - c9s_tweet_anatomy_moderator_badge_enabled - tweetypie_unmention_optimization_enabled - responsive_web_edit_tweet_api_enabled - graphql_is_translatable_rweb_tweet_is_translatable_enabled @@ -3193,6 +4019,7 @@ paths: - tweet_awards_web_tipping_enabled - longform_notetweets_rich_text_read_enabled - longform_notetweets_inline_media_enabled + - rweb_video_timestamps_enabled - responsive_web_graphql_exclude_directive_enabled - verified_phone_label_enabled - freedom_of_speech_not_reach_fetch_enabled @@ -3204,8 +4031,8 @@ paths: - responsive_web_enhance_cards_enabled type: object queryId: - default: PIZtQLRIYtSa9AtW_fI2Mw - example: PIZtQLRIYtSa9AtW_fI2Mw + default: 8ED1SMuUGkOZVBEjiYUTfw + example: 8ED1SMuUGkOZVBEjiYUTfw type: string variables: properties: @@ -3546,8 +4373,8 @@ paths: name: pathQueryId required: true schema: - default: VIA2_af01oqZqBB6NvWi-Q - example: VIA2_af01oqZqBB6NvWi-Q + default: LLkw5EcVutJL6y-2gkz22A + example: LLkw5EcVutJL6y-2gkz22A type: string - in: query name: variables @@ -3565,27 +4392,27 @@ paths: default: '{"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, "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": false, + false, "c9s_tweet_anatomy_moderator_badge_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, "freedom_of_speech_not_reach_fetch_enabled": true, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": - true, "longform_notetweets_rich_text_read_enabled": true, "longform_notetweets_inline_media_enabled": - true, "responsive_web_media_download_video_enabled": false, "responsive_web_enhance_cards_enabled": - false}' + true, "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled": + true, "longform_notetweets_inline_media_enabled": true, "responsive_web_media_download_video_enabled": + false, "responsive_web_enhance_cards_enabled": false}' example: '{"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, "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": false, + false, "c9s_tweet_anatomy_moderator_badge_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, "freedom_of_speech_not_reach_fetch_enabled": true, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": - true, "longform_notetweets_rich_text_read_enabled": true, "longform_notetweets_inline_media_enabled": - true, "responsive_web_media_download_video_enabled": false, "responsive_web_enhance_cards_enabled": - false}' + true, "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled": + true, "longform_notetweets_inline_media_enabled": true, "responsive_web_media_download_video_enabled": + false, "responsive_web_enhance_cards_enabled": false}' type: string responses: '200': @@ -3632,8 +4459,8 @@ paths: name: pathQueryId required: true schema: - default: rRXFSG5vR6drKr5M37YOTw - example: rRXFSG5vR6drKr5M37YOTw + default: ZG1BQPaRSg04qo55kKaW2g + example: ZG1BQPaRSg04qo55kKaW2g type: string - in: query name: variables @@ -3651,27 +4478,27 @@ paths: default: '{"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, "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": false, + false, "c9s_tweet_anatomy_moderator_badge_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, "freedom_of_speech_not_reach_fetch_enabled": true, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": - true, "longform_notetweets_rich_text_read_enabled": true, "longform_notetweets_inline_media_enabled": - true, "responsive_web_media_download_video_enabled": false, "responsive_web_enhance_cards_enabled": - false}' + true, "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled": + true, "longform_notetweets_inline_media_enabled": true, "responsive_web_media_download_video_enabled": + false, "responsive_web_enhance_cards_enabled": false}' example: '{"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, "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": false, + false, "c9s_tweet_anatomy_moderator_badge_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, "freedom_of_speech_not_reach_fetch_enabled": true, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": - true, "longform_notetweets_rich_text_read_enabled": true, "longform_notetweets_inline_media_enabled": - true, "responsive_web_media_download_video_enabled": false, "responsive_web_enhance_cards_enabled": - false}' + true, "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled": + true, "longform_notetweets_inline_media_enabled": true, "responsive_web_media_download_video_enabled": + false, "responsive_web_enhance_cards_enabled": false}' type: string responses: '200': @@ -3718,8 +4545,8 @@ paths: name: pathQueryId required: true schema: - default: yqrUptVSP9DAkVLqpc0lsg - example: yqrUptVSP9DAkVLqpc0lsg + default: citX7s5IAb1C6AVCqUO68g + example: citX7s5IAb1C6AVCqUO68g type: string - in: query name: variables @@ -3737,27 +4564,27 @@ paths: default: '{"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, "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": false, + false, "c9s_tweet_anatomy_moderator_badge_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, "freedom_of_speech_not_reach_fetch_enabled": true, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": - true, "longform_notetweets_rich_text_read_enabled": true, "longform_notetweets_inline_media_enabled": - true, "responsive_web_media_download_video_enabled": false, "responsive_web_enhance_cards_enabled": - false}' + true, "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled": + true, "longform_notetweets_inline_media_enabled": true, "responsive_web_media_download_video_enabled": + false, "responsive_web_enhance_cards_enabled": false}' example: '{"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, "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": false, + false, "c9s_tweet_anatomy_moderator_badge_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, "freedom_of_speech_not_reach_fetch_enabled": true, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": - true, "longform_notetweets_rich_text_read_enabled": true, "longform_notetweets_inline_media_enabled": - true, "responsive_web_media_download_video_enabled": false, "responsive_web_enhance_cards_enabled": - false}' + true, "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled": + true, "longform_notetweets_inline_media_enabled": true, "responsive_web_media_download_video_enabled": + false, "responsive_web_enhance_cards_enabled": false}' type: string responses: '200': @@ -3804,8 +4631,8 @@ paths: name: pathQueryId required: true schema: - default: iSicc7LrzWGBgDPL0tM_TQ - example: iSicc7LrzWGBgDPL0tM_TQ + default: PAnE9toEjRfE-4tozRcsfw + example: PAnE9toEjRfE-4tozRcsfw type: string - in: query name: variables @@ -3823,27 +4650,27 @@ paths: default: '{"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, "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": false, + false, "c9s_tweet_anatomy_moderator_badge_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, "freedom_of_speech_not_reach_fetch_enabled": true, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": - true, "longform_notetweets_rich_text_read_enabled": true, "longform_notetweets_inline_media_enabled": - true, "responsive_web_media_download_video_enabled": false, "responsive_web_enhance_cards_enabled": - false}' + true, "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled": + true, "longform_notetweets_inline_media_enabled": true, "responsive_web_media_download_video_enabled": + false, "responsive_web_enhance_cards_enabled": false}' example: '{"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, "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": false, + false, "c9s_tweet_anatomy_moderator_badge_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, "freedom_of_speech_not_reach_fetch_enabled": true, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": - true, "longform_notetweets_rich_text_read_enabled": true, "longform_notetweets_inline_media_enabled": - true, "responsive_web_media_download_video_enabled": false, "responsive_web_enhance_cards_enabled": - false}' + true, "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled": + true, "longform_notetweets_inline_media_enabled": true, "responsive_web_media_download_video_enabled": + false, "responsive_web_enhance_cards_enabled": false}' type: string responses: '200': @@ -3890,8 +4717,8 @@ paths: name: pathQueryId required: true schema: - default: fKbuCe1XHAqSM99T6q-MOg - example: fKbuCe1XHAqSM99T6q-MOg + default: IjTuxEFmAb6DvzycVz4fHg + example: IjTuxEFmAb6DvzycVz4fHg type: string - in: query name: variables @@ -3909,27 +4736,27 @@ paths: default: '{"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, "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": false, + false, "c9s_tweet_anatomy_moderator_badge_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, "freedom_of_speech_not_reach_fetch_enabled": true, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": - true, "longform_notetweets_rich_text_read_enabled": true, "longform_notetweets_inline_media_enabled": - true, "responsive_web_media_download_video_enabled": false, "responsive_web_enhance_cards_enabled": - false}' + true, "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled": + true, "longform_notetweets_inline_media_enabled": true, "responsive_web_media_download_video_enabled": + false, "responsive_web_enhance_cards_enabled": false}' example: '{"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, "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": false, + false, "c9s_tweet_anatomy_moderator_badge_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, "freedom_of_speech_not_reach_fetch_enabled": true, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": - true, "longform_notetweets_rich_text_read_enabled": true, "longform_notetweets_inline_media_enabled": - true, "responsive_web_media_download_video_enabled": false, "responsive_web_enhance_cards_enabled": - false}' + true, "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled": + true, "longform_notetweets_inline_media_enabled": true, "responsive_web_media_download_video_enabled": + false, "responsive_web_enhance_cards_enabled": false}' type: string responses: '200': @@ -3976,19 +4803,19 @@ paths: name: pathQueryId required: true schema: - default: vd1SSLv05a4lAc9-ml4kpA - example: vd1SSLv05a4lAc9-ml4kpA + default: AmMFotx7L4P3QnyOM3bCRA + example: AmMFotx7L4P3QnyOM3bCRA type: string - in: query name: variables required: true schema: default: '{"count": 20, "includePromotedContent": true, "latestControlAvailable": - true, "requestContext": "launch", "seenTweetIds": ["1349129669258448897"], - "withCommunity": true}' + true, "requestContext": "launch", "withCommunity": true, "seenTweetIds": + ["1349129669258448897"]}' example: '{"count": 20, "includePromotedContent": true, "latestControlAvailable": - true, "requestContext": "launch", "seenTweetIds": ["1349129669258448897"], - "withCommunity": true}' + true, "requestContext": "launch", "withCommunity": true, "seenTweetIds": + ["1349129669258448897"]}' type: string - in: query name: features @@ -3997,27 +4824,27 @@ paths: default: '{"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, "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": false, + false, "c9s_tweet_anatomy_moderator_badge_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, "freedom_of_speech_not_reach_fetch_enabled": true, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": - true, "longform_notetweets_rich_text_read_enabled": true, "longform_notetweets_inline_media_enabled": - true, "responsive_web_media_download_video_enabled": false, "responsive_web_enhance_cards_enabled": - false}' + true, "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled": + true, "longform_notetweets_inline_media_enabled": true, "responsive_web_media_download_video_enabled": + false, "responsive_web_enhance_cards_enabled": false}' example: '{"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, "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": false, + false, "c9s_tweet_anatomy_moderator_badge_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, "freedom_of_speech_not_reach_fetch_enabled": true, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": - true, "longform_notetweets_rich_text_read_enabled": true, "longform_notetweets_inline_media_enabled": - true, "responsive_web_media_download_video_enabled": false, "responsive_web_enhance_cards_enabled": - false}' + true, "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled": + true, "longform_notetweets_inline_media_enabled": true, "responsive_web_media_download_video_enabled": + false, "responsive_web_enhance_cards_enabled": false}' type: string responses: '200': @@ -4064,8 +4891,8 @@ paths: name: pathQueryId required: true schema: - default: lVf2NuhLoYVrpN4nO7uw0Q - example: lVf2NuhLoYVrpN4nO7uw0Q + default: 9s8V6sUI8fZLDiN-REkAxA + example: 9s8V6sUI8fZLDiN-REkAxA type: string - in: query name: variables @@ -4085,27 +4912,27 @@ paths: default: '{"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, "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": false, + false, "c9s_tweet_anatomy_moderator_badge_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, "freedom_of_speech_not_reach_fetch_enabled": true, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": - true, "longform_notetweets_rich_text_read_enabled": true, "longform_notetweets_inline_media_enabled": - true, "responsive_web_media_download_video_enabled": false, "responsive_web_enhance_cards_enabled": - false}' + true, "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled": + true, "longform_notetweets_inline_media_enabled": true, "responsive_web_media_download_video_enabled": + false, "responsive_web_enhance_cards_enabled": false}' example: '{"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, "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": false, + false, "c9s_tweet_anatomy_moderator_badge_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, "freedom_of_speech_not_reach_fetch_enabled": true, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": - true, "longform_notetweets_rich_text_read_enabled": true, "longform_notetweets_inline_media_enabled": - true, "responsive_web_media_download_video_enabled": false, "responsive_web_enhance_cards_enabled": - false}' + true, "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled": + true, "longform_notetweets_inline_media_enabled": true, "responsive_web_media_download_video_enabled": + false, "responsive_web_enhance_cards_enabled": false}' type: string responses: '200': @@ -4152,8 +4979,8 @@ paths: name: pathQueryId required: true schema: - default: qHgwF5h2HLowIJ6dHmAP_A - example: qHgwF5h2HLowIJ6dHmAP_A + default: HjsWc-nwwHKYwHenbHm-tw + example: HjsWc-nwwHKYwHenbHm-tw type: string - in: query name: variables @@ -4169,27 +4996,27 @@ paths: default: '{"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, "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": false, + false, "c9s_tweet_anatomy_moderator_badge_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, "freedom_of_speech_not_reach_fetch_enabled": true, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": - true, "longform_notetweets_rich_text_read_enabled": true, "longform_notetweets_inline_media_enabled": - true, "responsive_web_media_download_video_enabled": false, "responsive_web_enhance_cards_enabled": - false}' + true, "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled": + true, "longform_notetweets_inline_media_enabled": true, "responsive_web_media_download_video_enabled": + false, "responsive_web_enhance_cards_enabled": false}' example: '{"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, "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": false, + false, "c9s_tweet_anatomy_moderator_badge_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, "freedom_of_speech_not_reach_fetch_enabled": true, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": - true, "longform_notetweets_rich_text_read_enabled": true, "longform_notetweets_inline_media_enabled": - true, "responsive_web_media_download_video_enabled": false, "responsive_web_enhance_cards_enabled": - false}' + true, "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled": + true, "longform_notetweets_inline_media_enabled": true, "responsive_web_media_download_video_enabled": + false, "responsive_web_enhance_cards_enabled": false}' type: string responses: '200': @@ -4236,8 +5063,8 @@ paths: name: pathQueryId required: true schema: - default: _pnlqeTOtnpbIL9o-fS_pg - example: _pnlqeTOtnpbIL9o-fS_pg + default: X-Sw7rvhcUhof35mh5ObKw + example: X-Sw7rvhcUhof35mh5ObKw type: string - in: query name: variables @@ -4296,8 +5123,8 @@ paths: name: pathQueryId required: true schema: - default: 9jBdme5U626ATWp01dvgrA - example: 9jBdme5U626ATWp01dvgrA + default: X-XEqG5qHQSAwmvy00xfyQ + example: X-XEqG5qHQSAwmvy00xfyQ type: string - in: query name: variables @@ -4315,27 +5142,27 @@ paths: default: '{"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, "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": false, + false, "c9s_tweet_anatomy_moderator_badge_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, "freedom_of_speech_not_reach_fetch_enabled": true, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": - true, "longform_notetweets_rich_text_read_enabled": true, "longform_notetweets_inline_media_enabled": - true, "responsive_web_media_download_video_enabled": false, "responsive_web_enhance_cards_enabled": - false}' + true, "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled": + true, "longform_notetweets_inline_media_enabled": true, "responsive_web_media_download_video_enabled": + false, "responsive_web_enhance_cards_enabled": false}' example: '{"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, "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": false, + false, "c9s_tweet_anatomy_moderator_badge_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, "freedom_of_speech_not_reach_fetch_enabled": true, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": - true, "longform_notetweets_rich_text_read_enabled": true, "longform_notetweets_inline_media_enabled": - true, "responsive_web_media_download_video_enabled": false, "responsive_web_enhance_cards_enabled": - false}' + true, "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled": + true, "longform_notetweets_inline_media_enabled": true, "responsive_web_media_download_video_enabled": + false, "responsive_web_enhance_cards_enabled": false}' type: string responses: '200': @@ -4382,8 +5209,8 @@ paths: name: pathQueryId required: true schema: - default: 3Ej-6N7xXONuEp5eJa1TdQ - example: 3Ej-6N7xXONuEp5eJa1TdQ + default: fZK7JipRHWtiZsTodhsTfQ + example: fZK7JipRHWtiZsTodhsTfQ type: string - in: query name: variables @@ -4401,27 +5228,27 @@ paths: default: '{"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, "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": false, + false, "c9s_tweet_anatomy_moderator_badge_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, "freedom_of_speech_not_reach_fetch_enabled": true, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": - true, "longform_notetweets_rich_text_read_enabled": true, "longform_notetweets_inline_media_enabled": - true, "responsive_web_media_download_video_enabled": false, "responsive_web_enhance_cards_enabled": - false}' + true, "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled": + true, "longform_notetweets_inline_media_enabled": true, "responsive_web_media_download_video_enabled": + false, "responsive_web_enhance_cards_enabled": false}' example: '{"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, "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": false, + false, "c9s_tweet_anatomy_moderator_badge_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, "freedom_of_speech_not_reach_fetch_enabled": true, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": - true, "longform_notetweets_rich_text_read_enabled": true, "longform_notetweets_inline_media_enabled": - true, "responsive_web_media_download_video_enabled": false, "responsive_web_enhance_cards_enabled": - false}' + true, "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled": + true, "longform_notetweets_inline_media_enabled": true, "responsive_web_media_download_video_enabled": + false, "responsive_web_enhance_cards_enabled": false}' type: string responses: '200': @@ -4468,18 +5295,18 @@ paths: name: pathQueryId required: true schema: - default: xOhkmRac04YFZmOzU9PJHg - example: xOhkmRac04YFZmOzU9PJHg + default: B9_KmbkLhXt6jRwGjJrweg + example: B9_KmbkLhXt6jRwGjJrweg type: string - in: query name: variables required: true schema: - default: '{"focalTweetId": "1349129669258448897", "with_rux_injections": + default: '{"focalTweetId": "1349129669258448897", "referrer": "home", "with_rux_injections": false, "includePromotedContent": true, "withCommunity": true, "withQuickPromoteEligibilityTweetFields": true, "withBirdwatchNotes": true, "withVoice": true, "withV2Timeline": true}' - example: '{"focalTweetId": "1349129669258448897", "with_rux_injections": + example: '{"focalTweetId": "1349129669258448897", "referrer": "home", "with_rux_injections": false, "includePromotedContent": true, "withCommunity": true, "withQuickPromoteEligibilityTweetFields": true, "withBirdwatchNotes": true, "withVoice": true, "withV2Timeline": true}' @@ -4491,27 +5318,27 @@ paths: default: '{"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, "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": false, + false, "c9s_tweet_anatomy_moderator_badge_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, "freedom_of_speech_not_reach_fetch_enabled": true, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": - true, "longform_notetweets_rich_text_read_enabled": true, "longform_notetweets_inline_media_enabled": - true, "responsive_web_media_download_video_enabled": false, "responsive_web_enhance_cards_enabled": - false}' + true, "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled": + true, "longform_notetweets_inline_media_enabled": true, "responsive_web_media_download_video_enabled": + false, "responsive_web_enhance_cards_enabled": false}' example: '{"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, "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": false, + false, "c9s_tweet_anatomy_moderator_badge_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, "freedom_of_speech_not_reach_fetch_enabled": true, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": - true, "longform_notetweets_rich_text_read_enabled": true, "longform_notetweets_inline_media_enabled": - true, "responsive_web_media_download_video_enabled": false, "responsive_web_enhance_cards_enabled": - false}' + true, "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled": + true, "longform_notetweets_inline_media_enabled": true, "responsive_web_media_download_video_enabled": + false, "responsive_web_enhance_cards_enabled": false}' type: string - in: query name: fieldToggles @@ -4565,8 +5392,8 @@ paths: name: pathQueryId required: true schema: - default: DJS3BdhUhcaEpZ7B7irJDg - example: DJS3BdhUhcaEpZ7B7irJDg + default: MWY3AO9_I3rcP_L2A4FR4A + example: MWY3AO9_I3rcP_L2A4FR4A type: string - in: query name: variables @@ -4581,26 +5408,30 @@ paths: name: features required: true schema: - default: '{"creator_subscriptions_tweet_preview_api_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": false, + default: '{"creator_subscriptions_tweet_preview_api_enabled": true, "c9s_tweet_anatomy_moderator_badge_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, "freedom_of_speech_not_reach_fetch_enabled": true, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": - true, "longform_notetweets_rich_text_read_enabled": true, "longform_notetweets_inline_media_enabled": - true, "responsive_web_graphql_exclude_directive_enabled": true, "verified_phone_label_enabled": - false, "responsive_web_media_download_video_enabled": false, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": + true, "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled": + true, "longform_notetweets_inline_media_enabled": true, "responsive_web_graphql_exclude_directive_enabled": + true, "verified_phone_label_enabled": false, "responsive_web_media_download_video_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, "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": false, + example: '{"creator_subscriptions_tweet_preview_api_enabled": true, "c9s_tweet_anatomy_moderator_badge_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, "freedom_of_speech_not_reach_fetch_enabled": true, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": - true, "longform_notetweets_rich_text_read_enabled": true, "longform_notetweets_inline_media_enabled": - true, "responsive_web_graphql_exclude_directive_enabled": true, "verified_phone_label_enabled": - false, "responsive_web_media_download_video_enabled": false, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": + true, "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled": + true, "longform_notetweets_inline_media_enabled": true, "responsive_web_graphql_exclude_directive_enabled": + true, "verified_phone_label_enabled": false, "responsive_web_media_download_video_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 @@ -4723,8 +5554,8 @@ paths: name: pathQueryId required: true schema: - default: QdS5LJDl99iL_KUzckdfNQ - example: QdS5LJDl99iL_KUzckdfNQ + default: tD8zKvQzwY3kdx5yz6YmOw + example: tD8zKvQzwY3kdx5yz6YmOw type: string - in: query name: variables @@ -4739,13 +5570,13 @@ paths: schema: default: '{"hidden_profile_likes_enabled": true, "hidden_profile_subscriptions_enabled": true, "responsive_web_graphql_exclude_directive_enabled": true, "verified_phone_label_enabled": - false, "highlights_tweets_tab_ui_enabled": true, "creator_subscriptions_tweet_preview_api_enabled": - true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": + false, "highlights_tweets_tab_ui_enabled": true, "responsive_web_twitter_article_notes_tab_enabled": + true, "creator_subscriptions_tweet_preview_api_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": false, "responsive_web_graphql_timeline_navigation_enabled": true}' example: '{"hidden_profile_likes_enabled": true, "hidden_profile_subscriptions_enabled": true, "responsive_web_graphql_exclude_directive_enabled": true, "verified_phone_label_enabled": - false, "highlights_tweets_tab_ui_enabled": true, "creator_subscriptions_tweet_preview_api_enabled": - true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": + false, "highlights_tweets_tab_ui_enabled": true, "responsive_web_twitter_article_notes_tab_enabled": + true, "creator_subscriptions_tweet_preview_api_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": false, "responsive_web_graphql_timeline_navigation_enabled": true}' type: string responses: @@ -4793,8 +5624,8 @@ paths: name: pathQueryId required: true schema: - default: G3KGOASz96M-Qu0nwmGXNg - example: G3KGOASz96M-Qu0nwmGXNg + default: k5XapwcSikNsEsILW5FvgA + example: k5XapwcSikNsEsILW5FvgA type: string - in: query name: variables @@ -4811,15 +5642,15 @@ paths: true, "responsive_web_graphql_exclude_directive_enabled": true, "verified_phone_label_enabled": false, "subscriptions_verification_info_is_identity_verified_enabled": true, "subscriptions_verification_info_verified_since_enabled": true, - "highlights_tweets_tab_ui_enabled": true, "creator_subscriptions_tweet_preview_api_enabled": - true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": + "highlights_tweets_tab_ui_enabled": true, "responsive_web_twitter_article_notes_tab_enabled": + true, "creator_subscriptions_tweet_preview_api_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": false, "responsive_web_graphql_timeline_navigation_enabled": true}' example: '{"hidden_profile_likes_enabled": true, "hidden_profile_subscriptions_enabled": true, "responsive_web_graphql_exclude_directive_enabled": true, "verified_phone_label_enabled": false, "subscriptions_verification_info_is_identity_verified_enabled": true, "subscriptions_verification_info_verified_since_enabled": true, - "highlights_tweets_tab_ui_enabled": true, "creator_subscriptions_tweet_preview_api_enabled": - true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": + "highlights_tweets_tab_ui_enabled": true, "responsive_web_twitter_article_notes_tab_enabled": + true, "creator_subscriptions_tweet_preview_api_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": false, "responsive_web_graphql_timeline_navigation_enabled": true}' type: string - in: query @@ -4874,8 +5705,8 @@ paths: name: pathQueryId required: true schema: - default: KTtT5_kU8yor3I3UI4G5Vw - example: KTtT5_kU8yor3I3UI4G5Vw + default: ZRU-YBvpJ5c-SOS-nb_Lhg + example: ZRU-YBvpJ5c-SOS-nb_Lhg type: string - in: query name: variables @@ -4893,27 +5724,27 @@ paths: default: '{"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, "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": false, + false, "c9s_tweet_anatomy_moderator_badge_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, "freedom_of_speech_not_reach_fetch_enabled": true, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": - true, "longform_notetweets_rich_text_read_enabled": true, "longform_notetweets_inline_media_enabled": - true, "responsive_web_media_download_video_enabled": false, "responsive_web_enhance_cards_enabled": - false}' + true, "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled": + true, "longform_notetweets_inline_media_enabled": true, "responsive_web_media_download_video_enabled": + false, "responsive_web_enhance_cards_enabled": false}' example: '{"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, "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": false, + false, "c9s_tweet_anatomy_moderator_badge_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, "freedom_of_speech_not_reach_fetch_enabled": true, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": - true, "longform_notetweets_rich_text_read_enabled": true, "longform_notetweets_inline_media_enabled": - true, "responsive_web_media_download_video_enabled": false, "responsive_web_enhance_cards_enabled": - false}' + true, "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled": + true, "longform_notetweets_inline_media_enabled": true, "responsive_web_media_download_video_enabled": + false, "responsive_web_enhance_cards_enabled": false}' type: string responses: '200': @@ -4960,8 +5791,8 @@ paths: name: pathQueryId required: true schema: - default: Le6KlbilFmSu-5VltFND-Q - example: Le6KlbilFmSu-5VltFND-Q + default: tO4LMUYAZbR4T0SqQ85aAw + example: tO4LMUYAZbR4T0SqQ85aAw type: string - in: query name: variables @@ -4981,27 +5812,27 @@ paths: default: '{"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, "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": false, + false, "c9s_tweet_anatomy_moderator_badge_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, "freedom_of_speech_not_reach_fetch_enabled": true, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": - true, "longform_notetweets_rich_text_read_enabled": true, "longform_notetweets_inline_media_enabled": - true, "responsive_web_media_download_video_enabled": false, "responsive_web_enhance_cards_enabled": - false}' + true, "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled": + true, "longform_notetweets_inline_media_enabled": true, "responsive_web_media_download_video_enabled": + false, "responsive_web_enhance_cards_enabled": false}' example: '{"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, "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": false, + false, "c9s_tweet_anatomy_moderator_badge_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, "freedom_of_speech_not_reach_fetch_enabled": true, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": - true, "longform_notetweets_rich_text_read_enabled": true, "longform_notetweets_inline_media_enabled": - true, "responsive_web_media_download_video_enabled": false, "responsive_web_enhance_cards_enabled": - false}' + true, "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled": + true, "longform_notetweets_inline_media_enabled": true, "responsive_web_media_download_video_enabled": + false, "responsive_web_enhance_cards_enabled": false}' type: string responses: '200': @@ -5048,8 +5879,8 @@ paths: name: pathQueryId required: true schema: - default: H8OOoI-5ZE4NxgRr8lfyWg - example: H8OOoI-5ZE4NxgRr8lfyWg + default: 5ICa5d9-AitXZrIA3H-4MQ + example: 5ICa5d9-AitXZrIA3H-4MQ type: string - in: query name: variables @@ -5069,27 +5900,27 @@ paths: default: '{"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, "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": false, + false, "c9s_tweet_anatomy_moderator_badge_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, "freedom_of_speech_not_reach_fetch_enabled": true, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": - true, "longform_notetweets_rich_text_read_enabled": true, "longform_notetweets_inline_media_enabled": - true, "responsive_web_media_download_video_enabled": false, "responsive_web_enhance_cards_enabled": - false}' + true, "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled": + true, "longform_notetweets_inline_media_enabled": true, "responsive_web_media_download_video_enabled": + false, "responsive_web_enhance_cards_enabled": false}' example: '{"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, "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": false, + false, "c9s_tweet_anatomy_moderator_badge_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, "freedom_of_speech_not_reach_fetch_enabled": true, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": - true, "longform_notetweets_rich_text_read_enabled": true, "longform_notetweets_inline_media_enabled": - true, "responsive_web_media_download_video_enabled": false, "responsive_web_enhance_cards_enabled": - false}' + true, "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled": + true, "longform_notetweets_inline_media_enabled": true, "responsive_web_media_download_video_enabled": + false, "responsive_web_enhance_cards_enabled": false}' type: string responses: '200': @@ -5136,8 +5967,8 @@ paths: name: pathQueryId required: true schema: - default: Q6aAvPw7azXZbqXzuqTALA - example: Q6aAvPw7azXZbqXzuqTALA + default: UtLStR_BnYUGD7Q453UXQg + example: UtLStR_BnYUGD7Q453UXQg type: string - in: query name: variables @@ -5155,27 +5986,27 @@ paths: default: '{"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, "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": false, + false, "c9s_tweet_anatomy_moderator_badge_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, "freedom_of_speech_not_reach_fetch_enabled": true, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": - true, "longform_notetweets_rich_text_read_enabled": true, "longform_notetweets_inline_media_enabled": - true, "responsive_web_media_download_video_enabled": false, "responsive_web_enhance_cards_enabled": - false}' + true, "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled": + true, "longform_notetweets_inline_media_enabled": true, "responsive_web_media_download_video_enabled": + false, "responsive_web_enhance_cards_enabled": false}' example: '{"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, "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": false, + false, "c9s_tweet_anatomy_moderator_badge_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, "freedom_of_speech_not_reach_fetch_enabled": true, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": - true, "longform_notetweets_rich_text_read_enabled": true, "longform_notetweets_inline_media_enabled": - true, "responsive_web_media_download_video_enabled": false, "responsive_web_enhance_cards_enabled": - false}' + true, "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled": + true, "longform_notetweets_inline_media_enabled": true, "responsive_web_media_download_video_enabled": + false, "responsive_web_enhance_cards_enabled": false}' type: string responses: '200': @@ -5222,8 +6053,8 @@ paths: name: pathQueryId required: true schema: - default: GD4q8bBE2i6cqWw2iT74Gg - example: GD4q8bBE2i6cqWw2iT74Gg + default: itEhGywpgX9b3GJCzOtSrA + example: itEhGywpgX9b3GJCzOtSrA type: string - in: query name: variables diff --git a/dist/docs/openapi-3.0.yaml b/dist/docs/openapi-3.0.yaml index a22636c..8f8ecd0 100644 --- a/dist/docs/openapi-3.0.yaml +++ b/dist/docs/openapi-3.0.yaml @@ -2,10 +2,45 @@ components: schemas: AdditionalMediaInfo: properties: + call_to_actions: + $ref: '#/components/schemas/AdditionalMediaInfoCallToActions' + description: + type: string + embeddable: + type: boolean monetizable: type: boolean + source_user: + $ref: '#/components/schemas/UserResultCore' + title: + type: string required: - monetizable + AdditionalMediaInfoCallToActions: + properties: + visit_site: + $ref: '#/components/schemas/AdditionalMediaInfoCallToActionsVisitSite' + required: + - visit_site + AdditionalMediaInfoCallToActionsVisitSite: + properties: + url: + format: uri + type: string + required: + - url + AuthorCommunityRelationship: + properties: + community_results: + $ref: '#/components/schemas/Community' + role: + enum: + - Member + type: string + user_results: + $ref: '#/components/schemas/UserResults' + required: + - community_results BirdwatchEntity: properties: fromIndex: @@ -37,6 +72,8 @@ components: - urlType BirdwatchPivot: properties: + callToAction: + $ref: '#/components/schemas/BirdwatchPivotCallToAction' destinationUrl: format: uri type: string @@ -66,6 +103,19 @@ components: - title - shorttitle - iconType + BirdwatchPivotCallToAction: + properties: + destinationUrl: + format: uri + type: string + prompt: + type: string + title: + type: string + required: + - prompt + - title + - destinationUrl BirdwatchPivotFooter: properties: entities: @@ -136,6 +186,201 @@ components: required: - create type: object + Community: + properties: + result: + $ref: '#/components/schemas/CommunityData' + required: + - result + CommunityActions: + properties: + delete_action_result: + $ref: '#/components/schemas/CommunityDeleteActionResult' + join_action_result: + $ref: '#/components/schemas/CommunityJoinActionResult' + leave_action_result: + $ref: '#/components/schemas/CommunityLeaveActionResult' + pin_action_result: + $ref: '#/components/schemas/CommunityPinActionResult' + required: + - delete_action_result + - join_action_result + - leave_action_result + - pin_action_result + CommunityData: + properties: + __typename: + $ref: '#/components/schemas/TypeName' + actions: + $ref: '#/components/schemas/CommunityActions' + admin_results: + $ref: '#/components/schemas/UserResults' + created_at: + type: integer + creator_results: + $ref: '#/components/schemas/UserResults' + custom_banner_media: + additionalProperties: true + type: object + default_banner_media: + additionalProperties: true + type: object + description: + type: string + id_str: + pattern: ^[0-9]+$ + type: string + invites_policy: + enum: + - MemberInvitesAllowed + type: string + invites_result: + $ref: '#/components/schemas/CommunityInvitesResult' + is_pinned: + type: boolean + join_policy: + enum: + - Open + type: string + join_requests_result: + $ref: '#/components/schemas/CommunityJoinRequestsResult' + member_count: + type: integer + members_facepile_results: + items: + $ref: '#/components/schemas/UserResults' + type: array + moderator_count: + type: integer + name: + type: string + primary_community_topic: + $ref: '#/components/schemas/PrimaryCommunityTopic' + question: + type: string + role: + enum: + - NonMember + type: string + rules: + items: + $ref: '#/components/schemas/CommunityRule' + type: array + search_tags: + items: + type: string + type: array + show_only_users_to_display: + items: + type: string + type: array + urls: + $ref: '#/components/schemas/CommunityUrls' + viewer_relationship: + additionalProperties: true + type: object + required: + - __typename + - id_str + - name + - description + - question + - search_tags + - primary_community_topic + - actions + - admin_results + - creator_results + - invites_result + - join_policy + - invites_policy + - is_pinned + - members_facepile_results + - moderator_count + - member_count + - role + - rules + CommunityDeleteActionResult: + properties: + __typename: + $ref: '#/components/schemas/TypeName' + reason: + enum: + - Unavailable + type: string + required: + - __typename + - reason + CommunityInvitesResult: + properties: + __typename: + $ref: '#/components/schemas/TypeName' + message: + type: string + reason: + enum: + - Unavailable + type: string + required: + - __typename + - reason + - message + CommunityJoinActionResult: + properties: + __typename: + $ref: '#/components/schemas/TypeName' + required: + - __typename + CommunityJoinRequestsResult: + properties: + __typename: + $ref: '#/components/schemas/TypeName' + required: + - __typename + CommunityLeaveActionResult: + properties: + __typename: + $ref: '#/components/schemas/TypeName' + message: + type: string + reason: + enum: + - ViewerNotMember + type: string + required: + - __typename + - reason + - message + CommunityPinActionResult: + properties: + __typename: + $ref: '#/components/schemas/TypeName' + required: + - __typename + CommunityRule: + properties: + description: + type: string + name: + type: string + rest_id: + pattern: ^[0-9]+$ + type: string + required: + - rest_id + - name + CommunityUrls: + properties: + permalink: + $ref: '#/components/schemas/CommunityUrlsPermalink' + required: + - permalink + CommunityUrlsPermalink: + properties: + url: + format: uri + type: string + required: + - url ContentEntryType: enum: - TimelineTimelineItem @@ -291,6 +536,13 @@ components: type: object required: - tweet_results + DisplayTreatment: + properties: + actionText: + type: string + required: + - actionText + type: object Entities: properties: hashtags: @@ -395,6 +647,15 @@ components: required: - errors type: object + ExtMediaAvailability: + properties: + reason: + type: string + status: + enum: + - Available + - Unavailable + type: string ExtendedEntities: properties: media: @@ -434,6 +695,14 @@ components: $ref: '#/components/schemas/FavoriteTweet' required: - data + FeedbackInfo: + properties: + feedbackKeys: + items: + type: string + type: array + required: + - feedbackType FollowResponse: properties: data: @@ -470,6 +739,15 @@ components: Hashtag: additionalProperties: true type: object + Highlight: + properties: + textHighlights: + items: + $ref: '#/components/schemas/TextHighlight' + type: array + required: + - textHighlights + type: object HomeTimelineHome: properties: home_timeline_urt: @@ -571,12 +849,19 @@ components: type: object Media: properties: + additional_media_info: + additionalProperties: true + type: object display_url: format: uri type: string expanded_url: format: uri type: string + ext_alt_text: + type: string + ext_media_availability: + $ref: '#/components/schemas/ExtMediaAvailability' features: type: object id_str: @@ -586,6 +871,8 @@ components: items: type: integer type: array + media_key: + type: string media_url_https: format: uri type: string @@ -593,6 +880,12 @@ components: $ref: '#/components/schemas/MediaOriginalInfo' sizes: $ref: '#/components/schemas/MediaSizes' + source_status_id_str: + pattern: ^[0-9]+$ + type: string + source_user_id_str: + pattern: ^[0-9]+$ + type: string type: enum: - photo @@ -602,6 +895,9 @@ components: url: format: uri type: string + video_info: + additionalProperties: true + type: object required: - display_url - expanded_url @@ -612,6 +908,8 @@ components: - url - sizes - original_info + - media_key + - ext_media_availability MediaExtended: properties: additional_media_info: @@ -622,8 +920,10 @@ components: expanded_url: format: uri type: string + ext_alt_text: + type: string ext_media_availability: - $ref: '#/components/schemas/extMediaAvailability' + $ref: '#/components/schemas/ExtMediaAvailability' features: type: object id_str: @@ -634,7 +934,7 @@ components: type: integer type: array mediaStats: - $ref: '#/components/schemas/mediaStats' + $ref: '#/components/schemas/MediaStats' media_key: type: string media_url_https: @@ -644,6 +944,12 @@ components: $ref: '#/components/schemas/MediaOriginalInfo' sizes: $ref: '#/components/schemas/MediaSizes' + source_status_id_str: + pattern: ^[0-9]+$ + type: string + source_user_id_str: + pattern: ^[0-9]+$ + type: string type: enum: - photo @@ -725,6 +1031,12 @@ components: - medium - small - thumb + MediaStats: + properties: + viewCount: + type: integer + required: + - viewCount MediaVideoInfo: properties: aspect_ratio: @@ -857,6 +1169,16 @@ components: Session: $ref: '#/components/schemas/Session' type: object + PrimaryCommunityTopic: + properties: + topic_id: + pattern: ^[0-9]+$ + type: string + topic_name: + type: string + required: + - topic_id + - topic_name ProfileResponse: properties: data: @@ -869,6 +1191,37 @@ components: $ref: '#/components/schemas/UserResultByScreenName' required: - user_result_by_screen_name + QuotedRefResult: + properties: + result: + $ref: '#/components/schemas/QuotedRefResultData' + required: + - result + QuotedRefResultData: + properties: + __typename: + $ref: '#/components/schemas/TypeName' + rest_id: + pattern: ^[0-9]+$ + type: string + required: + - __typename + - rest_id + QuotedStatusPermalink: + properties: + display: + format: uri + type: string + expanded: + format: uri + type: string + url: + format: uri + type: string + required: + - url + - expanded + - display Retweet: properties: legacy: @@ -967,15 +1320,54 @@ components: - userFeatures - isSuperFollowSubscriber type: object - SocialContext: + SocialContextLandingUrl: properties: - contextType: + url: + format: uri type: string - text: - type: string - type: + urlType: + enum: + - DeepLink + - UrtEndpoint type: string + urtEndpointOptions: + $ref: '#/components/schemas/UrtEndpointOptions' type: object + SocialContextUnion: + discriminator: + mapping": + TimelineGeneralContext: '#/components/schemas/TimelineGeneralContext' + TimelineTopicContext: '#/components/schemas/TimelineTopicContext' + propertyName: type + oneOf: + - $ref: '#/components/schemas/TimelineGeneralContext' + - $ref: '#/components/schemas/TimelineTopicContext' + SocialContextUnionType: + enum: + - TimelineGeneralContext + - TimelineTopicContext + type: string + SuperFollowsReplyUserResult: + properties: + result: + $ref: '#/components/schemas/SuperFollowsReplyUserResultData' + required: + - result + SuperFollowsReplyUserResultData: + properties: + __typename: + $ref: '#/components/schemas/TypeName' + legacy: + $ref: '#/components/schemas/SuperFollowsReplyUserResultLegacy' + required: + - __typename + - legacy + SuperFollowsReplyUserResultLegacy: + properties: + screen_name: + type: string + required: + - screen_name Symbol: additionalProperties: true type: object @@ -1019,6 +1411,16 @@ components: - type - url - urlType + TextHighlight: + properties: + endIndex: + type: integer + startIndex: + type: integer + required: + - startIndex + - endIndex + type: object Timeline: properties: instructions: @@ -1093,6 +1495,23 @@ components: type: string required: - type + TimelineGeneralContext: + properties: + contextType: + enum: + - Follow + - Pin + - Like + - Location + - Sparkle + type: string + landingUrl: + $ref: '#/components/schemas/SocialContextLandingUrl' + text: + type: string + type: + $ref: '#/components/schemas/SocialContextUnionType' + type: object TimelineHalfCover: properties: dismissible: @@ -1230,16 +1649,22 @@ components: $ref: '#/components/schemas/TypeName' cursorType: $ref: '#/components/schemas/CursorType' + displayTreatment: + $ref: '#/components/schemas/DisplayTreatment' entryType: $ref: '#/components/schemas/ContentEntryType' itemType: $ref: '#/components/schemas/ContentEntryType' + stopOnEmptyResponse: + default: false + type: boolean value: type: string required: - __typename - cursorType - value + - stopOnEmptyResponse TimelineTimelineItem: properties: __typename: @@ -1274,6 +1699,8 @@ components: type: string entryType: $ref: '#/components/schemas/ContentEntryType' + feedbackInfo: + $ref: '#/components/schemas/FeedbackInfo' footer: additionalProperties: true type: object @@ -1284,22 +1711,38 @@ components: items: $ref: '#/components/schemas/ModuleItem' type: array + metadata: + additionalProperties: true + type: object required: - __typename - entryType - displayType - clientEventInfo + TimelineTopicContext: + properties: + functionalityType: + enum: + - Basic + type: string + topic: + $ref: '#/components/schemas/TopicContext' + type: + $ref: '#/components/schemas/SocialContextUnionType' + type: object TimelineTweet: properties: - SocialContext: - $ref: '#/components/schemas/SocialContext' __typename: $ref: '#/components/schemas/TypeName' + highlights: + $ref: '#/components/schemas/Highlight' itemType: $ref: '#/components/schemas/ContentItemType' promotedMetadata: additionalProperties: true type: object + socialContext: + $ref: '#/components/schemas/SocialContextUnion' tweetDisplayType: type: string tweet_results: @@ -1311,12 +1754,12 @@ components: - tweet_results TimelineUser: properties: - SocialContext: - $ref: '#/components/schemas/SocialContext' __typename: $ref: '#/components/schemas/TypeName' itemType: $ref: '#/components/schemas/ContentItemType' + socialContext: + $ref: '#/components/schemas/SocialContextUnion' userDisplayType: enum: - User @@ -1328,7 +1771,6 @@ components: required: - __typename - itemType - - socialContext - userDisplayType - user_results TimelineV2: @@ -1337,6 +1779,24 @@ components: $ref: '#/components/schemas/Timeline' required: - timeline + TopicContext: + properties: + description: + type: string + following: + type: boolean + icon_url: + format: uri + type: string + id: + type: string + name: + type: string + not_interested: + type: boolean + topic_id: + type: string + type: object Tracing: properties: trace_id: @@ -1349,6 +1809,8 @@ components: properties: __typename: $ref: '#/components/schemas/TypeName' + author_community_relationship: + $ref: '#/components/schemas/AuthorCommunityRelationship' birdwatch_pivot: $ref: '#/components/schemas/BirdwatchPivot' card: @@ -1359,6 +1821,8 @@ components: $ref: '#/components/schemas/TweetEditControl' edit_prespective: $ref: '#/components/schemas/TweetEditPrespective' + has_birdwatch_notes: + type: boolean is_translatable: default: false type: boolean @@ -1366,8 +1830,12 @@ components: $ref: '#/components/schemas/TweetLegacy' note_tweet: $ref: '#/components/schemas/NoteTweet' + previous_counts: + $ref: '#/components/schemas/TweetPreviousCounts' quick_promote_eligibility: type: object + quotedRefResult: + $ref: '#/components/schemas/QuotedRefResult' quoted_status_result: $ref: '#/components/schemas/ItemResult' rest_id: @@ -1375,6 +1843,10 @@ components: type: string source: type: string + superFollowsReplyUserResult: + $ref: '#/components/schemas/SuperFollowsReplyUserResult' + unified_card: + $ref: '#/components/schemas/UnifiedCard' unmention_data: additionalProperties: true type: object @@ -1397,10 +1869,16 @@ components: items: $ref: '#/components/schemas/TweetCardLegacyBindingValue' type: array + card_platform: + $ref: '#/components/schemas/TweetCardPlatformData' name: type: string url: type: string + user_refs_results: + items: + $ref: '#/components/schemas/UserResults' + type: array required: - binding_values - name @@ -1418,14 +1896,69 @@ components: properties: boolean_value: type: boolean + image_color_value: + additionalProperties: true + type: object + image_value: + $ref: '#/components/schemas/TweetCardLegacyBindingValueDataImage' scribe_key: type: string string_value: type: string type: type: string + user_value: + $ref: '#/components/schemas/UserValue' required: - type + TweetCardLegacyBindingValueDataImage: + properties: + alt: + type: string + height: + type: integer + url: + format: uri + type: string + width: + type: integer + required: + - height + - width + - url + TweetCardPlatform: + properties: + audience: + $ref: '#/components/schemas/TweetCardPlatformAudience' + device: + $ref: '#/components/schemas/TweetCardPlatformDevice' + required: + - audience + - device + TweetCardPlatformAudience: + properties: + name: + enum: + - production + type: string + required: + - name + TweetCardPlatformData: + properties: + platform: + $ref: '#/components/schemas/TweetCardPlatform' + required: + - platform + TweetCardPlatformDevice: + properties: + name: + type: string + version: + pattern: ^[0-9]+$ + type: string + required: + - name + - version TweetDetailResponse: properties: data: @@ -1496,12 +2029,88 @@ components: $ref: '#/components/schemas/TimelineV2' required: - favoriters_timeline + TweetInterstitial: + properties: + __typename: + $ref: '#/components/schemas/TypeName' + displayType: + enum: + - NonCompliant + type: string + revealText: + $ref: '#/components/schemas/TweetInterstitialRevealText' + text: + $ref: '#/components/schemas/TweetInterstitialText' + required: + - __typename + - displayType + - text + - revealText + TweetInterstitialRevealText: + properties: + entities: + items: + $ref: '#/components/schemas/TweetInterstitialTextEntity' + type: array + rtl: + type: boolean + text: + type: string + required: + - rtl + - text + - entities + TweetInterstitialText: + properties: + entities: + items: + $ref: '#/components/schemas/TweetInterstitialTextEntity' + type: array + rtl: + type: boolean + text: + type: string + required: + - rtl + - text + - entities + TweetInterstitialTextEntity: + properties: + fromIndex: + type: integer + ref: + $ref: '#/components/schemas/TweetInterstitialTextEntityRef' + toIndex: + type: integer + required: + - fromIndex + - toIndex + - ref + TweetInterstitialTextEntityRef: + properties: + type: + enum: + - TimelineUrl + type: string + url: + format: uri + type: string + urlType: + enum: + - ExternalUrl + type: string + required: + - type + - url + - urlType TweetLegacy: properties: bookmark_count: type: integer bookmarked: type: boolean + conversation_control: + additionalProperties: true conversation_id_str: pattern: ^[0-9]+$ type: string @@ -1524,10 +2133,27 @@ components: id_str: pattern: ^[0-9]+$ type: string + in_reply_to_screen_name: + type: string + in_reply_to_status_id_str: + pattern: ^[0-9]+$ + type: string + in_reply_to_user_id_str: + pattern: ^[0-9]+$ + type: string is_quote_status: type: boolean lang: type: string + limited_actions: + enum: + - limited_replies + - community_tweet_non_member_public_community + - non_compliant + - dynamic_product_ad + type: string + place: + additionalProperties: true possibly_sensitive: default: false type: boolean @@ -1536,6 +2162,11 @@ components: type: boolean quote_count: type: integer + quoted_status_id_str: + pattern: ^[0-9]+$ + type: string + quoted_status_permalink: + $ref: '#/components/schemas/QuotedStatusPermalink' reply_count: type: integer retweet_count: @@ -1544,6 +2175,8 @@ components: type: boolean retweeted_status_result: $ref: '#/components/schemas/ItemResult' + scopes: + $ref: '#/components/schemas/TweetLegacyScopes' self_thread: $ref: '#/components/schemas/SelfThread' user_id_str: @@ -1567,6 +2200,30 @@ components: - retweeted - user_id_str - id_str + TweetLegacyScopes: + properties: + followers: + type: boolean + required: + - followers + TweetPreviousCounts: + properties: + bookmark_count: + type: integer + favorite_count: + type: integer + quote_count: + type: integer + reply_count: + type: integer + retweet_count: + type: integer + required: + - bookmark_count + - favorite_count + - quote_count + - reply_count + - retweet_count TweetResultByRestIdData: properties: tweetResult: @@ -1622,11 +2279,17 @@ components: properties: __typename: $ref: '#/components/schemas/TypeName' + limitedActionResults: + additionalProperties: true + type: object tweet: $ref: '#/components/schemas/Tweet' + tweetInterstitial: + $ref: '#/components/schemas/TweetInterstitial' required: - __typename - tweet + - limitedActionResults TwitterTimeFormat: example: Sat Dec 31 23:59:59 +0000 2023 pattern: '^(Sun|Mon|Tue|Wed|Thu|Fri|Sat) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) @@ -1640,6 +2303,7 @@ components: - TimelineUser - TimelineTimelineCursor - TweetWithVisibilityResults + - ContextualTweetInterstitial - TimelineTimelineModule - TweetTombstone - TimelinePrompt @@ -1649,6 +2313,13 @@ components: - Tweet - User - UserUnavailable + - Community + - CommunityDeleteActionUnavailable + - CommunityJoinAction + - CommunityLeaveActionUnavailable + - CommunityTweetPinActionUnavailable + - CommunityInvitesUnavailable + - CommunityJoinRequestsUnavailable type: string UnfavoriteTweet: properties: @@ -1662,6 +2333,14 @@ components: $ref: '#/components/schemas/UnfavoriteTweet' required: - data + UnifiedCard: + properties: + card_fetch_state: + enum: + - NoCard + type: string + required: + - card_fetch_state Url: properties: display_url: @@ -1682,6 +2361,28 @@ components: - expanded_url - display_url type: object + UrtEndpointOptions: + properties: + requestParams: + items: + $ref: '#/components/schemas/UrtEndpointRequestParams' + type: array + title: + type: string + required: + - title + - requestParams + type: object + UrtEndpointRequestParams: + properties: + key: + type: string + value: + type: string + required: + - key + - value + type: object User: properties: __typename: @@ -1692,19 +2393,33 @@ components: business_account: additionalProperties: true type: object + creator_subscriptions_count: + type: integer has_graduated_access: type: boolean has_nft_avatar: default: false type: boolean + highlights_info: + $ref: '#/components/schemas/UserHighlightsInfo' id: pattern: ^([A-Za-z0-9+/]{4})*([A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}==)?$ type: string is_blue_verified: default: false type: boolean + is_profile_translatable: + type: boolean legacy: $ref: '#/components/schemas/UserLegacy' + professional: + $ref: '#/components/schemas/UserProfessional' + profile_image_shape: + enum: + - Circle + - Square + - Hexagon + type: string rest_id: pattern: ^[0-9]+$ type: string @@ -1717,6 +2432,10 @@ components: super_following: default: false type: boolean + user_seed_tweet_count: + type: integer + verification_info: + $ref: '#/components/schemas/UserVerificationInfo' required: - __typename - affiliates_highlighted_label @@ -1727,6 +2446,7 @@ components: - super_follow_eligible - super_followed_by - super_following + - profile_image_shape UserFeatures: properties: mediatool_studio_library: @@ -1734,6 +2454,15 @@ components: required: - mediatool_studio_library type: object + UserHighlightsInfo: + properties: + can_highlight_tweets: + type: boolean + highlighted_tweets: + type: string + required: + - can_highlight_tweets + - highlighted_tweets UserHighlightsTweetsData: properties: user: @@ -1872,9 +2601,18 @@ components: type: string verified: type: boolean + verified_type: + enum: + - Business + - Government + type: string want_retweets: default: false type: boolean + withheld_in_countries: + items: + type: string + type: array required: - blocked_by - blocking @@ -1910,6 +2648,36 @@ components: UserMention: additionalProperties: true type: object + UserProfessional: + properties: + category: + items: + $ref: '#/components/schemas/UserProfessionalCategory' + type: array + professional_type: + enum: + - Business + - Creator + type: string + rest_id: + pattern: ^[0-9]+$ + type: string + required: + - rest_id + - professional_type + - category + UserProfessionalCategory: + properties: + icon_name: + type: string + id: + type: integer + name: + type: string + required: + - id + - name + - icon_name UserResponse: properties: data: @@ -2024,6 +2792,70 @@ components: oneOf: - $ref: '#/components/schemas/User' - $ref: '#/components/schemas/UserUnavailable' + UserValue: + properties: + id_str: + pattern: ^[0-9]+$ + type: string + required: + - id_str + UserVerificationInfo: + properties: + is_identity_verified: + default: false + type: boolean + reason: + $ref: '#/components/schemas/UserVerificationInfoReason' + required: + - is_identity_verified + UserVerificationInfoReason: + properties: + description: + $ref: '#/components/schemas/UserVerificationInfoReasonDescription' + override_verified_year: + type: integer + verified_since_msec: + pattern: ^-?[0-9]+$ + type: string + required: + - description + - verified_since_msec + - override_verified_year + UserVerificationInfoReasonDescription: + properties: + entities: + items: + $ref: '#/components/schemas/UserVerificationInfoReasonDescriptionEntities' + type: array + text: + type: string + required: + - text + - entities + UserVerificationInfoReasonDescriptionEntities: + properties: + from_index: + type: integer + ref: + $ref: '#/components/schemas/UserVerificationInfoReasonDescriptionEntitiesRef' + to_index: + type: integer + required: + - from_index + - to_index + - ref + UserVerificationInfoReasonDescriptionEntitiesRef: + properties: + url: + format: uri + type: string + url_type: + enum: + - ExternalUrl + type: string + required: + - url + - url_type UsersResponse: properties: data: @@ -2038,21 +2870,6 @@ components: type: array required: - users - extMediaAvailability: - properties: - reason: - type: string - status: - enum: - - Available - - Unavailable - type: string - mediaStats: - properties: - viewCount: - type: integer - required: - - viewCount securitySchemes: Accept: description: '*/*' @@ -2941,8 +3758,8 @@ paths: name: pathQueryId required: true schema: - default: j5KExFXtSWj8HjRui17ydA - example: j5KExFXtSWj8HjRui17ydA + default: cQxQgX8MJYjWwC0dxpyfYg + example: cQxQgX8MJYjWwC0dxpyfYg type: string - content: application/json: @@ -2967,6 +3784,10 @@ paths: application/json: schema: properties: + c9s_tweet_anatomy_moderator_badge_enabled: + default: true + example: true + type: boolean creator_subscriptions_tweet_preview_api_enabled: default: true example: true @@ -3020,8 +3841,12 @@ paths: example: false type: boolean responsive_web_twitter_article_tweet_consumption_enabled: - default: false - example: false + default: true + example: true + type: boolean + rweb_video_timestamps_enabled: + default: true + example: true type: boolean standardized_nudges_misinfo: default: true @@ -3054,6 +3879,7 @@ paths: - creator_subscriptions_tweet_preview_api_enabled - responsive_web_graphql_timeline_navigation_enabled - responsive_web_graphql_skip_user_profile_image_extensions_enabled + - c9s_tweet_anatomy_moderator_badge_enabled - tweetypie_unmention_optimization_enabled - responsive_web_edit_tweet_api_enabled - graphql_is_translatable_rweb_tweet_is_translatable_enabled @@ -3064,6 +3890,7 @@ paths: - freedom_of_speech_not_reach_fetch_enabled - standardized_nudges_misinfo - tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled + - rweb_video_timestamps_enabled - longform_notetweets_rich_text_read_enabled - longform_notetweets_inline_media_enabled - responsive_web_media_download_video_enabled @@ -3193,8 +4020,8 @@ paths: name: pathQueryId required: true schema: - default: PIZtQLRIYtSa9AtW_fI2Mw - example: PIZtQLRIYtSa9AtW_fI2Mw + default: 8ED1SMuUGkOZVBEjiYUTfw + example: 8ED1SMuUGkOZVBEjiYUTfw type: string requestBody: content: @@ -3203,6 +4030,10 @@ paths: properties: features: properties: + c9s_tweet_anatomy_moderator_badge_enabled: + default: true + example: true + type: boolean freedom_of_speech_not_reach_fetch_enabled: default: true example: true @@ -3248,8 +4079,12 @@ paths: example: false type: boolean responsive_web_twitter_article_tweet_consumption_enabled: - default: false - example: false + default: true + example: true + type: boolean + rweb_video_timestamps_enabled: + default: true + example: true type: boolean standardized_nudges_misinfo: default: true @@ -3276,6 +4111,7 @@ paths: example: true type: boolean required: + - c9s_tweet_anatomy_moderator_badge_enabled - tweetypie_unmention_optimization_enabled - responsive_web_edit_tweet_api_enabled - graphql_is_translatable_rweb_tweet_is_translatable_enabled @@ -3285,6 +4121,7 @@ paths: - tweet_awards_web_tipping_enabled - longform_notetweets_rich_text_read_enabled - longform_notetweets_inline_media_enabled + - rweb_video_timestamps_enabled - responsive_web_graphql_exclude_directive_enabled - verified_phone_label_enabled - freedom_of_speech_not_reach_fetch_enabled @@ -3296,8 +4133,8 @@ paths: - responsive_web_enhance_cards_enabled type: object queryId: - default: PIZtQLRIYtSa9AtW_fI2Mw - example: PIZtQLRIYtSa9AtW_fI2Mw + default: 8ED1SMuUGkOZVBEjiYUTfw + example: 8ED1SMuUGkOZVBEjiYUTfw type: string variables: properties: @@ -3638,8 +4475,8 @@ paths: name: pathQueryId required: true schema: - default: VIA2_af01oqZqBB6NvWi-Q - example: VIA2_af01oqZqBB6NvWi-Q + default: LLkw5EcVutJL6y-2gkz22A + example: LLkw5EcVutJL6y-2gkz22A type: string - content: application/json: @@ -3669,6 +4506,10 @@ paths: application/json: schema: properties: + c9s_tweet_anatomy_moderator_badge_enabled: + default: true + example: true + type: boolean creator_subscriptions_tweet_preview_api_enabled: default: true example: true @@ -3718,8 +4559,12 @@ paths: example: false type: boolean responsive_web_twitter_article_tweet_consumption_enabled: - default: false - example: false + default: true + example: true + type: boolean + rweb_video_timestamps_enabled: + default: true + example: true type: boolean standardized_nudges_misinfo: default: true @@ -3751,6 +4596,7 @@ paths: - creator_subscriptions_tweet_preview_api_enabled - responsive_web_graphql_timeline_navigation_enabled - responsive_web_graphql_skip_user_profile_image_extensions_enabled + - c9s_tweet_anatomy_moderator_badge_enabled - tweetypie_unmention_optimization_enabled - responsive_web_edit_tweet_api_enabled - graphql_is_translatable_rweb_tweet_is_translatable_enabled @@ -3761,6 +4607,7 @@ paths: - freedom_of_speech_not_reach_fetch_enabled - standardized_nudges_misinfo - tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled + - rweb_video_timestamps_enabled - longform_notetweets_rich_text_read_enabled - longform_notetweets_inline_media_enabled - responsive_web_media_download_video_enabled @@ -3814,8 +4661,8 @@ paths: name: pathQueryId required: true schema: - default: rRXFSG5vR6drKr5M37YOTw - example: rRXFSG5vR6drKr5M37YOTw + default: ZG1BQPaRSg04qo55kKaW2g + example: ZG1BQPaRSg04qo55kKaW2g type: string - content: application/json: @@ -3845,6 +4692,10 @@ paths: application/json: schema: properties: + c9s_tweet_anatomy_moderator_badge_enabled: + default: true + example: true + type: boolean creator_subscriptions_tweet_preview_api_enabled: default: true example: true @@ -3894,8 +4745,12 @@ paths: example: false type: boolean responsive_web_twitter_article_tweet_consumption_enabled: - default: false - example: false + default: true + example: true + type: boolean + rweb_video_timestamps_enabled: + default: true + example: true type: boolean standardized_nudges_misinfo: default: true @@ -3927,6 +4782,7 @@ paths: - creator_subscriptions_tweet_preview_api_enabled - responsive_web_graphql_timeline_navigation_enabled - responsive_web_graphql_skip_user_profile_image_extensions_enabled + - c9s_tweet_anatomy_moderator_badge_enabled - tweetypie_unmention_optimization_enabled - responsive_web_edit_tweet_api_enabled - graphql_is_translatable_rweb_tweet_is_translatable_enabled @@ -3937,6 +4793,7 @@ paths: - freedom_of_speech_not_reach_fetch_enabled - standardized_nudges_misinfo - tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled + - rweb_video_timestamps_enabled - longform_notetweets_rich_text_read_enabled - longform_notetweets_inline_media_enabled - responsive_web_media_download_video_enabled @@ -3990,8 +4847,8 @@ paths: name: pathQueryId required: true schema: - default: yqrUptVSP9DAkVLqpc0lsg - example: yqrUptVSP9DAkVLqpc0lsg + default: citX7s5IAb1C6AVCqUO68g + example: citX7s5IAb1C6AVCqUO68g type: string - content: application/json: @@ -4021,6 +4878,10 @@ paths: application/json: schema: properties: + c9s_tweet_anatomy_moderator_badge_enabled: + default: true + example: true + type: boolean creator_subscriptions_tweet_preview_api_enabled: default: true example: true @@ -4070,8 +4931,12 @@ paths: example: false type: boolean responsive_web_twitter_article_tweet_consumption_enabled: - default: false - example: false + default: true + example: true + type: boolean + rweb_video_timestamps_enabled: + default: true + example: true type: boolean standardized_nudges_misinfo: default: true @@ -4103,6 +4968,7 @@ paths: - creator_subscriptions_tweet_preview_api_enabled - responsive_web_graphql_timeline_navigation_enabled - responsive_web_graphql_skip_user_profile_image_extensions_enabled + - c9s_tweet_anatomy_moderator_badge_enabled - tweetypie_unmention_optimization_enabled - responsive_web_edit_tweet_api_enabled - graphql_is_translatable_rweb_tweet_is_translatable_enabled @@ -4113,6 +4979,7 @@ paths: - freedom_of_speech_not_reach_fetch_enabled - standardized_nudges_misinfo - tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled + - rweb_video_timestamps_enabled - longform_notetweets_rich_text_read_enabled - longform_notetweets_inline_media_enabled - responsive_web_media_download_video_enabled @@ -4166,8 +5033,8 @@ paths: name: pathQueryId required: true schema: - default: iSicc7LrzWGBgDPL0tM_TQ - example: iSicc7LrzWGBgDPL0tM_TQ + default: PAnE9toEjRfE-4tozRcsfw + example: PAnE9toEjRfE-4tozRcsfw type: string - content: application/json: @@ -4197,6 +5064,10 @@ paths: application/json: schema: properties: + c9s_tweet_anatomy_moderator_badge_enabled: + default: true + example: true + type: boolean creator_subscriptions_tweet_preview_api_enabled: default: true example: true @@ -4246,8 +5117,12 @@ paths: example: false type: boolean responsive_web_twitter_article_tweet_consumption_enabled: - default: false - example: false + default: true + example: true + type: boolean + rweb_video_timestamps_enabled: + default: true + example: true type: boolean standardized_nudges_misinfo: default: true @@ -4279,6 +5154,7 @@ paths: - creator_subscriptions_tweet_preview_api_enabled - responsive_web_graphql_timeline_navigation_enabled - responsive_web_graphql_skip_user_profile_image_extensions_enabled + - c9s_tweet_anatomy_moderator_badge_enabled - tweetypie_unmention_optimization_enabled - responsive_web_edit_tweet_api_enabled - graphql_is_translatable_rweb_tweet_is_translatable_enabled @@ -4289,6 +5165,7 @@ paths: - freedom_of_speech_not_reach_fetch_enabled - standardized_nudges_misinfo - tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled + - rweb_video_timestamps_enabled - longform_notetweets_rich_text_read_enabled - longform_notetweets_inline_media_enabled - responsive_web_media_download_video_enabled @@ -4342,8 +5219,8 @@ paths: name: pathQueryId required: true schema: - default: fKbuCe1XHAqSM99T6q-MOg - example: fKbuCe1XHAqSM99T6q-MOg + default: IjTuxEFmAb6DvzycVz4fHg + example: IjTuxEFmAb6DvzycVz4fHg type: string - content: application/json: @@ -4378,6 +5255,10 @@ paths: application/json: schema: properties: + c9s_tweet_anatomy_moderator_badge_enabled: + default: true + example: true + type: boolean creator_subscriptions_tweet_preview_api_enabled: default: true example: true @@ -4427,8 +5308,12 @@ paths: example: false type: boolean responsive_web_twitter_article_tweet_consumption_enabled: - default: false - example: false + default: true + example: true + type: boolean + rweb_video_timestamps_enabled: + default: true + example: true type: boolean standardized_nudges_misinfo: default: true @@ -4460,6 +5345,7 @@ paths: - creator_subscriptions_tweet_preview_api_enabled - responsive_web_graphql_timeline_navigation_enabled - responsive_web_graphql_skip_user_profile_image_extensions_enabled + - c9s_tweet_anatomy_moderator_badge_enabled - tweetypie_unmention_optimization_enabled - responsive_web_edit_tweet_api_enabled - graphql_is_translatable_rweb_tweet_is_translatable_enabled @@ -4470,6 +5356,7 @@ paths: - freedom_of_speech_not_reach_fetch_enabled - standardized_nudges_misinfo - tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled + - rweb_video_timestamps_enabled - longform_notetweets_rich_text_read_enabled - longform_notetweets_inline_media_enabled - responsive_web_media_download_video_enabled @@ -4523,8 +5410,8 @@ paths: name: pathQueryId required: true schema: - default: vd1SSLv05a4lAc9-ml4kpA - example: vd1SSLv05a4lAc9-ml4kpA + default: AmMFotx7L4P3QnyOM3bCRA + example: AmMFotx7L4P3QnyOM3bCRA type: string - content: application/json: @@ -4561,8 +5448,8 @@ paths: - includePromotedContent - latestControlAvailable - requestContext - - seenTweetIds - withCommunity + - seenTweetIds type: object in: query name: variables @@ -4571,6 +5458,10 @@ paths: application/json: schema: properties: + c9s_tweet_anatomy_moderator_badge_enabled: + default: true + example: true + type: boolean creator_subscriptions_tweet_preview_api_enabled: default: true example: true @@ -4620,8 +5511,12 @@ paths: example: false type: boolean responsive_web_twitter_article_tweet_consumption_enabled: - default: false - example: false + default: true + example: true + type: boolean + rweb_video_timestamps_enabled: + default: true + example: true type: boolean standardized_nudges_misinfo: default: true @@ -4653,6 +5548,7 @@ paths: - creator_subscriptions_tweet_preview_api_enabled - responsive_web_graphql_timeline_navigation_enabled - responsive_web_graphql_skip_user_profile_image_extensions_enabled + - c9s_tweet_anatomy_moderator_badge_enabled - tweetypie_unmention_optimization_enabled - responsive_web_edit_tweet_api_enabled - graphql_is_translatable_rweb_tweet_is_translatable_enabled @@ -4663,6 +5559,7 @@ paths: - freedom_of_speech_not_reach_fetch_enabled - standardized_nudges_misinfo - tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled + - rweb_video_timestamps_enabled - longform_notetweets_rich_text_read_enabled - longform_notetweets_inline_media_enabled - responsive_web_media_download_video_enabled @@ -4716,8 +5613,8 @@ paths: name: pathQueryId required: true schema: - default: lVf2NuhLoYVrpN4nO7uw0Q - example: lVf2NuhLoYVrpN4nO7uw0Q + default: 9s8V6sUI8fZLDiN-REkAxA + example: 9s8V6sUI8fZLDiN-REkAxA type: string - content: application/json: @@ -4767,6 +5664,10 @@ paths: application/json: schema: properties: + c9s_tweet_anatomy_moderator_badge_enabled: + default: true + example: true + type: boolean creator_subscriptions_tweet_preview_api_enabled: default: true example: true @@ -4816,8 +5717,12 @@ paths: example: false type: boolean responsive_web_twitter_article_tweet_consumption_enabled: - default: false - example: false + default: true + example: true + type: boolean + rweb_video_timestamps_enabled: + default: true + example: true type: boolean standardized_nudges_misinfo: default: true @@ -4849,6 +5754,7 @@ paths: - creator_subscriptions_tweet_preview_api_enabled - responsive_web_graphql_timeline_navigation_enabled - responsive_web_graphql_skip_user_profile_image_extensions_enabled + - c9s_tweet_anatomy_moderator_badge_enabled - tweetypie_unmention_optimization_enabled - responsive_web_edit_tweet_api_enabled - graphql_is_translatable_rweb_tweet_is_translatable_enabled @@ -4859,6 +5765,7 @@ paths: - freedom_of_speech_not_reach_fetch_enabled - standardized_nudges_misinfo - tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled + - rweb_video_timestamps_enabled - longform_notetweets_rich_text_read_enabled - longform_notetweets_inline_media_enabled - responsive_web_media_download_video_enabled @@ -4912,8 +5819,8 @@ paths: name: pathQueryId required: true schema: - default: qHgwF5h2HLowIJ6dHmAP_A - example: qHgwF5h2HLowIJ6dHmAP_A + default: HjsWc-nwwHKYwHenbHm-tw + example: HjsWc-nwwHKYwHenbHm-tw type: string - content: application/json: @@ -4938,6 +5845,10 @@ paths: application/json: schema: properties: + c9s_tweet_anatomy_moderator_badge_enabled: + default: true + example: true + type: boolean creator_subscriptions_tweet_preview_api_enabled: default: true example: true @@ -4987,8 +5898,12 @@ paths: example: false type: boolean responsive_web_twitter_article_tweet_consumption_enabled: - default: false - example: false + default: true + example: true + type: boolean + rweb_video_timestamps_enabled: + default: true + example: true type: boolean standardized_nudges_misinfo: default: true @@ -5020,6 +5935,7 @@ paths: - creator_subscriptions_tweet_preview_api_enabled - responsive_web_graphql_timeline_navigation_enabled - responsive_web_graphql_skip_user_profile_image_extensions_enabled + - c9s_tweet_anatomy_moderator_badge_enabled - tweetypie_unmention_optimization_enabled - responsive_web_edit_tweet_api_enabled - graphql_is_translatable_rweb_tweet_is_translatable_enabled @@ -5030,6 +5946,7 @@ paths: - freedom_of_speech_not_reach_fetch_enabled - standardized_nudges_misinfo - tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled + - rweb_video_timestamps_enabled - longform_notetweets_rich_text_read_enabled - longform_notetweets_inline_media_enabled - responsive_web_media_download_video_enabled @@ -5083,8 +6000,8 @@ paths: name: pathQueryId required: true schema: - default: _pnlqeTOtnpbIL9o-fS_pg - example: _pnlqeTOtnpbIL9o-fS_pg + default: X-Sw7rvhcUhof35mh5ObKw + example: X-Sw7rvhcUhof35mh5ObKw type: string - content: application/json: @@ -5151,8 +6068,8 @@ paths: name: pathQueryId required: true schema: - default: 9jBdme5U626ATWp01dvgrA - example: 9jBdme5U626ATWp01dvgrA + default: X-XEqG5qHQSAwmvy00xfyQ + example: X-XEqG5qHQSAwmvy00xfyQ type: string - content: application/json: @@ -5182,6 +6099,10 @@ paths: application/json: schema: properties: + c9s_tweet_anatomy_moderator_badge_enabled: + default: true + example: true + type: boolean creator_subscriptions_tweet_preview_api_enabled: default: true example: true @@ -5231,8 +6152,12 @@ paths: example: false type: boolean responsive_web_twitter_article_tweet_consumption_enabled: - default: false - example: false + default: true + example: true + type: boolean + rweb_video_timestamps_enabled: + default: true + example: true type: boolean standardized_nudges_misinfo: default: true @@ -5264,6 +6189,7 @@ paths: - creator_subscriptions_tweet_preview_api_enabled - responsive_web_graphql_timeline_navigation_enabled - responsive_web_graphql_skip_user_profile_image_extensions_enabled + - c9s_tweet_anatomy_moderator_badge_enabled - tweetypie_unmention_optimization_enabled - responsive_web_edit_tweet_api_enabled - graphql_is_translatable_rweb_tweet_is_translatable_enabled @@ -5274,6 +6200,7 @@ paths: - freedom_of_speech_not_reach_fetch_enabled - standardized_nudges_misinfo - tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled + - rweb_video_timestamps_enabled - longform_notetweets_rich_text_read_enabled - longform_notetweets_inline_media_enabled - responsive_web_media_download_video_enabled @@ -5327,8 +6254,8 @@ paths: name: pathQueryId required: true schema: - default: 3Ej-6N7xXONuEp5eJa1TdQ - example: 3Ej-6N7xXONuEp5eJa1TdQ + default: fZK7JipRHWtiZsTodhsTfQ + example: fZK7JipRHWtiZsTodhsTfQ type: string - content: application/json: @@ -5363,6 +6290,10 @@ paths: application/json: schema: properties: + c9s_tweet_anatomy_moderator_badge_enabled: + default: true + example: true + type: boolean creator_subscriptions_tweet_preview_api_enabled: default: true example: true @@ -5412,8 +6343,12 @@ paths: example: false type: boolean responsive_web_twitter_article_tweet_consumption_enabled: - default: false - example: false + default: true + example: true + type: boolean + rweb_video_timestamps_enabled: + default: true + example: true type: boolean standardized_nudges_misinfo: default: true @@ -5445,6 +6380,7 @@ paths: - creator_subscriptions_tweet_preview_api_enabled - responsive_web_graphql_timeline_navigation_enabled - responsive_web_graphql_skip_user_profile_image_extensions_enabled + - c9s_tweet_anatomy_moderator_badge_enabled - tweetypie_unmention_optimization_enabled - responsive_web_edit_tweet_api_enabled - graphql_is_translatable_rweb_tweet_is_translatable_enabled @@ -5455,6 +6391,7 @@ paths: - freedom_of_speech_not_reach_fetch_enabled - standardized_nudges_misinfo - tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled + - rweb_video_timestamps_enabled - longform_notetweets_rich_text_read_enabled - longform_notetweets_inline_media_enabled - responsive_web_media_download_video_enabled @@ -5508,8 +6445,8 @@ paths: name: pathQueryId required: true schema: - default: xOhkmRac04YFZmOzU9PJHg - example: xOhkmRac04YFZmOzU9PJHg + default: B9_KmbkLhXt6jRwGjJrweg + example: B9_KmbkLhXt6jRwGjJrweg type: string - content: application/json: @@ -5523,6 +6460,10 @@ paths: default: true example: true type: boolean + referrer: + default: home + example: home + type: string withBirdwatchNotes: default: true example: true @@ -5549,6 +6490,7 @@ paths: type: boolean required: - focalTweetId + - referrer - with_rux_injections - includePromotedContent - withCommunity @@ -5564,6 +6506,10 @@ paths: application/json: schema: properties: + c9s_tweet_anatomy_moderator_badge_enabled: + default: true + example: true + type: boolean creator_subscriptions_tweet_preview_api_enabled: default: true example: true @@ -5613,8 +6559,12 @@ paths: example: false type: boolean responsive_web_twitter_article_tweet_consumption_enabled: - default: false - example: false + default: true + example: true + type: boolean + rweb_video_timestamps_enabled: + default: true + example: true type: boolean standardized_nudges_misinfo: default: true @@ -5646,6 +6596,7 @@ paths: - creator_subscriptions_tweet_preview_api_enabled - responsive_web_graphql_timeline_navigation_enabled - responsive_web_graphql_skip_user_profile_image_extensions_enabled + - c9s_tweet_anatomy_moderator_badge_enabled - tweetypie_unmention_optimization_enabled - responsive_web_edit_tweet_api_enabled - graphql_is_translatable_rweb_tweet_is_translatable_enabled @@ -5656,6 +6607,7 @@ paths: - freedom_of_speech_not_reach_fetch_enabled - standardized_nudges_misinfo - tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled + - rweb_video_timestamps_enabled - longform_notetweets_rich_text_read_enabled - longform_notetweets_inline_media_enabled - responsive_web_media_download_video_enabled @@ -5723,8 +6675,8 @@ paths: name: pathQueryId required: true schema: - default: DJS3BdhUhcaEpZ7B7irJDg - example: DJS3BdhUhcaEpZ7B7irJDg + default: MWY3AO9_I3rcP_L2A4FR4A + example: MWY3AO9_I3rcP_L2A4FR4A type: string - content: application/json: @@ -5759,6 +6711,10 @@ paths: application/json: schema: properties: + c9s_tweet_anatomy_moderator_badge_enabled: + default: true + example: true + type: boolean creator_subscriptions_tweet_preview_api_enabled: default: true example: true @@ -5808,8 +6764,12 @@ paths: example: false type: boolean responsive_web_twitter_article_tweet_consumption_enabled: - default: false - example: false + default: true + example: true + type: boolean + rweb_video_timestamps_enabled: + default: true + example: true type: boolean standardized_nudges_misinfo: default: true @@ -5837,6 +6797,7 @@ paths: type: boolean required: - creator_subscriptions_tweet_preview_api_enabled + - c9s_tweet_anatomy_moderator_badge_enabled - tweetypie_unmention_optimization_enabled - responsive_web_edit_tweet_api_enabled - graphql_is_translatable_rweb_tweet_is_translatable_enabled @@ -5847,6 +6808,7 @@ paths: - freedom_of_speech_not_reach_fetch_enabled - standardized_nudges_misinfo - tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled + - rweb_video_timestamps_enabled - longform_notetweets_rich_text_read_enabled - longform_notetweets_inline_media_enabled - responsive_web_graphql_exclude_directive_enabled @@ -5978,8 +6940,8 @@ paths: name: pathQueryId required: true schema: - default: QdS5LJDl99iL_KUzckdfNQ - example: QdS5LJDl99iL_KUzckdfNQ + default: tD8zKvQzwY3kdx5yz6YmOw + example: tD8zKvQzwY3kdx5yz6YmOw type: string - content: application/json: @@ -6032,6 +6994,10 @@ paths: default: true example: true type: boolean + responsive_web_twitter_article_notes_tab_enabled: + default: true + example: true + type: boolean verified_phone_label_enabled: default: false example: false @@ -6042,6 +7008,7 @@ paths: - responsive_web_graphql_exclude_directive_enabled - verified_phone_label_enabled - highlights_tweets_tab_ui_enabled + - responsive_web_twitter_article_notes_tab_enabled - creator_subscriptions_tweet_preview_api_enabled - responsive_web_graphql_skip_user_profile_image_extensions_enabled - responsive_web_graphql_timeline_navigation_enabled @@ -6094,8 +7061,8 @@ paths: name: pathQueryId required: true schema: - default: G3KGOASz96M-Qu0nwmGXNg - example: G3KGOASz96M-Qu0nwmGXNg + default: k5XapwcSikNsEsILW5FvgA + example: k5XapwcSikNsEsILW5FvgA type: string - content: application/json: @@ -6148,6 +7115,10 @@ paths: default: true example: true type: boolean + responsive_web_twitter_article_notes_tab_enabled: + default: true + example: true + type: boolean subscriptions_verification_info_is_identity_verified_enabled: default: true example: true @@ -6168,6 +7139,7 @@ paths: - subscriptions_verification_info_is_identity_verified_enabled - subscriptions_verification_info_verified_since_enabled - highlights_tweets_tab_ui_enabled + - responsive_web_twitter_article_notes_tab_enabled - creator_subscriptions_tweet_preview_api_enabled - responsive_web_graphql_skip_user_profile_image_extensions_enabled - responsive_web_graphql_timeline_navigation_enabled @@ -6234,8 +7206,8 @@ paths: name: pathQueryId required: true schema: - default: KTtT5_kU8yor3I3UI4G5Vw - example: KTtT5_kU8yor3I3UI4G5Vw + default: ZRU-YBvpJ5c-SOS-nb_Lhg + example: ZRU-YBvpJ5c-SOS-nb_Lhg type: string - content: application/json: @@ -6270,6 +7242,10 @@ paths: application/json: schema: properties: + c9s_tweet_anatomy_moderator_badge_enabled: + default: true + example: true + type: boolean creator_subscriptions_tweet_preview_api_enabled: default: true example: true @@ -6319,8 +7295,12 @@ paths: example: false type: boolean responsive_web_twitter_article_tweet_consumption_enabled: - default: false - example: false + default: true + example: true + type: boolean + rweb_video_timestamps_enabled: + default: true + example: true type: boolean standardized_nudges_misinfo: default: true @@ -6352,6 +7332,7 @@ paths: - creator_subscriptions_tweet_preview_api_enabled - responsive_web_graphql_timeline_navigation_enabled - responsive_web_graphql_skip_user_profile_image_extensions_enabled + - c9s_tweet_anatomy_moderator_badge_enabled - tweetypie_unmention_optimization_enabled - responsive_web_edit_tweet_api_enabled - graphql_is_translatable_rweb_tweet_is_translatable_enabled @@ -6362,6 +7343,7 @@ paths: - freedom_of_speech_not_reach_fetch_enabled - standardized_nudges_misinfo - tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled + - rweb_video_timestamps_enabled - longform_notetweets_rich_text_read_enabled - longform_notetweets_inline_media_enabled - responsive_web_media_download_video_enabled @@ -6415,8 +7397,8 @@ paths: name: pathQueryId required: true schema: - default: Le6KlbilFmSu-5VltFND-Q - example: Le6KlbilFmSu-5VltFND-Q + default: tO4LMUYAZbR4T0SqQ85aAw + example: tO4LMUYAZbR4T0SqQ85aAw type: string - content: application/json: @@ -6466,6 +7448,10 @@ paths: application/json: schema: properties: + c9s_tweet_anatomy_moderator_badge_enabled: + default: true + example: true + type: boolean creator_subscriptions_tweet_preview_api_enabled: default: true example: true @@ -6515,8 +7501,12 @@ paths: example: false type: boolean responsive_web_twitter_article_tweet_consumption_enabled: - default: false - example: false + default: true + example: true + type: boolean + rweb_video_timestamps_enabled: + default: true + example: true type: boolean standardized_nudges_misinfo: default: true @@ -6548,6 +7538,7 @@ paths: - creator_subscriptions_tweet_preview_api_enabled - responsive_web_graphql_timeline_navigation_enabled - responsive_web_graphql_skip_user_profile_image_extensions_enabled + - c9s_tweet_anatomy_moderator_badge_enabled - tweetypie_unmention_optimization_enabled - responsive_web_edit_tweet_api_enabled - graphql_is_translatable_rweb_tweet_is_translatable_enabled @@ -6558,6 +7549,7 @@ paths: - freedom_of_speech_not_reach_fetch_enabled - standardized_nudges_misinfo - tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled + - rweb_video_timestamps_enabled - longform_notetweets_rich_text_read_enabled - longform_notetweets_inline_media_enabled - responsive_web_media_download_video_enabled @@ -6611,8 +7603,8 @@ paths: name: pathQueryId required: true schema: - default: H8OOoI-5ZE4NxgRr8lfyWg - example: H8OOoI-5ZE4NxgRr8lfyWg + default: 5ICa5d9-AitXZrIA3H-4MQ + example: 5ICa5d9-AitXZrIA3H-4MQ type: string - content: application/json: @@ -6657,6 +7649,10 @@ paths: application/json: schema: properties: + c9s_tweet_anatomy_moderator_badge_enabled: + default: true + example: true + type: boolean creator_subscriptions_tweet_preview_api_enabled: default: true example: true @@ -6706,8 +7702,12 @@ paths: example: false type: boolean responsive_web_twitter_article_tweet_consumption_enabled: - default: false - example: false + default: true + example: true + type: boolean + rweb_video_timestamps_enabled: + default: true + example: true type: boolean standardized_nudges_misinfo: default: true @@ -6739,6 +7739,7 @@ paths: - creator_subscriptions_tweet_preview_api_enabled - responsive_web_graphql_timeline_navigation_enabled - responsive_web_graphql_skip_user_profile_image_extensions_enabled + - c9s_tweet_anatomy_moderator_badge_enabled - tweetypie_unmention_optimization_enabled - responsive_web_edit_tweet_api_enabled - graphql_is_translatable_rweb_tweet_is_translatable_enabled @@ -6749,6 +7750,7 @@ paths: - freedom_of_speech_not_reach_fetch_enabled - standardized_nudges_misinfo - tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled + - rweb_video_timestamps_enabled - longform_notetweets_rich_text_read_enabled - longform_notetweets_inline_media_enabled - responsive_web_media_download_video_enabled @@ -6802,8 +7804,8 @@ paths: name: pathQueryId required: true schema: - default: Q6aAvPw7azXZbqXzuqTALA - example: Q6aAvPw7azXZbqXzuqTALA + default: UtLStR_BnYUGD7Q453UXQg + example: UtLStR_BnYUGD7Q453UXQg type: string - content: application/json: @@ -6848,6 +7850,10 @@ paths: application/json: schema: properties: + c9s_tweet_anatomy_moderator_badge_enabled: + default: true + example: true + type: boolean creator_subscriptions_tweet_preview_api_enabled: default: true example: true @@ -6897,8 +7903,12 @@ paths: example: false type: boolean responsive_web_twitter_article_tweet_consumption_enabled: - default: false - example: false + default: true + example: true + type: boolean + rweb_video_timestamps_enabled: + default: true + example: true type: boolean standardized_nudges_misinfo: default: true @@ -6930,6 +7940,7 @@ paths: - creator_subscriptions_tweet_preview_api_enabled - responsive_web_graphql_timeline_navigation_enabled - responsive_web_graphql_skip_user_profile_image_extensions_enabled + - c9s_tweet_anatomy_moderator_badge_enabled - tweetypie_unmention_optimization_enabled - responsive_web_edit_tweet_api_enabled - graphql_is_translatable_rweb_tweet_is_translatable_enabled @@ -6940,6 +7951,7 @@ paths: - freedom_of_speech_not_reach_fetch_enabled - standardized_nudges_misinfo - tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled + - rweb_video_timestamps_enabled - longform_notetweets_rich_text_read_enabled - longform_notetweets_inline_media_enabled - responsive_web_media_download_video_enabled @@ -6993,8 +8005,8 @@ paths: name: pathQueryId required: true schema: - default: GD4q8bBE2i6cqWw2iT74Gg - example: GD4q8bBE2i6cqWw2iT74Gg + default: itEhGywpgX9b3GJCzOtSrA + example: itEhGywpgX9b3GJCzOtSrA type: string - content: application/json: diff --git a/requirements.txt b/requirements.txt index e7ffef8..009a112 100644 Binary files a/requirements.txt and b/requirements.txt differ diff --git a/src/config/placeholder.json b/src/config/placeholder.json index bef3c50..cdb150c 100644 --- a/src/config/placeholder.json +++ b/src/config/placeholder.json @@ -1,15 +1,15 @@ { "HomeTimeline": { - "queryId": "vd1SSLv05a4lAc9-ml4kpA", + "queryId": "AmMFotx7L4P3QnyOM3bCRA", "variables": { "count": 20, "includePromotedContent": true, "latestControlAvailable": true, "requestContext": "launch", + "withCommunity": true, "seenTweetIds": [ "1349129669258448897" - ], - "withCommunity": true + ] }, "features": { "responsive_web_graphql_exclude_directive_enabled": true, @@ -17,16 +17,18 @@ "creator_subscriptions_tweet_preview_api_enabled": true, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": false, + "c9s_tweet_anatomy_moderator_badge_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": false, + "responsive_web_twitter_article_tweet_consumption_enabled": true, "tweet_awards_web_tipping_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_media_download_video_enabled": false, @@ -34,7 +36,7 @@ } }, "HomeLatestTimeline": { - "queryId": "fKbuCe1XHAqSM99T6q-MOg", + "queryId": "IjTuxEFmAb6DvzycVz4fHg", "variables": { "count": 20, "includePromotedContent": true, @@ -47,16 +49,18 @@ "creator_subscriptions_tweet_preview_api_enabled": true, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": false, + "c9s_tweet_anatomy_moderator_badge_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": false, + "responsive_web_twitter_article_tweet_consumption_enabled": true, "tweet_awards_web_tipping_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_media_download_video_enabled": false, @@ -64,7 +68,7 @@ } }, "ListLatestTweetsTimeline": { - "queryId": "qHgwF5h2HLowIJ6dHmAP_A", + "queryId": "HjsWc-nwwHKYwHenbHm-tw", "variables": { "listId": "1539453138322673664", "count": 20 @@ -75,16 +79,18 @@ "creator_subscriptions_tweet_preview_api_enabled": true, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": false, + "c9s_tweet_anatomy_moderator_badge_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": false, + "responsive_web_twitter_article_tweet_consumption_enabled": true, "tweet_awards_web_tipping_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_media_download_video_enabled": false, @@ -92,7 +98,7 @@ } }, "UserByScreenName": { - "queryId": "G3KGOASz96M-Qu0nwmGXNg", + "queryId": "k5XapwcSikNsEsILW5FvgA", "variables": { "screen_name": "elonmusk", "withSafetyModeUserFields": true @@ -105,6 +111,7 @@ "subscriptions_verification_info_is_identity_verified_enabled": true, "subscriptions_verification_info_verified_since_enabled": true, "highlights_tweets_tab_ui_enabled": true, + "responsive_web_twitter_article_notes_tab_enabled": true, "creator_subscriptions_tweet_preview_api_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": false, "responsive_web_graphql_timeline_navigation_enabled": true @@ -114,7 +121,7 @@ } }, "UserByRestId": { - "queryId": "QdS5LJDl99iL_KUzckdfNQ", + "queryId": "tD8zKvQzwY3kdx5yz6YmOw", "variables": { "userId": "44196397", "withSafetyModeUserFields": true @@ -125,13 +132,14 @@ "responsive_web_graphql_exclude_directive_enabled": true, "verified_phone_label_enabled": false, "highlights_tweets_tab_ui_enabled": true, + "responsive_web_twitter_article_notes_tab_enabled": true, "creator_subscriptions_tweet_preview_api_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": false, "responsive_web_graphql_timeline_navigation_enabled": true } }, "UsersByRestIds": { - "queryId": "GD4q8bBE2i6cqWw2iT74Gg", + "queryId": "itEhGywpgX9b3GJCzOtSrA", "variables": { "userIds": [ "44196397" @@ -145,14 +153,14 @@ } }, "ProfileSpotlightsQuery": { - "queryId": "_pnlqeTOtnpbIL9o-fS_pg", + "queryId": "X-Sw7rvhcUhof35mh5ObKw", "variables": { "screen_name": "elonmusk" }, "features": {} }, "UserTweets": { - "queryId": "H8OOoI-5ZE4NxgRr8lfyWg", + "queryId": "5ICa5d9-AitXZrIA3H-4MQ", "variables": { "userId": "44196397", "count": 40, @@ -167,16 +175,18 @@ "creator_subscriptions_tweet_preview_api_enabled": true, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": false, + "c9s_tweet_anatomy_moderator_badge_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": false, + "responsive_web_twitter_article_tweet_consumption_enabled": true, "tweet_awards_web_tipping_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_media_download_video_enabled": false, @@ -184,7 +194,7 @@ } }, "UserTweetsAndReplies": { - "queryId": "Q6aAvPw7azXZbqXzuqTALA", + "queryId": "UtLStR_BnYUGD7Q453UXQg", "variables": { "userId": "44196397", "count": 40, @@ -199,16 +209,18 @@ "creator_subscriptions_tweet_preview_api_enabled": true, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": false, + "c9s_tweet_anatomy_moderator_badge_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": false, + "responsive_web_twitter_article_tweet_consumption_enabled": true, "tweet_awards_web_tipping_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_media_download_video_enabled": false, @@ -216,7 +228,7 @@ } }, "UserHighlightsTweets": { - "queryId": "KTtT5_kU8yor3I3UI4G5Vw", + "queryId": "ZRU-YBvpJ5c-SOS-nb_Lhg", "variables": { "userId": "44196397", "count": 40, @@ -229,16 +241,18 @@ "creator_subscriptions_tweet_preview_api_enabled": true, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": false, + "c9s_tweet_anatomy_moderator_badge_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": false, + "responsive_web_twitter_article_tweet_consumption_enabled": true, "tweet_awards_web_tipping_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_media_download_video_enabled": false, @@ -246,7 +260,7 @@ } }, "UserMedia": { - "queryId": "Le6KlbilFmSu-5VltFND-Q", + "queryId": "tO4LMUYAZbR4T0SqQ85aAw", "variables": { "userId": "44196397", "count": 40, @@ -262,16 +276,18 @@ "creator_subscriptions_tweet_preview_api_enabled": true, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": false, + "c9s_tweet_anatomy_moderator_badge_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": false, + "responsive_web_twitter_article_tweet_consumption_enabled": true, "tweet_awards_web_tipping_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_media_download_video_enabled": false, @@ -279,7 +295,7 @@ } }, "Likes": { - "queryId": "lVf2NuhLoYVrpN4nO7uw0Q", + "queryId": "9s8V6sUI8fZLDiN-REkAxA", "variables": { "userId": "44196397", "count": 20, @@ -295,16 +311,18 @@ "creator_subscriptions_tweet_preview_api_enabled": true, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": false, + "c9s_tweet_anatomy_moderator_badge_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": false, + "responsive_web_twitter_article_tweet_consumption_enabled": true, "tweet_awards_web_tipping_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_media_download_video_enabled": false, @@ -312,7 +330,7 @@ } }, "Bookmarks": { - "queryId": "j5KExFXtSWj8HjRui17ydA", + "queryId": "cQxQgX8MJYjWwC0dxpyfYg", "variables": { "count": 20, "includePromotedContent": true @@ -324,16 +342,18 @@ "creator_subscriptions_tweet_preview_api_enabled": true, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": false, + "c9s_tweet_anatomy_moderator_badge_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": false, + "responsive_web_twitter_article_tweet_consumption_enabled": true, "tweet_awards_web_tipping_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_media_download_video_enabled": false, @@ -341,9 +361,10 @@ } }, "TweetDetail": { - "queryId": "xOhkmRac04YFZmOzU9PJHg", + "queryId": "B9_KmbkLhXt6jRwGjJrweg", "variables": { "focalTweetId": "1349129669258448897", + "referrer": "home", "with_rux_injections": false, "includePromotedContent": true, "withCommunity": true, @@ -358,16 +379,18 @@ "creator_subscriptions_tweet_preview_api_enabled": true, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": false, + "c9s_tweet_anatomy_moderator_badge_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": false, + "responsive_web_twitter_article_tweet_consumption_enabled": true, "tweet_awards_web_tipping_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_media_download_video_enabled": false, @@ -378,7 +401,7 @@ } }, "TweetResultByRestId": { - "queryId": "DJS3BdhUhcaEpZ7B7irJDg", + "queryId": "MWY3AO9_I3rcP_L2A4FR4A", "variables": { "tweetId": "1691730070669517096", "withCommunity": false, @@ -387,16 +410,18 @@ }, "features": { "creator_subscriptions_tweet_preview_api_enabled": true, + "c9s_tweet_anatomy_moderator_badge_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": false, + "responsive_web_twitter_article_tweet_consumption_enabled": true, "tweet_awards_web_tipping_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_graphql_exclude_directive_enabled": true, @@ -408,7 +433,7 @@ } }, "SearchTimeline": { - "queryId": "3Ej-6N7xXONuEp5eJa1TdQ", + "queryId": "fZK7JipRHWtiZsTodhsTfQ", "variables": { "rawQuery": "elonmusk", "count": 20, @@ -421,16 +446,18 @@ "creator_subscriptions_tweet_preview_api_enabled": true, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": false, + "c9s_tweet_anatomy_moderator_badge_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": false, + "responsive_web_twitter_article_tweet_consumption_enabled": true, "tweet_awards_web_tipping_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_media_download_video_enabled": false, @@ -438,7 +465,7 @@ } }, "Favoriters": { - "queryId": "VIA2_af01oqZqBB6NvWi-Q", + "queryId": "LLkw5EcVutJL6y-2gkz22A", "variables": { "tweetId": "1349129669258448897", "count": 20, @@ -450,16 +477,18 @@ "creator_subscriptions_tweet_preview_api_enabled": true, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": false, + "c9s_tweet_anatomy_moderator_badge_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": false, + "responsive_web_twitter_article_tweet_consumption_enabled": true, "tweet_awards_web_tipping_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_media_download_video_enabled": false, @@ -467,7 +496,7 @@ } }, "Retweeters": { - "queryId": "9jBdme5U626ATWp01dvgrA", + "queryId": "X-XEqG5qHQSAwmvy00xfyQ", "variables": { "tweetId": "1349129669258448897", "count": 20, @@ -479,16 +508,18 @@ "creator_subscriptions_tweet_preview_api_enabled": true, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": false, + "c9s_tweet_anatomy_moderator_badge_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": false, + "responsive_web_twitter_article_tweet_consumption_enabled": true, "tweet_awards_web_tipping_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_media_download_video_enabled": false, @@ -496,7 +527,7 @@ } }, "Followers": { - "queryId": "rRXFSG5vR6drKr5M37YOTw", + "queryId": "ZG1BQPaRSg04qo55kKaW2g", "variables": { "userId": "44196397", "count": 20, @@ -508,16 +539,18 @@ "creator_subscriptions_tweet_preview_api_enabled": true, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": false, + "c9s_tweet_anatomy_moderator_badge_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": false, + "responsive_web_twitter_article_tweet_consumption_enabled": true, "tweet_awards_web_tipping_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_media_download_video_enabled": false, @@ -525,7 +558,7 @@ } }, "Following": { - "queryId": "iSicc7LrzWGBgDPL0tM_TQ", + "queryId": "PAnE9toEjRfE-4tozRcsfw", "variables": { "userId": "44196397", "count": 20, @@ -537,16 +570,18 @@ "creator_subscriptions_tweet_preview_api_enabled": true, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": false, + "c9s_tweet_anatomy_moderator_badge_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": false, + "responsive_web_twitter_article_tweet_consumption_enabled": true, "tweet_awards_web_tipping_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_media_download_video_enabled": false, @@ -554,7 +589,7 @@ } }, "BlueVerifiedFollowers": { - "queryId": "kXi37EbqWokFUNypPHhQDQ", + "queryId": "mg4dFO4kMIKt6tpqPMmFeg", "variables": { "userId": "1347135745706708993", "count": 20, @@ -566,16 +601,18 @@ "creator_subscriptions_tweet_preview_api_enabled": true, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": false, + "c9s_tweet_anatomy_moderator_badge_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": false, + "responsive_web_twitter_article_tweet_consumption_enabled": true, "tweet_awards_web_tipping_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_media_download_video_enabled": false, @@ -583,7 +620,7 @@ } }, "FollowersYouKnow": { - "queryId": "yqrUptVSP9DAkVLqpc0lsg", + "queryId": "citX7s5IAb1C6AVCqUO68g", "variables": { "userId": "44196397", "count": 20, @@ -595,16 +632,18 @@ "creator_subscriptions_tweet_preview_api_enabled": true, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": false, + "c9s_tweet_anatomy_moderator_badge_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": false, + "responsive_web_twitter_article_tweet_consumption_enabled": true, "tweet_awards_web_tipping_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_media_download_video_enabled": false, @@ -612,7 +651,7 @@ } }, "CreateTweet": { - "queryId": "PIZtQLRIYtSa9AtW_fI2Mw", + "queryId": "8ED1SMuUGkOZVBEjiYUTfw", "variables": { "tweet_text": "test", "media": { @@ -632,15 +671,17 @@ "dark_request": false }, "features": { + "c9s_tweet_anatomy_moderator_badge_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": false, + "responsive_web_twitter_article_tweet_consumption_enabled": true, "tweet_awards_web_tipping_enabled": false, "longform_notetweets_rich_text_read_enabled": true, "longform_notetweets_inline_media_enabled": true, + "rweb_video_timestamps_enabled": true, "responsive_web_graphql_exclude_directive_enabled": true, "verified_phone_label_enabled": false, "freedom_of_speech_not_reach_fetch_enabled": true, diff --git a/src/openapi/response/error.yaml b/src/openapi/response/error.yaml index 817edb6..d285ce1 100644 --- a/src/openapi/response/error.yaml +++ b/src/openapi/response/error.yaml @@ -32,6 +32,7 @@ components: - kind - name - source + - retry_after - tracing properties: message: @@ -54,6 +55,8 @@ components: type: string source: type: string + retry_after: + type: integer tracing: $ref: "#/components/schemas/Tracing" diff --git a/src/openapi/schemas/content.yaml b/src/openapi/schemas/content.yaml index 3619356..4e500b5 100644 --- a/src/openapi/schemas/content.yaml +++ b/src/openapi/schemas/content.yaml @@ -71,16 +71,21 @@ components: header: type: object additionalProperties: true # todo - clientEventInfo: type: object additionalProperties: true # todo + metadata: + type: object + additionalProperties: true # todo + feedbackInfo: + $ref: "#/components/schemas/FeedbackInfo" TimelineTimelineCursor: required: - "__typename" - "cursorType" - "value" + - "stopOnEmptyResponse" properties: __typename: $ref: "./typename.yaml#/components/schemas/TypeName" # TimelineTimelineCursor @@ -92,6 +97,19 @@ components: $ref: "#/components/schemas/CursorType" value: type: string + stopOnEmptyResponse: + type: boolean + default: false + displayTreatment: + $ref: "#/components/schemas/DisplayTreatment" + + DisplayTreatment: + type: object + required: + - "actionText" + properties: + actionText: + type: string # ================= Module ================= @@ -115,6 +133,15 @@ components: itemContent: $ref: "#/components/schemas/ItemContentUnion" + FeedbackInfo: + required: + - "feedbackType" + properties: + feedbackKeys: + type: array + items: + type: string + # ================= ContentItem ================= ItemContentUnion: @@ -163,17 +190,18 @@ components: type: string tweet_results: $ref: "#/components/schemas/ItemResult" - SocialContext: - $ref: "#/components/schemas/SocialContext" + socialContext: + $ref: "#/components/schemas/SocialContextUnion" promotedMetadata: type: object additionalProperties: true # todo + highlights: + $ref: "#/components/schemas/Highlight" TimelineUser: required: - "__typename" - "itemType" - - "socialContext" - "userDisplayType" - "user_results" properties: @@ -181,8 +209,8 @@ components: $ref: "./typename.yaml#/components/schemas/TypeName" # TimelineUser itemType: $ref: "#/components/schemas/ContentItemType" # TimelineUser - SocialContext: - $ref: "#/components/schemas/SocialContext" + socialContext: + $ref: "#/components/schemas/SocialContextUnion" userDisplayType: type: string enum: [User, UserDetailed, SubscribableUser] @@ -196,15 +224,122 @@ components: result: $ref: "./tweet.yaml#/components/schemas/TweetUnion" - SocialContext: + SocialContextUnion: + oneOf: + - $ref: "#/components/schemas/TimelineGeneralContext" + - $ref: "#/components/schemas/TimelineTopicContext" + discriminator: + propertyName: type + mapping": # deprecated + TimelineGeneralContext: "#/components/schemas/TimelineGeneralContext" + TimelineTopicContext: "#/components/schemas/TimelineTopicContext" + + SocialContextUnionType: + type: string + enum: + - TimelineGeneralContext + - TimelineTopicContext + + + TimelineGeneralContext: type: object properties: + type: + $ref: "#/components/schemas/SocialContextUnionType" contextType: type: string # enum + enum: ["Follow", "Pin", "Like", "Location", "Sparkle"] text: type: string + landingUrl: + $ref: "#/components/schemas/SocialContextLandingUrl" + + TimelineTopicContext: + type: object + properties: type: + $ref: "#/components/schemas/SocialContextUnionType" + topic: + $ref: "#/components/schemas/TopicContext" + functionalityType: + type: string + enum: ["Basic"] + + TopicContext: + type: object + properties: + id: + type: string + topic_id: + type: string + name: + type: string + description: + type: string + icon_url: + type: string + format: uri + following: + type: boolean + not_interested: + type: boolean + + SocialContextLandingUrl: + type: object + properties: + urlType: type: string # enum + enum: ["DeepLink", "UrtEndpoint"] + url: + type: string # twitter://user?id=900282258736545792 + format: uri + urtEndpointOptions: + $ref: "#/components/schemas/UrtEndpointOptions" + + UrtEndpointOptions: + type: object + required: + - "title" + - "requestParams" + properties: + title: + type: string + requestParams: + type: array + items: + $ref: "#/components/schemas/UrtEndpointRequestParams" + + UrtEndpointRequestParams: + type: object + required: + - "key" + - "value" + properties: + key: + type: string + value: + type: string + + Highlight: + type: object + required: + - "textHighlights" + properties: + textHighlights: + type: array + items: + $ref: "#/components/schemas/TextHighlight" + + TextHighlight: + type: object + required: + - "startIndex" + - "endIndex" + properties: + startIndex: + type: integer + endIndex: + type: integer TimelinePrompt: properties: diff --git a/src/openapi/schemas/tweet.yaml b/src/openapi/schemas/tweet.yaml index c5a6733..9f55f00 100644 --- a/src/openapi/schemas/tweet.yaml +++ b/src/openapi/schemas/tweet.yaml @@ -23,11 +23,94 @@ components: required: - "__typename" - "tweet" + - "limitedActionResults" properties: __typename: $ref: "./typename.yaml#/components/schemas/TypeName" # TweetWithVisibilityResults tweet: $ref: "#/components/schemas/Tweet" + limitedActionResults: + type: object + additionalProperties: true # todo + tweetInterstitial: + $ref: "#/components/schemas/TweetInterstitial" + + # {'__typename': 'ContextualTweetInterstitial', 'displayType': 'NonCompliant', 'text': {'rtl': False, 'text': 'This Post violated the X Rules. However, X has determined that it may be in the public’s interest for the Post to remain accessible. Learn more', 'entities': [{'fromIndex': 133, 'toIndex': 143, 'ref': {'type': 'TimelineUrl', 'url': 'https://help.twitter.com/rules-and-policies/public-interest', 'urlType': 'ExternalUrl'}}]}, 'revealText': {'rtl': False, 'text': 'View', 'entities': []}} + TweetInterstitial: + required: + - "__typename" + - "displayType" + - "text" + - "revealText" + properties: + __typename: + $ref: "./typename.yaml#/components/schemas/TypeName" # ContextualTweetInterstitial + displayType: + type: string + enum: [NonCompliant] + text: + $ref: "#/components/schemas/TweetInterstitialText" + revealText: + $ref: "#/components/schemas/TweetInterstitialRevealText" + + TweetInterstitialText: + required: + - "rtl" + - "text" + - "entities" + properties: + rtl: + type: boolean + text: + type: string + entities: + type: array + items: + $ref: "#/components/schemas/TweetInterstitialTextEntity" + + TweetInterstitialTextEntity: + required: + - "fromIndex" + - "toIndex" + - "ref" + properties: + fromIndex: + type: integer + toIndex: + type: integer + ref: + $ref: "#/components/schemas/TweetInterstitialTextEntityRef" + + TweetInterstitialTextEntityRef: + required: + - "type" + - "url" + - "urlType" + properties: + type: + type: string + enum: [TimelineUrl] + url: + type: string + format: uri + urlType: + type: string + enum: [ExternalUrl] + + TweetInterstitialRevealText: + required: + - "rtl" + - "text" + - "entities" + properties: + rtl: + type: boolean + text: + type: string + entities: + type: array + items: + $ref: "#/components/schemas/TweetInterstitialTextEntity" TweetTombstone: #remove tweet properties: @@ -45,7 +128,6 @@ components: # - "source" # - "legacy" - "views" - properties: __typename: $ref: "./typename.yaml#/components/schemas/TypeName" # null | Tweet @@ -80,6 +162,18 @@ components: $ref: "#/components/schemas/NoteTweet" quick_promote_eligibility: type: object + unified_card: + $ref: "#/components/schemas/UnifiedCard" + previous_counts: + $ref: "#/components/schemas/TweetPreviousCounts" + quotedRefResult: + $ref: "#/components/schemas/QuotedRefResult" + superFollowsReplyUserResult: + $ref: "#/components/schemas/SuperFollowsReplyUserResult" + has_birdwatch_notes: + type: boolean + author_community_relationship: + $ref: "#/components/schemas/AuthorCommunityRelationship" TweetEditControl: properties: @@ -220,6 +314,299 @@ components: type: string enum: [Bold, Italic] + UnifiedCard: + required: + - "card_fetch_state" + properties: + card_fetch_state: + type: string + enum: [NoCard] + + TweetPreviousCounts: + required: + - "bookmark_count" + - "favorite_count" + - "quote_count" + - "reply_count" + - "retweet_count" + properties: + bookmark_count: + type: integer + favorite_count: + type: integer + quote_count: + type: integer + reply_count: + type: integer + retweet_count: + type: integer + + QuotedRefResult: + required: + - "result" + properties: + result: + $ref: "#/components/schemas/QuotedRefResultData" + + QuotedRefResultData: + required: + - "__typename" + - "rest_id" + properties: + __typename: + $ref: "./typename.yaml#/components/schemas/TypeName" # Tweet + rest_id: + type: string + pattern: "^[0-9]+$" + + SuperFollowsReplyUserResult: + required: + - "result" + properties: + result: + $ref: "#/components/schemas/SuperFollowsReplyUserResultData" + + SuperFollowsReplyUserResultData: + required: + - "__typename" + - "legacy" + properties: + __typename: + $ref: "./../schemas/typename.yaml#/components/schemas/TypeName" # User + legacy: + $ref: "#/components/schemas/SuperFollowsReplyUserResultLegacy" + + SuperFollowsReplyUserResultLegacy: + required: + - "screen_name" + properties: + screen_name: + type: string + + AuthorCommunityRelationship: + required: + - "community_results" + properties: + community_results: + $ref: "#/components/schemas/Community" + role: + type: string + enum: [Member] + user_results: + $ref: "user.yaml#/components/schemas/UserResults" + + Community: + required: + - "result" + properties: + result: + $ref: "#/components/schemas/CommunityData" + + CommunityData: + required: + - "__typename" + - "id_str" + - "name" + - "description" + - "question" + - "search_tags" + - "primary_community_topic" + - "actions" + - "admin_results" + - "creator_results" + - "invites_result" + - "join_policy" + - "invites_policy" + - "is_pinned" + - "members_facepile_results" + - "moderator_count" + - "member_count" + - "role" + - "rules" + properties: + __typename: + $ref: "./typename.yaml#/components/schemas/TypeName" # Community + id_str: + type: string + pattern: "^[0-9]+$" + name: + type: string + description: + type: string + created_at: + type: integer + question: + type: string + search_tags: + type: array + items: + type: string + primary_community_topic: + $ref: "#/components/schemas/PrimaryCommunityTopic" + actions: + $ref: "#/components/schemas/CommunityActions" + admin_results: + $ref: "user.yaml#/components/schemas/UserResults" + creator_results: + $ref: "user.yaml#/components/schemas/UserResults" + invites_result: + $ref: "#/components/schemas/CommunityInvitesResult" + join_requests_result: + $ref: "#/components/schemas/CommunityJoinRequestsResult" + join_policy: + type: string + enum: [Open] + invites_policy: + type: string + enum: [MemberInvitesAllowed] + is_pinned: + type: boolean + members_facepile_results: + type: array + items: + $ref: "user.yaml#/components/schemas/UserResults" + moderator_count: + type: integer + member_count: + type: integer + role: + type: string + enum: [NonMember] + rules: + type: array + items: + $ref: "#/components/schemas/CommunityRule" + show_only_users_to_display: + type: array + items: + type: string + urls: + $ref: "#/components/schemas/CommunityUrls" + default_banner_media: + type: object + additionalProperties: true # todo + custom_banner_media: + type: object + additionalProperties: true # todo + viewer_relationship: + type: object + additionalProperties: true # todo + + PrimaryCommunityTopic: + required: + - "topic_id" + - "topic_name" + properties: + topic_id: + type: string + pattern: "^[0-9]+$" + topic_name: + type: string + + CommunityActions: + required: + - "delete_action_result" + - "join_action_result" + - "leave_action_result" + - "pin_action_result" + properties: + delete_action_result: + $ref: "#/components/schemas/CommunityDeleteActionResult" + join_action_result: + $ref: "#/components/schemas/CommunityJoinActionResult" + leave_action_result: + $ref: "#/components/schemas/CommunityLeaveActionResult" + pin_action_result: + $ref: "#/components/schemas/CommunityPinActionResult" + + CommunityDeleteActionResult: + required: + - "__typename" + - "reason" + properties: + __typename: + $ref: "./typename.yaml#/components/schemas/TypeName" # CommunityDeleteActionUnavailable + reason: + type: string + enum: [Unavailable] + + CommunityJoinActionResult: + required: + - "__typename" + properties: + __typename: + $ref: "./typename.yaml#/components/schemas/TypeName" # CommunityJoinAction + + CommunityLeaveActionResult: + required: + - "__typename" + - "reason" + - "message" + properties: + __typename: + $ref: "./typename.yaml#/components/schemas/TypeName" # CommunityLeaveActionUnavailable + reason: + type: string + enum: [ViewerNotMember] + message: + type: string + + CommunityPinActionResult: + required: + - "__typename" + properties: + __typename: + $ref: "./typename.yaml#/components/schemas/TypeName" # CommunityTweetPinActionUnavailable + + CommunityInvitesResult: + required: + - "__typename" + - "reason" + - "message" + properties: + __typename: + $ref: "./typename.yaml#/components/schemas/TypeName" # CommunityInvitesUnavailable + reason: + type: string + enum: [Unavailable] + message: + type: string + + CommunityJoinRequestsResult: + required: + - "__typename" + properties: + __typename: + $ref: "./typename.yaml#/components/schemas/TypeName" # CommunityJoinRequestsUnavailable + + CommunityRule: + required: + - "rest_id" + - "name" + properties: + rest_id: + type: string + pattern: "^[0-9]+$" + name: + type: string + description: + type: string + + CommunityUrls: + required: + - "permalink" + properties: + permalink: + $ref: "#/components/schemas/CommunityUrlsPermalink" + + CommunityUrlsPermalink: + required: + - "url" + properties: + url: + type: string + format: uri + BirdwatchPivot: required: - "destinationUrl" @@ -249,6 +636,8 @@ components: iconType: type: string enum: [BirdwatchV1Icon] + callToAction: + $ref: "#/components/schemas/BirdwatchPivotCallToAction" BirdwatchPivotFooter: required: @@ -311,6 +700,21 @@ components: items: $ref: "#/components/schemas/BirdwatchEntity" + BirdwatchPivotCallToAction: + # {'prompt': 'Do you find this helpful?', 'title': 'Rate it', 'destinationUrl': 'https://twitter.com/i/birdwatch/n/1710821689636934115'} + required: + - "prompt" + - "title" + - "destinationUrl" + properties: + prompt: + type: string + title: + type: string + destinationUrl: + type: string + format: uri + TweetCard: properties: rest_id: @@ -333,6 +737,50 @@ components: items: $ref: "#/components/schemas/TweetCardLegacyBindingValue" + # {'platform': {'audience': {'name': 'production'}, 'device': {'name': 'Swift', 'version': '12'}}} + card_platform: + $ref: "#/components/schemas/TweetCardPlatformData" + user_refs_results: + type: array + items: + $ref: "user.yaml#/components/schemas/UserResults" + + TweetCardPlatformData: + required: + - "platform" + properties: + platform: + $ref: "#/components/schemas/TweetCardPlatform" + + TweetCardPlatform: + required: + - "audience" + - "device" + properties: + audience: + $ref: "#/components/schemas/TweetCardPlatformAudience" + device: + $ref: "#/components/schemas/TweetCardPlatformDevice" + + TweetCardPlatformAudience: + required: + - "name" + properties: + name: + type: string + enum: [production] + + TweetCardPlatformDevice: + required: + - "name" + - "version" + properties: + name: + type: string # enum Swift + version: + type: string + pattern: "^[0-9]+$" + TweetCardLegacyBindingValue: required: - "key" @@ -355,6 +803,37 @@ components: type: string type: type: string + image_value: + $ref: "#/components/schemas/TweetCardLegacyBindingValueDataImage" + image_color_value: + type: object + additionalProperties: true # todo + user_value: + $ref: "#/components/schemas/UserValue" + + UserValue: + required: + - "id_str" + properties: + id_str: + type: string + pattern: "^[0-9]+$" + + TweetCardLegacyBindingValueDataImage: + required: + - "height" + - "width" + - "url" + properties: + height: + type: integer + width: + type: integer + url: + type: string + format: uri + alt: + type: string TweetLegacy: required: @@ -427,6 +906,32 @@ components: $ref: "#/components/schemas/SelfThread" extended_entities: $ref: "#/components/schemas/ExtendedEntities" + scopes: + $ref: "#/components/schemas/TweetLegacyScopes" + in_reply_to_screen_name: + type: string + in_reply_to_status_id_str: + type: string + pattern: "^[0-9]+$" + in_reply_to_user_id_str: + type: string + pattern: "^[0-9]+$" + quoted_status_permalink: + $ref: "#/components/schemas/QuotedStatusPermalink" + quoted_status_id_str: + type: string + pattern: "^[0-9]+$" + conversation_control: + additionalProperties: true # todo + limited_actions: + type: string + enum: + - "limited_replies" + - "community_tweet_non_member_public_community" + - "non_compliant" + - "dynamic_product_ad" + place: + additionalProperties: true # todo SelfThread: required: @@ -506,6 +1011,8 @@ components: # - "features" - "sizes" - "original_info" + - "media_key" + - "ext_media_availability" properties: display_url: type: string @@ -535,6 +1042,47 @@ components: $ref: "#/components/schemas/MediaSizes" original_info: $ref: "#/components/schemas/MediaOriginalInfo" + media_key: + type: string + ext_media_availability: + $ref: "#/components/schemas/ExtMediaAvailability" + video_info: + type: object + additionalProperties: true # todo + additional_media_info: + type: object + additionalProperties: true # todo + source_user_id_str: + type: string + pattern: "^[0-9]+$" + source_status_id_str: + type: string + pattern: "^[0-9]+$" + ext_alt_text: + type: string + + TweetLegacyScopes: + required: + - "followers" + properties: + followers: + type: boolean + + QuotedStatusPermalink: + required: + - "url" + - "expanded" + - "display" + properties: + url: + type: string + format: uri + expanded: + type: string + format: uri + display: + type: string + format: uri ExtendedEntities: required: @@ -587,9 +1135,9 @@ components: additional_media_info: $ref: "#/components/schemas/AdditionalMediaInfo" mediaStats: - $ref: "#/components/schemas/mediaStats" + $ref: "#/components/schemas/MediaStats" ext_media_availability: - $ref: "#/components/schemas/extMediaAvailability" + $ref: "#/components/schemas/ExtMediaAvailability" features: type: object sizes: @@ -598,6 +1146,14 @@ components: $ref: "#/components/schemas/MediaOriginalInfo" video_info: $ref: "#/components/schemas/MediaVideoInfo" + source_user_id_str: + type: string + pattern: "^[0-9]+$" + source_status_id_str: + type: string + pattern: "^[0-9]+$" + ext_alt_text: + type: string MediaOriginalInfo: required: @@ -665,15 +1221,40 @@ components: properties: monetizable: type: boolean + source_user: + $ref: "./user.yaml#/components/schemas/UserResultCore" + title: # null character + type: string + description: # null character + type: string + embeddable: + type: boolean + call_to_actions: + $ref: "#/components/schemas/AdditionalMediaInfoCallToActions" - mediaStats: + AdditionalMediaInfoCallToActions: + required: + - "visit_site" + properties: + visit_site: + $ref: "#/components/schemas/AdditionalMediaInfoCallToActionsVisitSite" + + AdditionalMediaInfoCallToActionsVisitSite: + required: + - "url" + properties: + url: + type: string + format: uri + + MediaStats: required: - "viewCount" properties: viewCount: type: integer - extMediaAvailability: + ExtMediaAvailability: # required: # - "status" properties: diff --git a/src/openapi/schemas/typename.yaml b/src/openapi/schemas/typename.yaml index ee88b92..c5a15c7 100644 --- a/src/openapi/schemas/typename.yaml +++ b/src/openapi/schemas/typename.yaml @@ -14,6 +14,7 @@ components: TimelineUser, TimelineTimelineCursor, TweetWithVisibilityResults, + ContextualTweetInterstitial, TimelineTimelineModule, TweetTombstone, TimelinePrompt, @@ -23,4 +24,11 @@ components: Tweet, User, UserUnavailable, + Community, + CommunityDeleteActionUnavailable, + CommunityJoinAction, + CommunityLeaveActionUnavailable, + CommunityTweetPinActionUnavailable, + CommunityInvitesUnavailable, + CommunityJoinRequestsUnavailable, ] diff --git a/src/openapi/schemas/user.yaml b/src/openapi/schemas/user.yaml index 0e48b57..67eb29e 100644 --- a/src/openapi/schemas/user.yaml +++ b/src/openapi/schemas/user.yaml @@ -38,6 +38,7 @@ components: - "super_follow_eligible" - "super_followed_by" - "super_following" + - "profile_image_shape" properties: __typename: @@ -73,6 +74,125 @@ components: super_following: type: boolean default: false + profile_image_shape: + type: string + enum: + - "Circle" + - "Square" + - "Hexagon" + professional: + $ref: "#/components/schemas/UserProfessional" + user_seed_tweet_count: + type: integer + highlights_info: + $ref: "#/components/schemas/UserHighlightsInfo" + creator_subscriptions_count: + type: integer + verification_info: + $ref: "#/components/schemas/UserVerificationInfo" + is_profile_translatable: + type: boolean + + UserProfessional: + required: + - "rest_id" + - "professional_type" + - "category" + properties: + rest_id: + type: string + pattern: "^[0-9]+$" + professional_type: + type: string + enum: ["Business", "Creator"] + category: + type: array + items: + $ref: "#/components/schemas/UserProfessionalCategory" + + UserProfessionalCategory: + required: + - "id" + - "name" + - "icon_name" + properties: + id: + type: integer + name: + type: string # enum + icon_name: + type: string # IconBriefcaseStroke ? + + UserHighlightsInfo: + required: + - "can_highlight_tweets" + - "highlighted_tweets" + properties: + can_highlight_tweets: + type: boolean + highlighted_tweets: + type: string + + UserVerificationInfo: + required: + - "is_identity_verified" + properties: + is_identity_verified: + type: boolean + default: false + reason: + $ref: "#/components/schemas/UserVerificationInfoReason" + + UserVerificationInfoReason: + required: + - "description" + - "verified_since_msec" + - "override_verified_year" + properties: + description: + $ref: "#/components/schemas/UserVerificationInfoReasonDescription" + verified_since_msec: + type: string + pattern: "^-?[0-9]+$" + override_verified_year: + type: integer + + UserVerificationInfoReasonDescription: + required: + - "text" + - "entities" + properties: + text: + type: string + entities: + type: array + items: + $ref: "#/components/schemas/UserVerificationInfoReasonDescriptionEntities" + + UserVerificationInfoReasonDescriptionEntities: + required: + - "from_index" + - "to_index" + - "ref" + properties: + from_index: + type: integer + to_index: + type: integer + ref: + $ref: "#/components/schemas/UserVerificationInfoReasonDescriptionEntitiesRef" + + UserVerificationInfoReasonDescriptionEntitiesRef: + required: + - "url" + - "url_type" + properties: + url: + type: string + format: uri + url_type: + type: string + enum: ["ExternalUrl"] UserLegacy: required: @@ -219,6 +339,13 @@ components: want_retweets: type: boolean default: false + verified_type: + type: string + enum: ["Business", "Government"] + withheld_in_countries: + type: array + items: + type: string # enum DE UserUnavailable: required: diff --git a/test/python/test_serialize.py b/test/python/test_serialize.py index 7ad1732..5c538b0 100644 --- a/test/python/test_serialize.py +++ b/test/python/test_serialize.py @@ -6,11 +6,13 @@ import logging import os import time import traceback +import warnings from pathlib import Path import aenum import openapi_client as pt +warnings.filterwarnings("ignore") logging.basicConfig(level=logging.DEBUG, format="%(asctime)s %(levelname)s %(message)s") logger = logging.getLogger("test_serialize") @@ -19,6 +21,7 @@ ERROR_UNCATCHED = os.environ.get("ERROR_UNCATCHED", "false").lower() == "true" SLEEP_TIME = float(os.environ.get("SLEEP", "0")) CUESOR_TEST_COUNT = int(os.environ.get("CUESOR_TEST_COUNT", "3")) STRICT_MODE = os.environ.get("STRICT_MODE", "false").lower() == "true" +MULTI_THREAD = os.environ.get("MULTI_THREAD", "true").lower() == "true" def get_key(snake_str): @@ -62,13 +65,25 @@ def get_kwargs(key, additional): return kwargs -def match_rate_zero(key): +def match_rate_zero(a, b, base, key): + def get(obj, key): + if isinstance(obj, list): + return get(obj[key[0]], key[1:]) + if obj.__dict__.get("actual_instance") is not None: + return get(obj.actual_instance, key) + if len(key) == 0: + return obj + return get(super_get(obj.__dict__, key[0]), key[1:]) + if STRICT_MODE: - raise Exception(f"Strict mode: {key}") + obj_name = type(get(base, key[:-1])) + obj_key = f"{obj_name.__name__}.{key[-1]}" + raise Exception(f"Not defined: {obj_key}\nContents: {b}") + return 0 -def match_rate(a, b, key=""): +def match_rate(a, b, base, key=""): if isinstance(a, aenum.Enum): a = a.value if isinstance(b, aenum.Enum): @@ -77,26 +92,30 @@ def match_rate(a, b, key=""): return 1 if a is False and b is None: return 1 - if isinstance(a, list): - data = [match_rate(a[i], b[i], key=f"{key}[{i}]") for i in range(len(a))] + if a is None and isinstance(b, list) and len(b) == 0: + return 1 + if isinstance(a, list) and b is None and len(a) == 0: + return 1 + if a is None and isinstance(b, dict) and len(b) == 0: + return 1 + if isinstance(a, dict) and b is None and len(a) == 0: + return 1 + if isinstance(a, dict) and isinstance(b, dict): if len(a) == 0 and len(b) == 0: return 1 - if len(a) == 0 or len(b) == 0: - return match_rate_zero(key) - - data = [match_rate(a.get(k), b.get(k), key=f"{key}.{k}") for k in a.keys()] - - return sum(data) / len(a) + marge_key = set(a.keys()) | set(b.keys()) + data = [match_rate(a.get(k), b.get(k), base, [*key, k]) for k in marge_key] + return sum(data) / len(b) if isinstance(a, list) and isinstance(b, list): if len(a) == 0 and len(b) == 0: return 1 if len(a) != len(b): - return match_rate_zero(key) - data = [match_rate(a[i], b[i], key=f"{key}[{i}]") for i in range(len(a))] + return match_rate_zero(a, b, base, key) + data = [match_rate(a[i], b[i], base, [*key, i]) for i in range(len(a))] return sum(data) / len(a) if a == b: return 1 - return match_rate_zero(key) + return match_rate_zero(a, b, base, key) def save_cache(data): @@ -106,12 +125,29 @@ def save_cache(data): json.dump(data, f, indent=4) +def super_get(obj: dict, key: str): + keys = [ + key, + "".join(["_" + c.lower() if c.isupper() else c for c in key]).lstrip("_"), + ] + + for k in keys: + if obj.get(k) is not None: + return obj[k] + raise KeyError(key) + + def task_callback(file, thread=True): try: with open(file, "r") as f: cache = json.load(f) data = pt.__dict__[cache["type"]].from_json(cache["raw"]) - rate = match_rate(data.to_dict(), json.loads(cache["raw"])) + + rate = match_rate( + data.to_dict(), + json.loads(cache["raw"]), + base=data, + ) return rate, file except Exception: if thread: @@ -149,10 +185,18 @@ if __name__ == "__main__": placeholder = json.load(f) fail = [] - with concurrent.futures.ProcessPoolExecutor() as executor: - tasks = [executor.submit(task_callback, x) for x in glob.glob("cache/*.json")] - for task in concurrent.futures.as_completed(tasks): - rate, file = task.result() + files = glob.glob("cache/*.json") + if MULTI_THREAD: + with concurrent.futures.ProcessPoolExecutor() as executor: + tasks = [executor.submit(task_callback, x) for x in files] + for task in concurrent.futures.as_completed(tasks): + rate, file = task.result() + if rate < 1: + fail.append(file) + logger.info(f"Match rate: {rate}") + else: + for file in files: + rate, file = task_callback(file, thread=False) if rate < 1: fail.append(file) logger.info(f"Match rate: {rate}") @@ -212,7 +256,11 @@ if __name__ == "__main__": new_cursor = set(get_cursor(data, find_cursor)) - cursor_history cursor_list.update(new_cursor) - rate = match_rate(data, json.loads(res.raw_data)) + rate = match_rate( + data, + json.loads(res.raw_data), + res.data, + ) logger.info(f"Match rate: {rate}") if data.get("errors") is not None: @@ -233,7 +281,11 @@ if __name__ == "__main__": res = pt.UserApi(api_client).get_user_by_screen_name_with_http_info(**kwargs) data = res.data.to_dict() - rate = match_rate(data, json.loads(res.raw_data)) + rate = match_rate( + data, + json.loads(res.raw_data), + res.data, + ) logger.info(f"Match rate: {rate}") screen_name = data["data"]["user"]["result"]["legacy"]["screen_name"] if not screen_name == "a810810931931": @@ -248,7 +300,11 @@ if __name__ == "__main__": res = pt.TweetApi(api_client).get_user_tweets_with_http_info(**kwargs) data = res.data.to_dict() - rate = match_rate(data, json.loads(res.raw_data)) + rate = match_rate( + data, + json.loads(res.raw_data), + res.data, + ) logger.info(f"Match rate: {rate}") except Exception as e: @@ -267,7 +323,11 @@ if __name__ == "__main__": res = pt.TweetApi(api_client).get_tweet_detail_with_http_info(**kwargs) data = res.data.to_dict() - rate = match_rate(data, json.loads(res.raw_data)) + rate = match_rate( + data, + json.loads(res.raw_data), + res.data, + ) logger.info(f"Match rate: {rate}") except Exception as e: error_dump(e)