# Post

Schemas

Public posts (videos, reels, shorts, photos, carousels, tweets and text) with their author, text, media, and views, likes and comments.

## Endpoints

67 endpoints return posts on Amazon, Apple Music, Bluesky, Facebook, Instagram, Kick, Kwai, LinkedIn, Pinterest, Reddit, Rumble, Snapchat, SoundCloud, Spotify, Telegram, Threads, TikTok, Truth Social, Twitch, X and YouTube.

- [GETAmazon Shop Posts API`/v1/amazon/shop_posts`](https://socialtap.dev/docs/reference/amazon/shop_posts/index.md)
- [GETApple Music Track Search API`/v1/applemusic/search_tracks`](https://socialtap.dev/docs/reference/applemusic/search_tracks/index.md)
- [GETApple Music Top Tracks API`/v1/applemusic/top_tracks`](https://socialtap.dev/docs/reference/applemusic/top_tracks/index.md)
- [GETApple Music Track API`/v1/applemusic/track`](https://socialtap.dev/docs/reference/applemusic/track/index.md)
- [GETBluesky Post API`/v1/bluesky/post`](https://socialtap.dev/docs/reference/bluesky/post/index.md)
- [GETBluesky User Posts API`/v1/bluesky/posts`](https://socialtap.dev/docs/reference/bluesky/posts/index.md)
- [GETBluesky Post Search API`/v1/bluesky/search_posts`](https://socialtap.dev/docs/reference/bluesky/search_posts/index.md)
- [GETFacebook Group Posts API`/v1/facebook/group_posts`](https://socialtap.dev/docs/reference/facebook/group_posts/index.md)
- [GETFacebook Profile Photos API`/v1/facebook/photos`](https://socialtap.dev/docs/reference/facebook/photos/index.md)
- [GETFacebook Post API`/v1/facebook/post`](https://socialtap.dev/docs/reference/facebook/post/index.md)
- [GETFacebook Profile Posts API`/v1/facebook/posts`](https://socialtap.dev/docs/reference/facebook/posts/index.md)
- [GETFacebook Reels API`/v1/facebook/reels`](https://socialtap.dev/docs/reference/facebook/reels/index.md)
- [GETInstagram Hashtag Posts API`/v1/instagram/hashtag_posts`](https://socialtap.dev/docs/reference/instagram/hashtag_posts/index.md)
- [GETInstagram Location Posts API`/v1/instagram/place_posts`](https://socialtap.dev/docs/reference/instagram/place_posts/index.md)
- [GETInstagram Highlight Stories API`/v1/instagram/playlist_stories`](https://socialtap.dev/docs/reference/instagram/playlist_stories/index.md)
- [GETInstagram Post API`/v1/instagram/post`](https://socialtap.dev/docs/reference/instagram/post/index.md)
- [GETInstagram Posts API`/v1/instagram/posts`](https://socialtap.dev/docs/reference/instagram/posts/index.md)
- [GETInstagram Reels API`/v1/instagram/reels`](https://socialtap.dev/docs/reference/instagram/reels/index.md)
- [GETInstagram Search API`/v1/instagram/search_posts`](https://socialtap.dev/docs/reference/instagram/search_posts/index.md)
- [GETInstagram Audio Reels API`/v1/instagram/sound_posts`](https://socialtap.dev/docs/reference/instagram/sound_posts/index.md)
- [GETInstagram Story API`/v1/instagram/story`](https://socialtap.dev/docs/reference/instagram/story/index.md)
- [GETInstagram Trending Reels API`/v1/instagram/trending_posts`](https://socialtap.dev/docs/reference/instagram/trending_posts/index.md)
- [GETKick Clip API`/v1/kick/post`](https://socialtap.dev/docs/reference/kick/post/index.md)
- [GETKwai Post API`/v1/kwai/post`](https://socialtap.dev/docs/reference/kwai/post/index.md)
- [GETKwai User Posts API`/v1/kwai/posts`](https://socialtap.dev/docs/reference/kwai/posts/index.md)
- [GETLinkedIn Post API`/v1/linkedin/post`](https://socialtap.dev/docs/reference/linkedin/post/index.md)
- [GETPinterest Board Pins API`/v1/pinterest/board_pins`](https://socialtap.dev/docs/reference/pinterest/board_pins/index.md)
- [GETPinterest Pin API`/v1/pinterest/pin`](https://socialtap.dev/docs/reference/pinterest/pin/index.md)
- [GETPinterest Profile Pins API`/v1/pinterest/pins`](https://socialtap.dev/docs/reference/pinterest/pins/index.md)
- [GETPinterest Search API`/v1/pinterest/search_pins`](https://socialtap.dev/docs/reference/pinterest/search_pins/index.md)
- [GETReddit Post API`/v1/reddit/post`](https://socialtap.dev/docs/reference/reddit/post/index.md)
- [GETReddit User Posts API`/v1/reddit/posts`](https://socialtap.dev/docs/reference/reddit/posts/index.md)
- [GETReddit Search API`/v1/reddit/search_posts`](https://socialtap.dev/docs/reference/reddit/search_posts/index.md)
- [GETReddit Subreddit Posts API`/v1/reddit/subreddit_posts`](https://socialtap.dev/docs/reference/reddit/subreddit_posts/index.md)
- [GETRumble Video API`/v1/rumble/post`](https://socialtap.dev/docs/reference/rumble/post/index.md)
- [GETRumble Channel Videos API`/v1/rumble/posts`](https://socialtap.dev/docs/reference/rumble/posts/index.md)
- [GETRumble Search API`/v1/rumble/search_posts`](https://socialtap.dev/docs/reference/rumble/search_posts/index.md)
- [GETSnapchat Spotlight API`/v1/snapchat/spotlight`](https://socialtap.dev/docs/reference/snapchat/spotlight/index.md)
- [GETSoundCloud Track API`/v1/soundcloud/track`](https://socialtap.dev/docs/reference/soundcloud/track/index.md)
- [GETSoundCloud Artist Tracks API`/v1/soundcloud/tracks`](https://socialtap.dev/docs/reference/soundcloud/tracks/index.md)
- [GETSpotify Playlist Tracks API`/v1/spotify/playlist_tracks`](https://socialtap.dev/docs/reference/spotify/playlist_tracks/index.md)
- [GETSpotify Podcast Episodes API`/v1/spotify/podcast_episodes`](https://socialtap.dev/docs/reference/spotify/podcast_episodes/index.md)
- [GETSpotify Track Search API`/v1/spotify/search_tracks`](https://socialtap.dev/docs/reference/spotify/search_tracks/index.md)
- [GETSpotify Track API`/v1/spotify/track`](https://socialtap.dev/docs/reference/spotify/track/index.md)
- [GETTelegram Channel Posts API`/v1/telegram/channel_posts`](https://socialtap.dev/docs/reference/telegram/channel_posts/index.md)
- [GETTelegram Post API`/v1/telegram/post`](https://socialtap.dev/docs/reference/telegram/post/index.md)
- [GETThreads Post API`/v1/threads/post`](https://socialtap.dev/docs/reference/threads/post/index.md)
- [GETThreads Posts API`/v1/threads/posts`](https://socialtap.dev/docs/reference/threads/posts/index.md)
- [GETThreads Search API`/v1/threads/search_posts`](https://socialtap.dev/docs/reference/threads/search_posts/index.md)
- [GETTikTok Effect Posts API`/v1/tiktok/effect_posts`](https://socialtap.dev/docs/reference/tiktok/effect_posts/index.md)
- [GETTikTok Hashtag Posts API`/v1/tiktok/hashtag_posts`](https://socialtap.dev/docs/reference/tiktok/hashtag_posts/index.md)
- [GETTikTok Liked Posts API`/v1/tiktok/liked_posts`](https://socialtap.dev/docs/reference/tiktok/liked_posts/index.md)
- [GETTikTok Place Posts API`/v1/tiktok/place_posts`](https://socialtap.dev/docs/reference/tiktok/place_posts/index.md)
- [GETTikTok Playlist Posts API`/v1/tiktok/playlist_posts`](https://socialtap.dev/docs/reference/tiktok/playlist_posts/index.md)
- [GETTikTok Post API`/v1/tiktok/post`](https://socialtap.dev/docs/reference/tiktok/post/index.md)
- [GETTikTok Posts API`/v1/tiktok/posts`](https://socialtap.dev/docs/reference/tiktok/posts/index.md)
- [GETTikTok Search API`/v1/tiktok/search_posts`](https://socialtap.dev/docs/reference/tiktok/search_posts/index.md)
- [GETTikTok Sound Posts API`/v1/tiktok/sound_posts`](https://socialtap.dev/docs/reference/tiktok/sound_posts/index.md)
- [GETTikTok Top Videos API`/v1/tiktok/top_posts`](https://socialtap.dev/docs/reference/tiktok/top_posts/index.md)
- [GETTikTok Trending Videos API`/v1/tiktok/trending_posts`](https://socialtap.dev/docs/reference/tiktok/trending_posts/index.md)
- [GETTruth Social Post API`/v1/truthsocial/post`](https://socialtap.dev/docs/reference/truthsocial/post/index.md)
- [GETTruth Social Posts API`/v1/truthsocial/posts`](https://socialtap.dev/docs/reference/truthsocial/posts/index.md)
- [GETTwitch Video and Clip API`/v1/twitch/video`](https://socialtap.dev/docs/reference/twitch/video/index.md)
- [GETTwitch Videos API`/v1/twitch/videos`](https://socialtap.dev/docs/reference/twitch/videos/index.md)
- [GETX (Twitter) Post API`/v1/x/post`](https://socialtap.dev/docs/reference/x/post/index.md)
- [GETYouTube Video API`/v1/youtube/post`](https://socialtap.dev/docs/reference/youtube/post/index.md)
- [GETYouTube Channel Videos API`/v1/youtube/posts`](https://socialtap.dev/docs/reference/youtube/posts/index.md)

## Schema

Single-item endpoints return this object as `data`; list endpoints return an array of them as `data` with a [`page`](https://socialtap.dev/docs/pagination/index.md) object. The standard [`meta`](https://socialtap.dev/docs/reference/index.md#meta) comes with every response.

| Field | Type | Description |
| --- | --- | --- |
| `platform` | `string` | Platform ID (tiktok, youtube, …). |
| `id` | `string` | Platform-native post ID (string; Instagram shortcode, Reddit with its t3_ prefix). |
| `url` | `string` (uri) | Canonical post URL. |
| `type` | `string` | Normalized content shape. New values may be added; treat unknown values as other.<br>One of `video`, `image`, `carousel`, `text`, `link`, `audio` |
| `platform_type` | `string` or `null` | The platform's own product label, lowercase (reel, short, story, live, tweet, …). |
| `title` | `string` or `null` | Headline (YouTube title, Reddit title); null on caption-only platforms. |
| `text` | `string` or `null` | Caption, description or body as plain text. |
| `language` | `string` or `null` | BCP-47 language of text, when the platform states it. |
| `published_at` | `string` (date-time) or `null` | When the post went public, RFC 3339 UTC. |
| `author` | `object` | The posting account. An account the platform no longer names (a deleted account) has a null id and username and the platform's label as display_name (Reddit: \[deleted\]). A post credited to what is no account of the platform's (an Apple Music radio episode's show) has a null id and username, and every other field null too when the platform doesn't name it. |
| `author.id` | `string` or `null` | Platform-native account ID; null when only the handle is known. |
| `author.username` | `string` or `null` | Handle without the @; null when the account has none. |
| `author.display_name` | `string` or `null` | Display name shown on the profile. |
| `author.url` | `string` (uri) or `null` | Canonical profile URL. |
| `author.avatar_url` | `string` (uri) or `null` | Profile picture URL. Platform CDN URLs can expire within hours. |
| `author.is_verified` | `boolean` or `null` | Platform verification badge; null where the platform has no badge. |
| `coauthors` | `object[]` | Other accounts credited as co-authors of the post (Instagram and Facebook collabs, YouTube collaborations), in the platform's order, author excluded; \[\] if none. |
| `coauthors[].id` | `string` or `null` | Platform-native account ID; null when only the handle is known. |
| `coauthors[].username` | `string` or `null` | Handle without the @; null when the account has none. |
| `coauthors[].display_name` | `string` or `null` | Display name shown on the profile. |
| `coauthors[].url` | `string` (uri) or `null` | Canonical profile URL. |
| `coauthors[].avatar_url` | `string` (uri) or `null` | Profile picture URL. Platform CDN URLs can expire within hours. |
| `coauthors[].is_verified` | `boolean` or `null` | Platform verification badge; null where the platform has no badge. |
| `duration_ms` | `integer` or `null` | Length of the primary video or audio in milliseconds; null for other posts. |
| `thumbnail_url` | `string` (uri) or `null` | Cover or poster image URL. |
| `media` | `object[]` | Attachments in display order (carousel items); \[\] for text posts. |
| `media[].type` | `string` | Kind of file. New values may be added; treat unknown values as other.<br>One of `image`, `video`, `audio`, `gif` |
| `media[].url` | `string` (uri) or `null` | Direct file URL; null when the platform withholds it, or when the link would only work from SocialTap's network or with a login. Often signed and expiring: see expires_at. |
| `media[].expires_at` | `string` (date-time) or `null` | When url stops working, RFC 3339 UTC, read from the platform's signed URL; null when unknown or when it does not expire. |
| `media[].thumbnail_url` | `string` (uri) or `null` | Poster or preview image URL. |
| `media[].width` | `integer` or `null` | Width in pixels. |
| `media[].height` | `integer` or `null` | Height in pixels. |
| `media[].duration_ms` | `integer` or `null` | Duration in milliseconds (video and audio only). |
| `media[].alt_text` | `string` or `null` | Accessibility text provided by the author or platform. |
| `hashtags` | `string[]` | Hashtags without #, case kept; \[\] if none. |
| `mentions` | `string[]` | Mentioned or tagged usernames without @; \[\] if none. |
| `is_pinned` | `boolean` or `null` | Pinned to the author's profile. |
| `is_sponsored` | `boolean` or `null` | Labeled as a paid partnership or branded content. |
| `is_nsfw` | `boolean` or `null` | Marked adult or sensitive by the platform. |
| `metrics` | `object` | Counts at fetch time; null = hidden or not exposed, 0 = zero. |
| `metrics.view_count` | `integer` or `null` | Views or plays. |
| `metrics.like_count` | `integer` or `null` | Likes, hearts, total reactions or upvotes; never negative. Null when hidden by the owner. |
| `metrics.comment_count` | `integer` or `null` | Comments and replies. |
| `metrics.share_count` | `integer` or `null` | Shares or sends (not reposts). |
| `metrics.repost_count` | `integer` or `null` | Reposts, retweets or reshares. |
| `metrics.quote_count` | `integer` or `null` | Quote posts. |
| `metrics.save_count` | `integer` or `null` | Saves, bookmarks or favorites. |
| `platform_specific` | `object` | Fields only this platform has, under its ID (platform_specific.\<platform>); each null when unknown. |
| `platform_specific.tiktok` | `object` or `null` | A TikTok post's own fields. |
| `platform_specific.tiktok.author_sec_uid` | `string` or `null` | The author's secUid, TikTok's account key that survives a rename. |
| `platform_specific.tiktok.country_code` | `string` or `null` | ISO 3166-1 alpha-2 country TikTok registers the post to (not the viewer's). |
| `platform_specific.tiktok.is_ad` | `boolean` or `null` | The post runs as a TikTok ad. |
| `platform_specific.tiktok.is_ai_generated` | `boolean` or `null` | TikTok labels the post AI-generated. |
| `platform_specific.tiktok.location` | `object` or `null` | The tagged place; null when none. |
| `platform_specific.tiktok.location.id` | `string` or `null` | Place ID. |
| `platform_specific.tiktok.location.name` | `string` or `null` | Place name. |
| `platform_specific.tiktok.location.address` | `string` or `null` | Address line. |
| `platform_specific.tiktok.location.city` | `string` or `null` | City. |
| `platform_specific.tiktok.location.category` | `string` or `null` | Top-level place category. |
| `platform_specific.tiktok.music` | `object` or `null` | The post's sound. |
| `platform_specific.tiktok.music.id` | `string` or `null` | Sound ID (equals the sound's id). |
| `platform_specific.tiktok.music.title` | `string` or `null` | Sound title. |
| `platform_specific.tiktok.music.author_name` | `string` or `null` | Who TikTok credits for the sound. |
| `platform_specific.tiktok.music.is_original` | `boolean` or `null` | An original sound a creator uploaded (false: a catalogue track). |
| `platform_specific.tiktok.music.duration_ms` | `integer` or `null` | Sound length in milliseconds. |
| `platform_specific.tiktok.music.cover_url` | `string` (uri) or `null` | Sound cover image URL. |
| `platform_specific.tiktok.music.play_url` | `string` (uri) or `null` | Audio file URL, signed and expiring. |
| `platform_specific.tiktok.author_follower_count` | `integer` or `null` | The author's exact follower count; null when the source does not state it. |
| `platform_specific.tiktok.board` | `object` or `null` | The post on Creative Center's top videos board (tiktok.top_posts); null off a board. |
| `platform_specific.tiktok.board.rank` | `integer` or `null` | Position on the requested board (1 = top). |
| `platform_specific.tiktok.board.period_end_at` | `string` (date-time) or `null` | End of the board's window (Creative Center's latest published day). |
| `platform_specific.tiktok.board.period_view_count` | `integer` or `null` | Views in the board's window, paid and organic. |
| `platform_specific.tiktok.board.period_organic_view_count` | `integer` or `null` | Organic (unpaid) views in the board's window. |
| `platform_specific.tiktok.board.organic_view_count` | `integer` or `null` | Organic views over the post's life. |
| `platform_specific.tiktok.board.period_engagement_rate` | `number` or `null` | Interactions per view in the board's window, as a fraction. |
| `platform_specific.tiktok.board.engagement_rate` | `number` or `null` | Interactions per view over the post's life, as a fraction. |
| `platform_specific.tiktok.board.period_six_second_view_rate` | `number` or `null` | Share of the window's views that lasted six seconds or more. |
| `platform_specific.tiktok.board.six_second_view_rate` | `number` or `null` | Share of all the post's views that lasted six seconds or more. |
| `platform_specific.youtube` | `object` or `null` | A YouTube video's own fields. |
| `platform_specific.youtube.category` | `string` or `null` | YouTube category (Music, Gaming, …), in English. |
| `platform_specific.youtube.keywords` | `string[]` | The uploader's tags; \[\] when none. |
| `platform_specific.youtube.chapters` | `object[]` | Chapters in playback order; \[\] when none. |
| `platform_specific.youtube.chapters[].title` | `string` or `null` | Chapter title. |
| `platform_specific.youtube.chapters[].start_ms` | `integer` or `null` | Start, in ms from the beginning. |
| `platform_specific.youtube.description_links` | `string[]` | Links in the description, in order, deduplicated; \[\] when none. |
| `platform_specific.youtube.is_unlisted` | `boolean` or `null` | Unlisted: watchable by link, not listed on the channel or in search. |
| `platform_specific.youtube.is_age_restricted` | `boolean` or `null` | Viewers must sign in to confirm their age; null when the answer does not tell. |
| `platform_specific.youtube.is_paywalled` | `boolean` or `null` | Must be bought or rented (movies, paid content). |
| `platform_specific.youtube.is_live_now` | `boolean` or `null` | A live stream on air now. |
| `platform_specific.youtube.live_started_at` | `string` (date-time) or `null` | When a live stream or premiere went on air; null if never live. |
| `platform_specific.youtube.live_ended_at` | `string` (date-time) or `null` | When a live stream or premiere ended; null while live or if never live. |
| `platform_specific.youtube.scheduled_start_at` | `string` (date-time) or `null` | When a scheduled stream or premiere is due to start; null otherwise. |
| `platform_specific.youtube.author_subscriber_count` | `integer` or `null` | The channel's subscriber count, rounded by YouTube (in approximate_fields); null when hidden. |
| `platform_specific.rumble` | `object` or `null` | A Rumble video's own fields. |
| `platform_specific.rumble.embed_id` | `string` or `null` | The video's embed player ID (rumble.com/embed/\<embed_id>/): its own namespace, not id. |
| `platform_specific.rumble.embed_url` | `string` (uri) or `null` | The embeddable player URL. |
| `platform_specific.rumble.numeric_id` | `string` or `null` | Rumble's numeric video ID, which its own services use. |
| `platform_specific.rumble.dislike_count` | `integer` or `null` | Thumbs-down votes. Exact in Rumble's JSON (shorts, grid lists); a video's page and the older HTML cards cut it to three significant digits from 1,000 (in approximate_fields). |
| `platform_specific.rumble.category` | `string` or `null` | Rumble's primary category (News, Podcasts, …). |
| `platform_specific.rumble.secondary_category` | `string` or `null` | Rumble's secondary category; null when none. |
| `platform_specific.rumble.keywords` | `string[]` | The uploader's tags; \[\] when none. |
| `platform_specific.rumble.caption_tracks` | `object[]` | Caption tracks (WebVTT); \[\] when none. |
| `platform_specific.rumble.caption_tracks[].language` | `string` or `null` | Language code (en, es, …). |
| `platform_specific.rumble.caption_tracks[].label` | `string` or `null` | Rumble's label ("English (auto)"). |
| `platform_specific.rumble.caption_tracks[].url` | `string` (uri) or `null` | WebVTT file URL. |
| `platform_specific.rumble.caption_tracks[].is_auto_generated` | `boolean` or `null` | Generated by Rumble's speech recognition. |
| `platform_specific.rumble.files` | `object[]` | Every file and stream Rumble's player offers, largest video first; \[\] when none. |
| `platform_specific.rumble.files[].kind` | `string` or `null` | video (picture and sound), audio (sound only) or preview (the seek bar's low-resolution video, no sound). New values may be added.<br>One of `video`, `audio`, `preview` |
| `platform_specific.rumble.files[].format` | `string` or `null` | mp4 or webm file, hls playlist (all qualities), tar (one HLS quality packed in one file; url is its playlist) or aac audio. New values may be added.<br>One of `mp4`, `webm`, `hls`, `tar`, `aac` |
| `platform_specific.rumble.files[].url` | `string` (uri) or `null` | File or playlist URL. |
| `platform_specific.rumble.files[].width` | `integer` or `null` | Width in pixels; null for audio and playlists. |
| `platform_specific.rumble.files[].height` | `integer` or `null` | Height in pixels; null for audio and playlists. |
| `platform_specific.rumble.files[].bitrate_kbps` | `integer` or `null` | Bitrate in kbit/s. |
| `platform_specific.rumble.files[].size_bytes` | `integer` or `null` | File size in bytes; null when Rumble does not state it. |
| `platform_specific.rumble.is_live_now` | `boolean` or `null` | A live stream on air now. |
| `platform_specific.rumble.live_started_at` | `string` (date-time) or `null` | When a live stream went on air; null if never live. |
| `platform_specific.rumble.scheduled_start_at` | `string` (date-time) or `null` | When a scheduled live stream is due to start; null otherwise. |
| `platform_specific.rumble.concurrent_viewer_count` | `integer` or `null` | Viewers watching a live stream now; null when not live. |
| `platform_specific.rumble.is_age_restricted` | `boolean` or `null` | Viewers must confirm their age to watch; null when the source does not show it. |
| `platform_specific.rumble.author_follower_count` | `integer` or `null` | The channel's or user's follower count. Exact in Rumble's JSON (shorts, lists); a video's page cuts it to three significant digits (in approximate_fields). |
| `platform_specific.instagram` | `object` or `null` | An Instagram post's own fields. |
| `platform_specific.instagram.is_ai_generated` | `boolean` or `null` | Instagram shows its AI label (made or edited with AI); false when it shows none. |
| `platform_specific.instagram.location` | `object` or `null` | The tagged place; null when none or not shown by the endpoint's source. |
| `platform_specific.instagram.location.id` | `string` | Instagram location ID (equals the place's id: the number in instagram.com/explore/locations/\<id>/). |
| `platform_specific.instagram.location.name` | `string` or `null` | Place name as Instagram shows it. |
| `platform_specific.instagram.location.url` | `string` (uri) | The place's page on Instagram. |
| `platform_specific.instagram.location.latitude` | `number` or `null` | WGS 84 latitude in degrees (set together with longitude). |
| `platform_specific.instagram.location.longitude` | `number` or `null` | WGS 84 longitude in degrees (set together with latitude). |
| `platform_specific.instagram.link` | `object` or `null` | The link a story's link sticker (or swipe-up link) opens; null when none, and on every post that is not a story. |
| `platform_specific.instagram.link.url` | `string` (uri) or `null` | The linked page, as the author shared it (Instagram's l.instagram.com redirect removed). |
| `platform_specific.facebook` | `object` or `null` | A Facebook post's own fields. |
| `platform_specific.facebook.feedback_id` | `string` or `null` | Facebook's feedback ID of the post: the thread its comments and reactions hang on. |
| `platform_specific.facebook.video_id` | `string` or `null` | The video's ID (facebook.com/reel/\<video_id>) on a video or reel post; null on other posts. |
| `platform_specific.facebook.reactions` | `object[]` | Reactions by type, most first, as Facebook lists them under the post; \[\] when none. |
| `platform_specific.facebook.reactions[].type` | `string` | Reaction type. New values may be added.<br>One of `like`, `love`, `care`, `haha`, `wow`, `sad`, `angry` |
| `platform_specific.facebook.reactions[].count` | `integer` or `null` | How many people reacted with it. |
| `platform_specific.facebook.shared_post` | `object` or `null` | The post this one reshares; null when it is not a reshare. |
| `platform_specific.facebook.shared_post.id` | `string` or `null` | Its post ID. |
| `platform_specific.facebook.shared_post.url` | `string` (uri) or `null` | Its URL. |
| `platform_specific.facebook.shared_post.author` | `object` | Its author. |
| `platform_specific.facebook.shared_post.author.id` | `string` or `null` | Platform-native account ID; null when only the handle is known. |
| `platform_specific.facebook.shared_post.author.username` | `string` or `null` | Handle without the @; null when the account has none. |
| `platform_specific.facebook.shared_post.author.display_name` | `string` or `null` | Display name shown on the profile. |
| `platform_specific.facebook.shared_post.author.url` | `string` (uri) or `null` | Canonical profile URL. |
| `platform_specific.facebook.shared_post.author.avatar_url` | `string` (uri) or `null` | Profile picture URL. Platform CDN URLs can expire within hours. |
| `platform_specific.facebook.shared_post.author.is_verified` | `boolean` or `null` | Platform verification badge; null where the platform has no badge. |
| `platform_specific.facebook.link` | `object` or `null` | The link card a post shares (an article, a site, an event); null when none. |
| `platform_specific.facebook.link.url` | `string` (uri) or `null` | The linked page, as the author shared it (Facebook's l.facebook.com redirect removed). |
| `platform_specific.facebook.link.title` | `string` or `null` | The card's headline. |
| `platform_specific.facebook.link.image_url` | `string` (uri) or `null` | The card's image. |
| `platform_specific.facebook.music` | `object` or `null` | The sound a reel credits; null when the post credits none, or the endpoint can't see it. |
| `platform_specific.facebook.music.id` | `string` or `null` | Facebook's ID of the sound. |
| `platform_specific.facebook.music.title` | `string` or `null` | The sound's title as the reel shows it ("National Geographic · Original audio" for a creator's own). |
| `platform_specific.facebook.music.is_original` | `boolean` or `null` | The creator's own audio (false: a track from Facebook's library). |
| `platform_specific.facebook.group` | `object` or `null` | The group the post was published in; null when it is not a group's post. |
| `platform_specific.facebook.group.id` | `string` | The group's numeric ID. |
| `platform_specific.facebook.group.name` | `string` or `null` | The group's name, as its page shows it. |
| `platform_specific.facebook.group.url` | `string` (uri) or `null` | The group's URL. |
| `platform_specific.facebook.listing` | `object` or `null` | The item for sale a group's post lists; null when it lists none, or none any more (a listing taken down: see is_attachment_unavailable). |
| `platform_specific.facebook.listing.id` | `string` or `null` | The listing's ID. |
| `platform_specific.facebook.listing.title` | `string` or `null` | The item's name. |
| `platform_specific.facebook.listing.price_text` | `string` or `null` | Its price as Facebook shows it (BDT14,000, FREE). |
| `platform_specific.facebook.listing.location` | `string` or `null` | Where it is, as Facebook shows it. |
| `platform_specific.facebook.listing.is_sold` | `boolean` or `null` | Marked sold. |
| `platform_specific.facebook.listing.url` | `string` (uri) or `null` | The item's Marketplace page (facebook.com/marketplace/item/\<id>), which facebook.listing reads; null for an item listed only in the group. |
| `platform_specific.facebook.is_attachment_unavailable` | `boolean` or `null` | What the post attached is gone: Facebook shows it as unavailable or empty, so the post can have no text and no media. Null when the page does not say. |
| `platform_specific.threads` | `object` or `null` | A Threads post's own fields. |
| `platform_specific.threads.numeric_id` | `string` or `null` | Threads' numeric post ID, which the shortcode in id encodes. |
| `platform_specific.threads.is_reply` | `boolean` or `null` | The post is a reply to another post. |
| `platform_specific.threads.reply_to_author` | `object` or `null` | The author of the post this one replies to; null when it is not a reply. |
| `platform_specific.threads.reply_to_author.id` | `string` or `null` | Platform-native account ID; null when only the handle is known. |
| `platform_specific.threads.reply_to_author.username` | `string` or `null` | Handle without the @; null when the account has none. |
| `platform_specific.threads.reply_to_author.display_name` | `string` or `null` | Display name shown on the profile. |
| `platform_specific.threads.reply_to_author.url` | `string` (uri) or `null` | Canonical profile URL. |
| `platform_specific.threads.reply_to_author.avatar_url` | `string` (uri) or `null` | Profile picture URL. Platform CDN URLs can expire within hours. |
| `platform_specific.threads.reply_to_author.is_verified` | `boolean` or `null` | Platform verification badge; null where the platform has no badge. |
| `platform_specific.threads.quoted_post` | `object` or `null` | The post this one quotes; null when it quotes none, or when the quoted post is no longer available (deleted, or not shown logged out). |
| `platform_specific.threads.quoted_post.id` | `string` or `null` | Its shortcode. |
| `platform_specific.threads.quoted_post.url` | `string` (uri) or `null` | Its URL. |
| `platform_specific.threads.quoted_post.author` | `object` | Its author. |
| `platform_specific.threads.quoted_post.author.id` | `string` or `null` | Platform-native account ID; null when only the handle is known. |
| `platform_specific.threads.quoted_post.author.username` | `string` or `null` | Handle without the @; null when the account has none. |
| `platform_specific.threads.quoted_post.author.display_name` | `string` or `null` | Display name shown on the profile. |
| `platform_specific.threads.quoted_post.author.url` | `string` (uri) or `null` | Canonical profile URL. |
| `platform_specific.threads.quoted_post.author.avatar_url` | `string` (uri) or `null` | Profile picture URL. Platform CDN URLs can expire within hours. |
| `platform_specific.threads.quoted_post.author.is_verified` | `boolean` or `null` | Platform verification badge; null where the platform has no badge. |
| `platform_specific.threads.topic_tag` | `string` or `null` | The topic or community tag shown on the post; null when none. |
| `platform_specific.threads.link` | `object` or `null` | The link preview card the post shows; null when none. |
| `platform_specific.threads.link.url` | `string` (uri) or `null` | The linked page (Threads' l.threads.com redirect removed). |
| `platform_specific.threads.link.title` | `string` or `null` | The card's headline. |
| `platform_specific.threads.link.image_url` | `string` (uri) or `null` | The card's image. |
| `platform_specific.threads.reply_control` | `string` or `null` | Who may reply, as Threads names it (everyone, accounts_you_follow, mentioned_only, …). |
| `platform_specific.threads.is_spoiler` | `boolean` or `null` | The author marked the media as a spoiler. |
| `platform_specific.threads.is_edited` | `boolean` or `null` | The text was edited after posting. |
| `platform_specific.reddit` | `object` or `null` | A Reddit post's own fields. |
| `platform_specific.reddit.subreddit` | `object` or `null` | The subreddit the post was submitted to; for a post on a user's profile, the profile's own subreddit (u_\<username>). |
| `platform_specific.reddit.subreddit.id` | `string` or `null` | Reddit's subreddit ID (t5_…). |
| `platform_specific.reddit.subreddit.name` | `string` or `null` | The subreddit's name without r/. |
| `platform_specific.reddit.subreddit.url` | `string` (uri) or `null` | The subreddit's URL. |
| `platform_specific.reddit.score` | `integer` or `null` | Net score as Reddit shows it: upvotes minus downvotes, fuzzed by Reddit. Reddit floors a post's shown score at 0, so this is null when it shows 0 for a post most votes are against (upvote_ratio below 0.5): its true score is negative and unknown. |
| `platform_specific.reddit.upvote_ratio` | `number` or `null` | Share of votes that are upvotes, from 0 to 1. |
| `platform_specific.reddit.award_count` | `integer` or `null` | Awards the post received. |
| `platform_specific.reddit.flair` | `string` or `null` | The post's flair text; null when it has none. |
| `platform_specific.reddit.domain` | `string` or `null` | The linked site's domain (youtu.be, i.redd.it, v.redd.it), or self.\<subreddit> for a text post. |
| `platform_specific.reddit.link_url` | `string` (uri) or `null` | The page a link post points to; null for other posts. |
| `platform_specific.reddit.is_spoiler` | `boolean` or `null` | Marked as a spoiler. |
| `platform_specific.reddit.is_locked` | `boolean` or `null` | Locked by the moderators: no new comments. |
| `platform_specific.reddit.is_archived` | `boolean` or `null` | Archived: too old for new votes or comments. |
| `platform_specific.reddit.crosspost_of` | `string` (uri) or `null` | The post this one is a crosspost of; null when it is not a crosspost. |
| `platform_specific.truthsocial` | `object` or `null` | A Truth Social post's own fields. |
| `platform_specific.truthsocial.reblog_of` | `object` or `null` | The post this one ReTruths (reposts); null when it is not a ReTruth. A ReTruth carries the reposted post's text and media, and its own counts. |
| `platform_specific.truthsocial.reblog_of.id` | `string` or `null` | Its post ID. |
| `platform_specific.truthsocial.reblog_of.url` | `string` (uri) or `null` | Its URL; null when its author is unknown. |
| `platform_specific.truthsocial.reblog_of.published_at` | `string` (date-time) or `null` | When it was posted, RFC 3339 UTC. |
| `platform_specific.truthsocial.reblog_of.author` | `object` | Its author. |
| `platform_specific.truthsocial.reblog_of.author.id` | `string` or `null` | Platform-native account ID; null when only the handle is known. |
| `platform_specific.truthsocial.reblog_of.author.username` | `string` or `null` | Handle without the @; null when the account has none. |
| `platform_specific.truthsocial.reblog_of.author.display_name` | `string` or `null` | Display name shown on the profile. |
| `platform_specific.truthsocial.reblog_of.author.url` | `string` (uri) or `null` | Canonical profile URL. |
| `platform_specific.truthsocial.reblog_of.author.avatar_url` | `string` (uri) or `null` | Profile picture URL. Platform CDN URLs can expire within hours. |
| `platform_specific.truthsocial.reblog_of.author.is_verified` | `boolean` or `null` | Platform verification badge; null where the platform has no badge. |
| `platform_specific.truthsocial.reblog_of.metrics` | `object` | Its own counts: likes, replies and ReTruths. Null counts when only its id is known. |
| `platform_specific.truthsocial.reblog_of.metrics.view_count` | `integer` or `null` | Views or plays. |
| `platform_specific.truthsocial.reblog_of.metrics.like_count` | `integer` or `null` | Likes, hearts, total reactions or upvotes; never negative. Null when hidden by the owner. |
| `platform_specific.truthsocial.reblog_of.metrics.comment_count` | `integer` or `null` | Comments and replies. |
| `platform_specific.truthsocial.reblog_of.metrics.share_count` | `integer` or `null` | Shares or sends (not reposts). |
| `platform_specific.truthsocial.reblog_of.metrics.repost_count` | `integer` or `null` | Reposts, retweets or reshares. |
| `platform_specific.truthsocial.reblog_of.metrics.quote_count` | `integer` or `null` | Quote posts. |
| `platform_specific.truthsocial.reblog_of.metrics.save_count` | `integer` or `null` | Saves, bookmarks or favorites. |
| `platform_specific.truthsocial.reblog_of.downvote_count` | `integer` or `null` | Its downvotes; null unless it was made in a group, the only posts that can be downvoted. |
| `platform_specific.truthsocial.quoted_post` | `object` or `null` | The post this one quotes; null when it quotes none. Only its id is known when Truth Social no longer shows it. |
| `platform_specific.truthsocial.quoted_post.id` | `string` or `null` | Its post ID. |
| `platform_specific.truthsocial.quoted_post.url` | `string` (uri) or `null` | Its URL; null when its author is unknown. |
| `platform_specific.truthsocial.quoted_post.published_at` | `string` (date-time) or `null` | When it was posted, RFC 3339 UTC. |
| `platform_specific.truthsocial.quoted_post.author` | `object` | Its author. |
| `platform_specific.truthsocial.quoted_post.author.id` | `string` or `null` | Platform-native account ID; null when only the handle is known. |
| `platform_specific.truthsocial.quoted_post.author.username` | `string` or `null` | Handle without the @; null when the account has none. |
| `platform_specific.truthsocial.quoted_post.author.display_name` | `string` or `null` | Display name shown on the profile. |
| `platform_specific.truthsocial.quoted_post.author.url` | `string` (uri) or `null` | Canonical profile URL. |
| `platform_specific.truthsocial.quoted_post.author.avatar_url` | `string` (uri) or `null` | Profile picture URL. Platform CDN URLs can expire within hours. |
| `platform_specific.truthsocial.quoted_post.author.is_verified` | `boolean` or `null` | Platform verification badge; null where the platform has no badge. |
| `platform_specific.truthsocial.quoted_post.metrics` | `object` | Its own counts: likes, replies and ReTruths. Null counts when only its id is known. |
| `platform_specific.truthsocial.quoted_post.metrics.view_count` | `integer` or `null` | Views or plays. |
| `platform_specific.truthsocial.quoted_post.metrics.like_count` | `integer` or `null` | Likes, hearts, total reactions or upvotes; never negative. Null when hidden by the owner. |
| `platform_specific.truthsocial.quoted_post.metrics.comment_count` | `integer` or `null` | Comments and replies. |
| `platform_specific.truthsocial.quoted_post.metrics.share_count` | `integer` or `null` | Shares or sends (not reposts). |
| `platform_specific.truthsocial.quoted_post.metrics.repost_count` | `integer` or `null` | Reposts, retweets or reshares. |
| `platform_specific.truthsocial.quoted_post.metrics.quote_count` | `integer` or `null` | Quote posts. |
| `platform_specific.truthsocial.quoted_post.metrics.save_count` | `integer` or `null` | Saves, bookmarks or favorites. |
| `platform_specific.truthsocial.quoted_post.downvote_count` | `integer` or `null` | Its downvotes; null unless it was made in a group, the only posts that can be downvoted. |
| `platform_specific.truthsocial.reply_to` | `object` or `null` | The post this one replies to; null when it is not a reply. Only its id and its author's id are known when Truth Social does not show it. |
| `platform_specific.truthsocial.reply_to.id` | `string` or `null` | Its post ID. |
| `platform_specific.truthsocial.reply_to.url` | `string` (uri) or `null` | Its URL; null when its author is unknown. |
| `platform_specific.truthsocial.reply_to.published_at` | `string` (date-time) or `null` | When it was posted, RFC 3339 UTC. |
| `platform_specific.truthsocial.reply_to.author` | `object` | Its author. |
| `platform_specific.truthsocial.reply_to.author.id` | `string` or `null` | Platform-native account ID; null when only the handle is known. |
| `platform_specific.truthsocial.reply_to.author.username` | `string` or `null` | Handle without the @; null when the account has none. |
| `platform_specific.truthsocial.reply_to.author.display_name` | `string` or `null` | Display name shown on the profile. |
| `platform_specific.truthsocial.reply_to.author.url` | `string` (uri) or `null` | Canonical profile URL. |
| `platform_specific.truthsocial.reply_to.author.avatar_url` | `string` (uri) or `null` | Profile picture URL. Platform CDN URLs can expire within hours. |
| `platform_specific.truthsocial.reply_to.author.is_verified` | `boolean` or `null` | Platform verification badge; null where the platform has no badge. |
| `platform_specific.truthsocial.reply_to.metrics` | `object` | Its own counts: likes, replies and ReTruths. Null counts when only its id is known. |
| `platform_specific.truthsocial.reply_to.metrics.view_count` | `integer` or `null` | Views or plays. |
| `platform_specific.truthsocial.reply_to.metrics.like_count` | `integer` or `null` | Likes, hearts, total reactions or upvotes; never negative. Null when hidden by the owner. |
| `platform_specific.truthsocial.reply_to.metrics.comment_count` | `integer` or `null` | Comments and replies. |
| `platform_specific.truthsocial.reply_to.metrics.share_count` | `integer` or `null` | Shares or sends (not reposts). |
| `platform_specific.truthsocial.reply_to.metrics.repost_count` | `integer` or `null` | Reposts, retweets or reshares. |
| `platform_specific.truthsocial.reply_to.metrics.quote_count` | `integer` or `null` | Quote posts. |
| `platform_specific.truthsocial.reply_to.metrics.save_count` | `integer` or `null` | Saves, bookmarks or favorites. |
| `platform_specific.truthsocial.reply_to.downvote_count` | `integer` or `null` | Its downvotes; null unless it was made in a group, the only posts that can be downvoted. |
| `platform_specific.truthsocial.group` | `object` or `null` | The Truth Social group the post was made in; null when it was posted to the author's profile. |
| `platform_specific.truthsocial.group.id` | `string` or `null` | The group's ID. |
| `platform_specific.truthsocial.group.slug` | `string` or `null` | The group's name in its URL (truthsocial.com/group/\<slug>). |
| `platform_specific.truthsocial.group.display_name` | `string` or `null` | The group's name. |
| `platform_specific.truthsocial.group.url` | `string` (uri) or `null` | The group's page. |
| `platform_specific.truthsocial.group.member_count` | `integer` or `null` | Members of the group. |
| `platform_specific.truthsocial.link` | `object` or `null` | The link preview card the post shows; null when none. |
| `platform_specific.truthsocial.link.url` | `string` (uri) or `null` | The linked page. |
| `platform_specific.truthsocial.link.title` | `string` or `null` | The card's headline. |
| `platform_specific.truthsocial.link.description` | `string` or `null` | The card's summary of the page. |
| `platform_specific.truthsocial.link.image_url` | `string` (uri) or `null` | The card's image. |
| `platform_specific.truthsocial.link.provider` | `string` or `null` | The site the card names (www.foxnews.com). |
| `platform_specific.truthsocial.edited_at` | `string` (date-time) or `null` | When the text was last edited, RFC 3339 UTC; null when it never was. |
| `platform_specific.truthsocial.downvote_count` | `integer` or `null` | Downvotes. Only posts made in a group can be downvoted; null on any other post. A ReTruth's are its own: the reposted post's are in reblog_of. |
| `platform_specific.truthsocial.poll` | `object` or `null` | The poll the post carries (the reposted post's, on a ReTruth); null when it has none. |
| `platform_specific.truthsocial.poll.id` | `string` or `null` | The poll's ID. |
| `platform_specific.truthsocial.poll.expires_at` | `string` (date-time) or `null` | When voting closes (or closed), RFC 3339 UTC; null when it never does. |
| `platform_specific.truthsocial.poll.is_expired` | `boolean` or `null` | Whether voting has closed. |
| `platform_specific.truthsocial.poll.is_multiple_choice` | `boolean` or `null` | Whether a voter can pick several options. |
| `platform_specific.truthsocial.poll.vote_count` | `integer` or `null` | Votes cast, over all options. |
| `platform_specific.truthsocial.poll.voter_count` | `integer` or `null` | People who voted. |
| `platform_specific.truthsocial.poll.options` | `object[]` | The options, in the poll's order. |
| `platform_specific.truthsocial.poll.options[].title` | `string` or `null` | The option's text. |
| `platform_specific.truthsocial.poll.options[].vote_count` | `integer` or `null` | Votes for it. |
| `platform_specific.kick` | `object` or `null` | A Kick post's own fields. |
| `platform_specific.kick.started_at` | `string` (date-time) or `null` | The moment of the broadcast the clip starts at, RFC 3339 UTC; published_at is when it was made. |
| `platform_specific.kick.livestream_id` | `string` or `null` | Kick's ID of the broadcast the clip was cut from. |
| `platform_specific.kick.category` | `object` or `null` | What the channel was streaming when the clip was made. |
| `platform_specific.kick.category.id` | `string` or `null` | Kick's category ID. |
| `platform_specific.kick.category.name` | `string` or `null` | Its name (Just Chatting). |
| `platform_specific.kick.category.slug` | `string` or `null` | Its name in links (kick.com/category/just-chatting). |
| `platform_specific.kick.category.parent_slug` | `string` or `null` | The parent category it is filed under (irl, games). |
| `platform_specific.kick.category.banner_url` | `string` (uri) or `null` | The category's banner image. |
| `platform_specific.kick.vod` | `object` or `null` | The saved broadcast the clip comes from; null when Kick keeps none (the broadcast's video was deleted or never saved) or the answer came from a source that can't link to it. |
| `platform_specific.kick.vod.id` | `string` or `null` | The video's ID, as in its link. |
| `platform_specific.kick.vod.url` | `string` (uri) or `null` | The video's page. |
| `platform_specific.kick.vod.title` | `string` or `null` | The video's title. |
| `platform_specific.kick.vod.offset_ms` | `integer` or `null` | Where in the video the clip starts, in milliseconds. |
| `platform_specific.kick.clipped_by` | `object` or `null` | The account that made the clip, which may be a bot taking chat commands; author is the channel it was clipped from. Its id is null: see clipped_by_user_id. |
| `platform_specific.kick.clipped_by.id` | `string` or `null` | Platform-native account ID; null when only the handle is known. |
| `platform_specific.kick.clipped_by.username` | `string` or `null` | Handle without the @; null when the account has none. |
| `platform_specific.kick.clipped_by.display_name` | `string` or `null` | Display name shown on the profile. |
| `platform_specific.kick.clipped_by.url` | `string` (uri) or `null` | Canonical profile URL. |
| `platform_specific.kick.clipped_by.avatar_url` | `string` (uri) or `null` | Profile picture URL. Platform CDN URLs can expire within hours. |
| `platform_specific.kick.clipped_by.is_verified` | `boolean` or `null` | Platform verification badge; null where the platform has no badge. |
| `platform_specific.kick.clipped_by_user_id` | `string` or `null` | Kick's user number of clipped_by, which is not its channel's ID. |
| `platform_specific.x` | `object` or `null` | An X (formerly Twitter) post's own fields. |
| `platform_specific.x.author_metrics` | `object` or `null` | The author's counts at fetch time (followers, following, posts), which X answers with the post; null when the source does not show them. x.profile has the rest of the account. |
| `platform_specific.x.author_metrics.follower_count` | `integer` or `null` | Followers or subscribers. |
| `platform_specific.x.author_metrics.following_count` | `integer` or `null` | Accounts this profile follows. |
| `platform_specific.x.author_metrics.post_count` | `integer` or `null` | Posts or videos as the platform counts them on the profile (for a private account, posts the caller cannot see). |
| `platform_specific.x.author_metrics.total_like_count` | `integer` or `null` | Likes received across all of the profile's posts (not likes given). |
| `platform_specific.x.author_metrics.total_view_count` | `integer` or `null` | Lifetime views across all of the profile's posts. |
| `platform_specific.x.is_author_blue_verified` | `boolean` or `null` | True when the author has the blue check of an X Premium subscription; null when unknown. author.is_verified is true for any check. |
| `platform_specific.x.author_verified_type` | `string` or `null` | The kind of verified organization X says the author is (business: the gold check, government: the grey one); null when it is neither. New values may be added; treat unknown values as other.<br>One of `business`, `government` |
| `platform_specific.x.conversation_id` | `string` or `null` | ID of the post that started the conversation (this post's own ID when it started one); null when the source does not show it. |
| `platform_specific.x.reply_to_post_id` | `string` or `null` | ID of the post this one replies to; null when it is not a reply. |
| `platform_specific.x.reply_to_author` | `object` or `null` | The author of the post this one replies to (ID and username, when X says); null when it is not a reply. |
| `platform_specific.x.reply_to_author.id` | `string` or `null` | Platform-native account ID; null when only the handle is known. |
| `platform_specific.x.reply_to_author.username` | `string` or `null` | Handle without the @; null when the account has none. |
| `platform_specific.x.reply_to_author.display_name` | `string` or `null` | Display name shown on the profile. |
| `platform_specific.x.reply_to_author.url` | `string` (uri) or `null` | Canonical profile URL. |
| `platform_specific.x.reply_to_author.avatar_url` | `string` (uri) or `null` | Profile picture URL. Platform CDN URLs can expire within hours. |
| `platform_specific.x.reply_to_author.is_verified` | `boolean` or `null` | Platform verification badge; null where the platform has no badge. |
| `platform_specific.x.quoted_post_id` | `string` or `null` | ID of the post this one quotes; null when it quotes none. Stays set when the quoted post itself is gone. |
| `platform_specific.x.quoted_post` | `object` or `null` | The post this one quotes, as X embeds it; null when it quotes none, or when the quoted post is no longer shown. |
| `platform_specific.x.quoted_post.id` | `string` or `null` | Its ID, as x.post takes it. |
| `platform_specific.x.quoted_post.url` | `string` (uri) or `null` | Its URL. |
| `platform_specific.x.quoted_post.text` | `string` or `null` | Its text, with the links written out. |
| `platform_specific.x.quoted_post.published_at` | `string` (date-time) or `null` | When it was posted, RFC 3339 UTC. |
| `platform_specific.x.quoted_post.author` | `object` | Its author. |
| `platform_specific.x.quoted_post.author.id` | `string` or `null` | Platform-native account ID; null when only the handle is known. |
| `platform_specific.x.quoted_post.author.username` | `string` or `null` | Handle without the @; null when the account has none. |
| `platform_specific.x.quoted_post.author.display_name` | `string` or `null` | Display name shown on the profile. |
| `platform_specific.x.quoted_post.author.url` | `string` (uri) or `null` | Canonical profile URL. |
| `platform_specific.x.quoted_post.author.avatar_url` | `string` (uri) or `null` | Profile picture URL. Platform CDN URLs can expire within hours. |
| `platform_specific.x.quoted_post.author.is_verified` | `boolean` or `null` | Platform verification badge; null where the platform has no badge. |
| `platform_specific.x.quoted_post.media` | `object[]` | Its attachments; \[\] for a text post. |
| `platform_specific.x.quoted_post.media[].type` | `string` | Kind of file. New values may be added; treat unknown values as other.<br>One of `image`, `video`, `audio`, `gif` |
| `platform_specific.x.quoted_post.media[].url` | `string` (uri) or `null` | Direct file URL; null when the platform withholds it, or when the link would only work from SocialTap's network or with a login. Often signed and expiring: see expires_at. |
| `platform_specific.x.quoted_post.media[].expires_at` | `string` (date-time) or `null` | When url stops working, RFC 3339 UTC, read from the platform's signed URL; null when unknown or when it does not expire. |
| `platform_specific.x.quoted_post.media[].thumbnail_url` | `string` (uri) or `null` | Poster or preview image URL. |
| `platform_specific.x.quoted_post.media[].width` | `integer` or `null` | Width in pixels. |
| `platform_specific.x.quoted_post.media[].height` | `integer` or `null` | Height in pixels. |
| `platform_specific.x.quoted_post.media[].duration_ms` | `integer` or `null` | Duration in milliseconds (video and audio only). |
| `platform_specific.x.quoted_post.media[].alt_text` | `string` or `null` | Accessibility text provided by the author or platform. |
| `platform_specific.x.quoted_post.metrics` | `object` | Its counts at fetch time. |
| `platform_specific.x.quoted_post.metrics.view_count` | `integer` or `null` | Views or plays. |
| `platform_specific.x.quoted_post.metrics.like_count` | `integer` or `null` | Likes, hearts, total reactions or upvotes; never negative. Null when hidden by the owner. |
| `platform_specific.x.quoted_post.metrics.comment_count` | `integer` or `null` | Comments and replies. |
| `platform_specific.x.quoted_post.metrics.share_count` | `integer` or `null` | Shares or sends (not reposts). |
| `platform_specific.x.quoted_post.metrics.repost_count` | `integer` or `null` | Reposts, retweets or reshares. |
| `platform_specific.x.quoted_post.metrics.quote_count` | `integer` or `null` | Quote posts. |
| `platform_specific.x.quoted_post.metrics.save_count` | `integer` or `null` | Saves, bookmarks or favorites. |
| `platform_specific.x.reposted_post_id` | `string` or `null` | ID of the post this repost shows; null when this is no repost. |
| `platform_specific.x.reposted_post` | `object` or `null` | The post this repost shows, with its own author and counts; null when this is no repost. text, media and metrics are that post's. |
| `platform_specific.x.reposted_post.id` | `string` or `null` | Its ID, as x.post takes it. |
| `platform_specific.x.reposted_post.url` | `string` (uri) or `null` | Its URL. |
| `platform_specific.x.reposted_post.text` | `string` or `null` | Its text, with the links written out. |
| `platform_specific.x.reposted_post.published_at` | `string` (date-time) or `null` | When it was posted, RFC 3339 UTC. |
| `platform_specific.x.reposted_post.author` | `object` | Its author. |
| `platform_specific.x.reposted_post.author.id` | `string` or `null` | Platform-native account ID; null when only the handle is known. |
| `platform_specific.x.reposted_post.author.username` | `string` or `null` | Handle without the @; null when the account has none. |
| `platform_specific.x.reposted_post.author.display_name` | `string` or `null` | Display name shown on the profile. |
| `platform_specific.x.reposted_post.author.url` | `string` (uri) or `null` | Canonical profile URL. |
| `platform_specific.x.reposted_post.author.avatar_url` | `string` (uri) or `null` | Profile picture URL. Platform CDN URLs can expire within hours. |
| `platform_specific.x.reposted_post.author.is_verified` | `boolean` or `null` | Platform verification badge; null where the platform has no badge. |
| `platform_specific.x.reposted_post.media` | `object[]` | Its attachments; \[\] for a text post. |
| `platform_specific.x.reposted_post.media[].type` | `string` | Kind of file. New values may be added; treat unknown values as other.<br>One of `image`, `video`, `audio`, `gif` |
| `platform_specific.x.reposted_post.media[].url` | `string` (uri) or `null` | Direct file URL; null when the platform withholds it, or when the link would only work from SocialTap's network or with a login. Often signed and expiring: see expires_at. |
| `platform_specific.x.reposted_post.media[].expires_at` | `string` (date-time) or `null` | When url stops working, RFC 3339 UTC, read from the platform's signed URL; null when unknown or when it does not expire. |
| `platform_specific.x.reposted_post.media[].thumbnail_url` | `string` (uri) or `null` | Poster or preview image URL. |
| `platform_specific.x.reposted_post.media[].width` | `integer` or `null` | Width in pixels. |
| `platform_specific.x.reposted_post.media[].height` | `integer` or `null` | Height in pixels. |
| `platform_specific.x.reposted_post.media[].duration_ms` | `integer` or `null` | Duration in milliseconds (video and audio only). |
| `platform_specific.x.reposted_post.media[].alt_text` | `string` or `null` | Accessibility text provided by the author or platform. |
| `platform_specific.x.reposted_post.metrics` | `object` | Its counts at fetch time. |
| `platform_specific.x.reposted_post.metrics.view_count` | `integer` or `null` | Views or plays. |
| `platform_specific.x.reposted_post.metrics.like_count` | `integer` or `null` | Likes, hearts, total reactions or upvotes; never negative. Null when hidden by the owner. |
| `platform_specific.x.reposted_post.metrics.comment_count` | `integer` or `null` | Comments and replies. |
| `platform_specific.x.reposted_post.metrics.share_count` | `integer` or `null` | Shares or sends (not reposts). |
| `platform_specific.x.reposted_post.metrics.repost_count` | `integer` or `null` | Reposts, retweets or reshares. |
| `platform_specific.x.reposted_post.metrics.quote_count` | `integer` or `null` | Quote posts. |
| `platform_specific.x.reposted_post.metrics.save_count` | `integer` or `null` | Saves, bookmarks or favorites. |
| `platform_specific.x.edit_post_ids` | `string[]` | IDs of every version of this post, oldest first, the last one current; one ID when it was never edited, \[\] when the source does not show them. |
| `platform_specific.x.is_edited` | `boolean` or `null` | True when the post has more than one version; null when the source does not show them. |
| `platform_specific.x.source` | `string` or `null` | The client the post was sent from, as X labels it (Twitter Web Client, Twitter for iPhone, …); null when X does not say, as on most recent posts. |
| `platform_specific.x.cashtags` | `string[]` | Cashtags in the text, without the $, case kept; \[\] if none. |
| `platform_specific.x.links` | `object[]` | The links in the text, written out from X's t.co short links, each once, titled as the post shows them; \[\] if none. |
| `platform_specific.x.links[].url` | `string` (uri) | Link target, absolute (https:// is added where the platform stores the link without a scheme). |
| `platform_specific.x.links[].title` | `string` or `null` | Link label shown by the platform. |
| `platform_specific.x.media_variants` | `object[]` | Every rendition X offers of the post's videos and GIFs (MP4s by bitrate, the HLS playlist); media\[\].url is the best MP4. \[\] when the post has none. |
| `platform_specific.x.media_variants[].media_index` | `integer` | Which item of media this is a rendition of, from 0. |
| `platform_specific.x.media_variants[].url` | `string` (uri) | The file or playlist. |
| `platform_specific.x.media_variants[].content_type` | `string` or `null` | Its type (video/mp4, application/x-mpegURL). |
| `platform_specific.x.media_variants[].bitrate` | `integer` or `null` | Bits per second; null for a playlist, which holds several. |
| `platform_specific.x.poll` | `object` or `null` | The poll in the post, with exact vote counts; null when it has none. |
| `platform_specific.x.poll.choices` | `object[]` | The choices, in the post's order. |
| `platform_specific.x.poll.choices[].label` | `string` or `null` | The choice's text. |
| `platform_specific.x.poll.choices[].vote_count` | `integer` or `null` | Exact votes for it; null when X does not show them. |
| `platform_specific.x.poll.total_votes` | `integer` or `null` | Votes across every choice; null when a choice's count is hidden. |
| `platform_specific.x.poll.ends_at` | `string` (date-time) or `null` | When voting ends or ended, RFC 3339 UTC. |
| `platform_specific.x.poll.duration_minutes` | `integer` or `null` | How long voting runs, in minutes. |
| `platform_specific.x.poll.is_final` | `boolean` or `null` | True when voting is over and the counts are final. |
| `platform_specific.x.card` | `object` or `null` | The preview card the post shows for a link or a broadcast; null when it has none, or when X answers the card without its content. |
| `platform_specific.x.card.type` | `string` or `null` | X's name for the card (summary, summary_large_image, player, broadcast, …). New values may be added. |
| `platform_specific.x.card.url` | `string` (uri) or `null` | Where the card leads, when X says. |
| `platform_specific.x.card.title` | `string` or `null` | Its headline. |
| `platform_specific.x.card.description` | `string` or `null` | Its description. |
| `platform_specific.x.card.domain` | `string` or `null` | The domain of the linked page. |
| `platform_specific.x.card.image_url` | `string` (uri) or `null` | Its largest image. |
| `platform_specific.x.article` | `object` or `null` | The X Article this post publishes (its title is in title, its body in text); null when it is an ordinary post. |
| `platform_specific.x.article.id` | `string` or `null` | The article's own ID (x.com/i/article/\<id>), not the post's. |
| `platform_specific.x.article.preview_text` | `string` or `null` | The short preview X shows of the body. |
| `platform_specific.x.article.cover_image_url` | `string` (uri) or `null` | Its cover image. |
| `platform_specific.x.article.modified_at` | `string` (date-time) or `null` | When it was last changed, RFC 3339 UTC; null when the source does not show it. |
| `platform_specific.x.community` | `object` or `null` | The community the post was posted to; null when none. |
| `platform_specific.x.community.id` | `string` or `null` | The community's ID, as x.com/i/communities/\<id> shows it. |
| `platform_specific.x.community.name` | `string` or `null` | Its name; null when the source does not show it. |
| `platform_specific.telegram` | `object` or `null` | A Telegram post's own fields. |
| `platform_specific.telegram.message_id` | `integer` or `null` | The message's number within its channel or group: the last part of its link. |
| `platform_specific.telegram.channel_id` | `string` or `null` | Telegram's numeric ID of the channel or group the message is in, which stays when its username changes. |
| `platform_specific.telegram.signature` | `string` or `null` | The name of the admin who signed the post, on a channel that signs its posts; null when unsigned. |
| `platform_specific.telegram.sender_name` | `string` or `null` | The name of the group member who sent the message, when they have no username: author is then the group. Null otherwise. |
| `platform_specific.telegram.is_edited` | `boolean` or `null` | Whether the post shows as edited. |
| `platform_specific.telegram.forwarded_from` | `object` or `null` | Where the post was forwarded from; null when it was not forwarded. |
| `platform_specific.telegram.forwarded_from.name` | `string` or `null` | The name of the channel or person it was forwarded from; null when Telegram leaves it blank. |
| `platform_specific.telegram.forwarded_from.url` | `string` (uri) or `null` | The original's link (or the account's, for a person); null when the source hides itself. |
| `platform_specific.telegram.forwarded_from.post_id` | `string` or `null` | The original post's id, when the link names one. |
| `platform_specific.telegram.forwarded_from.author` | `string` or `null` | The admin who signed the original; null when unsigned. |
| `platform_specific.telegram.reply_to` | `object` or `null` | The message this post replies to, as its preview bar shows it; null when it is not a reply. |
| `platform_specific.telegram.reply_to.url` | `string` (uri) or `null` | The replied-to message's link; null when the bar has none. |
| `platform_specific.telegram.reply_to.post_id` | `string` or `null` | The replied-to post's id, when the link names one. |
| `platform_specific.telegram.reply_to.author` | `string` or `null` | The name the bar shows; null when it shows none. |
| `platform_specific.telegram.reply_to.text` | `string` or `null` | The snippet the bar shows, often cut short. |
| `platform_specific.telegram.reactions` | `object[]` | The reactions the post shows, each emoji with its count; \[\] when it shows none. Their sum is metrics.like_count. |
| `platform_specific.telegram.reactions[].emoji` | `string` or `null` | The unicode emoji; null for a custom emoji or Telegram Stars. |
| `platform_specific.telegram.reactions[].custom_emoji_id` | `string` or `null` | The custom emoji's ID; null for a unicode one. |
| `platform_specific.telegram.reactions[].is_paid` | `boolean` or `null` | Whether it is a paid reaction (Telegram Stars). |
| `platform_specific.telegram.reactions[].count` | `integer` or `null` | How many; rounded by Telegram from the thousands up (see approximate_fields). |
| `platform_specific.telegram.link_preview` | `object` or `null` | The link preview card the post shows; null when none. |
| `platform_specific.telegram.link_preview.url` | `string` (uri) or `null` | The previewed link. |
| `platform_specific.telegram.link_preview.site_name` | `string` or `null` | The site's name. |
| `platform_specific.telegram.link_preview.title` | `string` or `null` | The page's title. |
| `platform_specific.telegram.link_preview.description` | `string` or `null` | The page's description, as the card shows it. |
| `platform_specific.telegram.link_preview.image_url` | `string` (uri) or `null` | The card's image. |
| `platform_specific.telegram.poll` | `object` or `null` | The poll the post carries; null when none. |
| `platform_specific.telegram.poll.question` | `string` or `null` | The question. |
| `platform_specific.telegram.poll.type` | `string` or `null` | Telegram's label, lower case: anonymous poll, public poll, anonymous quiz, … |
| `platform_specific.telegram.poll.voter_count` | `integer` or `null` | People who voted; rounded by Telegram from the thousands up (see approximate_fields). |
| `platform_specific.telegram.poll.options` | `object[]` | The options, in the poll's order. |
| `platform_specific.telegram.poll.options[].text` | `string` or `null` | The option's text. |
| `platform_specific.telegram.poll.options[].percent` | `number` or `null` | Its share of the votes, in percent, as Telegram rounds it. |
| `platform_specific.telegram.document` | `object` or `null` | The file or audio file the post carries, which Telegram names but does not link logged out; null when none. |
| `platform_specific.telegram.document.title` | `string` or `null` | The file's name, or an audio file's title. |
| `platform_specific.telegram.document.performer` | `string` or `null` | An audio file's performer as Telegram shows it; null for other files and an audio file without one. |
| `platform_specific.telegram.document.size` | `string` or `null` | Its size as Telegram shows it (1.3 MB); null when it shows none, as on an audio file. |
| `platform_specific.telegram.links` | `string[]` | The link targets in the post's text, in order, those behind a word included; \[\] when none. |
| `platform_specific.telegram.buttons` | `object[]` | The buttons under the post that open a link; \[\] when none. |
| `platform_specific.telegram.buttons[].text` | `string` or `null` | The button's label. |
| `platform_specific.telegram.buttons[].url` | `string` or `null` | What it opens: a web link or a tg:// link. |
| `platform_specific.linkedin` | `object` or `null` | A LinkedIn post's own fields. |
| `platform_specific.linkedin.content_urn` | `string` or `null` | The URN of the post's content (urn:li:share:\<id> or urn:li:ugcPost:\<id>): another number for the same post, which links and LinkedIn's own APIs can name it by. On an article, the article's feed post. |
| `platform_specific.linkedin.author_headline` | `string` or `null` | The headline LinkedIn shows under the author's name on the post; null for a Page, whose line is its follower count. |
| `platform_specific.linkedin.author_follower_count` | `integer` or `null` | The author's exact follower count. |
| `platform_specific.linkedin.is_author_influencer` | `boolean` or `null` | LinkedIn shows its Influencer badge beside the author's name. |
| `platform_specific.linkedin.is_edited` | `boolean` or `null` | LinkedIn marks the post as edited; null on an article. |
| `platform_specific.linkedin.repost_activity_id` | `string` or `null` | The activity the link named when it was a repost without commentary: the page shows the original post, which is what this answer describes (id, author, text, published_at are the original's). Null otherwise. |
| `platform_specific.linkedin.link` | `object` or `null` | The link card the post shares (an article, an external video, a live event); null when none. |
| `platform_specific.linkedin.link.url` | `string` (uri) or `null` | The linked page (LinkedIn's redirect and tracking removed). |
| `platform_specific.linkedin.link.title` | `string` or `null` | The card's title. |
| `platform_specific.linkedin.link.source` | `string` or `null` | The card's second line: the publisher or its domain. |
| `platform_specific.linkedin.link.image_url` | `string` (uri) or `null` | The card's image. |
| `platform_specific.linkedin.document` | `object` or `null` | The document the post attaches (a PDF or slides shown as pages), whose first pages are in media; null when none. |
| `platform_specific.linkedin.document.title` | `string` or `null` | The document's title. |
| `platform_specific.linkedin.document.page_count` | `integer` or `null` | How many pages the document has (media has the first ones). |
| `platform_specific.linkedin.document.manifest_url` | `string` (uri) or `null` | The manifest LinkedIn's document viewer reads the pages from; the document's own download needs a login. |
| `platform_specific.linkedin.hidden_image_count` | `integer` or `null` | How many more images the post has beyond those in media (LinkedIn shows the rest only to signed-in members); null when it shows them all. |
| `platform_specific.linkedin.reshared_post` | `object` or `null` | The post this one reshares with commentary; null when it reshares none. |
| `platform_specific.linkedin.reshared_post.id` | `string` or `null` | Its activity ID. |
| `platform_specific.linkedin.reshared_post.url` | `string` (uri) or `null` | Its canonical link. |
| `platform_specific.linkedin.reshared_post.author` | `object` | Its author. |
| `platform_specific.linkedin.reshared_post.author.id` | `string` or `null` | Platform-native account ID; null when only the handle is known. |
| `platform_specific.linkedin.reshared_post.author.username` | `string` or `null` | Handle without the @; null when the account has none. |
| `platform_specific.linkedin.reshared_post.author.display_name` | `string` or `null` | Display name shown on the profile. |
| `platform_specific.linkedin.reshared_post.author.url` | `string` (uri) or `null` | Canonical profile URL. |
| `platform_specific.linkedin.reshared_post.author.avatar_url` | `string` (uri) or `null` | Profile picture URL. Platform CDN URLs can expire within hours. |
| `platform_specific.linkedin.reshared_post.author.is_verified` | `boolean` or `null` | Platform verification badge; null where the platform has no badge. |
| `platform_specific.linkedin.reshared_post.text` | `string` or `null` | Its text. |
| `platform_specific.linkedin.reshared_post.published_at` | `string` (date-time) or `null` | When it went public, RFC 3339 UTC. |
| `platform_specific.linkedin.reshared_post.media` | `object[]` | Its attachments; \[\] for a text post. |
| `platform_specific.linkedin.reshared_post.media[].type` | `string` | Kind of file. New values may be added; treat unknown values as other.<br>One of `image`, `video`, `audio`, `gif` |
| `platform_specific.linkedin.reshared_post.media[].url` | `string` (uri) or `null` | Direct file URL; null when the platform withholds it, or when the link would only work from SocialTap's network or with a login. Often signed and expiring: see expires_at. |
| `platform_specific.linkedin.reshared_post.media[].expires_at` | `string` (date-time) or `null` | When url stops working, RFC 3339 UTC, read from the platform's signed URL; null when unknown or when it does not expire. |
| `platform_specific.linkedin.reshared_post.media[].thumbnail_url` | `string` (uri) or `null` | Poster or preview image URL. |
| `platform_specific.linkedin.reshared_post.media[].width` | `integer` or `null` | Width in pixels. |
| `platform_specific.linkedin.reshared_post.media[].height` | `integer` or `null` | Height in pixels. |
| `platform_specific.linkedin.reshared_post.media[].duration_ms` | `integer` or `null` | Duration in milliseconds (video and audio only). |
| `platform_specific.linkedin.reshared_post.media[].alt_text` | `string` or `null` | Accessibility text provided by the author or platform. |
| `platform_specific.linkedin.top_comments` | `object[]` | The comments LinkedIn shows on the post's page logged out (about ten at most), in its order; \[\] when none. |
| `platform_specific.linkedin.top_comments[].id` | `string` or `null` | The comment's ID. |
| `platform_specific.linkedin.top_comments[].author` | `object` | The commenter. |
| `platform_specific.linkedin.top_comments[].author.id` | `string` or `null` | Platform-native account ID; null when only the handle is known. |
| `platform_specific.linkedin.top_comments[].author.username` | `string` or `null` | Handle without the @; null when the account has none. |
| `platform_specific.linkedin.top_comments[].author.display_name` | `string` or `null` | Display name shown on the profile. |
| `platform_specific.linkedin.top_comments[].author.url` | `string` (uri) or `null` | Canonical profile URL. |
| `platform_specific.linkedin.top_comments[].author.avatar_url` | `string` (uri) or `null` | Profile picture URL. Platform CDN URLs can expire within hours. |
| `platform_specific.linkedin.top_comments[].author.is_verified` | `boolean` or `null` | Platform verification badge; null where the platform has no badge. |
| `platform_specific.linkedin.top_comments[].text` | `string` or `null` | The comment's text. |
| `platform_specific.linkedin.top_comments[].published_at` | `string` (date-time) or `null` | When it was written, RFC 3339 UTC. |
| `platform_specific.linkedin.top_comments[].like_count` | `integer` or `null` | Its reactions. |
| `platform_specific.linkedin.modified_at` | `string` (date-time) or `null` | When an article was last edited, RFC 3339 UTC; null on a post. |
| `platform_specific.linkedin.more_articles` | `object[]` | An article's More articles by its author, in LinkedIn's order; \[\] on a post. |
| `platform_specific.linkedin.more_articles[].title` | `string` or `null` | The article's title. |
| `platform_specific.linkedin.more_articles[].url` | `string` (uri) or `null` | Its link. |
| `platform_specific.linkedin.more_articles[].description` | `string` or `null` | Its first lines. |
| `platform_specific.linkedin.more_articles[].published_on` | `string` or `null` | The day it was published, as a date (YYYY-MM-DD). |
| `platform_specific.linkedin.more_articles[].like_count` | `integer` or `null` | Its reactions. |
| `platform_specific.linkedin.more_articles[].comment_count` | `integer` or `null` | Its comments. |
| `platform_specific.bluesky` | `object` or `null` | A Bluesky post's own fields. |
| `platform_specific.bluesky.cid` | `string` or `null` | The content hash (CID) of this version of the post's record. |
| `platform_specific.bluesky.indexed_at` | `string` (date-time) or `null` | When Bluesky's AppView first saw the post, RFC 3339 UTC; null when the record was read from the account's own repository instead of the AppView. |
| `platform_specific.bluesky.created_at` | `string` (date-time) or `null` | The time the post's own record states, RFC 3339 UTC: the author's client writes it, so it can be earlier than the post went public (an imported archive) or later than it; null when it can't be read as a time. |
| `platform_specific.bluesky.languages` | `string[]` | Every language the author tagged the post with, in the author's order; \[\] when none. |
| `platform_specific.bluesky.labels` | `string[]` | Moderation and self labels on the post (porn, sexual, nudity, graphic-media, spam, …), as Bluesky names them; \[\] when none. |
| `platform_specific.bluesky.links` | `string[]` | The full URLs the post's text links to, in text order; the text itself shows them shortened. \[\] when none. |
| `platform_specific.bluesky.link_card` | `object` or `null` | The link preview card the post shows; null when none. |
| `platform_specific.bluesky.link_card.url` | `string` (uri) or `null` | The page it links to. |
| `platform_specific.bluesky.link_card.title` | `string` or `null` | The card's title. |
| `platform_specific.bluesky.link_card.description` | `string` or `null` | The card's description. |
| `platform_specific.bluesky.link_card.thumbnail_url` | `string` (uri) or `null` | The card's image. |
| `platform_specific.bluesky.quoted_post_id` | `string` or `null` | The at:// ID of the post this one quotes; null when it quotes none. Stays set when the quoted post can't be shown. |
| `platform_specific.bluesky.quoted_post` | `object` or `null` | The post this one quotes, as Bluesky embeds it; null when it quotes none, or when the quoted post was deleted, is blocked, was detached by its author, or its author shows it only to signed-in people. |
| `platform_specific.bluesky.quoted_post.id` | `string` or `null` | Its at:// ID. |
| `platform_specific.bluesky.quoted_post.url` | `string` (uri) or `null` | Its URL. |
| `platform_specific.bluesky.quoted_post.text` | `string` or `null` | Its text. |
| `platform_specific.bluesky.quoted_post.published_at` | `string` (date-time) or `null` | When it went public, RFC 3339 UTC. |
| `platform_specific.bluesky.quoted_post.author` | `object` | Its author. |
| `platform_specific.bluesky.quoted_post.author.id` | `string` or `null` | Platform-native account ID; null when only the handle is known. |
| `platform_specific.bluesky.quoted_post.author.username` | `string` or `null` | Handle without the @; null when the account has none. |
| `platform_specific.bluesky.quoted_post.author.display_name` | `string` or `null` | Display name shown on the profile. |
| `platform_specific.bluesky.quoted_post.author.url` | `string` (uri) or `null` | Canonical profile URL. |
| `platform_specific.bluesky.quoted_post.author.avatar_url` | `string` (uri) or `null` | Profile picture URL. Platform CDN URLs can expire within hours. |
| `platform_specific.bluesky.quoted_post.author.is_verified` | `boolean` or `null` | Platform verification badge; null where the platform has no badge. |
| `platform_specific.bluesky.quoted_post.media` | `object[]` | Its images and video; \[\] when none. |
| `platform_specific.bluesky.quoted_post.media[].type` | `string` | Kind of file. New values may be added; treat unknown values as other.<br>One of `image`, `video`, `audio`, `gif` |
| `platform_specific.bluesky.quoted_post.media[].url` | `string` (uri) or `null` | Direct file URL; null when the platform withholds it, or when the link would only work from SocialTap's network or with a login. Often signed and expiring: see expires_at. |
| `platform_specific.bluesky.quoted_post.media[].expires_at` | `string` (date-time) or `null` | When url stops working, RFC 3339 UTC, read from the platform's signed URL; null when unknown or when it does not expire. |
| `platform_specific.bluesky.quoted_post.media[].thumbnail_url` | `string` (uri) or `null` | Poster or preview image URL. |
| `platform_specific.bluesky.quoted_post.media[].width` | `integer` or `null` | Width in pixels. |
| `platform_specific.bluesky.quoted_post.media[].height` | `integer` or `null` | Height in pixels. |
| `platform_specific.bluesky.quoted_post.media[].duration_ms` | `integer` or `null` | Duration in milliseconds (video and audio only). |
| `platform_specific.bluesky.quoted_post.media[].alt_text` | `string` or `null` | Accessibility text provided by the author or platform. |
| `platform_specific.bluesky.quoted_post.metrics` | `object` | Its own counts at fetch time. |
| `platform_specific.bluesky.quoted_post.metrics.view_count` | `integer` or `null` | Views or plays. |
| `platform_specific.bluesky.quoted_post.metrics.like_count` | `integer` or `null` | Likes, hearts, total reactions or upvotes; never negative. Null when hidden by the owner. |
| `platform_specific.bluesky.quoted_post.metrics.comment_count` | `integer` or `null` | Comments and replies. |
| `platform_specific.bluesky.quoted_post.metrics.share_count` | `integer` or `null` | Shares or sends (not reposts). |
| `platform_specific.bluesky.quoted_post.metrics.repost_count` | `integer` or `null` | Reposts, retweets or reshares. |
| `platform_specific.bluesky.quoted_post.metrics.quote_count` | `integer` or `null` | Quote posts. |
| `platform_specific.bluesky.quoted_post.metrics.save_count` | `integer` or `null` | Saves, bookmarks or favorites. |
| `platform_specific.bluesky.embedded_record_uri` | `string` or `null` | The at:// URI of a custom feed, list or starter pack the post embeds; null when it embeds none. |
| `platform_specific.bluesky.reply_to_post_id` | `string` or `null` | The at:// ID of the post this one replies to; null when it is not a reply. |
| `platform_specific.bluesky.reply_root_post_id` | `string` or `null` | The at:// ID of the post that started the thread; null when this post is not a reply. |
| `platform_specific.bluesky.bridged_from_url` | `string` (uri) or `null` | The link Bridgy Fed records for a post it brought to Bluesky from the fediverse or the web, usually where the post was first published; null when it was written on Bluesky. |
| `platform_specific.bluesky.reposted_by` | `object` or `null` | The account whose repost put this post in the list; null when it is the account's own post, and on an endpoint that reads one post. |
| `platform_specific.bluesky.reposted_by.id` | `string` or `null` | Platform-native account ID; null when only the handle is known. |
| `platform_specific.bluesky.reposted_by.username` | `string` or `null` | Handle without the @; null when the account has none. |
| `platform_specific.bluesky.reposted_by.display_name` | `string` or `null` | Display name shown on the profile. |
| `platform_specific.bluesky.reposted_by.url` | `string` (uri) or `null` | Canonical profile URL. |
| `platform_specific.bluesky.reposted_by.avatar_url` | `string` (uri) or `null` | Profile picture URL. Platform CDN URLs can expire within hours. |
| `platform_specific.bluesky.reposted_by.is_verified` | `boolean` or `null` | Platform verification badge; null where the platform has no badge. |
| `platform_specific.bluesky.reposted_at` | `string` (date-time) or `null` | When the account reposted it, RFC 3339 UTC; null when it is the account's own post. |
| `platform_specific.soundcloud` | `object` or `null` | A SoundCloud track's own fields. |
| `platform_specific.soundcloud.genre` | `string` or `null` | The genre the uploader chose, as written; null when none. |
| `platform_specific.soundcloud.tags` | `string[]` | The uploader's tags, without the quotes SoundCloud keeps around a tag of several words; \[\] when none. |
| `platform_specific.soundcloud.caption` | `string` or `null` | The short line the uploader wrote beside the track; null when none. |
| `platform_specific.soundcloud.permalink` | `string` or `null` | The track's name in its link (soundcloud.com/\<artist>/\<permalink>). |
| `platform_specific.soundcloud.license` | `string` or `null` | The license the track is published under (all-rights-reserved, cc-by, …). |
| `platform_specific.soundcloud.label_name` | `string` or `null` | The record label the uploader credits; null when none. |
| `platform_specific.soundcloud.artist_name` | `string` or `null` | The credited artist in the release metadata, who may not be the account that uploaded it; null when none. |
| `platform_specific.soundcloud.album_title` | `string` or `null` | The album in the release metadata; null when none. |
| `platform_specific.soundcloud.release_title` | `string` or `null` | The release in the release metadata; null when none. |
| `platform_specific.soundcloud.released_at` | `string` (date-time) or `null` | The release date the uploader states, RFC 3339 UTC; it can be long before the track came to SoundCloud. Null when none. |
| `platform_specific.soundcloud.uploaded_at` | `string` (date-time) or `null` | When the track was uploaded, RFC 3339 UTC; before published_at when its release was scheduled. |
| `platform_specific.soundcloud.last_modified_at` | `string` (date-time) or `null` | When the uploader last changed the track, RFC 3339 UTC. |
| `platform_specific.soundcloud.isrc` | `string` or `null` | International Standard Recording Code; null when none. |
| `platform_specific.soundcloud.upc` | `string` or `null` | The release's UPC or EAN barcode; null when none. |
| `platform_specific.soundcloud.publisher` | `string` or `null` | The music publisher in the release metadata; null when none. |
| `platform_specific.soundcloud.writer_composer` | `string` or `null` | The writer or composer in the release metadata; null when none. |
| `platform_specific.soundcloud.p_line` | `string` or `null` | The sound recording copyright line (℗); null when none. |
| `platform_specific.soundcloud.c_line` | `string` or `null` | The composition copyright line (©); null when none. |
| `platform_specific.soundcloud.is_explicit` | `boolean` or `null` | The release metadata marks the track explicit; null when it does not say. |
| `platform_specific.soundcloud.is_music` | `boolean` or `null` | The release metadata says the track holds music (false: spoken word or a podcast); null when it does not say. |
| `platform_specific.soundcloud.download_count` | `integer` or `null` | Downloads. |
| `platform_specific.soundcloud.is_downloadable` | `boolean` or `null` | The uploader allows downloads of the track. |
| `platform_specific.soundcloud.is_streamable` | `boolean` or `null` | SoundCloud lets the track be played. |
| `platform_specific.soundcloud.is_commentable` | `boolean` or `null` | The uploader allows comments on the track. |
| `platform_specific.soundcloud.policy` | `string` or `null` | What SoundCloud lets a logged-out listener in the United States do: ALLOW and MONETIZE play the whole track, SNIP a preview of it (see transcodings), BLOCK nothing. SoundCloud answers each country its own way: this is the US answer. New values may be added. |
| `platform_specific.soundcloud.monetization_model` | `string` or `null` | How the track earns in the United States (AD_SUPPORTED, SUB_HIGH_TIER, BLACKBOX, NOT_APPLICABLE); SoundCloud answers each country its own way. New values may be added. |
| `platform_specific.soundcloud.embeddable_by` | `string` or `null` | Who may embed the player (all, me, none). |
| `platform_specific.soundcloud.purchase_url` | `string` (uri) or `null` | The buy link the uploader set; null when none. |
| `platform_specific.soundcloud.purchase_title` | `string` or `null` | The label of the buy link; null when SoundCloud's default is used. |
| `platform_specific.soundcloud.waveform_url` | `string` (uri) or `null` | The JSON file of the track's waveform, which SoundCloud's player draws. |
| `platform_specific.soundcloud.visual_url` | `string` (uri) or `null` | The banner image the uploader set for the track's page; null when none. |
| `platform_specific.soundcloud.transcodings` | `object[]` | The encodings SoundCloud serves of the track to a logged-out listener in the United States, in its order; each country gets its own list. \[\] when none, as under policy BLOCK. |
| `platform_specific.soundcloud.transcodings[].preset` | `string` or `null` | SoundCloud's name of the encoding (aac_160k, mp3_1_0, abr_sq, …). |
| `platform_specific.soundcloud.transcodings[].protocol` | `string` or `null` | How it is delivered: hls, progressive (one file), or cbc-encrypted-hls and ctr-encrypted-hls. New values may be added. |
| `platform_specific.soundcloud.transcodings[].mime_type` | `string` or `null` | The audio's media type. |
| `platform_specific.soundcloud.transcodings[].quality` | `string` or `null` | SoundCloud's quality label: lq (lower), sq (standard) or hq (high). New values may be added. |
| `platform_specific.soundcloud.transcodings[].is_snipped` | `boolean` or `null` | Only a preview of the track, not all of it. |
| `platform_specific.soundcloud.transcodings[].duration_ms` | `integer` or `null` | Length of this encoding in milliseconds: the preview's on a snipped one. |
| `platform_specific.soundcloud.author_follower_count` | `integer` or `null` | The uploader's exact follower count. |
| `platform_specific.snapchat` | `object` or `null` | A Spotlight's own fields. |
| `platform_specific.snapchat.recommend_count` | `integer` or `null` | How many people recommended it. |
| `platform_specific.snapchat.is_attributed` | `boolean` or `null` | Snapchat names the account that posted it. False: it shows no account, so author holds only the label Snapchat shows instead. |
| `platform_specific.snapchat.embedded_text` | `string` or `null` | Text written on the Snap itself, where the poster's caption (text) is separate; null when none. |
| `platform_specific.snapchat.generated_title` | `string` or `null` | A title Snapchat's own language model wrote for search, not the poster: it can be wrong about what the Snap shows. Null when Snapchat has none. |
| `platform_specific.snapchat.generated_description` | `string` or `null` | A description Snapchat's own language model wrote for search, not the poster: it can be wrong about what the Snap shows. Null when Snapchat has none. |
| `platform_specific.snapchat.keywords` | `string[]` | Search keywords Snapchat derived from the Snap, not the poster's hashtags; \[\] if none. |
| `platform_specific.snapchat.transcript` | `string` or `null` | What is said in the Snap, as Snapchat transcribed it, as plain text; null when it holds no speech or Snapchat has no transcript. |
| `platform_specific.snapchat.transcript_url` | `string` (uri) or `null` | Snapchat's timed transcript of the Snap, a WebVTT file; null when it has none. |
| `platform_specific.snapchat.sound` | `object` or `null` | The sound it uses; null when it credits none. |
| `platform_specific.snapchat.sound.id` | `string` or `null` | Snapchat's ID of the sound. |
| `platform_specific.snapchat.sound.title` | `string` or `null` | The sound's title (Original Sound for a poster's own). |
| `platform_specific.snapchat.sound.subtitle` | `string` or `null` | Who or what the sound credits: the artist of a track, the username of the account that made an original sound, or the track an original sound contains. Null when it names no account. |
| `platform_specific.snapchat.sound.thumbnail_url` | `string` (uri) or `null` | The sound's cover image. |
| `platform_specific.snapchat.lens` | `object` or `null` | The Lens it was made with; null when it credits none. |
| `platform_specific.snapchat.lens.id` | `string` or `null` | The Lens's ID. |
| `platform_specific.snapchat.lens.name` | `string` or `null` | The Lens's name. |
| `platform_specific.snapchat.lens.url` | `string` (uri) or `null` | The Lens's page. |
| `platform_specific.snapchat.lens.thumbnail_url` | `string` (uri) or `null` | The Lens's icon. |
| `platform_specific.snapchat.place` | `object` or `null` | The place it was tagged at; null when it names none. |
| `platform_specific.snapchat.place.id` | `string` or `null` | The place's ID. |
| `platform_specific.snapchat.place.name` | `string` or `null` | The place's name. |
| `platform_specific.snapchat.place.category` | `string` or `null` | Its category as Snapchat words it (Bars, Amusement Park). |
| `platform_specific.snapchat.place.url` | `string` (uri) or `null` | The place's page. |
| `platform_specific.kwai` | `object` or `null` | A Kwai post's own fields. |
| `platform_specific.kwai.music` | `object` or `null` | The post's sound; null when Kwai names none. |
| `platform_specific.kwai.music.id` | `string` or `null` | Sound ID. |
| `platform_specific.kwai.music.title` | `string` or `null` | Sound title; null on most original sounds, which Kwai leaves untitled. |
| `platform_specific.kwai.music.author_name` | `string` or `null` | Who Kwai credits for the sound. |
| `platform_specific.kwai.music.is_original` | `boolean` or `null` | An original sound a creator uploaded (false: a catalogue track). |
| `platform_specific.kwai.music.duration_ms` | `integer` or `null` | Sound length in milliseconds. |
| `platform_specific.kwai.music.cover_url` | `string` (uri) or `null` | Sound cover image URL. |
| `platform_specific.kwai.music.play_url` | `string` (uri) or `null` | Audio file URL. |
| `platform_specific.kwai.author_user_id` | `string` or `null` | The author's numeric user ID, also accepted as a handle; null when the source does not state it (author.id, the account's encrypted ID, is always the same account). |
| `platform_specific.kwai.author_verified_description` | `string` or `null` | What the author's verification badge says (Conta Oficial); null when the account has none. |
| `platform_specific.kwai.category` | `string` or `null` | The topic Kwai files the post under (Dance, Comedy&Funny), in English; null when it files it under none. |
| `platform_specific.kwai.subcategory` | `string` or `null` | The narrower topic within category (Fashion dance); null when none. |
| `platform_specific.kwai.is_ai_generated` | `boolean` or `null` | Kwai labels the post as AI-generated; null when the source does not state it. |
| `platform_specific.kwai.tagged_accounts` | `object[]` | The accounts the caption tags, in order; \[\] when none. mentions holds the names written in the caption by hand. |
| `platform_specific.kwai.tagged_accounts[].user_id` | `string` or `null` | The account's numeric user ID, accepted as a handle. |
| `platform_specific.kwai.tagged_accounts[].label` | `string` or `null` | The name the caption shows for it: its display name or username. |
| `platform_specific.kwai.place` | `object` or `null` | The place tagged on the post; null when none. |
| `platform_specific.kwai.place.id` | `string` or `null` | Place ID. |
| `platform_specific.kwai.place.name` | `string` or `null` | Place name. |
| `platform_specific.kwai.place.address` | `string` or `null` | Address line. |
| `platform_specific.kwai.place.latitude` | `number` or `null` | Latitude in degrees. |
| `platform_specific.kwai.place.longitude` | `number` or `null` | Longitude in degrees. |
| `platform_specific.kwai.duet_source` | `object` or `null` | The post this one duets; null when it is no duet. |
| `platform_specific.kwai.duet_source.post_id` | `string` or `null` | The source post's ID; null when the source does not state it exactly. |
| `platform_specific.kwai.duet_source.user_id` | `string` or `null` | The source author's numeric user ID, accepted as a handle. |
| `platform_specific.kwai.duet_source.display_name` | `string` or `null` | The source author's display name, as the duet shows it. |
| `platform_specific.twitch` | `object` or `null` | A Twitch video's or clip's own fields. |
| `platform_specific.twitch.broadcast_type` | `string` or `null` | What Twitch calls this kind of video: archive (a past broadcast), highlight, upload, premiere_upload, past_premiere or clip. |
| `platform_specific.twitch.category` | `object` or `null` | What it is filed under; null when nothing was set. |
| `platform_specific.twitch.category.id` | `string` or `null` | Twitch's ID of the category. |
| `platform_specific.twitch.category.name` | `string` or `null` | Its name (Just Chatting). |
| `platform_specific.twitch.category.slug` | `string` or `null` | Its name in links (twitch.tv/directory/category/just-chatting). |
| `platform_specific.twitch.category.box_art_url` | `string` (uri) or `null` | The category's cover image. |
| `platform_specific.twitch.is_recording` | `boolean` or `null` | True for a past broadcast that is still being recorded because the stream is on air; null on a clip. |
| `platform_specific.twitch.is_restricted` | `boolean` or `null` | True when Twitch keeps the video from logged-out viewers, usually for the channel's subscribers: its fields are still answered and media\[\].url is null. Null on a clip, and where the answer doesn't carry what says so (the video's page, when Twitch's API is down). |
| `platform_specific.twitch.content_labels` | `string[]` | Twitch's content classification labels, its own IDs in its order (MatureGame, Gambling, DebatedSocialIssuesAndPolitics): is_nsfw is true on any of them but politics. \[\] when it has none, and listed in unknown_fields where the answer doesn't have them. |
| `platform_specific.twitch.deletes_at` | `string` (date-time) or `null` | When Twitch will delete the video: past broadcasts expire, RFC 3339 UTC. Null when none is set (highlights and uploads stay) and on a clip. |
| `platform_specific.twitch.animated_preview_url` | `string` (uri) or `null` | An image holding frames of the video one above the other, which Twitch's site animates as its preview; null on a clip and while the video is still recording. On an old video the file itself can be gone. |
| `platform_specific.twitch.chapters` | `object[]` | The parts of a video by category, in order, as Twitch marks them; \[\] when it marks none and on a clip, and listed in unknown_fields where the answer doesn't have them. |
| `platform_specific.twitch.chapters[].title` | `string` or `null` | What Twitch shows for it: the category's name. |
| `platform_specific.twitch.chapters[].position_ms` | `integer` or `null` | Where in the video it starts, in milliseconds. |
| `platform_specific.twitch.chapters[].duration_ms` | `integer` or `null` | How long it lasts, in milliseconds; null on the last part of a broadcast still on air. |
| `platform_specific.twitch.chapters[].category` | `object` or `null` | The category; null when Twitch doesn't say. |
| `platform_specific.twitch.chapters[].category.id` | `string` or `null` | Twitch's ID of the category. |
| `platform_specific.twitch.chapters[].category.name` | `string` or `null` | Its name (Just Chatting). |
| `platform_specific.twitch.chapters[].category.slug` | `string` or `null` | Its name in links (twitch.tv/directory/category/just-chatting). |
| `platform_specific.twitch.chapters[].category.box_art_url` | `string` (uri) or `null` | The category's cover image. |
| `platform_specific.twitch.clip_id` | `string` or `null` | Twitch's number for a clip. Its links take the slug, which is id; null on a video. |
| `platform_specific.twitch.embed_url` | `string` (uri) or `null` | The clip's embeddable player; null on a video. |
| `platform_specific.twitch.is_featured` | `boolean` or `null` | True when the channel features the clip; null on a video. |
| `platform_specific.twitch.clipped_by` | `object` or `null` | The account that made the clip; author is the channel it was clipped from. Null on a video, and when Twitch no longer names the account. |
| `platform_specific.twitch.clipped_by.id` | `string` or `null` | Platform-native account ID; null when only the handle is known. |
| `platform_specific.twitch.clipped_by.username` | `string` or `null` | Handle without the @; null when the account has none. |
| `platform_specific.twitch.clipped_by.display_name` | `string` or `null` | Display name shown on the profile. |
| `platform_specific.twitch.clipped_by.url` | `string` (uri) or `null` | Canonical profile URL. |
| `platform_specific.twitch.clipped_by.avatar_url` | `string` (uri) or `null` | Profile picture URL. Platform CDN URLs can expire within hours. |
| `platform_specific.twitch.clipped_by.is_verified` | `boolean` or `null` | Platform verification badge; null where the platform has no badge. |
| `platform_specific.twitch.broadcast_id` | `string` or `null` | Twitch's ID of the broadcast the clip was cut from; null on a video. |
| `platform_specific.twitch.source_video` | `object` or `null` | The past broadcast the clip was cut from; null on a video, and when Twitch no longer keeps it. |
| `platform_specific.twitch.source_video.id` | `string` or `null` | The video's number. |
| `platform_specific.twitch.source_video.url` | `string` (uri) or `null` | The video's page. |
| `platform_specific.twitch.source_video.title` | `string` or `null` | The video's title. |
| `platform_specific.twitch.source_video.offset_ms` | `integer` or `null` | Where in the video the clip starts, in milliseconds; null when Twitch doesn't say. |
| `platform_specific.twitch.author_follower_count` | `integer` or `null` | The channel's followers at fetch time, when the answer has them. |
| `platform_specific.twitch.renditions` | `object[]` | The clip's files, one per quality, best first; media\[0\] is the first. \[\] on a video, and listed in unknown_fields where a source doesn't see them. |
| `platform_specific.twitch.renditions[].quality` | `string` or `null` | Twitch's name for the quality: the height in pixels (1080). |
| `platform_specific.twitch.renditions[].frame_rate` | `number` or `null` | Frames per second, when Twitch states it. |
| `platform_specific.twitch.renditions[].url` | `string` (uri) | The MP4 file, signed and expiring: see expires_at. |
| `platform_specific.twitch.renditions[].expires_at` | `string` (date-time) or `null` | When url stops working, RFC 3339 UTC, read from Twitch's signed token; null when unknown. |
| `platform_specific.twitch.vertical_renditions` | `object[]` | The files of the clip's vertical version, where it has one, best first; \[\] when it has none and on a video, and listed in unknown_fields where a source doesn't see them. |
| `platform_specific.twitch.vertical_renditions[].quality` | `string` or `null` | Twitch's name for the quality: the height in pixels (1080). |
| `platform_specific.twitch.vertical_renditions[].frame_rate` | `number` or `null` | Frames per second, when Twitch states it. |
| `platform_specific.twitch.vertical_renditions[].url` | `string` (uri) | The MP4 file, signed and expiring: see expires_at. |
| `platform_specific.twitch.vertical_renditions[].expires_at` | `string` (date-time) or `null` | When url stops working, RFC 3339 UTC, read from Twitch's signed token; null when unknown. |
| `platform_specific.spotify` | `object` or `null` | A Spotify track's or episode's own fields. |
| `platform_specific.spotify.album_id` | `string` or `null` | The ID of the release it is on (spotify.album takes it); null when the source does not show it, as on the embed page. |
| `platform_specific.spotify.album_title` | `string` or `null` | The title of that release. |
| `platform_specific.spotify.album_url` | `string` (uri) or `null` | That release's page. |
| `platform_specific.spotify.album_type` | `string` or `null` | What kind of release that is, as Spotify says. New values may be added; treat unknown values as album.<br>One of `album`, `single`, `ep`, `compilation` |
| `platform_specific.spotify.album_track_count` | `integer` or `null` | How many tracks that release has. |
| `platform_specific.spotify.release_date_precision` | `string` or `null` | How much of published_at Spotify states: day, month or year. Null for an episode, whose time is exact, and when the source does not say. New values may be added.<br>One of `day`, `month`, `year` |
| `platform_specific.spotify.disc_number` | `integer` or `null` | The disc of that release it is on, from 1. |
| `platform_specific.spotify.track_number` | `integer` or `null` | Its position on that disc, from 1. |
| `platform_specific.spotify.isrc` | `string` or `null` | International Standard Recording Code, 12 characters without hyphens; null when the source does not show it. |
| `platform_specific.spotify.label` | `string` or `null` | The record label of the release it is on; null when the source does not show it. |
| `platform_specific.spotify.copyrights` | `object[]` | The copyright lines of the release it is on; \[\] when none (listed in unknown_fields when the source cannot see them). |
| `platform_specific.spotify.copyrights[].type` | `string` or `null` | c: the copyright in the work (©); p: in the sound recording (℗); null when the line does not say or states both. New values may be added.<br>One of `c`, `p` |
| `platform_specific.spotify.copyrights[].text` | `string` | The line as the platform shows it. |
| `platform_specific.spotify.credits` | `object[]` | Who wrote, performed and produced it, as Spotify's Credits panel lists them; \[\] when none (listed in unknown_fields when the source cannot see them). |
| `platform_specific.spotify.credits[].name` | `string` | Who, as Spotify names them. |
| `platform_specific.spotify.credits[].role` | `string` or `null` | What they did, as Spotify says (Composer, Producer, Main Artist, …). |
| `platform_specific.spotify.credits[].group` | `string` or `null` | The heading Spotify lists it under (Composition & Lyrics, Production & Engineering, …). |
| `platform_specific.spotify.credits[].artist_id` | `string` or `null` | Their artist ID (spotify.artist takes it); null when they have no artist page. |
| `platform_specific.spotify.is_explicit` | `boolean` or `null` | Spotify marks it explicit. |
| `platform_specific.spotify.is_playable` | `boolean` or `null` | Spotify plays it in the country SocialTap asked from, which is not necessarily yours. |
| `platform_specific.spotify.playability_reason` | `string` or `null` | Why, as Spotify says it (playable, country_restricted, …), for that country; null when the source does not say. |
| `platform_specific.spotify.popularity` | `integer` or `null` | Spotify's own score for this track ID, 0 to 100 and recent plays weighing most; two IDs of one recording score apart (canonical_track_id). |
| `platform_specific.spotify.languages` | `string[]` | The languages it is performed in, as Spotify's tags; \[\] when none is stated (listed in unknown_fields when the source cannot see them). |
| `platform_specific.spotify.music_video_count` | `integer` or `null` | How many music videos Spotify links to it; null when the source does not show it. |
| `platform_specific.spotify.canonical_track_id` | `string` or `null` | The ID Spotify treats as this recording's main one, when that is another; null when this is it or the source does not show it. |
| `platform_specific.spotify.added_at` | `string` (date-time) or `null` | When it was added to the playlist listed, RFC 3339 UTC; null outside a playlist's list. |
| `platform_specific.spotify.added_by` | `object` or `null` | The listener who added it to the playlist listed: their username and page, and their name and picture when the source shows them; null outside a playlist's list and on Spotify's own lists, which name nobody. |
| `platform_specific.spotify.added_by.id` | `string` or `null` | Platform-native account ID; null when only the handle is known. |
| `platform_specific.spotify.added_by.username` | `string` or `null` | Handle without the @; null when the account has none. |
| `platform_specific.spotify.added_by.display_name` | `string` or `null` | Display name shown on the profile. |
| `platform_specific.spotify.added_by.url` | `string` (uri) or `null` | Canonical profile URL. |
| `platform_specific.spotify.added_by.avatar_url` | `string` (uri) or `null` | Profile picture URL. Platform CDN URLs can expire within hours. |
| `platform_specific.spotify.added_by.is_verified` | `boolean` or `null` | Platform verification badge; null where the platform has no badge. |
| `platform_specific.spotify.bpm` | `number` or `null` | Its tempo in beats per minute, to two decimals, as Spotify measured it; null where the source does not show it, as everywhere but a playlist's list. |
| `platform_specific.spotify.musical_key` | `string` or `null` | Its key and mode as Spotify measured them (F# minor); null where the source does not show it, as everywhere but a playlist's list. |
| `platform_specific.spotify.camelot_key` | `string` or `null` | Its key on the Camelot wheel DJs mix by (6A); null where the source does not show it, as everywhere but a playlist's list. |
| `platform_specific.spotify.podcast_id` | `string` or `null` | An episode's show (spotify.podcast takes it); null on a track. |
| `platform_specific.spotify.is_paywalled` | `boolean` or `null` | An episode only subscribers can hear in full; null on a track. |
| `platform_specific.applemusic` | `object` or `null` | An Apple Music track's, music video's or radio episode's own fields. |
| `platform_specific.applemusic.storefront` | `string` or `null` | The Apple Music store this answer is from, as a lowercase country code (us, jp): titles, availability and links differ by store. |
| `platform_specific.applemusic.rank` | `integer` or `null` | Position on the requested chart (1 = top); null off a chart. |
| `platform_specific.applemusic.artist_name` | `string` or `null` | Who Apple credits for it, as one display string (Lady Gaga & Bradley Cooper), which can name more people than author and coauthors link. |
| `platform_specific.applemusic.album_id` | `string` or `null` | The ID of the album it is on (applemusic.album takes it); null for a music video or radio episode on none. |
| `platform_specific.applemusic.album_title` | `string` or `null` | The title of the album it is on; null when on none. |
| `platform_specific.applemusic.album_url` | `string` (uri) or `null` | The album's page; null when on none. |
| `platform_specific.applemusic.album_artist_name` | `string` or `null` | Who Apple credits for the album it is on (Various Artists on a compilation); null when on none. |
| `platform_specific.applemusic.disc_number` | `integer` or `null` | The disc of that album it is on, from 1. |
| `platform_specific.applemusic.track_number` | `integer` or `null` | Its position on that disc, from 1. |
| `platform_specific.applemusic.isrc` | `string` or `null` | International Standard Recording Code, 12 characters without hyphens: what joins a recording across services. Null when the source does not show it. |
| `platform_specific.applemusic.composer_name` | `string` or `null` | The writers Apple credits, as one display string; null when none or the source does not show them. |
| `platform_specific.applemusic.genres` | `string[]` | The genres Apple files it under, as shown in the answer's language, the main one first; \[\] when none. |
| `platform_specific.applemusic.is_explicit` | `boolean` or `null` | Apple marks it explicit. |
| `platform_specific.applemusic.content_rating` | `string` or `null` | explicit, or clean for an edited version of something explicit; null when Apple marks neither. |
| `platform_specific.applemusic.audio_traits` | `string[]` | The audio formats it comes in (atmos, lossless, lossy-stereo, spatial, …); \[\] when none or the source does not show them. New values may be added. |
| `platform_specific.applemusic.audio_locale` | `string` or `null` | The language it is sung or spoken in, as Apple's tag (en-US); null when Apple does not say. |
| `platform_specific.applemusic.is_lyrics_available` | `boolean` or `null` | Apple has its lyrics (they are for subscribers: this answer does not hold them). |
| `platform_specific.applemusic.is_time_synced_lyrics_available` | `boolean` or `null` | Apple has its lyrics line by line in time with the audio. |
| `platform_specific.applemusic.is_apple_digital_master` | `boolean` or `null` | Carries Apple's Apple Digital Master badge. |
| `platform_specific.applemusic.is_mastered_for_itunes` | `boolean` or `null` | Carries Apple's Mastered for iTunes badge, which Apple now calls Apple Digital Master. |
| `platform_specific.applemusic.work_name` | `string` or `null` | The classical work this is part of; null on other music. |
| `platform_specific.applemusic.movement_name` | `string` or `null` | The movement of that work; null on other music. |
| `platform_specific.applemusic.movement_number` | `integer` or `null` | That movement's number in the work. |
| `platform_specific.applemusic.movement_count` | `integer` or `null` | How many movements the work has. |
| `platform_specific.applemusic.attribution` | `string` or `null` | Who a classical work is attributed to (its composer); null on other music. |
| `platform_specific.applemusic.is_4k` | `boolean` or `null` | A music video that comes in 4K; null on a song. |
| `platform_specific.applemusic.is_hdr` | `boolean` or `null` | A music video that comes in HDR; null on a song. |
| `platform_specific.applemusic.video_traits` | `string[]` | A music video's formats, as Apple names them; \[\] on a song or when none. |
| `platform_specific.applemusic.curator_id` | `string` or `null` | Apple's ID of a radio episode's show, which is a curator and no artist; null on other posts. |
| `platform_specific.applemusic.long_note` | `string` or `null` | A radio episode's longer note, as Apple writes it: often the name of its show, or a shorter or older form of it, and sometimes something else, such as a date; so a hint, not an identity. Null when Apple has none, which depends on the store and language, and on other posts. |
| `platform_specific.applemusic.air_ended_at` | `string` (date-time) or `null` | When a radio episode's broadcast ended, RFC 3339 UTC; null on other posts. |
| `platform_specific.applemusic.is_live` | `boolean` or `null` | A radio episode on the air now; null on other posts. |
| `platform_specific.pinterest` | `object` or `null` | A pin's own fields. |
| `platform_specific.pinterest.link_url` | `string` (uri) or `null` | The page the pin links to (its destination); null for a pin saved without one. |
| `platform_specific.pinterest.domain` | `string` or `null` | The linked site's domain as Pinterest shows it (tastemade.com); null for a pin that links nowhere. |
| `platform_specific.pinterest.board` | `object` or `null` | The board the pin is saved to. |
| `platform_specific.pinterest.board.id` | `string` or `null` | The board's ID. |
| `platform_specific.pinterest.board.title` | `string` or `null` | The board's name. |
| `platform_specific.pinterest.board.url` | `string` (uri) or `null` | The board's link. |
| `platform_specific.pinterest.original_pinner` | `object` or `null` | The account that first saved this picture or video to Pinterest (its uploader, for a pin made on Pinterest); null when Pinterest names none. author is the account whose pin this is, which for a repin is another. |
| `platform_specific.pinterest.original_pinner.id` | `string` or `null` | Platform-native account ID; null when only the handle is known. |
| `platform_specific.pinterest.original_pinner.username` | `string` or `null` | Handle without the @; null when the account has none. |
| `platform_specific.pinterest.original_pinner.display_name` | `string` or `null` | Display name shown on the profile. |
| `platform_specific.pinterest.original_pinner.url` | `string` (uri) or `null` | Canonical profile URL. |
| `platform_specific.pinterest.original_pinner.avatar_url` | `string` (uri) or `null` | Profile picture URL. Platform CDN URLs can expire within hours. |
| `platform_specific.pinterest.original_pinner.is_verified` | `boolean` or `null` | Platform verification badge; null where the platform has no badge. |
| `platform_specific.pinterest.author_follower_count` | `integer` or `null` | The pinner's exact follower count; null when the source does not state it. |
| `platform_specific.pinterest.is_author_verified_merchant` | `boolean` or `null` | Whether the pinner is a Pinterest verified merchant (a shop Pinterest checked); null when the source does not state it. |
| `platform_specific.pinterest.is_repin` | `boolean` or `null` | The pin is a save (repin) of another account's pin. |
| `platform_specific.pinterest.repin_count` | `integer` or `null` | Saves of this pin itself; metrics.save_count counts the saves of every pin of the same picture or video. |
| `platform_specific.pinterest.dominant_color` | `string` or `null` | The picture's dominant color, as #rrggbb. |
| `platform_specific.pinterest.rich_type` | `string` or `null` | The kind of page a rich pin shows details of (recipe, article, product, …); null for a pin that is no rich pin. |
| `platform_specific.pinterest.interests` | `string[]` | The interests Pinterest files the pin under, each an ideas page of its own, in its order; \[\] when none. |
| `platform_specific.pinterest.caption_languages` | `string[]` | The languages of the captions Pinterest has for the pin's video (en-us, …), as BCP-47 tags; \[\] when none. |
| `platform_specific.pinterest.is_ad` | `boolean` or `null` | The pin runs as an ad (a Promoted pin). |
| `platform_specific.amazon` | `object` or `null` | An Amazon influencer's storefront photo's or video's own fields. |
| `platform_specific.amazon.products` | `object[]` | The products the post tags, in its order; \[\] when none. The path is in approximate_fields when the post may tag more than it shows. |
| `platform_specific.amazon.products[].asin` | `string` | The product's ASIN (what amazon.product takes). |
| `platform_specific.amazon.products[].url` | `string` (uri) | The product's page in the list's marketplace. |
| `platform_specific.amazon.products[].image_url` | `string` (uri) or `null` | The product's image URL, as the card shows it. |
| `platform_specific.amazon.caption_tracks` | `object[]` | The video's caption tracks (WebVTT, public); \[\] when none, and for photos. |
| `platform_specific.amazon.caption_tracks[].language` | `string` or `null` | Language code (en, …). |
| `platform_specific.amazon.caption_tracks[].url` | `string` (uri) or `null` | WebVTT file URL. |
| `approximate_fields` | `string[]` | JSON paths of values rounded by the platform or parsed from display text. A list path (external_links) means the list may be incomplete. \[\] when all exact. |
| `unknown_fields` | `string[]` | JSON paths of lists whose \[\] means unknown rather than none (a source that cannot see them); null already means unknown for every other field. \[\] when every list is known. |

## Item errors

Besides the [request-level errors](https://socialtap.dev/docs/errors/index.md) every endpoint can return, post endpoints return:

| Code | HTTP | Retry | Meaning | What to do |
| --- | --- | --- | --- | --- |
| `not_found` | 404 | No | The item does not exist or was deleted. On GET /v1/requests/{id}/response: the response was not kept (details.reason says why). | Check the link or ID. Do not retry. |
| `private_or_unavailable` | 403 | No | The item exists but is not public: it is private, age- or region-restricted, or needs a login to view. It shares 403 with forbidden (which is about the key), so branch on the code. | Only public items can be fetched. Do not retry. |

---

[HTML version](https://socialtap.dev/resources/post/) · [Docs index for AI agents](https://socialtap.dev/llms.txt) · [All docs in one file](https://socialtap.dev/llms-full.txt)
