1
Fork 0
mirror of https://github.com/thegeneralist01/twitter-openapi synced 2026-01-11 15:40:26 +01:00
Signed-off-by: ふぁ <yuki@yuki0311.com>
This commit is contained in:
ふぁ 2023-04-24 13:12:45 +09:00
parent 328543616c
commit 3845a1b58e
No known key found for this signature in database
GPG key ID: 83A8A5E74872A8AA
30 changed files with 2124 additions and 0 deletions

98
dist/typescript/openapi-3.0.yaml vendored Normal file
View file

@ -0,0 +1,98 @@
components:
schemas: {}
securitySchemes:
ActiveUser:
description: 'yes'
in: header
name: x-twitter-active-user
type: apiKey
BearerAuth:
description: AAAAAAAAAAAAAAAAAAAAANRILgAAAAAAnNwIzUejRCOuH5E6I8xnZz4puTs%3D1Zv7ttfk8LF81IUq16cHjhLTvJu4FA33AGWWjCpTnA
scheme: bearer
type: http
ClientLanguage:
description: en
in: header
name: x-twitter-client-language
type: apiKey
CookieAuthToken:
description: HttpOnly cookie
in: cookie
name: auth_token
type: apiKey
CookieCt0:
description: document.cookie.split('; ').find(row => row.startsWith('ct0='));
in: cookie
name: ct0
type: apiKey
CsrfToken:
description: document.cookie.split('; ').find(row => row.startsWith('ct0='));
in: header
name: x-csrf-token
type: apiKey
UserAgent:
description: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML,
like Gecko) Chrome/112.0.0.0 Safari/537.36
in: header
name: user-agent
type: apiKey
authType:
description: OAuth2Session if you are logged in
in: header
name: x-twitter-auth-type
type: apiKey
info:
contact:
email: yuki@yuki0311.com
description: Twitter OpenAPI(Swagger) specification
license:
name: GNU Affero General Public License v3.
url: https://raw.githubusercontent.com/fa0311/twitter-openapi/main/LICENSE.txt
termsOfService: https://github.com/fa0311
title: Twitter OpenAPI
version: 0.0.1
openapi: 3.0.3
paths:
/2TemLyqrMpTeAmysdbnVqw/ListLatestTweetsTimeline:
$ref: ./paths/timeline.yaml#/paths/~12TemLyqrMpTeAmysdbnVqw~1ListLatestTweetsTimeline
/5fmEkRT-1AdHqEsbVgehMg/Likes:
$ref: ./paths/usertweets.yaml#/paths/~15fmEkRT-1AdHqEsbVgehMg~1Likes
/9zwVLJ48lmVUk8u_Gh9DmA/ProfileSpotlightsQuery:
$ref: ./paths/profile.yaml#/paths/~19zwVLJ48lmVUk8u_Gh9DmA~1ProfileSpotlightsQuery
/HCosKfLNW1AcOo3la3mMgg/HomeTimeline:
$ref: ./paths/timeline.yaml#/paths/~1HCosKfLNW1AcOo3la3mMgg~1HomeTimeline
/HuTx74BxAnezK1gWvYY7zg/UserTweets:
$ref: ./paths/usertweets.yaml#/paths/~1HuTx74BxAnezK1gWvYY7zg~1UserTweets
/IWP6Zt14sARO29lJT35bBw/Following:
$ref: ./paths/follow.yaml#/paths/~1IWP6Zt14sARO29lJT35bBw~1Following
/RIWc55YCNyUJ-U3HHGYkdg/UserTweetsAndReplies:
$ref: ./paths/usertweets.yaml#/paths/~1RIWc55YCNyUJ-U3HHGYkdg~1UserTweetsAndReplies
/YqiE3JL1KNgf9nSljYdxaA/UserMedia:
$ref: ./paths/usertweets.yaml#/paths/~1YqiE3JL1KNgf9nSljYdxaA~1UserMedia
/djdTXDIk2qhd4OStqlUFeQ/Followers:
$ref: ./paths/follow.yaml#/paths/~1djdTXDIk2qhd4OStqlUFeQ~1Followers
/sLVLhk0bGj3MVFEKTdax1w/UserByScreenName:
$ref: ./paths/user.yaml#/paths/~1sLVLhk0bGj3MVFEKTdax1w~1UserByScreenName
/tmd4ifV8RHltzn8ymGg1aw/Bookmarks:
$ref: ./paths/bookmarks.yaml#/paths/~1tmd4ifV8RHltzn8ymGg1aw~1Bookmarks
/wNNG8DBB8EaXw1lq4vFWGA/TweetDetail:
$ref: ./paths/tweet.yaml#/paths/~1wNNG8DBB8EaXw1lq4vFWGA~1TweetDetail
/zhX91JE87mWvfprhYE97xA/HomeLatestTimeline:
$ref: ./paths/timeline.yaml#/paths/~1zhX91JE87mWvfprhYE97xA~1HomeLatestTimeline
security:
- bearerAuth: []
- CsrfToken: []
- ActiveUser: []
- AuthType: []
- ClientLanguage: []
- CookieAuthToken: []
- CookieCt0: []
servers:
- url: https://twitter.com/i/api/graphql
tags:
- description: response User
name: User
- description: response User list
name: UserList
- description: response tweet
name: Tweet

102
dist/typescript/paths/bookmarks.yaml vendored Normal file
View file

