API endpoints
Use JSON for PDF operations. Receive a PDF on success and a JSON problem response when a request fails.
| Method & route | Request / response |
|---|---|
GET/api/v1/templates | Preset template catalog: ID, description, request schema, deployment profile, and editable populated request example. Requires a valid X-Api-Key. |
GET/api/v1/templates/{id} | One preset template and its ready-to-submit request example. Requires a valid X-Api-Key; unknown IDs return 404. |
POST/api/v1/pdfs/{id} | Send a complete request example or, for legacy presets, labels and data to populate the selected layout. Returns application/pdf. Content and labels. |
POST/api/v1/pdfs/custom-template | Caller supplied layout under template, with printable labels and populated data in separate maps. Invalid or unsupported schema returns 400. Custom template JSON. |
POST/api/v1/pdfs/merge | PDF bytes as base64 plus optional page selections, filename, and numbering. Merge contract and example. |
POST/api/v1/pdfs/page-numbers | Base64 PDF and caller supplied numbering format. Numbering fields. |
GET/api/v1/security | Public JSON: requiresApiKey, maxRequestBytes, maxOutputBytes, renderTimeoutSeconds. Contains no credentials. |
GET/health | Public liveness response: {"status":"healthy"}. |
GET/source/archive.zip | Public corresponding source archive, license, and documentation. Checksum and download. |
GET/downloads/examples.zip | Five generic JSON request examples and integration guidance. |
GET/downloads/application.zip | Versioned application source release with generic examples and release metadata. |
GET/releases/index.json | Application version and its release notes. Read release notes. |
GET/robots.txt | Allows crawlers to read the service's global noindex response headers. Pages also include noindex metadata. |
GET/openapi/v1.json | Machine-readable OpenAPI document with response definitions and deployment key requirements. |
GET/docs/index.json | Documentation index: title, description, category, kind, keywords, and local path. Requires a valid X-Api-Key. |
GET/docs/templates/{id}/example.json | Download the editable, populated request example for a preset. Requires a valid X-Api-Key; it is not a standalone design definition. |
Authentication and errors
Preset catalog reads, the documentation index, preset template details, and preset request-example downloads require a valid X-Api-Key. The preset detail page accepts the key through its form and sends it in the request header. PDF POSTs also require the header when the host enables authentication. Studio always validates this header at POST /studio/authorize before loading templates or enabling editing. General guides, the endpoint reference, and application downloads remain public. Check authentication and limits and errors before integrating. CORS preflight OPTIONS requests are handled automatically for GET and POST.
The preset route and custom-template route have different request contracts. Use the catalog for registered layouts or send a supported custom layout under the custom route's template property. Download OpenAPI JSON ↗.