{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://socialcrawl.dev/schemas/author.json",
  "title": "SocialCrawl Author",
  "description": "Canonical unified author or creator profile object returned by every SocialCrawl endpoint with the Author/AuthorList archetype. Nullability is expressed via JSON Schema 2020-12 type arrays. Generated from the Zod schema in packages/social-api/src/schemas/canonical.ts.",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "Platform-specific user ID (always a string; platform-specific prefixes like `did:`, `spotify:artist:`, `t2_` are stripped)"
    },
    "username": {
      "type": [
        "string",
        "null"
      ],
      "description": "User handle or username"
    },
    "display_name": {
      "type": [
        "string",
        "null"
      ],
      "description": "Display name or full name"
    },
    "avatar_url": {
      "type": [
        "string",
        "null"
      ],
      "description": "URL to profile picture"
    },
    "bio": {
      "type": [
        "string",
        "null"
      ],
      "description": "Profile biography or description"
    },
    "verified": {
      "type": [
        "boolean",
        "null"
      ],
      "description": "Whether the account is verified"
    },
    "followers": {
      "type": [
        "integer",
        "null"
      ],
      "description": "Number of followers"
    },
    "following": {
      "type": [
        "integer",
        "null"
      ],
      "description": "Number of accounts followed"
    },
    "posts_count": {
      "type": [
        "integer",
        "null"
      ],
      "description": "Total number of posts / videos / tracks / episodes"
    },
    "likes_count": {
      "type": [
        "integer",
        "null"
      ],
      "description": "Total likes received across the author's content (when surfaced)"
    },
    "url": {
      "type": [
        "string",
        "null"
      ],
      "description": "Direct URL to the profile page"
    },
    "location": {
      "type": [
        "string",
        "null"
      ],
      "description": "ISO region code (e.g. `US`) or freeform location string when surfaced"
    },
    "external_url": {
      "type": [
        "string",
        "null"
      ],
      "description": "Bio link / external website URL when surfaced by the platform"
    },
    "ext": {
      "type": [
        "object",
        "null"
      ],
      "description": "Nested object: author.ext",
      "properties": {
        "social_context": {
          "type": [
            "string",
            "null"
          ],
          "description": "String at author.ext.social_context"
        },
        "account_created": {
          "type": [
            "string",
            "null"
          ],
          "description": "String at author.ext.account_created"
        },
        "country": {
          "type": [
            "string",
            "null"
          ],
          "description": "String at author.ext.country"
        },
        "former_usernames": {
          "type": [
            "array",
            "null"
          ],
          "description": "Array at author.ext.former_usernames",
          "items": {
            "type": "string",
            "description": "String at author.ext.former_usernames"
          }
        },
        "public_email": {
          "type": [
            "string",
            "null"
          ],
          "description": "String at author.ext.public_email"
        },
        "public_phone": {
          "type": [
            "string",
            "null"
          ],
          "description": "String at author.ext.public_phone"
        },
        "business_category": {
          "type": [
            "string",
            "null"
          ],
          "description": "String at author.ext.business_category"
        },
        "hd_avatar_url": {
          "type": [
            "string",
            "null"
          ],
          "description": "String at author.ext.hd_avatar_url"
        },
        "urn": {
          "type": [
            "string",
            "null"
          ],
          "description": "String at author.ext.urn"
        },
        "is_top_voice": {
          "type": [
            "boolean",
            "null"
          ],
          "description": "Boolean at author.ext.is_top_voice"
        },
        "is_premium": {
          "type": [
            "boolean",
            "null"
          ],
          "description": "Boolean at author.ext.is_premium"
        },
        "keywords": {
          "type": [
            "string",
            "null"
          ],
          "description": "String at author.ext.keywords"
        },
        "topicCategories": {
          "type": [
            "array",
            "null"
          ],
          "description": "Array at author.ext.topicCategories",
          "items": {
            "type": "string",
            "description": "String at author.ext.topicCategories"
          }
        },
        "bannerExternalUrl": {
          "type": [
            "string",
            "null"
          ],
          "description": "String at author.ext.bannerExternalUrl"
        },
        "madeForKids": {
          "type": [
            "boolean",
            "null"
          ],
          "description": "Boolean at author.ext.madeForKids"
        },
        "hiddenSubscriberCount": {
          "type": [
            "boolean",
            "null"
          ],
          "description": "Boolean at author.ext.hiddenSubscriberCount"
        },
        "related_playlists": {
          "type": [
            "string",
            "null"
          ],
          "description": "Leaf at author.ext.related_playlists"
        },
        "topic_ids": {
          "type": [
            "array",
            "null"
          ],
          "description": "Array at author.ext.topic_ids",
          "items": {
            "type": "string",
            "description": "String at author.ext.topic_ids"
          }
        },
        "unsubscribed_trailer": {
          "type": [
            "string",
            "null"
          ],
          "description": "String at author.ext.unsubscribed_trailer"
        }
      }
    }
  },
  "additionalProperties": true
}
