mirror of
https://github.com/thegeneralist01/twitter-openapi
synced 2026-01-09 23:00:24 +01:00
1494 lines
36 KiB
YAML
1494 lines
36 KiB
YAML
openapi: 3.0.3
|
|
info:
|
|
title: Twitter OpenAPI
|
|
version: 0.0.1
|
|
|
|
paths: {}
|
|
|
|
components:
|
|
schemas:
|
|
TweetUnion:
|
|
oneOf:
|
|
- $ref: "#/components/schemas/Tweet"
|
|
- $ref: "#/components/schemas/TweetWithVisibilityResults"
|
|
- $ref: "#/components/schemas/TweetTombstone"
|
|
- $ref: "#/components/schemas/TweetUnavailable"
|
|
discriminator:
|
|
propertyName: __typename
|
|
mapping": # deprecated
|
|
Tweet: "#/components/schemas/Tweet"
|
|
TweetWithVisibilityResults: "#/components/schemas/TweetWithVisibilityResults"
|
|
TweetTombstone: "#/components/schemas/TweetTombstone"
|
|
TweetUnavailable: "#/components/schemas/TweetUnavailable"
|
|
|
|
TweetWithVisibilityResults:
|
|
required:
|
|
- "__typename"
|
|
- "tweet"
|
|
properties:
|
|
__typename:
|
|
$ref: "./typename.yaml#/components/schemas/TypeName" # TweetWithVisibilityResults
|
|
tweet:
|
|
$ref: "#/components/schemas/Tweet"
|
|
limitedActionResults:
|
|
type: object
|
|
additionalProperties: true # todo
|
|
tweetInterstitial:
|
|
$ref: "#/components/schemas/TweetInterstitial"
|
|
mediaVisibilityResults:
|
|
$ref: "#/components/schemas/MediaVisibilityResults"
|
|
|
|
TweetInterstitial:
|
|
required:
|
|
- "__typename"
|
|
- "displayType"
|
|
- "text"
|
|
- "revealText"
|
|
properties:
|
|
__typename:
|
|
$ref: "./typename.yaml#/components/schemas/TypeName" # ContextualTweetInterstitial
|
|
displayType:
|
|
type: string
|
|
enum: [NonCompliant]
|
|
text:
|
|
$ref: "#/components/schemas/TweetInterstitialText"
|
|
revealText:
|
|
$ref: "#/components/schemas/TweetInterstitialRevealText"
|
|
|
|
TweetInterstitialText:
|
|
required:
|
|
- "rtl"
|
|
- "text"
|
|
- "entities"
|
|
properties:
|
|
rtl:
|
|
type: boolean
|
|
text:
|
|
type: string
|
|
entities:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/TweetInterstitialTextEntity"
|
|
|
|
TweetInterstitialTextEntity:
|
|
required:
|
|
- "fromIndex"
|
|
- "toIndex"
|
|
- "ref"
|
|
properties:
|
|
fromIndex:
|
|
type: integer
|
|
toIndex:
|
|
type: integer
|
|
ref:
|
|
$ref: "#/components/schemas/TweetInterstitialTextEntityRef"
|
|
|
|
TweetInterstitialTextEntityRef:
|
|
required:
|
|
- "type"
|
|
- "url"
|
|
- "urlType"
|
|
properties:
|
|
type:
|
|
type: string
|
|
enum: [TimelineUrl]
|
|
url:
|
|
type: string
|
|
format: uri
|
|
urlType:
|
|
type: string
|
|
enum: [ExternalUrl]
|
|
|
|
MediaVisibilityResults:
|
|
required:
|
|
- "blurred_image_interstitial"
|
|
properties:
|
|
blurred_image_interstitial:
|
|
$ref: "#/components/schemas/MediaVisibilityResultsBlurredImageInterstitial"
|
|
|
|
MediaVisibilityResultsBlurredImageInterstitial:
|
|
required:
|
|
- "opacity"
|
|
- "text"
|
|
- "title"
|
|
properties:
|
|
opacity:
|
|
type: number
|
|
text:
|
|
$ref: "#/components/schemas/TweetInterstitialText"
|
|
title:
|
|
$ref: "#/components/schemas/TweetInterstitialText"
|
|
|
|
TweetInterstitialRevealText:
|
|
required:
|
|
- "rtl"
|
|
- "text"
|
|
- "entities"
|
|
properties:
|
|
rtl:
|
|
type: boolean
|
|
text:
|
|
type: string
|
|
entities:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/TweetInterstitialTextEntity"
|
|
|
|
TweetTombstone: #remove tweet
|
|
properties:
|
|
__typename:
|
|
$ref: "./typename.yaml#/components/schemas/TypeName" # TweetWithVisibilityResults
|
|
additionalProperties: true # todo
|
|
|
|
TweetUnavailable: # nsfw tweet
|
|
properties:
|
|
__typename:
|
|
$ref: "./typename.yaml#/components/schemas/TypeName" # TweetUnavailable
|
|
reason:
|
|
type: string
|
|
|
|
Tweet:
|
|
required:
|
|
- "rest_id"
|
|
properties:
|
|
__typename:
|
|
$ref: "./typename.yaml#/components/schemas/TypeName" # null | Tweet
|
|
rest_id:
|
|
type: string
|
|
pattern: "^[0-9]+$"
|
|
birdwatch_pivot:
|
|
$ref: "#/components/schemas/BirdwatchPivot"
|
|
core:
|
|
$ref: "./user.yaml#/components/schemas/UserResultCore"
|
|
card:
|
|
$ref: "#/components/schemas/TweetCard"
|
|
unmention_data:
|
|
type: object
|
|
additionalProperties: true # todo
|
|
edit_control:
|
|
$ref: "#/components/schemas/TweetEditControl"
|
|
edit_prespective:
|
|
$ref: "#/components/schemas/TweetEditPrespective"
|
|
is_translatable:
|
|
type: boolean
|
|
default: false
|
|
source:
|
|
type: string # html (<a href="http://twitter.com/download/android" rel="nofollow">Twitter for Android</a>)
|
|
legacy:
|
|
$ref: "#/components/schemas/TweetLegacy"
|
|
views:
|
|
$ref: "#/components/schemas/TweetView"
|
|
quoted_status_result:
|
|
$ref: "./content.yaml#/components/schemas/ItemResult"
|
|
note_tweet:
|
|
$ref: "#/components/schemas/NoteTweet"
|
|
quick_promote_eligibility:
|
|
type: object
|
|
unified_card:
|
|
$ref: "#/components/schemas/UnifiedCard"
|
|
previous_counts:
|
|
$ref: "#/components/schemas/TweetPreviousCounts"
|
|
quotedRefResult:
|
|
$ref: "#/components/schemas/QuotedRefResult"
|
|
superFollowsReplyUserResult:
|
|
$ref: "#/components/schemas/SuperFollowsReplyUserResult"
|
|
has_birdwatch_notes:
|
|
type: boolean
|
|
author_community_relationship:
|
|
$ref: "#/components/schemas/AuthorCommunityRelationship"
|
|
article:
|
|
$ref: "#/components/schemas/Article"
|
|
community_results:
|
|
$ref: "#/components/schemas/Community"
|
|
|
|
TweetEditControl:
|
|
properties:
|
|
edit_tweet_ids:
|
|
type: array
|
|
items:
|
|
type: string
|
|
pattern: "^[0-9]+$"
|
|
editable_until_msecs:
|
|
type: string
|
|
pattern: "^[0-9]+$"
|
|
is_edit_eligible:
|
|
type: boolean
|
|
edits_remaining:
|
|
type: string
|
|
pattern: "^[0-9]+$"
|
|
initial_tweet_id:
|
|
type: string
|
|
pattern: "^[0-9]+$"
|
|
edit_control_initial:
|
|
$ref: "#/components/schemas/TweetEditControlInitial"
|
|
|
|
TweetEditControlInitial:
|
|
required:
|
|
- "edit_tweet_ids"
|
|
- "editable_until_msecs"
|
|
- "is_edit_eligible"
|
|
- "edits_remaining"
|
|
properties:
|
|
edit_tweet_ids:
|
|
type: array
|
|
items:
|
|
type: string
|
|
pattern: "^[0-9]+$"
|
|
editable_until_msecs:
|
|
type: string
|
|
pattern: "^[0-9]+$"
|
|
is_edit_eligible:
|
|
type: boolean
|
|
edits_remaining:
|
|
type: string
|
|
pattern: "^[0-9]+$"
|
|
|
|
TweetEditPrespective:
|
|
properties:
|
|
favorited:
|
|
type: boolean
|
|
retweeted:
|
|
type: boolean
|
|
TweetView:
|
|
required:
|
|
- "state"
|
|
properties:
|
|
count:
|
|
type: string
|
|
pattern: "^[0-9]+$"
|
|
state:
|
|
type: string
|
|
enum:
|
|
- Enabled
|
|
- EnabledWithCount
|
|
|
|
NoteTweet:
|
|
required:
|
|
- "is_expandable"
|
|
- "note_tweet_results"
|
|
properties:
|
|
is_expandable:
|
|
type: boolean
|
|
note_tweet_results:
|
|
$ref: "#/components/schemas/NoteTweetResult"
|
|
|
|
NoteTweetResult:
|
|
required:
|
|
- "result"
|
|
properties:
|
|
result:
|
|
$ref: "#/components/schemas/NoteTweetResultData"
|
|
|
|
NoteTweetResultData:
|
|
required:
|
|
- "entity_set"
|
|
- "id"
|
|
- "text"
|
|
properties:
|
|
entity_set:
|
|
$ref: "#/components/schemas/Entities"
|
|
id:
|
|
type: string
|
|
pattern: "^([A-Za-z0-9+/]{4})*([A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}==)?$" # base64
|
|
media:
|
|
$ref: "#/components/schemas/NoteTweetResultMedia"
|
|
richtext:
|
|
$ref: "#/components/schemas/NoteTweetResultRichText"
|
|
text:
|
|
type: string
|
|
|
|
NoteTweetResultMedia:
|
|
required:
|
|
- "inline_media"
|
|
properties:
|
|
inline_media:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/NoteTweetResultMediaInlineMedia"
|
|
|
|
NoteTweetResultMediaInlineMedia:
|
|
required:
|
|
- "media_id"
|
|
- "index"
|
|
properties:
|
|
media_id:
|
|
type: string
|
|
pattern: "^[0-9]+$"
|
|
index:
|
|
type: integer
|
|
|
|
NoteTweetResultRichText:
|
|
required:
|
|
- "richtext_tags"
|
|
properties:
|
|
richtext_tags:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/NoteTweetResultRichTextTag"
|
|
|
|
NoteTweetResultRichTextTag:
|
|
required:
|
|
- "from_index"
|
|
- "to_index"
|
|
- "richtext_types"
|
|
properties:
|
|
from_index:
|
|
type: integer
|
|
to_index:
|
|
type: integer
|
|
richtext_types:
|
|
type: array
|
|
items:
|
|
type: string
|
|
enum: [Bold, Italic]
|
|
|
|
UnifiedCard:
|
|
required:
|
|
- "card_fetch_state"
|
|
properties:
|
|
card_fetch_state:
|
|
type: string
|
|
enum: [NoCard]
|
|
|
|
TweetPreviousCounts:
|
|
required:
|
|
- "bookmark_count"
|
|
- "favorite_count"
|
|
- "quote_count"
|
|
- "reply_count"
|
|
- "retweet_count"
|
|
properties:
|
|
bookmark_count:
|
|
type: integer
|
|
favorite_count:
|
|
type: integer
|
|
quote_count:
|
|
type: integer
|
|
reply_count:
|
|
type: integer
|
|
retweet_count:
|
|
type: integer
|
|
|
|
QuotedRefResult:
|
|
properties:
|
|
result:
|
|
$ref: "#/components/schemas/TweetUnion"
|
|
|
|
SuperFollowsReplyUserResult:
|
|
required:
|
|
- "result"
|
|
properties:
|
|
result:
|
|
$ref: "#/components/schemas/SuperFollowsReplyUserResultData"
|
|
|
|
SuperFollowsReplyUserResultData:
|
|
required:
|
|
- "__typename"
|
|
- "legacy"
|
|
properties:
|
|
__typename:
|
|
$ref: "./../schemas/typename.yaml#/components/schemas/TypeName" # User
|
|
legacy:
|
|
$ref: "#/components/schemas/SuperFollowsReplyUserResultLegacy"
|
|
|
|
SuperFollowsReplyUserResultLegacy:
|
|
required:
|
|
- "screen_name"
|
|
properties:
|
|
screen_name:
|
|
type: string
|
|
|
|
AuthorCommunityRelationship:
|
|
required:
|
|
- "community_results"
|
|
properties:
|
|
community_results:
|
|
$ref: "#/components/schemas/Community"
|
|
role:
|
|
type: string
|
|
enum: [Member]
|
|
user_results:
|
|
$ref: "user.yaml#/components/schemas/UserResults"
|
|
|
|
Community:
|
|
required:
|
|
- "result"
|
|
properties:
|
|
result:
|
|
$ref: "#/components/schemas/CommunityData"
|
|
|
|
CommunityData:
|
|
required:
|
|
- "__typename"
|
|
- "id_str"
|
|
- "name"
|
|
- "description"
|
|
- "question"
|
|
- "search_tags"
|
|
- "actions"
|
|
- "admin_results"
|
|
- "creator_results"
|
|
- "invites_result"
|
|
- "join_policy"
|
|
- "invites_policy"
|
|
- "is_pinned"
|
|
- "members_facepile_results"
|
|
- "moderator_count"
|
|
- "member_count"
|
|
- "role"
|
|
- "rules"
|
|
properties:
|
|
__typename:
|
|
$ref: "./typename.yaml#/components/schemas/TypeName" # Community
|
|
id_str:
|
|
type: string
|
|
pattern: "^[0-9]+$"
|
|
name:
|
|
type: string
|
|
description:
|
|
type: string
|
|
created_at:
|
|
type: integer
|
|
question:
|
|
type: string
|
|
search_tags:
|
|
type: array
|
|
items:
|
|
type: string
|
|
primary_community_topic:
|
|
$ref: "#/components/schemas/PrimaryCommunityTopic"
|
|
actions:
|
|
$ref: "#/components/schemas/CommunityActions"
|
|
admin_results:
|
|
$ref: "user.yaml#/components/schemas/UserResults"
|
|
creator_results:
|
|
$ref: "user.yaml#/components/schemas/UserResults"
|
|
invites_result:
|
|
$ref: "#/components/schemas/CommunityInvitesResult"
|
|
join_requests_result:
|
|
$ref: "#/components/schemas/CommunityJoinRequestsResult"
|
|
join_policy:
|
|
type: string
|
|
enum: [Open]
|
|
invites_policy:
|
|
type: string
|
|
enum: [MemberInvitesAllowed]
|
|
is_pinned:
|
|
type: boolean
|
|
members_facepile_results:
|
|
type: array
|
|
items:
|
|
$ref: "user.yaml#/components/schemas/UserResults"
|
|
moderator_count:
|
|
type: integer
|
|
member_count:
|
|
type: integer
|
|
role:
|
|
type: string
|
|
enum: [NonMember]
|
|
rules:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/CommunityRule"
|
|
show_only_users_to_display:
|
|
type: array
|
|
items:
|
|
type: string
|
|
urls:
|
|
$ref: "#/components/schemas/CommunityUrls"
|
|
default_banner_media:
|
|
type: object
|
|
additionalProperties: true # todo
|
|
custom_banner_media:
|
|
type: object
|
|
additionalProperties: true # todo
|
|
viewer_relationship:
|
|
type: object
|
|
additionalProperties: true # todo
|
|
|
|
PrimaryCommunityTopic:
|
|
required:
|
|
- "topic_id"
|
|
- "topic_name"
|
|
properties:
|
|
topic_id:
|
|
type: string
|
|
pattern: "^[0-9]+$"
|
|
topic_name:
|
|
type: string
|
|
|
|
CommunityActions:
|
|
required:
|
|
- "delete_action_result"
|
|
- "join_action_result"
|
|
- "leave_action_result"
|
|
- "pin_action_result"
|
|
properties:
|
|
delete_action_result:
|
|
$ref: "#/components/schemas/CommunityDeleteActionResult"
|
|
join_action_result:
|
|
$ref: "#/components/schemas/CommunityJoinActionResult"
|
|
leave_action_result:
|
|
$ref: "#/components/schemas/CommunityLeaveActionResult"
|
|
pin_action_result:
|
|
$ref: "#/components/schemas/CommunityPinActionResult"
|
|
|
|
CommunityDeleteActionResult:
|
|
required:
|
|
- "__typename"
|
|
- "reason"
|
|
properties:
|
|
__typename:
|
|
$ref: "./typename.yaml#/components/schemas/TypeName" # CommunityDeleteActionUnavailable
|
|
reason:
|
|
type: string
|
|
enum: [Unavailable]
|
|
|
|
CommunityJoinActionResult:
|
|
required:
|
|
- "__typename"
|
|
properties:
|
|
__typename:
|
|
$ref: "./typename.yaml#/components/schemas/TypeName" # CommunityJoinAction
|
|
|
|
CommunityLeaveActionResult:
|
|
required:
|
|
- "__typename"
|
|
- "reason"
|
|
- "message"
|
|
properties:
|
|
__typename:
|
|
$ref: "./typename.yaml#/components/schemas/TypeName" # CommunityLeaveActionUnavailable
|
|
reason:
|
|
type: string
|
|
enum: [ViewerNotMember]
|
|
message:
|
|
type: string
|
|
|
|
CommunityPinActionResult:
|
|
required:
|
|
- "__typename"
|
|
properties:
|
|
__typename:
|
|
$ref: "./typename.yaml#/components/schemas/TypeName" # CommunityTweetPinActionUnavailable
|
|
|
|
CommunityInvitesResult:
|
|
required:
|
|
- "__typename"
|
|
- "reason"
|
|
- "message"
|
|
properties:
|
|
__typename:
|
|
$ref: "./typename.yaml#/components/schemas/TypeName" # CommunityInvitesUnavailable
|
|
reason:
|
|
type: string
|
|
enum: [Unavailable]
|
|
message:
|
|
type: string
|
|
|
|
CommunityJoinRequestsResult:
|
|
required:
|
|
- "__typename"
|
|
properties:
|
|
__typename:
|
|
$ref: "./typename.yaml#/components/schemas/TypeName" # CommunityJoinRequestsUnavailable
|
|
|
|
CommunityRule:
|
|
required:
|
|
- "rest_id"
|
|
- "name"
|
|
properties:
|
|
rest_id:
|
|
type: string
|
|
pattern: "^[0-9]+$"
|
|
name:
|
|
type: string
|
|
description:
|
|
type: string
|
|
|
|
CommunityUrls:
|
|
required:
|
|
- "permalink"
|
|
properties:
|
|
permalink:
|
|
$ref: "#/components/schemas/CommunityUrlsPermalink"
|
|
|
|
CommunityUrlsPermalink:
|
|
required:
|
|
- "url"
|
|
properties:
|
|
url:
|
|
type: string
|
|
format: uri
|
|
|
|
BirdwatchPivot:
|
|
required:
|
|
- "destinationUrl"
|
|
- "footer"
|
|
- "note"
|
|
- "subtitle"
|
|
- "title"
|
|
- "shorttitle"
|
|
- "iconType"
|
|
properties:
|
|
destinationUrl:
|
|
type: string
|
|
format: uri
|
|
footer:
|
|
$ref: "#/components/schemas/BirdwatchPivotFooter"
|
|
note:
|
|
$ref: "#/components/schemas/BirdwatchPivotNote"
|
|
subtitle:
|
|
$ref: "#/components/schemas/BirdwatchPivotSubtitle"
|
|
title:
|
|
type: string
|
|
shorttitle:
|
|
type: string
|
|
visualStyle:
|
|
type: string
|
|
enum: [Default]
|
|
iconType:
|
|
type: string
|
|
enum: [BirdwatchV1Icon]
|
|
callToAction:
|
|
$ref: "#/components/schemas/BirdwatchPivotCallToAction"
|
|
|
|
BirdwatchPivotFooter:
|
|
required:
|
|
- "text"
|
|
- "entities"
|
|
properties:
|
|
text:
|
|
type: string
|
|
entities:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/BirdwatchEntity"
|
|
|
|
BirdwatchEntity:
|
|
required:
|
|
- "fromIndex"
|
|
- "toIndex"
|
|
- "ref"
|
|
properties:
|
|
fromIndex:
|
|
type: integer
|
|
toIndex:
|
|
type: integer
|
|
ref:
|
|
$ref: "#/components/schemas/BirdwatchEntityRef"
|
|
|
|
BirdwatchEntityRef: # Union
|
|
required:
|
|
- "type"
|
|
properties:
|
|
type:
|
|
type: string
|
|
enum: [TimelineUrl, TimelineRichTextHashtag]
|
|
url:
|
|
type: string
|
|
format: uri
|
|
urlType:
|
|
type: string
|
|
enum: [ExternalUrl]
|
|
text:
|
|
type: string
|
|
|
|
BirdwatchPivotNote:
|
|
required:
|
|
- "rest_id"
|
|
properties:
|
|
rest_id:
|
|
type: string
|
|
pattern: "^[0-9]+$"
|
|
|
|
BirdwatchPivotSubtitle:
|
|
required:
|
|
- "text"
|
|
- "entities"
|
|
properties:
|
|
text:
|
|
type: string
|
|
entities:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/BirdwatchEntity"
|
|
|
|
BirdwatchPivotCallToAction:
|
|
required:
|
|
- "prompt"
|
|
- "title"
|
|
- "destinationUrl"
|
|
properties:
|
|
prompt:
|
|
type: string
|
|
title:
|
|
type: string
|
|
destinationUrl:
|
|
type: string
|
|
format: uri
|
|
|
|
TweetCard:
|
|
properties:
|
|
rest_id:
|
|
type: string
|
|
legacy:
|
|
$ref: "#/components/schemas/TweetCardLegacy"
|
|
|
|
TweetCardLegacy:
|
|
required:
|
|
- "binding_values"
|
|
- "name"
|
|
- "url"
|
|
properties:
|
|
name:
|
|
type: string
|
|
url:
|
|
type: string
|
|
binding_values:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/TweetCardLegacyBindingValue"
|
|
|
|
# {'platform': {'audience': {'name': 'production'}, 'device': {'name': 'Swift', 'version': '12'}}}
|
|
card_platform:
|
|
$ref: "#/components/schemas/TweetCardPlatformData"
|
|
user_refs_results:
|
|
type: array
|
|
items:
|
|
$ref: "user.yaml#/components/schemas/UserResults"
|
|
|
|
TweetCardPlatformData:
|
|
required:
|
|
- "platform"
|
|
properties:
|
|
platform:
|
|
$ref: "#/components/schemas/TweetCardPlatform"
|
|
|
|
TweetCardPlatform:
|
|
required:
|
|
- "audience"
|
|
- "device"
|
|
properties:
|
|
audience:
|
|
$ref: "#/components/schemas/TweetCardPlatformAudience"
|
|
device:
|
|
$ref: "#/components/schemas/TweetCardPlatformDevice"
|
|
|
|
TweetCardPlatformAudience:
|
|
required:
|
|
- "name"
|
|
properties:
|
|
name:
|
|
type: string
|
|
enum: [production]
|
|
|
|
TweetCardPlatformDevice:
|
|
required:
|
|
- "name"
|
|
- "version"
|
|
properties:
|
|
name:
|
|
type: string # enum Swift
|
|
version:
|
|
type: string
|
|
pattern: "^[0-9]+$"
|
|
|
|
TweetCardLegacyBindingValue:
|
|
required:
|
|
- "key"
|
|
- "value"
|
|
properties:
|
|
key:
|
|
type: string
|
|
value:
|
|
$ref: "#/components/schemas/TweetCardLegacyBindingValueData"
|
|
|
|
TweetCardLegacyBindingValueData:
|
|
required:
|
|
- "type"
|
|
properties:
|
|
string_value:
|
|
type: string
|
|
boolean_value:
|
|
type: boolean
|
|
scribe_key:
|
|
type: string
|
|
type:
|
|
type: string
|
|
image_value:
|
|
$ref: "#/components/schemas/TweetCardLegacyBindingValueDataImage"
|
|
image_color_value:
|
|
type: object
|
|
additionalProperties: true # todo
|
|
user_value:
|
|
$ref: "#/components/schemas/UserValue"
|
|
|
|
UserValue:
|
|
required:
|
|
- "id_str"
|
|
properties:
|
|
id_str:
|
|
type: string
|
|
pattern: "^[0-9]+$"
|
|
|
|
TweetCardLegacyBindingValueDataImage:
|
|
required:
|
|
- "height"
|
|
- "width"
|
|
- "url"
|
|
properties:
|
|
height:
|
|
type: integer
|
|
width:
|
|
type: integer
|
|
url:
|
|
type: string
|
|
format: uri
|
|
alt:
|
|
type: string
|
|
|
|
TweetLegacy:
|
|
required:
|
|
- "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"
|
|
properties:
|
|
bookmark_count:
|
|
type: integer
|
|
bookmarked:
|
|
type: boolean
|
|
created_at:
|
|
$ref: "./general.yaml#/components/schemas/TwitterTimeFormat"
|
|
conversation_id_str:
|
|
type: string
|
|
pattern: "^[0-9]+$"
|
|
display_text_range:
|
|
type: array
|
|
items:
|
|
type: integer
|
|
entities:
|
|
$ref: "#/components/schemas/Entities"
|
|
favorite_count:
|
|
type: integer
|
|
favorited:
|
|
type: boolean
|
|
full_text:
|
|
type: string
|
|
is_quote_status:
|
|
type: boolean
|
|
lang:
|
|
type: string # enum
|
|
possibly_sensitive:
|
|
type: boolean
|
|
default: false
|
|
possibly_sensitive_editable:
|
|
type: boolean
|
|
default: false
|
|
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:
|
|
type: string
|
|
pattern: "^[0-9]+$"
|
|
id_str:
|
|
type: string
|
|
pattern: "^[0-9]+$"
|
|
self_thread:
|
|
$ref: "#/components/schemas/SelfThread"
|
|
extended_entities:
|
|
$ref: "#/components/schemas/ExtendedEntities"
|
|
scopes:
|
|
$ref: "#/components/schemas/TweetLegacyScopes"
|
|
in_reply_to_screen_name:
|
|
type: string
|
|
in_reply_to_status_id_str:
|
|
type: string
|
|
pattern: "^[0-9]+$"
|
|
in_reply_to_user_id_str:
|
|
type: string
|
|
pattern: "^[0-9]+$"
|
|
quoted_status_permalink:
|
|
$ref: "#/components/schemas/QuotedStatusPermalink"
|
|
quoted_status_id_str:
|
|
type: string
|
|
pattern: "^[0-9]+$"
|
|
conversation_control:
|
|
additionalProperties: true # todo
|
|
limited_actions:
|
|
type: string
|
|
enum:
|
|
- "limited_replies"
|
|
- "non_compliant"
|
|
- "dynamic_product_ad"
|
|
- "stale_tweet"
|
|
- "community_tweet_non_member_public_community"
|
|
- "community_tweet_non_member_closed_community"
|
|
place:
|
|
additionalProperties: true # todo
|
|
|
|
SelfThread:
|
|
required:
|
|
- "id_str"
|
|
properties:
|
|
id_str:
|
|
type: string
|
|
pattern: "^[0-9]+$"
|
|
|
|
Entities:
|
|
required:
|
|
- "hashtags"
|
|
- "symbols"
|
|
- "user_mentions"
|
|
- "urls"
|
|
properties:
|
|
hashtags:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/Hashtag"
|
|
symbols:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/Symbol"
|
|
user_mentions:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/UserMention"
|
|
urls:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/Url"
|
|
media:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/Media"
|
|
timestamps:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/Timestamp"
|
|
|
|
Hashtag:
|
|
type: object
|
|
additionalProperties: true # todo
|
|
Symbol:
|
|
type: object
|
|
additionalProperties: true # todo
|
|
UserMention:
|
|
type: object
|
|
additionalProperties: true # todo
|
|
Url:
|
|
type: object
|
|
required:
|
|
- "url"
|
|
- "indices"
|
|
- "display_url"
|
|
properties:
|
|
display_url:
|
|
type: string
|
|
expanded_url:
|
|
type: string
|
|
format: uri
|
|
url:
|
|
type: string
|
|
format: uri
|
|
indices:
|
|
type: array
|
|
items:
|
|
type: integer
|
|
|
|
Media:
|
|
required:
|
|
- "display_url"
|
|
- "expanded_url"
|
|
- "id_str"
|
|
- "indices"
|
|
- "media_url_https"
|
|
- "type"
|
|
- "url"
|
|
# - "features"
|
|
- "sizes"
|
|
- "original_info"
|
|
- "media_key"
|
|
- "ext_media_availability"
|
|
properties:
|
|
display_url:
|
|
type: string
|
|
format: uri
|
|
expanded_url:
|
|
type: string
|
|
format: uri
|
|
id_str:
|
|
type: string
|
|
pattern: "^[0-9]+$"
|
|
indices:
|
|
type: array
|
|
items:
|
|
type: integer
|
|
media_url_https:
|
|
type: string
|
|
format: uri
|
|
type:
|
|
type: string
|
|
enum: [photo, video, animated_gif]
|
|
url:
|
|
type: string
|
|
format: uri
|
|
features:
|
|
type: object
|
|
sizes:
|
|
$ref: "#/components/schemas/MediaSizes"
|
|
original_info:
|
|
$ref: "#/components/schemas/MediaOriginalInfo"
|
|
media_key:
|
|
type: string
|
|
ext_media_availability:
|
|
$ref: "#/components/schemas/ExtMediaAvailability"
|
|
video_info:
|
|
$ref: "#/components/schemas/MediaVideoInfo"
|
|
additional_media_info:
|
|
$ref: "#/components/schemas/AdditionalMediaInfo"
|
|
source_user_id_str:
|
|
type: string
|
|
pattern: "^[0-9]+$"
|
|
source_status_id_str:
|
|
type: string
|
|
pattern: "^[0-9]+$"
|
|
ext_alt_text:
|
|
type: string
|
|
sensitive_media_warning:
|
|
$ref: "#/components/schemas/SensitiveMediaWarning"
|
|
allow_download_status:
|
|
$ref: "#/components/schemas/AllowDownloadStatus"
|
|
media_results:
|
|
$ref: "#/components/schemas/MediaResults"
|
|
|
|
TweetLegacyScopes:
|
|
required:
|
|
- "followers"
|
|
properties:
|
|
followers:
|
|
type: boolean
|
|
|
|
QuotedStatusPermalink:
|
|
required:
|
|
- "url"
|
|
- "expanded"
|
|
- "display"
|
|
properties:
|
|
url:
|
|
type: string
|
|
format: uri
|
|
expanded:
|
|
type: string
|
|
format: uri
|
|
display:
|
|
type: string
|
|
format: uri
|
|
|
|
ExtendedEntities:
|
|
required:
|
|
- "media"
|
|
properties:
|
|
media:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/MediaExtended"
|
|
|
|
MediaExtended:
|
|
required:
|
|
- "display_url"
|
|
- "expanded_url"
|
|
- "id_str"
|
|
- "indices"
|
|
- "media_key"
|
|
- "media_url_https"
|
|
- "type"
|
|
- "url"
|
|
# - "ext_media_availability"
|
|
# - "features"
|
|
- "sizes"
|
|
- "original_info"
|
|
properties:
|
|
display_url:
|
|
type: string
|
|
format: uri
|
|
expanded_url:
|
|
type: string
|
|
format: uri
|
|
id_str:
|
|
type: string
|
|
pattern: "^[0-9]+$"
|
|
indices:
|
|
type: array
|
|
items:
|
|
type: integer
|
|
media_key:
|
|
type: string
|
|
media_url_https:
|
|
type: string
|
|
format: uri
|
|
type:
|
|
type: string
|
|
enum: [photo, video, animated_gif]
|
|
url:
|
|
type: string
|
|
format: uri
|
|
additional_media_info:
|
|
$ref: "#/components/schemas/AdditionalMediaInfo"
|
|
mediaStats:
|
|
$ref: "#/components/schemas/MediaStats"
|
|
ext_media_availability:
|
|
$ref: "#/components/schemas/ExtMediaAvailability"
|
|
features:
|
|
type: object
|
|
sizes:
|
|
$ref: "#/components/schemas/MediaSizes"
|
|
original_info:
|
|
$ref: "#/components/schemas/MediaOriginalInfo"
|
|
video_info:
|
|
$ref: "#/components/schemas/MediaVideoInfo"
|
|
source_user_id_str:
|
|
type: string
|
|
pattern: "^[0-9]+$"
|
|
source_status_id_str:
|
|
type: string
|
|
pattern: "^[0-9]+$"
|
|
ext_alt_text:
|
|
type: string
|
|
sensitive_media_warning:
|
|
$ref: "#/components/schemas/SensitiveMediaWarning"
|
|
allow_download_status:
|
|
$ref: "#/components/schemas/AllowDownloadStatus"
|
|
media_results:
|
|
$ref: "#/components/schemas/MediaResults"
|
|
|
|
MediaOriginalInfo:
|
|
required:
|
|
- "height"
|
|
- "width"
|
|
properties:
|
|
height:
|
|
type: integer
|
|
width:
|
|
type: integer
|
|
focus_rects:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/MediaOriginalInfoFocusRect"
|
|
|
|
MediaOriginalInfoFocusRect:
|
|
type: object
|
|
required:
|
|
- "x"
|
|
- "y"
|
|
- "w"
|
|
- "h"
|
|
properties:
|
|
x:
|
|
type: integer
|
|
y:
|
|
type: integer
|
|
w:
|
|
type: integer
|
|
h:
|
|
type: integer
|
|
|
|
MediaVideoInfo:
|
|
required:
|
|
- "aspect_ratio"
|
|
- "variants"
|
|
properties:
|
|
aspect_ratio:
|
|
type: array
|
|
items:
|
|
type: integer
|
|
duration_millis:
|
|
type: integer
|
|
variants:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/MediaVideoInfoVariant"
|
|
|
|
MediaVideoInfoVariant:
|
|
required:
|
|
- "content_type"
|
|
- "url"
|
|
properties:
|
|
bitrate:
|
|
type: integer
|
|
content_type:
|
|
type: string
|
|
url:
|
|
type: string
|
|
format: uri
|
|
|
|
AdditionalMediaInfo:
|
|
required:
|
|
- "monetizable"
|
|
properties:
|
|
monetizable:
|
|
type: boolean
|
|
source_user:
|
|
$ref: "./user.yaml#/components/schemas/UserResultCore"
|
|
title: # null character
|
|
type: string
|
|
description: # null character
|
|
type: string
|
|
embeddable:
|
|
type: boolean
|
|
call_to_actions:
|
|
$ref: "#/components/schemas/AdditionalMediaInfoCallToActions"
|
|
|
|
AdditionalMediaInfoCallToActions:
|
|
properties:
|
|
visit_site:
|
|
$ref: "#/components/schemas/AdditionalMediaInfoCallToActionsUrl"
|
|
watch_now:
|
|
$ref: "#/components/schemas/AdditionalMediaInfoCallToActionsUrl"
|
|
|
|
AdditionalMediaInfoCallToActionsUrl:
|
|
required:
|
|
- "url"
|
|
properties:
|
|
url:
|
|
type: string
|
|
format: uri
|
|
|
|
MediaStats:
|
|
required:
|
|
- "viewCount"
|
|
properties:
|
|
viewCount:
|
|
type: integer
|
|
|
|
ExtMediaAvailability:
|
|
# required:
|
|
# - "status"
|
|
properties:
|
|
reason:
|
|
type: string # enum Dmcaed
|
|
status:
|
|
type: string
|
|
enum: [Available, Unavailable]
|
|
|
|
SensitiveMediaWarning:
|
|
required:
|
|
- "adult_content"
|
|
- "graphic_violence"
|
|
- "other"
|
|
properties:
|
|
adult_content:
|
|
type: boolean
|
|
default: false
|
|
graphic_violence:
|
|
type: boolean
|
|
default: false
|
|
other:
|
|
type: boolean
|
|
default: false
|
|
|
|
MediaSizes:
|
|
required:
|
|
- "large"
|
|
- "medium"
|
|
- "small"
|
|
- "thumb"
|
|
properties:
|
|
large:
|
|
$ref: "#/components/schemas/MediaSize"
|
|
medium:
|
|
$ref: "#/components/schemas/MediaSize"
|
|
small:
|
|
$ref: "#/components/schemas/MediaSize"
|
|
thumb:
|
|
$ref: "#/components/schemas/MediaSize"
|
|
|
|
MediaSize:
|
|
required:
|
|
- "w"
|
|
- "h"
|
|
- "resize"
|
|
properties:
|
|
w:
|
|
type: integer
|
|
h:
|
|
type: integer
|
|
resize:
|
|
type: string
|
|
enum: [crop, fit]
|
|
|
|
Timestamp:
|
|
required:
|
|
- "indices"
|
|
- "seconds"
|
|
- "text"
|
|
properties:
|
|
indices:
|
|
type: array
|
|
items:
|
|
type: integer
|
|
seconds:
|
|
type: integer
|
|
text:
|
|
type: string
|
|
|
|
Article:
|
|
required:
|
|
- "article_results"
|
|
properties:
|
|
article_results:
|
|
$ref: "#/components/schemas/ArticleResults"
|
|
|
|
ArticleResults:
|
|
required:
|
|
- "result"
|
|
properties:
|
|
result:
|
|
$ref: "#/components/schemas/ArticleResult"
|
|
|
|
ArticleResult:
|
|
required:
|
|
- "rest_id"
|
|
- "id"
|
|
- "title"
|
|
- "preview_text"
|
|
- "cover_media"
|
|
- "metadata"
|
|
properties:
|
|
rest_id:
|
|
type: string
|
|
pattern: "^[0-9]+$"
|
|
id:
|
|
type: string
|
|
title:
|
|
type: string
|
|
preview_text:
|
|
type: string
|
|
cover_media:
|
|
$ref: "#/components/schemas/ArticleCoverMedia"
|
|
metadata:
|
|
$ref: "#/components/schemas/ArticleMetadata"
|
|
lifecycle_state:
|
|
$ref: "#/components/schemas/ArticleLifecycleState"
|
|
|
|
ArticleCoverMedia:
|
|
required:
|
|
- "id"
|
|
- "media_key"
|
|
- "media_id"
|
|
- "media_info"
|
|
properties:
|
|
id:
|
|
type: string
|
|
media_key:
|
|
type: string
|
|
media_id:
|
|
type: string
|
|
pattern: "^[0-9]+$"
|
|
media_info:
|
|
$ref: "#/components/schemas/ArticleCoverMediaInfo"
|
|
|
|
ArticleCoverMediaInfo:
|
|
required:
|
|
- "original_img_height"
|
|
- "original_img_width"
|
|
- "original_img_url"
|
|
- "color_info"
|
|
properties:
|
|
__typename:
|
|
$ref: "./typename.yaml#/components/schemas/TypeName" # ApiImage
|
|
original_img_height:
|
|
type: integer
|
|
original_img_width:
|
|
type: integer
|
|
original_img_url:
|
|
type: string
|
|
format: uri
|
|
color_info:
|
|
$ref: "#/components/schemas/ArticleCoverMediaColorInfo"
|
|
|
|
ArticleCoverMediaColorInfo:
|
|
required:
|
|
- "palette"
|
|
properties:
|
|
palette:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/ArticleCoverMediaColorInfoPalette"
|
|
|
|
ArticleCoverMediaColorInfoPalette:
|
|
required:
|
|
- "percentage"
|
|
- "rgb"
|
|
properties:
|
|
percentage:
|
|
type: number
|
|
rgb:
|
|
$ref: "#/components/schemas/ArticleCoverMediaColorInfoPaletteRGB"
|
|
|
|
ArticleCoverMediaColorInfoPaletteRGB:
|
|
required:
|
|
- "blue"
|
|
- "green"
|
|
- "red"
|
|
properties:
|
|
blue:
|
|
type: integer
|
|
green:
|
|
type: integer
|
|
red:
|
|
type: integer
|
|
|
|
ArticleMetadata:
|
|
required:
|
|
- "first_published_at_secs"
|
|
properties:
|
|
first_published_at_secs:
|
|
type: integer
|
|
|
|
ArticleLifecycleState:
|
|
required:
|
|
- "modified_at_secs"
|
|
properties:
|
|
modified_at_secs:
|
|
type: integer
|
|
|
|
AllowDownloadStatus:
|
|
properties:
|
|
allow_download:
|
|
type: boolean
|
|
|
|
MediaResults:
|
|
required:
|
|
- "result"
|
|
properties:
|
|
result:
|
|
$ref: "#/components/schemas/MediaResult"
|
|
|
|
MediaResult:
|
|
required:
|
|
- "media_key"
|
|
properties:
|
|
media_key:
|
|
type: string
|