openapi: 3.0.3 info: title: Twitter OpenAPI version: 0.0.1 paths: {} components: schemas: UserResultCore: required: - "user_results" properties: user_results: $ref: "#/components/schemas/UserResults" UserResults: properties: result: $ref: "#/components/schemas/UserUnion" UserUnion: oneOf: - $ref: "#/components/schemas/User" - $ref: "#/components/schemas/UserUnavailable" discriminator: propertyName: __typename mapping": # deprecated User: "#/components/schemas/User" UserUnavailable: "#/components/schemas/UserUnavailable" User: required: - "__typename" - "affiliates_highlighted_label" - "id" - "is_blue_verified" - "legacy" - "rest_id" - "super_follow_eligible" - "super_followed_by" - "super_following" - "profile_image_shape" properties: __typename: $ref: "./typename.yaml#/components/schemas/TypeName" # User affiliates_highlighted_label: type: object additionalProperties: true # todo has_graduated_access: type: boolean has_nft_avatar: type: boolean default: false id: type: string pattern: "^([A-Za-z0-9+/]{4})*([A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}==)?$" # base64 is_blue_verified: type: boolean default: false legacy: $ref: "#/components/schemas/UserLegacy" rest_id: type: string pattern: "^[0-9]+$" business_account: type: object additionalProperties: true # todo super_follow_eligible: type: boolean default: false super_followed_by: type: boolean default: false super_following: type: boolean default: false profile_image_shape: type: string enum: - "Circle" - "Square" - "Hexagon" professional: $ref: "#/components/schemas/UserProfessional" user_seed_tweet_count: type: integer highlights_info: $ref: "#/components/schemas/UserHighlightsInfo" creator_subscriptions_count: type: integer verification_info: $ref: "#/components/schemas/UserVerificationInfo" is_profile_translatable: type: boolean tipjar_settings: $ref: "#/components/schemas/UserTipJarSettings" legacy_extended_profile: $ref: "#/components/schemas/UserLegacyExtendedProfile" has_hidden_likes_on_profile: type: boolean premium_gifting_eligible: type: boolean UserProfessional: required: - "rest_id" - "professional_type" - "category" properties: rest_id: type: string pattern: "^[0-9]+$" professional_type: type: string enum: ["Business", "Creator"] category: type: array items: $ref: "#/components/schemas/UserProfessionalCategory" UserProfessionalCategory: required: - "id" - "name" - "icon_name" properties: id: type: integer name: type: string # enum icon_name: type: string # IconBriefcaseStroke ? UserHighlightsInfo: required: - "can_highlight_tweets" - "highlighted_tweets" properties: can_highlight_tweets: type: boolean highlighted_tweets: type: string UserVerificationInfo: required: - "is_identity_verified" properties: is_identity_verified: type: boolean default: false reason: $ref: "#/components/schemas/UserVerificationInfoReason" UserVerificationInfoReason: required: - "description" - "verified_since_msec" - "override_verified_year" properties: description: $ref: "#/components/schemas/UserVerificationInfoReasonDescription" verified_since_msec: type: string pattern: "^-?[0-9]+$" override_verified_year: type: integer UserVerificationInfoReasonDescription: required: - "text" - "entities" properties: text: type: string entities: type: array items: $ref: "#/components/schemas/UserVerificationInfoReasonDescriptionEntities" UserVerificationInfoReasonDescriptionEntities: required: - "from_index" - "to_index" - "ref" properties: from_index: type: integer to_index: type: integer ref: $ref: "#/components/schemas/UserVerificationInfoReasonDescriptionEntitiesRef" UserVerificationInfoReasonDescriptionEntitiesRef: required: - "url" - "url_type" properties: url: type: string format: uri url_type: type: string enum: ["ExternalUrl"] UserTipJarSettings: properties: is_enabled: type: boolean patreon_handle: type: string bitcoin_handle: type: string ethereum_handle: type: string cash_app_handle: type: string venmo_handle: type: string gofundme_handle: type: string # uri bandcamp_handle: type: string # uri UserLegacyExtendedProfile: properties: birthdate: $ref: "#/components/schemas/UserLegacyExtendedProfileBirthdate" UserLegacyExtendedProfileBirthdate: required: - "day" - "month" - "year" - "visibility" - "year_visibility" properties: day: type: integer month: type: integer year: type: integer visibility: type: string enum: ["Self", "Public", "MutualFollow", "Followers", "Following"] year_visibility: type: string enum: ["Self", "Public", "MutualFollow", "Followers", "Following"] UserLegacy: required: - "blocked_by" - "blocking" - "can_dm" - "can_media_tag" - "created_at" - "default_profile" - "default_profile_image" - "description" - "entities" - "fast_followers_count" - "favourites_count" # 31 # - "follow_request_sent" # 31 # - "followed_by" - "followers_count" # 31 # - "following" - "friends_count" - "has_custom_timelines" - "is_translator" - "listed_count" - "location" - "media_count" - "muting" - "name" - "normal_followers_count" # 31 # - "notifications" - "pinned_tweet_ids_str" - "possibly_sensitive" - "profile_image_url_https" - "profile_interstitial_type" # 31 # - "protected" - "screen_name" - "status" - "statuses_count" - "translator_type" - "verified" - "want_retweets" properties: blocked_by: type: boolean default: false blocking: type: boolean default: false can_dm: type: boolean default: false can_media_tag: type: boolean default: false created_at: $ref: "./general.yaml#/components/schemas/TwitterTimeFormat" default_profile: type: boolean default: false default_profile_image: type: boolean default: false description: type: string entities: type: object additionalProperties: true # todo fast_followers_count: type: integer favourites_count: type: integer default: 0 follow_request_sent: type: boolean default: false followed_by: type: boolean default: false followers_count: type: integer default: 0 following: type: boolean default: false friends_count: type: integer default: 0 has_custom_timelines: type: boolean default: false is_translator: type: boolean default: false listed_count: type: integer default: 0 location: type: string media_count: type: integer default: 0 muting: type: boolean default: false name: type: string normal_followers_count: type: integer default: 0 notifications: type: boolean default: false pinned_tweet_ids_str: type: array items: type: string possibly_sensitive: type: boolean default: false profile_banner_extensions: type: object profile_banner_url: type: string format: uri profile_image_extensions: type: object profile_image_url_https: type: string format: uri profile_interstitial_type: type: string protected: type: boolean default: false screen_name: type: string statuses_count: type: integer default: 0 translator_type: type: string url: type: string verified: type: boolean want_retweets: type: boolean default: false verified_type: type: string enum: ["Business", "Government"] withheld_in_countries: type: array items: type: string # enum DE UserUnavailable: required: - "__typename" - "reason" properties: __typename: $ref: "./typename.yaml#/components/schemas/TypeName" # UserUnavailable reason: type: string message: type: string