Posts

Publish, schedule or draft a post

Publish or schedule a post. Set draft: true to save it instead. A guarded agent's normal publish request is stored in awaiting_approval automatically and cannot be approved by that same agent. Neither state costs anything or contacts a network.

post/v1/posts

Request

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

Headers

Idempotency-Keystring

Idempotency Key

Request body

textstring required

Caption for feed posts and Reels. May be empty for an Instagram Story-only post; Instagram Stories do not display captions.

campaignstring

Optional lowercase campaign slug, up to 80 characters.

assetMetadataobject

Up to 16 short caller-defined fields, such as hook, track or source filename.

profilestring

A profile name. Resolves to every account it owns. The simple way to address accounts; combine with platforms to narrow it. Provide profile, accounts, or both.

platformsPlatform[]

Optional filter. Keeps only these networks from the resolved set (e.g. profile "my-brand" + platforms ["bluesky"]).

accountsstring[]

Connected account ids (acc_…). An alternative (or addition) to profile.

mediastring[]
requireAllTargetsboolean

When true, refuse the whole request before contacting a network if any selected destination fails PostLake's deterministic capability preflight. Default false preserves partial fan-out.

scheduledAtstring date-time

UTC with a trailing Z, or a naive local time together with timezone.

timezonestring

IANA timezone (e.g. Europe/London). Interprets a naive scheduledAt as wall time in that zone.

draftboolean

Save without sending. Returns draft, or awaiting_approval when this agent requires approval. Nothing is charged and no network is contacted.

Response

Created

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.