@ -0,0 +1,102 @@
components:
schemas:
BookmarksResponse:
properties:
data:
$ref: '#/components/schemas/BookmarksResponseData'
required:
- data
BookmarksResponseData:
properties:
bookmark_timeline_v2:
$ref: '#/components/schemas/BookmarksTimeline'
required:
- bookmark_timeline_v2
BookmarksTimeline:
properties:
timeline:
$ref: ./../schemas/timeline.yaml#/components/schemas/Timeline
required:
- timeline
info:
title: Twitter OpenAPI
version: 0.0.1
openapi: 3.0.3
paths:
/tmd4ifV8RHltzn8ymGg1aw/Bookmarks:
get:
description: get bookmarks
operationId: getBookmarks
parameters:
- in: query
name: variables
required: true
schema:
example: '{"count": 20, "includePromotedContent": true}'
type: string
- in: query
name: features
required: true
schema:
example: '{"graphql_timeline_v2_bookmark_timeline": true, "blue_business_profile_image_shape_enabled":
true, "responsive_web_graphql_exclude_directive_enabled": true, "verified_phone_label_enabled":
false, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled":
false, "tweetypie_unmention_optimization_enabled": true, "vibe_api_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, "tweet_awards_web_tipping_enabled": false, "freedom_of_speech_not_reach_fetch_enabled":
false, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled":
false, "interactive_text_enabled": true, "responsive_web_text_conversations_enabled":
false, "longform_notetweets_rich_text_read_enabled": true, "responsive_web_enhance_cards_enabled":
false}'
type: string
- in: query
name: queryId
required: true
schema:
default: tmd4ifV8RHltzn8ymGg1aw
example: tmd4ifV8RHltzn8ymGg1aw
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/BookmarksResponse'
description: Successful operation
headers:
x-connection-hash:
schema:
type: string
x-content-type-options:
schema:
type: string
x-frame-options:
schema:
type: string
x-rate-limit-limit:
schema:
type: integer
x-rate-limit-remaining:
schema:
type: integer
x-rate-limit-reset:
schema:
type: integer
x-response-time:
schema:
type: integer
x-tfe-preserve-body:
schema:
type: boolean
x-transaction-id:
schema:
type: string
x-twitter-response-tags:
schema:
type: string
x-xss-protection:
schema:
type: integer
tags:
- Tweet

196
dist/typescript/paths/follow.yaml vendored Normal file
View file

@ -0,0 +1,196 @@
components:
schemas:
FollowResponse:
properties:
data:
$ref: '#/components/schemas/FollowResponseData'
required:
- data
FollowResponseData:
properties:
user:
$ref: '#/components/schemas/FollowResponseUser'
required:
- user
FollowResponseResult:
properties:
__typename:
$ref: ./../schemas/typename.yaml#/components/schemas/TypeName
timeline:
$ref: '#/components/schemas/FollowTimeline'
required:
- __typename
- timeline
FollowResponseUser:
properties:
result:
$ref: '#/components/schemas/FollowResponseResult'
required:
- result
FollowTimeline:
properties:
timeline:
$ref: ./../schemas/timeline.yaml#/components/schemas/Timeline
required:
- timeline
info:
title: Twitter OpenAPI
version: 0.0.1
openapi: 3.0.3
paths:
/IWP6Zt14sARO29lJT35bBw/Following:
get:
description: get user list of following
operationId: getFollowing
parameters:
- in: query
name: variables
required: true
schema:
example: '{"userId": "44196397", "count": 20, "includePromotedContent":
false}'
type: string
- in: query
name: features
required: true
schema:
example: '{"blue_business_profile_image_shape_enabled": true, "responsive_web_graphql_exclude_directive_enabled":
true, "verified_phone_label_enabled": false, "responsive_web_graphql_timeline_navigation_enabled":
true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled":
false, "tweetypie_unmention_optimization_enabled": true, "vibe_api_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, "tweet_awards_web_tipping_enabled": false, "freedom_of_speech_not_reach_fetch_enabled":
false, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled":
false, "interactive_text_enabled": true, "responsive_web_text_conversations_enabled":
false, "longform_notetweets_rich_text_read_enabled": true, "responsive_web_enhance_cards_enabled":
false}'
type: string
- in: query
name: queryId
required: true
schema:
default: IWP6Zt14sARO29lJT35bBw
example: IWP6Zt14sARO29lJT35bBw
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/FollowResponse'
description: Successful operation
headers:
x-connection-hash:
schema:
type: string
x-content-type-options:
schema:
type: string
x-frame-options:
schema:
type: string
x-rate-limit-limit:
schema:
type: integer
x-rate-limit-remaining:
schema:
type: integer
x-rate-limit-reset:
schema:
type: integer
x-response-time:
schema:
type: integer
x-tfe-preserve-body:
schema:
type: boolean
x-transaction-id:
schema:
type: string
x-twitter-response-tags:
schema:
type: string
x-xss-protection:
schema:
type: integer
tags:
- UserList
/djdTXDIk2qhd4OStqlUFeQ/Followers:
get:
description: get user list of followers
operationId: getFollowers
parameters:
- in: query
name: variables
required: true
schema:
example: '{"userId": "44196397", "count": 20, "includePromotedContent":
false}'
type: string
- in: query
name: features
required: true
schema:
example: '{"blue_business_profile_image_shape_enabled": true, "responsive_web_graphql_exclude_directive_enabled":
true, "verified_phone_label_enabled": false, "responsive_web_graphql_timeline_navigation_enabled":
true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled":
false, "tweetypie_unmention_optimization_enabled": true, "vibe_api_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, "tweet_awards_web_tipping_enabled": false, "freedom_of_speech_not_reach_fetch_enabled":
false, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled":
false, "interactive_text_enabled": true, "responsive_web_text_conversations_enabled":
false, "longform_notetweets_rich_text_read_enabled": true, "responsive_web_enhance_cards_enabled":
false}'
type: string
- in: query
name: queryId
required: true
schema:
default: djdTXDIk2qhd4OStqlUFeQ
example: djdTXDIk2qhd4OStqlUFeQ
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/FollowResponse'
description: Successful operation
headers:
x-connection-hash:
schema:
type: string
x-content-type-options:
schema:
type: string
x-frame-options:
schema:
type: string
x-rate-limit-limit:
schema:
type: integer
x-rate-limit-remaining:
schema:
type: integer
x-rate-limit-reset:
schema:
type: integer
x-response-time:
schema:
type: integer
x-tfe-preserve-body:
schema:
type: boolean
x-transaction-id:
schema:
type: string
x-twitter-response-tags:
schema:
type: string
x-xss-protection:
schema:
type: integer
tags:
- UserList

130
dist/typescript/paths/profile.yaml vendored Normal file
View file

