> ## Documentation Index
> Fetch the complete documentation index at: https://docs.postiz.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Posting rules by platform

> Every supported platform, what it can carry, and what each one is called in the API

Postiz supports 34 platforms. They disagree about almost everything: how many
images a post can carry, whether a thread is a thread or a comment, whether
text alone is allowed. This page is the reference for all of it.

## Every platform

**How you connect it** is what happens when you click the platform in
**Add Channel**:

* **OAuth**: you are redirected to the platform and authorise there.
* **Credentials in Postiz**: you paste your own API key or app password into a
  dialog. Nothing to register anywhere.
* **In-app dialog**: a platform-specific connect step inside Postiz.
* **Browser extension**: the Postiz extension reads your existing session.

**Needs a developer app** only matters if you self-host: it means the platform
requires API keys that the person running the instance has to register and
configure. On Postiz Cloud this is already done for every platform.

| Platform                      | API `__type`           | How you connect it    | Self-hosted: needs a developer app | Characters |
| ----------------------------- | ---------------------- | --------------------- | ---------------------------------- | ---------- |
| X                             | `x`                    | OAuth                 | Yes                                | varies     |
| LinkedIn                      | `linkedin`             | OAuth                 | Yes                                | 3,000      |
| LinkedIn Page                 | `linkedin-page`        | OAuth                 | Yes                                | 3,000      |
| Reddit                        | `reddit`               | OAuth                 | Yes                                | 10,000     |
| Instagram (Facebook Business) | `instagram`            | OAuth                 | Yes                                | 2,200      |
| Instagram (Standalone)        | `instagram-standalone` | OAuth                 | Yes                                | 2,200      |
| Facebook Page                 | `facebook`             | OAuth                 | Yes                                | 63,206     |
| Threads                       | `threads`              | OAuth                 | Yes                                | 500        |
| YouTube                       | `youtube`              | OAuth                 | Yes                                | 5,000      |
| Google My Business            | `gmb`                  | OAuth                 | Yes                                | 1,500      |
| Tiktok                        | `tiktok`               | OAuth                 | Yes                                | 2,000      |
| Pinterest                     | `pinterest`            | OAuth                 | Yes                                | 500        |
| Dribbble                      | `dribbble`             | OAuth                 | Yes                                | 40,000     |
| Discord                       | `discord`              | OAuth                 | Yes                                | 1,980      |
| Slack                         | `slack`                | OAuth                 | Yes                                | 400,000    |
| Kick                          | `kick`                 | OAuth                 | Yes                                | 500        |
| Twitch                        | `twitch`               | OAuth                 | Yes                                | 500        |
| Mastodon                      | `mastodon`             | OAuth                 | Yes                                | 500        |
| Bluesky                       | `bluesky`              | Credentials in Postiz | No                                 | 300        |
| Lemmy                         | `lemmy`                | Credentials in Postiz | No                                 | 10,000     |
| Farcaster                     | `wrapcast`             | In-app dialog         | Yes                                | 800        |
| Telegram                      | `telegram`             | In-app dialog         | Yes                                | 4,096      |
| Nostr                         | `nostr`                | Credentials in Postiz | No                                 | 100,000    |
| VK                            | `vk`                   | OAuth                 | Yes                                | 2,048      |
| Medium                        | `medium`               | Credentials in Postiz | No                                 | 100,000    |
| Dev.to                        | `devto`                | Credentials in Postiz | No                                 | 100,000    |
| Hashnode                      | `hashnode`             | Credentials in Postiz | No                                 | 10,000     |
| WordPress                     | `wordpress`            | Credentials in Postiz | No                                 | 100,000    |
| ListMonk                      | `listmonk`             | Credentials in Postiz | No                                 | 300,000    |
| Moltbook                      | `moltbook`             | In-app dialog         | No                                 | 300        |
| Whop                          | `whop`                 | OAuth                 | Yes                                | 50,000     |
| Skool                         | `skool`                | Browser extension     | No                                 | 50,000     |
| MeWe                          | `mewe`                 | OAuth                 | Yes                                | 63,206     |
| Tumblr                        | `tumblr`               | OAuth                 | Yes                                | 32,768     |

<Note>
  **X is the exception in that table.** Its limit depends on the post: 280
  characters normally, 4,000 if the account is verified, and 100,000 in long-form
  article mode.
</Note>

## Names that differ between the app and the API

Four platforms are called one thing in the interface and another in the API.
If you are working with the Public API, the CLI or MCP, use the right-hand
column.

