# Compare platforms

One feature, every platform, side by side.

<Callout type="warn">
**Reddit is temporarily unavailable.** Reddit has blocked third-party apps from its API, so Zernio cannot post to Reddit, read Reddit messages or sync Reddit analytics. The Reddit columns describe it once it is back. Reddit Ads is not affected.
</Callout>

## Publishing
How each platform connects and what it publishes. Each platform page documents its own post types and fields.

| Platform | Connect | Post | Analytics | Media requirements |
|---|---|---|---|---|
| X | OAuth 2.0 | Text, Images, Videos, Threads | Yes | [View](/platforms/twitter/media#media-requirements) |
| Instagram | OAuth 2.0 | Feed, Stories, Reels, Carousels | Yes | [View](/platforms/instagram/media) |
| Facebook | OAuth 2.0 | Text, Images, Videos, Reels | Yes | [View](/platforms/facebook/media) |
| LinkedIn | OAuth 2.0 | Text, Images, Videos, Documents | Yes | [View](/platforms/linkedin/media) |
| TikTok | OAuth 2.0 | Videos | Yes | [View](/platforms/tiktok/media) |
| YouTube | OAuth 2.0 | Videos, Shorts | Yes | [View](/platforms/youtube/media) |
| Pinterest | OAuth 2.0 | Pins (Image/Video) | Yes | [View](/platforms/pinterest/media) |
| Reddit | OAuth 2.0 | Text, Images, Videos, Links | Limited | [View](/platforms/reddit/media) |
| Bluesky | App Password | Text, Images, Videos | Limited | [View](/platforms/bluesky/media) |
| Threads | OAuth 2.0 | Text, Images, Videos | Yes | [View](/platforms/threads/media) |
| Google Business Profile | OAuth 2.0 | Updates, Photos | Yes | [View](/platforms/google-business/media) |
| Snapchat (Closed beta) | OAuth 2.0 | Stories, Saved Stories, Spotlight | Yes | [View](/platforms/snapchat/media) |
| WhatsApp | Redirect / Credentials | Templates, Text, Media, Broadcasts, Flows | No | [View](/platforms/whatsapp/reference#media-requirements) |
| Telegram | Bot Token | Text, Images, Videos, Albums | No | [View](/platforms/telegram/fields#media-requirements) |
| Discord | OAuth 2.0 (Bot) | Messages, Embeds, Polls, Forum Posts, Threads | No | [View](/platforms/discord#quick-reference) |
| Slack | OAuth 2.0 (Bot) | Messages, Thread Replies | No | [View](/platforms/slack#quick-reference) |
| Shopify | OAuth 2.0 / Admin token | Blog articles (no social posts) | No | No |
| WordPress | OAuth 2.0 / App password | Blog articles (no social posts) | No | No |
| Wix | App install | Blog articles (no social posts) | No | No |
| Webflow | Site API token | Blog articles (no social posts) | No | No |
| HubSpot | OAuth app install | None (syncs inbox contacts and messages) | No | No |
| Google Analytics | OAuth 2.0 (Google) | None (reads GA4 reports) | Yes (GA4 reports, realtime and metadata) | No |
| Google | OAuth 2.0 (Google) | None (Gmail, Google Calendar, Google Drive, Google Contacts) | No | No |
| Microsoft | OAuth 2.0 (Microsoft) | None (Outlook mail, Outlook Calendar, OneDrive, Outlook contacts) | No | No |
## Analytics
The [Analytics API](/analytics/get-analytics) returns these metrics per platform:

| Platform | Impressions | Reach | Likes | Comments | Shares | Saves | Clicks | Views |
|---|---|---|---|---|---|---|---|---|
| X | Yes | No | Yes | Yes | Yes | No | Yes | Yes |
| Instagram | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes |
| Facebook | Yes | No | Yes | Yes | Yes | No | Yes | Yes |
| LinkedIn | Yes | Yes | Yes | Yes | Yes | Yes (LinkedIn saves: personal accounts only.) | Yes (LinkedIn clicks: organization accounts only.) | Yes (LinkedIn views: video posts only.) |
| TikTok | No | No | Yes | Yes | Yes | No | No | Yes |
| YouTube | No | No | Yes | Yes | Yes (YouTube shares come from the daily Analytics API, not the basic Data API.) | No | No | Yes |
| Pinterest | Yes | No | No | No | No | Yes | Yes | No |
| Reddit | No | No | Yes | Yes | No | No | No | No |
| Bluesky | No | No | Yes | Yes | Yes | No | No | No |
| Threads | Yes | No | Yes | Yes | Yes | No | No | Yes |
| Google Business Profile | No | No | No | No | No | No | No | No |
| Snapchat | No | Yes | No | No | Yes | No | No | Yes |
| WhatsApp | No | No | No | No | No | No | No | No |
| iMessage | No | No | No | No | No | No | No | No |
| Telegram | No | No | No | No | No | No | No | No |
| Discord | No | No | No | No | No | No | No | No |
| Slack | No | No | No | No | No | No | No | No |
Google deprecated per-post analytics with no replacement. Use the [Performance API](/analytics/get-google-business-performance) for location-level metrics (impressions, clicks, calls, directions, bookings).

Dedicated endpoints go further on 3 platforms: YouTube [audience demographics](/analytics/get-youtube-demographics) (age, gender, country), Google Business Profile [daily performance metrics](/analytics/get-google-business-performance) and [search keywords](/analytics/get-google-business-search-keywords), and the Instagram account, follower and Story endpoints listed on the [Instagram page](/platforms/instagram/analytics).

## Direct messages
The Inbox API serves DMs, comments and reviews from every platform through [Messages](/messages/list-inbox-conversations), [Comments](/comments/list-inbox-comments) and [Reviews](/reviews/list-inbox-reviews).

| Platform | List | Fetch | Send text | Attachments | Quick replies | Buttons | Edit | Archive |
|---|---|---|---|---|---|---|---|---|
| X | Yes | Yes | Yes | Yes | No | No | No | No |
| Instagram | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes |
| Facebook | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes |
| TikTok | Yes | Yes | Yes | Yes | No | No | No | Yes |
| Reddit | Yes | Yes | Yes | No | No | No | No | Yes |
| Bluesky | Yes | Yes | Yes | No | No | No | No | Yes |
| WhatsApp | Yes | Yes | Yes | Yes | No | No | No | Yes |
| iMessage | Yes | Yes | Yes | Yes | No | No | Yes (15 min) | Yes |
| Telegram | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| Slack | Yes | Yes | Yes | Yes | No | No | No | Yes |
| SMS | Yes | Yes | Yes | Yes | No | No | No | Yes |
Discord sends outbound DMs from the bot through `POST /v1/discord/dms`; replies do not arrive, so it is not part of the inbox. See the [Discord page](/platforms/discord/inbox).

## Comments
| Platform | List | Post | Reply | Delete | Like | Hide |
|---|---|---|---|---|---|---|
| X | Yes | Yes | Yes | Yes | Yes | Yes |
| Instagram | Yes | No | Yes | Yes | Limited release | Yes |
| Facebook | Yes | Yes | Yes | Yes | Yes | Yes |
| LinkedIn | Yes | Yes | Yes | Yes | Yes | No |
| TikTok | Yes | Yes | Yes | Yes | Yes | Yes |
| YouTube | Yes | Yes | Yes | Yes | No | No |
| Reddit | Yes | Yes | Yes | Yes | Yes | No |
| Bluesky | Yes | Yes | Yes | Yes | Yes | No |
| Threads | Yes | No | Yes | Yes | No | Yes |
[Like comment](/comments/like-inbox-comment) covers Facebook, X, Bluesky, Reddit, LinkedIn and TikTok. On LinkedIn it takes the composite comment URN as `commentId` and an optional `reactionType`.

On Instagram it is in limited release: it needs Meta's `instagram_manage_engagement` permission, which Zernio holds under Standard Access.

So it works for admins, developers and testers of Zernio's Meta app and returns a `403` with code `PLATFORM_BETA_RESTRICTED` for every other account. It also works only on accounts connected through Facebook Login ([Instagram comments](/platforms/instagram/inbox#comments)).

[Comment automations](/comment-automations/create-comment-automation) answer a keyword comment with a private-reply DM (and an optional public reply) on Instagram and Facebook.

On TikTok, Threads, LinkedIn and YouTube, which have no private reply to a comment, they post a public reply only.

TikTok (business accounts only) and Threads comments arrive by webhook; LinkedIn and YouTube are read by the comment poll, so the reply follows the comment by up to the poll interval.

X accounts are refused with a `400` (`platform_not_supported`) while X comment polling is off.

## Reviews
| Platform | List | Reply | Delete reply |
|---|---|---|---|
| Facebook | Yes | Yes | No |
| Google Business Profile | Yes | Yes | Yes |
## Webhooks
**Message and comment events**

| Platform | `comment.received` | `message.received` | `message.sent` |
|---|---|---|---|
| X | Yes | No | No |
| Instagram | Yes | Yes | Yes |
| Facebook | Yes | Yes | Yes |
| LinkedIn | Yes | No | No |
| TikTok | Yes | Yes | Yes |
| YouTube | Yes | No | No |
| Reddit | Yes | Yes | Yes |
| Bluesky | Yes | Yes | Yes |
| WhatsApp | No | Yes | Yes |
| iMessage | No | Yes | Yes |
| Telegram | No | Yes | Yes |
**Message lifecycle events (edits, unsends, delivery status)**

| Platform | `message.edited` | `message.deleted` | `message.delivered` | `message.read` | `message.failed` |
|---|---|---|---|---|---|
| X | No | No | No | No | No |
| Instagram | Yes | Yes | No | Yes | No |
| Facebook | Yes | No | Yes | Yes | No |
| Reddit | No | No | No | No | No |
| Bluesky | No | No | No | No | No |
| WhatsApp | Yes | Yes (business-side) | Yes | Yes | Yes |
| iMessage | No | No | Yes | No | Yes |
| Telegram | Yes | No | No | No | No |
A "no" means the platform's API does not expose the event. Slack fires `message.received` for DMs and mentions ([Slack page](/platforms/slack/inbox)).

`reaction.received` fires on Instagram, Facebook, WhatsApp, iMessage, Telegram and Slack. The [webhooks page](/webhooks) has every payload.

## Ads
The `/v1/ads` endpoints create campaigns, boost organic posts, manage audiences and read analytics on 7 ad networks:

| Platform | `Key` | Create | Boost | Audiences | Analytics |
|---|---|---|---|---|---|
| Meta Ads (Facebook and Instagram) | metaads | Yes | Yes | Customer list, website, lookalike, engagement | Yes |
| Google Ads | googleads | Search, Display, Performance Max and Demand Gen | Yes (engagement, traffic, awareness, video_views) | Customer Match | Yes |
| LinkedIn Ads | linkedinads | Yes | Yes | Contact list, company list, engagement retargeting, website retargeting | Yes |
| TikTok Ads | tiktokads | Yes | Spark Ads | Customer list | Yes |
| Pinterest Ads | pinterestads | Yes | Yes | Customer list | Yes |
| X Ads | xads | Yes | Yes | Tailored Audiences | Yes |
| OpenAI Ads (ChatGPT) | openaiads | Yes | No | No | Yes |
| Reddit Ads | redditads | Yes | Yes | Target by id (built in Reddit Ads Manager) | Yes |
| Microsoft Ads | microsoftads | Yes | No | No | Yes |
**Ad hierarchy**

| Platform | Top level | Middle | Bottom |
|---|---|---|---|
| Meta Ads | Campaign | Ad Set | Ad |
| Google Ads | Campaign | Ad Group | Ad |
| LinkedIn Ads | Campaign Group | Campaign | Creative |
| TikTok Ads | Campaign | Ad Group | Ad |
| Pinterest Ads | Campaign | Ad Group | Pin |
| X Ads | Campaign | Line Item | Promoted Tweet |
| OpenAI Ads | Campaign | Ad Group | Chat Card Ad |
| Reddit Ads | Campaign | Ad Group | Ad |
| Microsoft Ads | Campaign | Ad Group | Ad |
Each ad platform page has the create and boost calls in Node.js, Python and curl.

## Settings & limits
**Account settings**

| Platform | Feature | Endpoint |
|----------|---------|----------|
| Facebook | Persistent menu | `/v1/accounts/{accountId}/messenger-menu` |
| Facebook | Greeting text | `/v1/accounts/{accountId}/messenger-greeting` |
| Facebook | Get Started button | `/v1/accounts/{accountId}/messenger-get-started` |
| Facebook | Ice breakers | `/v1/accounts/{accountId}/messenger-ice-breakers` |
| Instagram | Ice breakers | `/v1/accounts/{accountId}/instagram-ice-breakers` |
| Instagram | Persistent menu | `/v1/accounts/{accountId}/messenger-menu` |
| WhatsApp | Ice breakers and slash commands | `/v1/whatsapp/conversational-automation` |
| Telegram | Bot commands | `/v1/accounts/{accountId}/telegram-commands` |

[Account settings](/account-settings/get-messenger-menu) documents each endpoint; the WhatsApp one is under [WhatsApp](/whatsapp/set-whatsapp-conversational-automation).

**No inbox**

| Platform | Status | Notes |
|----------|--------|-------|
| Pinterest | No API | Pinterest exposes no DMs or comments |
| Snapchat | No API | Snapchat exposes no DMs or comments |

**Platform limitations**

| Platform | Limitation |
|----------|------------|
| Instagram | Comment likes in limited release |
| X | DMs require the `dm.read` and `dm.write` scopes, no archive or unarchive, reply search cached for 2 minutes |
| Bluesky | No DM attachments, liking a comment requires its `cid` |
| Threads | No DMs, no comment likes; a comment is a reply to the thread, hide and unhide supported |
| Reddit | No DM attachments |
| Telegram | Bot-based, media limits (photos 10 MB, videos 50 MB) |
| YouTube | No DMs, no comment likes |
| LinkedIn | Organization accounts only, comment likes need the social-feed scopes |
| WhatsApp | Template messages required outside the 24-hour window, no comments |
| iMessage | Requires usage-based billing; new contacts paced by Apple (about one every 15 minutes per sender); no comments |
| TikTok | Accounts connected through TikTok's Business app only; DMs need a Business Account outside the EEA, Switzerland and the UK, and are replies only |