<!-- https://cutedyno.com/docs/platforms -->

# Platforms

What each network accepts, what it requires, and where they differ.

CuteDyno takes one post and publishes it five different ways. The API hides most of that, but not all of it — a platform that requires a video title, or refuses a video over a certain length, cannot be abstracted away.

This section covers what is specific to each network. Everything common to all of them is in [Publishing](/docs/publishing).

## At a glance

| | Text | Images | Video | Notes |
| --- | --- | --- | --- | --- |
| [Facebook](/docs/platforms/facebook) | Yes | 1 or many | Reels | Pages only |
| [Instagram](/docs/platforms/instagram) | No | Up to 10 | Reels | Professional accounts only |
| [TikTok](/docs/platforms/tiktok) | No | Yes | Yes | App audit affects visibility |
| [LinkedIn](/docs/platforms/linkedin) | Yes | 1 or many | Yes | Links become article shares |
| [YouTube](/docs/platforms/youtube) | No | No | Yes | Title required |

Instagram, TikTok, and YouTube reject text-only posts. If a post targets a mix and one of them is text-only, that account fails while the rest succeed — the post ends up `partially_published`. Check with [`POST /v1/posts/validate`](/docs/api/validate-post) first.

## Content type is inferred

You never declare a content type. CuteDyno reads the `media` array: a video makes it a video post, otherwise images make it an image post, otherwise it is text. Platform-specific shapes follow from there — a video to Instagram is published as a Reel, several images to Instagram become a carousel — without you choosing a format name.

## Per-platform options

The `platforms` object carries settings that only exist on one network:

```typescript
await cutedyno.posts.create({
  content: 'Same idea, three houses.',
  media: [{ type: 'video', url }],
  accountIds: [tiktokId, youtubeId, facebookId],
  platforms: {
    tiktok: { privacy_level: 'PUBLIC_TO_EVERYONE', disable_duet: true },
    youtube: { title: 'Same idea, three houses', privacyStatus: 'public' },
    facebook: { privacy: { value: 'PUBLIC' } },
  },
});
```

Options are applied only to accounts on that platform, so one payload can carry all of them. Each platform page below lists its own options in full.

## What CuteDyno enforces, and what the platform does

CuteDyno checks a small number of things before spending an upload:

- File type and size at upload (100 MB, common image and video formats).
- TikTok video duration against the creator's own limit, which TikTok reports per account.
- TikTok photo titles, trimmed to 90 characters.
- Instagram carousels, capped at 10 images.
- YouTube posts, which need a title.

Everything else — caption lengths, aspect ratios, codec support, community guidelines — is decided by the platform when it receives the post. Those arrive as a per-account failure in `results[].error` with the platform's own wording, which is usually more accurate than anything we could predict in advance.

## Text per platform

One caption rarely fits five networks. LinkedIn readers expect a paragraph; TikTok expects a line. Where a platform needs its own text, its `platforms` entry accepts it — `platforms.youtube.title`, `platforms.tiktok.title`, `platforms.linkedin.title` — and the shared `content` fills in everywhere else.

## Analytics

Published posts are tracked per platform, but the depth varies with what each API exposes:

| Platform | Available |
| --- | --- |
| Instagram | Views, reach, saves, shares, likes, comments; average watch time on Reels |
| Facebook | Views, likes, comments, shares, reach; follower demographics by country and city |
| TikTok | Views, likes, comments, shares per video; follower and video counts |
| YouTube | Views, likes, comments, shares, watch time, subscribers gained |
| LinkedIn | Publishing history only, unless your app has Community Management access |

## Comments

Comment sync and moderation work on Facebook and Instagram. TikTok, LinkedIn, and YouTube do not expose the webhooks or moderation endpoints needed, so [`GET /v1/comments`](/docs/api/list-comments) returns Facebook and Instagram comments only.
