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

# Platforms

> Which social platforms SmartlyQ supports, and exactly what each one can do through the API.

SmartlyQ publishes to and manages every platform below through a single API. One `POST /v1/social/posts` call fans a post out to any combination of them — you reference connected accounts by `account_ids` and list the target `platforms`.

## At a glance

| Platform                                                     |                Publish                |                Analytics                |                 Comments                |            Direct messages            |            Headless connect           |
| ------------------------------------------------------------ | :-----------------------------------: | :-------------------------------------: | :-------------------------------------: | :-----------------------------------: | :-----------------------------------: |
| <Icon icon="facebook" iconType="brands" /> **Facebook**      | <Icon icon="check" color="#16a34a" /> |  <Icon icon="check" color="#16a34a" />  |  <Icon icon="check" color="#16a34a" />  | <Icon icon="check" color="#16a34a" /> | <Icon icon="check" color="#16a34a" /> |
| <Icon icon="instagram" iconType="brands" /> **Instagram**    | <Icon icon="check" color="#16a34a" /> |  <Icon icon="check" color="#16a34a" />  |  <Icon icon="check" color="#16a34a" />  | <Icon icon="check" color="#16a34a" /> | <Icon icon="check" color="#16a34a" /> |
| <Icon icon="x-twitter" iconType="brands" /> **X (Twitter)**  | <Icon icon="check" color="#16a34a" /> |  <Icon icon="minus" color="#cbd5e1" />  |  <Icon icon="check" color="#16a34a" />  | <Icon icon="check" color="#16a34a" /> | <Icon icon="check" color="#16a34a" /> |
| <Icon icon="linkedin" iconType="brands" /> **LinkedIn**      | <Icon icon="check" color="#16a34a" /> |  <Icon icon="minus" color="#cbd5e1" />  |  <Icon icon="check" color="#16a34a" />  | <Icon icon="minus" color="#cbd5e1" /> | <Icon icon="check" color="#16a34a" /> |
| <Icon icon="youtube" iconType="brands" /> **YouTube**        | <Icon icon="check" color="#16a34a" /> |  <Icon icon="check" color="#16a34a" />  |  <Icon icon="check" color="#16a34a" />  | <Icon icon="minus" color="#cbd5e1" /> | <Icon icon="check" color="#16a34a" /> |
| <Icon icon="tiktok" iconType="brands" /> **TikTok**          | <Icon icon="check" color="#16a34a" /> |  <Icon icon="check" color="#16a34a" />  |  <Icon icon="check" color="#16a34a" />  | <Icon icon="minus" color="#cbd5e1" /> | <Icon icon="check" color="#16a34a" /> |
| <Icon icon="threads" iconType="brands" /> **Threads**        | <Icon icon="check" color="#16a34a" /> |  <Icon icon="check" color="#16a34a" />  |  <Icon icon="check" color="#16a34a" />  | <Icon icon="minus" color="#cbd5e1" /> | <Icon icon="check" color="#16a34a" /> |
| <Icon icon="bluesky" iconType="brands" /> **Bluesky**        | <Icon icon="check" color="#16a34a" /> |  <Icon icon="minus" color="#cbd5e1" />  |  <Icon icon="check" color="#16a34a" />  | <Icon icon="minus" color="#cbd5e1" /> | <Icon icon="check" color="#16a34a" /> |
| <Icon icon="pinterest" iconType="brands" /> **Pinterest**    | <Icon icon="check" color="#16a34a" /> |  <Icon icon="minus" color="#cbd5e1" />  | <Icon icon="check" color="#16a34a" /> ¹ | <Icon icon="minus" color="#cbd5e1" /> | <Icon icon="check" color="#16a34a" /> |
| <Icon icon="reddit" iconType="brands" /> **Reddit**          | <Icon icon="check" color="#16a34a" /> |  <Icon icon="minus" color="#cbd5e1" />  |  <Icon icon="check" color="#16a34a" />  | <Icon icon="check" color="#16a34a" /> | <Icon icon="check" color="#16a34a" /> |
| <Icon icon="snapchat" iconType="brands" /> **Snapchat**      | <Icon icon="check" color="#16a34a" /> |  <Icon icon="minus" color="#cbd5e1" />  |  <Icon icon="minus" color="#cbd5e1" />  | <Icon icon="minus" color="#cbd5e1" /> | <Icon icon="check" color="#16a34a" /> |
| <Icon icon="tumblr" iconType="brands" /> **Tumblr**          | <Icon icon="check" color="#16a34a" /> |  <Icon icon="minus" color="#cbd5e1" />  |  <Icon icon="minus" color="#cbd5e1" />  | <Icon icon="minus" color="#cbd5e1" /> | <Icon icon="check" color="#16a34a" /> |
| <Icon icon="google" iconType="brands" /> **Google Business** | <Icon icon="check" color="#16a34a" /> | <Icon icon="minus" color="#cbd5e1" /> ² |  <Icon icon="minus" color="#cbd5e1" />  | <Icon icon="minus" color="#cbd5e1" /> | <Icon icon="check" color="#16a34a" /> |

