Posts
Read a post's status and per-platform results, and poll a post that is still publishing.
curl -s https://api.betterpost.dev/v1/posts/post_8f3k2m9q1x7v4n6b0c5d2a1z \
-H "x-access-key: $BETTERPOST_API_KEY"{
"success": true,
"post": {
"postId": "post_8f3k2m9q1x7v4n6b0c5d2a1z",
"content": "Hello #warn",
"status": "partial",
"scheduledFor": null,
"timezone": "UTC",
"mediaItems": [],
"platforms": [
{
"platform": "twitter",
"accountId": "acc_2x9c4v7b1n8m3k5j0h6g2f4d",
"status": "published",
"content": "Hello #warn",
"platformPostId": "sbx_1849203756184930275",
"platformPostUrl": "https://betterpost.dev/sandbox/p/twitter/sbx_1849203756184930275",
"publishedAt": "2026-10-21T14:10:02.551Z",
"errorMessage": null,
"warningMessage": "Sandbox: simulated warning (triggered by #warn)"
}
],
"crosspostingEnabled": false,
"sandbox": true,
"createdAt": "2026-10-21T14:10:01.903Z",
"updatedAt": "2026-10-21T14:10:02.560Z"
}
}Each target's status is pending (waiting, or scheduled), publishing, published or failed, and its
content is the text actually used for that target (its override, or the shared text).
Polling: if create returned status: "publishing", call this endpoint every few seconds until the status is
published, partial or failed, or subscribe to webhooks instead.
Reference: GET /v1/posts/{id}.