---
title: Platforms
description: What each social and article destination accepts, and the rules BrainyShorts enforces before it publishes.
sidebar:
  icon: globe
---

Connect accounts at [Dashboard → Social accounts](https://www.brainyshorts.com/dashboard/social-accounts). Each target in a post names a `social_account_id` and its `platform`. BrainyShorts checks these rules when you create the post, so a bad target fails with a `400` rather than failing silently later.

## Social platforms

| Platform | `platform` | Media | Notes |
| --- | --- | --- | --- |
| TikTok | `tiktok` | Photo posts (carousel of images), video | Media must be on `storage.brainyshorts.com` |
| Instagram | `instagram` | Single image, 2–10 image carousel, Reels | Professional (Business or Creator) accounts only |
| YouTube | `youtube` | Video | Drafts only through the REST API and MCP |
| LinkedIn | `linkedin` | Single image, multiple images, MP4 video | Personal profiles only |
| X | `x` | Up to 4 images, or 1 MP4 video | X bills API access separately |

### TikTok

- Photo posts pull images by URL, and TikTok only accepts URLs on a verified domain. Upload through [`/media/uploads`](/quickstart) and use the returned `public_url`.
- TikTok rejects long photo titles, so BrainyShorts strips hashtags from the title and truncates it to 80 characters. Put hashtags in the caption.

### Instagram

- Connect with Instagram Login. The account must be a Business or Creator account; no Facebook Page is needed.
- Instagram processes media asynchronously, so a delivery can sit in `processing` for a minute or two before it becomes `posted`.

### YouTube

- `publish` and `schedule` are rejected for YouTube targets in the REST API and MCP. Create a `draft`, or publish YouTube videos through a [scheduled run](/automations) with skill version `1.2.0` or later, which sends the bytes straight from your machine to Google.

### LinkedIn

- Posts go to your personal profile. Company Page publishing needs LinkedIn's separate Community Management API approval and isn't supported.
- Videos are capped at 32 MB.

### X

- Captions are limited to 280 characters when any X target is present.
- Up to 4 images (5 MB each) or 1 video (32 MB).
- X charges for API access separately from BrainyShorts.

## Articles

Long-form articles use `POST /api/cli/articles` or the MCP article tools. A single article can go to several destinations at once.

| Destination | `platform` | Connection | Target `settings` |
| --- | --- | --- | --- |
| DEV.to | `devto` | API key | none |
| Hashnode | `hashnode` | Personal access token | `publication_id` (required) |
| Reddit | `reddit` | OAuth | `subreddit` (required), `flair_id`, `flair_text`, `nsfw`, `spoiler`, `send_replies` |
| LinkedIn | `linkedin` | Existing LinkedIn connection | none |
| X | `x` | Existing X connection | none |

- **DEV.to** takes at most 4 tags. Get a key under **Settings → Extensions → DEV Community API Keys**.
- **Hashnode** needs the publication ID from that publication's dashboard settings on every target.
- **Reddit** takes a bare subreddit name (`programming`, not `r/programming`). Titles are limited to 300 characters.
- **LinkedIn** has no public API for native articles. BrainyShorts publishes a post whose text is the article intro (up to 3,000 characters) with a link card to `canonical_url`, so set a canonical URL.
- **X** publishes a native long-form X Article, not a thread. The account needs an X Premium subscription.

An article counts as `published` once any destination succeeds, and `failed` only when all of them fail. Retrying resends only the failed destinations.
