# Cross-platform field equivalence (/docs/schema/field-equivalence) {/* AUTO-GENERATED. Do not hand-edit. Source: packages/social-api/src/docs/generate-schema-pages.ts Regenerate with: pnpm -F @repo/social-api generate:docs Field tables derive from the canonical Zod schemas (packages/social-api/src/schemas/canonical.ts); availability + equivalence derive from the registry fieldMaps. */} Cross-platform field equivalence [#cross-platform-field-equivalence] Every platform names the same metric differently. TikTok calls it `play_count`, YouTube calls it `viewCount`, Twitter calls it `views.count`. SocialCrawl normalizes all of them to one field: `post.engagement.views`. This table is the proof: it shows exactly which raw upstream field each platform's data comes from, for the metrics developers compare most. Write your comparison logic against the unified field on the left, once, and it works across every platform on the right. Engagement metrics [#engagement-metrics] Unified `post.engagement.views` (views / plays) [#unified-postengagementviews-views--plays] | Platform | Upstream field | | ------------ | ------------------------------------------------------------------------------------------------------------------------ | | Facebook | `interested_count`, `reachEstimate`, `reach_estimate`, `social_context.interested_count`, `videoViewCount`, `view_count` | | Google | `overallImpressions.max` | | Instagram | `data.xdt_shortcode_media.video_play_count`, `items.0.play_count`, `media.play_count`, `play_count` | | Kick | `clip.view_count` | | Kwai | `view_count` | | LinkedIn | `totalImpressions` | | Pinterest | `follower_count`, `viewCount` | | Reddit | `view_count` | | Rumble | `viewCountInt` | | Spotify | `playcount` | | Threads | `post.view_counts` | | TikTok | `impression`, `statistics.play_count`, `stats.playCount`, `userCount` | | Truth Social | `viewCount` | | Twitch | `0.data.clip.viewCount`, `viewCount` | | Twitter/X | `view_count`, `views.count` | | YouTube | `viewCount`, `viewCountInt` | Unified `post.engagement.likes` (likes / reactions) [#unified-postengagementlikes-likes--reactions] | Platform | Upstream field | | ------------ | ---------------------------------------------------------------------------------------------------------------- | | Bluesky | `likeCount`, `post.likeCount` | | Facebook | `going_count`, `like_count`, `reactionCount`, `social_context.going_count` | | GitHub | `reactions.total_count`, `stargazers_count` | | Hacker News | `points` | | Instagram | `data.xdt_shortcode_media.edge_media_preview_like.count`, `items.0.like_count`, `like_count`, `media.like_count` | | Kick | `clip.likes_count` | | Kwai | `like_count` | | LinkedIn | `activity.num_likes`, `data.activity.num_likes` | | Pinterest | `pin_count`, `reaction_counts.1`, `totalReactionCount` | | Reddit | `score`, `ups` | | Rumble | `likeCount` | | Threads | `like_count`, `post.like_count` | | TikTok | `like`, `statistics.digg_count`, `stats.diggCount` | | Truth Social | `favourites_count` | | Twitch | `0.data.clip.likeCount` | | Twitter/X | `favorite_count`, `legacy.favorite_count` | | YouTube | `likeCount`, `likeCountInt` | Unified `post.engagement.comments` (comments) [#unified-postengagementcomments-comments] | Platform | Upstream field | | ------------ | ------------------------------------------------------------------------------------------------------------------------------ | | Bluesky | `post.replyCount`, `replyCount` | | Facebook | `commentCount`, `comment_count` | | GitHub | `comments`, `open_issues_count` | | Hacker News | `num_comments` | | Instagram | `comment_count`, `data.xdt_shortcode_media.edge_media_to_parent_comment.count`, `items.0.comment_count`, `media.comment_count` | | Kick | `clip.commentCount` | | Kwai | `comment_count` | | LinkedIn | `activity.num_comments`, `data.activity.num_comments` | | Pinterest | `aggregatedPinData.commentCount`, `aggregated_pin_data.did_it_data.responses_count` | | Reddit | `num_comments` | | Threads | `post.text_post_app_info.direct_reply_count`, `text_post_app_info.direct_reply_count` | | TikTok | `comment`, `statistics.comment_count`, `stats.commentCount` | | Truth Social | `replies_count` | | Twitch | `0.data.clip.commentCount` | | Twitter/X | `legacy.reply_count`, `reply_count` | | YouTube | `commentCount`, `commentCountInt` | Unified `post.engagement.shares` (shares / retweets) [#unified-postengagementshares-shares--retweets] | Platform | Upstream field | | ------------ | ------------------------------------------------------------------------- | | Bluesky | `post.repostCount`, `repostCount` | | Facebook | `share_count` | | GitHub | `forks_count` | | Instagram | `items.0.reshare_count` | | Kick | `clip.shareCount` | | Kwai | `forward_count` | | LinkedIn | `activity.num_shares`, `data.activity.num_shares` | | Pinterest | `repin_count`, `shareCount` | | Reddit | `num_crossposts` | | Threads | `post.text_post_app_info.repost_count`, `text_post_app_info.repost_count` | | TikTok | `share`, `statistics.share_count`, `stats.shareCount` | | Truth Social | `reblogs_count` | | Twitch | `0.data.clip.shareCount` | | Twitter/X | `legacy.retweet_count`, `retweet_count` | Unified `post.engagement.saves` (saves / bookmarks) [#unified-postengagementsaves-saves--bookmarks] | Platform | Upstream field | | ------------ | --------------------------------------------------------------------------------------- | | Facebook | `saves_count` | | Kick | `clip.saveCount` | | Kwai | `favorite_count` | | Pinterest | `aggregatedPinData.aggregatedStats.saves`, `aggregated_pin_data.aggregated_stats.saves` | | Reddit | `saves` | | TikTok | `statistics.collect_count`, `stats.collectCount` | | Truth Social | `bookmarkCount` | | Twitch | `0.data.clip.clipCount` | | Twitter/X | `bookmark_count`, `legacy.bookmark_count` | Post content [#post-content] Unified `post.content.text` (caption / body text) [#unified-postcontenttext-caption--body-text] | Platform | Upstream field | | ------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------- | | Amazon | `description` | | Apple Music | `title` | | Bluesky | `post.record.text`, `record.text` | | Facebook | `accessibility_caption`, `description`, `name`, `snapshot.body`, `snapshot.body.text`, `text`, `title` | | GitHub | `description`, `name`, `post.content.text`, `title` | | Google | `advertiserName`, `post_text`, `variations.0.allText` | | Hacker News | `title` | | Instagram | `caption`, `caption.text`, `data.xdt_shortcode_media.edge_media_to_caption.edges.0.node.text`, `items.0.caption.text`, `media.caption.text`, `title` | | Kick | `clip.title` | | Kwai | `caption` | | LinkedIn | `data.text`, `description`, `text` | | Naver | `description`, `title` | | Pinterest | `description`, `name`, `title` | | Reddit | `title` | | Rumble | `title` | | Spotify | `name` | | Threads | `caption.text`, `post.caption.text` | | TikTok | `ad_title`, `desc`, `title` | | TikTok Shop | `title` | | Truth Social | `content` | | Twitch | `0.data.clip.title`, `title` | | Twitter/X | `full_text`, `legacy.full_text` | | YouTube | `content`, `title` | Unified `post.published_at` (publish time) [#unified-postpublished_at-publish-time] | Platform | Upstream field | | ------------ | ----------------------------------------------------------------------------------------------- | | Bluesky | `post.record.createdAt`, `record.createdAt` | | Facebook | `creation_time`, `publishTime`, `startDateString`, `start_date_string`, `start_timestamp` | | GitHub | `created_at`, `published_at` | | Google | `firstShown`, `lastShown`, `timestamp` | | Hacker News | `created_at` | | Instagram | `data.xdt_shortcode_media.taken_at_timestamp`, `items.0.taken_at`, `media.taken_at`, `taken_at` | | Kick | `clip.created_at` | | Kwai | `created_at` | | LinkedIn | `created_at`, `data.created_at`, `startDate` | | Naver | `postdate`, `pubDate` | | Pinterest | `created_at` | | Reddit | `created_utc` | | Rumble | `publishedAt` | | Spotify | `albumOfTrack.date.isoString`, `date.isoString`, `releaseDate.isoString` | | Threads | `post.taken_at`, `taken_at` | | TikTok | `createTime`, `create_time`, `first_shown_date` | | Truth Social | `created_at` | | Twitch | `0.data.clip.createdAt`, `publishedAt` | | Twitter/X | `created_at`, `legacy.created_at` | | YouTube | `publishDate`, `publishedAt`, `publishedTime` | Author / creator [#author--creator] Unified `author.followers` (follower count) [#unified-authorfollowers-follower-count] | Platform | Upstream field | | ------------ | ---------------------------------------------------------------------------------------------------------------- | | Bluesky | `followersCount` | | Facebook | `followerCount`, `likes`, `member_count` | | GitHub | `followers`, `stargazers_count` | | Instagram | `data.user.edge_followed_by.count`, `follower_count` | | Kwai | `follower_count` | | LinkedIn | `data.follower_and_connection.follower_count`, `data.follower_count`, `follower_count`, `follower_count_display` | | LinkMe | `profile.totalFollowers` | | Reddit | `subscribers` | | Snapchat | `userProfile.subscriberCount` | | Spotify | `stats.followers` | | Threads | `follower_count` | | TikTok | `follower_count`, `statsV2.followerCount`, `user_info.follower_count` | | Truth Social | `followers_count` | | Twitch | `followers` | | Twitter/X | `legacy.followers_count`, `member_count` | | YouTube | `subscriberCount` | Unified `author.following` (following count) [#unified-authorfollowing-following-count] | Platform | Upstream field | | ------------ | ---------------------------------------------------------------------- | | Bluesky | `followsCount` | | GitHub | `following`, `forks_count` | | Instagram | `data.user.edge_follow.count`, `following_count` | | Kwai | `following_count` | | LinkedIn | `data.follower_and_connection.connection_count` | | Reddit | `following_count` | | Snapchat | `userProfile.followingCount` | | Threads | `following_count` | | TikTok | `following_count`, `stats.followingCount`, `user_info.following_count` | | Truth Social | `following_count` | | Twitch | `followingCount` | | Twitter/X | `legacy.friends_count` | Unified `author.posts_count` (post count) [#unified-authorposts_count-post-count] | Platform | Upstream field | | ------------ | ------------------------------------------------------------- | | Bluesky | `postsCount` | | GitHub | `open_issues_count`, `public_repos` | | Instagram | `data.user.edge_owner_to_timeline_media.count`, `media_count` | | Kwai | `public_post_count` | | LinkMe | `profile.totalLinks` | | Reddit | `submission_count` | | Snapchat | `userProfile.storyCount` | | Threads | `text_post_app_media_count` | | TikTok | `aweme_count`, `stats.videoCount`, `user_info.aweme_count` | | Trustpilot | `reviews_count` | | Truth Social | `statuses_count` | | Twitch | `videoCount` | | Twitter/X | `legacy.statuses_count` | | YouTube | `videoCount` | Unified `author.likes_count` (total likes) [#unified-authorlikes_count-total-likes] | Platform | Upstream field | | ------------ | ------------------------------------------------------------------ | | Facebook | `likeCount` | | GitHub | `public_gists`, `subscribers_count` | | Hacker News | `karma` | | Kwai | `like_count` | | Reddit | `total_karma` | | Threads | `like_count` | | TikTok | `stats.heartCount`, `total_favorited`, `user_info.total_favorited` | | Truth Social | `favourites_count` | | Twitch | `totalLikes` | For the full field list, nullability, and per-platform availability of each shape, see the [schema reference](/docs/schema.md).