<Info>
  <Icon icon="check" color="#16a34a" /> supported  ·  <Icon icon="minus" color="#cbd5e1" /> not available through the API.<br />
  ¹ Pinterest comments support fetch + reply, but **not** hide or delete. <br />
  ² Google Business per-post analytics were deprecated by Google; location-level metrics aren't exposed here.
</Info>

* **Headless connect** lets you connect a *new* account from your own UI via `POST /v1/social/connect/{platform}` — supported on **all platforms above**. Poll `GET /v1/social/connect/{state_token}` to learn when the user finished. You can still connect from the [Developer Dashboard](https://app.smartlyq.com/my/developer). See [Connecting accounts](/guides/connecting-accounts).
* **Direct messages** are actively synced for Facebook, Instagram, and X. Meta platforms enforce a **24-hour reply window** — you can only message a user within 24 hours of their last message.

## Platform details

Every platform has its own page in the sidebar — pick one for its caption limit, post types, capabilities, connect method, and token notes.

## Media

Attach media to a post with `media_urls` (publicly reachable HTTPS URLs), or upload to SmartlyQ storage first via `POST /v1/media/upload-url`.

**Formats** — images `jpg` · `jpeg` · `png` · `gif` · `webp`; video `mp4` · `mov` · `m4v` · `webm`.

### Per-platform media rules

Each platform enforces its own limits on how many items you can attach, whether images and video can be mixed, and file size / duration. SmartlyQ validates these before publishing where it can, so you get an actionable error up front instead of a downstream failure.

| Platform                              |        Images       |  Videos  | Mix image + video | Size / duration                                                 |
| ------------------------------------- | :-----------------: | :------: | :---------------: | --------------------------------------------------------------- |
| X (Twitter)                           |       up to 4       |     1    |         No        | Image ≤ 5 MB · GIF ≤ 15 MB · video ≤ 100 MB, ≤ 140 s            |
| Facebook                              |       up to 10      |     1    |         No        | —                                                               |
| Instagram                             | up to 10 (carousel) |     1    |         —         | Requires media · feed ratio 0.8–1.91 · oversize auto-compressed |
| LinkedIn                              |       up to 20      |     1    |         —         | Single video per post                                           |
| TikTok                                |      up to 35¹      |     1    |         —         | Photo carousels are **JPEG / WebP only**                        |
| Bluesky                               |       up to 4       |     1    |         —         | Images over \~1 MB auto-recompressed                            |
| Snapchat                              |        1 item       |  1 item  |         —         | Image ≤ 20 MB · video ≤ 500 MB, 5–60 s · 9:16                   |
| Google Business                       |          1          |     —    |         —         | Single image; **video not supported**                           |
| YouTube                               |          —          |     1    |         —         | Videos ≤ 3 min publish as Shorts                                |
| Threads · Pinterest · Reddit · Tumblr |       per post      | per post |         —         | Standard platform limits                                        |

<Info>
  ¹ TikTok photo carousels accept up to **35** images and must be JPEG or WebP (PNG/GIF are rejected). A single video post is unaffected.
</Info>

* **Instagram requires media** — a text-only post will be rejected.
* Stories / Reels / Shorts and carousels are detected automatically from the media you attach (see each platform above).
* **Aspect ratio** is advisory: media well outside a platform's supported range (e.g. a banner on an Instagram feed post) returns a non-blocking `warnings` entry on the create response rather than failing the post.

## Keeping accounts healthy

Token lifetimes vary widely — SmartlyQ refreshes them for you. Check any account's status with `GET /v1/social/accounts/{id}/health`, and if one turns unhealthy, send the user through its [reconnect URL](/guides/connecting-accounts#reconnecting-an-account).
