API operational
Core resource

Schedules & queues

Define recurring publishing templates with cron expressions or human-readable daily slots.

4

Endpoint summary

All operations in this resource, with the minimum accepted key scope.

Method & endpointPurposeScope
GET/api/schedules

List recurring schedules

read
POST/api/schedules

Create a cron or slot schedule

publish
PATCH/api/schedules/{id}

Rename, pause, or change timing

publish
DELETE/api/schedules/{id}

Delete a recurring schedule

publish
01

Create a cron schedule

The template uses the same post, profiles, and media envelope as POST /api/posts. Times are interpreted in the supplied IANA timezone.
Weekdays at 09:00PostGate API
curl -X POST https://postgate.studio/api/schedules \
  -H "Authorization: Bearer $POSTGATE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Weekday update",
    "kind": "cron",
    "expression": "0 9 * * 1-5",
    "timezone": "America/Sao_Paulo",
    "profile_group_id": "grp_acme123",
    "template": {
      "post": { "body": "Good morning from Acme." },
      "profiles": ["pro_linkedin456"],
      "media": []
    }
  }'
02

Define queue slots

Use kind: "slots" with comma-separated HH:mm values such as 09:00, 13:30, 18:00. A post created with scheduled_at: "queue" takes the next available slot.
03

Pause without deleting

Patch active: false to stop future materialization while keeping the schedule configuration. Changing its expression or timezone resets the materialization horizon.
04

YouTube recurring schedules are intentionally blocked

Each YouTube upload requires an explicit video, audience choice, privacy setting, and Community Guidelines confirmation. Create individual scheduled posts instead of a recurring template.
Use explicit scheduled posts for policy-sensitive content
This preserves the user choices required by YouTube and prevents a generic template from publishing with stale policy settings.