{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/twitterapi-io/json-schema/twitterapi-io-user-profile-snake-schema.json",
  "title": "UserProfileSnake",
  "description": "User object returned by followers, followings, verifiedFollowers, user/search and community/members. Field names are snake_case (unlike user/info). Verified against live responses 2026-10-13.",
  "x-generated": "2026-10-29",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/twitterapi-io-openapi.json#/components/schemas/UserProfileSnake",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "User ID"
    },
    "name": {
      "type": "string",
      "description": "Display name"
    },
    "screen_name": {
      "type": "string",
      "description": "Handle (without @)"
    },
    "userName": {
      "type": "string",
      "description": "Handle (without @); present on followers / followings / verifiedFollowers"
    },
    "username": {
      "type": [
        "string",
        "null"
      ],
      "description": "Present on user/search only (currently null; use screen_name)"
    },
    "location": {
      "type": "string",
      "description": "Profile location"
    },
    "url": {
      "type": [
        "string",
        "null"
      ],
      "description": "Profile URL"
    },
    "description": {
      "type": "string",
      "description": "Bio"
    },
    "email": {
      "type": [
        "string",
        "null"
      ],
      "description": "Always null"
    },
    "protected": {
      "type": "boolean",
      "description": "Protected account"
    },
    "verified": {
      "type": "boolean",
      "description": "Legacy verified flag"
    },
    "isBlueVerified": {
      "type": "boolean",
      "description": "Present on user/search and community/members"
    },
    "followers_count": {
      "type": "integer",
      "description": "Followers"
    },
    "following_count": {
      "type": "integer",
      "description": "Following"
    },
    "friends_count": {
      "type": "integer",
      "description": "Following (legacy name, same as following_count)"
    },
    "favourites_count": {
      "type": "integer",
      "description": "Likes"
    },
    "statuses_count": {
      "type": "integer",
      "description": "Tweets"
    },
    "media_tweets_count": {
      "type": "integer",
      "description": "Media tweets"
    },
    "created_at": {
      "type": "string",
      "description": "Account creation time"
    },
    "profile_banner_url": {
      "type": "string",
      "description": "Banner image URL"
    },
    "profile_image_url_https": {
      "type": "string",
      "description": "Avatar URL"
    },
    "can_dm": {
      "type": "boolean",
      "description": "Whether DMs are open"
    }
  }
}