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 (Twitter for Android) 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