Check Post Status
GET https://embed-api.postnitro.ai/post/status/{embedPostId}
Retrieves the current status and processing logs for a specific post. Use this to poll the progress of a carousel after initiating it via AI Generation or Content Import.
Headers
embed-api-key: your-api-key-here(required)
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
embedPostId | string | Yes | ID of the embed post to check |
Example Request
curl --location 'https://embed-api.postnitro.ai/post/status/[embed-post-id]' \
--header 'embed-api-key: pn-your-api-key'Response
{
"success": true,
"data": {
"embedPostId": "post123",
"embedPost": {
"id": "post123",
"postType": "CAROUSEL",
"status": "COMPLETED",
"createdAt": "2024-01-15T10:30:00Z",
"updatedAt": "2024-01-15T10:35:00Z"
},
"logs": [
{
"id": "log1",
"embedPostId": "post123",
"step": "INITIATED",
"status": "SUCCESS",
"message": "Post generation initiated",
"timestamp": "2024-01-15T10:30:00Z"
},
{
"id": "log2",
"embedPostId": "post123",
"step": "PROCESSING",
"status": "SUCCESS",
"message": "Content generated successfully",
"timestamp": "2024-01-15T10:32:00Z"
},
{
"id": "log3",
"embedPostId": "post123",
"step": "COMPLETED",
"status": "SUCCESS",
"message": "Post generation completed",
"timestamp": "2024-01-15T10:35:00Z"
}
]
}
}AI image generation step
If the post was initiated with generateImages, a GENERATE_IMAGES step appears in logs:
- Success →
status: "COMPLETED", messageGenerated N AI image(s) successfully. - Failure/skip →
status: "FAILED", messageSkipped AI image generation: <reason>(e.g. free plan or over the org’s AI-image quota).
Image generation is best-effort: even when the GENERATE_IMAGES step is FAILED, the overall post status still becomes COMPLETED — the post is simply produced without images. Generating images adds latency, so keep polling until the post is COMPLETED.
Voiceover step
A VIDEO post that asks for a voiceover, or an edit of a narrated one, has a VOICEOVER step. It comes after SAVE_JSON (and GENERATE_IMAGES, when the request asks for images) and before COMPOSE_MOTION:
- Done →
status: "COMPLETED", with the slides narrated, the voice and tone, the narration’s length and the AI tokens it took:Narrated 5 slides in nova, Hype and punchy: 27.1s, 2,866 AI tokens. When some slides couldn’t be recorded, it ends; 1 slide couldn't be recorded. - Skipped →
status: "FAILED",Skipped the voiceover: the plan's AI tokens are used up,Skipped the voiceover: voiceovers are part of paid plans, orSkipped the voiceover: <reason>for any other failure.
Like the images, a voiceover is best-effort: the post still completes, without narration. Writing and recording it adds latency.
Video motion step
A VIDEO post has a COMPOSE_MOTION step, where its motion is put on the design:
- Done →
status: "COMPLETED", with how long the video runs (Composed the video's motion: 24.6s.), and anything of the per-slide motion a slide couldn’t take (Left out slide 3's image step: the slide shows no image.). - Left out →
status: "FAILED",Left the template's motion out: <reason>orLeft the default style out: <reason>. Like the images, this is best-effort: the post still completes, without that motion. Motion your request asked for is different: when it can’t be had, the post fails.
A video longer than 2:00 fails at the DOWNLOAD step for an MP4, after its design is saved: see When a video is too long.
Post Status Values
| Status | Meaning | What to do |
|---|---|---|
PENDING | The post is queued or still being generated | Keep polling this endpoint (a few seconds between polls is sufficient; generation typically completes well under a minute) |
COMPLETED | Generation finished successfully | Call Get Post Output to retrieve the files |
FAILED | Generation failed | Inspect the logs array in the response for the failing step and error message, then retry or contact support@postnitro.ai |