@ -0,0 +1,130 @@
components:
schemas:
ProfileResponse:
properties:
data:
$ref: '#/components/schemas/ProfileResponseData'
required:
- data
ProfileResponseData:
properties:
user_result_by_screen_name:
$ref: '#/components/schemas/UserResultByScreenName'
required:
- user_result_by_screen_name
UserResultByScreenName:
properties:
id:
pattern: ^[0-9a-zA-Z]+$
type: string
result:
$ref: '#/components/schemas/UserResultByScreenNameResult'
required:
- id
- result
UserResultByScreenNameLegacy:
properties:
blocked_by:
type: boolean
blocking:
type: boolean
followed_by:
type: boolean
following:
type: boolean
name:
type: string
protected:
type: boolean
screen_name:
type: string
UserResultByScreenNameResult:
properties:
__typename:
$ref: ./../schemas/typename.yaml#/components/schemas/TypeName
id:
pattern: ^[0-9a-zA-Z=]+$
type: string
legacy:
$ref: '#/components/schemas/UserResultByScreenNameLegacy'
profilemodules:
type: object
rest_id:
pattern: ^[0-9]+$
type: string
required:
- __typename
- id
- legacy
- profilemodules
- rest_id
info:
title: Twitter OpenAPI
version: 0.0.1
openapi: 3.0.3
paths:
/9zwVLJ48lmVUk8u_Gh9DmA/ProfileSpotlightsQuery:
get:
description: get user by screen name
operationId: getProfileSpotlightsQuery
parameters:
- in: query
name: variables
required: true
schema:
example: '{"screen_name": "elonmusk"}'
type: string
- in: query
name: features
required: true
schema:
example: '{}'
type: string
- in: query
name: queryId
required: true
schema:
default: 9zwVLJ48lmVUk8u_Gh9DmA
example: 9zwVLJ48lmVUk8u_Gh9DmA
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ProfileResponse'
description: Successful operation
headers:
x-connection-hash:
schema:
type: string
x-content-type-options:
schema:
type: string
x-frame-options:
schema:
type: string
x-rate-limit-limit:
schema:
type: integer
x-rate-limit-remaining:
schema:
type: integer
x-rate-limit-reset:
schema:
type: integer
x-response-time:
schema:
type: integer
x-tfe-preserve-body:
schema:
type: boolean
x-transaction-id:
schema:
type: string
x-twitter-response-tags:
schema:
type: string
x-xss-protection:
schema:
type: integer

282
dist/typescript/paths/timeline.yaml vendored Normal file
View file

@ -0,0 +1,282 @@
components:
schemas:
HomeTimelineHome:
properties:
home_timeline_urt:
$ref: ./../schemas/timeline.yaml#/components/schemas/Timeline
required:
- home_timeline_urt
HomeTimelineResponseData:
properties:
home:
$ref: '#/components/schemas/HomeTimelineHome'
required:
- home
ListTweetsTimeline:
properties:
timeline:
$ref: ./../schemas/timeline.yaml#/components/schemas/Timeline
required:
- timeline
ListTweetsTimelineData:
properties:
list:
$ref: '#/components/schemas/ListTweetsTimelineList'
required:
- list
ListTweetsTimelineList:
properties:
tweets_timeline:
$ref: '#/components/schemas/ListTweetsTimeline'
required:
- tweets_timeline
ListTweetsTimelineResponse:
properties:
data:
$ref: '#/components/schemas/ListTweetsTimelineData'
required:
- data
TimelineResponse:
properties:
data:
$ref: '#/components/schemas/HomeTimelineResponseData'
required:
- data
info:
title: Twitter OpenAPI
version: 0.0.1
openapi: 3.0.3
paths:
/2TemLyqrMpTeAmysdbnVqw/ListLatestTweetsTimeline:
get:
description: get tweet list of timeline
operationId: getListLatestTweetsTimeline
parameters:
- in: query
name: variables
required: true
schema:
example: '{"listId": "53044119", "count": 20}'
type: string
- in: query
name: features
required: true
schema:
example: '{"blue_business_profile_image_shape_enabled": true, "responsive_web_graphql_exclude_directive_enabled":
true, "verified_phone_label_enabled": false, "responsive_web_graphql_timeline_navigation_enabled":
true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled":
false, "tweetypie_unmention_optimization_enabled": true, "vibe_api_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, "tweet_awards_web_tipping_enabled": false, "freedom_of_speech_not_reach_fetch_enabled":
false, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled":
false, "interactive_text_enabled": true, "responsive_web_text_conversations_enabled":
false, "longform_notetweets_rich_text_read_enabled": true, "responsive_web_enhance_cards_enabled":
false}'
type: string
- in: query
name: queryId
required: true
schema:
default: 2TemLyqrMpTeAmysdbnVqw
example: 2TemLyqrMpTeAmysdbnVqw
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ListTweetsTimelineResponse'
description: Successful operation
headers:
x-connection-hash:
schema:
type: string
x-content-type-options:
schema:
type: string
x-frame-options:
schema:
type: string
x-rate-limit-limit:
schema:
type: integer
x-rate-limit-remaining:
schema:
type: integer
x-rate-limit-reset:
schema:
type: integer
x-response-time:
schema:
type: integer
x-tfe-preserve-body:
schema:
type: boolean
x-transaction-id:
schema:
type: string
x-twitter-response-tags:
schema:
type: string
x-xss-protection:
schema:
type: integer
tags:
- Tweet
/HCosKfLNW1AcOo3la3mMgg/HomeTimeline:
get:
description: get tweet list of timeline
operationId: getHomeTimeline
parameters:
- in: query
name: variables
required: true
schema:
example: '{"count": 20, "includePromotedContent": true, "latestControlAvailable":
true, "requestContext": "launch", "withCommunity": true}'
type: string
- in: query
name: features
required: true
schema:
example: '{"blue_business_profile_image_shape_enabled": true, "responsive_web_graphql_exclude_directive_enabled":
true, "verified_phone_label_enabled": false, "responsive_web_graphql_timeline_navigation_enabled":
true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled":
false, "tweetypie_unmention_optimization_enabled": true, "vibe_api_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, "tweet_awards_web_tipping_enabled": false, "freedom_of_speech_not_reach_fetch_enabled":
false, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled":
false, "interactive_text_enabled": true, "responsive_web_text_conversations_enabled":
false, "longform_notetweets_rich_text_read_enabled": true, "responsive_web_enhance_cards_enabled":
false}'
type: string
- in: query
name: queryId
required: true
schema:
default: HCosKfLNW1AcOo3la3mMgg
example: HCosKfLNW1AcOo3la3mMgg
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/TimelineResponse'
description: Successful operation
headers:
x-connection-hash:
schema:
type: string
x-content-type-options:
schema:
type: string
x-frame-options:
schema:
type: string
x-rate-limit-limit:
schema:
type: integer
x-rate-limit-remaining:
schema:
type: integer
x-rate-limit-reset:
schema:
type: integer
x-response-time:
schema:
type: integer
x-tfe-preserve-body:
schema:
type: boolean
x-transaction-id:
schema:
type: string
x-twitter-response-tags:
schema:
type: string
x-xss-protection:
schema:
type: integer
tags:
- Tweet
/zhX91JE87mWvfprhYE97xA/HomeLatestTimeline:
get:
description: get tweet list of timeline
operationId: getHomeLatestTimeline
parameters:
- in: query
name: variables
required: true
schema:
example: '{"count": 20, "includePromotedContent": true, "latestControlAvailable":
true, "requestContext": "launch"}'
type: string
- in: query
name: features
required: true
schema:
example: '{"blue_business_profile_image_shape_enabled": true, "responsive_web_graphql_exclude_directive_enabled":
true, "verified_phone_label_enabled": false, "responsive_web_graphql_timeline_navigation_enabled":
true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled":
false, "tweetypie_unmention_optimization_enabled": true, "vibe_api_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, "tweet_awards_web_tipping_enabled": false, "freedom_of_speech_not_reach_fetch_enabled":
false, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled":
false, "interactive_text_enabled": true, "responsive_web_text_conversations_enabled":
false, "longform_notetweets_rich_text_read_enabled": true, "responsive_web_enhance_cards_enabled":
false}'
type: string
- in: query
name: queryId
required: true
schema:
default: zhX91JE87mWvfprhYE97xA
example: zhX91JE87mWvfprhYE97xA
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/TimelineResponse'
description: Successful operation
headers:
x-connection-hash:
schema:
type: string
x-content-type-options:
schema:
type: string
x-frame-options:
schema:
type: string
x-rate-limit-limit:
schema:
type: integer
x-rate-limit-remaining:
schema:
type: integer
x-rate-limit-reset:
schema:
type: integer
x-response-time:
schema:
type: integer
x-tfe-preserve-body:
schema:
type: boolean
x-transaction-id:
schema:
type: string
x-twitter-response-tags:
schema:
type: string
x-xss-protection:
schema:
type: integer
tags:
- Tweet

