API reference
Fetch a post with its status and per-platform results.
https://api.betterpost.dev/v1/posts/{id}Poll this endpoint to follow a post that is still publishing, or use webhooks.
| Name | Description |
|---|---|
id | The post id, for example post_8f3k2m9q1x7v4n6b0c5d2a1z. |
curl -s https://api.betterpost.dev/v1/posts/post_8f3k2m9q1x7v4n6b0c5d2a1z \
-H "x-access-key: $BETTERPOST_API_KEY"200 OK
{
"success": true,
"post": {
"postId": "post_8f3k2m9q1x7v4n6b0c5d2a1z",
"content": "Ship it #fail:linkedin",
"status": "partial",
"scheduledFor": null,
"timezone": "UTC",
"mediaItems": [],
"platforms": [
{
"platform": "twitter",
"accountId": "acc_2x9c4v7b1n8m3k5j0h6g2f4d",
"status": "published",
"content": "Ship it #fail:linkedin",
"platformPostId": "sbx_1849203756184930275",
"platformPostUrl": "https://betterpost.dev/sandbox/p/twitter/sbx_1849203756184930275",
"publishedAt": "2026-10-21T14:10:02.551Z",
"errorMessage": null,
"warningMessage": null
},
{
"platform": "linkedin",
"accountId": "acc_5l1n7k3j9h2g8f4d6s0a1q3w",
"status": "failed",
"content": "Ship it #fail:linkedin",
"platformPostId": null,
"platformPostUrl": null,
"publishedAt": null,
"errorMessage": "Sandbox: simulated LinkedIn API error (triggered by #fail:linkedin)",
"warningMessage": null
}
],
"crosspostingEnabled": false,
"sandbox": true,
"createdAt": "2026-10-21T14:10:01.903Z",
"updatedAt": "2026-10-21T14:10:02.560Z"
}
}| Field | Description |
|---|---|
postId | The post id. |
content | The shared text. |
status | draft, scheduled, pending, publishing, published, partial or failed. |
scheduledFor | UTC instant for scheduled posts, otherwise null. |
timezone | The time zone the post was created with (default UTC). |
mediaItems | The shared media. |
platforms[] | One entry per target: platform, accountId, status (pending, publishing, published or failed), content (the text used for this target), platformPostId, platformPostUrl, publishedAt, errorMessage, warningMessage. |
crosspostingEnabled | Always false. |
sandbox | Always true for now. |
createdAt, updatedAt | ISO 8601 timestamps. |
| Status | Code | When |
|---|---|---|
200 | Success. | |
401 | unauthorized | Missing or unknown API key. |
404 | not_found | No such post in this project. |
429 | rate_limited | More than 120 requests per minute. |