Skip to Content
DeveloperEmbed APICheck Post Status

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

ParameterTypeRequiredDescription
embedPostIdstringYesID 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", message Generated N AI image(s) successfully.
  • Failure/skip → status: "FAILED", message Skipped 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, or Skipped 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> or Left 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

StatusMeaningWhat to do
PENDINGThe post is queued or still being generatedKeep polling this endpoint (a few seconds between polls is sufficient; generation typically completes well under a minute)
COMPLETEDGeneration finished successfullyCall Get Post Output to retrieve the files
FAILEDGeneration failedInspect the logs array in the response for the failing step and error message, then retry or contact support@postnitro.ai
Last updated on