99
dist/typescript/paths/tweet.yaml vendored Normal file
View file

@ -0,0 +1,99 @@
components:
schemas:
TweetDetailResponse:
properties:
data:
$ref: '#/components/schemas/TweetDetailResponseData'
required:
- data
TweetDetailResponseData:
properties:
threaded_conversation_with_injections_v2:
$ref: ./../schemas/timeline.yaml#/components/schemas/Timeline
required:
- threaded_conversation_with_injections_v2
info:
title: Twitter OpenAPI
version: 0.0.1
openapi: 3.0.3
paths:
/wNNG8DBB8EaXw1lq4vFWGA/TweetDetail:
get:
description: get TweetDetail
operationId: getTweetDetail
parameters:
- in: query
name: variables
required: true
schema:
example: '{"focalTweetId": "1349129669258448897", "with_rux_injections":
false, "includePromotedContent": true, "withCommunity": true, "withQuickPromoteEligibilityTweetFields":
true, "withBirdwatchNotes": true, "withVoice": true, "withV2Timeline":
true}'
type: string
- in: query
name: features
required: true
schema:
example: '{"blue_business_profile_image_shape_enabled": true, "responsive_web_graphql_exclude_directive_enabled":
true, "verified_phone_label_enabled": false, "responsive_web_graphql_timeline_navigation_enabled":
true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled":
false, "tweetypie_unmention_optimization_enabled": true, "vibe_api_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, "tweet_awards_web_tipping_enabled": false, "freedom_of_speech_not_reach_fetch_enabled":
false, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled":
false, "interactive_text_enabled": true, "responsive_web_text_conversations_enabled":
false, "longform_notetweets_rich_text_read_enabled": true, "responsive_web_enhance_cards_enabled":
false}'
type: string
- in: query
name: queryId
required: true
schema:
default: wNNG8DBB8EaXw1lq4vFWGA
example: wNNG8DBB8EaXw1lq4vFWGA
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/TweetDetailResponse'
description: Successful operation
headers:
x-connection-hash:
schema:
type: string
x-content-type-options:
schema:
type: string
x-frame-options:
schema:
type: string
x-rate-limit-limit:
schema:
type: integer
x-rate-limit-remaining:
schema:
type: integer
x-rate-limit-reset:
schema:
type: integer
x-response-time:
schema:
type: integer
x-tfe-preserve-body:
schema:
type: boolean
x-transaction-id:
schema:
type: string
x-twitter-response-tags:
schema:
type: string
x-xss-protection:
schema:
type: integer
tags:
- Tweet

88
dist/typescript/paths/user.yaml vendored Normal file
View file

@ -0,0 +1,88 @@
components:
schemas:
UserResponse:
properties:
data:
$ref: '#/components/schemas/UserResponseData'
required:
- data
UserResponseData:
properties:
user:
$ref: ./../schemas/user.yaml#/components/schemas/UserResults
required:
- user
info:
title: Twitter OpenAPI
version: 0.0.1
openapi: 3.0.3
paths:
/sLVLhk0bGj3MVFEKTdax1w/UserByScreenName:
get:
description: get user by screen name
operationId: getUserByScreenName
parameters:
- in: query
name: variables
required: true
schema:
example: '{"screen_name": "elonmusk", "withSafetyModeUserFields": true}'
type: string
- in: query
name: features
required: true
schema:
example: '{"blue_business_profile_image_shape_enabled": true, "responsive_web_graphql_exclude_directive_enabled":
true, "verified_phone_label_enabled": false, "responsive_web_graphql_skip_user_profile_image_extensions_enabled":
false, "responsive_web_graphql_timeline_navigation_enabled": true}'
type: string
- in: query
name: queryId
required: true
schema:
default: sLVLhk0bGj3MVFEKTdax1w
example: sLVLhk0bGj3MVFEKTdax1w
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/UserResponse'
description: Successful operation
headers:
x-connection-hash:
schema:
type: string
x-content-type-options:
schema:
type: string
x-frame-options:
schema:
type: string
x-rate-limit-limit:
schema:
type: integer
x-rate-limit-remaining:
schema:
type: integer
x-rate-limit-reset:
schema:
type: integer
x-response-time:
schema:
type: integer
x-tfe-preserve-body:
schema:
type: boolean
x-transaction-id:
schema:
type: string
x-twitter-response-tags:
schema:
type: string
x-xss-protection:
schema:
type: integer
tags:
- User

