# Engagement

Schemas

Engagement rate, average views, likes and comments, posting cadence and top post for an account, computed from its recent posts the same way on every platform.

## Endpoints

6 endpoints return engagement stats on Facebook, Instagram, Reddit, Rumble, TikTok and YouTube.

- [GETFacebook Engagement API`/v1/facebook/engagement`](https://socialtap.dev/docs/reference/facebook/engagement/index.md)
- [GETInstagram Engagement API`/v1/instagram/engagement`](https://socialtap.dev/docs/reference/instagram/engagement/index.md)
- [GETReddit Engagement API`/v1/reddit/engagement`](https://socialtap.dev/docs/reference/reddit/engagement/index.md)
- [GETRumble Engagement API`/v1/rumble/engagement`](https://socialtap.dev/docs/reference/rumble/engagement/index.md)
- [GETTikTok Engagement API`/v1/tiktok/engagement`](https://socialtap.dev/docs/reference/tiktok/engagement/index.md)
- [GETYouTube Engagement API`/v1/youtube/engagement`](https://socialtap.dev/docs/reference/youtube/engagement/index.md)

## Schema

Every endpoint above returns this object as `data`. The standard [`meta`](https://socialtap.dev/docs/reference/index.md#meta) comes with every response.

| Field | Type | Description |
| --- | --- | --- |
| `platform` | `string` | Platform ID (tiktok, instagram, …). |
| `id` | `string` | Platform-native account ID (equals profile.id). |
| `url` | `string` (uri) | Canonical profile URL (equals profile.url). |
| `profile` | `object` | The account, as its profile endpoint returns it; its metrics.follower_count divides every engagement_rate. |
| `profile.platform` | `string` | Platform ID (tiktok, youtube, …). |
| `profile.id` | `string` | Platform-native account ID (string; YouTube UC…, Reddit t2_…). |
| `profile.username` | `string` or `null` | Handle without the @; null when the account has none. |
| `profile.display_name` | `string` or `null` | Display name, channel title or page name; null when empty or not exposed. |
| `profile.url` | `string` (uri) | Canonical profile URL. |
| `profile.type` | `string` | Coarse account kind, as the platform labels it; unknown when it does not (TikTok labels organizations only). New values may be added; treat unknown values as unknown.<br>One of `person`, `organization`, `community`, `unknown` |
| `profile.bio` | `string` or `null` | Profile bio, channel description or page about text; null when empty or not exposed. |
| `profile.avatar_url` | `string` (uri) or `null` | Profile picture URL (largest available). Platform CDN URLs can expire within hours. |
| `profile.banner_url` | `string` (uri) or `null` | Header or cover image URL. |
| `profile.is_verified` | `boolean` or `null` | Platform verification badge; null where the platform has no badge. |
| `profile.is_private` | `boolean` or `null` | True when the account's posts are not public. |
| `profile.category` | `string` or `null` | Platform category label (e.g. Musician, Media & Entertainment), as shown; not normalized. Often set only for business or creator accounts. |
| `profile.external_links` | `object[]` | Links in the bio or channel links; \[\] if none or not exposed. |
| `profile.external_links[].url` | `string` (uri) | Link target, absolute (https:// is added where the platform stores the link without a scheme). |
| `profile.external_links[].title` | `string` or `null` | Link label shown by the platform. |
| `profile.location` | `string` or `null` | Self-declared location text. |
| `profile.country_code` | `string` or `null` | ISO 3166-1 alpha-2 country the platform states for the account. |
| `profile.created_at` | `string` (date-time) or `null` | Account creation or join date, RFC 3339 UTC (some platforms give only the day: see approximate_fields). |
| `profile.metrics` | `object` | Counts at fetch time; null = hidden or not exposed, 0 = zero. |
| `profile.metrics.follower_count` | `integer` or `null` | Followers or subscribers. |
| `profile.metrics.following_count` | `integer` or `null` | Accounts this profile follows. |
| `profile.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). |
| `profile.metrics.total_like_count` | `integer` or `null` | Likes received across all of the profile's posts (not likes given). |
| `profile.metrics.total_view_count` | `integer` or `null` | Lifetime views across all of the profile's posts. |
| `profile.platform_specific` | `object` | Fields only this platform has, under its ID (platform_specific.\<platform>); each null when unknown. |
| `profile.platform_specific.youtube` | `object` or `null` | A YouTube channel's own fields. |
| `profile.platform_specific.youtube.keywords` | `string[]` | The channel's keywords as its owner wrote them, a quoted phrase as one keyword; \[\] when it has none (listed in unknown_fields when the source cannot see them). |
| `profile.platform_specific.youtube.is_official_artist_channel` | `boolean` or `null` | True for an Official Artist Channel (the note badge after its name), false for any other channel; null when the page shows no badge row (YouTube's built-in channels). |
| `profile.platform_specific.youtube.is_subscriber_count_hidden` | `boolean` or `null` | True when the channel hides its subscriber count (metrics.follower_count is then null; neither its About panel nor its header shows one), false when YouTube shows it; null when that cannot be told (no About panel or header seen). |
| `profile.platform_specific.youtube.is_business_email_listed` | `boolean` or `null` | True when the channel lists a business email (shown to signed-in users only; the address is not returned); null otherwise, since YouTube shows nothing for a channel without one. |
| `profile.platform_specific.instagram` | `object` or `null` | An Instagram account's own fields. |
| `profile.platform_specific.instagram.fbid` | `string` or `null` | The account's Meta-wide ID (17841…), the one Meta's Instagram Graph API uses; id is Instagram's own user ID. Null when the source does not show it. |
| `profile.platform_specific.instagram.is_memorialized` | `boolean` or `null` | True when Instagram has memorialized the account (its owner has died), false otherwise; null when unknown. |
| `profile.platform_specific.instagram.is_story_live` | `boolean` or `null` | True when the account has a story up now (stories last 24 hours), false when it has none; null when unknown (Instagram does not say for private accounts). |
| `profile.platform_specific.instagram.is_highlights_shown` | `boolean` or `null` | True when the profile shows story highlights, false when it shows none; null when unknown (private accounts, or a source that does not show them). |
| `profile.platform_specific.instagram.account_type` | `string` or `null` | The kind of account Instagram says it is: personal, or one of its professional kinds, business or creator (an account picks one; it says nothing of whether a person or an organization runs it). Null when the source does not show it. New values may be added; treat unknown values as unknown.<br>One of `personal`, `business`, `creator` |
| `profile.platform_specific.instagram.pronouns` | `string[]` | The pronouns the owner chose to show on the profile, as shown; \[\] when none (listed in unknown_fields when the source cannot see them). |
| `profile.platform_specific.rumble` | `object` or `null` | A Rumble channel's or user's own fields. |
| `profile.platform_specific.rumble.account_type` | `string` or `null` | channel for a Rumble channel (rumble.com/c/\<name>), user for a Rumble user (rumble.com/user/\<name>: the account that uploads, which can own channels). Null when unknown. New values may be added; treat unknown values as unknown.<br>One of `channel`, `user` |
| `profile.platform_specific.rumble.numeric_id` | `string` or `null` | Rumble's numeric ID of the channel or the user, in decimal (the channel's is the number in its rumble.com/c/c-\<id> link). Channels and users are numbered separately, so the same number can name a channel and a user: id is the unambiguous reference. Null when unknown. |
| `profile.platform_specific.rumble.user_id` | `string` or `null` | The id of the Rumble user that owns the channel (_u…, the id this endpoint answers for that user); for a user, its own id. Channels of one owner share it. Null when the page does not show it. |
| `profile.platform_specific.threads` | `object` or `null` | A Threads account's own fields. |
| `profile.platform_specific.threads.interest_tags` | `string[]` | Topic labels Threads shows on the profile, as shown; \[\] when it shows none (listed in unknown_fields when the source cannot see them). |
| `profile.platform_specific.threads.verified_link_urls` | `string[]` | The external_links URLs Threads marks as verified, in the same form; \[\] when none is marked (listed in unknown_fields when the source cannot see the links). |
| `profile.platform_specific.tiktok` | `object` or `null` | A TikTok account's own fields. |
| `profile.platform_specific.tiktok.sec_uid` | `string` or `null` | TikTok's account key: survives a rename, and handle params take it. |
| `profile.platform_specific.tiktok.friend_count` | `integer` or `null` | Mutual follows: accounts it follows that follow it back. |
| `profile.platform_specific.tiktok.liked_post_count` | `integer` or `null` | Posts it has liked (likes given); null when it keeps them private. |
| `profile.platform_specific.tiktok.language` | `string` or `null` | The owner's app language (en, ko), not its posts'. |
| `profile.platform_specific.tiktok.is_business_account` | `boolean` or `null` | A TikTok business account (category names its business). |
| `profile.platform_specific.tiktok.is_shop_seller` | `boolean` or `null` | Sells on TikTok Shop. |
| `profile.platform_specific.tiktok.display_name_changed_at` | `string` (date-time) or `null` | When the display name last changed, RFC 3339 UTC. |
| `profile.platform_specific.reddit` | `object` or `null` | A Reddit account's own fields. |
| `profile.platform_specific.reddit.karma` | `integer` or `null` | Total karma, as the profile shows it: post karma plus comment karma. Reddit's own score of the upvotes the account's posts and comments received, fuzzed and not a count of votes. |
| `profile.platform_specific.reddit.post_karma` | `integer` or `null` | Karma from the account's posts. |
| `profile.platform_specific.reddit.comment_karma` | `integer` or `null` | Karma from the account's comments. |
| `profile.platform_specific.reddit.contribution_count` | `integer` or `null` | Posts and comments the account has made, as its profile counts them (Reddit updates the count daily). |
| `profile.platform_specific.reddit.is_admin` | `boolean` or `null` | True for a Reddit employee's account (the Reddit Admin badge). |
| `profile.platform_specific.reddit.is_premium` | `boolean` or `null` | True when the account has Reddit Premium (the badge beside its name). |
| `profile.platform_specific.reddit.is_nsfw` | `boolean` or `null` | True when the profile is marked NSFW (18+): Reddit shows its posts to logged-out visitors only behind an age prompt. |
| `profile.platform_specific.reddit.moderated_subreddits` | `object[]` | Subreddits the account moderates, as its profile lists them; Reddit lists the first few only (the list is then in approximate_fields). \[\] when it moderates none (listed in unknown_fields when the source cannot see them). |
| `profile.platform_specific.reddit.moderated_subreddits[].id` | `string` or `null` | Reddit's subreddit ID (t5_…). |
| `profile.platform_specific.reddit.moderated_subreddits[].name` | `string` or `null` | The subreddit's name without r/. |
| `profile.platform_specific.reddit.moderated_subreddits[].url` | `string` (uri) or `null` | The subreddit's URL. |
| `profile.platform_specific.reddit.trophies` | `object[]` | The account's Trophy Case, in Reddit's order; \[\] when it has none (listed in unknown_fields when the source cannot see them). |
| `profile.platform_specific.reddit.trophies[].name` | `string` or `null` | The trophy's name (Verified Email, 10-Year Club, Best Comment). |
| `profile.platform_specific.reddit.trophies[].description` | `string` or `null` | What it was awarded for, as Reddit describes it; null when it shows none. |
| `profile.platform_specific.reddit.trophies[].granted_at` | `string` (date-time) or `null` | The day it was awarded, RFC 3339 UTC at midnight (Reddit shows the day only), for the trophies Reddit dates; null otherwise. |
| `profile.platform_specific.reddit.trophies[].image_url` | `string` (uri) or `null` | The trophy's image. |
| `profile.platform_specific.reddit.trophies[].url` | `string` (uri) or `null` | What it links to (the awarded comment or post, an event page); null when it links nowhere. |
| `profile.platform_specific.google` | `object` or `null` | A Google advertiser's own fields. |
| `profile.platform_specific.google.ads` | `object` or `null` | The ads the center shows for the advertiser, as Google's range (equal bounds when exact), in the region the request names where it takes one; metrics.post_count is its lower bound. Null when not shown. |
| `profile.platform_specific.google.ads.lower_bound` | `integer` | Inclusive lower bound. |
| `profile.platform_specific.google.ads.upper_bound` | `integer` or `null` | Inclusive upper bound; null when open-ended (e.g. ">1M"). Equal to lower_bound when exact. |
| `profile.platform_specific.google.legal_name` | `string` or `null` | The advertiser's legal name, as Google verified it; null when the center shows none. |
| `profile.platform_specific.google.last_shown_at` | `string` (date-time) or `null` | The last time one of the advertiser's ads was shown, RFC 3339 UTC (among the ads counted in ads); null when it has none or the center does not show it. |
| `profile.platform_specific.google.is_election_advertiser` | `boolean` or `null` | True when Google verified the advertiser to run election ads (it has a page in the center's political ads view). |
| `profile.platform_specific.google.election` | `object` or `null` | The advertiser's election-ads disclosure; null when it is not an election advertiser or the center does not show it. |
| `profile.platform_specific.google.election.ad_count` | `integer` or `null` | Election ads the center shows for the advertiser, exact. |
| `profile.platform_specific.google.election.country_codes` | `string[]` | ISO 3166-1 alpha-2 codes of the countries and territories it is verified to run election ads in; \[\] when not shown. |
| `profile.platform_specific.google.election.regulatory_ids` | `object[]` | The advertiser's registrations with election regulators (a US FEC committee ID, or an individual's own registration); \[\] when it disclosed none. |
| `profile.platform_specific.google.election.regulatory_ids[].type` | `string` | The kind of identifier. New values may be added; treat unknown values as other.<br>One of `us_fec_id`, `us_employer_identification_number`, `us_state_id`, `us_individual`, `other` |
| `profile.platform_specific.google.election.regulatory_ids[].id` | `string` | The identifier, as registered (C00003418). |
| `profile.platform_specific.facebook` | `object` or `null` | A Facebook Page's or person's own fields. |
| `profile.platform_specific.facebook.page_id` | `string` or `null` | The Page ID Facebook shows under Page transparency, which is also the advertiser's ID in Meta's Ad Library; null for an account without one (most people's profiles). |
| `profile.platform_specific.facebook.gender` | `string` or `null` | A person's gender as Facebook states it, male or female; null for a Page or when it states none. |
| `profile.platform_specific.facebook.alternate_name` | `string` or `null` | The other name the account shows beside its name. |
| `profile.platform_specific.facebook.is_memorialized` | `boolean` or `null` | True for a memorialized account ("Remembering …"). |
| `profile.platform_specific.facebook.talking_about_count` | `integer` or `null` | How many people Facebook counts as talking about the account. It is shown only on the profile's own page, which most requests are answered without: null when this answer did not read it. |
| `profile.platform_specific.facebook.were_here_count` | `integer` or `null` | How many people have checked in at a place's Page. It is shown only on the profile's own page, which most requests are answered without: null when this answer did not read it, or for an account that is not a place. |
| `profile.platform_specific.facebook.email` | `string` or `null` | The public contact email the profile shows. |
| `profile.platform_specific.facebook.phone` | `string` or `null` | The public contact phone number the profile shows, as written there. |
| `profile.platform_specific.facebook.price_range` | `string` or `null` | A business's price range as shown, such as $$. |
| `profile.platform_specific.facebook.rating` | `string` or `null` | The rating line as shown, such as 96% recommend (1,121 reviews). |
| `profile.platform_specific.facebook.recommend_percent` | `integer` or `null` | The share of reviewers who recommend the Page, as a percentage; null when it is not yet rated. |
| `profile.platform_specific.facebook.review_count` | `integer` or `null` | How many reviews the Page has. |
| `profile.platform_specific.facebook.services` | `string[]` | What the business offers, as Facebook lists it (Delivery, Takeout, Dine-in). \[\] when it lists none. |
| `profile.platform_specific.facebook.hours_status` | `string` or `null` | Whether the business is open at fetch time, in Facebook's words (Open now, Closed now, Closing soon). |
| `profile.platform_specific.facebook.business_hours` | `object[]` | A business's weekly opening hours, a day at a time. \[\] when it shows none. |
| `profile.platform_specific.facebook.business_hours[].day` | `string` or `null` | The day of the week, as Facebook names it (Monday). |
| `profile.platform_specific.facebook.business_hours[].hours` | `string` or `null` | The day's hours as shown, such as 11:00 AM - 2:30 PM, 4:30 PM - 9:30 PM, or Closed. |
| `profile.platform_specific.facebook.business_hours[].periods` | `object[]` | The same hours as 24-hour times, one per opening; \[\] on a closed day or when the text is not a list of times. |
| `profile.platform_specific.facebook.business_hours[].periods[].open` | `string` | Opening time, 24-hour HH:MM, local to the business. |
| `profile.platform_specific.facebook.business_hours[].periods[].close` | `string` | Closing time, 24-hour HH:MM, local to the business. |
| `profile.platform_specific.facebook.work` | `string[]` | The jobs a person's intro lists, as written there (Founder and CEO at Meta). \[\] when it lists none. |
| `profile.platform_specific.facebook.education` | `string[]` | The schools a person's intro lists, as written there. \[\] when it lists none. |
| `profile.platform_specific.facebook.hometown` | `string` or `null` | The hometown a person's intro states. |
| `profile.platform_specific.facebook.relationship` | `string` or `null` | The relationship a person's intro states, as written there. |
| `profile.platform_specific.facebook.owner_name` | `string` or `null` | The organization or person Facebook confirms is responsible for the Page. |
| `profile.platform_specific.facebook.owner_location` | `string` or `null` | The confirmed owner's location, as Page transparency states it. |
| `profile.platform_specific.facebook.is_running_ads` | `boolean` or `null` | True when the account is running ads now (Page transparency). |
| `profile.platform_specific.facebook.is_political_advertiser` | `boolean` or `null` | True when the account has run ads about social issues, elections or politics. |
| `profile.platform_specific.facebook.admin_countries` | `object[]` | Where the people who manage the Page are, as Page transparency counts them. \[\] when it shows none. |
| `profile.platform_specific.facebook.admin_countries[].country` | `string` or `null` | The country's name. |
| `profile.platform_specific.facebook.admin_countries[].count` | `integer` or `null` | How many of the Page's admins are there. |
| `profile.platform_specific.facebook.name_changes` | `object[]` | The Page's earlier name changes, newest first. \[\] when it has none. |
| `profile.platform_specific.facebook.name_changes[].name` | `string` | The name it took. |
| `profile.platform_specific.facebook.name_changes[].changed_at` | `string` (date-time) | When it changed, RFC 3339 UTC. |
| `profile.platform_specific.facebook.instagram_username` | `string` or `null` | The Instagram account Meta links to the advertiser, as its Ad Library's advertiser search shows it; null when it links none or for a profile read from elsewhere. |
| `profile.platform_specific.facebook.instagram_follower_count` | `integer` or `null` | That Instagram account's exact followers, as the Ad Library's advertiser search shows them. |
| `profile.platform_specific.facebook.is_instagram_verified` | `boolean` or `null` | Whether that Instagram account has the verified badge, as the Ad Library's advertiser search shows it. |
| `profile.platform_specific.facebook.is_deleted` | `boolean` or `null` | True when the Page has been deleted, as the Ad Library's advertiser search states it: its ads stay in the library. Null for a profile read from elsewhere. |
| `profile.platform_specific.facebook.ad_library_entity_type` | `string` or `null` | Meta's own label for the advertiser in its Ad Library, as written there (PERSON_PROFILE, REGULAR_PAGE, IG_ADS_IDENTITY for an advertiser that exists only on Instagram). It labels brands PERSON_PROFILE too: it says how Meta files the advertiser, not what it is. New values may appear. Null for a profile read from elsewhere. |
| `profile.platform_specific.truthsocial` | `object` or `null` | A Truth Social account's own fields. |
| `profile.platform_specific.truthsocial.is_bot` | `boolean` or `null` | True when the account says it is automated. |
| `profile.platform_specific.truthsocial.last_post_at` | `string` (date-time) or `null` | The day of the account's latest post, as midnight UTC RFC 3339 (the platform gives only the day: listed in approximate_fields); null when it has never posted. |
| `profile.platform_specific.truthsocial.is_premium` | `boolean` or `null` | True when Truth Social marks the account as premium. |
| `profile.platform_specific.truthsocial.is_accepting_messages` | `boolean` or `null` | True when the account takes direct messages. |
| `profile.platform_specific.truthsocial.is_discoverable` | `boolean` or `null` | True when the account lets Truth Social suggest it to others; null when it has not said. |
| `profile.platform_specific.pillar` | `object` or `null` | A Pillar page's own fields. |
| `profile.platform_specific.pillar.first_name` | `string` or `null` | The first name on the Pillar account. |
| `profile.platform_specific.pillar.last_name` | `string` or `null` | The last name on the Pillar account: the full name after the first name; null when it does not start with it. |
| `profile.platform_specific.pillar.full_name` | `string` or `null` | The full name on the Pillar account, which can differ from display_name. |
| `profile.platform_specific.pillar.email` | `string` or `null` | The email address the page shows among its social icons: the icon's own, else the contact email; null when it has none or hides it. |
| `profile.platform_specific.pillar.contact_email` | `string` or `null` | The contact email address on the creator's Pillar account; null when the page hides its email icon. |
| `profile.platform_specific.pillar.is_claimed` | `boolean` or `null` | False for a page Pillar set up that its creator has not claimed yet. |
| `profile.platform_specific.pillar.socials` | `object[]` | The social accounts the page shows as icons: \[\] if none. |
| `profile.platform_specific.pillar.socials[].platform` | `string` | The service, in lowercase, as Pillar names it (instagram, tiktok, spotify, apple_app_store, …). |
| `profile.platform_specific.pillar.socials[].url` | `string` (uri) | The link behind the icon. |
| `profile.platform_specific.pillar.links` | `object[]` | The links the page shows, in page order, with their click counts: \[\] if none. |
| `profile.platform_specific.pillar.links[].id` | `string` | Pillar's ID of the link. |
| `profile.platform_specific.pillar.links[].title` | `string` or `null` | The link's title, as shown. |
| `profile.platform_specific.pillar.links[].description` | `string` or `null` | The line under the title. |
| `profile.platform_specific.pillar.links[].url` | `string` (uri) | Where the link goes. |
| `profile.platform_specific.pillar.links[].click_count` | `integer` or `null` | How many times the link was clicked, as Pillar counts it. |
| `profile.platform_specific.pillar.products` | `object[]` | What the page sells or recommends, in page order: \[\] if nothing. |
| `profile.platform_specific.pillar.products[].id` | `string` | Pillar's ID of the item. |
| `profile.platform_specific.pillar.products[].type` | `string` | product links to another store; digital_product, course, experience and fan_request are sold on Pillar itself. New values may be added.<br>One of `product`, `digital_product`, `course`, `experience`, `fan_request` |
| `profile.platform_specific.pillar.products[].title` | `string` or `null` | The item's name. |
| `profile.platform_specific.pillar.products[].description` | `string` or `null` | The item's short description. |
| `profile.platform_specific.pillar.products[].url` | `string` (uri) or `null` | Where to buy it: the store's link for a product, the Pillar checkout otherwise. |
| `profile.platform_specific.pillar.products[].image_url` | `string` (uri) or `null` | The item's image. |
| `profile.platform_specific.pillar.products[].price` | `number` or `null` | The price, in currency; null when the page does not show one. |
| `profile.platform_specific.pillar.products[].currency` | `string` or `null` | The price's ISO 4217 currency. |
| `profile.platform_specific.pillar.videos` | `object[]` | The videos the page features, in page order: \[\] if none. |
| `profile.platform_specific.pillar.videos[].id` | `string` | Pillar's ID of the video. |
| `profile.platform_specific.pillar.videos[].title` | `string` or `null` | The video's title on the page. |
| `profile.platform_specific.pillar.videos[].description` | `string` or `null` | The video's description on the page. |
| `profile.platform_specific.pillar.videos[].url` | `string` (uri) | The video's link. |
| `profile.platform_specific.pillar.audience` | `object[]` | The connected accounts the page shows follower counts for: \[\] if it shows none. |
| `profile.platform_specific.pillar.audience[].platform` | `string` | The service, in lowercase (instagram, tiktok, youtube, twitter, facebook, twitch, snapchat). |
| `profile.platform_specific.pillar.audience[].channel_name` | `string` | The account's name or ID on that service, as Pillar stores it. |
| `profile.platform_specific.pillar.audience[].follower_count` | `integer` or `null` | Its followers or subscribers, as Pillar last read them. |
| `profile.platform_specific.linktree` | `object` or `null` | A Linktree page's own fields. |
| `profile.platform_specific.linktree.links` | `object[]` | Every block on the page in page order, with its type and group, including headers and groups that have no URL. external_links holds the same destinations without the structure. |
| `profile.platform_specific.linktree.links[].id` | `string` | Linktree's ID of the link. |
| `profile.platform_specific.linktree.links[].type` | `string` or `null` | Linktree's type of the block (CLASSIC, GROUP, HEADER, YOUTUBE_VIDEO, SPOTIFY_ALBUM, COMMERCE_PRODUCT, …). New values appear as Linktree adds them. |
| `profile.platform_specific.linktree.links[].title` | `string` or `null` | The label shown on the page. |
| `profile.platform_specific.linktree.links[].url` | `string` (uri) or `null` | Destination; null for a block with no http(s) one (GROUP, HEADER, an EMAIL block's mailto:) and for a link behind a lock. |
| `profile.platform_specific.linktree.links[].thumbnail_url` | `string` (uri) or `null` | The block's image. |
| `profile.platform_specific.linktree.links[].position` | `integer` or `null` | Its order within its group, or on the page when it has no group: lower comes first, and gaps are normal (links lists blocks in page order already). |
| `profile.platform_specific.linktree.links[].group_id` | `string` or `null` | The ID of the GROUP block it sits in; null at the top level of the page. |
| `profile.platform_specific.linktree.links[].gates` | `string[]` | What a visitor passes before following it: sensitive_content and age are click-throughs, anything else (passcode, password, nft, subscribed, wall) is a lock. \[\] when it opens directly. |
| `profile.platform_specific.linktree.social_links` | `object[]` | The page's social icons. |
| `profile.platform_specific.linktree.social_links[].platform` | `string` | Which icon, as Linktree's type in lower case (instagram, tiktok, x, email_address, …). New values appear as Linktree adds them. |
| `profile.platform_specific.linktree.social_links[].url` | `string` | Destination: usually an https link, mailto: for an email icon. |
| `profile.platform_specific.linktree.email` | `string` or `null` | The email address the page lists, on its email icon or an email link. |
| `profile.platform_specific.linktree.timezone` | `string` or `null` | The account's IANA time zone (America/New_York). |
| `profile.platform_specific.linktree.updated_at` | `string` (date-time) or `null` | When the page was last changed, RFC 3339 UTC. |
| `profile.platform_specific.linktree.verticals` | `string[]` | The industries Linktree files the account under, as its slugs (music, fashion-beauty, …). |
| `profile.platform_specific.linktree.link_platforms` | `string[]` | The platforms Linktree lists the account as being on, as it names them (TikTok, Instagram, X, …). |
| `profile.platform_specific.linktree.badges` | `string[]` | The badges on the page, as Linktree names them (VERIFICATION_TICK, VERIFIED_AND_NOTABLE_TICK). |
| `profile.platform_specific.linktree.is_sensitive` | `boolean` or `null` | True when Linktree marks the page as having sensitive content. |
| `profile.platform_specific.linktree.content_warning` | `string` or `null` | The warning a visitor accepts before the page shows, as Linktree names it (generic, eighteenPlus, twentyOnePlus, twentyFivePlus, moderated); null when there is none. |
| `profile.platform_specific.linkbio` | `object` or `null` | A Lnk.Bio page's own fields. |
| `profile.platform_specific.linkbio.linked_username` | `string` or `null` | The @name the page shows under its picture, without the @: usually the account's Instagram username, which can differ from the page's own name (username). Null when the page shows none. |
| `profile.platform_specific.linkbio.emails` | `string[]` | Email addresses the page lists as contact icons, links, contact cards or in its bio; \[\] if none. |
| `profile.platform_specific.linkbio.phones` | `string[]` | Phone numbers the page lists as contact icons, links or contact cards, as written; \[\] if none. |
| `profile.platform_specific.linkbio.social_links` | `object[]` | The page's row of social and contact icons, in order; \[\] if none. |
| `profile.platform_specific.linkbio.social_links[].platform` | `string` | The icon's name as Lnk.Bio labels it (Instagram, TikTok, Website, WhatsApp, Spotify, …). |
| `profile.platform_specific.linkbio.social_links[].url` | `string` (uri) | Where the icon links to. |
| `profile.platform_specific.linkbio.link_count` | `integer` or `null` | How many links the page's link list holds, icons not included: what was read when that is all of it, else Lnk.Bio's own count, which can include embedded players. Null when neither is known. |
| `profile.platform_specific.linkbio.custom_domain_url` | `string` (uri) or `null` | The account's own domain for this page, when it has one (https://7ad.sa for lnk.bio/7adsa). Null when it has none. |
| `profile.platform_specific.linkme` | `object` or `null` | A Linkme page's own fields. |
| `profile.platform_specific.linkme.emails` | `string[]` | Email addresses the page publishes in its contact block; \[\] if none. |
| `profile.platform_specific.linkme.phones` | `string[]` | Phone numbers the page publishes in its contact block, as written; \[\] if none. |
| `profile.platform_specific.linkme.locations` | `string[]` | Street addresses or places the page publishes in its contact block, as written; \[\] if none. |
| `profile.platform_specific.linkme.social_links` | `object[]` | The page's row of social icons, in order; \[\] if none. |
| `profile.platform_specific.linkme.social_links[].platform` | `string` | The icon's name as Linkme labels it (Instagram, Tiktok, Youtube, OF, Customlink, …). |
| `profile.platform_specific.linkme.social_links[].url` | `string` (uri) or `null` | Where the icon links to; null when it holds no link, only a name to copy (an Xbox gamertag, a Zelle name), which handle then gives. |
| `profile.platform_specific.linkme.social_links[].handle` | `string` or `null` | The name or ID Linkme stores for the icon, usually the account's username on that platform. |
| `profile.platform_specific.linkme.social_links[].follower_count` | `integer` or `null` | The account's followers on that platform, as Linkme last read them; null for a link the account did not connect. |
| `profile.platform_specific.linkme.social_links[].is_adult` | `boolean` or `null` | True when Linkme marks the link as adult content and shows a notice before opening it. |
| `profile.platform_specific.linkme.featured_links` | `object[]` | The page's list of link buttons and cards, in page order, with a carousel's cards in place of the carousel and without section headings, which each entry names instead; \[\] if none. |
| `profile.platform_specific.linkme.featured_links[].id` | `string` | The link's ID on Linkme. |
| `profile.platform_specific.linkme.featured_links[].title` | `string` or `null` | The link's label. |
| `profile.platform_specific.linkme.featured_links[].description` | `string` or `null` | The text under the label; a music link's artist; null if none. |
| `profile.platform_specific.linkme.featured_links[].url` | `string` (uri) or `null` | Where the link goes; null only for an adult link whose target could not be read (the list is then in approximate_fields) or a music link, which has platforms instead. |
| `profile.platform_specific.linkme.featured_links[].image_url` | `string` (uri) or `null` | The link's thumbnail; null if none. |
| `profile.platform_specific.linkme.featured_links[].platform` | `string` or `null` | The site Linkme recognizes the link as (instagram, spotify, opentable, …); link for any other. |
| `profile.platform_specific.linkme.featured_links[].section` | `string` or `null` | The heading the link sits under on the page; null if none. |
| `profile.platform_specific.linkme.featured_links[].group` | `string` or `null` | The title of the carousel the card belongs to; null outside a carousel or for one without a title. |
| `profile.platform_specific.linkme.featured_links[].is_adult` | `boolean` or `null` | True when Linkme marks the link as adult content and shows a notice before opening it. |
| `profile.platform_specific.linkme.featured_links[].platforms` | `object[]` | The destinations a music link offers in its menu; \[\] for any other link. |
| `profile.platform_specific.linkme.featured_links[].platforms[].name` | `string` | The destination's label (Spotify, Apple Music, …). |
| `profile.platform_specific.linkme.featured_links[].platforms[].url` | `string` (uri) | The release on that destination. |
| `profile.platform_specific.linkme.link_count` | `integer` or `null` | How many entries Linkme counts in the page's link list, section headings and carousels each counting as one. |
| `profile.platform_specific.linkme.profile_visit_count` | `integer` or `null` | How many visits Linkme counts for the page, as Linkme rounds it from a thousand up: then listed in approximate_fields. |
| `profile.platform_specific.linkme.network_follower_count` | `integer` or `null` | The part of metrics.follower_count that comes from the networks the account connected to Linkme. Null when it has none (no network connected), when the account hid its total, or on a private page. |
| `profile.platform_specific.linkme.linkme_connection_count` | `integer` or `null` | The part of metrics.follower_count Linkme counts itself, which the page's followers sheet lists as Links on the account's own Linkme row; not the links on the page (link_count is). Null when the account hid its total, or on a private page. |
| `profile.platform_specific.linkme.is_adult` | `boolean` or `null` | True when the page opens behind an age gate: a notice to continue past, or a birth date to type. |
| `profile.platform_specific.linkme.logo_url` | `string` (uri) or `null` | The brand logo the page uploaded; null if none. |
| `profile.platform_specific.linkme.updated_at` | `string` (date-time) or `null` | When the account last changed, RFC 3339 UTC. |
| `profile.platform_specific.x` | `object` or `null` | An X (formerly Twitter) account's own fields. |
| `profile.platform_specific.x.verified_type` | `string` or `null` | The kind of verified organization X says the account is (business: the gold check, government: the grey one); null when it is neither, or when the source does not show it. New values may be added; treat unknown values as other.<br>One of `business`, `government` |
| `profile.platform_specific.x.is_blue_verified` | `boolean` or `null` | True when the account has the blue check of an X Premium subscription, false when it does not; null when unknown. is_verified is true for any check. |
| `profile.platform_specific.x.is_identity_verified` | `boolean` or `null` | True when X verified the owner's identity with an ID document, false when it did not; null when the source does not show it. |
| `profile.platform_specific.x.verified_at` | `string` (date-time) or `null` | When the account's current check was granted, RFC 3339 UTC; null when it has none or the source does not show it. |
| `profile.platform_specific.x.listed_count` | `integer` or `null` | Public lists the account is a member of; null when the source does not show it. |
| `profile.platform_specific.x.media_count` | `integer` or `null` | Posts with photos or videos, as the profile's Media tab counts them; null when the source does not show it. |
| `profile.platform_specific.x.like_count` | `integer` or `null` | Posts the account has liked (likes given, not received); null when the source does not show it. |
| `profile.platform_specific.x.highlighted_post_count` | `integer` or `null` | Posts on the profile's Highlights tab; null when the source does not show it. |
| `profile.platform_specific.x.pinned_post_ids` | `string[]` | IDs of the posts pinned to the top of the profile, as x.post takes them; \[\] when none (listed in unknown_fields when the source cannot see them). |
| `profile.platform_specific.x.professional_type` | `string` or `null` | The professional account kind the owner chose (business or creator); null for a personal account or when the source does not show it. New values may be added; treat unknown values as other.<br>One of `business`, `creator` |
| `profile.platform_specific.x.affiliation` | `object` or `null` | The organization X shows the account as affiliated with (its badge beside the name); null when none or when the source does not show it. |
| `profile.platform_specific.x.affiliation.name` | `string` or `null` | The organization's name, as the badge's label shows it. |
| `profile.platform_specific.x.affiliation.url` | `string` (uri) or `null` | The organization's X profile URL, when the badge links to one. |
| `profile.platform_specific.x.affiliation.badge_url` | `string` (uri) or `null` | The badge image (the organization's avatar). |
| `profile.platform_specific.x.is_possibly_sensitive` | `boolean` or `null` | True when X marks the account's media as possibly sensitive by default, false otherwise; null when unknown. |
| `profile.platform_specific.x.withheld_in_countries` | `string[]` | ISO 3166-1 alpha-2 codes of the countries where X withholds the account for legal reasons, upper case; \[\] when none (listed in unknown_fields when the source cannot see them). |
| `profile.platform_specific.linkedin` | `object` or `null` | A LinkedIn Page's or member's own fields. |
| `profile.platform_specific.linkedin.kind` | `string` or `null` | What the account is on LinkedIn: a company's Page (linkedin.com/company/…), a school's (/school/…), a showcase page, a company's page for one brand or product (/showcase/…), or a member, a person (/in/…). New values may be added; treat unknown values as other.<br>One of `company`, `school`, `showcase`, `member` |
| `profile.platform_specific.linkedin.tagline` | `string` or `null` | The Page's tagline, the line under its name; null when it has none, and for a member. |
| `profile.platform_specific.linkedin.organization_type` | `string` or `null` | The Page's organization type as LinkedIn shows it (Public Company, Privately Held, Nonprofit, Educational, Government Agency, Self-Employed, Partnership); null when not shown. |
| `profile.platform_specific.linkedin.company_size` | `object` or `null` | The Page's company size, the bucket of employees it declares (10,001+ is a lower bound with no upper bound); null when not shown. |
| `profile.platform_specific.linkedin.company_size.lower_bound` | `integer` | Inclusive lower bound. |
| `profile.platform_specific.linkedin.company_size.upper_bound` | `integer` or `null` | Inclusive upper bound; null when open-ended (e.g. ">1M"). Equal to lower_bound when exact. |
| `profile.platform_specific.linkedin.employee_count` | `integer` or `null` | Members who list the organization as their employer, exact as LinkedIn counts them; null when not shown. |
| `profile.platform_specific.linkedin.founded_year` | `integer` or `null` | The year the organization was founded, as its Page states it; null when not shown. |
| `profile.platform_specific.linkedin.specialties` | `string[]` | The Page's specialties, in its order; \[\] when it lists none. |
| `profile.platform_specific.linkedin.headquarters` | `object` or `null` | The Page's headquarters address; null when not shown. location is its city and region as one line. |
| `profile.platform_specific.linkedin.headquarters.street` | `string` or `null` | Street address; null when not shown. |
| `profile.platform_specific.linkedin.headquarters.city` | `string` or `null` | City; null when not shown. |
| `profile.platform_specific.linkedin.headquarters.region` | `string` or `null` | State, province or region, as written; null when not shown. |
| `profile.platform_specific.linkedin.headquarters.postal_code` | `string` or `null` | Postal code; null when not shown. |
| `profile.platform_specific.linkedin.headquarters.country_code` | `string` or `null` | ISO 3166-1 alpha-2 country code; null when not shown. |
| `profile.platform_specific.linkedin.locations` | `object[]` | The organization's locations as its Page lists them, the primary one first; \[\] when it lists none. |
| `profile.platform_specific.linkedin.locations[].address` | `string` | The address as the Page shows it, its lines joined with commas. |
| `profile.platform_specific.linkedin.locations[].is_primary` | `boolean` | True for the location the Page marks Primary. |
| `profile.platform_specific.linkedin.affiliated_pages` | `object[]` | Pages LinkedIn shows as affiliated with this one (its showcase pages, its parent or subsidiaries); \[\] when it shows none. |
| `profile.platform_specific.linkedin.affiliated_pages[].id` | `string` or `null` | Platform-native account ID; null when only the handle is known. |
| `profile.platform_specific.linkedin.affiliated_pages[].username` | `string` or `null` | Handle without the @; null when the account has none. |
| `profile.platform_specific.linkedin.affiliated_pages[].display_name` | `string` or `null` | Display name shown on the profile. |
| `profile.platform_specific.linkedin.affiliated_pages[].url` | `string` (uri) or `null` | Canonical profile URL. |
| `profile.platform_specific.linkedin.affiliated_pages[].avatar_url` | `string` (uri) or `null` | Profile picture URL. Platform CDN URLs can expire within hours. |
| `profile.platform_specific.linkedin.affiliated_pages[].is_verified` | `boolean` or `null` | Platform verification badge; null where the platform has no badge. |
| `profile.platform_specific.linkedin.affiliated_pages[].category` | `string` or `null` | The Page's industry, as the card shows it; null when not shown. |
| `profile.platform_specific.linkedin.affiliated_pages[].location` | `string` or `null` | The Page's headquarters city and region, as the card shows it; null when not shown. |
| `profile.platform_specific.linkedin.similar_pages` | `object[]` | Pages LinkedIn shows as similar to this one; \[\] when it shows none. |
| `profile.platform_specific.linkedin.similar_pages[].id` | `string` or `null` | Platform-native account ID; null when only the handle is known. |
| `profile.platform_specific.linkedin.similar_pages[].username` | `string` or `null` | Handle without the @; null when the account has none. |
| `profile.platform_specific.linkedin.similar_pages[].display_name` | `string` or `null` | Display name shown on the profile. |
| `profile.platform_specific.linkedin.similar_pages[].url` | `string` (uri) or `null` | Canonical profile URL. |
| `profile.platform_specific.linkedin.similar_pages[].avatar_url` | `string` (uri) or `null` | Profile picture URL. Platform CDN URLs can expire within hours. |
| `profile.platform_specific.linkedin.similar_pages[].is_verified` | `boolean` or `null` | Platform verification badge; null where the platform has no badge. |
| `profile.platform_specific.linkedin.similar_pages[].category` | `string` or `null` | The Page's industry, as the card shows it; null when not shown. |
| `profile.platform_specific.linkedin.similar_pages[].location` | `string` or `null` | The Page's headquarters city and region, as the card shows it; null when not shown. |
| `profile.platform_specific.linkedin.employees` | `object[]` | Members LinkedIn shows as working at the organization (the few its Page names logged out); \[\] when it names none. |
| `profile.platform_specific.linkedin.employees[].id` | `string` or `null` | Platform-native account ID; null when only the handle is known. |
| `profile.platform_specific.linkedin.employees[].username` | `string` or `null` | Handle without the @; null when the account has none. |
| `profile.platform_specific.linkedin.employees[].display_name` | `string` or `null` | Display name shown on the profile. |
| `profile.platform_specific.linkedin.employees[].url` | `string` (uri) or `null` | Canonical profile URL. |
| `profile.platform_specific.linkedin.employees[].avatar_url` | `string` (uri) or `null` | Profile picture URL. Platform CDN URLs can expire within hours. |
| `profile.platform_specific.linkedin.employees[].is_verified` | `boolean` or `null` | Platform verification badge; null where the platform has no badge. |
| `profile.platform_specific.linkedin.headline` | `string` or `null` | The member's headline, the line under their name; null when they have none, and for a Page. |
| `profile.platform_specific.linkedin.connection_count` | `integer` or `null` | The member's connections; LinkedIn shows any count above 500 as 500+, which is 500 here and listed in approximate_fields. Null when not shown, and for a Page. |
| `profile.platform_specific.linkedin.is_influencer` | `boolean` or `null` | True when LinkedIn marks the member as an influencer (its Top Voice badge beside the name); null for a Page. |
| `profile.platform_specific.linkedin.experience` | `object[]` | The member's positions, as their public profile lists them (current first, then past). Where LinkedIn hides the list from logged-out visitors, the current organization it still names, with title null; \[\] when it names none. |
| `profile.platform_specific.linkedin.experience[].title` | `string` or `null` | The position's title; null when not shown. |
| `profile.platform_specific.linkedin.experience[].company` | `object` or `null` | The organization, with its Page's link when it has one; null when not shown. |
| `profile.platform_specific.linkedin.experience[].company.id` | `string` or `null` | Platform-native account ID; null when only the handle is known. |
| `profile.platform_specific.linkedin.experience[].company.username` | `string` or `null` | Handle without the @; null when the account has none. |
| `profile.platform_specific.linkedin.experience[].company.display_name` | `string` or `null` | Display name shown on the profile. |
| `profile.platform_specific.linkedin.experience[].company.url` | `string` (uri) or `null` | Canonical profile URL. |
| `profile.platform_specific.linkedin.experience[].company.avatar_url` | `string` (uri) or `null` | Profile picture URL. Platform CDN URLs can expire within hours. |
| `profile.platform_specific.linkedin.experience[].company.is_verified` | `boolean` or `null` | Platform verification badge; null where the platform has no badge. |
| `profile.platform_specific.linkedin.experience[].started_on` | `string` or `null` | When the position started, as LinkedIn shows it: a year (2015) or a month (2015-03); null when not shown. |
| `profile.platform_specific.linkedin.experience[].ended_on` | `string` or `null` | When it ended, a year or a month; null while current (is_current) or when not shown. |
| `profile.platform_specific.linkedin.experience[].is_current` | `boolean` | True for a position LinkedIn shows as ongoing (to Present); false otherwise, including when no dates are shown. |
| `profile.platform_specific.linkedin.experience[].location` | `string` or `null` | Where it is, as written; null when not shown. |
| `profile.platform_specific.linkedin.experience[].description` | `string` or `null` | The member's description of it; null when none. |
| `profile.platform_specific.linkedin.education` | `object[]` | The member's education, as their public profile lists it. Where LinkedIn hides the list from logged-out visitors, the school it still names, with degree null; \[\] when it names none. |
| `profile.platform_specific.linkedin.education[].school` | `object` or `null` | The school, with its Page's link when it has one; null when not shown. |
| `profile.platform_specific.linkedin.education[].school.id` | `string` or `null` | Platform-native account ID; null when only the handle is known. |
| `profile.platform_specific.linkedin.education[].school.username` | `string` or `null` | Handle without the @; null when the account has none. |
| `profile.platform_specific.linkedin.education[].school.display_name` | `string` or `null` | Display name shown on the profile. |
| `profile.platform_specific.linkedin.education[].school.url` | `string` (uri) or `null` | Canonical profile URL. |
| `profile.platform_specific.linkedin.education[].school.avatar_url` | `string` (uri) or `null` | Profile picture URL. Platform CDN URLs can expire within hours. |
| `profile.platform_specific.linkedin.education[].school.is_verified` | `boolean` or `null` | Platform verification badge; null where the platform has no badge. |
| `profile.platform_specific.linkedin.education[].degree` | `string` or `null` | The degree and field of study, as written; null when not shown. |
| `profile.platform_specific.linkedin.education[].started_on` | `string` or `null` | When it started, a year or a month; null when not shown. |
| `profile.platform_specific.linkedin.education[].ended_on` | `string` or `null` | When it ended, a year or a month; null when not shown. |
| `profile.platform_specific.linkedin.is_creator` | `boolean` or `null` | True when LinkedIn marks the member as a creator (creator mode); null for a Page. |
| `profile.platform_specific.linkedin.is_open_to_work` | `boolean` or `null` | True when the member shows LinkedIn's Open to Work frame, false when they don't; null when unknown (LinkedIn's logged-out page doesn't show it, a data partner's copy does: meta.source vendor) and for a Page. |
| `profile.platform_specific.linkedin.is_hiring` | `boolean` or `null` | True when the member shows LinkedIn's Hiring frame, false when they don't; null when unknown (as is_open_to_work) and for a Page. |
| `profile.platform_specific.linkedin.volunteering` | `object[]` | The member's volunteer experience, as their public profile lists it; \[\] when it lists none, and for a Page. |
| `profile.platform_specific.linkedin.volunteering[].role` | `string` or `null` | The member's role; null when not shown. |
| `profile.platform_specific.linkedin.volunteering[].organization` | `object` or `null` | The organization, with its Page's link when it has one; null when not shown. |
| `profile.platform_specific.linkedin.volunteering[].organization.id` | `string` or `null` | Platform-native account ID; null when only the handle is known. |
| `profile.platform_specific.linkedin.volunteering[].organization.username` | `string` or `null` | Handle without the @; null when the account has none. |
| `profile.platform_specific.linkedin.volunteering[].organization.display_name` | `string` or `null` | Display name shown on the profile. |
| `profile.platform_specific.linkedin.volunteering[].organization.url` | `string` (uri) or `null` | Canonical profile URL. |
| `profile.platform_specific.linkedin.volunteering[].organization.avatar_url` | `string` (uri) or `null` | Profile picture URL. Platform CDN URLs can expire within hours. |
| `profile.platform_specific.linkedin.volunteering[].organization.is_verified` | `boolean` or `null` | Platform verification badge; null where the platform has no badge. |
| `profile.platform_specific.linkedin.volunteering[].cause` | `string` or `null` | The cause, as LinkedIn names it (Economic Empowerment, Health, Education); null when not shown. |
| `profile.platform_specific.linkedin.volunteering[].started_on` | `string` or `null` | When it started, a year (2015) or a month (2015-03); null when not shown. |
| `profile.platform_specific.linkedin.volunteering[].ended_on` | `string` or `null` | When it ended, a year or a month; null while current (is_current) or when not shown. |
| `profile.platform_specific.linkedin.volunteering[].is_current` | `boolean` | True for a role LinkedIn shows as ongoing (to Present); false otherwise, including when no dates are shown. |
| `profile.platform_specific.linkedin.volunteering[].description` | `string` or `null` | The member's description of it; null when none. |
| `profile.platform_specific.linkedin.projects` | `object[]` | The member's projects, as their public profile lists them; \[\] when it lists none, and for a Page. |
| `profile.platform_specific.linkedin.projects[].title` | `string` | The project's name. |
| `profile.platform_specific.linkedin.projects[].url` | `string` (uri) or `null` | The project's link; null when it has none. |
| `profile.platform_specific.linkedin.projects[].started_on` | `string` or `null` | When it started, a year or a month; null when not shown. |
| `profile.platform_specific.linkedin.projects[].ended_on` | `string` or `null` | When it ended, a year or a month; null while ongoing or when not shown. |
| `profile.platform_specific.linkedin.projects[].description` | `string` or `null` | The member's description of it; null when none. |
| `profile.platform_specific.linkedin.projects[].contributors` | `object[]` | The other members LinkedIn lists as its creators; \[\] when it lists none. |
| `profile.platform_specific.linkedin.projects[].contributors[].id` | `string` or `null` | Platform-native account ID; null when only the handle is known. |
| `profile.platform_specific.linkedin.projects[].contributors[].username` | `string` or `null` | Handle without the @; null when the account has none. |
| `profile.platform_specific.linkedin.projects[].contributors[].display_name` | `string` or `null` | Display name shown on the profile. |
| `profile.platform_specific.linkedin.projects[].contributors[].url` | `string` (uri) or `null` | Canonical profile URL. |
| `profile.platform_specific.linkedin.projects[].contributors[].avatar_url` | `string` (uri) or `null` | Profile picture URL. Platform CDN URLs can expire within hours. |
| `profile.platform_specific.linkedin.projects[].contributors[].is_verified` | `boolean` or `null` | Platform verification badge; null where the platform has no badge. |
| `profile.platform_specific.linkedin.publications` | `object[]` | The member's publications, as their public profile lists them; \[\] when it lists none, and for a Page. |
| `profile.platform_specific.linkedin.publications[].title` | `string` | The publication's title. |
| `profile.platform_specific.linkedin.publications[].url` | `string` (uri) or `null` | The publication's link; null when it has none. |
| `profile.platform_specific.linkedin.publications[].publisher` | `string` or `null` | The publisher, as written; null when not shown. |
| `profile.platform_specific.linkedin.publications[].published_on` | `string` or `null` | When it was published: a day (2025-01-28), a month or a year; null when not shown. |
| `profile.platform_specific.linkedin.publications[].description` | `string` or `null` | The member's description of it; null when none. |
| `profile.platform_specific.linkedin.publications[].authors` | `object[]` | The other members LinkedIn lists as its authors; \[\] when it lists none. |
| `profile.platform_specific.linkedin.publications[].authors[].id` | `string` or `null` | Platform-native account ID; null when only the handle is known. |
| `profile.platform_specific.linkedin.publications[].authors[].username` | `string` or `null` | Handle without the @; null when the account has none. |
| `profile.platform_specific.linkedin.publications[].authors[].display_name` | `string` or `null` | Display name shown on the profile. |
| `profile.platform_specific.linkedin.publications[].authors[].url` | `string` (uri) or `null` | Canonical profile URL. |
| `profile.platform_specific.linkedin.publications[].authors[].avatar_url` | `string` (uri) or `null` | Profile picture URL. Platform CDN URLs can expire within hours. |
| `profile.platform_specific.linkedin.publications[].authors[].is_verified` | `boolean` or `null` | Platform verification badge; null where the platform has no badge. |
| `profile.platform_specific.linkedin.honors` | `object[]` | The member's honors and awards, as their public profile lists them; \[\] when it lists none, and for a Page. |
| `profile.platform_specific.linkedin.honors[].title` | `string` | The honor or award. |
| `profile.platform_specific.linkedin.honors[].issuer` | `string` or `null` | Who issued it, as written; null when not shown. |
| `profile.platform_specific.linkedin.honors[].issued_on` | `string` or `null` | When it was issued, a year or a month; null when not shown. |
| `profile.platform_specific.linkedin.honors[].description` | `string` or `null` | The member's description of it; null when none. |
| `profile.platform_specific.linkedin.certifications` | `object[]` | The member's licenses and certifications, as their public profile lists them; \[\] when it lists none, and for a Page. |
| `profile.platform_specific.linkedin.certifications[].name` | `string` | The license or certification. |
| `profile.platform_specific.linkedin.certifications[].url` | `string` (uri) or `null` | Its credential link; null when it has none. |
| `profile.platform_specific.linkedin.certifications[].issuer` | `object` or `null` | The issuing organization, with its Page's link when it has one; null when not shown. |
| `profile.platform_specific.linkedin.certifications[].issuer.id` | `string` or `null` | Platform-native account ID; null when only the handle is known. |
| `profile.platform_specific.linkedin.certifications[].issuer.username` | `string` or `null` | Handle without the @; null when the account has none. |
| `profile.platform_specific.linkedin.certifications[].issuer.display_name` | `string` or `null` | Display name shown on the profile. |
| `profile.platform_specific.linkedin.certifications[].issuer.url` | `string` (uri) or `null` | Canonical profile URL. |
| `profile.platform_specific.linkedin.certifications[].issuer.avatar_url` | `string` (uri) or `null` | Profile picture URL. Platform CDN URLs can expire within hours. |
| `profile.platform_specific.linkedin.certifications[].issuer.is_verified` | `boolean` or `null` | Platform verification badge; null where the platform has no badge. |
| `profile.platform_specific.linkedin.certifications[].issued_on` | `string` or `null` | When it was issued, a year or a month; null when not shown. |
| `profile.platform_specific.linkedin.certifications[].expires_on` | `string` or `null` | When it expires, a year or a month; null when it does not or when not shown. |
| `profile.platform_specific.linkedin.certifications[].credential_id` | `string` or `null` | The credential's ID, as the member wrote it; null when not shown. |
| `profile.platform_specific.linkedin.patents` | `object[]` | The member's patents, as their public profile lists them; \[\] when it lists none, and for a Page. |
| `profile.platform_specific.linkedin.patents[].title` | `string` | The patent's title. |
| `profile.platform_specific.linkedin.patents[].number` | `string` or `null` | Its number, as written (US 8,938,217); null when not shown. |
| `profile.platform_specific.linkedin.patents[].issued_on` | `string` or `null` | When it was issued: a day (2015-01-20), a month or a year; null when not shown. |
| `profile.platform_specific.linkedin.patents[].description` | `string` or `null` | Its description; null when none. |
| `profile.platform_specific.linkedin.patents[].inventors` | `object[]` | The other members LinkedIn lists as its inventors; \[\] when it lists none. |
| `profile.platform_specific.linkedin.patents[].inventors[].id` | `string` or `null` | Platform-native account ID; null when only the handle is known. |
| `profile.platform_specific.linkedin.patents[].inventors[].username` | `string` or `null` | Handle without the @; null when the account has none. |
| `profile.platform_specific.linkedin.patents[].inventors[].display_name` | `string` or `null` | Display name shown on the profile. |
| `profile.platform_specific.linkedin.patents[].inventors[].url` | `string` (uri) or `null` | Canonical profile URL. |
| `profile.platform_specific.linkedin.patents[].inventors[].avatar_url` | `string` (uri) or `null` | Profile picture URL. Platform CDN URLs can expire within hours. |
| `profile.platform_specific.linkedin.patents[].inventors[].is_verified` | `boolean` or `null` | Platform verification badge; null where the platform has no badge. |
| `profile.platform_specific.linkedin.courses` | `object[]` | The courses the member lists; \[\] when they list none, and for a Page. |
| `profile.platform_specific.linkedin.courses[].name` | `string` | The course. |
| `profile.platform_specific.linkedin.courses[].number` | `string` or `null` | Its course number, as written (BUS M 520); null when not shown. |
| `profile.platform_specific.linkedin.organizations` | `object[]` | The organizations the member lists (associations and memberships, not employers); \[\] when they list none, and for a Page. |
| `profile.platform_specific.linkedin.organizations[].name` | `string` | The organization. |
| `profile.platform_specific.linkedin.organizations[].position` | `string` or `null` | The member's position in it, as written; null when not shown. |
| `profile.platform_specific.linkedin.organizations[].started_on` | `string` or `null` | When it started, a year or a month; null when not shown. |
| `profile.platform_specific.linkedin.organizations[].ended_on` | `string` or `null` | When it ended, a year or a month; null while current (is_current) or when not shown. |
| `profile.platform_specific.linkedin.organizations[].is_current` | `boolean` | True for a membership LinkedIn shows as ongoing (to Present); false otherwise, including when no dates are shown. |
| `profile.platform_specific.linkedin.organizations[].description` | `string` or `null` | The member's description of it; null when none. |
| `profile.platform_specific.linkedin.languages` | `object[]` | The languages the member lists, with the proficiency they state; \[\] when they list none, and for a Page. |
| `profile.platform_specific.linkedin.languages[].name` | `string` | The language, as written. |
| `profile.platform_specific.linkedin.languages[].proficiency` | `string` or `null` | The proficiency the member states (Native or bilingual proficiency, Elementary proficiency); null when not shown. |
| `profile.platform_specific.linkedin.skills` | `string[]` | The skills the member lists, in their order; \[\] when they list none, and for a Page. |
| `profile.platform_specific.linkedin.recommendations` | `object[]` | Recommendations the member received, the ones LinkedIn shows logged out (a few of recommendation_count); \[\] when it shows none, and for a Page. |
| `profile.platform_specific.linkedin.recommendations[].recommender` | `object` or `null` | The member who wrote it; null when LinkedIn does not name them. |
| `profile.platform_specific.linkedin.recommendations[].recommender.id` | `string` or `null` | Platform-native account ID; null when only the handle is known. |
| `profile.platform_specific.linkedin.recommendations[].recommender.username` | `string` or `null` | Handle without the @; null when the account has none. |
| `profile.platform_specific.linkedin.recommendations[].recommender.display_name` | `string` or `null` | Display name shown on the profile. |
| `profile.platform_specific.linkedin.recommendations[].recommender.url` | `string` (uri) or `null` | Canonical profile URL. |
| `profile.platform_specific.linkedin.recommendations[].recommender.avatar_url` | `string` (uri) or `null` | Profile picture URL. Platform CDN URLs can expire within hours. |
| `profile.platform_specific.linkedin.recommendations[].recommender.is_verified` | `boolean` or `null` | Platform verification badge; null where the platform has no badge. |
| `profile.platform_specific.linkedin.recommendations[].text` | `string` | The recommendation's text, as shown. |
| `profile.platform_specific.linkedin.recommendation_count` | `integer` or `null` | How many people have recommended the member, as LinkedIn counts them; null when not shown, and for a Page. |
| `profile.platform_specific.linkedin.similar_profiles` | `object[]` | Members LinkedIn shows as similar to this one (its People also viewed); \[\] when it shows none, and for a Page. |
| `profile.platform_specific.linkedin.similar_profiles[].id` | `string` or `null` | Platform-native account ID; null when only the handle is known. |
| `profile.platform_specific.linkedin.similar_profiles[].username` | `string` or `null` | Handle without the @; null when the account has none. |
| `profile.platform_specific.linkedin.similar_profiles[].display_name` | `string` or `null` | Display name shown on the profile. |
| `profile.platform_specific.linkedin.similar_profiles[].url` | `string` (uri) or `null` | Canonical profile URL. |
| `profile.platform_specific.linkedin.similar_profiles[].avatar_url` | `string` (uri) or `null` | Profile picture URL. Platform CDN URLs can expire within hours. |
| `profile.platform_specific.linkedin.similar_profiles[].is_verified` | `boolean` or `null` | Platform verification badge; null where the platform has no badge. |
| `profile.platform_specific.linkedin.similar_profiles[].headline` | `string` or `null` | The member's headline or current organization, as the card shows it; null when not shown. |
| `profile.platform_specific.linkedin.similar_profiles[].location` | `string` or `null` | The member's location, as the card shows it; null when not shown. |
| `profile.platform_specific.komi` | `object` or `null` | A Komi page's own fields. |
| `profile.platform_specific.komi.first_name` | `string` or `null` | The owner's first name as entered on Komi; null when empty. |
| `profile.platform_specific.komi.last_name` | `string` or `null` | The owner's last name as entered on Komi; null when empty. |
| `profile.platform_specific.komi.display_name_image_url` | `string` (uri) or `null` | The artwork the page shows as its name, when it has one; null otherwise. |
| `profile.platform_specific.komi.social_links` | `object[]` | The page's row of social and music profiles and contact links, in the page's order; \[\] when it has none (listed in unknown_fields when the source cannot see them). |
| `profile.platform_specific.komi.social_links[].type` | `string` | Komi's name for the service, lowercase: instagram, tiktok, youtube, twitter, facebook, snapchat, spotify, apple_music, website, email, whatsapp, … New values may be added. |
| `profile.platform_specific.komi.social_links[].url` | `string` (uri) | The link, as the owner entered it (https:// added when it had no scheme); an email address as a mailto: link. |
| `profile.platform_specific.komi.items` | `object[]` | What the page shows, flattened in the page's order: links, products, videos, music, podcasts, events, text and galleries. Modules the owner has hidden are not returned; \[\] when the page shows nothing (listed in unknown_fields when the source cannot see them). |
| `profile.platform_specific.komi.items[].id` | `string` or `null` | Komi's ID of the item; null for items Komi reads from another service (a shop's or Bandsintown's). |
| `profile.platform_specific.komi.items[].type` | `string` | Komi's name for the kind of module, lowercase: link, product, digital_product, youtube_video, youtube_short, tiktok_video, instagram_reel, music, podcast, events, bandsintown, seated, text, media_gallery, shop_my_shelf, mail_link, data_capture_signup, form_data, … New values may be added: treat an unknown one as a generic item. |
| `profile.platform_specific.komi.items[].group` | `string` or `null` | The name of the group the item sits in on the page; null when it is in none. |
| `profile.platform_specific.komi.items[].section` | `string` or `null` | The title the page shows above the item's module; null when it shows none. |
| `profile.platform_specific.komi.items[].title` | `string` or `null` | The item's label: a link's text, a product's name, a video's or a release's title. |
| `profile.platform_specific.komi.items[].url` | `string` (uri) or `null` | Where the item leads: the link's target (a mailto: link for a mail_link), the product's page, the video, the release's or the digital product's page on Komi, an event's tickets. Null for a form or a text. |
| `profile.platform_specific.komi.items[].thumbnail_url` | `string` (uri) or `null` | The item's image; null when it has none. |
| `profile.platform_specific.komi.items[].description` | `string` or `null` | The text of a text module, a gallery image's caption, or a product's description. |
| `profile.platform_specific.komi.items[].price` | `number` or `null` | A product's price as the page shows it, in major units of currency; 0 is a free digital download; null when the item has no price or the page shows none. |
| `profile.platform_specific.komi.items[].currency` | `string` or `null` | ISO 4217 currency of price; null when the item has no price or Komi does not say. |
| `profile.platform_specific.komi.items[].coupon_code` | `string` or `null` | The discount code a link's own page on Komi shows anyone who follows it; null when it has none. |
| `profile.platform_specific.komi.items[].links` | `object[]` | For music and podcasts, the same release on each service, in the page's order; \[\] for everything else. |
| `profile.platform_specific.komi.items[].links[].type` | `string` | Komi's name for the service, lowercase: spotify, apple_music, youtube_music, deezer, apple_podcast, … New values may be added. |
| `profile.platform_specific.komi.items[].links[].url` | `string` (uri) | The release or the episode on that service. |
| `profile.platform_specific.komi.items[].starts_at` | `string` (date-time) or `null` | When an event starts, RFC 3339 UTC; null otherwise. A Bandsintown or Seated time has no zone and is read as UTC (listed in approximate_fields). |
| `profile.platform_specific.komi.items[].venue` | `string` or `null` | An event's venue; null otherwise. |
| `profile.platform_specific.komi.items[].location` | `string` or `null` | An event's place as the page shows it; null otherwise. |
| `profile.platform_specific.komi.items[].is_sold_out` | `boolean` or `null` | Whether an event is sold out; null for anything but an event. |
| `profile.platform_specific.bluesky` | `object` or `null` | A Bluesky account's own fields. |
| `profile.platform_specific.bluesky.indexed_at` | `string` (date-time) or `null` | When Bluesky's AppView last indexed the account's profile, RFC 3339 UTC; null when the public page answered instead of the AppView. |
| `profile.platform_specific.bluesky.pronouns` | `string` or `null` | The pronouns the account wrote on its profile; null when it wrote none, or when the public page answered instead of the AppView. |
| `profile.platform_specific.bluesky.is_trusted_verifier` | `boolean` or `null` | True when Bluesky trusts this account to verify others; is_verified is then true too. Null when the public page answered instead of the AppView. |
| `profile.platform_specific.bluesky.verified_by` | `object[]` | Who verified this account, each with when; \[\] when nobody did (listed in unknown_fields when the source cannot see them). |
| `profile.platform_specific.bluesky.verified_by[].id` | `string` or `null` | The at:// URI of the verification record. |
| `profile.platform_specific.bluesky.verified_by[].issuer` | `object` | The account that verified this one. is_verified and avatar_url are null: Bluesky names the verifier without them. |
| `profile.platform_specific.bluesky.verified_by[].issuer.id` | `string` or `null` | Platform-native account ID; null when only the handle is known. |
| `profile.platform_specific.bluesky.verified_by[].issuer.username` | `string` or `null` | Handle without the @; null when the account has none. |
| `profile.platform_specific.bluesky.verified_by[].issuer.display_name` | `string` or `null` | Display name shown on the profile. |
| `profile.platform_specific.bluesky.verified_by[].issuer.url` | `string` (uri) or `null` | Canonical profile URL. |
| `profile.platform_specific.bluesky.verified_by[].issuer.avatar_url` | `string` (uri) or `null` | Profile picture URL. Platform CDN URLs can expire within hours. |
| `profile.platform_specific.bluesky.verified_by[].issuer.is_verified` | `boolean` or `null` | Platform verification badge; null where the platform has no badge. |
| `profile.platform_specific.bluesky.verified_by[].is_valid` | `boolean` or `null` | Whether Bluesky still honors the verification. |
| `profile.platform_specific.bluesky.verified_by[].created_at` | `string` (date-time) or `null` | When the verifier made it, RFC 3339 UTC. |
| `profile.platform_specific.bluesky.pinned_post_id` | `string` or `null` | The at:// ID of the post the account pinned, which bluesky.post takes as url; null when it pinned none, or when the public page answered instead of the AppView. |
| `profile.platform_specific.bluesky.labels` | `string[]` | Moderation and self labels on the account (bot, porn, spam, …), as Bluesky names them; \[\] when none (listed in unknown_fields when the source cannot see them). |
| `profile.platform_specific.bluesky.list_count` | `integer` or `null` | How many lists the account made; null when the public page answered instead of the AppView. |
| `profile.platform_specific.bluesky.feed_count` | `integer` or `null` | How many custom feeds the account made; null when the public page answered instead of the AppView. |
| `profile.platform_specific.bluesky.starter_pack_count` | `integer` or `null` | How many starter packs the account made; null when the public page answered instead of the AppView. |
| `profile.platform_specific.bluesky.is_labeler` | `boolean` or `null` | True when the account runs a moderation service that labels other accounts and posts. Null when the public page answered instead of the AppView. |
| `profile.platform_specific.soundcloud` | `object` or `null` | A SoundCloud account's own fields. |
| `profile.platform_specific.soundcloud.full_name` | `string` or `null` | The name the account gives besides its display name; null when empty. |
| `profile.platform_specific.soundcloud.first_name` | `string` or `null` | The first name the account gives; null when empty. |
| `profile.platform_specific.soundcloud.last_name` | `string` or `null` | The last name the account gives; null when empty. |
| `profile.platform_specific.soundcloud.playlist_count` | `integer` or `null` | Playlists and albums, as SoundCloud counts them on the account's page. The public list can hold fewer. |
| `profile.platform_specific.soundcloud.liked_track_count` | `integer` or `null` | Tracks the account has liked (given, not received), as SoundCloud counts them. The public list can hold fewer. |
| `profile.platform_specific.soundcloud.liked_playlist_count` | `integer` or `null` | Playlists the account has liked (given, not received). |
| `profile.platform_specific.soundcloud.repost_count` | `integer` or `null` | Tracks and playlists the account has reposted, when SoundCloud says; it usually leaves this empty for a logged-out reader: null. |
| `profile.platform_specific.soundcloud.is_pro` | `boolean` or `null` | SoundCloud's Pro badge. |
| `profile.platform_specific.soundcloud.is_pro_unlimited` | `boolean` or `null` | SoundCloud's Pro Unlimited badge. |
| `profile.platform_specific.soundcloud.is_creator_mid_tier` | `boolean` or `null` | SoundCloud's mid-tier creator badge. |
| `profile.platform_specific.soundcloud.plan` | `string` or `null` | The account's creator plan, as SoundCloud names it (free, creator-pro-unlimited, …). New values may be added. |
| `profile.platform_specific.soundcloud.last_modified_at` | `string` (date-time) or `null` | When the account last changed its profile, RFC 3339 UTC. |
| `profile.platform_specific.soundcloud.social_links` | `object[]` | The links the account lists on its profile, in its order, with SoundCloud's name for each and the email addresses among them; \[\] when none (listed in unknown_fields when the source cannot see them). |
| `profile.platform_specific.soundcloud.social_links[].network` | `string` | SoundCloud's name for the service, lowercase: personal, instagram, facebook, twitter, youtube, soundcloud, spotify, email, support:patreon, other, … New values may be added. |
| `profile.platform_specific.soundcloud.social_links[].username` | `string` or `null` | The account on that service, as SoundCloud reads it from the link; null when it has none. |
| `profile.platform_specific.soundcloud.social_links[].title` | `string` or `null` | The label the account gave the link; null when it gave none. |
| `profile.platform_specific.soundcloud.social_links[].url` | `string` (uri) | The link as the account wrote it (https:// added when it had no scheme); an email address as a mailto: link. |
| `profile.platform_specific.snapchat` | `object` or `null` | A Snapchat account's own fields. |
| `profile.platform_specific.snapchat.user_id` | `string` or `null` | The account's user ID, in the form comments name their authors with no public profile; id is its public profile's. |
| `profile.platform_specific.snapchat.snapcode_url` | `string` (uri) or `null` | Image of the account's Snapcode, the scannable code that adds it. |
| `profile.platform_specific.snapchat.category_id` | `string` or `null` | The category the account chose, as the platform identifies it (public-profile-category-v3-people). |
| `profile.platform_specific.snapchat.subcategory_id` | `string` or `null` | The subcategory the account chose, as the platform identifies it (public-profile-subcategory-v3-creator). |
| `profile.platform_specific.snapchat.is_story_live` | `boolean` or `null` | True when the Story the profile page plays holds a Snap under 24 hours old, false when it plays none or only older ones; null when unknown (no public profile, or Snaps that state no time). |
| `profile.platform_specific.snapchat.is_spotlights_public` | `boolean` or `null` | The page says the account has public Spotlights. |
| `profile.platform_specific.snapchat.is_highlights_shown` | `boolean` or `null` | True when the profile shows saved Stories (story highlights), false when it shows none; null when unknown (no public profile). |
| `profile.platform_specific.snapchat.last_updated_at` | `string` (date-time) or `null` | When the public profile last changed, as its page says, RFC 3339 UTC. |
| `profile.platform_specific.snapchat.story` | `object` or `null` | The Story the profile page plays, its recent public Snaps, which can be days old (see is_story_live); null when it plays none. |
| `profile.platform_specific.snapchat.story.title` | `string` or `null` | The Story's title; null when it has none. |
| `profile.platform_specific.snapchat.story.thumbnail_url` | `string` (uri) or `null` | The Story's cover image. |
| `profile.platform_specific.snapchat.story.snaps` | `object[]` | The Story's Snaps, in the order it plays them. |
| `profile.platform_specific.snapchat.story.snaps[].id` | `string` or `null` | The Snap's ID; null on a saved Story's Snaps, where the platform names none. |
| `profile.platform_specific.snapchat.story.snaps[].type` | `string` or `null` | image or video; null when the platform names another kind. New values may be added.<br>One of `image`, `video` |
| `profile.platform_specific.snapchat.story.snaps[].media_url` | `string` (uri) or `null` | The Snap's image or video file. |
| `profile.platform_specific.snapchat.story.snaps[].preview_url` | `string` (uri) or `null` | A preview image of the Snap. |
| `profile.platform_specific.snapchat.story.snaps[].posted_at` | `string` (date-time) or `null` | When it was posted, RFC 3339 UTC. |
| `profile.platform_specific.snapchat.highlights` | `object[]` | The Stories the account saved to its profile, with their Snaps: the first page of them, as the profile page holds it; \[\] if none. |
| `profile.platform_specific.snapchat.highlights[].id` | `string` | The saved Story's ID. |
| `profile.platform_specific.snapchat.highlights[].title` | `string` or `null` | The title the account gave it; null when none. |
| `profile.platform_specific.snapchat.highlights[].thumbnail_url` | `string` (uri) or `null` | Its cover image. |
| `profile.platform_specific.snapchat.highlights[].url` | `string` (uri) | The saved Story's link. |
| `profile.platform_specific.snapchat.highlights[].snaps` | `object[]` | Its Snaps, in the order it plays them. |
| `profile.platform_specific.snapchat.highlights[].snaps[].id` | `string` or `null` | The Snap's ID; null on a saved Story's Snaps, where the platform names none. |
| `profile.platform_specific.snapchat.highlights[].snaps[].type` | `string` or `null` | image or video; null when the platform names another kind. New values may be added.<br>One of `image`, `video` |
| `profile.platform_specific.snapchat.highlights[].snaps[].media_url` | `string` (uri) or `null` | The Snap's image or video file. |
| `profile.platform_specific.snapchat.highlights[].snaps[].preview_url` | `string` (uri) or `null` | A preview image of the Snap. |
| `profile.platform_specific.snapchat.highlights[].snaps[].posted_at` | `string` (date-time) or `null` | When it was posted, RFC 3339 UTC. |
| `profile.platform_specific.snapchat.spotlights` | `object[]` | The Spotlights the profile page shows, as it orders them: a sample, not the whole list; \[\] if none. |
| `profile.platform_specific.snapchat.spotlights[].id` | `string` | The Spotlight's ID: what the Spotlight and comments endpoints take. |
| `profile.platform_specific.snapchat.spotlights[].url` | `string` (uri) | The Spotlight's link. |
| `profile.platform_specific.snapchat.spotlights[].caption` | `string` or `null` | The caption its poster wrote; null when none. |
| `profile.platform_specific.snapchat.spotlights[].thumbnail_url` | `string` (uri) or `null` | Its cover image. |
| `profile.platform_specific.snapchat.spotlights[].type` | `string` or `null` | image or video; null when the platform names another kind. New values may be added.<br>One of `image`, `video` |
| `profile.platform_specific.snapchat.spotlights[].media_url` | `string` (uri) or `null` | Its video or image file. |
| `profile.platform_specific.snapchat.spotlights[].published_at` | `string` (date-time) or `null` | When it was posted, RFC 3339 UTC. |
| `profile.platform_specific.snapchat.spotlights[].duration_ms` | `integer` or `null` | Its length in milliseconds. |
| `profile.platform_specific.snapchat.spotlights[].width` | `integer` or `null` | Width in pixels. |
| `profile.platform_specific.snapchat.spotlights[].height` | `integer` or `null` | Height in pixels. |
| `profile.platform_specific.snapchat.spotlights[].metrics` | `object` | Counts at fetch time; null = hidden or not exposed, 0 = zero. |
| `profile.platform_specific.snapchat.spotlights[].metrics.view_count` | `integer` or `null` | Views. |
| `profile.platform_specific.snapchat.spotlights[].metrics.like_count` | `integer` or `null` | Likes (boosts, in the platform's data). |
| `profile.platform_specific.snapchat.spotlights[].metrics.comment_count` | `integer` or `null` | Comments. |
| `profile.platform_specific.snapchat.spotlights[].metrics.share_count` | `integer` or `null` | Shares. |
| `profile.platform_specific.snapchat.spotlights[].metrics.recommend_count` | `integer` or `null` | How many people recommended it. |
| `profile.platform_specific.snapchat.related_accounts` | `object[]` | Accounts the page recommends beside this one; \[\] if none. |
| `profile.platform_specific.snapchat.related_accounts[].id` | `string` or `null` | Platform-native account ID; null when only the handle is known. |
| `profile.platform_specific.snapchat.related_accounts[].username` | `string` or `null` | Handle without the @; null when the account has none. |
| `profile.platform_specific.snapchat.related_accounts[].display_name` | `string` or `null` | Display name shown on the profile. |
| `profile.platform_specific.snapchat.related_accounts[].url` | `string` (uri) or `null` | Canonical profile URL. |
| `profile.platform_specific.snapchat.related_accounts[].avatar_url` | `string` (uri) or `null` | Profile picture URL. Platform CDN URLs can expire within hours. |
| `profile.platform_specific.snapchat.related_accounts[].is_verified` | `boolean` or `null` | Platform verification badge; null where the platform has no badge. |
| `profile.platform_specific.kwai` | `object` or `null` | A Kwai account's own fields. |
| `profile.platform_specific.kwai.user_id` | `string` or `null` | The account's numeric ID, as a string. Accepted as input like id. |
| `profile.platform_specific.kwai.gender` | `string` or `null` | The gender the account states: M or F. Null when it states none. |
| `profile.platform_specific.kwai.verified_description` | `string` or `null` | The label Kwai gives the account's badge, in the account's language (Criador(a) de Comédia, Conta Oficial). Null without a badge. |
| `profile.platform_specific.kwai.verified_type` | `integer` or `null` | Kwai's number for the kind of badge: 2 on creators and 3 on the official account in the accounts checked. Null without a badge. |
| `profile.platform_specific.kwai.private_post_count` | `integer` or `null` | Posts the account keeps to itself, as Kwai counts them. |
| `profile.platform_specific.kwai.likes_given_count` | `integer` or `null` | Likes the account has given. Null when it hides them. |
| `profile.platform_specific.kwai.playlist_count` | `integer` or `null` | Playlists the account has. Null when Kwai states none, which is also how it writes an account without any, and on an answer from Kwai's API. |
| `profile.platform_specific.kwai.is_banned` | `boolean` or `null` | True when Kwai writes the account as banned, and it gives no reason. Kwai then blanks the account's name, picture, bio and badge, so is_verified is null, and lists no posts whatever metrics.post_count says. |
| `profile.platform_specific.twitch` | `object` or `null` | A Twitch channel's own fields. |
| `profile.platform_specific.twitch.is_live` | `boolean` or `null` | True while the channel is on air, false when it is not. |
| `profile.platform_specific.twitch.concurrent_viewer_count` | `integer` or `null` | People watching now; null when off air. |
| `profile.platform_specific.twitch.is_affiliate` | `boolean` or `null` | True for a Twitch Affiliate, the program below Partner. Partners are is_verified: the badge Twitch draws is theirs. |
| `profile.platform_specific.twitch.stream` | `object` or `null` | The broadcast on air now; null when off air. |
| `profile.platform_specific.twitch.stream.id` | `string` or `null` | Twitch's ID of the broadcast, which last_broadcast.id and a clip's broadcast_id also write. |
| `profile.platform_specific.twitch.stream.title` | `string` or `null` | The broadcast's title. |
| `profile.platform_specific.twitch.stream.type` | `string` or `null` | Twitch's word for what is on air (live). |
| `profile.platform_specific.twitch.stream.started_at` | `string` (date-time) or `null` | When it went on air, RFC 3339 UTC. |
| `profile.platform_specific.twitch.stream.tags` | `string[]` | The tags the channel set, as shown; \[\] when none. |
| `profile.platform_specific.twitch.stream.category` | `object` or `null` | The category it is filed under. |
| `profile.platform_specific.twitch.stream.category.id` | `string` or `null` | Twitch's ID of the category. |
| `profile.platform_specific.twitch.stream.category.name` | `string` or `null` | Its name (Just Chatting). |
| `profile.platform_specific.twitch.stream.category.slug` | `string` or `null` | Its name in links (twitch.tv/directory/category/just-chatting). |
| `profile.platform_specific.twitch.stream.category.box_art_url` | `string` (uri) or `null` | The category's cover image. |
| `profile.platform_specific.twitch.stream.thumbnail_url` | `string` (uri) or `null` | A preview frame of the broadcast, renewed while it airs. |
| `profile.platform_specific.twitch.last_broadcast` | `object` or `null` | The channel's latest broadcast, on air or over; null when it has never streamed. |
| `profile.platform_specific.twitch.last_broadcast.id` | `string` or `null` | Twitch's ID of the broadcast. |
| `profile.platform_specific.twitch.last_broadcast.title` | `string` or `null` | The title it aired under. |
| `profile.platform_specific.twitch.last_broadcast.started_at` | `string` (date-time) or `null` | When it went on air, RFC 3339 UTC. |
| `profile.platform_specific.twitch.last_broadcast.category` | `object` or `null` | The category it was last filed under. |
| `profile.platform_specific.twitch.last_broadcast.category.id` | `string` or `null` | Twitch's ID of the category. |
| `profile.platform_specific.twitch.last_broadcast.category.name` | `string` or `null` | Its name (Just Chatting). |
| `profile.platform_specific.twitch.last_broadcast.category.slug` | `string` or `null` | Its name in links (twitch.tv/directory/category/just-chatting). |
| `profile.platform_specific.twitch.last_broadcast.category.box_art_url` | `string` (uri) or `null` | The category's cover image. |
| `profile.platform_specific.twitch.channel_title` | `string` or `null` | The title the channel has set for its stream, which stays while it is off air. |
| `profile.platform_specific.twitch.category` | `object` or `null` | The category the channel has set, whose name is category. |
| `profile.platform_specific.twitch.category.id` | `string` or `null` | Twitch's ID of the category. |
| `profile.platform_specific.twitch.category.name` | `string` or `null` | Its name (Just Chatting). |
| `profile.platform_specific.twitch.category.slug` | `string` or `null` | Its name in links (twitch.tv/directory/category/just-chatting). |
| `profile.platform_specific.twitch.category.box_art_url` | `string` (uri) or `null` | The category's cover image. |
| `profile.platform_specific.twitch.language` | `string` or `null` | The broadcast language the channel has set, lowercase (en). |
| `profile.platform_specific.twitch.is_mature` | `boolean` or `null` | True when the channel marks itself as for mature audiences. |
| `profile.platform_specific.twitch.primary_color_hex` | `string` or `null` | The channel's accent color as hex digits without the #. |
| `profile.platform_specific.twitch.offline_image_url` | `string` (uri) or `null` | The image the player shows while the channel is off air. |
| `profile.platform_specific.twitch.team` | `object` or `null` | The Twitch team the channel lists first; null when it lists none. |
| `profile.platform_specific.twitch.team.id` | `string` or `null` | Twitch's ID of the team. |
| `profile.platform_specific.twitch.team.name` | `string` or `null` | Its name in links. |
| `profile.platform_specific.twitch.team.display_name` | `string` or `null` | Its name as shown. |
| `profile.platform_specific.telegram` | `object` or `null` | A Telegram channel's, group's, user's or bot's own fields. |
| `profile.platform_specific.telegram.account_type` | `string` or `null` | What Telegram's page shows the account to be: channel, group, user or bot. New values may be added.<br>One of `channel`, `group`, `user`, `bot` |
| `profile.platform_specific.telegram.channel_id` | `string` or `null` | Telegram's numeric ID of the channel, which stays when its username changes. Null when the channel's preview shows none (its first message was deleted, or it serves no preview), and for a group, a user or a bot. |
| `profile.platform_specific.telegram.is_preview_available` | `boolean` or `null` | Whether t.me served this channel's public preview (t.me/s/\<name>, where telegram.channel_posts reads its posts) from where this request left: it is off on some channels, and Telegram withholds some only in certain countries. False for a group, a user or a bot. Null when the request for the preview failed (a partial_data warning). |
| `profile.platform_specific.telegram.online_count` | `integer` or `null` | Members online now, on a group that shows it; null otherwise. |
| `profile.platform_specific.telegram.monthly_user_count` | `integer` or `null` | A bot's monthly users, as its page shows them; null otherwise. |
| `profile.platform_specific.telegram.photo_count` | `integer` or `null` | Photos the channel has posted, as its preview's panel shows it; null when it shows none. |
| `profile.platform_specific.telegram.video_count` | `integer` or `null` | Videos the channel has posted, as its preview's panel shows it; null when it shows none. |
| `profile.platform_specific.telegram.link_count` | `integer` or `null` | Links the channel has posted, as its preview's panel shows it; null when it shows none. |
| `profile.platform_specific.telegram.file_count` | `integer` or `null` | Files the channel has posted, as its preview's panel shows it; null when it shows none. |
| `profile.platform_specific.spotify` | `object` or `null` | A Spotify artist's own fields. |
| `profile.platform_specific.spotify.monthly_listener_count` | `integer` or `null` | People who played the artist in the last 28 days, exact, as Spotify counts them. |
| `profile.platform_specific.spotify.world_rank` | `integer` or `null` | The artist's place in Spotify's worldwide ranking by monthly listeners, 1 the top; null for an artist outside the ranking, where Spotify writes 0. |
| `profile.platform_specific.spotify.popularity` | `integer` or `null` | Spotify's popularity score of the artist, 0 to 100. |
| `profile.platform_specific.spotify.is_registered` | `boolean` or `null` | True when Spotify says the artist's profile is registered with it, which is_verified's badge need not be. |
| `profile.platform_specific.spotify.biography_type` | `string` or `null` | Spotify's word for the kind of text bio is (autobiography, biography, …), lowercase. New values may be added. |
| `profile.platform_specific.spotify.active_decades` | `integer[]` | The decades Spotify lists the artist as active in, as their first year (1980), in its order; \[\] when it lists none. |
| `profile.platform_specific.spotify.gallery_urls` | `string[]` | The pictures in the artist's gallery, each at its largest size; \[\] when it has none. |
| `profile.platform_specific.spotify.top_cities` | `object[]` | The cities with the most monthly listeners, most first, as many as Spotify shows; \[\] when it shows none. |
| `profile.platform_specific.spotify.top_cities[].city` | `string` or `null` | The city's name, as Spotify writes it. |
| `profile.platform_specific.spotify.top_cities[].country_code` | `string` or `null` | The city's country, an ISO 3166-1 alpha-2 code. |
| `profile.platform_specific.spotify.top_cities[].region` | `string` or `null` | The region of the country, as Spotify codes it (ENG, CMX). |
| `profile.platform_specific.spotify.top_cities[].listener_count` | `integer` or `null` | Monthly listeners in the city, exact. |
| `profile.platform_specific.spotify.top_tracks` | `object[]` | The tracks the artist's page lists as popular, in its order; \[\] when it lists none. spotify.track answers each in full. |
| `profile.platform_specific.spotify.top_tracks[].id` | `string` | The track's base62 ID, what spotify.track takes. |
| `profile.platform_specific.spotify.top_tracks[].url` | `string` (uri) | The track's page. |
| `profile.platform_specific.spotify.top_tracks[].title` | `string` or `null` | The track's title. |
| `profile.platform_specific.spotify.top_tracks[].duration_ms` | `integer` or `null` | Exact length in milliseconds; null where the list states none. |
| `profile.platform_specific.spotify.top_tracks[].artist_name` | `string` or `null` | Who Spotify credits for the track, as one display string; null when the source names nobody. |
| `profile.platform_specific.spotify.top_tracks[].play_count` | `integer` or `null` | Plays, as Spotify counts them; null where the list states none or writes 0, which is no count. |
| `profile.platform_specific.spotify.top_tracks[].is_explicit` | `boolean` or `null` | True when Spotify marks the track explicit. |
| `profile.platform_specific.spotify.top_tracks[].disc_number` | `integer` or `null` | The disc of its release it is on; null where the list states none. |
| `profile.platform_specific.spotify.top_tracks[].album_id` | `string` or `null` | The ID of the release it is on, what spotify.album takes. |
| `profile.platform_specific.spotify.top_tracks[].cover_url` | `string` (uri) or `null` | The release's cover at its largest size. |
| `profile.platform_specific.spotify.top_tracks[].artists` | `object[]` | The accounts of the track's credited artists, in Spotify's order; \[\] when the list names none (in unknown_fields when the source cannot see them). |
| `profile.platform_specific.spotify.top_tracks[].artists[].id` | `string` or `null` | Platform-native account ID; null when only the handle is known. |
| `profile.platform_specific.spotify.top_tracks[].artists[].username` | `string` or `null` | Handle without the @; null when the account has none. |
| `profile.platform_specific.spotify.top_tracks[].artists[].display_name` | `string` or `null` | Display name shown on the profile. |
| `profile.platform_specific.spotify.top_tracks[].artists[].url` | `string` (uri) or `null` | Canonical profile URL. |
| `profile.platform_specific.spotify.top_tracks[].artists[].avatar_url` | `string` (uri) or `null` | Profile picture URL. Platform CDN URLs can expire within hours. |
| `profile.platform_specific.spotify.top_tracks[].artists[].is_verified` | `boolean` or `null` | Platform verification badge; null where the platform has no badge. |
| `profile.platform_specific.spotify.music_videos` | `object[]` | The artist's music videos, as many as the page holds; \[\] when it holds none. Spotify states no length or plays for them here. |
| `profile.platform_specific.spotify.music_videos[].id` | `string` | The track's base62 ID, what spotify.track takes. |
| `profile.platform_specific.spotify.music_videos[].url` | `string` (uri) | The track's page. |
| `profile.platform_specific.spotify.music_videos[].title` | `string` or `null` | The track's title. |
| `profile.platform_specific.spotify.music_videos[].duration_ms` | `integer` or `null` | Exact length in milliseconds; null where the list states none. |
| `profile.platform_specific.spotify.music_videos[].artist_name` | `string` or `null` | Who Spotify credits for the track, as one display string; null when the source names nobody. |
| `profile.platform_specific.spotify.music_videos[].play_count` | `integer` or `null` | Plays, as Spotify counts them; null where the list states none or writes 0, which is no count. |
| `profile.platform_specific.spotify.music_videos[].is_explicit` | `boolean` or `null` | True when Spotify marks the track explicit. |
| `profile.platform_specific.spotify.music_videos[].disc_number` | `integer` or `null` | The disc of its release it is on; null where the list states none. |
| `profile.platform_specific.spotify.music_videos[].album_id` | `string` or `null` | The ID of the release it is on, what spotify.album takes. |
| `profile.platform_specific.spotify.music_videos[].cover_url` | `string` (uri) or `null` | The release's cover at its largest size. |
| `profile.platform_specific.spotify.music_videos[].artists` | `object[]` | The accounts of the track's credited artists, in Spotify's order; \[\] when the list names none (in unknown_fields when the source cannot see them). |
| `profile.platform_specific.spotify.music_videos[].artists[].id` | `string` or `null` | Platform-native account ID; null when only the handle is known. |
| `profile.platform_specific.spotify.music_videos[].artists[].username` | `string` or `null` | Handle without the @; null when the account has none. |
| `profile.platform_specific.spotify.music_videos[].artists[].display_name` | `string` or `null` | Display name shown on the profile. |
| `profile.platform_specific.spotify.music_videos[].artists[].url` | `string` (uri) or `null` | Canonical profile URL. |
| `profile.platform_specific.spotify.music_videos[].artists[].avatar_url` | `string` (uri) or `null` | Profile picture URL. Platform CDN URLs can expire within hours. |
| `profile.platform_specific.spotify.music_videos[].artists[].is_verified` | `boolean` or `null` | Platform verification badge; null where the platform has no badge. |
| `profile.platform_specific.spotify.music_video_count` | `integer` or `null` | How many music videos Spotify counts for the artist, which music_videos can hold fewer of. |
| `profile.platform_specific.spotify.latest_release` | `object` or `null` | The artist's latest release; null when it has none or Spotify does not name one. |
| `profile.platform_specific.spotify.latest_release.id` | `string` | The release's base62 ID, what spotify.album takes. |
| `profile.platform_specific.spotify.latest_release.url` | `string` (uri) | The release's page. |
| `profile.platform_specific.spotify.latest_release.title` | `string` or `null` | The release's title, as Spotify shows it. |
| `profile.platform_specific.spotify.latest_release.type` | `string` or `null` | What kind of release it is, as Spotify says: album, single, ep or compilation. New values may be added.<br>One of `album`, `single`, `ep`, `compilation` |
| `profile.platform_specific.spotify.latest_release.released_at` | `string` (date-time) or `null` | Its release date at midnight UTC: Spotify states no time, and release_date_precision says when it states only a month or a year (the first of it, then). |
| `profile.platform_specific.spotify.latest_release.release_date_precision` | `string` or `null` | How much of released_at Spotify states: day, month or year. New values may be added.<br>One of `day`, `month`, `year` |
| `profile.platform_specific.spotify.latest_release.cover_url` | `string` (uri) or `null` | The cover at its largest size. |
| `profile.platform_specific.spotify.latest_release.track_count` | `integer` or `null` | How many tracks the release has; null where the list does not say. |
| `profile.platform_specific.spotify.latest_release.label` | `string` or `null` | The record label, as Spotify writes it; null where the list does not say. |
| `profile.platform_specific.spotify.latest_release.artists` | `object[]` | The release's credited artists where the list names them (appears_on); \[\] elsewhere, where they are the artist's own. |
| `profile.platform_specific.spotify.latest_release.artists[].id` | `string` or `null` | Platform-native account ID; null when only the handle is known. |
| `profile.platform_specific.spotify.latest_release.artists[].username` | `string` or `null` | Handle without the @; null when the account has none. |
| `profile.platform_specific.spotify.latest_release.artists[].display_name` | `string` or `null` | Display name shown on the profile. |
| `profile.platform_specific.spotify.latest_release.artists[].url` | `string` (uri) or `null` | Canonical profile URL. |
| `profile.platform_specific.spotify.latest_release.artists[].avatar_url` | `string` (uri) or `null` | Profile picture URL. Platform CDN URLs can expire within hours. |
| `profile.platform_specific.spotify.latest_release.artists[].is_verified` | `boolean` or `null` | Platform verification badge; null where the platform has no badge. |
| `profile.platform_specific.spotify.popular_releases` | `object[]` | The artist's popular releases, as the page ranks them and as many as it shows; \[\] when it shows none. |
| `profile.platform_specific.spotify.popular_releases[].id` | `string` | The release's base62 ID, what spotify.album takes. |
| `profile.platform_specific.spotify.popular_releases[].url` | `string` (uri) | The release's page. |
| `profile.platform_specific.spotify.popular_releases[].title` | `string` or `null` | The release's title, as Spotify shows it. |
| `profile.platform_specific.spotify.popular_releases[].type` | `string` or `null` | What kind of release it is, as Spotify says: album, single, ep or compilation. New values may be added.<br>One of `album`, `single`, `ep`, `compilation` |
| `profile.platform_specific.spotify.popular_releases[].released_at` | `string` (date-time) or `null` | Its release date at midnight UTC: Spotify states no time, and release_date_precision says when it states only a month or a year (the first of it, then). |
| `profile.platform_specific.spotify.popular_releases[].release_date_precision` | `string` or `null` | How much of released_at Spotify states: day, month or year. New values may be added.<br>One of `day`, `month`, `year` |
| `profile.platform_specific.spotify.popular_releases[].cover_url` | `string` (uri) or `null` | The cover at its largest size. |
| `profile.platform_specific.spotify.popular_releases[].track_count` | `integer` or `null` | How many tracks the release has; null where the list does not say. |
| `profile.platform_specific.spotify.popular_releases[].label` | `string` or `null` | The record label, as Spotify writes it; null where the list does not say. |
| `profile.platform_specific.spotify.popular_releases[].artists` | `object[]` | The release's credited artists where the list names them (appears_on); \[\] elsewhere, where they are the artist's own. |
| `profile.platform_specific.spotify.popular_releases[].artists[].id` | `string` or `null` | Platform-native account ID; null when only the handle is known. |
| `profile.platform_specific.spotify.popular_releases[].artists[].username` | `string` or `null` | Handle without the @; null when the account has none. |
| `profile.platform_specific.spotify.popular_releases[].artists[].display_name` | `string` or `null` | Display name shown on the profile. |
| `profile.platform_specific.spotify.popular_releases[].artists[].url` | `string` (uri) or `null` | Canonical profile URL. |
| `profile.platform_specific.spotify.popular_releases[].artists[].avatar_url` | `string` (uri) or `null` | Profile picture URL. Platform CDN URLs can expire within hours. |
| `profile.platform_specific.spotify.popular_releases[].artists[].is_verified` | `boolean` or `null` | Platform verification badge; null where the platform has no badge. |
| `profile.platform_specific.spotify.popular_release_count` | `integer` or `null` | How many popular releases Spotify counts, which popular_releases can hold fewer of. |
| `profile.platform_specific.spotify.albums` | `object` or `null` | The artist's albums, newest first. |
| `profile.platform_specific.spotify.albums.total_count` | `integer` or `null` | How many releases Spotify counts in the section, which items can hold fewer of. |
| `profile.platform_specific.spotify.albums.items` | `object[]` | The releases the artist's page shows; \[\] when it shows none. |
| `profile.platform_specific.spotify.albums.items[].id` | `string` | The release's base62 ID, what spotify.album takes. |
| `profile.platform_specific.spotify.albums.items[].url` | `string` (uri) | The release's page. |
| `profile.platform_specific.spotify.albums.items[].title` | `string` or `null` | The release's title, as Spotify shows it. |
| `profile.platform_specific.spotify.albums.items[].type` | `string` or `null` | What kind of release it is, as Spotify says: album, single, ep or compilation. New values may be added.<br>One of `album`, `single`, `ep`, `compilation` |
| `profile.platform_specific.spotify.albums.items[].released_at` | `string` (date-time) or `null` | Its release date at midnight UTC: Spotify states no time, and release_date_precision says when it states only a month or a year (the first of it, then). |
| `profile.platform_specific.spotify.albums.items[].release_date_precision` | `string` or `null` | How much of released_at Spotify states: day, month or year. New values may be added.<br>One of `day`, `month`, `year` |
| `profile.platform_specific.spotify.albums.items[].cover_url` | `string` (uri) or `null` | The cover at its largest size. |
| `profile.platform_specific.spotify.albums.items[].track_count` | `integer` or `null` | How many tracks the release has; null where the list does not say. |
| `profile.platform_specific.spotify.albums.items[].label` | `string` or `null` | The record label, as Spotify writes it; null where the list does not say. |
| `profile.platform_specific.spotify.albums.items[].artists` | `object[]` | The release's credited artists where the list names them (appears_on); \[\] elsewhere, where they are the artist's own. |
| `profile.platform_specific.spotify.albums.items[].artists[].id` | `string` or `null` | Platform-native account ID; null when only the handle is known. |
| `profile.platform_specific.spotify.albums.items[].artists[].username` | `string` or `null` | Handle without the @; null when the account has none. |
| `profile.platform_specific.spotify.albums.items[].artists[].display_name` | `string` or `null` | Display name shown on the profile. |
| `profile.platform_specific.spotify.albums.items[].artists[].url` | `string` (uri) or `null` | Canonical profile URL. |
| `profile.platform_specific.spotify.albums.items[].artists[].avatar_url` | `string` (uri) or `null` | Profile picture URL. Platform CDN URLs can expire within hours. |
| `profile.platform_specific.spotify.albums.items[].artists[].is_verified` | `boolean` or `null` | Platform verification badge; null where the platform has no badge. |
| `profile.platform_specific.spotify.albums.ids` | `string[]` | Every release ID Spotify's metadata record lists for the section, those in items included, each what spotify.album takes. One release can have several, its editions for different countries, so this can list more than total_count. \[\] when it lists none, or when the record could not be read (then named in partial_data). |
| `profile.platform_specific.spotify.singles` | `object` or `null` | The artist's singles and EPs, newest first. |
| `profile.platform_specific.spotify.singles.total_count` | `integer` or `null` | How many releases Spotify counts in the section, which items can hold fewer of. |
| `profile.platform_specific.spotify.singles.items` | `object[]` | The releases the artist's page shows; \[\] when it shows none. |
| `profile.platform_specific.spotify.singles.items[].id` | `string` | The release's base62 ID, what spotify.album takes. |
| `profile.platform_specific.spotify.singles.items[].url` | `string` (uri) | The release's page. |
| `profile.platform_specific.spotify.singles.items[].title` | `string` or `null` | The release's title, as Spotify shows it. |
| `profile.platform_specific.spotify.singles.items[].type` | `string` or `null` | What kind of release it is, as Spotify says: album, single, ep or compilation. New values may be added.<br>One of `album`, `single`, `ep`, `compilation` |
| `profile.platform_specific.spotify.singles.items[].released_at` | `string` (date-time) or `null` | Its release date at midnight UTC: Spotify states no time, and release_date_precision says when it states only a month or a year (the first of it, then). |
| `profile.platform_specific.spotify.singles.items[].release_date_precision` | `string` or `null` | How much of released_at Spotify states: day, month or year. New values may be added.<br>One of `day`, `month`, `year` |
| `profile.platform_specific.spotify.singles.items[].cover_url` | `string` (uri) or `null` | The cover at its largest size. |
| `profile.platform_specific.spotify.singles.items[].track_count` | `integer` or `null` | How many tracks the release has; null where the list does not say. |
| `profile.platform_specific.spotify.singles.items[].label` | `string` or `null` | The record label, as Spotify writes it; null where the list does not say. |
| `profile.platform_specific.spotify.singles.items[].artists` | `object[]` | The release's credited artists where the list names them (appears_on); \[\] elsewhere, where they are the artist's own. |
| `profile.platform_specific.spotify.singles.items[].artists[].id` | `string` or `null` | Platform-native account ID; null when only the handle is known. |
| `profile.platform_specific.spotify.singles.items[].artists[].username` | `string` or `null` | Handle without the @; null when the account has none. |
| `profile.platform_specific.spotify.singles.items[].artists[].display_name` | `string` or `null` | Display name shown on the profile. |
| `profile.platform_specific.spotify.singles.items[].artists[].url` | `string` (uri) or `null` | Canonical profile URL. |
| `profile.platform_specific.spotify.singles.items[].artists[].avatar_url` | `string` (uri) or `null` | Profile picture URL. Platform CDN URLs can expire within hours. |
| `profile.platform_specific.spotify.singles.items[].artists[].is_verified` | `boolean` or `null` | Platform verification badge; null where the platform has no badge. |
| `profile.platform_specific.spotify.singles.ids` | `string[]` | Every release ID Spotify's metadata record lists for the section, those in items included, each what spotify.album takes. One release can have several, its editions for different countries, so this can list more than total_count. \[\] when it lists none, or when the record could not be read (then named in partial_data). |
| `profile.platform_specific.spotify.compilations` | `object` or `null` | The artist's compilations, newest first. |
| `profile.platform_specific.spotify.compilations.total_count` | `integer` or `null` | How many releases Spotify counts in the section, which items can hold fewer of. |
| `profile.platform_specific.spotify.compilations.items` | `object[]` | The releases the artist's page shows; \[\] when it shows none. |
| `profile.platform_specific.spotify.compilations.items[].id` | `string` | The release's base62 ID, what spotify.album takes. |
| `profile.platform_specific.spotify.compilations.items[].url` | `string` (uri) | The release's page. |
| `profile.platform_specific.spotify.compilations.items[].title` | `string` or `null` | The release's title, as Spotify shows it. |
| `profile.platform_specific.spotify.compilations.items[].type` | `string` or `null` | What kind of release it is, as Spotify says: album, single, ep or compilation. New values may be added.<br>One of `album`, `single`, `ep`, `compilation` |
| `profile.platform_specific.spotify.compilations.items[].released_at` | `string` (date-time) or `null` | Its release date at midnight UTC: Spotify states no time, and release_date_precision says when it states only a month or a year (the first of it, then). |
| `profile.platform_specific.spotify.compilations.items[].release_date_precision` | `string` or `null` | How much of released_at Spotify states: day, month or year. New values may be added.<br>One of `day`, `month`, `year` |
| `profile.platform_specific.spotify.compilations.items[].cover_url` | `string` (uri) or `null` | The cover at its largest size. |
| `profile.platform_specific.spotify.compilations.items[].track_count` | `integer` or `null` | How many tracks the release has; null where the list does not say. |
| `profile.platform_specific.spotify.compilations.items[].label` | `string` or `null` | The record label, as Spotify writes it; null where the list does not say. |
| `profile.platform_specific.spotify.compilations.items[].artists` | `object[]` | The release's credited artists where the list names them (appears_on); \[\] elsewhere, where they are the artist's own. |
| `profile.platform_specific.spotify.compilations.items[].artists[].id` | `string` or `null` | Platform-native account ID; null when only the handle is known. |
| `profile.platform_specific.spotify.compilations.items[].artists[].username` | `string` or `null` | Handle without the @; null when the account has none. |
| `profile.platform_specific.spotify.compilations.items[].artists[].display_name` | `string` or `null` | Display name shown on the profile. |
| `profile.platform_specific.spotify.compilations.items[].artists[].url` | `string` (uri) or `null` | Canonical profile URL. |
| `profile.platform_specific.spotify.compilations.items[].artists[].avatar_url` | `string` (uri) or `null` | Profile picture URL. Platform CDN URLs can expire within hours. |
| `profile.platform_specific.spotify.compilations.items[].artists[].is_verified` | `boolean` or `null` | Platform verification badge; null where the platform has no badge. |
| `profile.platform_specific.spotify.compilations.ids` | `string[]` | Every release ID Spotify's metadata record lists for the section, those in items included, each what spotify.album takes. One release can have several, its editions for different countries, so this can list more than total_count. \[\] when it lists none, or when the record could not be read (then named in partial_data). |
| `profile.platform_specific.spotify.appears_on` | `object` or `null` | Other artists' releases the artist appears on. |
| `profile.platform_specific.spotify.appears_on.total_count` | `integer` or `null` | How many releases Spotify counts in the section, which items can hold fewer of. |
| `profile.platform_specific.spotify.appears_on.items` | `object[]` | The releases the artist's page shows; \[\] when it shows none. |
| `profile.platform_specific.spotify.appears_on.items[].id` | `string` | The release's base62 ID, what spotify.album takes. |
| `profile.platform_specific.spotify.appears_on.items[].url` | `string` (uri) | The release's page. |
| `profile.platform_specific.spotify.appears_on.items[].title` | `string` or `null` | The release's title, as Spotify shows it. |
| `profile.platform_specific.spotify.appears_on.items[].type` | `string` or `null` | What kind of release it is, as Spotify says: album, single, ep or compilation. New values may be added.<br>One of `album`, `single`, `ep`, `compilation` |
| `profile.platform_specific.spotify.appears_on.items[].released_at` | `string` (date-time) or `null` | Its release date at midnight UTC: Spotify states no time, and release_date_precision says when it states only a month or a year (the first of it, then). |
| `profile.platform_specific.spotify.appears_on.items[].release_date_precision` | `string` or `null` | How much of released_at Spotify states: day, month or year. New values may be added.<br>One of `day`, `month`, `year` |
| `profile.platform_specific.spotify.appears_on.items[].cover_url` | `string` (uri) or `null` | The cover at its largest size. |
| `profile.platform_specific.spotify.appears_on.items[].track_count` | `integer` or `null` | How many tracks the release has; null where the list does not say. |
| `profile.platform_specific.spotify.appears_on.items[].label` | `string` or `null` | The record label, as Spotify writes it; null where the list does not say. |
| `profile.platform_specific.spotify.appears_on.items[].artists` | `object[]` | The release's credited artists where the list names them (appears_on); \[\] elsewhere, where they are the artist's own. |
| `profile.platform_specific.spotify.appears_on.items[].artists[].id` | `string` or `null` | Platform-native account ID; null when only the handle is known. |
| `profile.platform_specific.spotify.appears_on.items[].artists[].username` | `string` or `null` | Handle without the @; null when the account has none. |
| `profile.platform_specific.spotify.appears_on.items[].artists[].display_name` | `string` or `null` | Display name shown on the profile. |
| `profile.platform_specific.spotify.appears_on.items[].artists[].url` | `string` (uri) or `null` | Canonical profile URL. |
| `profile.platform_specific.spotify.appears_on.items[].artists[].avatar_url` | `string` (uri) or `null` | Profile picture URL. Platform CDN URLs can expire within hours. |
| `profile.platform_specific.spotify.appears_on.items[].artists[].is_verified` | `boolean` or `null` | Platform verification badge; null where the platform has no badge. |
| `profile.platform_specific.spotify.appears_on.ids` | `string[]` | Every release ID Spotify's metadata record lists for the section, those in items included, each what spotify.album takes. One release can have several, its editions for different countries, so this can list more than total_count. \[\] when it lists none, or when the record could not be read (then named in partial_data). |
| `profile.platform_specific.spotify.related_artists` | `object[]` | Artists fans of this one also like, as many as the page shows; \[\] when it shows none. |
| `profile.platform_specific.spotify.related_artists[].id` | `string` or `null` | Platform-native account ID; null when only the handle is known. |
| `profile.platform_specific.spotify.related_artists[].username` | `string` or `null` | Handle without the @; null when the account has none. |
| `profile.platform_specific.spotify.related_artists[].display_name` | `string` or `null` | Display name shown on the profile. |
| `profile.platform_specific.spotify.related_artists[].url` | `string` (uri) or `null` | Canonical profile URL. |
| `profile.platform_specific.spotify.related_artists[].avatar_url` | `string` (uri) or `null` | Profile picture URL. Platform CDN URLs can expire within hours. |
| `profile.platform_specific.spotify.related_artists[].is_verified` | `boolean` or `null` | Platform verification badge; null where the platform has no badge. |
| `profile.platform_specific.spotify.related_artist_count` | `integer` or `null` | How many related artists Spotify counts, which related_artists can hold fewer of. |
| `profile.platform_specific.spotify.concerts` | `object[]` | The artist's upcoming concerts Spotify lists, as many as the page shows, which can depend on the country SocialTap asked from; \[\] when it lists none. |
| `profile.platform_specific.spotify.concerts[].id` | `string` | Spotify's ID of the concert. |
| `profile.platform_specific.spotify.concerts[].url` | `string` (uri) | The concert's page. |
| `profile.platform_specific.spotify.concerts[].title` | `string` or `null` | The concert's title, as Spotify shows it. |
| `profile.platform_specific.spotify.concerts[].venue` | `string` or `null` | The venue's name. |
| `profile.platform_specific.spotify.concerts[].city` | `string` or `null` | The venue's city. |
| `profile.platform_specific.spotify.concerts[].starts_at` | `string` (date-time) or `null` | When it starts, RFC 3339 UTC. |
| `profile.platform_specific.spotify.concerts[].is_festival` | `boolean` or `null` | True for a festival. |
| `profile.platform_specific.spotify.concert_count` | `integer` or `null` | How many concerts Spotify counts for the artist, which concerts can hold fewer of. |
| `profile.platform_specific.spotify.playlists` | `object[]` | The playlists the artist shows on its page; \[\] when it shows none. |
| `profile.platform_specific.spotify.playlists[].id` | `string` | The playlist's base62 ID, what spotify.playlist takes. |
| `profile.platform_specific.spotify.playlists[].url` | `string` (uri) | The playlist's page. |
| `profile.platform_specific.spotify.playlists[].title` | `string` or `null` | The playlist's name. |
| `profile.platform_specific.spotify.playlists[].description` | `string` or `null` | The playlist's description as plain text; null when empty. |
| `profile.platform_specific.spotify.playlists[].image_url` | `string` (uri) or `null` | The playlist's picture at its largest size. |
| `profile.platform_specific.spotify.playlists[].owner_name` | `string` or `null` | The name of the account that owns it, as Spotify shows it. |
| `profile.platform_specific.spotify.playlist_count` | `integer` or `null` | How many playlists Spotify counts on the artist's page, which playlists can hold fewer of. |
| `profile.platform_specific.spotify.featured_in` | `object[]` | Playlists Spotify lists as featuring the artist, as many as the page shows; \[\] when it lists none. |
| `profile.platform_specific.spotify.featured_in[].id` | `string` | The playlist's base62 ID, what spotify.playlist takes. |
| `profile.platform_specific.spotify.featured_in[].url` | `string` (uri) | The playlist's page. |
| `profile.platform_specific.spotify.featured_in[].title` | `string` or `null` | The playlist's name. |
| `profile.platform_specific.spotify.featured_in[].description` | `string` or `null` | The playlist's description as plain text; null when empty. |
| `profile.platform_specific.spotify.featured_in[].image_url` | `string` (uri) or `null` | The playlist's picture at its largest size. |
| `profile.platform_specific.spotify.featured_in[].owner_name` | `string` or `null` | The name of the account that owns it, as Spotify shows it. |
| `profile.platform_specific.spotify.featured_in_count` | `integer` or `null` | How many playlists Spotify counts as featuring the artist, which featured_in can hold fewer of. |
| `profile.platform_specific.spotify.discovered_on` | `object[]` | Playlists where listeners discovered the artist, as many as the page shows, which can be fewer than discovered_on_count says: Spotify answers some of them with an error, and they are left out. \[\] when none. |
| `profile.platform_specific.spotify.discovered_on[].id` | `string` | The playlist's base62 ID, what spotify.playlist takes. |
| `profile.platform_specific.spotify.discovered_on[].url` | `string` (uri) | The playlist's page. |
| `profile.platform_specific.spotify.discovered_on[].title` | `string` or `null` | The playlist's name. |
| `profile.platform_specific.spotify.discovered_on[].description` | `string` or `null` | The playlist's description as plain text; null when empty. |
| `profile.platform_specific.spotify.discovered_on[].image_url` | `string` (uri) or `null` | The playlist's picture at its largest size. |
| `profile.platform_specific.spotify.discovered_on[].owner_name` | `string` or `null` | The name of the account that owns it, as Spotify shows it. |
| `profile.platform_specific.spotify.discovered_on_count` | `integer` or `null` | How many playlists Spotify counts as where listeners discovered the artist, at most a hundred on the artists sampled. |
| `profile.platform_specific.spotify.pinned_item` | `object` or `null` | What the artist has pinned to the top of its page; null when nothing. |
| `profile.platform_specific.spotify.pinned_item.type` | `string` or `null` | What is pinned, in Spotify's word, lowercase (album, playlist, concert, …). New values may be added. |
| `profile.platform_specific.spotify.pinned_item.uri` | `string` or `null` | Its Spotify URI (spotify:album:…), of any kind. |
| `profile.platform_specific.spotify.pinned_item.title` | `string` or `null` | Its title. |
| `profile.platform_specific.spotify.pinned_item.subtitle` | `string` or `null` | What the page writes under it, as shown. |
| `profile.platform_specific.spotify.pinned_item.comment` | `string` or `null` | What the artist wrote with it; null when nothing. |
| `profile.platform_specific.spotify.pinned_item.image_url` | `string` (uri) or `null` | Its picture at its largest size. |
| `profile.platform_specific.spotify.ai_persona` | `string` or `null` | Spotify's word when it labels the artist an AI persona (confirmed), lowercase; null when it says nothing, which is nearly always. New values may be added. |
| `profile.platform_specific.applemusic` | `object` or `null` | An Apple Music artist's own fields. |
| `profile.platform_specific.applemusic.storefront` | `string` or `null` | The Apple Music store this answer is from, as a lowercase country code (us, jp): the bio's language, the sections and links differ by store. |
| `profile.platform_specific.applemusic.genres` | `string[]` | The genres Apple files the artist under, as shown in the answer's language, the main one first; \[\] when none. |
| `profile.platform_specific.applemusic.is_group` | `boolean` or `null` | A band or other group; false for one person; null when Apple does not say. |
| `profile.platform_specific.applemusic.born_or_formed` | `string` or `null` | When the artist was born or the group formed, as Apple shows it in the answer's language; null when not shown. |
| `profile.platform_specific.applemusic.editorial_summary` | `string` or `null` | Apple's one-line note on the artist; null when none. |
| `profile.platform_specific.applemusic.amg_artist_id` | `string` or `null` | The artist's ID at AllMusic (AMG), from the lookup API; null on most answers, from the catalog API. |
| `profile.platform_specific.applemusic.top_songs` | `object[]` | The artist's top songs, best first, as many as the page shows at first; \[\] when none. |
| `profile.platform_specific.applemusic.top_songs[].id` | `string` | Apple Music's ID of the item (string). |
| `profile.platform_specific.applemusic.top_songs[].kind` | `string` | What it is. New values may be added.<br>One of `song`, `music_video`, `album`, `playlist`, `artist`, `station` |
| `profile.platform_specific.applemusic.top_songs[].url` | `string` (uri) or `null` | Its page; null when Apple does not state it. |
| `profile.platform_specific.applemusic.top_songs[].title` | `string` or `null` | Its title, or an artist's name. |
| `profile.platform_specific.applemusic.top_songs[].artist_name` | `string` or `null` | Who Apple credits for it, or a playlist's curator; null on an artist. |
| `profile.platform_specific.applemusic.top_songs[].cover_url` | `string` (uri) or `null` | Its artwork at the largest size Apple states; null when none. |
| `profile.platform_specific.applemusic.top_songs[].released_at` | `string` (date-time) or `null` | Its release date, midnight UTC of that date; null when Apple does not state it. |
| `profile.platform_specific.applemusic.top_songs[].track_count` | `integer` or `null` | An album's tracks, null on other kinds. |
| `profile.platform_specific.applemusic.top_songs[].duration_ms` | `integer` or `null` | A song's or music video's length in milliseconds, null on other kinds. |
| `profile.platform_specific.applemusic.top_songs[].is_explicit` | `boolean` or `null` | Apple marks it explicit; null on kinds it does not mark. |
| `profile.platform_specific.applemusic.latest_release` | `object` or `null` | The artist's latest release as Apple shows it; null when none. |
| `profile.platform_specific.applemusic.latest_release.id` | `string` | Apple Music's ID of the item (string). |
| `profile.platform_specific.applemusic.latest_release.kind` | `string` | What it is. New values may be added.<br>One of `song`, `music_video`, `album`, `playlist`, `artist`, `station` |
| `profile.platform_specific.applemusic.latest_release.url` | `string` (uri) or `null` | Its page; null when Apple does not state it. |
| `profile.platform_specific.applemusic.latest_release.title` | `string` or `null` | Its title, or an artist's name. |
| `profile.platform_specific.applemusic.latest_release.artist_name` | `string` or `null` | Who Apple credits for it, or a playlist's curator; null on an artist. |
| `profile.platform_specific.applemusic.latest_release.cover_url` | `string` (uri) or `null` | Its artwork at the largest size Apple states; null when none. |
| `profile.platform_specific.applemusic.latest_release.released_at` | `string` (date-time) or `null` | Its release date, midnight UTC of that date; null when Apple does not state it. |
| `profile.platform_specific.applemusic.latest_release.track_count` | `integer` or `null` | An album's tracks, null on other kinds. |
| `profile.platform_specific.applemusic.latest_release.duration_ms` | `integer` or `null` | A song's or music video's length in milliseconds, null on other kinds. |
| `profile.platform_specific.applemusic.latest_release.is_explicit` | `boolean` or `null` | Apple marks it explicit; null on kinds it does not mark. |
| `profile.platform_specific.applemusic.albums` | `object[]` | The artist's albums, as many as the page shows at first; \[\] when none. |
| `profile.platform_specific.applemusic.albums[].id` | `string` | Apple Music's ID of the item (string). |
| `profile.platform_specific.applemusic.albums[].kind` | `string` | What it is. New values may be added.<br>One of `song`, `music_video`, `album`, `playlist`, `artist`, `station` |
| `profile.platform_specific.applemusic.albums[].url` | `string` (uri) or `null` | Its page; null when Apple does not state it. |
| `profile.platform_specific.applemusic.albums[].title` | `string` or `null` | Its title, or an artist's name. |
| `profile.platform_specific.applemusic.albums[].artist_name` | `string` or `null` | Who Apple credits for it, or a playlist's curator; null on an artist. |
| `profile.platform_specific.applemusic.albums[].cover_url` | `string` (uri) or `null` | Its artwork at the largest size Apple states; null when none. |
| `profile.platform_specific.applemusic.albums[].released_at` | `string` (date-time) or `null` | Its release date, midnight UTC of that date; null when Apple does not state it. |
| `profile.platform_specific.applemusic.albums[].track_count` | `integer` or `null` | An album's tracks, null on other kinds. |
| `profile.platform_specific.applemusic.albums[].duration_ms` | `integer` or `null` | A song's or music video's length in milliseconds, null on other kinds. |
| `profile.platform_specific.applemusic.albums[].is_explicit` | `boolean` or `null` | Apple marks it explicit; null on kinds it does not mark. |
| `profile.platform_specific.applemusic.singles` | `object[]` | The artist's singles and EPs, as many as the page shows at first; \[\] when none. |
| `profile.platform_specific.applemusic.singles[].id` | `string` | Apple Music's ID of the item (string). |
| `profile.platform_specific.applemusic.singles[].kind` | `string` | What it is. New values may be added.<br>One of `song`, `music_video`, `album`, `playlist`, `artist`, `station` |
| `profile.platform_specific.applemusic.singles[].url` | `string` (uri) or `null` | Its page; null when Apple does not state it. |
| `profile.platform_specific.applemusic.singles[].title` | `string` or `null` | Its title, or an artist's name. |
| `profile.platform_specific.applemusic.singles[].artist_name` | `string` or `null` | Who Apple credits for it, or a playlist's curator; null on an artist. |
| `profile.platform_specific.applemusic.singles[].cover_url` | `string` (uri) or `null` | Its artwork at the largest size Apple states; null when none. |
| `profile.platform_specific.applemusic.singles[].released_at` | `string` (date-time) or `null` | Its release date, midnight UTC of that date; null when Apple does not state it. |
| `profile.platform_specific.applemusic.singles[].track_count` | `integer` or `null` | An album's tracks, null on other kinds. |
| `profile.platform_specific.applemusic.singles[].duration_ms` | `integer` or `null` | A song's or music video's length in milliseconds, null on other kinds. |
| `profile.platform_specific.applemusic.singles[].is_explicit` | `boolean` or `null` | Apple marks it explicit; null on kinds it does not mark. |
| `profile.platform_specific.applemusic.music_videos` | `object[]` | The artist's music videos, as many as the page shows at first; \[\] when none. |
| `profile.platform_specific.applemusic.music_videos[].id` | `string` | Apple Music's ID of the item (string). |
| `profile.platform_specific.applemusic.music_videos[].kind` | `string` | What it is. New values may be added.<br>One of `song`, `music_video`, `album`, `playlist`, `artist`, `station` |
| `profile.platform_specific.applemusic.music_videos[].url` | `string` (uri) or `null` | Its page; null when Apple does not state it. |
| `profile.platform_specific.applemusic.music_videos[].title` | `string` or `null` | Its title, or an artist's name. |
| `profile.platform_specific.applemusic.music_videos[].artist_name` | `string` or `null` | Who Apple credits for it, or a playlist's curator; null on an artist. |
| `profile.platform_specific.applemusic.music_videos[].cover_url` | `string` (uri) or `null` | Its artwork at the largest size Apple states; null when none. |
| `profile.platform_specific.applemusic.music_videos[].released_at` | `string` (date-time) or `null` | Its release date, midnight UTC of that date; null when Apple does not state it. |
| `profile.platform_specific.applemusic.music_videos[].track_count` | `integer` or `null` | An album's tracks, null on other kinds. |
| `profile.platform_specific.applemusic.music_videos[].duration_ms` | `integer` or `null` | A song's or music video's length in milliseconds, null on other kinds. |
| `profile.platform_specific.applemusic.music_videos[].is_explicit` | `boolean` or `null` | Apple marks it explicit; null on kinds it does not mark. |
| `profile.platform_specific.applemusic.playlists` | `object[]` | Playlists Apple makes of the artist, as many as the page shows at first; \[\] when none. |
| `profile.platform_specific.applemusic.playlists[].id` | `string` | Apple Music's ID of the item (string). |
| `profile.platform_specific.applemusic.playlists[].kind` | `string` | What it is. New values may be added.<br>One of `song`, `music_video`, `album`, `playlist`, `artist`, `station` |
| `profile.platform_specific.applemusic.playlists[].url` | `string` (uri) or `null` | Its page; null when Apple does not state it. |
| `profile.platform_specific.applemusic.playlists[].title` | `string` or `null` | Its title, or an artist's name. |
| `profile.platform_specific.applemusic.playlists[].artist_name` | `string` or `null` | Who Apple credits for it, or a playlist's curator; null on an artist. |
| `profile.platform_specific.applemusic.playlists[].cover_url` | `string` (uri) or `null` | Its artwork at the largest size Apple states; null when none. |
| `profile.platform_specific.applemusic.playlists[].released_at` | `string` (date-time) or `null` | Its release date, midnight UTC of that date; null when Apple does not state it. |
| `profile.platform_specific.applemusic.playlists[].track_count` | `integer` or `null` | An album's tracks, null on other kinds. |
| `profile.platform_specific.applemusic.playlists[].duration_ms` | `integer` or `null` | A song's or music video's length in milliseconds, null on other kinds. |
| `profile.platform_specific.applemusic.playlists[].is_explicit` | `boolean` or `null` | Apple marks it explicit; null on kinds it does not mark. |
| `profile.platform_specific.applemusic.similar_artists` | `object[]` | Artists Apple lists as similar, as many as the page shows at first; \[\] when none. |
| `profile.platform_specific.applemusic.similar_artists[].id` | `string` | Apple Music's ID of the item (string). |
| `profile.platform_specific.applemusic.similar_artists[].kind` | `string` | What it is. New values may be added.<br>One of `song`, `music_video`, `album`, `playlist`, `artist`, `station` |
| `profile.platform_specific.applemusic.similar_artists[].url` | `string` (uri) or `null` | Its page; null when Apple does not state it. |
| `profile.platform_specific.applemusic.similar_artists[].title` | `string` or `null` | Its title, or an artist's name. |
| `profile.platform_specific.applemusic.similar_artists[].artist_name` | `string` or `null` | Who Apple credits for it, or a playlist's curator; null on an artist. |
| `profile.platform_specific.applemusic.similar_artists[].cover_url` | `string` (uri) or `null` | Its artwork at the largest size Apple states; null when none. |
| `profile.platform_specific.applemusic.similar_artists[].released_at` | `string` (date-time) or `null` | Its release date, midnight UTC of that date; null when Apple does not state it. |
| `profile.platform_specific.applemusic.similar_artists[].track_count` | `integer` or `null` | An album's tracks, null on other kinds. |
| `profile.platform_specific.applemusic.similar_artists[].duration_ms` | `integer` or `null` | A song's or music video's length in milliseconds, null on other kinds. |
| `profile.platform_specific.applemusic.similar_artists[].is_explicit` | `boolean` or `null` | Apple marks it explicit; null on kinds it does not mark. |
| `profile.platform_specific.pinterest` | `object` or `null` | A Pinterest account's own fields. |
| `profile.platform_specific.pinterest.playlist_count` | `integer` or `null` | Boards, as Pinterest counts them for the account. Its public list of boards can hold fewer. |
| `profile.platform_specific.pinterest.monthly_view_count` | `integer` or `null` | The account's monthly views, as Pinterest counts them: how often its pins were seen over the last month. Above ten million Pinterest writes only that it is more, and this is 10000000, listed in approximate_fields; null when the account hides it. |
| `profile.platform_specific.pinterest.all_following_count` | `integer` or `null` | Everything the account follows, as Pinterest counts it: accounts, boards and interests. metrics.following_count counts the accounts alone. Its page's "N following" is this minus interest_following_count (accounts and boards), so it can be more than metrics.following_count. |
| `profile.platform_specific.pinterest.interest_following_count` | `integer` or `null` | The interests (topics) the account follows, as Pinterest counts them: part of all_following_count, and the part its page's following count leaves out. |
| `profile.platform_specific.pinterest.is_business_account` | `boolean` or `null` | A Pinterest business account, which brands and creators alike can have. |
| `profile.platform_specific.pinterest.is_verified_merchant` | `boolean` or `null` | Pinterest's verified merchant badge: a shop whose products Pinterest checked. |
| `profile.platform_specific.pinterest.is_website_verified` | `boolean` or `null` | True when the account proved it owns the website in external_links (Pinterest's claimed website). |
| `profile.platform_specific.pinterest.last_post_at` | `string` (date-time) or `null` | When the account last saved a pin to one of its boards, its own or another account's, RFC 3339 UTC. |
| `profile.platform_specific.amazon` | `object` or `null` | An Amazon seller's or storefront's own fields. |
| `profile.platform_specific.amazon.seller_feedback` | `object` or `null` | A seller's feedback from its buyers: the share of positive ratings, and per period its star rating and its ratings per star. Null on an account that is not a seller, or a seller whose page shows no feedback (Amazon's own subsidiaries). |
| `profile.platform_specific.amazon.seller_feedback.positive_percent` | `integer` or `null` | Share of the last 12 months' ratings that are positive (4 or 5 stars), as Amazon rounds it to a whole percent; null when the page shows none (no ratings in the last 12 months). |
| `profile.platform_specific.amazon.seller_feedback.last_30_days` | `object` or `null` | Ratings from the last 30 days (the page's 1 month); null when the page shows none. |
| `profile.platform_specific.amazon.seller_feedback.last_30_days.rating` | `number` or `null` | Star rating out of 5 over the period, as Amazon shows it, to one decimal; null when the period has no ratings. |
| `profile.platform_specific.amazon.seller_feedback.last_30_days.rating_count` | `integer` or `null` | Ratings buyers gave the seller over the period, exact. |
| `profile.platform_specific.amazon.seller_feedback.last_30_days.review_count` | `integer` or `null` | Ratings that came with a written review, exact; null when the page does not count them. |
| `profile.platform_specific.amazon.seller_feedback.last_30_days.rating_distribution` | `object` or `null` | Ratings per star over the period, exact; null when the page does not count them. |
| `profile.platform_specific.amazon.seller_feedback.last_30_days.rating_distribution.one_star_count` | `integer` or `null` | Reviews rating 1 star. |
| `profile.platform_specific.amazon.seller_feedback.last_30_days.rating_distribution.two_star_count` | `integer` or `null` | Reviews rating 2 stars. |
| `profile.platform_specific.amazon.seller_feedback.last_30_days.rating_distribution.three_star_count` | `integer` or `null` | Reviews rating 3 stars. |
| `profile.platform_specific.amazon.seller_feedback.last_30_days.rating_distribution.four_star_count` | `integer` or `null` | Reviews rating 4 stars. |
| `profile.platform_specific.amazon.seller_feedback.last_30_days.rating_distribution.five_star_count` | `integer` or `null` | Reviews rating 5 stars. |
| `profile.platform_specific.amazon.seller_feedback.last_90_days` | `object` or `null` | Ratings from the last 90 days (the page's 3 months); null when the page shows none. |
| `profile.platform_specific.amazon.seller_feedback.last_90_days.rating` | `number` or `null` | Star rating out of 5 over the period, as Amazon shows it, to one decimal; null when the period has no ratings. |
| `profile.platform_specific.amazon.seller_feedback.last_90_days.rating_count` | `integer` or `null` | Ratings buyers gave the seller over the period, exact. |
| `profile.platform_specific.amazon.seller_feedback.last_90_days.review_count` | `integer` or `null` | Ratings that came with a written review, exact; null when the page does not count them. |
| `profile.platform_specific.amazon.seller_feedback.last_90_days.rating_distribution` | `object` or `null` | Ratings per star over the period, exact; null when the page does not count them. |
| `profile.platform_specific.amazon.seller_feedback.last_90_days.rating_distribution.one_star_count` | `integer` or `null` | Reviews rating 1 star. |
| `profile.platform_specific.amazon.seller_feedback.last_90_days.rating_distribution.two_star_count` | `integer` or `null` | Reviews rating 2 stars. |
| `profile.platform_specific.amazon.seller_feedback.last_90_days.rating_distribution.three_star_count` | `integer` or `null` | Reviews rating 3 stars. |
| `profile.platform_specific.amazon.seller_feedback.last_90_days.rating_distribution.four_star_count` | `integer` or `null` | Reviews rating 4 stars. |
| `profile.platform_specific.amazon.seller_feedback.last_90_days.rating_distribution.five_star_count` | `integer` or `null` | Reviews rating 5 stars. |
| `profile.platform_specific.amazon.seller_feedback.last_12_months` | `object` or `null` | Ratings from the last 12 months; null when the page shows none. |
| `profile.platform_specific.amazon.seller_feedback.last_12_months.rating` | `number` or `null` | Star rating out of 5 over the period, as Amazon shows it, to one decimal; null when the period has no ratings. |
| `profile.platform_specific.amazon.seller_feedback.last_12_months.rating_count` | `integer` or `null` | Ratings buyers gave the seller over the period, exact. |
| `profile.platform_specific.amazon.seller_feedback.last_12_months.review_count` | `integer` or `null` | Ratings that came with a written review, exact; null when the page does not count them. |
| `profile.platform_specific.amazon.seller_feedback.last_12_months.rating_distribution` | `object` or `null` | Ratings per star over the period, exact; null when the page does not count them. |
| `profile.platform_specific.amazon.seller_feedback.last_12_months.rating_distribution.one_star_count` | `integer` or `null` | Reviews rating 1 star. |
| `profile.platform_specific.amazon.seller_feedback.last_12_months.rating_distribution.two_star_count` | `integer` or `null` | Reviews rating 2 stars. |
| `profile.platform_specific.amazon.seller_feedback.last_12_months.rating_distribution.three_star_count` | `integer` or `null` | Reviews rating 3 stars. |
| `profile.platform_specific.amazon.seller_feedback.last_12_months.rating_distribution.four_star_count` | `integer` or `null` | Reviews rating 4 stars. |
| `profile.platform_specific.amazon.seller_feedback.last_12_months.rating_distribution.five_star_count` | `integer` or `null` | Reviews rating 5 stars. |
| `profile.platform_specific.amazon.seller_feedback.lifetime` | `object` or `null` | Every rating the seller has received; null when the page shows none. |
| `profile.platform_specific.amazon.seller_feedback.lifetime.rating` | `number` or `null` | Star rating out of 5 over the period, as Amazon shows it, to one decimal; null when the period has no ratings. |
| `profile.platform_specific.amazon.seller_feedback.lifetime.rating_count` | `integer` or `null` | Ratings buyers gave the seller over the period, exact. |
| `profile.platform_specific.amazon.seller_feedback.lifetime.review_count` | `integer` or `null` | Ratings that came with a written review, exact; null when the page does not count them. |
| `profile.platform_specific.amazon.seller_feedback.lifetime.rating_distribution` | `object` or `null` | Ratings per star over the period, exact; null when the page does not count them. |
| `profile.platform_specific.amazon.seller_feedback.lifetime.rating_distribution.one_star_count` | `integer` or `null` | Reviews rating 1 star. |
| `profile.platform_specific.amazon.seller_feedback.lifetime.rating_distribution.two_star_count` | `integer` or `null` | Reviews rating 2 stars. |
| `profile.platform_specific.amazon.seller_feedback.lifetime.rating_distribution.three_star_count` | `integer` or `null` | Reviews rating 3 stars. |
| `profile.platform_specific.amazon.seller_feedback.lifetime.rating_distribution.four_star_count` | `integer` or `null` | Reviews rating 4 stars. |
| `profile.platform_specific.amazon.seller_feedback.lifetime.rating_distribution.five_star_count` | `integer` or `null` | Reviews rating 5 stars. |
| `profile.platform_specific.amazon.seller_business` | `object` or `null` | A seller's business identity, as its page discloses it (by law in the US and the EU): legal name, registration and VAT numbers, phone, email and addresses. Null on an account that is not a seller, or a seller whose page discloses none. |
| `profile.platform_specific.amazon.seller_business.legal_name` | `string` or `null` | The seller's registered business name, as declared (its display name is the shop's); null when not disclosed. |
| `profile.platform_specific.amazon.seller_business.business_type` | `string` or `null` | The kind of business, as Amazon words it (Privately-owned business, Sole proprietorship); null when not disclosed (US marketplaces show none). |
| `profile.platform_specific.amazon.seller_business.trade_register_number` | `string` or `null` | Its commercial register number, as declared (HRB 40534); null when not disclosed. |
| `profile.platform_specific.amazon.seller_business.vat_number` | `string` or `null` | Its VAT identification number (DE453729570); null when not disclosed. |
| `profile.platform_specific.amazon.seller_business.phone` | `string` or `null` | The business phone number it declared, as written; null when not disclosed. |
| `profile.platform_specific.amazon.seller_business.email` | `string` or `null` | The business email address it declared; null when not disclosed. |
| `profile.platform_specific.amazon.seller_business.address` | `string` or `null` | Its registered business address on one line, as declared, ending with the country's code; null when not disclosed. |
| `profile.platform_specific.amazon.seller_business.customer_service_address` | `string` or `null` | The address it gives for customer service on one line, when it gives one apart from the business address; null otherwise. |
| `profile.platform_specific.amazon.seller_business.customer_service_phone` | `string` or `null` | The customer service phone number its page shows beside Ask a question, as written; null when it shows none. |
| `profile.platform_specific.amazon.shop` | `object` or `null` | An influencer's storefront: its Top Creator badge, its curations and its trending picks. Null on an account that is not an influencer (a seller). |
| `profile.platform_specific.amazon.shop.is_top_creator` | `boolean` or `null` | True when Amazon shows its Top Creator badge (a leading Amazon creator by customer engagement and sales), false when it shows none; null when unknown. |
| `profile.platform_specific.amazon.shop.curations` | `object[]` | Its curations, named collections of its posts, in the storefront's order; \[\] when it has none (listed in unknown_fields when the source cannot see them). |
| `profile.platform_specific.amazon.shop.curations[].id` | `string` | Amazon's ID of the curation, as its link writes it (a UUID). |
| `profile.platform_specific.amazon.shop.curations[].title` | `string` or `null` | Its title, as the influencer wrote it. |
| `profile.platform_specific.amazon.shop.curations[].url` | `string` (uri) | Its link. |
| `profile.platform_specific.amazon.shop.curations[].thumbnail_url` | `string` (uri) or `null` | Its cover image URL. |
| `profile.platform_specific.amazon.shop.curations[].post_count` | `integer` or `null` | Posts in it, as its card counts them. |
| `profile.platform_specific.amazon.shop.trending_picks` | `object[]` | The products Amazon shows as trending from this storefront, in its order; \[\] when it shows none. |
| `profile.platform_specific.amazon.shop.trending_picks[].asin` | `string` | The product's ASIN (what amazon.product takes). |
| `profile.platform_specific.amazon.shop.trending_picks[].url` | `string` (uri) | The product's page in the storefront's marketplace. |
| `profile.platform_specific.amazon.shop.trending_picks[].image_url` | `string` (uri) or `null` | The product's image URL, as the card shows it. |
| `profile.platform_specific.amazon.shop.trending_picks[].price` | `number` or `null` | Its current price in major units of currency, as the card shows it; null when it shows none (no offer). |
| `profile.platform_specific.amazon.shop.trending_picks[].currency` | `string` or `null` | ISO 4217 code of price; null when there is no price. |
| `profile.platform_specific.amazon.shop.trending_picks[].badge` | `string` or `null` | The badge on its card, as shown (Deal); null when it has none. |
| `profile.approximate_fields` | `string[]` | JSON paths of values rounded by the platform or parsed from display text (e.g. metrics.follower_count). A list path (external_links) means the list may be incomplete. \[\] when all exact. |
| `profile.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. |
| `posts` | `object[]` | The sampled recent posts in the profile's order, each with its own figures. \[\] when none; \[\] and in unknown_fields when unreadable (a private account, a failed posts request). |
| `posts[].post` | `object` | The post, as the platform's posts endpoint returns it. |
| `posts[].post.platform` | `string` | Platform ID (tiktok, youtube, …). |
| `posts[].post.id` | `string` | Platform-native post ID (string; Instagram shortcode, Reddit with its t3_ prefix). |
| `posts[].post.url` | `string` (uri) | Canonical post URL. |
| `posts[].post.type` | `string` | Normalized content shape. New values may be added; treat unknown values as other.<br>One of `video`, `image`, `carousel`, `text`, `link`, `audio` |
| `posts[].post.platform_type` | `string` or `null` | The platform's own product label, lowercase (reel, short, story, live, tweet, …). |
| `posts[].post.title` | `string` or `null` | Headline (YouTube title, Reddit title); null on caption-only platforms. |
| `posts[].post.text` | `string` or `null` | Caption, description or body as plain text. |
| `posts[].post.language` | `string` or `null` | BCP-47 language of text, when the platform states it. |
| `posts[].post.published_at` | `string` (date-time) or `null` | When the post went public, RFC 3339 UTC. |
| `posts[].post.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. |
| `posts[].post.author.id` | `string` or `null` | Platform-native account ID; null when only the handle is known. |
| `posts[].post.author.username` | `string` or `null` | Handle without the @; null when the account has none. |
| `posts[].post.author.display_name` | `string` or `null` | Display name shown on the profile. |
| `posts[].post.author.url` | `string` (uri) or `null` | Canonical profile URL. |
| `posts[].post.author.avatar_url` | `string` (uri) or `null` | Profile picture URL. Platform CDN URLs can expire within hours. |
| `posts[].post.author.is_verified` | `boolean` or `null` | Platform verification badge; null where the platform has no badge. |
| `posts[].post.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. |
| `posts[].post.coauthors[].id` | `string` or `null` | Platform-native account ID; null when only the handle is known. |
| `posts[].post.coauthors[].username` | `string` or `null` | Handle without the @; null when the account has none. |
| `posts[].post.coauthors[].display_name` | `string` or `null` | Display name shown on the profile. |
| `posts[].post.coauthors[].url` | `string` (uri) or `null` | Canonical profile URL. |
| `posts[].post.coauthors[].avatar_url` | `string` (uri) or `null` | Profile picture URL. Platform CDN URLs can expire within hours. |
| `posts[].post.coauthors[].is_verified` | `boolean` or `null` | Platform verification badge; null where the platform has no badge. |
| `posts[].post.duration_ms` | `integer` or `null` | Length of the primary video or audio in milliseconds; null for other posts. |
| `posts[].post.thumbnail_url` | `string` (uri) or `null` | Cover or poster image URL. |
| `posts[].post.media` | `object[]` | Attachments in display order (carousel items); \[\] for text posts. |
| `posts[].post.media[].type` | `string` | Kind of file. New values may be added; treat unknown values as other.<br>One of `image`, `video`, `audio`, `gif` |
| `posts[].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. |
| `posts[].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. |
| `posts[].post.media[].thumbnail_url` | `string` (uri) or `null` | Poster or preview image URL. |
| `posts[].post.media[].width` | `integer` or `null` | Width in pixels. |
| `posts[].post.media[].height` | `integer` or `null` | Height in pixels. |
| `posts[].post.media[].duration_ms` | `integer` or `null` | Duration in milliseconds (video and audio only). |
| `posts[].post.media[].alt_text` | `string` or `null` | Accessibility text provided by the author or platform. |
| `posts[].post.hashtags` | `string[]` | Hashtags without #, case kept; \[\] if none. |
| `posts[].post.mentions` | `string[]` | Mentioned or tagged usernames without @; \[\] if none. |
| `posts[].post.is_pinned` | `boolean` or `null` | Pinned to the author's profile. |
| `posts[].post.is_sponsored` | `boolean` or `null` | Labeled as a paid partnership or branded content. |
| `posts[].post.is_nsfw` | `boolean` or `null` | Marked adult or sensitive by the platform. |
| `posts[].post.metrics` | `object` | Counts at fetch time; null = hidden or not exposed, 0 = zero. |
| `posts[].post.metrics.view_count` | `integer` or `null` | Views or plays. |
| `posts[].post.metrics.like_count` | `integer` or `null` | Likes, hearts, total reactions or upvotes; never negative. Null when hidden by the owner. |
| `posts[].post.metrics.comment_count` | `integer` or `null` | Comments and replies. |
| `posts[].post.metrics.share_count` | `integer` or `null` | Shares or sends (not reposts). |
| `posts[].post.metrics.repost_count` | `integer` or `null` | Reposts, retweets or reshares. |
| `posts[].post.metrics.quote_count` | `integer` or `null` | Quote posts. |
| `posts[].post.metrics.save_count` | `integer` or `null` | Saves, bookmarks or favorites. |
| `posts[].post.platform_specific` | `object` | Fields only this platform has, under its ID (platform_specific.\<platform>); each null when unknown. |
| `posts[].post.platform_specific.tiktok` | `object` or `null` | A TikTok post's own fields. |
| `posts[].post.platform_specific.tiktok.author_sec_uid` | `string` or `null` | The author's secUid, TikTok's account key that survives a rename. |
| `posts[].post.platform_specific.tiktok.country_code` | `string` or `null` | ISO 3166-1 alpha-2 country TikTok registers the post to (not the viewer's). |
| `posts[].post.platform_specific.tiktok.is_ad` | `boolean` or `null` | The post runs as a TikTok ad. |
| `posts[].post.platform_specific.tiktok.is_ai_generated` | `boolean` or `null` | TikTok labels the post AI-generated. |
| `posts[].post.platform_specific.tiktok.location` | `object` or `null` | The tagged place; null when none. |
| `posts[].post.platform_specific.tiktok.location.id` | `string` or `null` | Place ID. |
| `posts[].post.platform_specific.tiktok.location.name` | `string` or `null` | Place name. |
| `posts[].post.platform_specific.tiktok.location.address` | `string` or `null` | Address line. |
| `posts[].post.platform_specific.tiktok.location.city` | `string` or `null` | City. |
| `posts[].post.platform_specific.tiktok.location.category` | `string` or `null` | Top-level place category. |
| `posts[].post.platform_specific.tiktok.music` | `object` or `null` | The post's sound. |
| `posts[].post.platform_specific.tiktok.music.id` | `string` or `null` | Sound ID (equals the sound's id). |
| `posts[].post.platform_specific.tiktok.music.title` | `string` or `null` | Sound title. |
| `posts[].post.platform_specific.tiktok.music.author_name` | `string` or `null` | Who TikTok credits for the sound. |
| `posts[].post.platform_specific.tiktok.music.is_original` | `boolean` or `null` | An original sound a creator uploaded (false: a catalogue track). |
| `posts[].post.platform_specific.tiktok.music.duration_ms` | `integer` or `null` | Sound length in milliseconds. |
| `posts[].post.platform_specific.tiktok.music.cover_url` | `string` (uri) or `null` | Sound cover image URL. |
| `posts[].post.platform_specific.tiktok.music.play_url` | `string` (uri) or `null` | Audio file URL, signed and expiring. |
| `posts[].post.platform_specific.tiktok.author_follower_count` | `integer` or `null` | The author's exact follower count; null when the source does not state it. |
| `posts[].post.platform_specific.tiktok.board` | `object` or `null` | The post on Creative Center's top videos board (tiktok.top_posts); null off a board. |
| `posts[].post.platform_specific.tiktok.board.rank` | `integer` or `null` | Position on the requested board (1 = top). |
| `posts[].post.platform_specific.tiktok.board.period_end_at` | `string` (date-time) or `null` | End of the board's window (Creative Center's latest published day). |
| `posts[].post.platform_specific.tiktok.board.period_view_count` | `integer` or `null` | Views in the board's window, paid and organic. |
| `posts[].post.platform_specific.tiktok.board.period_organic_view_count` | `integer` or `null` | Organic (unpaid) views in the board's window. |
| `posts[].post.platform_specific.tiktok.board.organic_view_count` | `integer` or `null` | Organic views over the post's life. |
| `posts[].post.platform_specific.tiktok.board.period_engagement_rate` | `number` or `null` | Interactions per view in the board's window, as a fraction. |
| `posts[].post.platform_specific.tiktok.board.engagement_rate` | `number` or `null` | Interactions per view over the post's life, as a fraction. |
| `posts[].post.platform_specific.tiktok.board.period_six_second_view_rate` | `number` or `null` | Share of the window's views that lasted six seconds or more. |
| `posts[].post.platform_specific.tiktok.board.six_second_view_rate` | `number` or `null` | Share of all the post's views that lasted six seconds or more. |
| `posts[].post.platform_specific.youtube` | `object` or `null` | A YouTube video's own fields. |
| `posts[].post.platform_specific.youtube.category` | `string` or `null` | YouTube category (Music, Gaming, …), in English. |
| `posts[].post.platform_specific.youtube.keywords` | `string[]` | The uploader's tags; \[\] when none. |
| `posts[].post.platform_specific.youtube.chapters` | `object[]` | Chapters in playback order; \[\] when none. |
| `posts[].post.platform_specific.youtube.chapters[].title` | `string` or `null` | Chapter title. |
| `posts[].post.platform_specific.youtube.chapters[].start_ms` | `integer` or `null` | Start, in ms from the beginning. |
| `posts[].post.platform_specific.youtube.description_links` | `string[]` | Links in the description, in order, deduplicated; \[\] when none. |
| `posts[].post.platform_specific.youtube.is_unlisted` | `boolean` or `null` | Unlisted: watchable by link, not listed on the channel or in search. |
| `posts[].post.platform_specific.youtube.is_age_restricted` | `boolean` or `null` | Viewers must sign in to confirm their age; null when the answer does not tell. |
| `posts[].post.platform_specific.youtube.is_paywalled` | `boolean` or `null` | Must be bought or rented (movies, paid content). |
| `posts[].post.platform_specific.youtube.is_live_now` | `boolean` or `null` | A live stream on air now. |
| `posts[].post.platform_specific.youtube.live_started_at` | `string` (date-time) or `null` | When a live stream or premiere went on air; null if never live. |
| `posts[].post.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. |
| `posts[].post.platform_specific.youtube.scheduled_start_at` | `string` (date-time) or `null` | When a scheduled stream or premiere is due to start; null otherwise. |
| `posts[].post.platform_specific.youtube.author_subscriber_count` | `integer` or `null` | The channel's subscriber count, rounded by YouTube (in approximate_fields); null when hidden. |
| `posts[].post.platform_specific.rumble` | `object` or `null` | A Rumble video's own fields. |
| `posts[].post.platform_specific.rumble.embed_id` | `string` or `null` | The video's embed player ID (rumble.com/embed/\<embed_id>/): its own namespace, not id. |
| `posts[].post.platform_specific.rumble.embed_url` | `string` (uri) or `null` | The embeddable player URL. |
| `posts[].post.platform_specific.rumble.numeric_id` | `string` or `null` | Rumble's numeric video ID, which its own services use. |
| `posts[].post.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). |
| `posts[].post.platform_specific.rumble.category` | `string` or `null` | Rumble's primary category (News, Podcasts, …). |
| `posts[].post.platform_specific.rumble.secondary_category` | `string` or `null` | Rumble's secondary category; null when none. |
| `posts[].post.platform_specific.rumble.keywords` | `string[]` | The uploader's tags; \[\] when none. |
| `posts[].post.platform_specific.rumble.caption_tracks` | `object[]` | Caption tracks (WebVTT); \[\] when none. |
| `posts[].post.platform_specific.rumble.caption_tracks[].language` | `string` or `null` | Language code (en, es, …). |
| `posts[].post.platform_specific.rumble.caption_tracks[].label` | `string` or `null` | Rumble's label ("English (auto)"). |
| `posts[].post.platform_specific.rumble.caption_tracks[].url` | `string` (uri) or `null` | WebVTT file URL. |
| `posts[].post.platform_specific.rumble.caption_tracks[].is_auto_generated` | `boolean` or `null` | Generated by Rumble's speech recognition. |
| `posts[].post.platform_specific.rumble.files` | `object[]` | Every file and stream Rumble's player offers, largest video first; \[\] when none. |
| `posts[].post.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` |
| `posts[].post.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` |
| `posts[].post.platform_specific.rumble.files[].url` | `string` (uri) or `null` | File or playlist URL. |
| `posts[].post.platform_specific.rumble.files[].width` | `integer` or `null` | Width in pixels; null for audio and playlists. |
| `posts[].post.platform_specific.rumble.files[].height` | `integer` or `null` | Height in pixels; null for audio and playlists. |
| `posts[].post.platform_specific.rumble.files[].bitrate_kbps` | `integer` or `null` | Bitrate in kbit/s. |
| `posts[].post.platform_specific.rumble.files[].size_bytes` | `integer` or `null` | File size in bytes; null when Rumble does not state it. |
| `posts[].post.platform_specific.rumble.is_live_now` | `boolean` or `null` | A live stream on air now. |
| `posts[].post.platform_specific.rumble.live_started_at` | `string` (date-time) or `null` | When a live stream went on air; null if never live. |
| `posts[].post.platform_specific.rumble.scheduled_start_at` | `string` (date-time) or `null` | When a scheduled live stream is due to start; null otherwise. |
| `posts[].post.platform_specific.rumble.concurrent_viewer_count` | `integer` or `null` | Viewers watching a live stream now; null when not live. |
| `posts[].post.platform_specific.rumble.is_age_restricted` | `boolean` or `null` | Viewers must confirm their age to watch; null when the source does not show it. |
| `posts[].post.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). |
| `posts[].post.platform_specific.instagram` | `object` or `null` | An Instagram post's own fields. |
| `posts[].post.platform_specific.instagram.is_ai_generated` | `boolean` or `null` | Instagram shows its AI label (made or edited with AI); false when it shows none. |
| `posts[].post.platform_specific.instagram.location` | `object` or `null` | The tagged place; null when none or not shown by the endpoint's source. |
| `posts[].post.platform_specific.instagram.location.id` | `string` | Instagram location ID (equals the place's id: the number in instagram.com/explore/locations/\<id>/). |
| `posts[].post.platform_specific.instagram.location.name` | `string` or `null` | Place name as Instagram shows it. |
| `posts[].post.platform_specific.instagram.location.url` | `string` (uri) | The place's page on Instagram. |
| `posts[].post.platform_specific.instagram.location.latitude` | `number` or `null` | WGS 84 latitude in degrees (set together with longitude). |
| `posts[].post.platform_specific.instagram.location.longitude` | `number` or `null` | WGS 84 longitude in degrees (set together with latitude). |
| `posts[].post.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. |
| `posts[].post.platform_specific.instagram.link.url` | `string` (uri) or `null` | The linked page, as the author shared it (Instagram's l.instagram.com redirect removed). |
| `posts[].post.platform_specific.facebook` | `object` or `null` | A Facebook post's own fields. |
| `posts[].post.platform_specific.facebook.feedback_id` | `string` or `null` | Facebook's feedback ID of the post: the thread its comments and reactions hang on. |
| `posts[].post.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. |
| `posts[].post.platform_specific.facebook.reactions` | `object[]` | Reactions by type, most first, as Facebook lists them under the post; \[\] when none. |
| `posts[].post.platform_specific.facebook.reactions[].type` | `string` | Reaction type. New values may be added.<br>One of `like`, `love`, `care`, `haha`, `wow`, `sad`, `angry` |
| `posts[].post.platform_specific.facebook.reactions[].count` | `integer` or `null` | How many people reacted with it. |
| `posts[].post.platform_specific.facebook.shared_post` | `object` or `null` | The post this one reshares; null when it is not a reshare. |
| `posts[].post.platform_specific.facebook.shared_post.id` | `string` or `null` | Its post ID. |
| `posts[].post.platform_specific.facebook.shared_post.url` | `string` (uri) or `null` | Its URL. |
| `posts[].post.platform_specific.facebook.shared_post.author` | `object` | Its author. |
| `posts[].post.platform_specific.facebook.shared_post.author.id` | `string` or `null` | Platform-native account ID; null when only the handle is known. |
| `posts[].post.platform_specific.facebook.shared_post.author.username` | `string` or `null` | Handle without the @; null when the account has none. |
| `posts[].post.platform_specific.facebook.shared_post.author.display_name` | `string` or `null` | Display name shown on the profile. |
| `posts[].post.platform_specific.facebook.shared_post.author.url` | `string` (uri) or `null` | Canonical profile URL. |
| `posts[].post.platform_specific.facebook.shared_post.author.avatar_url` | `string` (uri) or `null` | Profile picture URL. Platform CDN URLs can expire within hours. |
| `posts[].post.platform_specific.facebook.shared_post.author.is_verified` | `boolean` or `null` | Platform verification badge; null where the platform has no badge. |
| `posts[].post.platform_specific.facebook.link` | `object` or `null` | The link card a post shares (an article, a site, an event); null when none. |
| `posts[].post.platform_specific.facebook.link.url` | `string` (uri) or `null` | The linked page, as the author shared it (Facebook's l.facebook.com redirect removed). |
| `posts[].post.platform_specific.facebook.link.title` | `string` or `null` | The card's headline. |
| `posts[].post.platform_specific.facebook.link.image_url` | `string` (uri) or `null` | The card's image. |
| `posts[].post.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. |
| `posts[].post.platform_specific.facebook.music.id` | `string` or `null` | Facebook's ID of the sound. |
| `posts[].post.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). |
| `posts[].post.platform_specific.facebook.music.is_original` | `boolean` or `null` | The creator's own audio (false: a track from Facebook's library). |
| `posts[].post.platform_specific.facebook.group` | `object` or `null` | The group the post was published in; null when it is not a group's post. |
| `posts[].post.platform_specific.facebook.group.id` | `string` | The group's numeric ID. |
| `posts[].post.platform_specific.facebook.group.name` | `string` or `null` | The group's name, as its page shows it. |
| `posts[].post.platform_specific.facebook.group.url` | `string` (uri) or `null` | The group's URL. |
| `posts[].post.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). |
| `posts[].post.platform_specific.facebook.listing.id` | `string` or `null` | The listing's ID. |
| `posts[].post.platform_specific.facebook.listing.title` | `string` or `null` | The item's name. |
| `posts[].post.platform_specific.facebook.listing.price_text` | `string` or `null` | Its price as Facebook shows it (BDT14,000, FREE). |
| `posts[].post.platform_specific.facebook.listing.location` | `string` or `null` | Where it is, as Facebook shows it. |
| `posts[].post.platform_specific.facebook.listing.is_sold` | `boolean` or `null` | Marked sold. |
| `posts[].post.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. |
| `posts[].post.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. |
| `posts[].post.platform_specific.threads` | `object` or `null` | A Threads post's own fields. |
| `posts[].post.platform_specific.threads.numeric_id` | `string` or `null` | Threads' numeric post ID, which the shortcode in id encodes. |
| `posts[].post.platform_specific.threads.is_reply` | `boolean` or `null` | The post is a reply to another post. |
| `posts[].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. |
| `posts[].post.platform_specific.threads.reply_to_author.id` | `string` or `null` | Platform-native account ID; null when only the handle is known. |
| `posts[].post.platform_specific.threads.reply_to_author.username` | `string` or `null` | Handle without the @; null when the account has none. |
| `posts[].post.platform_specific.threads.reply_to_author.display_name` | `string` or `null` | Display name shown on the profile. |
| `posts[].post.platform_specific.threads.reply_to_author.url` | `string` (uri) or `null` | Canonical profile URL. |
| `posts[].post.platform_specific.threads.reply_to_author.avatar_url` | `string` (uri) or `null` | Profile picture URL. Platform CDN URLs can expire within hours. |
| `posts[].post.platform_specific.threads.reply_to_author.is_verified` | `boolean` or `null` | Platform verification badge; null where the platform has no badge. |
| `posts[].post.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). |
| `posts[].post.platform_specific.threads.quoted_post.id` | `string` or `null` | Its shortcode. |
| `posts[].post.platform_specific.threads.quoted_post.url` | `string` (uri) or `null` | Its URL. |
| `posts[].post.platform_specific.threads.quoted_post.author` | `object` | Its author. |
| `posts[].post.platform_specific.threads.quoted_post.author.id` | `string` or `null` | Platform-native account ID; null when only the handle is known. |
| `posts[].post.platform_specific.threads.quoted_post.author.username` | `string` or `null` | Handle without the @; null when the account has none. |
| `posts[].post.platform_specific.threads.quoted_post.author.display_name` | `string` or `null` | Display name shown on the profile. |
| `posts[].post.platform_specific.threads.quoted_post.author.url` | `string` (uri) or `null` | Canonical profile URL. |
| `posts[].post.platform_specific.threads.quoted_post.author.avatar_url` | `string` (uri) or `null` | Profile picture URL. Platform CDN URLs can expire within hours. |
| `posts[].post.platform_specific.threads.quoted_post.author.is_verified` | `boolean` or `null` | Platform verification badge; null where the platform has no badge. |
| `posts[].post.platform_specific.threads.topic_tag` | `string` or `null` | The topic or community tag shown on the post; null when none. |
| `posts[].post.platform_specific.threads.link` | `object` or `null` | The link preview card the post shows; null when none. |
| `posts[].post.platform_specific.threads.link.url` | `string` (uri) or `null` | The linked page (Threads' l.threads.com redirect removed). |
| `posts[].post.platform_specific.threads.link.title` | `string` or `null` | The card's headline. |
| `posts[].post.platform_specific.threads.link.image_url` | `string` (uri) or `null` | The card's image. |
| `posts[].post.platform_specific.threads.reply_control` | `string` or `null` | Who may reply, as Threads names it (everyone, accounts_you_follow, mentioned_only, …). |
| `posts[].post.platform_specific.threads.is_spoiler` | `boolean` or `null` | The author marked the media as a spoiler. |
| `posts[].post.platform_specific.threads.is_edited` | `boolean` or `null` | The text was edited after posting. |
| `posts[].post.platform_specific.reddit` | `object` or `null` | A Reddit post's own fields. |
| `posts[].post.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>). |
| `posts[].post.platform_specific.reddit.subreddit.id` | `string` or `null` | Reddit's subreddit ID (t5_…). |
| `posts[].post.platform_specific.reddit.subreddit.name` | `string` or `null` | The subreddit's name without r/. |
| `posts[].post.platform_specific.reddit.subreddit.url` | `string` (uri) or `null` | The subreddit's URL. |
| `posts[].post.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. |
| `posts[].post.platform_specific.reddit.upvote_ratio` | `number` or `null` | Share of votes that are upvotes, from 0 to 1. |
| `posts[].post.platform_specific.reddit.award_count` | `integer` or `null` | Awards the post received. |
| `posts[].post.platform_specific.reddit.flair` | `string` or `null` | The post's flair text; null when it has none. |
| `posts[].post.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. |
| `posts[].post.platform_specific.reddit.link_url` | `string` (uri) or `null` | The page a link post points to; null for other posts. |
| `posts[].post.platform_specific.reddit.is_spoiler` | `boolean` or `null` | Marked as a spoiler. |
| `posts[].post.platform_specific.reddit.is_locked` | `boolean` or `null` | Locked by the moderators: no new comments. |
| `posts[].post.platform_specific.reddit.is_archived` | `boolean` or `null` | Archived: too old for new votes or comments. |
| `posts[].post.platform_specific.reddit.crosspost_of` | `string` (uri) or `null` | The post this one is a crosspost of; null when it is not a crosspost. |
| `posts[].post.platform_specific.truthsocial` | `object` or `null` | A Truth Social post's own fields. |
| `posts[].post.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. |
| `posts[].post.platform_specific.truthsocial.reblog_of.id` | `string` or `null` | Its post ID. |
| `posts[].post.platform_specific.truthsocial.reblog_of.url` | `string` (uri) or `null` | Its URL; null when its author is unknown. |
| `posts[].post.platform_specific.truthsocial.reblog_of.published_at` | `string` (date-time) or `null` | When it was posted, RFC 3339 UTC. |
| `posts[].post.platform_specific.truthsocial.reblog_of.author` | `object` | Its author. |
| `posts[].post.platform_specific.truthsocial.reblog_of.author.id` | `string` or `null` | Platform-native account ID; null when only the handle is known. |
| `posts[].post.platform_specific.truthsocial.reblog_of.author.username` | `string` or `null` | Handle without the @; null when the account has none. |
| `posts[].post.platform_specific.truthsocial.reblog_of.author.display_name` | `string` or `null` | Display name shown on the profile. |
| `posts[].post.platform_specific.truthsocial.reblog_of.author.url` | `string` (uri) or `null` | Canonical profile URL. |
| `posts[].post.platform_specific.truthsocial.reblog_of.author.avatar_url` | `string` (uri) or `null` | Profile picture URL. Platform CDN URLs can expire within hours. |
| `posts[].post.platform_specific.truthsocial.reblog_of.author.is_verified` | `boolean` or `null` | Platform verification badge; null where the platform has no badge. |
| `posts[].post.platform_specific.truthsocial.reblog_of.metrics` | `object` | Its own counts: likes, replies and ReTruths. Null counts when only its id is known. |
| `posts[].post.platform_specific.truthsocial.reblog_of.metrics.view_count` | `integer` or `null` | Views or plays. |
| `posts[].post.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. |
| `posts[].post.platform_specific.truthsocial.reblog_of.metrics.comment_count` | `integer` or `null` | Comments and replies. |
| `posts[].post.platform_specific.truthsocial.reblog_of.metrics.share_count` | `integer` or `null` | Shares or sends (not reposts). |
| `posts[].post.platform_specific.truthsocial.reblog_of.metrics.repost_count` | `integer` or `null` | Reposts, retweets or reshares. |
| `posts[].post.platform_specific.truthsocial.reblog_of.metrics.quote_count` | `integer` or `null` | Quote posts. |
| `posts[].post.platform_specific.truthsocial.reblog_of.metrics.save_count` | `integer` or `null` | Saves, bookmarks or favorites. |
| `posts[].post.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. |
| `posts[].post.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. |
| `posts[].post.platform_specific.truthsocial.quoted_post.id` | `string` or `null` | Its post ID. |
| `posts[].post.platform_specific.truthsocial.quoted_post.url` | `string` (uri) or `null` | Its URL; null when its author is unknown. |
| `posts[].post.platform_specific.truthsocial.quoted_post.published_at` | `string` (date-time) or `null` | When it was posted, RFC 3339 UTC. |
| `posts[].post.platform_specific.truthsocial.quoted_post.author` | `object` | Its author. |
| `posts[].post.platform_specific.truthsocial.quoted_post.author.id` | `string` or `null` | Platform-native account ID; null when only the handle is known. |
| `posts[].post.platform_specific.truthsocial.quoted_post.author.username` | `string` or `null` | Handle without the @; null when the account has none. |
| `posts[].post.platform_specific.truthsocial.quoted_post.author.display_name` | `string` or `null` | Display name shown on the profile. |
| `posts[].post.platform_specific.truthsocial.quoted_post.author.url` | `string` (uri) or `null` | Canonical profile URL. |
| `posts[].post.platform_specific.truthsocial.quoted_post.author.avatar_url` | `string` (uri) or `null` | Profile picture URL. Platform CDN URLs can expire within hours. |
| `posts[].post.platform_specific.truthsocial.quoted_post.author.is_verified` | `boolean` or `null` | Platform verification badge; null where the platform has no badge. |
| `posts[].post.platform_specific.truthsocial.quoted_post.metrics` | `object` | Its own counts: likes, replies and ReTruths. Null counts when only its id is known. |
| `posts[].post.platform_specific.truthsocial.quoted_post.metrics.view_count` | `integer` or `null` | Views or plays. |
| `posts[].post.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. |
| `posts[].post.platform_specific.truthsocial.quoted_post.metrics.comment_count` | `integer` or `null` | Comments and replies. |
| `posts[].post.platform_specific.truthsocial.quoted_post.metrics.share_count` | `integer` or `null` | Shares or sends (not reposts). |
| `posts[].post.platform_specific.truthsocial.quoted_post.metrics.repost_count` | `integer` or `null` | Reposts, retweets or reshares. |
| `posts[].post.platform_specific.truthsocial.quoted_post.metrics.quote_count` | `integer` or `null` | Quote posts. |
| `posts[].post.platform_specific.truthsocial.quoted_post.metrics.save_count` | `integer` or `null` | Saves, bookmarks or favorites. |
| `posts[].post.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. |
| `posts[].post.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. |
| `posts[].post.platform_specific.truthsocial.reply_to.id` | `string` or `null` | Its post ID. |
| `posts[].post.platform_specific.truthsocial.reply_to.url` | `string` (uri) or `null` | Its URL; null when its author is unknown. |
| `posts[].post.platform_specific.truthsocial.reply_to.published_at` | `string` (date-time) or `null` | When it was posted, RFC 3339 UTC. |
| `posts[].post.platform_specific.truthsocial.reply_to.author` | `object` | Its author. |
| `posts[].post.platform_specific.truthsocial.reply_to.author.id` | `string` or `null` | Platform-native account ID; null when only the handle is known. |
| `posts[].post.platform_specific.truthsocial.reply_to.author.username` | `string` or `null` | Handle without the @; null when the account has none. |
| `posts[].post.platform_specific.truthsocial.reply_to.author.display_name` | `string` or `null` | Display name shown on the profile. |
| `posts[].post.platform_specific.truthsocial.reply_to.author.url` | `string` (uri) or `null` | Canonical profile URL. |
| `posts[].post.platform_specific.truthsocial.reply_to.author.avatar_url` | `string` (uri) or `null` | Profile picture URL. Platform CDN URLs can expire within hours. |
| `posts[].post.platform_specific.truthsocial.reply_to.author.is_verified` | `boolean` or `null` | Platform verification badge; null where the platform has no badge. |
| `posts[].post.platform_specific.truthsocial.reply_to.metrics` | `object` | Its own counts: likes, replies and ReTruths. Null counts when only its id is known. |
| `posts[].post.platform_specific.truthsocial.reply_to.metrics.view_count` | `integer` or `null` | Views or plays. |
| `posts[].post.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. |
| `posts[].post.platform_specific.truthsocial.reply_to.metrics.comment_count` | `integer` or `null` | Comments and replies. |
| `posts[].post.platform_specific.truthsocial.reply_to.metrics.share_count` | `integer` or `null` | Shares or sends (not reposts). |
| `posts[].post.platform_specific.truthsocial.reply_to.metrics.repost_count` | `integer` or `null` | Reposts, retweets or reshares. |
| `posts[].post.platform_specific.truthsocial.reply_to.metrics.quote_count` | `integer` or `null` | Quote posts. |
| `posts[].post.platform_specific.truthsocial.reply_to.metrics.save_count` | `integer` or `null` | Saves, bookmarks or favorites. |
| `posts[].post.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. |
| `posts[].post.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. |
| `posts[].post.platform_specific.truthsocial.group.id` | `string` or `null` | The group's ID. |
| `posts[].post.platform_specific.truthsocial.group.slug` | `string` or `null` | The group's name in its URL (truthsocial.com/group/\<slug>). |
| `posts[].post.platform_specific.truthsocial.group.display_name` | `string` or `null` | The group's name. |
| `posts[].post.platform_specific.truthsocial.group.url` | `string` (uri) or `null` | The group's page. |
| `posts[].post.platform_specific.truthsocial.group.member_count` | `integer` or `null` | Members of the group. |
| `posts[].post.platform_specific.truthsocial.link` | `object` or `null` | The link preview card the post shows; null when none. |
| `posts[].post.platform_specific.truthsocial.link.url` | `string` (uri) or `null` | The linked page. |
| `posts[].post.platform_specific.truthsocial.link.title` | `string` or `null` | The card's headline. |
| `posts[].post.platform_specific.truthsocial.link.description` | `string` or `null` | The card's summary of the page. |
| `posts[].post.platform_specific.truthsocial.link.image_url` | `string` (uri) or `null` | The card's image. |
| `posts[].post.platform_specific.truthsocial.link.provider` | `string` or `null` | The site the card names (www.foxnews.com). |
| `posts[].post.platform_specific.truthsocial.edited_at` | `string` (date-time) or `null` | When the text was last edited, RFC 3339 UTC; null when it never was. |
| `posts[].post.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. |
| `posts[].post.platform_specific.truthsocial.poll` | `object` or `null` | The poll the post carries (the reposted post's, on a ReTruth); null when it has none. |
| `posts[].post.platform_specific.truthsocial.poll.id` | `string` or `null` | The poll's ID. |
| `posts[].post.platform_specific.truthsocial.poll.expires_at` | `string` (date-time) or `null` | When voting closes (or closed), RFC 3339 UTC; null when it never does. |
| `posts[].post.platform_specific.truthsocial.poll.is_expired` | `boolean` or `null` | Whether voting has closed. |
| `posts[].post.platform_specific.truthsocial.poll.is_multiple_choice` | `boolean` or `null` | Whether a voter can pick several options. |
| `posts[].post.platform_specific.truthsocial.poll.vote_count` | `integer` or `null` | Votes cast, over all options. |
| `posts[].post.platform_specific.truthsocial.poll.voter_count` | `integer` or `null` | People who voted. |
| `posts[].post.platform_specific.truthsocial.poll.options` | `object[]` | The options, in the poll's order. |
| `posts[].post.platform_specific.truthsocial.poll.options[].title` | `string` or `null` | The option's text. |
| `posts[].post.platform_specific.truthsocial.poll.options[].vote_count` | `integer` or `null` | Votes for it. |
| `posts[].post.platform_specific.kick` | `object` or `null` | A Kick post's own fields. |
| `posts[].post.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. |
| `posts[].post.platform_specific.kick.livestream_id` | `string` or `null` | Kick's ID of the broadcast the clip was cut from. |
| `posts[].post.platform_specific.kick.category` | `object` or `null` | What the channel was streaming when the clip was made. |
| `posts[].post.platform_specific.kick.category.id` | `string` or `null` | Kick's category ID. |
| `posts[].post.platform_specific.kick.category.name` | `string` or `null` | Its name (Just Chatting). |
| `posts[].post.platform_specific.kick.category.slug` | `string` or `null` | Its name in links (kick.com/category/just-chatting). |
| `posts[].post.platform_specific.kick.category.parent_slug` | `string` or `null` | The parent category it is filed under (irl, games). |
| `posts[].post.platform_specific.kick.category.banner_url` | `string` (uri) or `null` | The category's banner image. |
| `posts[].post.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. |
| `posts[].post.platform_specific.kick.vod.id` | `string` or `null` | The video's ID, as in its link. |
| `posts[].post.platform_specific.kick.vod.url` | `string` (uri) or `null` | The video's page. |
| `posts[].post.platform_specific.kick.vod.title` | `string` or `null` | The video's title. |
| `posts[].post.platform_specific.kick.vod.offset_ms` | `integer` or `null` | Where in the video the clip starts, in milliseconds. |
| `posts[].post.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. |
| `posts[].post.platform_specific.kick.clipped_by.id` | `string` or `null` | Platform-native account ID; null when only the handle is known. |
| `posts[].post.platform_specific.kick.clipped_by.username` | `string` or `null` | Handle without the @; null when the account has none. |
| `posts[].post.platform_specific.kick.clipped_by.display_name` | `string` or `null` | Display name shown on the profile. |
| `posts[].post.platform_specific.kick.clipped_by.url` | `string` (uri) or `null` | Canonical profile URL. |
| `posts[].post.platform_specific.kick.clipped_by.avatar_url` | `string` (uri) or `null` | Profile picture URL. Platform CDN URLs can expire within hours. |
| `posts[].post.platform_specific.kick.clipped_by.is_verified` | `boolean` or `null` | Platform verification badge; null where the platform has no badge. |
| `posts[].post.platform_specific.kick.clipped_by_user_id` | `string` or `null` | Kick's user number of clipped_by, which is not its channel's ID. |
| `posts[].post.platform_specific.x` | `object` or `null` | An X (formerly Twitter) post's own fields. |
| `posts[].post.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. |
| `posts[].post.platform_specific.x.author_metrics.follower_count` | `integer` or `null` | Followers or subscribers. |
| `posts[].post.platform_specific.x.author_metrics.following_count` | `integer` or `null` | Accounts this profile follows. |
| `posts[].post.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). |
| `posts[].post.platform_specific.x.author_metrics.total_like_count` | `integer` or `null` | Likes received across all of the profile's posts (not likes given). |
| `posts[].post.platform_specific.x.author_metrics.total_view_count` | `integer` or `null` | Lifetime views across all of the profile's posts. |
| `posts[].post.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. |
| `posts[].post.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` |
| `posts[].post.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. |
| `posts[].post.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. |
| `posts[].post.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. |
| `posts[].post.platform_specific.x.reply_to_author.id` | `string` or `null` | Platform-native account ID; null when only the handle is known. |
| `posts[].post.platform_specific.x.reply_to_author.username` | `string` or `null` | Handle without the @; null when the account has none. |
| `posts[].post.platform_specific.x.reply_to_author.display_name` | `string` or `null` | Display name shown on the profile. |
| `posts[].post.platform_specific.x.reply_to_author.url` | `string` (uri) or `null` | Canonical profile URL. |
| `posts[].post.platform_specific.x.reply_to_author.avatar_url` | `string` (uri) or `null` | Profile picture URL. Platform CDN URLs can expire within hours. |
| `posts[].post.platform_specific.x.reply_to_author.is_verified` | `boolean` or `null` | Platform verification badge; null where the platform has no badge. |
| `posts[].post.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. |
| `posts[].post.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. |
| `posts[].post.platform_specific.x.quoted_post.id` | `string` or `null` | Its ID, as x.post takes it. |
| `posts[].post.platform_specific.x.quoted_post.url` | `string` (uri) or `null` | Its URL. |
| `posts[].post.platform_specific.x.quoted_post.text` | `string` or `null` | Its text, with the links written out. |
| `posts[].post.platform_specific.x.quoted_post.published_at` | `string` (date-time) or `null` | When it was posted, RFC 3339 UTC. |
| `posts[].post.platform_specific.x.quoted_post.author` | `object` | Its author. |
| `posts[].post.platform_specific.x.quoted_post.author.id` | `string` or `null` | Platform-native account ID; null when only the handle is known. |
| `posts[].post.platform_specific.x.quoted_post.author.username` | `string` or `null` | Handle without the @; null when the account has none. |
| `posts[].post.platform_specific.x.quoted_post.author.display_name` | `string` or `null` | Display name shown on the profile. |
| `posts[].post.platform_specific.x.quoted_post.author.url` | `string` (uri) or `null` | Canonical profile URL. |
| `posts[].post.platform_specific.x.quoted_post.author.avatar_url` | `string` (uri) or `null` | Profile picture URL. Platform CDN URLs can expire within hours. |
| `posts[].post.platform_specific.x.quoted_post.author.is_verified` | `boolean` or `null` | Platform verification badge; null where the platform has no badge. |
| `posts[].post.platform_specific.x.quoted_post.media` | `object[]` | Its attachments; \[\] for a text post. |
| `posts[].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` |
| `posts[].post.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. |
| `posts[].post.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. |
| `posts[].post.platform_specific.x.quoted_post.media[].thumbnail_url` | `string` (uri) or `null` | Poster or preview image URL. |
| `posts[].post.platform_specific.x.quoted_post.media[].width` | `integer` or `null` | Width in pixels. |
| `posts[].post.platform_specific.x.quoted_post.media[].height` | `integer` or `null` | Height in pixels. |
| `posts[].post.platform_specific.x.quoted_post.media[].duration_ms` | `integer` or `null` | Duration in milliseconds (video and audio only). |
| `posts[].post.platform_specific.x.quoted_post.media[].alt_text` | `string` or `null` | Accessibility text provided by the author or platform. |
| `posts[].post.platform_specific.x.quoted_post.metrics` | `object` | Its counts at fetch time. |
| `posts[].post.platform_specific.x.quoted_post.metrics.view_count` | `integer` or `null` | Views or plays. |
| `posts[].post.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. |
| `posts[].post.platform_specific.x.quoted_post.metrics.comment_count` | `integer` or `null` | Comments and replies. |
| `posts[].post.platform_specific.x.quoted_post.metrics.share_count` | `integer` or `null` | Shares or sends (not reposts). |
| `posts[].post.platform_specific.x.quoted_post.metrics.repost_count` | `integer` or `null` | Reposts, retweets or reshares. |
| `posts[].post.platform_specific.x.quoted_post.metrics.quote_count` | `integer` or `null` | Quote posts. |
| `posts[].post.platform_specific.x.quoted_post.metrics.save_count` | `integer` or `null` | Saves, bookmarks or favorites. |
| `posts[].post.platform_specific.x.reposted_post_id` | `string` or `null` | ID of the post this repost shows; null when this is no repost. |
| `posts[].post.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. |
| `posts[].post.platform_specific.x.reposted_post.id` | `string` or `null` | Its ID, as x.post takes it. |
| `posts[].post.platform_specific.x.reposted_post.url` | `string` (uri) or `null` | Its URL. |
| `posts[].post.platform_specific.x.reposted_post.text` | `string` or `null` | Its text, with the links written out. |
| `posts[].post.platform_specific.x.reposted_post.published_at` | `string` (date-time) or `null` | When it was posted, RFC 3339 UTC. |
| `posts[].post.platform_specific.x.reposted_post.author` | `object` | Its author. |
| `posts[].post.platform_specific.x.reposted_post.author.id` | `string` or `null` | Platform-native account ID; null when only the handle is known. |
| `posts[].post.platform_specific.x.reposted_post.author.username` | `string` or `null` | Handle without the @; null when the account has none. |
| `posts[].post.platform_specific.x.reposted_post.author.display_name` | `string` or `null` | Display name shown on the profile. |
| `posts[].post.platform_specific.x.reposted_post.author.url` | `string` (uri) or `null` | Canonical profile URL. |
| `posts[].post.platform_specific.x.reposted_post.author.avatar_url` | `string` (uri) or `null` | Profile picture URL. Platform CDN URLs can expire within hours. |
| `posts[].post.platform_specific.x.reposted_post.author.is_verified` | `boolean` or `null` | Platform verification badge; null where the platform has no badge. |
| `posts[].post.platform_specific.x.reposted_post.media` | `object[]` | Its attachments; \[\] for a text post. |
| `posts[].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` |
| `posts[].post.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. |
| `posts[].post.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. |
| `posts[].post.platform_specific.x.reposted_post.media[].thumbnail_url` | `string` (uri) or `null` | Poster or preview image URL. |
| `posts[].post.platform_specific.x.reposted_post.media[].width` | `integer` or `null` | Width in pixels. |
| `posts[].post.platform_specific.x.reposted_post.media[].height` | `integer` or `null` | Height in pixels. |
| `posts[].post.platform_specific.x.reposted_post.media[].duration_ms` | `integer` or `null` | Duration in milliseconds (video and audio only). |
| `posts[].post.platform_specific.x.reposted_post.media[].alt_text` | `string` or `null` | Accessibility text provided by the author or platform. |
| `posts[].post.platform_specific.x.reposted_post.metrics` | `object` | Its counts at fetch time. |
| `posts[].post.platform_specific.x.reposted_post.metrics.view_count` | `integer` or `null` | Views or plays. |
| `posts[].post.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. |
| `posts[].post.platform_specific.x.reposted_post.metrics.comment_count` | `integer` or `null` | Comments and replies. |
| `posts[].post.platform_specific.x.reposted_post.metrics.share_count` | `integer` or `null` | Shares or sends (not reposts). |
| `posts[].post.platform_specific.x.reposted_post.metrics.repost_count` | `integer` or `null` | Reposts, retweets or reshares. |
| `posts[].post.platform_specific.x.reposted_post.metrics.quote_count` | `integer` or `null` | Quote posts. |
| `posts[].post.platform_specific.x.reposted_post.metrics.save_count` | `integer` or `null` | Saves, bookmarks or favorites. |
| `posts[].post.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. |
| `posts[].post.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. |
| `posts[].post.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. |
| `posts[].post.platform_specific.x.cashtags` | `string[]` | Cashtags in the text, without the $, case kept; \[\] if none. |
| `posts[].post.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. |
| `posts[].post.platform_specific.x.links[].url` | `string` (uri) | Link target, absolute (https:// is added where the platform stores the link without a scheme). |
| `posts[].post.platform_specific.x.links[].title` | `string` or `null` | Link label shown by the platform. |
| `posts[].post.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. |
| `posts[].post.platform_specific.x.media_variants[].media_index` | `integer` | Which item of media this is a rendition of, from 0. |
| `posts[].post.platform_specific.x.media_variants[].url` | `string` (uri) | The file or playlist. |
| `posts[].post.platform_specific.x.media_variants[].content_type` | `string` or `null` | Its type (video/mp4, application/x-mpegURL). |
| `posts[].post.platform_specific.x.media_variants[].bitrate` | `integer` or `null` | Bits per second; null for a playlist, which holds several. |
| `posts[].post.platform_specific.x.poll` | `object` or `null` | The poll in the post, with exact vote counts; null when it has none. |
| `posts[].post.platform_specific.x.poll.choices` | `object[]` | The choices, in the post's order. |
| `posts[].post.platform_specific.x.poll.choices[].label` | `string` or `null` | The choice's text. |
| `posts[].post.platform_specific.x.poll.choices[].vote_count` | `integer` or `null` | Exact votes for it; null when X does not show them. |
| `posts[].post.platform_specific.x.poll.total_votes` | `integer` or `null` | Votes across every choice; null when a choice's count is hidden. |
| `posts[].post.platform_specific.x.poll.ends_at` | `string` (date-time) or `null` | When voting ends or ended, RFC 3339 UTC. |
| `posts[].post.platform_specific.x.poll.duration_minutes` | `integer` or `null` | How long voting runs, in minutes. |
| `posts[].post.platform_specific.x.poll.is_final` | `boolean` or `null` | True when voting is over and the counts are final. |
| `posts[].post.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. |
| `posts[].post.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. |
| `posts[].post.platform_specific.x.card.url` | `string` (uri) or `null` | Where the card leads, when X says. |
| `posts[].post.platform_specific.x.card.title` | `string` or `null` | Its headline. |
| `posts[].post.platform_specific.x.card.description` | `string` or `null` | Its description. |
| `posts[].post.platform_specific.x.card.domain` | `string` or `null` | The domain of the linked page. |
| `posts[].post.platform_specific.x.card.image_url` | `string` (uri) or `null` | Its largest image. |
| `posts[].post.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. |
| `posts[].post.platform_specific.x.article.id` | `string` or `null` | The article's own ID (x.com/i/article/\<id>), not the post's. |
| `posts[].post.platform_specific.x.article.preview_text` | `string` or `null` | The short preview X shows of the body. |
| `posts[].post.platform_specific.x.article.cover_image_url` | `string` (uri) or `null` | Its cover image. |
| `posts[].post.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. |
| `posts[].post.platform_specific.x.community` | `object` or `null` | The community the post was posted to; null when none. |
| `posts[].post.platform_specific.x.community.id` | `string` or `null` | The community's ID, as x.com/i/communities/\<id> shows it. |
| `posts[].post.platform_specific.x.community.name` | `string` or `null` | Its name; null when the source does not show it. |
| `posts[].post.platform_specific.telegram` | `object` or `null` | A Telegram post's own fields. |
| `posts[].post.platform_specific.telegram.message_id` | `integer` or `null` | The message's number within its channel or group: the last part of its link. |
| `posts[].post.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. |
| `posts[].post.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. |
| `posts[].post.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. |
| `posts[].post.platform_specific.telegram.is_edited` | `boolean` or `null` | Whether the post shows as edited. |
| `posts[].post.platform_specific.telegram.forwarded_from` | `object` or `null` | Where the post was forwarded from; null when it was not forwarded. |
| `posts[].post.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. |
| `posts[].post.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. |
| `posts[].post.platform_specific.telegram.forwarded_from.post_id` | `string` or `null` | The original post's id, when the link names one. |
| `posts[].post.platform_specific.telegram.forwarded_from.author` | `string` or `null` | The admin who signed the original; null when unsigned. |
| `posts[].post.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. |
| `posts[].post.platform_specific.telegram.reply_to.url` | `string` (uri) or `null` | The replied-to message's link; null when the bar has none. |
| `posts[].post.platform_specific.telegram.reply_to.post_id` | `string` or `null` | The replied-to post's id, when the link names one. |
| `posts[].post.platform_specific.telegram.reply_to.author` | `string` or `null` | The name the bar shows; null when it shows none. |
| `posts[].post.platform_specific.telegram.reply_to.text` | `string` or `null` | The snippet the bar shows, often cut short. |
| `posts[].post.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. |
| `posts[].post.platform_specific.telegram.reactions[].emoji` | `string` or `null` | The unicode emoji; null for a custom emoji or Telegram Stars. |
| `posts[].post.platform_specific.telegram.reactions[].custom_emoji_id` | `string` or `null` | The custom emoji's ID; null for a unicode one. |
| `posts[].post.platform_specific.telegram.reactions[].is_paid` | `boolean` or `null` | Whether it is a paid reaction (Telegram Stars). |
| `posts[].post.platform_specific.telegram.reactions[].count` | `integer` or `null` | How many; rounded by Telegram from the thousands up (see approximate_fields). |
| `posts[].post.platform_specific.telegram.link_preview` | `object` or `null` | The link preview card the post shows; null when none. |
| `posts[].post.platform_specific.telegram.link_preview.url` | `string` (uri) or `null` | The previewed link. |
| `posts[].post.platform_specific.telegram.link_preview.site_name` | `string` or `null` | The site's name. |
| `posts[].post.platform_specific.telegram.link_preview.title` | `string` or `null` | The page's title. |
| `posts[].post.platform_specific.telegram.link_preview.description` | `string` or `null` | The page's description, as the card shows it. |
| `posts[].post.platform_specific.telegram.link_preview.image_url` | `string` (uri) or `null` | The card's image. |
| `posts[].post.platform_specific.telegram.poll` | `object` or `null` | The poll the post carries; null when none. |
| `posts[].post.platform_specific.telegram.poll.question` | `string` or `null` | The question. |
| `posts[].post.platform_specific.telegram.poll.type` | `string` or `null` | Telegram's label, lower case: anonymous poll, public poll, anonymous quiz, … |
| `posts[].post.platform_specific.telegram.poll.voter_count` | `integer` or `null` | People who voted; rounded by Telegram from the thousands up (see approximate_fields). |
| `posts[].post.platform_specific.telegram.poll.options` | `object[]` | The options, in the poll's order. |
| `posts[].post.platform_specific.telegram.poll.options[].text` | `string` or `null` | The option's text. |
| `posts[].post.platform_specific.telegram.poll.options[].percent` | `number` or `null` | Its share of the votes, in percent, as Telegram rounds it. |
| `posts[].post.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. |
| `posts[].post.platform_specific.telegram.document.title` | `string` or `null` | The file's name, or an audio file's title. |
| `posts[].post.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. |
| `posts[].post.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. |
| `posts[].post.platform_specific.telegram.links` | `string[]` | The link targets in the post's text, in order, those behind a word included; \[\] when none. |
| `posts[].post.platform_specific.telegram.buttons` | `object[]` | The buttons under the post that open a link; \[\] when none. |
| `posts[].post.platform_specific.telegram.buttons[].text` | `string` or `null` | The button's label. |
| `posts[].post.platform_specific.telegram.buttons[].url` | `string` or `null` | What it opens: a web link or a tg:// link. |
| `posts[].post.platform_specific.linkedin` | `object` or `null` | A LinkedIn post's own fields. |
| `posts[].post.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. |
| `posts[].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. |
| `posts[].post.platform_specific.linkedin.author_follower_count` | `integer` or `null` | The author's exact follower count. |
| `posts[].post.platform_specific.linkedin.is_author_influencer` | `boolean` or `null` | LinkedIn shows its Influencer badge beside the author's name. |
| `posts[].post.platform_specific.linkedin.is_edited` | `boolean` or `null` | LinkedIn marks the post as edited; null on an article. |
| `posts[].post.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. |
| `posts[].post.platform_specific.linkedin.link` | `object` or `null` | The link card the post shares (an article, an external video, a live event); null when none. |
| `posts[].post.platform_specific.linkedin.link.url` | `string` (uri) or `null` | The linked page (LinkedIn's redirect and tracking removed). |
| `posts[].post.platform_specific.linkedin.link.title` | `string` or `null` | The card's title. |
| `posts[].post.platform_specific.linkedin.link.source` | `string` or `null` | The card's second line: the publisher or its domain. |
| `posts[].post.platform_specific.linkedin.link.image_url` | `string` (uri) or `null` | The card's image. |
| `posts[].post.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. |
| `posts[].post.platform_specific.linkedin.document.title` | `string` or `null` | The document's title. |
| `posts[].post.platform_specific.linkedin.document.page_count` | `integer` or `null` | How many pages the document has (media has the first ones). |
| `posts[].post.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. |
| `posts[].post.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. |
| `posts[].post.platform_specific.linkedin.reshared_post` | `object` or `null` | The post this one reshares with commentary; null when it reshares none. |
| `posts[].post.platform_specific.linkedin.reshared_post.id` | `string` or `null` | Its activity ID. |
| `posts[].post.platform_specific.linkedin.reshared_post.url` | `string` (uri) or `null` | Its canonical link. |
| `posts[].post.platform_specific.linkedin.reshared_post.author` | `object` | Its author. |
| `posts[].post.platform_specific.linkedin.reshared_post.author.id` | `string` or `null` | Platform-native account ID; null when only the handle is known. |
| `posts[].post.platform_specific.linkedin.reshared_post.author.username` | `string` or `null` | Handle without the @; null when the account has none. |
| `posts[].post.platform_specific.linkedin.reshared_post.author.display_name` | `string` or `null` | Display name shown on the profile. |
| `posts[].post.platform_specific.linkedin.reshared_post.author.url` | `string` (uri) or `null` | Canonical profile URL. |
| `posts[].post.platform_specific.linkedin.reshared_post.author.avatar_url` | `string` (uri) or `null` | Profile picture URL. Platform CDN URLs can expire within hours. |
| `posts[].post.platform_specific.linkedin.reshared_post.author.is_verified` | `boolean` or `null` | Platform verification badge; null where the platform has no badge. |
| `posts[].post.platform_specific.linkedin.reshared_post.text` | `string` or `null` | Its text. |
| `posts[].post.platform_specific.linkedin.reshared_post.published_at` | `string` (date-time) or `null` | When it went public, RFC 3339 UTC. |
| `posts[].post.platform_specific.linkedin.reshared_post.media` | `object[]` | Its attachments; \[\] for a text post. |
| `posts[].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` |
| `posts[].post.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. |
| `posts[].post.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. |
| `posts[].post.platform_specific.linkedin.reshared_post.media[].thumbnail_url` | `string` (uri) or `null` | Poster or preview image URL. |
| `posts[].post.platform_specific.linkedin.reshared_post.media[].width` | `integer` or `null` | Width in pixels. |
| `posts[].post.platform_specific.linkedin.reshared_post.media[].height` | `integer` or `null` | Height in pixels. |
| `posts[].post.platform_specific.linkedin.reshared_post.media[].duration_ms` | `integer` or `null` | Duration in milliseconds (video and audio only). |
| `posts[].post.platform_specific.linkedin.reshared_post.media[].alt_text` | `string` or `null` | Accessibility text provided by the author or platform. |
| `posts[].post.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. |
| `posts[].post.platform_specific.linkedin.top_comments[].id` | `string` or `null` | The comment's ID. |
| `posts[].post.platform_specific.linkedin.top_comments[].author` | `object` | The commenter. |
| `posts[].post.platform_specific.linkedin.top_comments[].author.id` | `string` or `null` | Platform-native account ID; null when only the handle is known. |
| `posts[].post.platform_specific.linkedin.top_comments[].author.username` | `string` or `null` | Handle without the @; null when the account has none. |
| `posts[].post.platform_specific.linkedin.top_comments[].author.display_name` | `string` or `null` | Display name shown on the profile. |
| `posts[].post.platform_specific.linkedin.top_comments[].author.url` | `string` (uri) or `null` | Canonical profile URL. |
| `posts[].post.platform_specific.linkedin.top_comments[].author.avatar_url` | `string` (uri) or `null` | Profile picture URL. Platform CDN URLs can expire within hours. |
| `posts[].post.platform_specific.linkedin.top_comments[].author.is_verified` | `boolean` or `null` | Platform verification badge; null where the platform has no badge. |
| `posts[].post.platform_specific.linkedin.top_comments[].text` | `string` or `null` | The comment's text. |
| `posts[].post.platform_specific.linkedin.top_comments[].published_at` | `string` (date-time) or `null` | When it was written, RFC 3339 UTC. |
| `posts[].post.platform_specific.linkedin.top_comments[].like_count` | `integer` or `null` | Its reactions. |
| `posts[].post.platform_specific.linkedin.modified_at` | `string` (date-time) or `null` | When an article was last edited, RFC 3339 UTC; null on a post. |
| `posts[].post.platform_specific.linkedin.more_articles` | `object[]` | An article's More articles by its author, in LinkedIn's order; \[\] on a post. |
| `posts[].post.platform_specific.linkedin.more_articles[].title` | `string` or `null` | The article's title. |
| `posts[].post.platform_specific.linkedin.more_articles[].url` | `string` (uri) or `null` | Its link. |
| `posts[].post.platform_specific.linkedin.more_articles[].description` | `string` or `null` | Its first lines. |
| `posts[].post.platform_specific.linkedin.more_articles[].published_on` | `string` or `null` | The day it was published, as a date (YYYY-MM-DD). |
| `posts[].post.platform_specific.linkedin.more_articles[].like_count` | `integer` or `null` | Its reactions. |
| `posts[].post.platform_specific.linkedin.more_articles[].comment_count` | `integer` or `null` | Its comments. |
| `posts[].post.platform_specific.bluesky` | `object` or `null` | A Bluesky post's own fields. |
| `posts[].post.platform_specific.bluesky.cid` | `string` or `null` | The content hash (CID) of this version of the post's record. |
| `posts[].post.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. |
| `posts[].post.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. |
| `posts[].post.platform_specific.bluesky.languages` | `string[]` | Every language the author tagged the post with, in the author's order; \[\] when none. |
| `posts[].post.platform_specific.bluesky.labels` | `string[]` | Moderation and self labels on the post (porn, sexual, nudity, graphic-media, spam, …), as Bluesky names them; \[\] when none. |
| `posts[].post.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. |
| `posts[].post.platform_specific.bluesky.link_card` | `object` or `null` | The link preview card the post shows; null when none. |
| `posts[].post.platform_specific.bluesky.link_card.url` | `string` (uri) or `null` | The page it links to. |
| `posts[].post.platform_specific.bluesky.link_card.title` | `string` or `null` | The card's title. |
| `posts[].post.platform_specific.bluesky.link_card.description` | `string` or `null` | The card's description. |
| `posts[].post.platform_specific.bluesky.link_card.thumbnail_url` | `string` (uri) or `null` | The card's image. |
| `posts[].post.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. |
| `posts[].post.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. |
| `posts[].post.platform_specific.bluesky.quoted_post.id` | `string` or `null` | Its at:// ID. |
| `posts[].post.platform_specific.bluesky.quoted_post.url` | `string` (uri) or `null` | Its URL. |
| `posts[].post.platform_specific.bluesky.quoted_post.text` | `string` or `null` | Its text. |
| `posts[].post.platform_specific.bluesky.quoted_post.published_at` | `string` (date-time) or `null` | When it went public, RFC 3339 UTC. |
| `posts[].post.platform_specific.bluesky.quoted_post.author` | `object` | Its author. |
| `posts[].post.platform_specific.bluesky.quoted_post.author.id` | `string` or `null` | Platform-native account ID; null when only the handle is known. |
| `posts[].post.platform_specific.bluesky.quoted_post.author.username` | `string` or `null` | Handle without the @; null when the account has none. |
| `posts[].post.platform_specific.bluesky.quoted_post.author.display_name` | `string` or `null` | Display name shown on the profile. |
| `posts[].post.platform_specific.bluesky.quoted_post.author.url` | `string` (uri) or `null` | Canonical profile URL. |
| `posts[].post.platform_specific.bluesky.quoted_post.author.avatar_url` | `string` (uri) or `null` | Profile picture URL. Platform CDN URLs can expire within hours. |
| `posts[].post.platform_specific.bluesky.quoted_post.author.is_verified` | `boolean` or `null` | Platform verification badge; null where the platform has no badge. |
| `posts[].post.platform_specific.bluesky.quoted_post.media` | `object[]` | Its images and video; \[\] when none. |
| `posts[].post.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` |
| `posts[].post.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. |
| `posts[].post.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. |
| `posts[].post.platform_specific.bluesky.quoted_post.media[].thumbnail_url` | `string` (uri) or `null` | Poster or preview image URL. |
| `posts[].post.platform_specific.bluesky.quoted_post.media[].width` | `integer` or `null` | Width in pixels. |
| `posts[].post.platform_specific.bluesky.quoted_post.media[].height` | `integer` or `null` | Height in pixels. |
| `posts[].post.platform_specific.bluesky.quoted_post.media[].duration_ms` | `integer` or `null` | Duration in milliseconds (video and audio only). |
| `posts[].post.platform_specific.bluesky.quoted_post.media[].alt_text` | `string` or `null` | Accessibility text provided by the author or platform. |
| `posts[].post.platform_specific.bluesky.quoted_post.metrics` | `object` | Its own counts at fetch time. |
| `posts[].post.platform_specific.bluesky.quoted_post.metrics.view_count` | `integer` or `null` | Views or plays. |
| `posts[].post.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. |
| `posts[].post.platform_specific.bluesky.quoted_post.metrics.comment_count` | `integer` or `null` | Comments and replies. |
| `posts[].post.platform_specific.bluesky.quoted_post.metrics.share_count` | `integer` or `null` | Shares or sends (not reposts). |
| `posts[].post.platform_specific.bluesky.quoted_post.metrics.repost_count` | `integer` or `null` | Reposts, retweets or reshares. |
| `posts[].post.platform_specific.bluesky.quoted_post.metrics.quote_count` | `integer` or `null` | Quote posts. |
| `posts[].post.platform_specific.bluesky.quoted_post.metrics.save_count` | `integer` or `null` | Saves, bookmarks or favorites. |
| `posts[].post.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. |
| `posts[].post.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. |
| `posts[].post.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. |
| `posts[].post.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. |
| `posts[].post.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. |
| `posts[].post.platform_specific.bluesky.reposted_by.id` | `string` or `null` | Platform-native account ID; null when only the handle is known. |
| `posts[].post.platform_specific.bluesky.reposted_by.username` | `string` or `null` | Handle without the @; null when the account has none. |
| `posts[].post.platform_specific.bluesky.reposted_by.display_name` | `string` or `null` | Display name shown on the profile. |
| `posts[].post.platform_specific.bluesky.reposted_by.url` | `string` (uri) or `null` | Canonical profile URL. |
| `posts[].post.platform_specific.bluesky.reposted_by.avatar_url` | `string` (uri) or `null` | Profile picture URL. Platform CDN URLs can expire within hours. |
| `posts[].post.platform_specific.bluesky.reposted_by.is_verified` | `boolean` or `null` | Platform verification badge; null where the platform has no badge. |
| `posts[].post.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. |
| `posts[].post.platform_specific.soundcloud` | `object` or `null` | A SoundCloud track's own fields. |
| `posts[].post.platform_specific.soundcloud.genre` | `string` or `null` | The genre the uploader chose, as written; null when none. |
| `posts[].post.platform_specific.soundcloud.tags` | `string[]` | The uploader's tags, without the quotes SoundCloud keeps around a tag of several words; \[\] when none. |
| `posts[].post.platform_specific.soundcloud.caption` | `string` or `null` | The short line the uploader wrote beside the track; null when none. |
| `posts[].post.platform_specific.soundcloud.permalink` | `string` or `null` | The track's name in its link (soundcloud.com/\<artist>/\<permalink>). |
| `posts[].post.platform_specific.soundcloud.license` | `string` or `null` | The license the track is published under (all-rights-reserved, cc-by, …). |
| `posts[].post.platform_specific.soundcloud.label_name` | `string` or `null` | The record label the uploader credits; null when none. |
| `posts[].post.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. |
| `posts[].post.platform_specific.soundcloud.album_title` | `string` or `null` | The album in the release metadata; null when none. |
| `posts[].post.platform_specific.soundcloud.release_title` | `string` or `null` | The release in the release metadata; null when none. |
| `posts[].post.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. |
| `posts[].post.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. |
| `posts[].post.platform_specific.soundcloud.last_modified_at` | `string` (date-time) or `null` | When the uploader last changed the track, RFC 3339 UTC. |
| `posts[].post.platform_specific.soundcloud.isrc` | `string` or `null` | International Standard Recording Code; null when none. |
| `posts[].post.platform_specific.soundcloud.upc` | `string` or `null` | The release's UPC or EAN barcode; null when none. |
| `posts[].post.platform_specific.soundcloud.publisher` | `string` or `null` | The music publisher in the release metadata; null when none. |
| `posts[].post.platform_specific.soundcloud.writer_composer` | `string` or `null` | The writer or composer in the release metadata; null when none. |
| `posts[].post.platform_specific.soundcloud.p_line` | `string` or `null` | The sound recording copyright line (℗); null when none. |
| `posts[].post.platform_specific.soundcloud.c_line` | `string` or `null` | The composition copyright line (©); null when none. |
| `posts[].post.platform_specific.soundcloud.is_explicit` | `boolean` or `null` | The release metadata marks the track explicit; null when it does not say. |
| `posts[].post.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. |
| `posts[].post.platform_specific.soundcloud.download_count` | `integer` or `null` | Downloads. |
| `posts[].post.platform_specific.soundcloud.is_downloadable` | `boolean` or `null` | The uploader allows downloads of the track. |
| `posts[].post.platform_specific.soundcloud.is_streamable` | `boolean` or `null` | SoundCloud lets the track be played. |
| `posts[].post.platform_specific.soundcloud.is_commentable` | `boolean` or `null` | The uploader allows comments on the track. |
| `posts[].post.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. |
| `posts[].post.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. |
| `posts[].post.platform_specific.soundcloud.embeddable_by` | `string` or `null` | Who may embed the player (all, me, none). |
| `posts[].post.platform_specific.soundcloud.purchase_url` | `string` (uri) or `null` | The buy link the uploader set; null when none. |
| `posts[].post.platform_specific.soundcloud.purchase_title` | `string` or `null` | The label of the buy link; null when SoundCloud's default is used. |
| `posts[].post.platform_specific.soundcloud.waveform_url` | `string` (uri) or `null` | The JSON file of the track's waveform, which SoundCloud's player draws. |
| `posts[].post.platform_specific.soundcloud.visual_url` | `string` (uri) or `null` | The banner image the uploader set for the track's page; null when none. |
| `posts[].post.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. |
| `posts[].post.platform_specific.soundcloud.transcodings[].preset` | `string` or `null` | SoundCloud's name of the encoding (aac_160k, mp3_1_0, abr_sq, …). |
| `posts[].post.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. |
| `posts[].post.platform_specific.soundcloud.transcodings[].mime_type` | `string` or `null` | The audio's media type. |
| `posts[].post.platform_specific.soundcloud.transcodings[].quality` | `string` or `null` | SoundCloud's quality label: lq (lower), sq (standard) or hq (high). New values may be added. |
| `posts[].post.platform_specific.soundcloud.transcodings[].is_snipped` | `boolean` or `null` | Only a preview of the track, not all of it. |
| `posts[].post.platform_specific.soundcloud.transcodings[].duration_ms` | `integer` or `null` | Length of this encoding in milliseconds: the preview's on a snipped one. |
| `posts[].post.platform_specific.soundcloud.author_follower_count` | `integer` or `null` | The uploader's exact follower count. |
| `posts[].post.platform_specific.snapchat` | `object` or `null` | A Spotlight's own fields. |
| `posts[].post.platform_specific.snapchat.recommend_count` | `integer` or `null` | How many people recommended it. |
| `posts[].post.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. |
| `posts[].post.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. |
| `posts[].post.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. |
| `posts[].post.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. |
| `posts[].post.platform_specific.snapchat.keywords` | `string[]` | Search keywords Snapchat derived from the Snap, not the poster's hashtags; \[\] if none. |
| `posts[].post.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. |
| `posts[].post.platform_specific.snapchat.transcript_url` | `string` (uri) or `null` | Snapchat's timed transcript of the Snap, a WebVTT file; null when it has none. |
| `posts[].post.platform_specific.snapchat.sound` | `object` or `null` | The sound it uses; null when it credits none. |
| `posts[].post.platform_specific.snapchat.sound.id` | `string` or `null` | Snapchat's ID of the sound. |
| `posts[].post.platform_specific.snapchat.sound.title` | `string` or `null` | The sound's title (Original Sound for a poster's own). |
| `posts[].post.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. |
| `posts[].post.platform_specific.snapchat.sound.thumbnail_url` | `string` (uri) or `null` | The sound's cover image. |
| `posts[].post.platform_specific.snapchat.lens` | `object` or `null` | The Lens it was made with; null when it credits none. |
| `posts[].post.platform_specific.snapchat.lens.id` | `string` or `null` | The Lens's ID. |
| `posts[].post.platform_specific.snapchat.lens.name` | `string` or `null` | The Lens's name. |
| `posts[].post.platform_specific.snapchat.lens.url` | `string` (uri) or `null` | The Lens's page. |
| `posts[].post.platform_specific.snapchat.lens.thumbnail_url` | `string` (uri) or `null` | The Lens's icon. |
| `posts[].post.platform_specific.snapchat.place` | `object` or `null` | The place it was tagged at; null when it names none. |
| `posts[].post.platform_specific.snapchat.place.id` | `string` or `null` | The place's ID. |
| `posts[].post.platform_specific.snapchat.place.name` | `string` or `null` | The place's name. |
| `posts[].post.platform_specific.snapchat.place.category` | `string` or `null` | Its category as Snapchat words it (Bars, Amusement Park). |
| `posts[].post.platform_specific.snapchat.place.url` | `string` (uri) or `null` | The place's page. |
| `posts[].post.platform_specific.kwai` | `object` or `null` | A Kwai post's own fields. |
| `posts[].post.platform_specific.kwai.music` | `object` or `null` | The post's sound; null when Kwai names none. |
| `posts[].post.platform_specific.kwai.music.id` | `string` or `null` | Sound ID. |
| `posts[].post.platform_specific.kwai.music.title` | `string` or `null` | Sound title; null on most original sounds, which Kwai leaves untitled. |
| `posts[].post.platform_specific.kwai.music.author_name` | `string` or `null` | Who Kwai credits for the sound. |
| `posts[].post.platform_specific.kwai.music.is_original` | `boolean` or `null` | An original sound a creator uploaded (false: a catalogue track). |
| `posts[].post.platform_specific.kwai.music.duration_ms` | `integer` or `null` | Sound length in milliseconds. |
| `posts[].post.platform_specific.kwai.music.cover_url` | `string` (uri) or `null` | Sound cover image URL. |
| `posts[].post.platform_specific.kwai.music.play_url` | `string` (uri) or `null` | Audio file URL. |
| `posts[].post.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). |
| `posts[].post.platform_specific.kwai.author_verified_description` | `string` or `null` | What the author's verification badge says (Conta Oficial); null when the account has none. |
| `posts[].post.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. |
| `posts[].post.platform_specific.kwai.subcategory` | `string` or `null` | The narrower topic within category (Fashion dance); null when none. |
| `posts[].post.platform_specific.kwai.is_ai_generated` | `boolean` or `null` | Kwai labels the post as AI-generated; null when the source does not state it. |
| `posts[].post.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. |
| `posts[].post.platform_specific.kwai.tagged_accounts[].user_id` | `string` or `null` | The account's numeric user ID, accepted as a handle. |
| `posts[].post.platform_specific.kwai.tagged_accounts[].label` | `string` or `null` | The name the caption shows for it: its display name or username. |
| `posts[].post.platform_specific.kwai.place` | `object` or `null` | The place tagged on the post; null when none. |
| `posts[].post.platform_specific.kwai.place.id` | `string` or `null` | Place ID. |
| `posts[].post.platform_specific.kwai.place.name` | `string` or `null` | Place name. |
| `posts[].post.platform_specific.kwai.place.address` | `string` or `null` | Address line. |
| `posts[].post.platform_specific.kwai.place.latitude` | `number` or `null` | Latitude in degrees. |
| `posts[].post.platform_specific.kwai.place.longitude` | `number` or `null` | Longitude in degrees. |
| `posts[].post.platform_specific.kwai.duet_source` | `object` or `null` | The post this one duets; null when it is no duet. |
| `posts[].post.platform_specific.kwai.duet_source.post_id` | `string` or `null` | The source post's ID; null when the source does not state it exactly. |
| `posts[].post.platform_specific.kwai.duet_source.user_id` | `string` or `null` | The source author's numeric user ID, accepted as a handle. |
| `posts[].post.platform_specific.kwai.duet_source.display_name` | `string` or `null` | The source author's display name, as the duet shows it. |
| `posts[].post.platform_specific.twitch` | `object` or `null` | A Twitch video's or clip's own fields. |
| `posts[].post.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. |
| `posts[].post.platform_specific.twitch.category` | `object` or `null` | What it is filed under; null when nothing was set. |
| `posts[].post.platform_specific.twitch.category.id` | `string` or `null` | Twitch's ID of the category. |
| `posts[].post.platform_specific.twitch.category.name` | `string` or `null` | Its name (Just Chatting). |
| `posts[].post.platform_specific.twitch.category.slug` | `string` or `null` | Its name in links (twitch.tv/directory/category/just-chatting). |
| `posts[].post.platform_specific.twitch.category.box_art_url` | `string` (uri) or `null` | The category's cover image. |
| `posts[].post.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. |
| `posts[].post.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). |
| `posts[].post.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. |
| `posts[].post.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. |
| `posts[].post.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. |
| `posts[].post.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. |
| `posts[].post.platform_specific.twitch.chapters[].title` | `string` or `null` | What Twitch shows for it: the category's name. |
| `posts[].post.platform_specific.twitch.chapters[].position_ms` | `integer` or `null` | Where in the video it starts, in milliseconds. |
| `posts[].post.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. |
| `posts[].post.platform_specific.twitch.chapters[].category` | `object` or `null` | The category; null when Twitch doesn't say. |
| `posts[].post.platform_specific.twitch.chapters[].category.id` | `string` or `null` | Twitch's ID of the category. |
| `posts[].post.platform_specific.twitch.chapters[].category.name` | `string` or `null` | Its name (Just Chatting). |
| `posts[].post.platform_specific.twitch.chapters[].category.slug` | `string` or `null` | Its name in links (twitch.tv/directory/category/just-chatting). |
| `posts[].post.platform_specific.twitch.chapters[].category.box_art_url` | `string` (uri) or `null` | The category's cover image. |
| `posts[].post.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. |
| `posts[].post.platform_specific.twitch.embed_url` | `string` (uri) or `null` | The clip's embeddable player; null on a video. |
| `posts[].post.platform_specific.twitch.is_featured` | `boolean` or `null` | True when the channel features the clip; null on a video. |
| `posts[].post.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. |
| `posts[].post.platform_specific.twitch.clipped_by.id` | `string` or `null` | Platform-native account ID; null when only the handle is known. |
| `posts[].post.platform_specific.twitch.clipped_by.username` | `string` or `null` | Handle without the @; null when the account has none. |
| `posts[].post.platform_specific.twitch.clipped_by.display_name` | `string` or `null` | Display name shown on the profile. |
| `posts[].post.platform_specific.twitch.clipped_by.url` | `string` (uri) or `null` | Canonical profile URL. |
| `posts[].post.platform_specific.twitch.clipped_by.avatar_url` | `string` (uri) or `null` | Profile picture URL. Platform CDN URLs can expire within hours. |
| `posts[].post.platform_specific.twitch.clipped_by.is_verified` | `boolean` or `null` | Platform verification badge; null where the platform has no badge. |
| `posts[].post.platform_specific.twitch.broadcast_id` | `string` or `null` | Twitch's ID of the broadcast the clip was cut from; null on a video. |
| `posts[].post.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. |
| `posts[].post.platform_specific.twitch.source_video.id` | `string` or `null` | The video's number. |
| `posts[].post.platform_specific.twitch.source_video.url` | `string` (uri) or `null` | The video's page. |
| `posts[].post.platform_specific.twitch.source_video.title` | `string` or `null` | The video's title. |
| `posts[].post.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. |
| `posts[].post.platform_specific.twitch.author_follower_count` | `integer` or `null` | The channel's followers at fetch time, when the answer has them. |
| `posts[].post.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. |
| `posts[].post.platform_specific.twitch.renditions[].quality` | `string` or `null` | Twitch's name for the quality: the height in pixels (1080). |
| `posts[].post.platform_specific.twitch.renditions[].frame_rate` | `number` or `null` | Frames per second, when Twitch states it. |
| `posts[].post.platform_specific.twitch.renditions[].url` | `string` (uri) | The MP4 file, signed and expiring: see expires_at. |
| `posts[].post.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. |
| `posts[].post.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. |
| `posts[].post.platform_specific.twitch.vertical_renditions[].quality` | `string` or `null` | Twitch's name for the quality: the height in pixels (1080). |
| `posts[].post.platform_specific.twitch.vertical_renditions[].frame_rate` | `number` or `null` | Frames per second, when Twitch states it. |
| `posts[].post.platform_specific.twitch.vertical_renditions[].url` | `string` (uri) | The MP4 file, signed and expiring: see expires_at. |
| `posts[].post.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. |
| `posts[].post.platform_specific.spotify` | `object` or `null` | A Spotify track's or episode's own fields. |
| `posts[].post.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. |
| `posts[].post.platform_specific.spotify.album_title` | `string` or `null` | The title of that release. |
| `posts[].post.platform_specific.spotify.album_url` | `string` (uri) or `null` | That release's page. |
| `posts[].post.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` |
| `posts[].post.platform_specific.spotify.album_track_count` | `integer` or `null` | How many tracks that release has. |
| `posts[].post.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` |
| `posts[].post.platform_specific.spotify.disc_number` | `integer` or `null` | The disc of that release it is on, from 1. |
| `posts[].post.platform_specific.spotify.track_number` | `integer` or `null` | Its position on that disc, from 1. |
| `posts[].post.platform_specific.spotify.isrc` | `string` or `null` | International Standard Recording Code, 12 characters without hyphens; null when the source does not show it. |
| `posts[].post.platform_specific.spotify.label` | `string` or `null` | The record label of the release it is on; null when the source does not show it. |
| `posts[].post.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). |
| `posts[].post.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` |
| `posts[].post.platform_specific.spotify.copyrights[].text` | `string` | The line as the platform shows it. |
| `posts[].post.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). |
| `posts[].post.platform_specific.spotify.credits[].name` | `string` | Who, as Spotify names them. |
| `posts[].post.platform_specific.spotify.credits[].role` | `string` or `null` | What they did, as Spotify says (Composer, Producer, Main Artist, …). |
| `posts[].post.platform_specific.spotify.credits[].group` | `string` or `null` | The heading Spotify lists it under (Composition & Lyrics, Production & Engineering, …). |
| `posts[].post.platform_specific.spotify.credits[].artist_id` | `string` or `null` | Their artist ID (spotify.artist takes it); null when they have no artist page. |
| `posts[].post.platform_specific.spotify.is_explicit` | `boolean` or `null` | Spotify marks it explicit. |
| `posts[].post.platform_specific.spotify.is_playable` | `boolean` or `null` | Spotify plays it in the country SocialTap asked from, which is not necessarily yours. |
| `posts[].post.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. |
| `posts[].post.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). |
| `posts[].post.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). |
| `posts[].post.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. |
| `posts[].post.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. |
| `posts[].post.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. |
| `posts[].post.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. |
| `posts[].post.platform_specific.spotify.added_by.id` | `string` or `null` | Platform-native account ID; null when only the handle is known. |
| `posts[].post.platform_specific.spotify.added_by.username` | `string` or `null` | Handle without the @; null when the account has none. |
| `posts[].post.platform_specific.spotify.added_by.display_name` | `string` or `null` | Display name shown on the profile. |
| `posts[].post.platform_specific.spotify.added_by.url` | `string` (uri) or `null` | Canonical profile URL. |
| `posts[].post.platform_specific.spotify.added_by.avatar_url` | `string` (uri) or `null` | Profile picture URL. Platform CDN URLs can expire within hours. |
| `posts[].post.platform_specific.spotify.added_by.is_verified` | `boolean` or `null` | Platform verification badge; null where the platform has no badge. |
| `posts[].post.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. |
| `posts[].post.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. |
| `posts[].post.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. |
| `posts[].post.platform_specific.spotify.podcast_id` | `string` or `null` | An episode's show (spotify.podcast takes it); null on a track. |
| `posts[].post.platform_specific.spotify.is_paywalled` | `boolean` or `null` | An episode only subscribers can hear in full; null on a track. |
| `posts[].post.platform_specific.applemusic` | `object` or `null` | An Apple Music track's, music video's or radio episode's own fields. |
| `posts[].post.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. |
| `posts[].post.platform_specific.applemusic.rank` | `integer` or `null` | Position on the requested chart (1 = top); null off a chart. |
| `posts[].post.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. |
| `posts[].post.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. |
| `posts[].post.platform_specific.applemusic.album_title` | `string` or `null` | The title of the album it is on; null when on none. |
| `posts[].post.platform_specific.applemusic.album_url` | `string` (uri) or `null` | The album's page; null when on none. |
| `posts[].post.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. |
| `posts[].post.platform_specific.applemusic.disc_number` | `integer` or `null` | The disc of that album it is on, from 1. |
| `posts[].post.platform_specific.applemusic.track_number` | `integer` or `null` | Its position on that disc, from 1. |
| `posts[].post.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. |
| `posts[].post.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. |
| `posts[].post.platform_specific.applemusic.genres` | `string[]` | The genres Apple files it under, as shown in the answer's language, the main one first; \[\] when none. |
| `posts[].post.platform_specific.applemusic.is_explicit` | `boolean` or `null` | Apple marks it explicit. |
| `posts[].post.platform_specific.applemusic.content_rating` | `string` or `null` | explicit, or clean for an edited version of something explicit; null when Apple marks neither. |
| `posts[].post.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. |
| `posts[].post.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. |
| `posts[].post.platform_specific.applemusic.is_lyrics_available` | `boolean` or `null` | Apple has its lyrics (they are for subscribers: this answer does not hold them). |
| `posts[].post.platform_specific.applemusic.is_time_synced_lyrics_available` | `boolean` or `null` | Apple has its lyrics line by line in time with the audio. |
| `posts[].post.platform_specific.applemusic.is_apple_digital_master` | `boolean` or `null` | Carries Apple's Apple Digital Master badge. |
| `posts[].post.platform_specific.applemusic.is_mastered_for_itunes` | `boolean` or `null` | Carries Apple's Mastered for iTunes badge, which Apple now calls Apple Digital Master. |
| `posts[].post.platform_specific.applemusic.work_name` | `string` or `null` | The classical work this is part of; null on other music. |
| `posts[].post.platform_specific.applemusic.movement_name` | `string` or `null` | The movement of that work; null on other music. |
| `posts[].post.platform_specific.applemusic.movement_number` | `integer` or `null` | That movement's number in the work. |
| `posts[].post.platform_specific.applemusic.movement_count` | `integer` or `null` | How many movements the work has. |
| `posts[].post.platform_specific.applemusic.attribution` | `string` or `null` | Who a classical work is attributed to (its composer); null on other music. |
| `posts[].post.platform_specific.applemusic.is_4k` | `boolean` or `null` | A music video that comes in 4K; null on a song. |
| `posts[].post.platform_specific.applemusic.is_hdr` | `boolean` or `null` | A music video that comes in HDR; null on a song. |
| `posts[].post.platform_specific.applemusic.video_traits` | `string[]` | A music video's formats, as Apple names them; \[\] on a song or when none. |
| `posts[].post.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. |
| `posts[].post.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. |
| `posts[].post.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. |
| `posts[].post.platform_specific.applemusic.is_live` | `boolean` or `null` | A radio episode on the air now; null on other posts. |
| `posts[].post.platform_specific.pinterest` | `object` or `null` | A pin's own fields. |
| `posts[].post.platform_specific.pinterest.link_url` | `string` (uri) or `null` | The page the pin links to (its destination); null for a pin saved without one. |
| `posts[].post.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. |
| `posts[].post.platform_specific.pinterest.board` | `object` or `null` | The board the pin is saved to. |
| `posts[].post.platform_specific.pinterest.board.id` | `string` or `null` | The board's ID. |
| `posts[].post.platform_specific.pinterest.board.title` | `string` or `null` | The board's name. |
| `posts[].post.platform_specific.pinterest.board.url` | `string` (uri) or `null` | The board's link. |
| `posts[].post.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. |
| `posts[].post.platform_specific.pinterest.original_pinner.id` | `string` or `null` | Platform-native account ID; null when only the handle is known. |
| `posts[].post.platform_specific.pinterest.original_pinner.username` | `string` or `null` | Handle without the @; null when the account has none. |
| `posts[].post.platform_specific.pinterest.original_pinner.display_name` | `string` or `null` | Display name shown on the profile. |
| `posts[].post.platform_specific.pinterest.original_pinner.url` | `string` (uri) or `null` | Canonical profile URL. |
| `posts[].post.platform_specific.pinterest.original_pinner.avatar_url` | `string` (uri) or `null` | Profile picture URL. Platform CDN URLs can expire within hours. |
| `posts[].post.platform_specific.pinterest.original_pinner.is_verified` | `boolean` or `null` | Platform verification badge; null where the platform has no badge. |
| `posts[].post.platform_specific.pinterest.author_follower_count` | `integer` or `null` | The pinner's exact follower count; null when the source does not state it. |
| `posts[].post.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. |
| `posts[].post.platform_specific.pinterest.is_repin` | `boolean` or `null` | The pin is a save (repin) of another account's pin. |
| `posts[].post.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. |
| `posts[].post.platform_specific.pinterest.dominant_color` | `string` or `null` | The picture's dominant color, as #rrggbb. |
| `posts[].post.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. |
| `posts[].post.platform_specific.pinterest.interests` | `string[]` | The interests Pinterest files the pin under, each an ideas page of its own, in its order; \[\] when none. |
| `posts[].post.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. |
| `posts[].post.platform_specific.pinterest.is_ad` | `boolean` or `null` | The pin runs as an ad (a Promoted pin). |
| `posts[].post.platform_specific.amazon` | `object` or `null` | An Amazon influencer's storefront photo's or video's own fields. |
| `posts[].post.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. |
| `posts[].post.platform_specific.amazon.products[].asin` | `string` | The product's ASIN (what amazon.product takes). |
| `posts[].post.platform_specific.amazon.products[].url` | `string` (uri) | The product's page in the list's marketplace. |
| `posts[].post.platform_specific.amazon.products[].image_url` | `string` (uri) or `null` | The product's image URL, as the card shows it. |
| `posts[].post.platform_specific.amazon.caption_tracks` | `object[]` | The video's caption tracks (WebVTT, public); \[\] when none, and for photos. |
| `posts[].post.platform_specific.amazon.caption_tracks[].language` | `string` or `null` | Language code (en, …). |
| `posts[].post.platform_specific.amazon.caption_tracks[].url` | `string` (uri) or `null` | WebVTT file URL. |
| `posts[].post.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. |
| `posts[].post.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. |
| `posts[].is_counted` | `boolean` | True when the post enters the figures: by the account itself and not pinned. |
| `posts[].engagement_rate` | `number` or `null` | Interactions (likes + comments) per follower, as a fraction (0.042 = 4.2%); can exceed 1. Null when a count is unknown or there are no followers. |
| `posts[].view_engagement_rate` | `number` or `null` | Interactions (likes + comments) per view, as a fraction. Null when a count is unknown or there are no views. |
| `posts[].engagement_vs_median` | `number` or `null` | Interactions over the rated posts' median: 1 is typical for the account, 3 three times typical. |
| `posts[].views_vs_median` | `number` or `null` | Views over metrics.median_views_per_post: 1 is typical, 3 three times typical. |
| `metrics` | `object` | Figures over the counted posts (by the account, not pinned); each null when no counted post has its inputs. |
| `metrics.sampled_post_count` | `integer` or `null` | Posts in the sample, the length of posts; null when unreadable. |
| `metrics.counted_post_count` | `integer` or `null` | Sampled posts that enter the figures. |
| `metrics.rated_post_count` | `integer` or `null` | Counted posts with known like and comment counts: what interaction figures and rates are over. |
| `metrics.views_per_post` | `number` or `null` | Mean views per counted post with a view count. |
| `metrics.median_views_per_post` | `number` or `null` | Median views per counted post: the typical post, unmoved by one viral hit. |
| `metrics.likes_per_post` | `number` or `null` | Mean likes per counted post with a like count. |
| `metrics.comments_per_post` | `number` or `null` | Mean comments per counted post with a comment count. |
| `metrics.shares_per_post` | `number` or `null` | Mean shares per counted post with a share count. |
| `metrics.reposts_per_post` | `number` or `null` | Mean reposts per counted post with a repost count. |
| `metrics.quotes_per_post` | `number` or `null` | Mean quote posts per counted post with a quote count. |
| `metrics.saves_per_post` | `number` or `null` | Mean saves per counted post with a save count. |
| `metrics.interactions_per_post` | `number` or `null` | Mean interactions (likes + comments) per rated post; known without a follower count. |
| `metrics.engagement_rate` | `number` or `null` | Mean of the rated posts' engagement_rate (interactions per follower), as a fraction (0.042 = 4.2%). |
| `metrics.median_engagement_rate` | `number` or `null` | Median of the rated posts' engagement_rate. |
| `metrics.engagement_rate_stddev` | `number` or `null` | Population standard deviation of the rated posts' engagement_rate: how uneven they perform. Null under 2 rated posts. |
| `metrics.view_engagement_rate` | `number` or `null` | Mean of the rated posts' view_engagement_rate (interactions per view), as a fraction. |
| `metrics.comment_to_like_ratio` | `number` or `null` | The rated posts' comments over their likes. |
| `metrics.posts_per_week` | `number` or `null` | Posting cadence: intervals between counted posts per week from oldest_post_at to newest_post_at. |
| `metrics.formats` | `object[]` | The counted posts by post type, most posts first; \[\] when none are counted. |
| `metrics.formats[].type` | `string` | Post type (post.type). New values may be added; treat unknown values as other.<br>One of `video`, `image`, `carousel`, `text`, `link`, `audio` |
| `metrics.formats[].counted_post_count` | `integer` | Counted posts of this type. |
| `metrics.formats[].views_per_post` | `number` or `null` | Mean views per post of this type. |
| `metrics.formats[].interactions_per_post` | `number` or `null` | Mean interactions per rated post of this type. |
| `metrics.formats[].engagement_rate` | `number` or `null` | Mean engagement_rate of the rated posts of this type. |
| `oldest_post_at` | `string` (date-time) or `null` | Publish time of the oldest counted post, RFC 3339 UTC: where the sample starts. |
| `newest_post_at` | `string` (date-time) or `null` | Publish time of the newest counted post, RFC 3339 UTC: when the account last posted. |
| `top_post_id` | `string` or `null` | ID of the rated post with the most interactions (likes + comments); the first on a tie. |
| `bottom_post_id` | `string` or `null` | ID of the rated post with the fewest interactions; the first on a tie. |
| `platform_specific` | `object` | Fields only this platform has, under its ID (platform_specific.\<platform>); each null when unknown. |
| `approximate_fields` | `string[]` | JSON paths of figures computed from an approximate input (a rounded follower or view count, a relative publish time); a posts\[\] path means at least one post's. \[\] when all exact. |
| `unknown_fields` | `string[]` | JSON paths of lists whose \[\] means unknown rather than none (posts, metrics.formats). \[\] when every list is known. |

## Item errors

Besides the [request-level errors](https://socialtap.dev/docs/errors/index.md) every endpoint can return, engagement 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/engagement/) · [Docs index for AI agents](https://socialtap.dev/llms.txt) · [All docs in one file](https://socialtap.dev/llms-full.txt)