| In the app         | In the API `__type` |
| ------------------ | ------------------- |
| Farcaster          | `wrapcast`          |
| X                  | `x`                 |
| Google My Business | `gmb`               |
| Dev.to             | `devto`             |

## Media rules

The composer blocks a post that breaks these before it ever reaches the
platform.

| Platform                        | Media rules                                                                                                                    |
| ------------------------------- | ------------------------------------------------------------------------------------------------------------------------------ |
| X                               | Up to 4 images **or** 1 video. Text-only is fine. In article mode, images only, and a draft article cannot have thread replies |
| LinkedIn, LinkedIn Page         | One attachment if it is a video. A carousel needs at least 2 images and no video. Comments can only contain text               |
| Bluesky                         | Up to 4 images **or** 1 video. Text-only is fine                                                                               |
| Instagram, Instagram Standalone | At least one attachment is required. A story takes a single picture. A trial reel is exactly one video                         |
| Facebook Page                   | Text-only, photos, or a video. A story needs at least one attachment, and each attachment publishes as its own story           |
| YouTube                         | Exactly one attachment, and it must be a video                                                                                 |
| TikTok                          | At least one attachment. One video **or** several pictures, never mixed                                                        |
| Pinterest                       | At least one media, maximum 5 images. A video pin needs two attachments: the video and a cover image                           |
| Dribbble                        | Exactly one attachment, images only                                                                                            |
| Google My Business              | Text-only or exactly one image. No video                                                                                       |
| Farcaster                       | Images only                                                                                                                    |
| Reddit                          | A media-type subreddit post needs exactly one attachment. Video posts need a thumbnail                                         |
| Tumblr                          | Up to 30 images, up to 1 video                                                                                                 |
| Everything else                 | No specific restriction enforced by Postiz                                                                                     |

## Threads and comments

Postiz lets you add extra parts to a post. What those parts become depends on
the platform: a genuine thread, a comment on your own post, or nothing.

| Support                     | Platforms                                |
| --------------------------- | ---------------------------------------- |
| Threads and comments        | Most platforms                           |
| Comments cannot carry media | Instagram, Kick, Twitch                  |
| No extra parts at all       | YouTube, TikTok, Pinterest, MeWe, Tumblr |
| Comments are text-only      | LinkedIn, LinkedIn Page                  |

See [Threads and comments](/general/composer/threads-and-comments) for how to add
them and set delays between parts.

## Editors

The composer changes what it offers per platform, because platforms accept
different content.

| Editor   | What you get                   | Platforms                               |
| -------- | ------------------------------ | --------------------------------------- |
| Plain    | No formatting                  | Platforms that render text as-is        |
| Standard | Bold, underline, emoji         | Most social platforms                   |
| Markdown | Adds links, lists and headings | Discord, Medium, Dev.to, Hashnode, Whop |
| HTML     | Rich formatting                | X, WordPress, Listmonk                  |

## Platform details

Most platforms behave the way you would expect. These are the ones with rules
that catch people out.

