About this endpoint
What it does
Generates a rendered report from JSON report content and returns the render metadata and output payload fields defined by the response schema. You can control the output format and page options in the request body.
Request Body
| Parameter | Type | Description |
|---|---|---|
| data | Object | Report content. Must include title, date, and sections. |
| data.date | String | Date string. Max length: 32. |
| data.title | String | Title string. Max length: 200. |
| data.author | String | Optional author name. Max length: 200. Default: null. |
| data.footer | String | Optional footer text. Max length: 200. Default: null. |
| data.summary | String | Optional executive summary printed before the sections. Max length: 4000. Default: null. |
| data.sections | Object Array | Array of report sections. Minimum 1 item, maximum 50 items. |
| data.sections[].heading | String | Section heading. Max length: 200. |
| data.sections[].table | Object | Optional table for the section. When provided, columns is required. Default: null. |
| data.sections[].table.rows | Object Array | Table rows. Each row is an array of string, number, integer, or null values. Maximum 500 rows. |
| data.sections[].table.caption | String | Optional table caption. Max length: 200. Default: null. |
| data.sections[].table.columns | String Array | Table columns. Required when the table object is given. Minimum 1 item, maximum 20 items. |
| data.sections[].bullets | String Array | Bullet list items for the section. Maximum 100 items. |
| data.sections[].paragraphs | String Array | Paragraph text items for the section. Maximum 50 items. |
| data.subtitle | String | Optional subtitle. Max length: 200. Default: null. |
| page | Object | Page options for PDF output. Paper size and margins. |
| page.size | ENUM | Paper size. Allowed values: A4, Letter, Legal, A3, A5. Default: A4. |
| page.margin_mm | Number | Uniform page margin in millimetres. Minimum: 0. Maximum: 50. Default: 18. |
| page.orientation | ENUM | Page orientation. Allowed values: portrait, landscape. Default: portrait. |
| format | ENUM | Output format. Allowed values: json, html, pdf, docx. Default: json. The schema notes that pdf, html, and docx return bytes, while json returns a PDF data URI plus metadata. |
| download | Boolean | Sends Content-Disposition: attachment so browsers save the file. Default: false. |
Response
Returns a JSON object with these top-level fields: bytes integer, cache string, pages integer or null, engine string, format string, data_uri string, warnings array of strings, queued_ms integer, render_ms integer, media_type string, and engine_version string. The schema does not mark any response fields as required.
| Parameter | Type | Description |
|---|---|---|
| bytes | Integer | Rendered output size in bytes. |
| cache | ENUM | Cache status. Allowed values: hit, miss. |
| pages | Integer | PDF page count; null for DOCX/HTML. |
| engine | String | Rendering engine name. |
| format | ENUM | Output format returned. Allowed values: docx, pdf, html. |
| data_uri | String | Data URI in the form data:<media_type>;base64,…. |
| warnings | String Array | Warning messages emitted during rendering. |
| queued_ms | Integer | Time spent queued, in milliseconds. |
| render_ms | Integer | Time spent rendering, in milliseconds. |
| media_type | String | MIME type of the rendered payload. |
| engine_version | String | Rendering engine version. |
Notes
The request body includes an outer parser wrapper named body, but callers should send the inner fields directly; do not include a body object in the actual request. Also, when page is provided, its fields use the documented defaults unless overridden, and download only changes the response headers, not the JSON response shape.



