SocialCrawl
Unified schema

Comment schema

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

Comment schema

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

Field reference

FieldTypeNullableDescription
idstringNoPlatform-specific comment ID (always a string)
urlstringYesDirect URL to the comment on the source platform
parent_idstringYesParent comment ID for nested replies, or null for top-level comments
post_idstringYesID of the post this comment belongs to
textstringYesComment body. Tombstone sentinels ([deleted] / [removed]) are collapsed to null upstream — customers never see them.
author.usernamestringYesComment author username (null when tombstoned)
author.display_namestringYesComment author display name
author.avatar_urlstringYesURL to comment author profile picture
author.verifiedbooleanYesWhether the comment author is verified
engagement.likesintegerYesLike / upvote count
engagement.repliesintegerYesReply / child-comment count. 0 when the upstream structurally reports the count and the comment has no replies; null only when the upstream does not surface a reply count at all.
flags.pinnedbooleanYesPinned flag (null when platform does not surface)
flags.deletedbooleanNoWhether the comment is tombstoned (always present, even when false)
published_atstring or integerYesComment creation timestamp as an ISO 8601 UTC string. When the upstream sent a Unix epoch it is converted here and the raw epoch is preserved under comment.ext.published_at_epoch for one deprecation cycle.
repliesobject[]YesNested reply tree — array of child comments, each itself a full Comment object with its own replies. Populated on threaded platforms (Reddit); absent on flat-comment platforms, which thread only via parent_id.

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.replies_tokenstringYesYouTube reply continuation token — pass to /v1/youtube/video/comment/replies?continuationToken=
ext.replies_cursorstringYesReddit reply-branch continuation cursor. Present when this comment's reply tree is truncated upstream — pass it back as ?cursor= on /v1/reddit/post/comments to load the rest of the branch.
ext.published_at_epochintegerYesRaw Unix epoch for published_at (present only when the upstream sent a numeric epoch that was normalised to the ISO 8601 string).
ext.feedback_idstringYesFacebook comment feedback id — feeds /v1/facebook/post/comment/replies
ext.expansion_tokenstringYesFacebook comment expansion/paginator token — feeds /v1/facebook/post/comment/replies
ext.urnstringYes
ext.reaction_countsstring[]Yes
ext.is_editedbooleanYes
ext.previous_replies_tokenstringYes
ext.updated_atstringYes
ext.author_channel_idstringYes
ext.author_urlstringYes
ext.viewer_ratingstringYes
ext.text_originalstringYes
ext.preview_repliesstring[]Yes

Platform availability

10 platforms return the Comment shape. id, flags.deleted 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.

Platformparent_idpost_idauthor.display_nameflags.pinnedauthor.avatar_urlauthor.verifiedengagement.likesengagement.repliesurlauthor.username
Facebookyesyesyesyesyes
GitHubyesyesyesyesyes
Googleyesyesyesyesyesyes
Hacker Newsyesyesyesyes
Instagramyesyesyesyesyesyes
LinkedInyesyesyes
Reddityesyesyesyesyesyesyesyesyesyes
Rumbleyesyesyesyesyes
TikTokyesyesyesyesyesyesyesyes
YouTubeyesyesyesyesyes

Machine-readable schema

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

/schemas/comment.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 Comment / CommentList archetype return this shape:

Facebook · GitHub · Google · Hacker News · Instagram · LinkedIn · Reddit · Rumble · TikTok · TikTok Shop · YouTube

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

Comment schema | SocialCrawl