Checking a post
The create call returns ids; this is where you learn what became of them. Poll rather than waiting on the create request, which returns long before the platform has answered.
GET
https://antwork.io/api/v1/posts/{id}ScopereadRequest
curl https://antwork.io/api/v1/posts/pQ7x... \
-H "Authorization: Bearer $ANTWORK_API_KEY"Response
200 OK
{
"object": "post",
"id": "pQ7x...",
"workspaceId": "ws_...",
"accountId": "acc_linkedin",
"platform": "linkedin",
"campaignId": "b3f1...",
"status": "published",
"text": "Shipped the API today.",
"mediaUrls": [],
"scheduledFor": "2026-10-01T09:00:00.000Z",
"publishedAt": "2026-10-01T09:00:04.000Z",
"publishedUrl": "https://www.linkedin.com/feed/update/...",
"platformPostId": "urn:li:share:...",
"error": null,
"createdAt": "2026-09-22T10:00:00.000Z",
"updatedAt": "2026-10-01T09:00:04.000Z"
}Once it has gone out, publishedUrl and platformPostId are filled in. If it failed, error.message says what the platform said and error.advice says what to do about it.
A post that does not exist, belongs to someone else or has been deleted answers 404 with post_not_found. Needs the read scope.
Post statuses
draft— saved, not scheduled. It will not go out.scheduled— waiting for its time, or being sent right now.published— live on the platform.publishedUrlandplatformPostIdare set.failed— did not go out.errorsays why.