Schedule posts
Schedule a list of posts in one call: queue them in order, or at local times.
mode="queue" (default) appends the posts to the business's posting queue IN THE ORDER YOU SEND THEM: the first id gets the next open slot. A post that already carries a date (created with scheduled_publish_time while NEW) is scheduled at that date instead. mode="at" publishes each post at the matching times_local, a wall-clock time in the business's timezone; never convert to UTC yourself.
Each post is answered separately, in the order sent: publish_time_local (quote it verbatim), warnings (quote them too), or an error for that post only. One bad post never stops the rest. Calling again with posts that are already queued changes nothing (ALREADY_SCHEDULED). Every scheduled post returns a revision_id for Undo. queue summarizes the queue afterwards, so no extra read is needed.
Errors (per post, in results[].error.code): NOT_FOUND, POST_ALREADY_PUBLISHED, ALREADY_SCHEDULED, NOT_SCHEDULABLE, CAPTION_HAS_PLACEHOLDER (fill the [[...]] first), NO_CONNECTED_SOCIALS (follow recovery_hint), MEDIA_REQUIRED, TIME_IN_PAST.
Errors (whole call): 401 authentication_required: API key or token is missing, invalid, or revoked. 403 permission_denied: Your plan does not include API access, or this business is not in your org. 422 validation_error: No post_ids or more than 50, a malformed id, times_local missing or not one per post in at mode, or an unknown timezone. 429 rate_limit_exceeded: You sent too many requests this minute.
Request
- Base URL: https://api.mymarky.ai
- URL: https://api.mymarky.ai/api/businesses/{business_id}/posts/schedule
- Auth: HTTP bearer
Path parameters
A UUID identifier.
Headers
Opt into a dated API version. Omit to stay on the floor (2026-04-08) forever — unpinned clients never break. Pin to a newer date (e.g. 2026-08-06) to receive the newest response shapes. Unknown values fall back to the floor. See https://docs.mymarky.ai for the versioning model.
Request body
Response
Successful Response
Changes
No recorded changes to this operation across all 1 revision of this API.