InsightSocial API
Unified schema

Author

The schema-2 author and profile objects. Every field, its type, and which platforms fill it.

Any endpoint that returns a profile, creator, page or channel returns it in the profile shape below, whichever platform it came from. Posts and comments carry a smaller author object, a subset of the profile. One parser reads both from every platform. This page describes schema 2, which every key gets from October 4, 2026; what changed is on Schema 2.

Where profiles sit in data

Endpoint returnsPath
One profile (/v1/instagram/profile, /v1/youtube/channel, …)data.author
A list of profiles (followers, search results, reactions, …)data.items[].author
The author of a postdata.post.author or data.items[].post.author
The author of a commentdata.comment.author or data.items[].comment.author

A list of profiles also carries data.total (the platform's own total, not the size of this page) and data.truncated, both null when the platform does not say.

Author on a post or comment

FieldTypeNullableDescription
idstringYesThe account's platform ID. On Reddit it is the account's t2_… ID, prefix kept, the same value as the Reddit profile's id. null where the source gives none: usually on Threads, Twitter/X and Pinterest posts, and then the response lists the path in unavailable.
usernamestringYesHandle.
display_namestringYesDisplay name or full name. On Reddit usually null: Reddit shows a username, and the t2_… ID that arrives in this place goes to author.id.
avatar_urlstringYesProfile picture.
verifiedbooleanYesWhether the account is verified.

For followers, bio and the rest, call the platform's profile endpoint with the username or id.

Profile

Example

/v1/instagram/profile?handle=nasa, shortened:

Response
{
  "success": true,
  "platform": "instagram",
  "endpoint": "/v1/instagram/profile",
  "schema_version": "2",
  "data": {
    "author": {
      "id": "528817151",
      "username": "nasa",
      "display_name": "NASA",
      "avatar_url": "https://scontent-phl2-1.cdninstagram.com/v/…",
      "bio": "Making the seemingly impossible, possible. ✨",
      "verified": true,
      "followers": 104294818,
      "followers_approximate": null,
      "following": 90,
      "posts_count": 4942,
      "likes_count": null,
      "url": "https://www.instagram.com/nasa/",
      "location": null,
      "external_url": "https://www.nasa.gov",
      "private": false,
      "joined_at": null,
      "last_post_at": "2026-10-03T14:10:18.000Z",
      "ext": { "business_category": null }
    }
  },
  "unavailable": [],
  "credits_used": 10,
  "credits_remaining": 9990,
  "request_id": "req_d6ad52ab1f9f",
  "cached": false,
  "idempotent_replay": false,
  "charge_reason": "miss",
  "free_call": false
}

Fields

Every field is always present; a value the platform does not give is null.

FieldTypeNullableDescription
idstringNoThe platform's ID for the account, always a string. Never parse it as a number. On a Reddit user it is the account's t2_… ID with the prefix kept, so it matches author.id on that user's posts and comments. On a LinkedIn person it is the member URN (ACoAA…), the same value as author.id on that member's posts; the vanity slug is username, and the numeric member id is ext.member_id. The one exception is /v1/linkedin/search/people/by-url, whose source gives no URN: there id is the slug. A LinkedIn company keeps its numeric company id.
usernamestringYesHandle.
display_namestringYesDisplay name or full name.
avatar_urlstringYesProfile picture.
biostringYesBio or description.
verifiedbooleanYesWhether the account is verified.
followersintegerYesFollowers or subscribers, as a whole number. Exact on Instagram, and on TikTok when an unrounded figure is available. On YouTube above 1,000 subscribers it is the rounded figure YouTube publishes (three significant digits).
followers_approximatebooleanYestrue when followers is a rounded or published figure rather than an exact count: LinkedIn people-list display figures, TikTok when no exact count is available, YouTube at 1,000 subscribers or more, and rounded Facebook counts. null when the platform gives an exact count or does not say.
followingintegerYesAccounts this account follows.
posts_countintegerYesTotal posts or videos.
likes_countintegerYesTotal likes received across the account's content, where shown.
urlstringYesLink to the profile itself, always on the platform's own site. Never the bio link.
locationstringYesAn ISO region code such as US, or free-text location, where shown.
external_urlstringYesThe website or bio link, where shown.
privatebooleanYesWhether the account is private.
joined_atstringYesWhen the account was created, ISO 8601 UTC ending in Z.
last_post_atstringYesWhen the account last posted, ISO 8601 UTC ending in Z.
extobjectYesPlatform-specific fields. See below.

A count is null when the platform does not show it and 0 only when it really is zero.

Extension fields (ext)

Platform-specific extras on the full profile. Each one appears only on platforms that provide it, so treat every ext field as optional. ext is null when a profile has no extras. Keys are snake_case on every platform, _id values are strings and _at values are ISO 8601 UTC times.

FieldTypeNullableDescription
ext.social_contextstringYesSocial context text the platform shows on the profile.
ext.account_createdstringYesAccount creation date as the platform shows it.
ext.countrystringYesCountry of the account.
ext.former_usernamesstring[]YesEarlier usernames, where shown.
ext.public_emailstringYesThe first email address found in the bio.
ext.contact_emailstringYesOpt in with contact_email=1 on /v1/instagram/profile, /v1/youtube/channel and /v1/youtube/channel/about. When a bio lists two or more addresses, this is the one the creator gives for personal contact, copied exactly. It stays null if the bio has fewer than two addresses, if all of them point to a manager, agency or brand, or if no single personal address stands out. ext.public_email is not affected.
ext.public_phonestringYesPublic phone number on the profile.
ext.business_categorystringYesBusiness category shown on the profile.
ext.hd_avatar_urlstringYesHigher-resolution profile picture.
ext.websitestringYesWebsite listed on the profile.
ext.cover_urlstringYesCover or banner image.
ext.page_activebooleanYesWhether a Facebook page is active.
ext.employee_countintegerYesLinkedIn company employee count.
ext.employee_count_range.startintegerYesLower bound of the LinkedIn company size range.
ext.employee_count_range.endintegerYesUpper bound of the LinkedIn company size range.
ext.founded_yearintegerYesYear the company was founded.
ext.specialitiesstring[]YesCompany specialties listed on LinkedIn.
ext.industriesstring[]YesCompany industries.
ext.headquartersstringYesCompany headquarters.
ext.locationsstring[]YesCompany office locations.
ext.hashtagsstring[]YesHashtags the company follows or lists.
ext.fundingstringYesCompany funding details.
ext.addressstringYesAddress on a Facebook page.
ext.price_rangestringYesPrice range on a Facebook page.
ext.ratingstringYesRating on a Facebook page.
ext.rating_countintegerYesNumber of ratings on a Facebook page.
ext.talking_about_countintegerYesFacebook "talking about this" count.
ext.business_hoursstring[]YesOpening hours on a Facebook page.
ext.linksstring[]YesLinks listed on the profile.
ext.ad_library_page_idstringYesPage ID to use with the Facebook Ad Library endpoints.
ext.ad_library_statusstringYesWhether the page is running ads.
ext.urnstringYesLinkedIn URN.
ext.is_top_voicebooleanYesLinkedIn Top Voice badge.
ext.is_premiumbooleanYesLinkedIn Premium member.
ext.is_creatorbooleanYesLinkedIn creator mode.
ext.is_influencerbooleanYesLinkedIn influencer flag.
ext.is_open_to_workbooleanYesLinkedIn Open to Work flag.
ext.is_hiringbooleanYesLinkedIn Hiring flag.
ext.member_idstringYesLinkedIn numeric member ID, where the source gives one.
ext.company_idstringYesLinkedIn company ID, for the company/* endpoints.
ext.reaction_typestringYesThe reaction a member left, on reaction lists.
ext.keywordsstringYesYouTube channel keywords.
ext.total_viewsintegerYesTotal channel views.
ext.joined_at_timestampstringYesAccount creation time as a timestamp.
ext.topic_categoriesstring[]YesYouTube topic categories.
ext.banner_external_urlstringYesYouTube channel banner.
ext.made_for_kidsbooleanYesYouTube made-for-kids flag.
ext.hidden_subscriber_countbooleanYestrue when the YouTube channel hides its subscriber count.
ext.related_playlistsobjectYesYouTube related playlists, such as uploads.
ext.topic_idsstring[]YesYouTube topic IDs.
ext.unsubscribed_trailerstringYesYouTube channel trailer shown to non-subscribers.
ext.join_policystringYesWho can join a group or community.
ext.is_nsfwbooleanYesSubreddit or account marked adult.
ext.rulesstring[]YesSubreddit rules.
ext.weekly_active_usersintegerYesSubreddit weekly visitors.
ext.weekly_contributionsintegerYesSubreddit weekly contributions.
ext.rules_textstringYesSubreddit rules as text.
ext.languagestringYesLanguage set on the account or community.
ext.post_karmaintegerYesReddit post karma.
ext.comment_karmaintegerYesReddit comment karma.
ext.awardee_karmaintegerYesReddit awardee karma.
ext.trophy_countintegerYesReddit trophies.
ext.banner_urlstringYesProfile banner image.
ext.social_linksstring[]YesSocial links listed on the profile.
ext.groupstringYesGroup details, on group responses.

Which platforms fill which fields

Every platform that returns profiles uses this shape, and id is never null. The table covers the platforms the API launched with that return profiles. The others return the same shape, and each response's unavailable list names the fields it could not fill. yes means the platform can fill the field (it may still be null on a given row); a blank means it never does.

Platformfollowingverifiedjoined_atposts_countlikes_countprivateurlfollowersavatar_urlbiolocationexternal_url
Facebookyesyesyesyesyesyesyesyes
Instagramyesyesyesyesyesyesyesyesyes
LinkedInyesyesyesyesyesyes
Reddityesyesyesyesyesyes
Threadsyesyesyesyesyesyes
TikTokyesyesyesyesyesyesyesyesyesyes
Twitter/Xyesyesyesyesyesyesyesyesyesyesyes
YouTubeyesyesyesyesyesyes

On Instagram, TikTok, Threads and Twitter/X, url is built from the handle when the platform sends none, and the link in the bio is always external_url. On a Reddit user, id is the t2_… account ID and display_name is null; a subreddit's id is its name.

unavailable

When a field the platform normally fills is null on every profile in a response, the response lists its path in unavailable, for example "author.followers" or "items[].author.joined_at". bio, external_url and location are never listed, because null there usually means the account has none. Fields a platform never shows publicly are never listed either:

PlatformNever listed in unavailable
Instagramlikes_count, joined_at
TikTokjoined_at
Facebookfollowing, posts_count, private
Threadsfollowing, posts_count, likes_count, joined_at
YouTubefollowing, likes_count, private
Redditfollowing, posts_count, likes_count
LinkedInposts_count, likes_count, private, joined_at

For fields that are always null on a platform, see Metric substitutions.

Returned by

Endpoints that return a profile or a list of profiles use this shape on:

Facebook · Instagram · LinkedIn · Reddit · Threads · TikTok · Twitter/X · YouTube

To see which native platform field feeds each unified field, read Field equivalence.

On this page