<AccordionGroup>
  <Accordion title="X: long-form articles and reply controls">
    X posts carry a **Who can reply** setting: everyone, accounts you follow,
    mentioned accounts, subscribers, or verified accounts. You can also mark a
    post as **Made with AI** or a **Paid partnership**, and share it into a
    community.

    Switching the post type to **article** turns it into long-form: the limit
    becomes 100,000 characters, the content is treated as rich text rather
    than plain text, and a title is required. Articles take images only, and
    an article saved as a draft cannot have thread replies attached.
  </Accordion>

  <Accordion title="TikTok: direct post vs upload">
    TikTok offers two posting methods and they behave completely differently.

    **Direct post** publishes to the account and applies your settings:
    privacy level, comments, duet, stitch, auto-add music, branded content
    disclosure.

    **Upload** does **not** publish. It sends the media to the TikTok app's
    inbox, where you must finish and publish it manually within 24 hours or it
    is discarded. In this mode TikTok ignores every setting except the title,
    silently. If you need any of those settings applied, use direct post.

    Two more: duet, stitch and the AI disclosure are video-only, and auto-add
    music is photo-only. Settings that do not apply to your attachment type are
    dropped.
  </Accordion>

  <Accordion title="Instagram: reels, stories and trial reels">
    Instagram always needs at least one attachment. A story takes a single
    picture, and a reel is a single video.

    **Trial reels** publish to non-followers first, then graduate to your
    followers either manually or automatically based on performance. A trial
    reel must be exactly one video.

    **Audio** can only be attached to a single-video reel, never to a story,
    and only on channels connected through the Facebook Business flow.

    Postiz supports two Instagram connections: **Facebook Business** and
    **Standalone**. They differ in which Meta app they authorise against, which
    is why they are two platforms in the list.
  </Accordion>

  <Accordion title="LinkedIn: carousels are PDFs">
    A LinkedIn carousel needs **at least two images and no video**. Postiz
    combines your images into a PDF and uploads it as a document share, because
    that is how LinkedIn implements carousels. You do not upload a PDF
    yourself.

    Comments on LinkedIn are **text-only**: media on a thread part is rejected.

    Analytics are available for LinkedIn **Pages**, not personal profiles.
  </Accordion>

  <Accordion title="Pinterest: video pins need a cover">
    A pin needs at least one media and at most five images. A **video pin needs
    two attachments**: the video, and a cover image. Set the cover through the
    media settings on the video.

    Pins also carry a board, a title, a destination link and a dominant colour.
    The board is required.
  </Accordion>

  <Accordion title="Reddit: settings are per subreddit">
    Reddit settings are a list, one entry per subreddit, each with its own
    title, post type and flair. The same post can go to several subreddits with
    different titles.

    Post types are link, self (text), image, video and video GIF. A link post
    requires a URL, and media post types need exactly one attachment. Some
    subreddits require a flair, and Postiz surfaces that requirement when you
    pick the subreddit.
  </Accordion>

  <Accordion title="YouTube: exactly one video">
    YouTube takes exactly one attachment and it must be a video. Title,
    privacy, made-for-kids and tags are all part of the post settings, and the
    combined length of all tags is capped at 500 characters.

    A custom thumbnail is supported, and separate from the video itself.
  </Accordion>

  <Accordion title="Facebook: stories and background posts">
    A Facebook story needs at least one attachment, and **each attachment
    becomes its own story** rather than one story with several slides.

    Short text-only posts can use a coloured background preset. Those are
    Pages only, text-only, and capped at 130 characters. Adding media or
    exceeding the limit silently drops the background.
  </Accordion>

  <Accordion title="Google Business: no video, and post types">
    Google Business posts are text with at most one image. Video is not
    supported at all.

    A post is a standard update, an event, or an offer. Events need a title and
    a start and end date and time. Offers add a coupon code, a redeem URL and
    terms. All types can carry a call to action and its URL.
  </Accordion>

  <Accordion title="Blogging platforms: Medium, Dev.to, Hashnode, WordPress">
    These take markdown or HTML rather than plain text, and all four want a
    title. Canonical URLs are supported, so you can syndicate without hurting
    the original's search ranking.

    WordPress additionally takes categories, tags and a publish status, and
    both categories and tags are **numeric IDs** rather than names.

    None of them need a developer app: you connect with your own API key or
    application password.
  </Accordion>

  <Accordion title="Discord, Slack, Telegram: bots and channels">
    These post through a bot into a specific channel or chat, so the channel is
    part of the post settings.

    Discord and Telegram let you override the bot's display name and avatar per
    channel, which is how a client's posts can carry their branding. See
    [Manage a channel](/general/channels/manage).
  </Accordion>

  <Accordion title="Mastodon, Bluesky, Nostr, Lemmy: self-hosted and federated">
    These let you point at your own server. Bluesky takes a service URL and an
    app password, Lemmy an instance URL and credentials, Mastodon an instance,
    Nostr a private key.

    None of them have per-post settings: content and media only.
  </Accordion>
</AccordionGroup>

## Analytics support

Only 10 platforms report account-level analytics back to Postiz. See
[Analytics](/general/analytics) for the metric list and date ranges.

## Platforms with no connect button

Some platforms are fully supported for scheduling and publishing through the
[Public API](/public-api/introduction) but have no in-app connect flow yet:
Twitch, Kick, VK, Nostr, Lemmy, Medium, Dev.to, Hashnode, WordPress, Listmonk
and Moltbook.

<CardGroup cols={2}>
  <Card title="Per-post settings" icon="sliders" href="/public-api/providers/x">
    The full settings schema for each platform, with examples.
  </Card>

  <Card title="Self-hosting: provider keys" icon="key" href="/self-host/providers/overview">
    Which platforms need a developer app, and how to register one.
  </Card>
</CardGroup>
