Scheduling API

Yes, you can schedule social posts via API.

POST /api/posts is the same endpoint whether you publish immediately, save a draft, or schedule for later. Pass an ISO 8601 scheduled_at for a fixed instant, or scheduled_at: "queue" to drop the post into the next open slot of a recurring queue. No separate scheduling service, no polling a cron job you have to run yourself.

How scheduling works

Three ways to schedule, one request shape

Fixed instant or recurring queue

Set scheduled_at to an ISO 8601 timestamp to publish at an exact moment, or to "queue" to take the next available slot from a recurring schedule. Both go through the same post, profiles, and media envelope as an immediate publish.

Timezone-aware by design

Cron and slot schedules take an IANA timezone — America/Sao_Paulo, Europe/Lisbon, whatever your customer runs on — and PostGate interprets times against it, not the server's clock. See timezone handling for scheduled posts for the failure modes this avoids.

Safe to retry, easy to change

A stable Idempotency-Key makes a scheduling request safe to resend for 72 hours. A scheduled post can still be patched or canceled before it fires, and a recurring schedule can be paused with active: false without losing its configuration.

How it works

From one API call to a published post

01

Create a cron or slot schedule

POST /api/schedules with kind: "cron" and a standard cron expression, or kind: "slots" with daily times like 09:00, 13:30, 18:00. The template carries its own post body, profiles, and media.

02

Or schedule a one-off post directly

POST /api/posts with a future scheduled_at holds the post until that instant, then delivers it to every target profile automatically — no separate trigger required.

03

Track delivery per platform

Once a scheduled post fires, each target moves through pending, publishing, and a terminal state — published, failed, or skipped. Poll GET /api/posts/{id} or subscribe to webhooks for the terminal result.

Get started

Schedule your first post on the free sandbox plan

Test the full scheduling lifecycle — cron templates, slot queues, and fixed-instant posts — against PostGate's sandbox with a pg_test_ key. No card required.