Posts

Publish a saved draft

Publish or schedule in place with the original ID and immutable sourceDraftId. Content, campaign, assetMetadata and platform options are preserved. Supply expectedSnapshot from GET to fence every stored field. Identical completed approvals return the existing result without reposting; a claimed or uncertain operation returns 409. Approval-required agents cannot approve themselves. Personal drafts remain editable after every destination fails; approved submissions retain a failed outcome for reconciliation.

post/v1/posts/{id}/publish

Request

  • Base URL: https://api.postlake.dev
  • URL: https://api.postlake.dev/v1/posts/{id}/publish
  • Auth: bearerAuth (a scheme the document does not define)

Path parameters

idstring required

Request body

scheduledAtstring date-time nullable

Publish at this time instead. Omit to keep whatever time the draft was carrying (or send now if it had none). Send null to clear the draft's time and publish immediately.

timezonestring

IANA timezone (e.g. Europe/London) for a naive scheduledAt.

accountsstring[]

Publish to these accounts instead of the draft's own destinations.

expectedSnapshotstring

Full-state snapshot from GET. Any intervening edit rejects approval with 409.

profilestring

Publish to every account under this profile instead of the draft's own destinations.

platformsPlatform[]

Optional filter applied to the resolved destinations.

Response

Published or scheduled

idstring required
sourceDraftIdstring

Immutable original draft ID. New approvals preserve this as id; legacy audited approvals may resolve an older ID to a different canonical id.

snapshotstring

Computed full-state approval fence returned by GET. Includes media, options and metadata.

state'draft' | 'awaiting_approval' | 'rejected' | 'queued' | 'scheduled' | 'processing' | 'partial' | 'published' | 'failed' required
createdAtstring date-time required
clientIdstring

Stable machine principal that created the post. Absent for human-created dashboard posts.

surface'dashboard' | 'api' | 'agent'

Where the post was created, independent of the principal identity.

scheduledAtstring date-time nullable required
timezonestring

IANA timezone the caller scheduled in, when they named one.

scheduledAtLocalstring

Wall-clock time in timezone, computed on read. Not stored.

textstring required
campaignstring
assetMetadataobject
mediastring[] required
warningsstring[]

Advisory notes from create or edit, for example PNG converted to JPEG for TikTok.

Changes

No recorded changes to this operation across all 1 revision of this API.