Skip to main content
curl "https://api.chroniclehq.com/api/v1/presentations/generate/gen_123/status" \
  -H "Authorization: Bearer $API_KEY"
{
  "generation_id": "gen_123",
  "status": "generating",
  "phase": "storyline",
  "tokens_used": 1280
}
curl "https://api.chroniclehq.com/api/v1/presentations/generate/gen_123/status" \
  -H "Authorization: Bearer $API_KEY"

Parameters

generationId
string
required
The generation job ID

Response

{
  "generation_id": "gen_123",
  "status": "generating",
  "phase": "storyline",
  "tokens_used": 1280
}

Common fields

generation_id
string
Generation job ID
status
string
Current generation status: one of generating, awaiting_input, completed, failed.

When status = “generating”

progress
object
Optional progress object. Present once Chronicle has begun generating slides.
phase
string
Optional. Present only for Standalone generations (when template_id was omitted on the original request). One of storyline (Chronicle is planning the deck outline) or slides (Chronicle is generating the slides from the storyline). Use this to give users finer-grained progress feedback than the time-based stage progression.
tokens_used
number
Optional running token total for this generation. Present when non-zero.

When status = “awaiting_input”

message
string
Clarifying question or follow-up prompt from Chronicle. Reply via POST /presentations/generate/:generationId/message.

When status = “completed”

presentation
object
The materialized presentation. Same shape as GET /presentations/:id.
tokens_used
number
Optional total tokens consumed by the generation. Present when non-zero.

When status = “failed”

error
string
Human-readable failure reason (for example Generation timed out or a propagated upstream error message).

FAQs

Poll at a short interval, such as every few seconds.Avoid polling in a tight loop.
Your client should handle these statuses:
  • generating
  • completed
  • failed
  • awaiting_input
When generation completes, Chronicle returns the final presentation object.That response includes the information you need to open or continue working with the presentation.
Treat failed as a terminal state and surface the error clearly in your app or logs.Do not continue polling after generation has failed.
Yes. The status response can include progress details while the presentation is being generated.Use those fields to give users better feedback than a generic loading state.
For Standalone generations (no template_id), Chronicle works in two phases: it first generates the storyline outline, then it generates the slides from that outline. The phase field tells you which one is currently active so your UI can show a more accurate progress indicator.Template-based generations don’t emit a phase — they’re single-phase from the API’s perspective.