Files
twitter-lite/e2e/generated/twitter-openapi/client.ts
T

2790 lines
76 KiB
TypeScript

/**
* Generated by orval 🍺
* Do not edit manually.
* Twitter OpenAPI
* Twitter OpenAPI(Swagger) specification
* OpenAPI spec version: 0.0.1
*/
export type TypeName = (typeof TypeName)[keyof typeof TypeName];
export const TypeName = {
TimelineTweet: "TimelineTweet",
TimelineTimelineItem: "TimelineTimelineItem",
TimelineUser: "TimelineUser",
TimelineTimelineCursor: "TimelineTimelineCursor",
TweetWithVisibilityResults: "TweetWithVisibilityResults",
ContextualTweetInterstitial: "ContextualTweetInterstitial",
TimelineTimelineModule: "TimelineTimelineModule",
TweetTombstone: "TweetTombstone",
TimelinePrompt: "TimelinePrompt",
TimelineMessagePrompt: "TimelineMessagePrompt",
TimelineCommunity: "TimelineCommunity",
TimelineTombstone: "TimelineTombstone",
TimelineTrend: "TimelineTrend",
TimelineNotification: "TimelineNotification",
TimelineNotificationAggregateUserActions: "TimelineNotificationAggregateUserActions",
TweetUnavailable: "TweetUnavailable",
TweetPreviewDisplay: "TweetPreviewDisplay",
Tweet: "Tweet",
User: "User",
UserUnavailable: "UserUnavailable",
Community: "Community",
CommunityDeleteActionUnavailable: "CommunityDeleteActionUnavailable",
CommunityJoinAction: "CommunityJoinAction",
CommunityJoinActionUnavailable: "CommunityJoinActionUnavailable",
CommunityLeaveActionUnavailable: "CommunityLeaveActionUnavailable",
CommunityTweetPinActionUnavailable: "CommunityTweetPinActionUnavailable",
CommunityTweetUnpinActionUnavailable: "CommunityTweetUnpinActionUnavailable",
CommunityInvitesUnavailable: "CommunityInvitesUnavailable",
CommunityJoinRequestsUnavailable: "CommunityJoinRequestsUnavailable",
CommunityUnavailable: "CommunityUnavailable",
ApiImage: "ApiImage",
TimelineRichTextUser: "TimelineRichTextUser",
} as const;
export type ClientEventInfoDetails = { [key: string]: unknown };
export interface ClientEventInfo {
component?: string;
details?: ClientEventInfoDetails;
element?: string;
}
export type ContentEntryType = (typeof ContentEntryType)[keyof typeof ContentEntryType];
export const ContentEntryType = {
TimelineTimelineItem: "TimelineTimelineItem",
TimelineTimelineCursor: "TimelineTimelineCursor",
TimelineTimelineModule: "TimelineTimelineModule",
} as const;
export interface TextHighlight {
endIndex: number;
startIndex: number;
}
export interface Highlight {
textHighlights: TextHighlight[];
}
export type ContentItemType = (typeof ContentItemType)[keyof typeof ContentItemType];
export const ContentItemType = {
TimelineTweet: "TimelineTweet",
TimelineTimelineCursor: "TimelineTimelineCursor",
TimelineUser: "TimelineUser",
TimelinePrompt: "TimelinePrompt",
TimelineMessagePrompt: "TimelineMessagePrompt",
TimelineCommunity: "TimelineCommunity",
TimelineTombstone: "TimelineTombstone",
TimelineTrend: "TimelineTrend",
TimelineNotification: "TimelineNotification",
} as const;
export type TimelineGeneralContextContextType =
(typeof TimelineGeneralContextContextType)[keyof typeof TimelineGeneralContextContextType];
export const TimelineGeneralContextContextType = {
Follow: "Follow",
Pin: "Pin",
Like: "Like",
Location: "Location",
Sparkle: "Sparkle",
Conversation: "Conversation",
List: "List",
Community: "Community",
Facepile: "Facepile",
} as const;
export type SocialContextLandingUrlUrlType =
(typeof SocialContextLandingUrlUrlType)[keyof typeof SocialContextLandingUrlUrlType];
export const SocialContextLandingUrlUrlType = {
DeepLink: "DeepLink",
UrtEndpoint: "UrtEndpoint",
ExternalUrl: "ExternalUrl",
} as const;
export interface UrtEndpointRequestParams {
key: string;
value: string;
}
export interface UrtEndpointOptions {
requestParams: UrtEndpointRequestParams[];
title: string;
}
export interface SocialContextLandingUrl {
url?: string;
urlType?: SocialContextLandingUrlUrlType;
urtEndpointOptions?: UrtEndpointOptions;
}
export type SocialContextUnionType =
(typeof SocialContextUnionType)[keyof typeof SocialContextUnionType];
export const SocialContextUnionType = {
TimelineGeneralContext: "TimelineGeneralContext",
TimelineTopicContext: "TimelineTopicContext",
} as const;
export interface TimelineGeneralContext {
contextImageUrls?: string[];
contextType?: TimelineGeneralContextContextType;
landingUrl?: SocialContextLandingUrl;
text?: string;
type?: SocialContextUnionType;
}
export type TimelineTopicContextFunctionalityType =
(typeof TimelineTopicContextFunctionalityType)[keyof typeof TimelineTopicContextFunctionalityType];
export const TimelineTopicContextFunctionalityType = {
Basic: "Basic",
} as const;
export interface TopicContext {
description?: string;
following?: boolean;
icon_url?: string;
id?: string;
name?: string;
not_interested?: boolean;
topic_id?: string;
}
export interface TimelineTopicContext {
functionalityType?: TimelineTopicContextFunctionalityType;
topic?: TopicContext;
type?: SocialContextUnionType;
}
export type SocialContextUnion = TimelineGeneralContext | TimelineTopicContext;
export type TimelineTweetTweetDisplayType =
(typeof TimelineTweetTweetDisplayType)[keyof typeof TimelineTweetTweetDisplayType];
export const TimelineTweetTweetDisplayType = {
Tweet: "Tweet",
SelfThread: "SelfThread",
MediaGrid: "MediaGrid",
CondensedTweet: "CondensedTweet",
} as const;
export interface ArticleCoverMediaColorInfoPaletteRGB {
blue: number;
green: number;
red: number;
}
export interface ArticleCoverMediaColorInfoPalette {
percentage: number;
rgb: ArticleCoverMediaColorInfoPaletteRGB;
}
export interface ArticleCoverMediaColorInfo {
palette: ArticleCoverMediaColorInfoPalette[];
}
export interface ArticleCoverMediaInfo {
__typename?: TypeName;
color_info: ArticleCoverMediaColorInfo;
original_img_height: number;
original_img_url: string;
original_img_width: number;
}
export interface ArticleCoverMedia {
id: string;
/** @pattern ^[0-9]+$ */
media_id: string;
media_info: ArticleCoverMediaInfo;
media_key: string;
}
export interface ArticleLifecycleState {
modified_at_secs: number;
}
export interface ArticleMetadata {
first_published_at_secs: number;
}
export type ArticleResultContentState = { [key: string]: unknown };
export interface ArticleResult {
content_state?: ArticleResultContentState;
cover_media?: ArticleCoverMedia;
id: string;
is_grok_summary_eligible?: boolean;
lifecycle_state?: ArticleLifecycleState;
media_entities?: ArticleCoverMedia[];
metadata: ArticleMetadata;
preview_text: string;
/** @pattern ^[0-9]+$ */
rest_id: string;
title: string;
}
export interface ArticleResults {
result: ArticleResult;
}
export interface Article {
article_results: ArticleResults;
}
export type CommunityDeleteActionResultReason =
(typeof CommunityDeleteActionResultReason)[keyof typeof CommunityDeleteActionResultReason];
export const CommunityDeleteActionResultReason = {
Unavailable: "Unavailable",
} as const;
export interface CommunityDeleteActionResult {
__typename: TypeName;
reason: CommunityDeleteActionResultReason;
}
export type _CommunityJoinActionTypename =
(typeof _CommunityJoinActionTypename)[keyof typeof _CommunityJoinActionTypename];
export const _CommunityJoinActionTypename = {
CommunityJoinAction: "CommunityJoinAction",
} as const;
export interface CommunityJoinAction {
__typename: _CommunityJoinActionTypename;
}
export type _CommunityJoinActionUnavailableTypename =
(typeof _CommunityJoinActionUnavailableTypename)[keyof typeof _CommunityJoinActionUnavailableTypename];
export const _CommunityJoinActionUnavailableTypename = {
CommunityJoinActionUnavailable: "CommunityJoinActionUnavailable",
} as const;
export type CommunityJoinActionUnavailableReason =
(typeof CommunityJoinActionUnavailableReason)[keyof typeof CommunityJoinActionUnavailableReason];
export const CommunityJoinActionUnavailableReason = {
ViewerRequestRequired: "ViewerRequestRequired",
} as const;
export interface CommunityJoinActionUnavailable {
__typename: _CommunityJoinActionUnavailableTypename;
message: string;
reason: CommunityJoinActionUnavailableReason;
}
export type CommunityJoinActionResultUnion = CommunityJoinAction | CommunityJoinActionUnavailable;
export type CommunityLeaveActionResultReason =
(typeof CommunityLeaveActionResultReason)[keyof typeof CommunityLeaveActionResultReason];
export const CommunityLeaveActionResultReason = {
ViewerNotMember: "ViewerNotMember",
} as const;
export interface CommunityLeaveActionResult {
__typename: TypeName;
message: string;
reason: CommunityLeaveActionResultReason;
}
export interface CommunityPinActionResult {
__typename: TypeName;
}
export interface CommunityUnpinActionResult {
__typename: TypeName;
}
export interface CommunityActions {
delete_action_result?: CommunityDeleteActionResult;
join_action_result?: CommunityJoinActionResultUnion;
leave_action_result?: CommunityLeaveActionResult;
pin_action_result?: CommunityPinActionResult;
unpin_action_result?: CommunityUnpinActionResult;
}
export interface UserAvatar {
image_url: string;
}
/**
* @pattern ^(Sun|Mon|Tue|Wed|Thu|Fri|Sat) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (0[1-9]|[12][0-9]|3[01]) (0[0-9]|1[0-9]|2[0-3])(: ?)([0-5][0-9])(: ?)([0-5][0-9]) ([+-][0-9]{4}) ([0-9]{4})$
*/
export type TwitterTimeFormat = string;
export interface UserCore {
created_at: TwitterTimeFormat;
name: string;
screen_name: string;
}
export interface UserDmPermissions {
can_dm: boolean;
}
export interface UserHighlightsInfo {
can_highlight_tweets: boolean;
highlighted_tweets: string;
}
export type UserLegacyVerifiedType =
(typeof UserLegacyVerifiedType)[keyof typeof UserLegacyVerifiedType];
export const UserLegacyVerifiedType = {
Business: "Business",
Government: "Government",
} as const;
export type UserLegacyEntities = { [key: string]: unknown };
export type UserLegacyProfileBannerExtensions = { [key: string]: unknown };
export type UserLegacyProfileImageExtensions = { [key: string]: unknown };
export interface UserLegacy {
blocked_by?: boolean;
blocking?: boolean;
can_dm?: boolean;
can_media_tag?: boolean;
created_at?: TwitterTimeFormat;
default_profile: boolean;
default_profile_image: boolean;
description: string;
entities: UserLegacyEntities;
fast_followers_count: number;
favourites_count: number;
follow_request_sent?: boolean;
followed_by?: boolean;
followers_count: number;
following?: boolean;
friends_count: number;
has_custom_timelines: boolean;
is_translator: boolean;
listed_count: number;
location?: string;
media_count: number;
muting?: boolean;
name?: string;
normal_followers_count: number;
notifications?: boolean;
pinned_tweet_ids_str?: string[];
possibly_sensitive: boolean;
profile_banner_extensions?: UserLegacyProfileBannerExtensions;
profile_banner_url?: string;
profile_image_extensions?: UserLegacyProfileImageExtensions;
profile_image_url_https?: string;
profile_interstitial_type: string;
protected?: boolean;
screen_name?: string;
statuses_count: number;
time_zone: string;
translator_type: string;
url?: string;
utc_offset: number;
verified?: boolean;
verified_type?: UserLegacyVerifiedType;
want_retweets?: boolean;
withheld_description: string;
withheld_in_countries?: string[];
withheld_scope: string;
}
export type UserLegacyExtendedProfileBirthdateVisibility =
(typeof UserLegacyExtendedProfileBirthdateVisibility)[keyof typeof UserLegacyExtendedProfileBirthdateVisibility];
export const UserLegacyExtendedProfileBirthdateVisibility = {
Self: "Self",
Public: "Public",
MutualFollow: "MutualFollow",
Followers: "Followers",
Following: "Following",
} as const;
export type UserLegacyExtendedProfileBirthdateYearVisibility =
(typeof UserLegacyExtendedProfileBirthdateYearVisibility)[keyof typeof UserLegacyExtendedProfileBirthdateYearVisibility];
export const UserLegacyExtendedProfileBirthdateYearVisibility = {
Self: "Self",
Public: "Public",
MutualFollow: "MutualFollow",
Followers: "Followers",
Following: "Following",
} as const;
export interface UserLegacyExtendedProfileBirthdate {
day: number;
month: number;
visibility: UserLegacyExtendedProfileBirthdateVisibility;
year?: number;
year_visibility: UserLegacyExtendedProfileBirthdateYearVisibility;
}
export interface UserLegacyExtendedProfile {
birthdate?: UserLegacyExtendedProfileBirthdate;
}
export interface UserLocation {
location: string;
}
export interface UserMediaPermissions {
can_media_tag: boolean;
}
export type UserParodyCommentaryFanLabel =
(typeof UserParodyCommentaryFanLabel)[keyof typeof UserParodyCommentaryFanLabel];
export const UserParodyCommentaryFanLabel = {
None: "None",
Parody: "Parody",
Commentary: "Commentary",
Fan: "Fan",
} as const;
export interface UserPrivacy {
protected: boolean;
}
export interface UserProfessionalCategory {
icon_name: string;
id: number;
name: string;
}
export type UserProfessionalProfessionalType =
(typeof UserProfessionalProfessionalType)[keyof typeof UserProfessionalProfessionalType];
export const UserProfessionalProfessionalType = {
Business: "Business",
Creator: "Creator",
} as const;
export interface UserProfessional {
category?: UserProfessionalCategory[];
professional_type: UserProfessionalProfessionalType;
/** @pattern ^[0-9]+$ */
rest_id: string;
}
export interface ProfileBio {
description: string;
}
export type UserProfileImageShape =
(typeof UserProfileImageShape)[keyof typeof UserProfileImageShape];
export const UserProfileImageShape = {
Circle: "Circle",
Square: "Square",
Hexagon: "Hexagon",
} as const;
export interface UserRelationshipPerspectives {
blocked_by?: boolean;
blocking?: boolean;
followed_by?: boolean;
following?: boolean;
}
export interface SuperFollowUserProfile {
is_active: boolean;
}
export interface UserProfile {
super_follows_user_profile: SuperFollowUserProfile;
}
export interface UserTipJarSettings {
bandcamp_handle?: string;
bitcoin_handle?: string;
cash_app_handle?: string;
ethereum_handle?: string;
gofundme_handle?: string;
is_enabled?: boolean;
patreon_handle?: string;
pay_pal_handle?: string;
venmo_handle?: string;
}
export type UserVerificationVerifiedType =
(typeof UserVerificationVerifiedType)[keyof typeof UserVerificationVerifiedType];
export const UserVerificationVerifiedType = {
Business: "Business",
Government: "Government",
} as const;
export interface UserVerification {
verified: boolean;
verified_type?: UserVerificationVerifiedType;
}
export type UserVerificationInfoReasonDescriptionEntitiesRefUrlType =
(typeof UserVerificationInfoReasonDescriptionEntitiesRefUrlType)[keyof typeof UserVerificationInfoReasonDescriptionEntitiesRefUrlType];
export const UserVerificationInfoReasonDescriptionEntitiesRefUrlType = {
ExternalUrl: "ExternalUrl",
} as const;
export interface UserVerificationInfoReasonDescriptionEntitiesRef {
url: string;
url_type: UserVerificationInfoReasonDescriptionEntitiesRefUrlType;
}
export interface UserVerificationInfoReasonDescriptionEntities {
from_index: number;
ref: UserVerificationInfoReasonDescriptionEntitiesRef;
to_index: number;
}
export interface UserVerificationInfoReasonDescription {
entities: UserVerificationInfoReasonDescriptionEntities[];
text: string;
}
export interface UserVerificationInfoReason {
description: UserVerificationInfoReasonDescription;
override_verified_year?: number;
/** @pattern ^-?[0-9]+$ */
verified_since_msec: string;
}
export interface UserVerificationInfo {
is_identity_verified: boolean;
reason?: UserVerificationInfoReason;
}
export type UserAffiliatesHighlightedLabel = { [key: string]: unknown };
export type UserBusinessAccount = { [key: string]: unknown };
export interface User {
__typename: TypeName;
affiliates_highlighted_label?: UserAffiliatesHighlightedLabel;
avatar?: UserAvatar;
business_account?: UserBusinessAccount;
core?: UserCore;
creator_subscriptions_count?: number;
dm_permissions?: UserDmPermissions;
has_graduated_access?: boolean;
has_hidden_likes_on_profile?: boolean;
has_hidden_subscriptions_on_profile?: boolean;
has_nft_avatar?: boolean;
highlights_info?: UserHighlightsInfo;
/** @pattern ^([A-Za-z0-9+/]{4})*([A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}==)?$ */
id: string;
is_blue_verified: boolean;
is_profile_translatable?: boolean;
legacy: UserLegacy;
legacy_extended_profile?: UserLegacyExtendedProfile;
location?: UserLocation;
media_permissions?: UserMediaPermissions;
parody_commentary_fan_label?: UserParodyCommentaryFanLabel;
premium_gifting_eligible?: boolean;
privacy?: UserPrivacy;
professional?: UserProfessional;
profile_bio?: ProfileBio;
profile_description_language?: string;
profile_image_shape: UserProfileImageShape;
profile_sort_enabled?: boolean;
relationship_perspectives?: UserRelationshipPerspectives;
/** @pattern ^[0-9]+$ */
rest_id: string;
super_follow_eligible?: boolean;
super_followed_by?: boolean;
super_following?: boolean;
super_follows_user_profile?: UserProfile;
tipjar_settings?: UserTipJarSettings;
user_seed_tweet_count?: number;
verification?: UserVerification;
verification_info?: UserVerificationInfo;
verified_user_profiles?: UserProfile;
}
export interface UserUnavailable {
__typename: TypeName;
message?: string;
reason: string;
}
export type UserUnion = User | UserUnavailable;
export interface UserResults {
result?: UserUnion;
}
export type CommunityInvitesPolicy =
(typeof CommunityInvitesPolicy)[keyof typeof CommunityInvitesPolicy];
export const CommunityInvitesPolicy = {
MemberInvitesAllowed: "MemberInvitesAllowed",
ModeratorInvitesAllowed: "ModeratorInvitesAllowed",
} as const;
export type CommunityInvitesResultReason =
(typeof CommunityInvitesResultReason)[keyof typeof CommunityInvitesResultReason];
export const CommunityInvitesResultReason = {
Unavailable: "Unavailable",
} as const;
export interface CommunityInvitesResult {
__typename: TypeName;
message: string;
reason: CommunityInvitesResultReason;
}
export type CommunityJoinPolicy = (typeof CommunityJoinPolicy)[keyof typeof CommunityJoinPolicy];
export const CommunityJoinPolicy = {
Open: "Open",
RestrictedJoinRequestsRequireModeratorApproval: "RestrictedJoinRequestsRequireModeratorApproval",
} as const;
export interface CommunityJoinRequestsResult {
__typename: TypeName;
}
export interface PrimaryCommunityTopic {
/** @pattern ^[0-9]+$ */
topic_id: string;
topic_name: string;
}
export type CommunityRole = (typeof CommunityRole)[keyof typeof CommunityRole];
export const CommunityRole = {
NonMember: "NonMember",
} as const;
export interface CommunityRule {
description?: string;
name: string;
/** @pattern ^[0-9]+$ */
rest_id: string;
}
export interface CommunityUrlsPermalink {
url: string;
}
export interface CommunityUrls {
permalink: CommunityUrlsPermalink;
}
export type CommunityCustomBannerMedia = { [key: string]: unknown };
export type CommunityDefaultBannerMedia = { [key: string]: unknown };
export type CommunityViewerRelationship = { [key: string]: unknown };
export interface Community {
__typename: TypeName;
actions?: CommunityActions;
admin_results?: UserResults;
created_at?: number;
creator_results?: UserResults;
custom_banner_media?: CommunityCustomBannerMedia;
default_banner_media?: CommunityDefaultBannerMedia;
description?: string;
/** @pattern ^[0-9]+$ */
id_str?: string;
invites_policy?: CommunityInvitesPolicy;
invites_result?: CommunityInvitesResult;
is_pinned?: boolean;
join_policy?: CommunityJoinPolicy;
join_requests_result?: CommunityJoinRequestsResult;
member_count?: number;
members_facepile_results?: UserResults[];
moderator_count?: number;
name?: string;
primary_community_topic?: PrimaryCommunityTopic;
question?: string;
role?: CommunityRole;
rules?: CommunityRule[];
search_tags?: string[];
show_only_users_to_display?: string[];
urls?: CommunityUrls;
viewer_relationship?: CommunityViewerRelationship;
}
export interface CommunityUnavailable {
__typename: TypeName;
}
export type CommunityUnion = Community | CommunityUnavailable;
export interface CommunityResult {
result: CommunityUnion;
}
export type AuthorCommunityRelationshipRole =
(typeof AuthorCommunityRelationshipRole)[keyof typeof AuthorCommunityRelationshipRole];
export const AuthorCommunityRelationshipRole = {
Member: "Member",
Moderator: "Moderator",
Admin: "Admin",
NonMember: "NonMember",
} as const;
export interface AuthorCommunityRelationship {
community_results: CommunityResult;
role?: AuthorCommunityRelationshipRole;
user_results?: UserResults;
}
export interface BirdwatchPivotCallToAction {
destinationUrl: string;
prompt: string;
title: string;
}
export type BirdwatchEntityRefType =
(typeof BirdwatchEntityRefType)[keyof typeof BirdwatchEntityRefType];
export const BirdwatchEntityRefType = {
TimelineUrl: "TimelineUrl",
TimelineRichTextHashtag: "TimelineRichTextHashtag",
} as const;
export type BirdwatchEntityRefUrlType =
(typeof BirdwatchEntityRefUrlType)[keyof typeof BirdwatchEntityRefUrlType];
export const BirdwatchEntityRefUrlType = {
ExternalUrl: "ExternalUrl",
} as const;
export interface BirdwatchEntityRef {
text?: string;
type: BirdwatchEntityRefType;
url?: string;
urlType?: BirdwatchEntityRefUrlType;
}
export interface BirdwatchEntity {
fromIndex: number;
ref: BirdwatchEntityRef;
toIndex: number;
}
export interface BirdwatchPivotFooter {
entities: BirdwatchEntity[];
text: string;
}
export type BirdwatchPivotFooterIconType =
(typeof BirdwatchPivotFooterIconType)[keyof typeof BirdwatchPivotFooterIconType];
export const BirdwatchPivotFooterIconType = {
BirdwatchEyeOff: "BirdwatchEyeOff",
} as const;
export type BirdwatchPivotIconType =
(typeof BirdwatchPivotIconType)[keyof typeof BirdwatchPivotIconType];
export const BirdwatchPivotIconType = {
BirdwatchV1Icon: "BirdwatchV1Icon",
BirdwatchCameraVideo: "BirdwatchCameraVideo",
} as const;
export type GrokEntityRefType = (typeof GrokEntityRefType)[keyof typeof GrokEntityRefType];
export const GrokEntityRefType = {
TimelineUrl: "TimelineUrl",
TimelineRichTextHashtag: "TimelineRichTextHashtag",
} as const;
export type GrokEntityRefUrlType = (typeof GrokEntityRefUrlType)[keyof typeof GrokEntityRefUrlType];
export const GrokEntityRefUrlType = {
ExternalUrl: "ExternalUrl",
} as const;
export interface GrokEntityRef {
display_url?: string;
expanded_url?: string;
text?: string;
type: GrokEntityRefType;
url?: string;
url_type?: GrokEntityRefUrlType;
}
export interface GrokEntity {
from_index: string;
ref: GrokEntityRef;
to_index: string;
}
export interface GrokTranslatedCommunityNote {
destination_language: string;
rich_text_entities?: GrokEntity[];
source_language: string;
translation: string;
translation_available: boolean;
}
export interface GrokTranslatedCommunityNoteWithAvailability {
data?: GrokTranslatedCommunityNote;
is_available: boolean;
}
export interface BirdwatchPivotNote {
grok_translated_community_note_with_availability?: GrokTranslatedCommunityNoteWithAvailability;
is_community_note_translatable?: boolean;
language?: string;
/** @pattern ^[0-9]+$ */
rest_id: string;
}
export interface BirdwatchPivotSubtitle {
entities: BirdwatchEntity[];
text: string;
}
export type BirdwatchPivotVisualStyle =
(typeof BirdwatchPivotVisualStyle)[keyof typeof BirdwatchPivotVisualStyle];
export const BirdwatchPivotVisualStyle = {
Default: "Default",
Tentative: "Tentative",
} as const;
export interface BirdwatchPivot {
callToAction?: BirdwatchPivotCallToAction;
destinationUrl: string;
footer?: BirdwatchPivotFooter;
footerIconType?: BirdwatchPivotFooterIconType;
iconType: BirdwatchPivotIconType;
note?: BirdwatchPivotNote;
shorttitle?: string;
subtitle?: BirdwatchPivotSubtitle;
title: string;
titleDetail?: string;
visualStyle?: BirdwatchPivotVisualStyle;
}
export interface TweetCardLegacyBindingValueDataImage {
alt?: string;
height: number;
url: string;
width: number;
}
export interface UserValue {
/** @pattern ^[0-9]+$ */
id_str: string;
}
export type TweetCardLegacyBindingValueDataImageColorValue = { [key: string]: unknown };
export interface TweetCardLegacyBindingValueData {
boolean_value?: boolean;
image_color_value?: TweetCardLegacyBindingValueDataImageColorValue;
image_value?: TweetCardLegacyBindingValueDataImage;
scribe_key?: string;
string_value?: string;
type: string;
user_value?: UserValue;
}
export interface TweetCardLegacyBindingValue {
key: string;
value: TweetCardLegacyBindingValueData;
}
export type TweetCardPlatformAudienceName =
(typeof TweetCardPlatformAudienceName)[keyof typeof TweetCardPlatformAudienceName];
export const TweetCardPlatformAudienceName = {
production: "production",
} as const;
export interface TweetCardPlatformAudience {
name: TweetCardPlatformAudienceName;
}
export interface TweetCardPlatformDevice {
name: string;
/** @pattern ^[0-9]+$ */
version: string;
}
export interface TweetCardPlatform {
audience: TweetCardPlatformAudience;
device: TweetCardPlatformDevice;
}
export interface TweetCardPlatformData {
platform: TweetCardPlatform;
}
export interface TweetCardLegacy {
binding_values: TweetCardLegacyBindingValue[];
card_platform?: TweetCardPlatformData;
name: string;
url: string;
user_refs_results?: UserResults[];
}
export interface TweetCard {
legacy?: TweetCardLegacy;
rest_id?: string;
}
export type CommunityRelationshipModerationState = { [key: string]: unknown };
export interface CommunityRelationship {
actions: CommunityActions;
id: string;
moderation_state: CommunityRelationshipModerationState;
/** @pattern ^[0-9]+$ */
rest_id: string;
}
export interface ContentDisclosureAdvertisingDisclosure {
is_paid_promotion: boolean;
}
export type ContentDisclosureAiGeneratedDisclosureAiGeneratedDetectionSource =
(typeof ContentDisclosureAiGeneratedDisclosureAiGeneratedDetectionSource)[keyof typeof ContentDisclosureAiGeneratedDisclosureAiGeneratedDetectionSource];
export const ContentDisclosureAiGeneratedDisclosureAiGeneratedDetectionSource = {
C2paClient: "C2paClient",
ContentDisclosureAiGeneratedDisclosure: "ContentDisclosureAiGeneratedDisclosure",
UserDeclared: "UserDeclared",
} as const;
export interface ContentDisclosureAiGeneratedDisclosure {
ai_generated_detection_source?: ContentDisclosureAiGeneratedDisclosureAiGeneratedDetectionSource;
can_edit: boolean;
has_ai_generated_media: boolean;
}
export interface ContentDisclosure {
advertising_disclosure?: ContentDisclosureAdvertisingDisclosure;
ai_generated_disclosure?: ContentDisclosureAiGeneratedDisclosure;
}
export interface UserResultCore {
user_results: UserResults;
}
export interface TweetEditControlInitial {
/** @items.pattern ^[0-9]+$ */
edit_tweet_ids: string[];
/** @pattern ^[0-9]+$ */
editable_until_msecs: string;
/** @pattern ^[0-9]+$ */
edits_remaining: string;
is_edit_eligible: boolean;
}
export interface TweetEditControl {
edit_control_initial?: TweetEditControlInitial;
/** @items.pattern ^[0-9]+$ */
edit_tweet_ids?: string[];
/** @pattern ^[0-9]+$ */
editable_until_msecs?: string;
/** @pattern ^[0-9]+$ */
edits_remaining?: string;
/** @pattern ^[0-9]+$ */
initial_tweet_id?: string;
is_edit_eligible?: boolean;
}
export interface TweetEditPrespective {
favorited?: boolean;
retweeted?: boolean;
}
export interface GrokAnnotation {
is_image_editable_by_grok?: boolean;
}
export interface AnalysisResults {
result: Tweet;
}
export type GrokShareAttachmentItemDeepsearchHeadersItem = { [key: string]: unknown };
export interface GrokShareAttachmentItem {
analysis_post_id_results?: AnalysisResults;
deepsearch_headers?: GrokShareAttachmentItemDeepsearchHeadersItem[];
media_urls: string[];
message: string;
}
export interface GrokShareAttachment {
items: GrokShareAttachmentItem[];
}
export interface Hashtag {
[key: string]: unknown;
}
export interface AdditionalMediaInfoCallToActionsUrl {
url: string;
}
export interface AdditionalMediaInfoCallToActions {
visit_site?: AdditionalMediaInfoCallToActionsUrl;
watch_now?: AdditionalMediaInfoCallToActionsUrl;
}
export interface AdditionalMediaInfo {
call_to_actions?: AdditionalMediaInfoCallToActions;
description?: string;
embeddable?: boolean;
monetizable: boolean;
source_user?: UserResultCore;
title?: string;
}
export interface AllowDownloadStatus {
allow_download?: boolean;
}
export type ExtMediaAvailabilityStatus =
(typeof ExtMediaAvailabilityStatus)[keyof typeof ExtMediaAvailabilityStatus];
export const ExtMediaAvailabilityStatus = {
Available: "Available",
Unavailable: "Unavailable",
} as const;
export interface ExtMediaAvailability {
reason?: string;
status?: ExtMediaAvailabilityStatus;
}
export interface GrokImageAnnotation {
prompt: string;
upsampled_prompt: string;
}
export interface MediaResult {
grok_image_annotation?: GrokImageAnnotation;
media_key: string;
}
export interface MediaResults {
result: MediaResult;
}
export interface MediaOriginalInfoFocusRect {
h: number;
w: number;
x: number;
y: number;
}
export interface MediaOriginalInfo {
focus_rects?: MediaOriginalInfoFocusRect[];
height: number;
width: number;
}
export interface SensitiveMediaWarning {
adult_content?: boolean;
graphic_violence?: boolean;
other?: boolean;
}
export type MediaSizeResize = (typeof MediaSizeResize)[keyof typeof MediaSizeResize];
export const MediaSizeResize = {
crop: "crop",
fit: "fit",
} as const;
export interface MediaSize {
h: number;
resize: MediaSizeResize;
w: number;
}
export interface MediaSizes {
large: MediaSize;
medium: MediaSize;
small: MediaSize;
thumb: MediaSize;
}
export type MediaType = (typeof MediaType)[keyof typeof MediaType];
export const MediaType = {
photo: "photo",
video: "video",
animated_gif: "animated_gif",
} as const;
export interface MediaVideoInfoVariant {
bitrate?: number;
content_type: string;
url: string;
}
export interface MediaVideoInfo {
aspect_ratio: number[];
duration_millis?: number;
variants: MediaVideoInfoVariant[];
}
export type MediaFeatures = { [key: string]: unknown };
export interface Media {
additional_media_info?: AdditionalMediaInfo;
allow_download_status?: AllowDownloadStatus;
display_url: string;
expanded_url: string;
ext_alt_text?: string;
ext_media_availability: ExtMediaAvailability;
features?: MediaFeatures;
grok_post_id?: string;
/** @pattern ^[0-9]+$ */
id_str: string;
indices: number[];
media_key: string;
media_results?: MediaResults;
media_url_https: string;
original_info: MediaOriginalInfo;
sensitive_media_warning?: SensitiveMediaWarning;
sizes: MediaSizes;
/** @pattern ^[0-9]+$ */
source_status_id_str?: string;
/** @pattern ^[0-9]+$ */
source_user_id_str?: string;
type: MediaType;
url: string;
video_info?: MediaVideoInfo;
}
export type SmarttagTagInfo = { [key: string]: unknown };
export interface SmarttagTag {
info: SmarttagTagInfo;
}
export interface Smarttag {
indices: number[];
tag: SmarttagTag;
text: string;
}
export interface Symbol {
[key: string]: unknown;
}
export interface Timestamp {
indices: number[];
seconds: number;
text: string;
}
export interface Url {
display_url: string;
expanded_url?: string;
indices: number[];
url: string;
}
export interface UserMention {
[key: string]: unknown;
}
export interface Entities {
hashtags?: Hashtag[];
media?: Media[];
smarttags?: Smarttag[];
symbols?: Symbol[];
timestamps?: Timestamp[];
urls?: Url[];
user_mentions?: UserMention[];
}
export type GrokTranslatedPostAssociatedData = { [key: string]: unknown };
export interface GrokTranslatedPost {
associated_data?: GrokTranslatedPostAssociatedData;
destination_language?: string;
entities?: Entities;
preview_translation?: string;
source_language?: string;
translation?: string;
}
export interface GrokTranslatedPostWithAvailability {
data?: GrokTranslatedPost;
is_available: boolean;
}
export interface MediaStats {
viewCount: number;
}
export type MediaExtendedType = (typeof MediaExtendedType)[keyof typeof MediaExtendedType];
export const MediaExtendedType = {
photo: "photo",
video: "video",
animated_gif: "animated_gif",
} as const;
export type MediaExtendedFeatures = { [key: string]: unknown };
export interface MediaExtended {
additional_media_info?: AdditionalMediaInfo;
allow_download_status?: AllowDownloadStatus;
display_url: string;
expanded_url: string;
ext_alt_text?: string;
ext_media_availability?: ExtMediaAvailability;
features?: MediaExtendedFeatures;
grok_post_id?: string;
/** @pattern ^[0-9]+$ */
id_str: string;
indices: number[];
mediaStats?: MediaStats;
media_key: string;
media_results?: MediaResults;
media_url_https: string;
original_info: MediaOriginalInfo;
sensitive_media_warning?: SensitiveMediaWarning;
sizes: MediaSizes;
/** @pattern ^[0-9]+$ */
source_status_id_str?: string;
/** @pattern ^[0-9]+$ */
source_user_id_str?: string;
type: MediaExtendedType;
url: string;
video_info?: MediaVideoInfo;
}
export interface ExtendedEntities {
media: MediaExtended[];
}
export type TweetLegacyLimitedActions =
(typeof TweetLegacyLimitedActions)[keyof typeof TweetLegacyLimitedActions];
export const TweetLegacyLimitedActions = {
limited_replies: "limited_replies",
non_compliant: "non_compliant",
dynamic_product_ad: "dynamic_product_ad",
stale_tweet: "stale_tweet",
community_tweet_non_member_public_community: "community_tweet_non_member_public_community",
community_tweet_non_member_closed_community: "community_tweet_non_member_closed_community",
blocked_viewer: "blocked_viewer",
} as const;
export interface QuotedStatusPermalink {
display: string;
expanded: string;
url: string;
}
export interface TweetLegacyScopes {
followers: boolean;
}
export interface SelfThread {
/** @pattern ^[0-9]+$ */
id_str: string;
}
export type TweetLegacyConversationControl = { [key: string]: unknown };
export type TweetLegacyPlace = { [key: string]: unknown };
export interface TweetLegacy {
bookmark_count: number;
bookmarked: boolean;
conversation_control?: TweetLegacyConversationControl;
/** @pattern ^[0-9]+$ */
conversation_id_str: string;
created_at: TwitterTimeFormat;
display_text_range: number[];
entities?: Entities;
extended_entities?: ExtendedEntities;
favorite_count: number;
favorited: boolean;
full_text: string;
/** @pattern ^[0-9]+$ */
id_str: string;
in_reply_to_screen_name?: string;
/** @pattern ^[0-9]+$ */
in_reply_to_status_id_str?: string;
/** @pattern ^[0-9]+$ */
in_reply_to_user_id_str?: string;
is_quote_status: boolean;
lang: string;
limited_actions?: TweetLegacyLimitedActions;
place?: TweetLegacyPlace;
possibly_sensitive?: boolean;
possibly_sensitive_editable?: boolean;
quote_count: number;
/** @pattern ^[0-9]+$ */
quoted_status_id_str?: string;
quoted_status_permalink?: QuotedStatusPermalink;
reply_count: number;
retweet_count: number;
retweeted: boolean;
retweeted_status_result?: ItemResult;
scopes?: TweetLegacyScopes;
self_thread?: SelfThread;
/** @pattern ^[0-9]+$ */
user_id_str: string;
}
export interface NoteTweetResultMediaInlineMedia {
index: number;
/** @pattern ^[0-9]+$ */
media_id: string;
}
export interface NoteTweetResultMedia {
inline_media: NoteTweetResultMediaInlineMedia[];
}
export type NoteTweetResultRichTextTagRichtextTypesItem =
(typeof NoteTweetResultRichTextTagRichtextTypesItem)[keyof typeof NoteTweetResultRichTextTagRichtextTypesItem];
export const NoteTweetResultRichTextTagRichtextTypesItem = {
Bold: "Bold",
Italic: "Italic",
} as const;
export interface NoteTweetResultRichTextTag {
from_index: number;
richtext_types: NoteTweetResultRichTextTagRichtextTypesItem[];
to_index: number;
}
export interface NoteTweetResultRichText {
richtext_tags: NoteTweetResultRichTextTag[];
}
export interface NoteTweetResultData {
entity_set: Entities;
/** @pattern ^([A-Za-z0-9+/]{4})*([A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}==)?$ */
id: string;
media?: NoteTweetResultMedia;
richtext?: NoteTweetResultRichText;
text: string;
}
export interface NoteTweetResult {
result: NoteTweetResultData;
}
export interface NoteTweet {
is_expandable?: boolean;
note_tweet_results: NoteTweetResult;
}
export type TweetPostCtaDisplayLocationsItem =
(typeof TweetPostCtaDisplayLocationsItem)[keyof typeof TweetPostCtaDisplayLocationsItem];
export const TweetPostCtaDisplayLocationsItem = {
TweetDetails: "TweetDetails",
ForYouTimeline: "ForYouTimeline",
RepliesTimeline: "RepliesTimeline",
} as const;
export interface PostCtaUserResultsAvatar {
image_url: string;
}
export interface PostCtaUserResultsResult {
__typename: TypeName;
avatar: PostCtaUserResultsAvatar;
}
export interface PostCtaUserResults {
result: PostCtaUserResultsResult;
}
export interface PostCtaTitleTextEntityRef {
__typename: TypeName;
user_results?: PostCtaUserResults;
}
export interface PostCtaTitleTextEntity {
fromIndex: number;
ref: PostCtaTitleTextEntityRef;
toIndex: number;
}
export interface PostCtaTitleText {
entities: PostCtaTitleTextEntity[];
text: string;
}
export interface PostCta {
action_url: string;
background_color: string;
show_chevron: boolean;
stroke_color: string;
title_text: PostCtaTitleText;
}
export interface TweetPostCta {
display_locations: TweetPostCtaDisplayLocationsItem[];
post_cta: PostCta;
scribe_id?: string;
}
export interface TweetPreviousCounts {
bookmark_count: number;
favorite_count: number;
quote_count: number;
reply_count: number;
retweet_count: number;
}
export interface QuotedRefResult {
result?: TweetUnion;
}
export interface SuperFollowsReplyUserResultCore {
screen_name: string;
}
export interface SuperFollowsReplyUserResultData {
__typename: TypeName;
core?: SuperFollowsReplyUserResultCore;
}
export interface SuperFollowsReplyUserResult {
result: SuperFollowsReplyUserResultData;
}
export interface TrendResults {
/** @pattern ^[0-9]+$ */
rest_id: string;
}
export type UnifiedCardCardFetchState =
(typeof UnifiedCardCardFetchState)[keyof typeof UnifiedCardCardFetchState];
export const UnifiedCardCardFetchState = {
NoCard: "NoCard",
} as const;
export interface UnifiedCard {
card_fetch_state: UnifiedCardCardFetchState;
}
export type TweetViewState = (typeof TweetViewState)[keyof typeof TweetViewState];
export const TweetViewState = {
Enabled: "Enabled",
EnabledWithCount: "EnabledWithCount",
} as const;
export interface TweetView {
/** @pattern ^[0-9]+$ */
count?: string;
state: TweetViewState;
}
export type TweetQuickPromoteEligibility = { [key: string]: unknown };
export type TweetUnmentionData = { [key: string]: unknown };
export interface Tweet {
__typename?: TypeName;
article?: Article;
author_community_relationship?: AuthorCommunityRelationship;
birdwatch_pivot?: BirdwatchPivot;
card?: TweetCard;
community_relationship?: CommunityRelationship;
community_results?: CommunityResult;
content_disclosure?: ContentDisclosure;
core?: UserResultCore;
edit_control?: TweetEditControl;
edit_prespective?: TweetEditPrespective;
grok_analysis_button?: boolean;
grok_analysis_followups?: string[];
grok_annotations?: GrokAnnotation;
grok_share_attachment?: GrokShareAttachment;
grok_translated_post_with_availability?: GrokTranslatedPostWithAvailability;
has_birdwatch_notes?: boolean;
is_translatable?: boolean;
legacy?: TweetLegacy;
note_tweet?: NoteTweet;
postCta?: TweetPostCta;
post_image_description?: string;
post_video_description?: string;
previous_counts?: TweetPreviousCounts;
quick_promote_eligibility?: TweetQuickPromoteEligibility;
quotedRefResult?: QuotedRefResult;
quoted_status_result?: ItemResult;
/** @pattern ^[0-9]+$ */
rest_id: string;
source?: string;
superFollowsReplyUserResult?: SuperFollowsReplyUserResult;
trend_results?: TrendResults;
unified_card?: UnifiedCard;
unmention_data?: TweetUnmentionData;
views?: TweetView;
}
export type TweetInterstitialTextEntityRefType =
(typeof TweetInterstitialTextEntityRefType)[keyof typeof TweetInterstitialTextEntityRefType];
export const TweetInterstitialTextEntityRefType = {
TimelineUrl: "TimelineUrl",
} as const;
export type TweetInterstitialTextEntityRefUrlType =
(typeof TweetInterstitialTextEntityRefUrlType)[keyof typeof TweetInterstitialTextEntityRefUrlType];
export const TweetInterstitialTextEntityRefUrlType = {
ExternalUrl: "ExternalUrl",
} as const;
export interface TweetInterstitialTextEntityRef {
type: TweetInterstitialTextEntityRefType;
url: string;
urlType: TweetInterstitialTextEntityRefUrlType;
}
export interface TweetInterstitialTextEntity {
fromIndex: number;
ref: TweetInterstitialTextEntityRef;
toIndex: number;
}
export interface TweetInterstitialText {
entities: TweetInterstitialTextEntity[];
rtl: boolean;
text: string;
}
export interface MediaVisibilityResultsBlurredImageInterstitial {
opacity: number;
text: TweetInterstitialText;
title: TweetInterstitialText;
}
export interface MediaVisibilityResults {
blurred_image_interstitial: MediaVisibilityResultsBlurredImageInterstitial;
}
export type TweetInterstitialDisplayType =
(typeof TweetInterstitialDisplayType)[keyof typeof TweetInterstitialDisplayType];
export const TweetInterstitialDisplayType = {
NonCompliant: "NonCompliant",
EntireTweet: "EntireTweet",
} as const;
export interface TweetInterstitialRevealText {
entities: TweetInterstitialTextEntity[];
rtl: boolean;
text: string;
}
export interface TweetInterstitial {
__typename: TypeName;
displayType: TweetInterstitialDisplayType;
revealText: TweetInterstitialRevealText;
text: TweetInterstitialText;
}
export type TweetWithVisibilityResultsLimitedActionResults = { [key: string]: unknown };
export interface TweetWithVisibilityResults {
__typename: TypeName;
limitedActionResults?: TweetWithVisibilityResultsLimitedActionResults;
mediaVisibilityResults?: MediaVisibilityResults;
tweet: Tweet;
tweetInterstitial?: TweetInterstitial;
}
export interface TweetTombstone {
__typename?: TypeName;
[key: string]: unknown;
}
export interface TweetUnavailable {
__typename?: TypeName;
reason?: string;
}
export type TweetPreviewDisplayCtaUrlUrlType =
(typeof TweetPreviewDisplayCtaUrlUrlType)[keyof typeof TweetPreviewDisplayCtaUrlUrlType];
export const TweetPreviewDisplayCtaUrlUrlType = {
DeepLink: "DeepLink",
UrtEndpoint: "UrtEndpoint",
ExternalUrl: "ExternalUrl",
} as const;
export interface TweetPreviewDisplayCtaUrl {
url: string;
urlType: TweetPreviewDisplayCtaUrlUrlType;
}
export interface TweetPreviewDisplayCta {
title: string;
url: TweetPreviewDisplayCtaUrl;
}
export type LimitedActionResultsDataAction =
(typeof LimitedActionResultsDataAction)[keyof typeof LimitedActionResultsDataAction];
export const LimitedActionResultsDataAction = {
Reply: "Reply",
Retweet: "Retweet",
QuoteTweet: "QuoteTweet",
Like: "Like",
React: "React",
AddToBookmarks: "AddToBookmarks",
AddToMoment: "AddToMoment",
PinToProfile: "PinToProfile",
ViewHiddenReplies: "ViewHiddenReplies",
VoteOnPoll: "VoteOnPoll",
ShowRetweetActionMenu: "ShowRetweetActionMenu",
ReplyDownVote: "ReplyDownVote",
SendViaDm: "SendViaDm",
ViewPostEngagements: "ViewPostEngagements",
} as const;
export interface LimitedActionResultsData {
action: LimitedActionResultsDataAction;
}
export interface TweetLimitedActionResults {
limited_actions: LimitedActionResultsData[];
}
export interface ArticlePreview {
article_id: number;
cover_media?: ArticleCoverMedia;
preview_text: string;
title: string;
}
export interface TweetPreviewDisplayTweetViewCount {
/** @pattern ^[0-9]+$ */
count: string;
}
export type TweetPreviewDisplayTweetEntities = { [key: string]: unknown };
export interface TweetPreviewDisplayTweet {
article_preview?: ArticlePreview;
bookmark_count: number;
core: UserResultCore;
created_at: TwitterTimeFormat;
entities: TweetPreviewDisplayTweetEntities;
favorite_count: number;
quote_count: number;
reply_count: number;
/** @pattern ^[0-9]+$ */
rest_id: string;
retweet_count: number;
text: string;
view_count: TweetPreviewDisplayTweetViewCount;
}
export interface TweetPreviewDisplay {
__typename: TypeName;
cta: TweetPreviewDisplayCta;
limited_action_results: TweetLimitedActionResults;
tweet: TweetPreviewDisplayTweet;
}
export type TweetUnion =
| Tweet
| TweetWithVisibilityResults
| TweetTombstone
| TweetUnavailable
| TweetPreviewDisplay;
export interface ItemResult {
__typename?: TypeName;
result?: TweetUnion;
}
export type TimelineTweetPromotedMetadata = { [key: string]: unknown };
export interface TimelineTweet {
__typename: TypeName;
hasModeratedReplies?: boolean;
highlights?: Highlight;
itemType: ContentItemType;
promotedMetadata?: TimelineTweetPromotedMetadata;
socialContext?: SocialContextUnion;
tweetDisplayType: TimelineTweetTweetDisplayType;
tweet_results: ItemResult;
}
export type CursorType = (typeof CursorType)[keyof typeof CursorType];
export const CursorType = {
Top: "Top",
Bottom: "Bottom",
ShowMore: "ShowMore",
ShowMoreThreads: "ShowMoreThreads",
Gap: "Gap",
ShowMoreThreadsPrompt: "ShowMoreThreadsPrompt",
} as const;
export interface DisplayTreatment {
actionText: string;
labelText?: string;
}
export interface TimelineTimelineCursor {
__typename: TypeName;
cursorType: CursorType;
displayTreatment?: DisplayTreatment;
entryType?: ContentEntryType;
itemType?: ContentEntryType;
stopOnEmptyResponse?: boolean;
value: string;
}
export type TimelineUserUserDisplayType =
(typeof TimelineUserUserDisplayType)[keyof typeof TimelineUserUserDisplayType];
export const TimelineUserUserDisplayType = {
User: "User",
UserDetailed: "UserDetailed",
SubscribableUser: "SubscribableUser",
UserConcise: "UserConcise",
} as const;
export interface TimelineUser {
__typename: TypeName;
itemType: ContentItemType;
socialContext?: SocialContextUnion;
userDisplayType: TimelineUserUserDisplayType;
user_results: UserResults;
}
export interface TimelinePrompt {
__typename?: TypeName;
[key: string]: unknown;
}
export interface TimelineMessagePrompt {
__typename?: TypeName;
[key: string]: unknown;
}
export interface TimelineCommunity {
__typename?: TypeName;
[key: string]: unknown;
}
export type TimelineTombstoneTombstoneDisplayType =
(typeof TimelineTombstoneTombstoneDisplayType)[keyof typeof TimelineTombstoneTombstoneDisplayType];
export const TimelineTombstoneTombstoneDisplayType = {
Inline: "Inline",
} as const;
export type TombstoneRefType = (typeof TombstoneRefType)[keyof typeof TombstoneRefType];
export const TombstoneRefType = {
TimelineUrl: "TimelineUrl",
} as const;
export type TombstoneRefUrlType = (typeof TombstoneRefUrlType)[keyof typeof TombstoneRefUrlType];
export const TombstoneRefUrlType = {
ExternalUrl: "ExternalUrl",
} as const;
export interface TombstoneRef {
type?: TombstoneRefType;
url?: string;
urlType?: TombstoneRefUrlType;
}
export interface TombstoneEntity {
fromIndex?: number;
ref?: TombstoneRef;
toIndex?: number;
}
export interface TombstoneRichText {
entities?: TombstoneEntity[];
rtl?: boolean;
text?: string;
}
export interface TombstoneInfo {
richText?: TombstoneRichText;
text?: string;
}
export interface TimelineTombstone {
__typename?: TypeName;
itemType?: ContentItemType;
tombstoneDisplayType?: TimelineTombstoneTombstoneDisplayType;
tombstoneInfo?: TombstoneInfo;
}
export interface TrendImage {
url?: string;
}
export interface ThumbnailImage {
original_img_height?: number;
original_img_url?: string;
original_img_width?: number;
}
export interface TrendMetadata {
url?: SocialContextLandingUrl;
}
export interface TimelineTrend {
__typename: TypeName;
images?: TrendImage[];
is_ai_trend?: boolean;
itemType?: ContentItemType;
name: string;
social_context?: SocialContextUnion;
thumbnail_image?: ThumbnailImage;
trend_metadata: TrendMetadata;
trend_url: SocialContextLandingUrl;
}
export interface RichMessage {
rtl?: boolean;
text?: string;
}
export type NotificationTemplateFromUsersItem = { [key: string]: unknown };
export type NotificationTemplateTargetObjectsItem = { [key: string]: unknown };
export interface NotificationTemplate {
__typename?: TypeName;
from_users?: NotificationTemplateFromUsersItem[];
target_objects?: NotificationTemplateTargetObjectsItem[];
}
export interface TimelineNotification {
__typename: TypeName;
id: string;
itemType: ContentItemType;
notification_icon: string;
notification_url: SocialContextLandingUrl;
rich_message: RichMessage;
template: NotificationTemplate;
timestamp_ms: string;
}
export type ItemContentUnion =
| TimelineTweet
| TimelineTimelineCursor
| TimelineUser
| TimelinePrompt
| TimelineMessagePrompt
| TimelineCommunity
| TimelineTombstone
| TimelineTrend
| TimelineNotification;
export type TimelineTimelineItemFeedbackInfo = { [key: string]: unknown };
export interface TimelineTimelineItem {
__typename: TypeName;
clientEventInfo?: ClientEventInfo;
entryType: ContentEntryType;
feedbackInfo?: TimelineTimelineItemFeedbackInfo;
itemContent: ItemContentUnion;
}
export type DisplayType = (typeof DisplayType)[keyof typeof DisplayType];
export const DisplayType = {
Vertical: "Vertical",
VerticalConversation: "VerticalConversation",
VerticalGrid: "VerticalGrid",
Carousel: "Carousel",
} as const;
export interface FeedbackInfo {
clientEventInfo?: ClientEventInfo;
feedbackKeys?: string[];
}
export interface ModuleEntry {
clientEventInfo?: ClientEventInfo;
feedbackInfo?: FeedbackInfo;
itemContent: ItemContentUnion;
}
export interface ModuleItem {
dispensable?: boolean;
/** @pattern ^(([a-zA-Z]+|[0-9]+|[0-9a-f]+)(-|$))+ */
entryId: string;
item: ModuleEntry;
}
export type TimelineTimelineModuleFooter = { [key: string]: unknown };
export type TimelineTimelineModuleHeader = { [key: string]: unknown };
export type TimelineTimelineModuleMetadata = { [key: string]: unknown };
export interface TimelineTimelineModule {
__typename: TypeName;
clientEventInfo?: ClientEventInfo;
displayType: DisplayType;
entryType: ContentEntryType;
feedbackInfo?: FeedbackInfo;
footer?: TimelineTimelineModuleFooter;
header?: TimelineTimelineModuleHeader;
items?: ModuleItem[];
metadata?: TimelineTimelineModuleMetadata;
}
export type ContentUnion = TimelineTimelineItem | TimelineTimelineModule | TimelineTimelineCursor;
export interface TimelineAddEntry {
content: ContentUnion;
/** @pattern ^(([a-zA-Z]+|[0-9]+|[0-9a-f]+)(-|$))+ */
entryId: string;
/** @pattern [0-9]+$ */
sortIndex: string;
}
export type InstructionType = (typeof InstructionType)[keyof typeof InstructionType];
export const InstructionType = {
TimelineAddEntries: "TimelineAddEntries",
TimelineAddToModule: "TimelineAddToModule",
TimelineClearCache: "TimelineClearCache",
TimelinePinEntry: "TimelinePinEntry",
TimelineReplaceEntry: "TimelineReplaceEntry",
TimelineShowAlert: "TimelineShowAlert",
TimelineTerminateTimeline: "TimelineTerminateTimeline",
TimelineShowCover: "TimelineShowCover",
TimelineClearEntriesUnreadState: "TimelineClearEntriesUnreadState",
TimelineMarkEntriesUnreadGreaterThanSortIndex: "TimelineMarkEntriesUnreadGreaterThanSortIndex",
} as const;
export interface TimelineAddEntries {
entries: TimelineAddEntry[];
type: InstructionType;
}
export interface TimelineAddToModule {
moduleEntryId: string;
moduleItems: ModuleItem[];
prepend?: boolean;
type: InstructionType;
}
export interface TimelineClearCache {
type: InstructionType;
}
export interface TimelinePinEntry {
entry: TimelineAddEntry;
type: InstructionType;
}
export interface TimelineReplaceEntry {
entry: TimelineAddEntry;
entry_id_to_replace: string;
type: InstructionType;
}
export type TimelineShowAlertAlertType =
(typeof TimelineShowAlertAlertType)[keyof typeof TimelineShowAlertAlertType];
export const TimelineShowAlertAlertType = {
NewTweets: "NewTweets",
} as const;
export type TimelineShowAlertDisplayLocation =
(typeof TimelineShowAlertDisplayLocation)[keyof typeof TimelineShowAlertDisplayLocation];
export const TimelineShowAlertDisplayLocation = {
Top: "Top",
} as const;
export type TimelineShowAlertColorConfig = { [key: string]: unknown };
export type TimelineShowAlertIconDisplayInfo = { [key: string]: unknown };
export type TimelineShowAlertRichTextEntitiesItem = { [key: string]: unknown };
export type TimelineShowAlertRichText = {
entities?: TimelineShowAlertRichTextEntitiesItem[];
text?: string;
};
export interface TimelineShowAlert {
alertType?: TimelineShowAlertAlertType;
clientEventInfo?: ClientEventInfo;
colorConfig?: TimelineShowAlertColorConfig;
displayDurationMs?: number;
displayLocation?: TimelineShowAlertDisplayLocation;
iconDisplayInfo?: TimelineShowAlertIconDisplayInfo;
richText: TimelineShowAlertRichText;
triggerDelayMs?: number;
type: InstructionType;
usersResults: UserResults[];
}
export type TimelineTerminateTimelineDirection =
(typeof TimelineTerminateTimelineDirection)[keyof typeof TimelineTerminateTimelineDirection];
export const TimelineTerminateTimelineDirection = {
Top: "Top",
Bottom: "Bottom",
TopAndBottom: "TopAndBottom",
} as const;
export interface TimelineTerminateTimeline {
direction: TimelineTerminateTimelineDirection;
type: InstructionType;
}
export type TimelineHalfCoverHalfCoverDisplayType =
(typeof TimelineHalfCoverHalfCoverDisplayType)[keyof typeof TimelineHalfCoverHalfCoverDisplayType];
export const TimelineHalfCoverHalfCoverDisplayType = {
Cover: "Cover",
} as const;
export interface Callback {
endpoint: string;
}
export type CoverCtaButtonStyle = (typeof CoverCtaButtonStyle)[keyof typeof CoverCtaButtonStyle];
export const CoverCtaButtonStyle = {
Primary: "Primary",
} as const;
export type CtaClientEventInfoAction =
(typeof CtaClientEventInfoAction)[keyof typeof CtaClientEventInfoAction];
export const CtaClientEventInfoAction = {
primary_cta: "primary_cta",
} as const;
export interface CtaClientEventInfo {
action: CtaClientEventInfoAction;
}
export type TimelineCoverBehaviorType =
(typeof TimelineCoverBehaviorType)[keyof typeof TimelineCoverBehaviorType];
export const TimelineCoverBehaviorType = {
TimelineCoverBehaviorDismiss: "TimelineCoverBehaviorDismiss",
TimelineCoverBehaviorNavigate: "TimelineCoverBehaviorNavigate",
} as const;
export type TimelineCoverBehaviorUrlUrlType =
(typeof TimelineCoverBehaviorUrlUrlType)[keyof typeof TimelineCoverBehaviorUrlUrlType];
export const TimelineCoverBehaviorUrlUrlType = {
ExternalUrl: "ExternalUrl",
} as const;
export interface TimelineCoverBehaviorUrl {
url: string;
url_type: TimelineCoverBehaviorUrlUrlType;
}
export interface TimelineCoverBehavior {
type: TimelineCoverBehaviorType;
url?: TimelineCoverBehaviorUrl;
}
export interface CoverCta {
Text?: string;
buttonStyle?: CoverCtaButtonStyle;
callbacks: Callback[];
clientEventInfo: CtaClientEventInfo;
ctaBehavior: TimelineCoverBehavior;
}
export type TextEntityRefType = (typeof TextEntityRefType)[keyof typeof TextEntityRefType];
export const TextEntityRefType = {
TimelineUrl: "TimelineUrl",
} as const;
export type TextEntityRefUrlType = (typeof TextEntityRefUrlType)[keyof typeof TextEntityRefUrlType];
export const TextEntityRefUrlType = {
ExternalUrl: "ExternalUrl",
} as const;
export interface TextEntityRef {
type: TextEntityRefType;
url: string;
urlType: TextEntityRefUrlType;
}
export interface TextEntity {
fromIndex: number;
ref: TextEntityRef;
toIndex: number;
}
export interface Text {
entities: TextEntity[];
text: string;
}
export type TimelineHalfCoverType =
(typeof TimelineHalfCoverType)[keyof typeof TimelineHalfCoverType];
export const TimelineHalfCoverType = {
TimelineHalfCover: "TimelineHalfCover",
} as const;
export interface TimelineHalfCover {
dismissible: boolean;
halfCoverDisplayType: TimelineHalfCoverHalfCoverDisplayType;
impressionCallbacks: Callback[];
primaryCoverCta: CoverCta;
primaryText: Text;
secondaryText: Text;
type: TimelineHalfCoverType;
}
export interface TimelineShowCover {
clientEventInfo: ClientEventInfo;
cover: TimelineHalfCover;
type: InstructionType;
}
export interface TimelineClearEntriesUnreadState {
type: InstructionType;
}
export interface TimelineMarkEntriesUnreadGreaterThanSortIndex {
/** @pattern [0-9]+$ */
sort_index?: string;
type: InstructionType;
}
export type InstructionUnion =
| TimelineAddEntries
| TimelineAddToModule
| TimelineClearCache
| TimelinePinEntry
| TimelineReplaceEntry
| TimelineShowAlert
| TimelineTerminateTimeline
| TimelineShowCover
| TimelineClearEntriesUnreadState
| TimelineMarkEntriesUnreadGreaterThanSortIndex;
export type TimelineMetadata = { [key: string]: unknown };
export type TimelineResponseObjects = { [key: string]: unknown };
export interface Timeline {
instructions: InstructionUnion[];
metadata?: TimelineMetadata;
responseObjects?: TimelineResponseObjects;
}
export interface TimelineResult {
id?: string;
timeline?: Timeline;
}
export interface ListTweetsTimelineList {
tweets_timeline: TimelineResult;
}
export interface ListTweetsTimelineData {
list: ListTweetsTimelineList;
}
export interface Tracing {
/** @pattern ^[0-9a-f]{16}$ */
trace_id: string;
}
export interface ErrorExtensions {
code: number;
kind: string;
name: string;
retry_after?: number;
source: string;
tracing: Tracing;
}
export interface Location {
column: number;
line: number;
}
export interface ErrorResponse {
code: number;
extensions: ErrorExtensions;
kind: string;
locations: Location[];
message: string;
name: string;
path: (string | number)[];
retry_after?: number;
source: string;
tracing: Tracing;
}
export interface ListLatestTweetsTimelineResponse {
data: ListTweetsTimelineData;
errors?: ErrorResponse[];
}
export interface SearchTimeline {
timeline: Timeline;
}
export interface SearchByRawQuery {
search_timeline: SearchTimeline;
}
export interface SearchTimelineData {
search_by_raw_query: SearchByRawQuery;
}
export interface SearchTimelineResponse {
data: SearchTimelineData;
errors?: ErrorResponse[];
}
export interface TweetDetailResponseData {
threaded_conversation_with_injections_v2?: Timeline;
}
export interface TweetDetailResponse {
data: TweetDetailResponseData;
errors?: ErrorResponse[];
}
export interface UserResponseData {
user?: UserResults;
}
export interface UserResponse {
data: UserResponseData;
errors?: ErrorResponse[];
}
export interface UserTweetsResultV1 {
__typename: TypeName;
timeline: TimelineResult;
}
export interface UserTweetsUser {
result: UserTweetsResultV1;
}
export interface UserTweetsData {
user?: UserTweetsUser;
}
export interface UserTweetsResponse {
data: UserTweetsData;
errors?: ErrorResponse[];
}
export type GetListLatestTweetsTimelineParams = {
variables: {
count: number;
listId: string;
};
features: {
articles_preview_enabled: boolean;
c9s_tweet_anatomy_moderator_badge_enabled: boolean;
communities_web_enable_tweet_community_results_fetch: boolean;
creator_subscriptions_quote_tweet_preview_enabled: boolean;
creator_subscriptions_tweet_preview_api_enabled: boolean;
freedom_of_speech_not_reach_fetch_enabled: boolean;
graphql_is_translatable_rweb_tweet_is_translatable_enabled: boolean;
longform_notetweets_consumption_enabled: boolean;
longform_notetweets_inline_media_enabled: boolean;
longform_notetweets_rich_text_read_enabled: boolean;
payments_enabled: boolean;
premium_content_api_read_enabled: boolean;
profile_label_improvements_pcf_label_in_post_enabled: boolean;
responsive_web_edit_tweet_api_enabled: boolean;
responsive_web_enhance_cards_enabled: boolean;
responsive_web_graphql_skip_user_profile_image_extensions_enabled: boolean;
responsive_web_graphql_timeline_navigation_enabled: boolean;
responsive_web_grok_analysis_button_from_backend: boolean;
responsive_web_grok_analyze_button_fetch_trends_enabled: boolean;
responsive_web_grok_analyze_post_followups_enabled: boolean;
responsive_web_grok_community_note_auto_translation_is_enabled: boolean;
responsive_web_grok_image_annotation_enabled: boolean;
responsive_web_grok_imagine_annotation_enabled: boolean;
responsive_web_grok_share_attachment_enabled: boolean;
responsive_web_grok_show_grok_translated_post: boolean;
responsive_web_jetfuel_frame: boolean;
responsive_web_profile_redirect_enabled: boolean;
responsive_web_twitter_article_tweet_consumption_enabled: boolean;
rweb_tipjar_consumption_enabled: boolean;
rweb_video_screen_enabled: boolean;
standardized_nudges_misinfo: boolean;
tweet_awards_web_tipping_enabled: boolean;
tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled: boolean;
verified_phone_label_enabled: boolean;
view_counts_everywhere_api_enabled: boolean;
};
};
export type GetSearchTimelineParams = {
variables: {
count: number;
product: string;
querySource: string;
rawQuery: string;
};
features: {
articles_preview_enabled: boolean;
c9s_tweet_anatomy_moderator_badge_enabled: boolean;
communities_web_enable_tweet_community_results_fetch: boolean;
content_disclosure_ai_generated_indicator_enabled: boolean;
content_disclosure_indicator_enabled: boolean;
creator_subscriptions_tweet_preview_api_enabled: boolean;
freedom_of_speech_not_reach_fetch_enabled: boolean;
graphql_is_translatable_rweb_tweet_is_translatable_enabled: boolean;
longform_notetweets_consumption_enabled: boolean;
longform_notetweets_inline_media_enabled: boolean;
longform_notetweets_rich_text_read_enabled: boolean;
post_ctas_fetch_enabled: boolean;
premium_content_api_read_enabled: boolean;
profile_label_improvements_pcf_label_in_post_enabled: boolean;
responsive_web_edit_tweet_api_enabled: boolean;
responsive_web_enhance_cards_enabled: boolean;
responsive_web_graphql_skip_user_profile_image_extensions_enabled: boolean;
responsive_web_graphql_timeline_navigation_enabled: boolean;
responsive_web_grok_analysis_button_from_backend: boolean;
responsive_web_grok_analyze_button_fetch_trends_enabled: boolean;
responsive_web_grok_analyze_post_followups_enabled: boolean;
responsive_web_grok_annotations_enabled: boolean;
responsive_web_grok_community_note_auto_translation_is_enabled: boolean;
responsive_web_grok_image_annotation_enabled: boolean;
responsive_web_grok_imagine_annotation_enabled: boolean;
responsive_web_grok_share_attachment_enabled: boolean;
responsive_web_grok_show_grok_translated_post: boolean;
responsive_web_jetfuel_frame: boolean;
responsive_web_profile_redirect_enabled: boolean;
responsive_web_twitter_article_tweet_consumption_enabled: boolean;
rweb_cashtags_composer_attachment_enabled: boolean;
rweb_cashtags_enabled: boolean;
rweb_conversational_replies_downvote_enabled: boolean;
rweb_tipjar_consumption_enabled: boolean;
rweb_video_screen_enabled: boolean;
standardized_nudges_misinfo: boolean;
tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled: boolean;
verified_phone_label_enabled: boolean;
view_counts_everywhere_api_enabled: boolean;
};
};
export type GetTweetDetailParams = {
variables: {
focalTweetId: string;
includePromotedContent: boolean;
rankingMode: string;
referrer: string;
withBirdwatchNotes: boolean;
withCommunity: boolean;
withQuickPromoteEligibilityTweetFields: boolean;
withVoice: boolean;
with_rux_injections: boolean;
};
features: {
articles_preview_enabled: boolean;
c9s_tweet_anatomy_moderator_badge_enabled: boolean;
communities_web_enable_tweet_community_results_fetch: boolean;
content_disclosure_ai_generated_indicator_enabled: boolean;
content_disclosure_indicator_enabled: boolean;
creator_subscriptions_tweet_preview_api_enabled: boolean;
freedom_of_speech_not_reach_fetch_enabled: boolean;
graphql_is_translatable_rweb_tweet_is_translatable_enabled: boolean;
longform_notetweets_consumption_enabled: boolean;
longform_notetweets_inline_media_enabled: boolean;
longform_notetweets_rich_text_read_enabled: boolean;
post_ctas_fetch_enabled: boolean;
premium_content_api_read_enabled: boolean;
profile_label_improvements_pcf_label_in_post_enabled: boolean;
responsive_web_edit_tweet_api_enabled: boolean;
responsive_web_enhance_cards_enabled: boolean;
responsive_web_graphql_skip_user_profile_image_extensions_enabled: boolean;
responsive_web_graphql_timeline_navigation_enabled: boolean;
responsive_web_grok_analysis_button_from_backend: boolean;
responsive_web_grok_analyze_button_fetch_trends_enabled: boolean;
responsive_web_grok_analyze_post_followups_enabled: boolean;
responsive_web_grok_annotations_enabled: boolean;
responsive_web_grok_community_note_auto_translation_is_enabled: boolean;
responsive_web_grok_image_annotation_enabled: boolean;
responsive_web_grok_imagine_annotation_enabled: boolean;
responsive_web_grok_share_attachment_enabled: boolean;
responsive_web_grok_show_grok_translated_post: boolean;
responsive_web_jetfuel_frame: boolean;
responsive_web_profile_redirect_enabled: boolean;
responsive_web_twitter_article_tweet_consumption_enabled: boolean;
rweb_cashtags_composer_attachment_enabled: boolean;
rweb_cashtags_enabled: boolean;
rweb_conversational_replies_downvote_enabled: boolean;
rweb_tipjar_consumption_enabled: boolean;
rweb_video_screen_enabled: boolean;
standardized_nudges_misinfo: boolean;
tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled: boolean;
verified_phone_label_enabled: boolean;
view_counts_everywhere_api_enabled: boolean;
};
fieldToggles: {
withArticlePlainText: boolean;
withArticleRichContentState: boolean;
withArticleSummaryText: boolean;
withArticleVoiceOver: boolean;
withDisallowedReplyControls: boolean;
withGrokAnalyze: boolean;
};
};
export type GetUserByScreenNameParams = {
variables: {
screen_name: string;
};
features: {
creator_subscriptions_tweet_preview_api_enabled: boolean;
hidden_profile_subscriptions_enabled: boolean;
highlights_tweets_tab_ui_enabled: boolean;
profile_label_improvements_pcf_label_in_post_enabled: boolean;
responsive_web_graphql_skip_user_profile_image_extensions_enabled: boolean;
responsive_web_graphql_timeline_navigation_enabled: boolean;
responsive_web_profile_redirect_enabled: boolean;
responsive_web_twitter_article_notes_tab_enabled: boolean;
rweb_tipjar_consumption_enabled: boolean;
subscriptions_feature_can_gift_premium: boolean;
subscriptions_verification_info_is_identity_verified_enabled: boolean;
subscriptions_verification_info_verified_since_enabled: boolean;
verified_phone_label_enabled: boolean;
};
fieldToggles: {
withAuxiliaryUserLabels: boolean;
withPayments: boolean;
};
};
export type GetUserTweetsParams = {
variables: {
count: number;
includePromotedContent: boolean;
userId: string;
withQuickPromoteEligibilityTweetFields: boolean;
withVoice: boolean;
};
features: {
articles_preview_enabled: boolean;
c9s_tweet_anatomy_moderator_badge_enabled: boolean;
communities_web_enable_tweet_community_results_fetch: boolean;
content_disclosure_ai_generated_indicator_enabled: boolean;
content_disclosure_indicator_enabled: boolean;
creator_subscriptions_tweet_preview_api_enabled: boolean;
freedom_of_speech_not_reach_fetch_enabled: boolean;
graphql_is_translatable_rweb_tweet_is_translatable_enabled: boolean;
longform_notetweets_consumption_enabled: boolean;
longform_notetweets_inline_media_enabled: boolean;
longform_notetweets_rich_text_read_enabled: boolean;
post_ctas_fetch_enabled: boolean;
premium_content_api_read_enabled: boolean;
profile_label_improvements_pcf_label_in_post_enabled: boolean;
responsive_web_edit_tweet_api_enabled: boolean;
responsive_web_enhance_cards_enabled: boolean;
responsive_web_graphql_skip_user_profile_image_extensions_enabled: boolean;
responsive_web_graphql_timeline_navigation_enabled: boolean;
responsive_web_grok_analysis_button_from_backend: boolean;
responsive_web_grok_analyze_button_fetch_trends_enabled: boolean;
responsive_web_grok_analyze_post_followups_enabled: boolean;
responsive_web_grok_annotations_enabled: boolean;
responsive_web_grok_community_note_auto_translation_is_enabled: boolean;
responsive_web_grok_image_annotation_enabled: boolean;
responsive_web_grok_imagine_annotation_enabled: boolean;
responsive_web_grok_share_attachment_enabled: boolean;
responsive_web_grok_show_grok_translated_post: boolean;
responsive_web_jetfuel_frame: boolean;
responsive_web_profile_redirect_enabled: boolean;
responsive_web_twitter_article_tweet_consumption_enabled: boolean;
rweb_cashtags_composer_attachment_enabled: boolean;
rweb_cashtags_enabled: boolean;
rweb_conversational_replies_downvote_enabled: boolean;
rweb_tipjar_consumption_enabled: boolean;
rweb_video_screen_enabled: boolean;
standardized_nudges_misinfo: boolean;
tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled: boolean;
verified_phone_label_enabled: boolean;
view_counts_everywhere_api_enabled: boolean;
};
fieldToggles: {
withArticlePlainText: boolean;
};
};
export type getListLatestTweetsTimelineResponse200 = {
data: ListLatestTweetsTimelineResponse;
status: 200;
};
export type getListLatestTweetsTimelineResponseSuccess = getListLatestTweetsTimelineResponse200 & {
headers: Headers;
};
export type getListLatestTweetsTimelineResponse = getListLatestTweetsTimelineResponseSuccess;
export const getGetListLatestTweetsTimelineUrl = (
params: GetListLatestTweetsTimelineParams,
pathQueryId: string = "FVWmROVvhgjRPC-4jAUh8A",
) => {
const normalizedParams = new URLSearchParams();
Object.entries(params || {}).forEach(([key, value]) => {
if (value !== undefined) {
normalizedParams.append(key, value === null ? "null" : String(value));
}
});
const stringifiedParams = normalizedParams.toString();
return stringifiedParams.length > 0
? `/graphql/${pathQueryId}/ListLatestTweetsTimeline?${stringifiedParams}`
: `/graphql/${pathQueryId}/ListLatestTweetsTimeline`;
};
/**
* get tweet list of timeline
*/
export const getListLatestTweetsTimeline = async (
params: GetListLatestTweetsTimelineParams,
pathQueryId: string = "FVWmROVvhgjRPC-4jAUh8A",
options?: RequestInit,
): Promise<getListLatestTweetsTimelineResponse> => {
const res = await fetch(getGetListLatestTweetsTimelineUrl(params, pathQueryId), {
...options,
method: "GET",
});
const body = [204, 205, 304].includes(res.status) ? null : await res.text();
const data: getListLatestTweetsTimelineResponse["data"] = body ? JSON.parse(body) : {};
return { data, status: res.status, headers: res.headers } as getListLatestTweetsTimelineResponse;
};
export type getSearchTimelineResponse200 = {
data: SearchTimelineResponse;
status: 200;
};
export type getSearchTimelineResponseSuccess = getSearchTimelineResponse200 & {
headers: Headers;
};
export type getSearchTimelineResponse = getSearchTimelineResponseSuccess;
export const getGetSearchTimelineUrl = (
params: GetSearchTimelineParams,
pathQueryId: string = "Yw6L66Pw54NHKuq4Dp7b4Q",
) => {
const normalizedParams = new URLSearchParams();
Object.entries(params || {}).forEach(([key, value]) => {
if (value !== undefined) {
normalizedParams.append(key, value === null ? "null" : String(value));
}
});
const stringifiedParams = normalizedParams.toString();
return stringifiedParams.length > 0
? `/graphql/${pathQueryId}/SearchTimeline?${stringifiedParams}`
: `/graphql/${pathQueryId}/SearchTimeline`;
};
/**
* search tweet list. product:[Top, Latest, People, Photos, Videos]
*/
export const getSearchTimeline = async (
params: GetSearchTimelineParams,
pathQueryId: string = "Yw6L66Pw54NHKuq4Dp7b4Q",
options?: RequestInit,
): Promise<getSearchTimelineResponse> => {
const res = await fetch(getGetSearchTimelineUrl(params, pathQueryId), {
...options,
method: "GET",
});
const body = [204, 205, 304].includes(res.status) ? null : await res.text();
const data: getSearchTimelineResponse["data"] = body ? JSON.parse(body) : {};
return { data, status: res.status, headers: res.headers } as getSearchTimelineResponse;
};
export type getTweetDetailResponse200 = {
data: TweetDetailResponse;
status: 200;
};
export type getTweetDetailResponseSuccess = getTweetDetailResponse200 & {
headers: Headers;
};
export type getTweetDetailResponse = getTweetDetailResponseSuccess;
export const getGetTweetDetailUrl = (
params: GetTweetDetailParams,
pathQueryId: string = "oCon7R-cgWRFy6EfZjaKfg",
) => {
const normalizedParams = new URLSearchParams();
Object.entries(params || {}).forEach(([key, value]) => {
if (value !== undefined) {
normalizedParams.append(key, value === null ? "null" : String(value));
}
});
const stringifiedParams = normalizedParams.toString();
return stringifiedParams.length > 0
? `/graphql/${pathQueryId}/TweetDetail?${stringifiedParams}`
: `/graphql/${pathQueryId}/TweetDetail`;
};
/**
* get TweetDetail
*/
export const getTweetDetail = async (
params: GetTweetDetailParams,
pathQueryId: string = "oCon7R-cgWRFy6EfZjaKfg",
options?: RequestInit,
): Promise<getTweetDetailResponse> => {
const res = await fetch(getGetTweetDetailUrl(params, pathQueryId), {
...options,
method: "GET",
});
const body = [204, 205, 304].includes(res.status) ? null : await res.text();
const data: getTweetDetailResponse["data"] = body ? JSON.parse(body) : {};
return { data, status: res.status, headers: res.headers } as getTweetDetailResponse;
};
export type getUserByScreenNameResponse200 = {
data: UserResponse;
status: 200;
};
export type getUserByScreenNameResponseSuccess = getUserByScreenNameResponse200 & {
headers: Headers;
};
export type getUserByScreenNameResponse = getUserByScreenNameResponseSuccess;
export const getGetUserByScreenNameUrl = (
params: GetUserByScreenNameParams,
pathQueryId: string = "IGgvgiOx4QZndDHuD3x9TQ",
) => {
const normalizedParams = new URLSearchParams();
Object.entries(params || {}).forEach(([key, value]) => {
if (value !== undefined) {
normalizedParams.append(key, value === null ? "null" : String(value));
}
});
const stringifiedParams = normalizedParams.toString();
return stringifiedParams.length > 0
? `/graphql/${pathQueryId}/UserByScreenName?${stringifiedParams}`
: `/graphql/${pathQueryId}/UserByScreenName`;
};
/**
* get user by screen name
*/
export const getUserByScreenName = async (
params: GetUserByScreenNameParams,
pathQueryId: string = "IGgvgiOx4QZndDHuD3x9TQ",
options?: RequestInit,
): Promise<getUserByScreenNameResponse> => {
const res = await fetch(getGetUserByScreenNameUrl(params, pathQueryId), {
...options,
method: "GET",
});
const body = [204, 205, 304].includes(res.status) ? null : await res.text();
const data: getUserByScreenNameResponse["data"] = body ? JSON.parse(body) : {};
return { data, status: res.status, headers: res.headers } as getUserByScreenNameResponse;
};
export type getUserTweetsResponse200 = {
data: UserTweetsResponse;
status: 200;
};
export type getUserTweetsResponseSuccess = getUserTweetsResponse200 & {
headers: Headers;
};
export type getUserTweetsResponse = getUserTweetsResponseSuccess;
export const getGetUserTweetsUrl = (
params: GetUserTweetsParams,
pathQueryId: string = "36rb3Xj3iJ64Q-9wKDjCcQ",
) => {
const normalizedParams = new URLSearchParams();
Object.entries(params || {}).forEach(([key, value]) => {
if (value !== undefined) {
normalizedParams.append(key, value === null ? "null" : String(value));
}
});
const stringifiedParams = normalizedParams.toString();
return stringifiedParams.length > 0
? `/graphql/${pathQueryId}/UserTweets?${stringifiedParams}`
: `/graphql/${pathQueryId}/UserTweets`;
};
/**
* get user tweets
*/
export const getUserTweets = async (
params: GetUserTweetsParams,
pathQueryId: string = "36rb3Xj3iJ64Q-9wKDjCcQ",
options?: RequestInit,
): Promise<getUserTweetsResponse> => {
const res = await fetch(getGetUserTweetsUrl(params, pathQueryId), {
...options,
method: "GET",
});
const body = [204, 205, 304].includes(res.status) ? null : await res.text();
const data: getUserTweetsResponse["data"] = body ? JSON.parse(body) : {};
return { data, status: res.status, headers: res.headers } as getUserTweetsResponse;
};