Schedule post
Schedule a post for publishing at a specific time.
The post must be in NEW or SCHEDULED status. Set scheduled_publish_time to a
future datetime (ISO 8601). The post will be published automatically at that
time to all connected platforms, or to specific platforms if
restrict_publish_to is set.
Errors: 400 invalid_request: The post status is not NEW or SCHEDULED, or scheduled_publish_time is not in the future. 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. 404 resource_not_found: No post with that ID exists, or it is not in this business. 429 rate_limit_exceeded: You sent too many requests this minute.
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
When to publish (ISO 8601 datetime, must be in the future)
Restrict publishing to these platforms (e.g. instagram, facebook, linkedIn). Case-insensitive. Omit or set null to publish to ALL connected platforms.
facebook, instagram, twitter, linkedIn, linkedInProfile, tiktok, pinterest, googleBusiness, instagramStory, youtube Response
Successful Response
Post ID
Business this post belongs to
When the post was created
Link to view this post in the Marky app (openable/shareable — show it to the user). This is where the post lives in Marky; link is the outbound URL published with the post.
Link to the workspace's scheduled-posts list in the Marky app — where the user sees this post waiting in the lineup. Present once the post is SCHEDULED; null otherwise.
Post caption text
Post status. One of: NEW (draft, incl. freshly generated), SCHEDULED (queued for a future time), PUBLISHED (already posted). Same values the list_posts status filter accepts.
Attached media URLs
Clickable destination URL for platforms that support link posts: the Facebook link attachment, the Google Business CTA button, and the Pinterest pin destination. Other platforms ignore it — put links in the caption there. Must be http(s).
Platforms this post is restricted to. Null means ALL connected platforms.
The exact time this post is scheduled to publish (set via schedule). Null for drafts, queued posts, and already-published posts.
When the post was actually published (past timestamp). Null until it publishes.
Caller-defined string key/value pairs set at create/update time — your own analytics dimensions (e.g. media_type, format, style, hook, topic). Marky returns them verbatim and never interprets them.
Per-platform content overrides on this post, if any. Each platform publishes its override fields where set, the post's own fields otherwise.
Per-platform publish outcomes — one entry per platform this post was sent to. Poll this until every entry has a terminal status (success or failed) to know publishing is complete.
Daily-queue placement. Present only when the post is in a recurring daily queue (status SCHEDULED with no adhoc_publish_time). Null for drafts, adhoc-scheduled, and published posts.
Last update time