349
dist/typescript/paths/usertweets.yaml vendored Normal file
View file

@ -0,0 +1,349 @@
components:
schemas:
UserTweetsData:
properties:
user:
$ref: '#/components/schemas/UserTweetsUser'
required:
- user
UserTweetsResponse:
properties:
data:
$ref: '#/components/schemas/UserTweetsData'
required:
- data
UserTweetsResult:
properties:
__typename:
$ref: ./../schemas/typename.yaml#/components/schemas/TypeName
timeline_v2:
$ref: ./../schemas/timeline.yaml#/components/schemas/TimelineV2
required:
- __typename
- timeline_v2
UserTweetsUser:
properties:
result:
$ref: '#/components/schemas/UserTweetsResult'
required:
- result
info:
title: Twitter OpenAPI
version: 0.0.1
openapi: 3.0.3
paths:
/5fmEkRT-1AdHqEsbVgehMg/Likes:
get:
description: get user likes tweets
operationId: getLikes
parameters:
- in: query
name: variables
required: true
schema:
example: '{"userId": "44196397", "count": 20, "includePromotedContent":
false, "withClientEventToken": false, "withBirdwatchNotes": false, "withVoice":
true, "withV2Timeline": true}'
type: string
- in: query
name: features
required: true
schema:
example: '{"blue_business_profile_image_shape_enabled": true, "responsive_web_graphql_exclude_directive_enabled":
true, "verified_phone_label_enabled": false, "responsive_web_graphql_timeline_navigation_enabled":
true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled":
false, "tweetypie_unmention_optimization_enabled": true, "vibe_api_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, "tweet_awards_web_tipping_enabled": false, "freedom_of_speech_not_reach_fetch_enabled":
false, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled":
false, "interactive_text_enabled": true, "responsive_web_text_conversations_enabled":
false, "longform_notetweets_rich_text_read_enabled": true, "responsive_web_enhance_cards_enabled":
false}'
type: string
- in: query
name: queryId
required: true
schema:
default: 5fmEkRT-1AdHqEsbVgehMg
example: 5fmEkRT-1AdHqEsbVgehMg
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/UserTweetsResponse'
description: Successful operation
headers:
x-connection-hash:
schema:
type: string
x-content-type-options:
schema:
type: string
x-frame-options:
schema:
type: string
x-rate-limit-limit:
schema:
type: integer
x-rate-limit-remaining:
schema:
type: integer
x-rate-limit-reset:
schema:
type: integer
x-response-time:
schema:
type: integer
x-tfe-preserve-body:
schema:
type: boolean
x-transaction-id:
schema:
type: string
x-twitter-response-tags:
schema:
type: string
x-xss-protection:
schema:
type: integer
tags:
- Tweet
/HuTx74BxAnezK1gWvYY7zg/UserTweets:
get:
description: get user tweets
operationId: getUserTweets
parameters:
- in: query
name: variables
required: true
schema:
example: '{"userId": "44196397", "count": 40, "includePromotedContent":
true, "withQuickPromoteEligibilityTweetFields": true, "withVoice": true,
"withV2Timeline": true}'
type: string
- in: query
name: features
required: true
schema:
example: '{"blue_business_profile_image_shape_enabled": true, "responsive_web_graphql_exclude_directive_enabled":
true, "verified_phone_label_enabled": false, "responsive_web_graphql_timeline_navigation_enabled":
true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled":
false, "tweetypie_unmention_optimization_enabled": true, "vibe_api_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, "tweet_awards_web_tipping_enabled": false, "freedom_of_speech_not_reach_fetch_enabled":
false, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled":
false, "interactive_text_enabled": true, "responsive_web_text_conversations_enabled":
false, "longform_notetweets_rich_text_read_enabled": true, "responsive_web_enhance_cards_enabled":
false}'
type: string
- in: query
name: queryId
required: true
schema:
default: HuTx74BxAnezK1gWvYY7zg
example: HuTx74BxAnezK1gWvYY7zg
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/UserTweetsResponse'
description: Successful operation
headers:
x-connection-hash:
schema:
type: string
x-content-type-options:
schema:
type: string
x-frame-options:
schema:
type: string
x-rate-limit-limit:
schema:
type: integer
x-rate-limit-remaining:
schema:
type: integer
x-rate-limit-reset:
schema:
type: integer
x-response-time:
schema:
type: integer
x-tfe-preserve-body:
schema:
type: boolean
x-transaction-id:
schema:
type: string
x-twitter-response-tags:
schema:
type: string
x-xss-protection:
schema:
type: integer
tags:
- Tweet
/RIWc55YCNyUJ-U3HHGYkdg/UserTweetsAndReplies:
get:
description: get user replies tweets
operationId: getUserTweetsAndReplies
parameters:
- in: query
name: variables
required: true
schema:
example: '{"userId": "44196397", "count": 40, "includePromotedContent":
true, "withCommunity": true, "withVoice": true, "withV2Timeline": true}'
type: string
- in: query
name: features
required: true
schema:
example: '{"blue_business_profile_image_shape_enabled": true, "responsive_web_graphql_exclude_directive_enabled":
true, "verified_phone_label_enabled": false, "responsive_web_graphql_timeline_navigation_enabled":
true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled":
false, "tweetypie_unmention_optimization_enabled": true, "vibe_api_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, "tweet_awards_web_tipping_enabled": false, "freedom_of_speech_not_reach_fetch_enabled":
false, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled":
false, "interactive_text_enabled": true, "responsive_web_text_conversations_enabled":
false, "longform_notetweets_rich_text_read_enabled": true, "responsive_web_enhance_cards_enabled":
false}'
type: string
- in: query
name: queryId
required: true
schema:
default: RIWc55YCNyUJ-U3HHGYkdg
example: RIWc55YCNyUJ-U3HHGYkdg
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/UserTweetsResponse'
description: Successful operation
headers:
x-connection-hash:
schema:
type: string
x-content-type-options:
schema:
type: string
x-frame-options:
schema:
type: string
x-rate-limit-limit:
schema:
type: integer
x-rate-limit-remaining:
schema:
type: integer
x-rate-limit-reset:
schema:
type: integer
x-response-time:
schema:
type: integer
x-tfe-preserve-body:
schema:
type: boolean
x-transaction-id:
schema:
type: string
x-twitter-response-tags:
schema:
type: string
x-xss-protection:
schema:
type: integer
tags:
- Tweet
/YqiE3JL1KNgf9nSljYdxaA/UserMedia:
get:
description: get user media tweets
operationId: getUserMedia
parameters:
- in: query
name: variables
required: true
schema:
example: '{"userId": "44196397", "count": 40, "includePromotedContent":
false, "withClientEventToken": false, "withBirdwatchNotes": false, "withVoice":
true, "withV2Timeline": true}'
type: string
- in: query
name: features
required: true
schema:
example: '{"blue_business_profile_image_shape_enabled": true, "responsive_web_graphql_exclude_directive_enabled":
true, "verified_phone_label_enabled": false, "responsive_web_graphql_timeline_navigation_enabled":
true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled":
false, "tweetypie_unmention_optimization_enabled": true, "vibe_api_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, "tweet_awards_web_tipping_enabled": false, "freedom_of_speech_not_reach_fetch_enabled":
false, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled":
false, "interactive_text_enabled": true, "responsive_web_text_conversations_enabled":
false, "longform_notetweets_rich_text_read_enabled": true, "responsive_web_enhance_cards_enabled":
false}'
type: string
- in: query
name: queryId
required: true
schema:
default: YqiE3JL1KNgf9nSljYdxaA
example: YqiE3JL1KNgf9nSljYdxaA
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/UserTweetsResponse'
description: Successful operation
headers:
x-connection-hash:
schema:
type: string
x-content-type-options:
schema:
type: string
x-frame-options:
schema:
type: string
x-rate-limit-limit:
schema:
type: integer
x-rate-limit-remaining:
schema:
type: integer
x-rate-limit-reset:
schema:
type: integer
x-response-time:
schema:
type: integer
x-tfe-preserve-body:
schema:
type: boolean
x-transaction-id:
schema:
type: string
x-twitter-response-tags:
schema:
type: string
x-xss-protection:
schema:
type: integer
tags:
- Tweet

