Skip to main content

Documentation Index

Fetch the complete documentation index at: https://chronicle.mintlify.app/llms.txt

Use this file to discover all available pages before exploring further.

What the API covers

The REST API at https://api.chroniclehq.com/api/v1 is workspace-scoped. With a valid API key you can list templates, create and fetch presentations, update presentation metadata, poll job status, and send follow-up messages during generation.
MethodEndpointDescription
GET/templatesList available templates
GET/presentations/:idFetch an existing presentation
POST/presentationsCreate a new presentation from a template
POST/presentations/generateStart an AI presentation generation job
GET/presentations/generate/:generationId/statusPoll generation job status
POST/presentations/generate/:generationId/messageSend a follow-up message during generation
PATCH/presentations/:idUpdate presentation metadata (for example title)
For request and response field details, use the linked endpoint pages.

Working outside the current scope

The API does not modify slide content after generation. Title can be updated via PATCH /presentations/:id; for any other content change, generate a new presentation with the revised input.
The API uses an asynchronous polling model. After creating a generation, poll GET /presentations/generate/:generationId/status until the status is completed or failed.
A completed presentation includes a URL for viewing the output. From there you can export, present as needed.
Images, charts, and diagrams can be prompted through your input text. For more predictable layouts, use the template-based generation.

Rate limits

Chronicle may apply rate limits per API key. Example policy: 20 requests per minute per key When rate limited, the API should return 429 Too Many Requests. Example response:
{
  "error": {
    "code": "API_KEY_RATE_LIMITED",
    "message": "Rate limit exceeded",
    "status": 429
  }
}
For how 429 fits into client behavior, see Error codes.

Polling generation jobs

Generation workflows are asynchronous. When polling:
  • Poll at a reasonable interval
  • Stop polling when the job reaches a terminal state
  • Back off on repeated failures
  • Handle timeouts gracefully
See GET /presentations/generate/:generationId/status for the status response shape.

Production best practices

  • Log request IDs if available
  • Log status codes and error types
  • Retry only transient failures
  • Surface useful error messages to operators
  • Avoid aggressive polling loops
Tip: If your integration performs generation, most reliability issues come from polling too aggressively or not handling transient failures well.