Skip to main content
Sapt publishes organic content to Instagram, Facebook, TikTok, YouTube and Google Business Profile through one set of endpoints. You pick a connected account, attach media, and either schedule the post or publish it now — the platform-specific work happens behind the API.

The shape of it

1

Find an account

GET /socials/accounts/{projectId} returns every connected account. Its id is the socialAccountId every other call takes.
2

Stage the media

Stream bytes to PUT /socials/media/{projectId}/stream-upload and keep the returned handle. Small files can go inline as base64 instead.
3

Create the post

POST /socials/posts/{projectId} with the account, caption, media type and either scheduledFor or publishNow: true.
4

Watch it land

GET /socials/posts/{projectId}/{postId}/status until it reaches published — or failed, with a reason.

Platforms

Media types

mediaType describes the shape of the post. Not every platform accepts every shape, and the API validates the combination before it accepts the post.

Post lifecycle

A post’s status moves through a small state machine:
You can still edit a post while its status is draft, scheduled, queued or failed. Once it is uploading or publishing the platform owns it, and published is live.

Scheduling window

scheduledFor must be at least 10 minutes and at most 75 days in the future. That mirrors what the upstream platforms accept, so the API rejects an out-of-range time immediately rather than letting the platform reject it after the media has already uploaded.

Connected accounts

Uploading media

Scheduling posts

Publishing now