Posts
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 legacy account: {} 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 inside results[i].error, producing a partial_failed batch 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.
post/v1/posts
Request
- Base URL: https://api.letmepost.dev
- URL: https://api.letmepost.dev/v1/posts
- Auth: HTTP bearer
Headers
Idempotency-Keystring
Example:post-launch-2026-05-15-001
Recommended on every write. Replays within 24 hours return the original response; conflicting bodies surface as 409 idempotency_conflict. See Idempotency.
Request body
Example request
{
"targets": [
{
"platform": "twitter"
},
{
"platform": "bluesky"
},
{
"platform": "linkedin",
"text": "Launching with deep links: https://letmepost.dev"
}
],
"text": "Shipped multi-target publishing today."
}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[].
Example response
{
"id": "00000000-0000-0000-0000-000000000000"
}Changes
No recorded changes to this operation across all 1 revision of this API.