---
name: omnisocials-api
description: Build with the OmniSocials API, which schedules, publishes and reads social media posts on 12 platforms (Instagram, Facebook, LinkedIn, YouTube, TikTok, X, Pinterest, Threads, Bluesky, Mastodon, Google Business, Telegram). Use it when code must post to social media, read post analytics, or answer comments and DMs.
---

# OmniSocials API

## Facts to rely on

- Base URL: `https://api.omnisocials.com/v1`
- Auth: `Authorization: Bearer omsk_live_<key>`. Keys are created in the dashboard (Settings, API), each with its own scopes. There is no test mode: every key acts on real connected accounts.
- Social accounts are connected in the dashboard only, never through the API. Call `GET /accounts` to get their ids.
- Rate limit: 100 requests per minute per key. A `429` carries `Retry-After` in seconds.
- SDKs: Node.js `@omnisocials/sdk`, Python `omnisocials`, plus Go, Ruby, Java, PHP, .NET and Rust. They send `channels` and `scheduled_at`; the REST examples use `accounts` and `schedule_at`. The API accepts both.

## Publish a post

1. `GET /accounts` and pick the account ids.
2. Optional media: `POST /media/upload` (multipart, up to 100 MB) or `POST /media/upload-from-url` (up to 1 GB). Keep `data.id`.
3. `POST /posts/create` with `content` (a string, or an object keyed by channel), `accounts`, and optionally `media_ids` and `schedule_at` (ISO 8601, UTC).
4. Without `schedule_at` or `publish_now: true` the post stays a draft. Publish later with `POST /posts/{id}/publish`.
5. Poll `GET /posts/{id}` until `status` is `published`, or subscribe to webhooks (`post.published`, `post.failed`, `post.scheduled`, `post.approved`, `post.rejected`).

## Before you retry

There is no idempotency key. After a timeout or a `5xx`, list recent posts (`GET /posts`) before you send the same post again, or you may publish it twice. See https://docs.omnisocials.com/retries.md

## Where to look things up

- Index of every page: https://docs.omnisocials.com/llms.txt
- Any page as markdown: add `.md` to its URL, for example https://docs.omnisocials.com/creating-posts.md
- Per-platform post types and limits: https://docs.omnisocials.com/platforms.md
- Every endpoint: https://docs.omnisocials.com/openapi.json
- Search the docs from an MCP client: `https://docs.omnisocials.com/mcp`
- Act on a workspace from an AI assistant instead of code: the OmniSocials MCP server at `https://mcp.omnisocials.com` (https://docs.omnisocials.com/mcp-server.md)
