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" professional: $ref: "#/components/schemas/UserProfessional" UserProfessional: required: - "rest_id" - "professional_type" - "category" properties: rest_id: type: string pattern: "^[0-9]+$" professional_type: type: string enum: ["Business"] 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 ? 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"] UserUnavailable: required: - "__typename" - "reason" properties: __typename: $ref: "./typename.yaml#/components/schemas/TypeName" # UserUnavailable reason: type: string