# Migrate to the OmniSocials API

> Index of all OmniSocials docs pages: https://docs.omnisocials.com/llms.txt

These guides help you move an existing social posting integration to the OmniSocials API. Each one maps the other API's concepts, endpoints, fields, and webhooks to OmniSocials, shows the same post in both APIs, and lists what OmniSocials does not offer. Competitor facts were checked against their public docs on October 21, 2026.

| Coming from | Guide | Biggest change |
|-------------|-------|----------------|
| Ayrshare | [From Ayrshare](https://docs.omnisocials.com/migrate/ayrshare.md) | A `Profile-Key` becomes a workspace with its own API key. A post without a time is a draft. |
| Zernio (formerly Late) | [From Zernio](https://docs.omnisocials.com/migrate/zernio.md) | `platforms[]` with account IDs becomes a flat `accounts` array. Times go in as UTC. |
| Upload-Post | [From Upload-Post](https://docs.omnisocials.com/migrate/upload-post.md) | Four multipart upload endpoints become one JSON endpoint. The `user` field becomes the key's workspace. |
| Postiz public API | [From Postiz](https://docs.omnisocials.com/migrate/postiz.md) | One entry per channel becomes one post with per-channel objects. `type` becomes `schedule_at` or `publish_now`. |

## The OmniSocials side in brief

- **Base URL:** `https://api.omnisocials.com/v1`
- **Auth:** `Authorization: Bearer omsk_live_...`. Each key belongs to one workspace and has scopes. See [Authentication](https://docs.omnisocials.com/authentication.md).
- **Create a post:** `POST /posts/create` with `content` (a string or a per-channel object), `accounts` (alias `channels`), `media_ids` or `media_urls`, and `schedule_at` (alias `scheduled_at`) or `publish_now`. Without either, the post is a draft. See [Creating posts](https://docs.omnisocials.com/creating-posts.md).
- **Accounts:** connected only in the dashboard, never through the API.
- **Channels:** 12 platforms and 13 channels, with LinkedIn as a profile and a page. See [Platforms](https://docs.omnisocials.com/platforms.md).
- **Webhooks:** `post.scheduled`, `post.published`, `post.failed`, `post.approved`, and `post.rejected`, signed with HMAC-SHA256. See [Webhooks](https://docs.omnisocials.com/webhooks.md).
- **Rate limit:** 100 requests per minute per key. See [Rate limits and errors](https://docs.omnisocials.com/rate-limits-and-errors.md).
- **No test mode.** Every key works on real accounts. Test with drafts, which never publish on their own.
