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

# Supported platforms

> Every channel seenpaid publishes to: how you connect it, its caption limit, media rules, and its current status.

seenpaid publishes to 21 platforms: mainstream social, the fediverse, developer blogs and a raw webhook. Check this page before writing one caption for several networks; the limits are the values the publisher enforces, not estimates.

<Info>
  An AI agent can read all of this at runtime with [`get_platform_requirements`](/agents/tools-reference#get_platform_requirements) and dry-run a caption with [`validate_post`](/agents/tools-reference#validate_post).
</Info>

## Full channel matrix

**Images** is how many images seenpaid attaches to one post on that platform. Video publishes to **X, Bluesky, Mastodon, Instagram (as a Reel) and TikTok**; LinkedIn, Facebook and Threads refuse a video with a clear message; the remaining platforms attach images only.

| Platform | Connects via | Caption limit | Media | Images | Status |
| - | - | -: | :-: | -: | - |
| LinkedIn | Sign in | 3,000 | optional | 9 | Live |
| X | Your own API keys | 280 | optional | 4 | Live (X bills you for API posting) |
| Instagram | Sign in (Meta) | 2,200 | required | 10 (carousel) | Accounts added to the Meta app only, until App Review passes |
| Facebook | Sign in (Meta) | 63,206 | optional | 10 | Accounts added to the Meta app only, until App Review passes |
| Threads | Sign in (Meta) | 500 | optional | 1 | Live |
| TikTok | Sign in | 2,200 | video required | 0 | Delivers to your TikTok drafts; caption written in the app |
| Bluesky | App password | 300 | optional | 4 | Live |
| Pinterest | Sign in | 800 | image required | 1 | Coming very soon: connects today, Pins wait on full API access |
| Mastodon | Sign in | 500 | optional | 4 | Live |
| Discord | Webhook URL | 2,000 | optional | 4 | Live |
| Telegram | Bot token | 4,096 | optional | 1 | Live |
| Tumblr | Sign in | 4,096 | optional | 1 | Live |
| Slack | Incoming webhook | 3,000 | optional | 1 | Live |
| WordPress | Application password | 250,000 | optional | 1 | Live |
| Ghost | Admin API key | 250,000 | optional | 1 | Live |
| Dev.to | API key | 250,000 | optional | 1 | Live |
| Hashnode | Access token | 250,000 | optional | 1 | Live |
| Medium | Integration token | 250,000 | optional | 1 | Live |
| Lemmy | Username / password | 40,000 | optional | 1 | Live |
| Nostr | Private key (nsec) | 10,000 | optional | all | Live |
| Webhook | Endpoint URL | 250,000 | optional | all | Live |

Reddit and VK have adapters but no registered developer app, so they can't be connected yet.

<Note>
  The dashboard shows each platform's real state for your account. If a network can't publish something (a video to LinkedIn, say), the post fails for that network with a plain message and the other networks still go out.
</Note>

## Platform-specific catches

<AccordionGroup>
  <Accordion title="X: API posting is paid, by X" icon="x-twitter">
    You connect X by pasting the four keys from your own X developer app. X charges for API posting on that account under its own pricing; without credits there, a publish fails on X's side. Every other platform posts at no extra cost.
  </Accordion>

  <Accordion title="TikTok: lands in your drafts, caption not included" icon="tiktok">
    seenpaid uploads the video to your TikTok inbox as a draft. TikTok's draft endpoint accepts only the video, so the caption you wrote in seenpaid is not sent; you write it in the TikTok app when you post the draft. Video only, 64MB or under. This is the least-exercised flow in seenpaid; if it fails for you, tell us from the dashboard.
  </Accordion>

  <Accordion title="Instagram and Facebook: Meta App Review" icon="clock">
    Every permission seenpaid uses is at Meta's Standard access, which means only accounts added to seenpaid's Meta app can connect. Meta's review of the app is in progress; full support is coming very soon. If you'd like your account added in the meantime, contact support from the dashboard.
  </Accordion>

  <Accordion title="Instagram: media required, carousels and Reels" icon="instagram">
    Text-only posts are rejected by Instagram's API. One image is a single post; 2 to 10 images become a carousel. A video publishes as a Reel, and you can pick its cover frame in the composer.
  </Accordion>

  <Accordion title="Pinterest: media required, publishing blocked" icon="pinterest">
    Pinterest needs an image to create a Pin. Right now seenpaid's Pinterest app is on Trial access, and Pinterest refuses to create Pins in production from Trial apps, so publishing fails for everyone. You can connect, but don't rely on it until this note goes away.
  </Accordion>

  <Accordion title="LinkedIn, Facebook, Threads: no video yet" icon="video-slash">
    Attach a video and these networks fail with a clear message rather than posting a broken item. Post the video from the platform directly, or drop that network from the selection.
  </Accordion>

  <Accordion title="Bluesky: use an app password" icon="cloud">
    Create one in Bluesky under **Settings → App Passwords** and paste that, never your main password. It can be revoked on its own.
  </Accordion>
</AccordionGroup>

<Tip>
  Publishing the same caption everywhere? **X's 280 characters** is almost always the binding limit. Edit the caption per channel in the composer, or use `per_account_captions` on [`schedule_post`](/agents/tools-reference#schedule_post).
</Tip>

<CardGroup cols={2}>
  <Card title="Connect your channels" icon="share-nodes" href="/guides/connect-channels">
    The walkthrough for each connect method.
  </Card>

  <Card title="Engagement metrics" icon="chart-simple" href="/guides/engagement">
    Which of these platforms report likes, comments, shares and views.
  </Card>
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.