Core concepts
Scheduling & the queue
Add one field to publish later instead of now. Posts sit in a queue and a publisher ships them at the right moment — no separate scheduling API to learn.
The schedule_at field
Include schedule_at in Create a post to queue it. Omit it and the post publishes immediately. Three formats are accepted:
| Format | Example | Notes |
|---|---|---|
| Unix seconds | 1785535200 | Values below 1e12 are read as seconds. |
| Unix milliseconds | 1785535200000 | Values at or above 1e12 are read as milliseconds. |
| ISO 8601 | "2026-08-01T09:00:00Z" | Include a Z or offset (see time zones below). |
{
"caption": "Scheduled from the queue ⏰",
"platforms": ["bluesky", "telegram"],
"schedule_at": "2026-08-01T09:00:00Z"
}Scheduling rules
schedule_at must be in the future — up to 60 seconds of clock skew is tolerated, but anything earlier is rejected with 400. A value that can’t be parsed as a timestamp or ISO date is also a 400. See Errors & responses.The queue
A scheduled post is stored with status: "scheduled". A publisher runs every minute, finds posts whose schedule_at has passed, and publishes them through the exact same engine as an immediate post. In practice a post ships within about a minute of its scheduled time.
To confirm it went out, poll Get a post until status is published and published_at is set.
Canceling a scheduled post
Call Delete or cancel a post any time before it ships. The scheduled post is removed and will never publish. The same call deletes an unsent draft.
curl -X DELETE https://postmyish.com/api/v1/posts/post_7d1a9c8b \
-H "Authorization: Bearer $POSTMYISH_KEY"Time zones
Timestamps are absolute moments in time. Unix values are UTC by definition; for ISO 8601, always include a Z or an explicit offset (for example 2026-08-01T09:00:00-04:00) so there’s no ambiguity about which 9am you meant.
One-shot, not recurring
- Each post schedules a single publish. There are no recurring rules.
- To post on a cadence, create a post per occurrence — the scheduler recipe shows a loop that does exactly this.