182
dist/typescript/schemas/content.yaml vendored Normal file
View file

@ -0,0 +1,182 @@
components:
schemas:
ContentEntryType:
enum:
- TimelineTimelineItem
- TimelineTimelineCursor
- TimelineTimelineModule
type: string
ContentItemType:
enum:
- TimelineTweet
- TimelineTimelineCursor
- TimelineUser
type: string
ContentUnion:
discriminator:
mapping":
TimelineTimelineCursor: '#/components/schemas/TimelineTimelineCursor'
TimelineTimelineItem: '#/components/schemas/TimelineTimelineItem'
TimelineTimelineModule: '#/components/schemas/TimelineTimelineModule'
propertyName: entryType
oneOf:
- $ref: '#/components/schemas/TimelineTimelineItem'
- $ref: '#/components/schemas/TimelineTimelineModule'
- $ref: '#/components/schemas/TimelineTimelineCursor'
ItemContentUnion:
discriminator:
mapping":
TimelineTimelineCursor: '#/components/schemas/TimelineTimelineCursor'
TimelineTweet: '#/components/schemas/TimelineTweet'
TimelineUser: '#/components/schemas/TimelineUser'
propertyName: itemType
oneOf:
- $ref: '#/components/schemas/TimelineTweet'
- $ref: '#/components/schemas/TimelineTimelineCursor'
- $ref: '#/components/schemas/TimelineUser'
ItemResult:
properties:
__typename:
$ref: ./typename.yaml#/components/schemas/TypeName
result:
$ref: ./tweet.yaml#/components/schemas/TweetUnion
required:
- result
ModuleEntry:
properties:
clientEventInfo:
type: object
itemContent:
$ref: '#/components/schemas/ItemContentUnion'
required:
- clientEventInfo
- itemContent
ModuleItem:
properties:
entryId:
pattern: ^[a-z\-]+[0-9]+$
type: string
item:
$ref: '#/components/schemas/ModuleEntry'
required:
- entryId
- item
SocialContext:
properties:
contextType:
type: string
text:
type: string
type:
type: string
type: object
TimelineTimelineCursor:
properties:
__typename:
$ref: ./typename.yaml#/components/schemas/TypeName
cursorType:
enum:
- Top
- Bottom
- ShowMore
- ShowMoreThreads
- Gap
type: string
entryType:
$ref: '#/components/schemas/ContentEntryType'
type: string
itemType:
$ref: '#/components/schemas/ContentEntryType'
type: string
value:
type: string
required:
- __typename
- cursorType
- value
TimelineTimelineItem:
properties:
__typename:
$ref: ./typename.yaml#/components/schemas/TypeName
clientEventInfo:
type: object
entryType:
$ref: '#/components/schemas/ContentEntryType'
type: string
feedbackInfo:
type: object
itemContent:
$ref: '#/components/schemas/ItemContentUnion'
required:
- __typename
- entryType
- itemContent
TimelineTimelineModule:
properties:
__typename:
$ref: ./typename.yaml#/components/schemas/TypeName
clientEventInfo:
type: object
displayType:
type: string
entryType:
$ref: '#/components/schemas/ContentEntryType'
type: string
footer:
type: object
header:
type: object
items:
items:
$ref: '#/components/schemas/ModuleItem'
type: array
required:
- __typename
- entryType
- displayType
- items
- clientEventInfo
TimelineTweet:
properties:
SocialContext:
$ref: '#/components/schemas/SocialContext'
__typename:
$ref: ./typename.yaml#/components/schemas/TypeName
itemType:
$ref: '#/components/schemas/ContentItemType'
type: string
promotedMetadata:
type: object
tweetDisplayType:
type: string
tweet_results:
$ref: '#/components/schemas/ItemResult'
required:
- __typename
- itemType
- tweetDisplayType
- tweet_results
TimelineUser:
properties:
SocialContext:
$ref: '#/components/schemas/SocialContext'
__typename:
$ref: ./typename.yaml#/components/schemas/TypeName
itemType:
$ref: '#/components/schemas/ContentItemType'
type: string
userDisplayType:
type: string
user_results:
$ref: ./user.yaml#/components/schemas/UserResults
required:
- __typename
- itemType
- socialContext
- userDisplayType
- user_results
info:
title: Twitter OpenAPI
version: 0.0.1
openapi: 3.0.3
paths: {}

