Publish the first post
Draft, share a private preview, approve an exact version, and publish or schedule it.
Start with a Write drafts key if you will publish in the dashboard. Use Write and publish or Manage if your agent will call posts.publish or posts.schedule. Both calls require posts:publish and your approval of the exact saved version.
sites.get
-> posts.format_guide
-> posts.create or posts.update
-> posts.get
-> posts.preview
-> send previewUrl to the person
-> posts.versions.list
-> approval of the exact version and time
-> posts.publish or posts.schedule
Prepare and review
Call sites.get for the site’s editorial context, then posts.format_guide for the renderer’s supported syntax. posts.create saves a draft. Fetch it with posts.get and use posts.preview to check the rendered content, outline, and warnings. Fix incomplete or inaccessible content, including missing image alt text.
Send the returned previewUrl to the person. It opens the latest saved version in a browser, even if an older version is live. Anyone with the link can read it. If the response has no previewUrl, say so. Learn how private links work.
Approve one version
Call posts.versions.list and tell the person the title, post ID, newest versionNumber, and any remaining warnings. Ask whether to publish that version now or schedule it for a specific UTC time. Reviewing a preview or accepting editorial direction does not authorize publication.
Immediately before publishing or scheduling, check the version again. If the saved tip changed, show the new version and ask for fresh approval. To publish now:
{"postId":"post_...","expectedVersionNumber":4}
To schedule, send the approved versionNumber and a future publishAt UTC epoch second to posts.schedule. Later edits will not change that scheduled version. Report the returned status and the exact URL from vibecms when present; do not construct a public URL from the slug.