SocialCrawl

Author schema

The unified SocialCrawl author or creator profile schema. Every field, its type, per-platform availability, and a machine-readable JSON Schema, generated from the canonical Zod source.

Author schema

Every SocialCrawl endpoint that returns a author or creator profile gives you this exact shape, whatever the source platform. Write your parser once and the same code reads author data from every platform below. That is the unified schema: one contract instead of a dozen raw upstream formats.

Field reference

FieldTypeNullableDescription
idstringNoPlatform-specific user ID (always a string; platform-specific prefixes like did:, spotify:artist:, t2_ are stripped)
usernamestringYesUser handle or username
display_namestringYesDisplay name or full name
avatar_urlstringYesURL to profile picture
biostringYesProfile biography or description
verifiedbooleanYesWhether the account is verified
followersintegerYesFollower or subscriber count as an integer. Exact on Instagram and on TikTok when the source exposes an unrounded figure. YouTube above 1,000 subscribers is YouTube's published three-significant-figure figure. When the integer is a published/rounded value, author.ext.followers_approximate is true.
followingintegerYesNumber of accounts followed
posts_countintegerYesTotal number of posts / videos / tracks / episodes
likes_countintegerYesTotal likes received across the author's content (when surfaced)
urlstringYesDirect URL to the profile page
locationstringYesISO region code (e.g. US) or freeform location string when surfaced
external_urlstringYesBio link / external website URL when surfaced by the platform
privatebooleanYes
joined_atstringYes

Extension fields (ext)

Platform-specific passthrough. Each field is present only on the platforms that expose it and is absent everywhere else, so treat every ext.* field as optional. These carry the richer, per-platform signals the unified leaves cannot hold, and the join keys that chain endpoints together.

FieldTypeNullableDescription
ext.social_contextstringYes
ext.account_createdstringYes
ext.countrystringYes
ext.former_usernamesstring[]Yes
ext.public_emailstringYes
ext.public_phonestringYes
ext.business_categorystringYes
ext.hd_avatar_urlstringYes
ext.websitestringYes
ext.cover_urlstringYes
ext.page_activebooleanYes
ext.employee_countintegerYes
ext.employee_count_range.startintegerYes
ext.employee_count_range.endintegerYes
ext.founded_yearintegerYes
ext.specialitiesstring[]Yes
ext.industriesstring[]Yes
ext.headquartersstringYes
ext.locationsstring[]Yes
ext.hashtagsstring[]Yes
ext.fundingstringYes
ext.addressstringYes
ext.price_rangestringYes
ext.ratingstringYes
ext.rating_countintegerYes
ext.talking_about_countintegerYes
ext.business_hoursstring[]Yes
ext.linksstring[]Yes
ext.ad_library_page_idstringYes
ext.ad_library_statusstringYes
ext.urnstringYes
ext.is_top_voicebooleanYes
ext.is_premiumbooleanYes
ext.followers_approximatebooleanYesTrue when author.followers is a published or rounded figure rather than an unrounded census: LinkedIn people-list display buckets, TikTok stats.followerCount when the exact sibling is absent, and YouTube subscriber counts at or above 1,000. Null or absent on exact counts.
ext.keywordsstringYes
ext.topicCategoriesstring[]Yes
ext.bannerExternalUrlstringYes
ext.madeForKidsbooleanYes
ext.hiddenSubscriberCountbooleanYes
ext.related_playlistsstringYes
ext.topic_idsstring[]Yes
ext.unsubscribed_trailerstringYes
ext.monthly_listenersintegerYes
ext.total_ratingsintegerYesSpotify podcasts only: how many listeners have rated the show. Cumulative over the show's whole run, so it reflects longevity as well as size, and it is NOT an audience count (Spotify publishes no play, download, subscriber or follower count for a podcast)
ext.average_ratingintegerYesSpotify podcasts only: mean listener rating from 0 to 5. Fractional (e.g. 4.66) despite the integer type this schema emits for every numeric leaf
ext.creator_usernamestringYes
ext.join_policystringYes
ext.is_nsfwbooleanYes
ext.weekly_active_usersintegerYes
ext.weekly_contributionsintegerYes
ext.bio_linkstringYes

Platform availability

23 platforms return the Author shape. id are never null on any platform. The fields below vary: yes means the platform populates it (the value may still be null); a blank means the platform never provides it, so it is always null.

Platformfollowingprivateurljoined_atlikes_countverifiedposts_countfollowersavatar_urllocationbioexternal_url
Blueskyyesyesyesyesyesyes
Facebookyesyesyesyesyesyesyesyesyes
GitHubyesyesyesyesyesyesyesyesyesyes
Googleyes
Hacker Newsyesyesyes
Instagramyesyesyesyesyesyesyesyesyesyesyes
Komiyesyesyes
Kwaiyesyesyesyesyesyesyesyesyes
LinkBioyes
LinkedInyesyesyesyesyesyes
LinkMeyesyesyesyesyes
Linktreeyesyes
Pillaryes
Reddityesyesyesyesyesyesyesyesyesyes
Snapchatyesyesyesyesyesyesyesyesyes
Spotifyyesyesyes
Threadsyesyesyesyesyesyesyesyesyesyes
TikTokyesyesyesyesyesyesyesyesyesyesyes
Trustpilotyesyes
Truth Socialyesyesyesyesyesyesyesyesyesyes
Twitchyesyesyesyesyesyesyesyesyesyes
Twitter/Xyesyesyesyesyesyesyesyesyes
YouTubeyesyesyesyesyes

Machine-readable schema

Validate responses programmatically against the JSON Schema (2020-12):

/schemas/author.json

Point a validator (Ajv, jsonschema, or your framework's) at that URL, or hand it to an agent so it can check the shape without a live call.

Returned by

Endpoints with the Author / AuthorList archetype return this shape:

Bluesky · Facebook · GitHub · Google · Hacker News · Instagram · Komi · Kwai · LinkBio · LinkedIn · LinkMe · Linktree · Pillar · Reddit · Snapchat · Spotify · Threads · TikTok · Trustpilot · Truth Social · Twitch · Twitter/X · YouTube

See how the same fields map to each platform's raw upstream names in the cross-platform field equivalence table.