13
dist/typescript/schemas/general.yaml vendored Normal file
View file

@ -0,0 +1,13 @@
components:
schemas:
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)
(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})$
type: string
info:
title: Twitter OpenAPI
version: 0.0.1
openapi: 3.0.3
paths: {}

View file

@ -0,0 +1,83 @@
components:
schemas:
InstructionType:
enum:
- TimelineAddEntries
- TimelineClearCache
- TimelinePinEntry
- TimelineTerminateTimeline
type: string
InstructionUnion:
discriminator:
mapping":
TimelineAddEntries: '#/components/schemas/TimelineAddEntries'
TimelineClearCache: '#/components/schemas/TimelineClearCache'
TimelinePinEntry: '#/components/schemas/TimelinePinEntry'
TimelineTerminateTimeline: '#/components/schemas/TimelineTerminateTimeline'
propertyName: type
oneOf:
- $ref: '#/components/schemas/TimelineAddEntries'
- $ref: '#/components/schemas/TimelineClearCache'
- $ref: '#/components/schemas/TimelinePinEntry'
- $ref: '#/components/schemas/TimelineTerminateTimeline'
TimelineAddEntries:
properties:
entries:
items:
$ref: '#/components/schemas/TimelineAddEntry'
type: array
type:
$ref: '#/components/schemas/InstructionType'
type: string
required:
- type
- entries
TimelineAddEntry:
properties:
content:
$ref: ./content.yaml#/components/schemas/ContentUnion
entryId:
pattern: ^[a-z\-]+[0-9]+$
type: string
sortIndex:
pattern: '[0-9]+$'
type: string
required:
- content
- entryId
- sortIndex
TimelineClearCache:
properties:
type:
$ref: '#/components/schemas/InstructionType'
type: string
required:
- type
TimelinePinEntry:
properties:
entry:
$ref: '#/components/schemas/TimelineAddEntry'
type:
$ref: '#/components/schemas/InstructionType'
type: string
required:
- type
- entry
TimelineTerminateTimeline:
properties:
direction:
enum:
- Top
- Bottom
type: string
type:
$ref: '#/components/schemas/InstructionType'
type: string
required:
- type
- direction
info:
title: Twitter OpenAPI
version: 0.0.1
openapi: 3.0.3
paths: {}

25
dist/typescript/schemas/timeline.yaml vendored Normal file
View file

@ -0,0 +1,25 @@
components:
schemas:
Timeline:
properties:
instructions:
items:
$ref: ./../schemas/instruction.yaml#/components/schemas/InstructionUnion
type: array
metadata:
type: object
responseObjects:
type: object
required:
- instructions
TimelineV2:
properties:
timeline:
$ref: '#/components/schemas/Timeline'
required:
- timeline
info:
title: Twitter OpenAPI
version: 0.0.1
openapi: 3.0.3
paths: {}

252
dist/typescript/schemas/tweet.yaml vendored Normal file
View file

