Publish or schedule a multi-target post
Publish a single body to up to 25 connected accounts in one call, or schedule the whole batch for a future time.
- Multi-target only: the v1 wire shape requires
targets[]. The legacyaccount: {}single-target shape is no longer accepted. - Idempotent: include
Idempotency-Key. Replays within 24 hours return the original response. - Preflight: every documented platform constraint runs locally before the upstream call. Cheap shape preflight is atomic across the batch — if any target fails the synchronous checks the whole call is rejected as
400 preflight_failed. Deep checks (URL reachability, MIME sniffing, byte caps) run per target and surface insideresults[i].error, producing apartial_failedbatch rather than a 400. - Errors: failures use the stable error envelope —
code,rule,platformResponse,remediation,docUrl,ruleUrl.
For per-platform payload differences, see the platforms guides.
Authorizations
Mint an API key in the dashboard. See https://letmepost.dev/docs/authentication/.
Headers
Recommended on every write. Replays within 24 hours return the original response; conflicting bodies surface as 409 idempotency_conflict. See Idempotency.
1 - 128"post-launch-2026-05-15-001"
Body
Multi-target publish request — fans a single body out to up to 25 connected accounts in one call. The legacy single-target account: {} shape is no longer accepted.
1 - 25 elementsDefault text applied to any target that omits its own text.
1Default media applied to any target that omits its own media.
Auto-posted reply to the published post. Bluesky-only today; ignored on platforms that don't support it.
Explicit immediate-publish mode. Mutually exclusive with scheduledAt (mode_conflict). When neither is set the request publishes immediately.
ISO-8601 timestamp at least 1 second in the future. When set, every target row is queued and the response is 202. Scheduled posts currently accept text only — media and firstComment require an immediate publish.
"2026-06-01T12:00:00.000Z"
Profile scope for this batch. Use to target a specific workspace when the API key or OAuth token is org-wide. Forbidden when the key is already scoped to a different profile (rule profile.scope_mismatch). Omit to fall back to the key's bound profile.
Response
Immediate publish completed. The batch envelope's status is published (all targets succeeded), partial_failed (mixed outcomes), or failed (every target failed). Per-target detail lives inside results[].
Batch envelope returned by POST /v1/posts. status summarizes the per-target outcomes.
Batch id — unique per request, ties the per-target rows together for audit.
"00000000-0000-0000-0000-000000000000"
queued: all targets queued for a scheduled publish (202). published: every target succeeded. partial_failed: mixed outcomes. failed: every target failed.
queued, published, partial_failed, failed Set when the batch was scheduled (202 responses).

