Skip to content

OpenAPI Spec & Postman

The entire public API is described by a single OpenAPI 3.1 document. Download it to explore endpoints in Postman or Insomnia, generate a typed client, or drive your own tooling — no copy-pasting from these docs required.

The spec covers only the public endpoints. Every operation carries one tag, and the tags are grouped (the x-tagGroups extension), so Postman and Insomnia build one folder per tag, code generators one client class per tag, and Redoc and Scalar show the groups in their sidebars:

TagMethodPathPurpose
Image generationPOST/api/v1/templates/{templateId}/generateRender a personalized image — returns bytes, or a share link with delivery: "link"
Batch jobsPOST/api/v1/batch-jobsSubmit a batch job — one template, many rows
Batch jobsGET/api/v1/batch-jobsList your batch jobs
Batch jobsGET/api/v1/batch-jobs/{jobId}Poll a batch job’s status
Batch jobsGET/api/v1/batch-jobs/{jobId}/itemsList a job’s per-row outcomes
Batch jobsGET/api/v1/batch-jobs/{jobId}/resultFetch a completed job’s results (URL or ZIP)
Batch jobsPOST/api/v1/batch-jobs/{jobId}/cancelCancel a batch job, refunding unrendered rows
Batch jobsDELETE/api/v1/batch-jobs/{jobId}Delete a finished batch job and its archive
Share linksGET/api/v1/sharesList your public share links
Share linksDELETE/api/v1/shares/{shareId}Revoke a public share link
TagMethodPathPurpose
Design referenceGET/api/v1/design-referenceIndex of the design reference knowledge pack
Design referenceGET/api/v1/design-reference/{topic}A markdown topic from the design reference
Design referenceGET/api/v1/design-reference/element-typesIndex of element and supporting types
Design referenceGET/api/v1/design-reference/element-types/{type}One element or supporting type’s field table
Design referenceGET/api/v1/design-reference/examples/{name}One golden example design
Design authoringPOST/api/v1/designs/validateValidate a design without saving it (free) — see Authoring Templates
Design authoringPOST/api/v1/designs/renderRender a charged preview of a design and get its render receipt
TagMethodPathPurpose
TemplatesGET/api/v1/templates/{templateId}Inspect a template and its variable schema; ?include=canvas adds the design
TemplatesGET/api/v1/templates/{templateId}/thumbnailStream the template’s stored thumbnail — see Templates & Schema Discovery
TemplatesPOST/api/v1/templatesCreate a template from a previewed design, or copy a built-in one with fromLibrary
TemplatesPATCH/api/v1/templates/{templateId}Update a template’s metadata or design
TemplatesDELETE/api/v1/templates/{templateId}Delete a template
Template versionsGET/api/v1/templates/{templateId}/versionsList a template’s retained versions — see Version history
Template versionsGET/api/v1/templates/{templateId}/versions/{version}Get one version; ?include=canvas adds its design
Template versionsGET/api/v1/templates/{templateId}/versions/{version}/thumbnailStream a version’s stored thumbnail
Template versionsPOST/api/v1/templates/{templateId}/versions/{version}/restoreRestore a version as the template’s current design
ProjectsGET/api/v1/projectsList your projects
ProjectsGET/api/v1/projects/{projectId}Get one project
ProjectsGET/api/v1/projects/{projectId}/templatesList templates in a project
ProjectsPOST/api/v1/projectsCreate a project
ImagesGET/api/v1/imagesList the organization’s image library
ImagesPOST/api/v1/imagesUpload an image (multipart file, or JSON url)
ImagesGET/api/v1/images/{id}Get one image
ImagesDELETE/api/v1/images/{id}Delete an image
ImagesGET/api/v1/images/{id}/previewStream an image’s preview
TagMethodPathPurpose
AccountGET/api/v1/accountGet the organization, plan, quota and scopes for the presenting credential

The document’s servers block is set to https://app.zandovi.com, and every operation declares two security schemes: apiKey (the X-Api-Key header) and bearerAuth (an OAuth Authorization: Bearer token). Either one satisfies the request, so imported requests are pre-wired with the right base URL and auth.

  1. Open Postman → Import (top-left), then drag in zandovi-openapi.yaml (or File → Choose Files).
  2. Before confirming, open the import settings: set Folder organization to Tags to get one folder per tag above, and Request parameter generation to Example so request bodies are filled from the spec’s examples rather than from placeholder values.
  3. Postman creates a Zandovi API collection with every endpoint and example request, and detects the X-Api-Key auth from the spec.
  4. Open the collection → Variables (or its Authorization tab) and set your API key once — every request inherits it.
  5. Create your key first in Settings → API Keys — see Authentication.
  • Insomnia: Create → Import From File → pick the YAML. Same result.

  • Client generation: feed the file to any OpenAPI 3.1 tool, e.g.

    Terminal window
    # TypeScript types
    npx openapi-typescript zandovi-openapi.yaml -o zandovi.d.ts
    # A full client with openapi-generator
    openapi-generator generate -i zandovi-openapi.yaml -g python -o ./zandovi-client

Admin, billing, and internal endpoints are intentionally excluded — the document contains only the public API described in these docs, including the batch-jobs and authoring endpoints listed above.

Completion callbacks are only half-visible here, by nature: the callbackUrl request field and the completionCallback response object are in the spec, but the delivery we POST to your endpoint isn’t — it’s a request you receive, not one you make, so no operation describes it. Its payload and signature are documented on the callbacks page.

The spec is regenerated from the API itself, so the download tracks the live https://app.zandovi.com/api/v1 behavior. Pin against the info.version field inside the file if you need to detect changes.