Schema preview Draft

Post schema (draft)

A public post (video, reel, short, photo, carousel, tweet or text) with its author, media and engagement metrics.

Draft: not yet available. No endpoint returns posts yet. This schema may change before the first endpoint ships; don't build against it.

Draft schema

When post endpoints ship, they will return objects shaped like this as data, next to the standard meta, the same on every platform.

FieldTypeDescription
platformstringPlatform ID (tiktok, youtube, …).
idstringPlatform-native post ID (string; Instagram shortcode, Reddit without t3_).
urlstring (uri)Canonical post URL.
typestringNormalized content shape. New values may be added; treat unknown values as other.
One of video, image, carousel, text, link, audio
platform_typestring or nullThe platform's own product label, lowercase (reel, short, story, live, tweet, …).
titlestring or nullHeadline (YouTube title, Reddit title); null on caption-only platforms.
textstring or nullCaption, description or body as plain text.
languagestring or nullBCP-47 language of text, when the platform states it.
published_atstring (date-time) or nullWhen the post went public, RFC 3339 UTC.
authorobjectThe posting account.
author.idstring or nullPlatform-native account ID; null when only the handle is known.
author.usernamestring or nullHandle without the @; null when the account has none.
author.display_namestring or nullDisplay name shown on the profile.
author.urlstring (uri) or nullCanonical profile URL.
author.avatar_urlstring (uri) or nullProfile picture URL. Platform CDN URLs can expire within hours.
author.is_verifiedboolean or nullPlatform verification badge; null where the platform has no badge.
duration_msinteger or nullLength of the primary video or audio in milliseconds; null for other posts.
thumbnail_urlstring (uri) or nullCover or poster image URL.
mediaobject[]Attachments in display order (carousel items); [] for text posts.
media[].typestringKind of file. New values may be added; treat unknown values as other.
One of image, video, audio, gif
media[].urlstring (uri) or nullDirect file URL; null when the platform withholds it. Often signed and expiring within hours.
media[].thumbnail_urlstring (uri) or nullPoster or preview image URL.
media[].widthinteger or nullWidth in pixels.
media[].heightinteger or nullHeight in pixels.
media[].duration_msinteger or nullDuration in milliseconds (video and audio only).
media[].alt_textstring or nullAccessibility text provided by the author or platform.
hashtagsstring[]Hashtags without #, case kept; [] if none.
mentionsstring[]Mentioned or tagged usernames without @; [] if none.
is_pinnedboolean or nullPinned to the author's profile.
is_sponsoredboolean or nullLabeled as a paid partnership or branded content.
is_nsfwboolean or nullMarked adult or sensitive by the platform.
metricsobjectCounts at fetch time; null = hidden or not exposed, 0 = zero.
metrics.view_countinteger or nullViews or plays.
metrics.like_countinteger or nullLikes, hearts, total reactions or upvotes; never negative. Null when hidden by the owner.
metrics.comment_countinteger or nullComments and replies.
metrics.share_countinteger or nullShares or sends (not reposts).
metrics.repost_countinteger or nullReposts, retweets or reshares.
metrics.quote_countinteger or nullQuote posts.
metrics.save_countinteger or nullSaves, bookmarks or favorites.
approximate_fieldsstring[]JSON paths of values rounded by the platform or parsed from display text; [] when all exact.

Item errors

Planned item-level errors, besides the request-level errors:

CodeHTTPRetryMeaningWhat to do
not_found404NoThe item does not exist or was deleted.Check the URL or ID; do not retry.
private_or_unavailable403NoThe item exists but is private, age- or region-gated, or requires a login to view.Only public items can be fetched; do not retry.

All schemas · Available APIs