@ -0,0 +1,252 @@
components:
schemas:
Entities:
properties:
hashtags:
items:
$ref: '#/components/schemas/Hashtag'
type: array
media:
items:
$ref: '#/components/schemas/Media'
type: array
symbols:
items:
$ref: '#/components/schemas/Symbol'
type: array
urls:
items:
$ref: '#/components/schemas/Url'
type: array
user_mentions:
items:
$ref: '#/components/schemas/UserMention'
type: array
required:
- hashtags
- symbols
- user_mentions
- urls
- media
ExtendedEntities:
properties:
media:
items:
$ref: '#/components/schemas/Media'
type: array
required:
- media
Hashtag:
type: object
Media:
properties:
display_url:
format: uri
type: string
expanded_url:
format: uri
type: string
ext_media_availability:
type: object
id_str:
pattern: ^[0-9]+$
type: string
indices:
items:
type: integer
type: array
media_key:
pattern: ^[0-9]+_[0-9]+$
type: string
media_url_https:
format: uri
type: string
original_info:
properties:
focus_rects:
items:
type: object
type: array
height:
type: integer
width:
type: integer
type: object
sizes:
type: object
type:
type: string
url:
format: uri
type: string
required:
- id_str
- indices
- media_url_https
- url
- display_url
- expanded_url
- type
- sizes
- original_info
Symbol:
type: object
Tweet:
properties:
__typename:
$ref: ./typename.yaml#/components/schemas/TypeName
core:
$ref: ./user.yaml#/components/schemas/UserResultCore
edit_control:
properties:
edit_tweet_ids:
items:
pattern: ^[0-9]+$
type: string
type: array
editable_until_msecs:
pattern: ^[0-9]+$
type: string
edits_remaining:
pattern: ^[0-9]+$
type: string
is_edit_eligible:
type: boolean
type: object
edit_prespective:
properties:
favorited:
type: boolean
retweeted:
type: boolean
type: object
is_translatable:
default: false
type: boolean
legacy:
$ref: '#/components/schemas/TweetLegacy'
quoted_status_result:
$ref: ./content.yaml#/components/schemas/ItemResult
rest_id:
pattern: ^[0-9]+$
type: string
unmention_data:
type: object
views:
properties:
count:
pattern: ^[0-9]+$
type: string
state:
type: string
type: object
required:
- rest_id
- core
- edit_control
- edit_prespective
- is_translatable
- legacy
- views
TweetLegacy:
properties:
bookmark_count:
type: integer
bookmarked:
type: boolean
conversation_id_str:
pattern: ^[0-9]+$
type: string
created_at:
$ref: ./general.yaml#/components/schemas/TwitterTimeFormat
display_text_range:
items:
type: integer
type: array
entities:
$ref: '#/components/schemas/Entities'
extended_entities:
$ref: '#/components/schemas/ExtendedEntities'
favorite_count:
type: integer
favorited:
type: boolean
full_text:
type: string
id_str:
pattern: ^[0-9]+$
type: string
is_quote_status:
type: boolean
lang:
type: string
possibly_sensitive:
default: false
type: boolean
possibly_sensitive_editable:
default: false
type: boolean
quote_count:
type: integer
reply_count:
type: integer
retweet_count:
type: integer
retweeted:
type: boolean
retweeted_status_result:
$ref: ./content.yaml#/components/schemas/ItemResult
user_id_str:
pattern: ^[0-9]+$
type: string
required:
- bookmark_count
- bookmarked
- conversation_id_str
- created_at
- display_text_range
- entities
- favorite_count
- favorited
- full_text
- is_quote_status
- lang
- quote_count
- reply_count
- retweet_count
- retweeted
- user_id_str
- id_str
TweetTombstone:
properties:
__typename:
$ref: ./typename.yaml#/components/schemas/TypeName
TweetUnion:
discriminator:
mapping":
Tweet: '#/components/schemas/Tweet'
TweetTombstone: '#/components/schemas/TweetTombstone'
TweetWithVisibilityResults: '#/components/schemas/TweetWithVisibilityResults'
propertyName: __typename
oneOf:
- $ref: '#/components/schemas/Tweet'
- $ref: '#/components/schemas/TweetWithVisibilityResults'
- $ref: '#/components/schemas/TweetTombstone'
TweetWithVisibilityResults:
properties:
__typename:
$ref: ./typename.yaml#/components/schemas/TypeName
tweet:
$ref: '#/components/schemas/Tweet'
required:
- __typename
- tweet
Url:
type: object
UserMention:
type: object
info:
title: Twitter OpenAPI
version: 0.0.1
openapi: 3.0.3
paths: {}

19
dist/typescript/schemas/typename.yaml vendored Normal file
View file

@ -0,0 +1,19 @@
components:
schemas:
TypeName:
enum:
- TimelineTweet
- TimelineTimelineItem
- TimelineUser
- TimelineTimelineCursor
- TweetWithVisibilityResults
- TimelineTimelineModule
- TweetTombstone
- Tweet
- User
type: string
info:
title: Twitter OpenAPI
version: 0.0.1
openapi: 3.0.3
paths: {}

206
dist/typescript/schemas/user.yaml vendored Normal file
View file

@ -0,0 +1,206 @@
components:
schemas:
User:
properties:
__typename:
$ref: ./typename.yaml#/components/schemas/TypeName
affiliates_highlighted_label:
type: object
business_account:
type: object
has_graduated_access:
type: boolean
has_nft_avatar:
default: false
type: boolean
id:
pattern: ^[a-z\-]+[0-9]+$
type: string
is_blue_verified:
default: false
type: boolean
legacy:
$ref: '#/components/schemas/UserLegacy'
rest_id:
pattern: ^[0-9]+$
type: string
super_follow_eligible:
default: false
type: boolean
super_followed_by:
default: false
type: boolean
super_following:
default: false
type: boolean
required:
- __typename
- affiliates_highlighted_label
- id
- is_blue_verified
- legacy
- rest_id
- super_follow_eligible
- super_followed_by
- super_following
UserLegacy:
properties:
blocked_by:
default: false
type: boolean
blocking:
default: false
type: boolean
can_dm:
default: false
type: boolean
can_media_tag:
default: false
type: boolean
created_at:
$ref: ./general.yaml#/components/schemas/TwitterTimeFormat
default_profile:
default: false
type: boolean
default_profile_image:
default: false
type: boolean
description:
type: string
entities:
type: object
fast_followers_count:
type: integer
favourites_count:
default: 0
type: integer
follow_request_sent:
default: false
type: boolean
followed_by:
default: false
type: boolean
followers_count:
default: 0
type: integer
following:
default: false
type: boolean
friends_count:
default: 0
type: integer
has_custom_timelines:
default: false
type: boolean
is_translator:
default: false
type: boolean
listed_count:
default: 0
type: integer
location:
type: string
media_count:
default: 0
type: integer
muting:
default: false
type: boolean
name:
type: string
normal_followers_count:
default: 0
type: integer
notifications:
default: false
type: boolean
pinned_tweet_ids_str:
items:
type: string
type: array
possibly_sensitive:
default: false
type: boolean
profile_banner_extensions:
type: object
profile_banner_url:
format: uri
type: string
profile_image_extensions:
type: object
profile_image_url_https:
format: uri
type: string
profile_interstitial_type:
type: string
protected:
default: false
type: boolean
screen_name:
type: string
statuses_count:
default: 0
type: integer
translator_type:
type: string
url:
type: string
verified:
type: boolean
want_retweets:
default: false
type: boolean
required:
- blocked_by
- blocking
- can_dm
- can_media_tag
- created_at
- default_profile
- default_profile_image
- description
- entities
- fast_followers_count
- favourites_count
- follow_request_sent
- followed_by
- followers_count
- following
- friends_count
- has_custom_timelines
- is_translator
- listed_count
- location
- media_count
- muting
- name
- normal_followers_count
- notifications
- pinned_tweet_ids_str
- possibly_sensitive
- profile_image_url_https
- profile_interstitial_type
- protected
- screen_name
- status
- statuses_count
- translator_type
- verified
- want_retweets
UserResultCore:
properties:
user_results:
$ref: '#/components/schemas/UserResults'
required:
- user_results
UserResults:
properties:
result:
$ref: '#/components/schemas/User'
required:
- result
info:
title: Twitter OpenAPI
version: 0.0.1
openapi: 3.0.3
paths: {}