Resize, sharpen, and compress an image to fit email platform size limits in a single pipeline.
日本語の概要は準備中です。原文の説明を表示しています。
Generate PDF, DOCX, EPUB, and PPTX documents from structured content blocks.
インストールする前に、エージェントに与えられる指示の中身を確認できます。
Generate PDF, DOCX, EPUB, and PPTX documents from structured content blocks.
Cost: 1 credits per request
You need an Iteration Layer API key. Get one at platform.iterationlayer.com during the 7-day trial.
For full integration guidance (SDKs, auth, MCP, error handling), see the Iteration Layer Integration Guide.
Generate PDF, DOCX, EPUB, and PPTX documents from a single API call. Send a structured document definition with metadata, page settings, styles, and content blocks, and receive the rendered document as base64-encoded JSON in the response.
The Document Generation API renders structured documents from a JSON definition. You send a format, document metadata, and an ordered list of content blocks, and receive the rendered document as base64-encoded JSON. Page settings and styles are optional -- sensible defaults are applied automatically (A4 with 72pt margins, PlusJakartaSans body, Outfit headings, black text, sky-500 links).
Endpoint: POST /document-generation/v1/generate
Supported output formats: PDF, DOCX, EPUB, PPTX
curl -X POST \
https://api.iterationlayer.com/document-generation/v1/generate \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"format": "pdf",
"document": {
"metadata": {
"title": "Quarterly Report",
"author": "Acme Corp",
"language": "en"
},
"page": {
"size": {
"preset": "A4"
},
"margins": {
"top_in_pt": 72.0,
"right_in_pt": 72.0,
"bottom_in_pt": 72.0,
"left_in_pt": 72.0
}
},
"styles": {
"text": {
"font_family": "Helvetica",
"font_size_in_pt": 12.0,
"line_height": 1.5,
"color": "#000000"
},
"headline": {
"font_family": "Helvetica",
"font_size_in_pt": 24.0,
"color": "#111111",
"spacing_before_in_pt": 12.0,
"spacing_after_in_pt": 6.0,
"font_weight": "bold"
},
"link": {
"color": "#0066CC",
"is_underlined": true
},
"list": {
"text_style": {
"font_family": "Helvetica",
"font_size_in_pt": 12.0,
"line_height": 1.5,
"color": "#000000"
},
"marker_color": "#000000",
"marker_gap_in_pt": 8.0
},
"table": {
"header": {
"background_color": "#333333",
"text_color": "#FFFFFF",
"font_size_in_pt": 12.0,
"font_weight": "bold"
},
"body": {
"background_color": "#FFFFFF",
"text_color": "#000000",
"font_size_in_pt": 11.0
},
"border": {
"outer": {
"top": {
"color": "#CCCCCC",
"width_in_pt": 1.0
},
"right": {
"color": "#CCCCCC",
"width_in_pt": 1.0
},
"bottom": {
"color": "#CCCCCC",
"width_in_pt": 1.0
},
"left": {
"color": "#CCCCCC",
"width_in_pt": 1.0
}
},
"inner": {
"horizontal": {
"color": "#EEEEEE",
"width_in_pt": 0.5
},
"vertical": {
"color": "#EEEEEE",
"width_in_pt": 0.5
}
}
}
},
"grid": {
"background_color": "#FFFFFF",
"border_color": "#CCCCCC",
"border_width_in_pt": 0.0,
"gap_in_pt": 12.0
},
"separator": {
"color": "#CCCCCC",
"thickness_in_pt": 1.0,
"spacing_before_in_pt": 12.0,
"spacing_after_in_pt": 12.0
},
"image": {
"border_color": "#000000",
"border_width_in_pt": 0.0
}
},
"content": [
{
"type": "headline",
"level": "h1",
"text": "Quarterly Report"
},
{
"type": "paragraph",
"runs": [
{
"text": "This is "
},
{
"text": "bold text",
"font_weight": "bold"
},
{
"text": " in a paragraph."
}
]
}
]
}
}'
import { IterationLayer } from "iterationlayer";
const client = new IterationLayer({
apiKey: "YOUR_API_KEY",
});
const result = await client.generateDocument({
format: "pdf",
document: {
metadata: {
title: "Quarterly Report",
author: "Acme Corp",
language: "en",
},
page: {
size: {
preset: "A4",
},
margins: {
top_in_pt: 72.0,
right_in_pt: 72.0,
bottom_in_pt: 72.0,
left_in_pt: 72.0,
},
},
styles: {
text: {
font_family: "Helvetica",
font_size_in_pt: 12.0,
line_height: 1.5,
color: "#000000",
},
headline: {
font_family: "Helvetica",
font_size_in_pt: 24.0,
color: "#111111",
spacing_before_in_pt: 12.0,
spacing_after_in_pt: 6.0,
font_weight: "bold",
},
link: {
color: "#0066CC",
is_underlined: true,
},
list: {
text_style: {
font_family: "Helvetica",
font_size_in_pt: 12.0,
line_height: 1.5,
color: "#000000",
},
marker_color: "#000000",
marker_gap_in_pt: 8.0,
},
table: {
header: {
background_color: "#333333",
text_color: "#FFFFFF",
font_size_in_pt: 12.0,
font_weight: "bold",
},
body: {
background_color: "#FFFFFF",
text_color: "#000000",
font_size_in_pt: 11.0,
},
border: {
outer: {
top: {
color: "#CCCCCC",
width_in_pt: 1.0,
},
right: {
color: "#CCCCCC",
width_in_pt: 1.0,
},
bottom: {
color: "#CCCCCC",
width_in_pt: 1.0,
},
left: {
color: "#CCCCCC",
width_in_pt: 1.0,
},
},
inner: {
horizontal: {
color: "#EEEEEE",
width_in_pt: 0.5,
},
vertical: {
color: "#EEEEEE",
width_in_pt: 0.5,
},
},
},
},
grid: {
background_color: "#FFFFFF",
border_color: "#CCCCCC",
border_width_in_pt: 0.0,
gap_in_pt: 12.0,
},
separator: {
color: "#CCCCCC",
thickness_in_pt: 1.0,
spacing_before_in_pt: 12.0,
spacing_after_in_pt: 12.0,
},
image: {
border_color: "#000000",
border_width_in_pt: 0.0,
},
},
content: [
{
type: "headline",
level: "h1",
text: "Quarterly Report",
},
{
type: "paragraph",
runs: [
{
text: "This is ",
},
{
text: "bold text",
font_weight: "bold",
},
{
text: " in a paragraph.",
},
],
},
],
},
});
from iterationlayer import IterationLayer
client = IterationLayer(api_key="YOUR_API_KEY")
result = client.generate_document(
format="pdf",
document={
"metadata": {
"title": "Quarterly Report",
"author": "Acme Corp",
"language": "en",
},
"page": {
"size": {
"preset": "A4",
},
"margins": {
"top_in_pt": 72.0,
"right_in_pt": 72.0,
"bottom_in_pt": 72.0,
"left_in_pt": 72.0,
},
},
"styles": {
"text": {
"font_family": "Helvetica",
"font_size_in_pt": 12.0,
"line_height": 1.5,
"color": "#000000",
},
"headline": {
"font_family": "Helvetica",
"font_size_in_pt": 24.0,
"color": "#111111",
"spacing_before_in_pt": 12.0,
"spacing_after_in_pt": 6.0,
"font_weight": "bold",
},
"link": {
"color": "#0066CC",
"is_underlined": True,
},
"list": {
"text_style": {
"font_family": "Helvetica",
"font_size_in_pt": 12.0,
"line_height": 1.5,
"color": "#000000",
},
"marker_color": "#000000",
"marker_gap_in_pt": 8.0,
},
"table": {
"header": {
"background_color": "#333333",
"text_color": "#FFFFFF",
"font_size_in_pt": 12.0,
"font_weight": "bold",
},
"body": {
"background_color": "#FFFFFF",
"text_color": "#000000",
"font_size_in_pt": 11.0,
},
"border": {
"outer": {
"top": {
"color": "#CCCCCC",
"width_in_pt": 1.0,
},
"right": {
"color": "#CCCCCC",
"width_in_pt": 1.0,
},
"bottom": {
"color": "#CCCCCC",
"width_in_pt": 1.0,
},
"left": {
"color": "#CCCCCC",
"width_in_pt": 1.0,
},
},
"inner": {
"horizontal": {
"color": "#EEEEEE",
"width_in_pt": 0.5,
},
"vertical": {
"color": "#EEEEEE",
"width_in_pt": 0.5,
},
},
},
},
"grid": {
"background_color": "#FFFFFF",
"border_color": "#CCCCCC",
"border_width_in_pt": 0.0,
"gap_in_pt": 12.0,
},
"separator": {
"color": "#CCCCCC",
"thickness_in_pt": 1.0,
"spacing_before_in_pt": 12.0,
"spacing_after_in_pt": 12.0,
},
"image": {
"border_color": "#000000",
"border_width_in_pt": 0.0,
},
},
"content": [
{
"type": "headline",
"level": "h1",
"text": "Quarterly Report",
},
{
"type": "paragraph",
"runs": [
{
"text": "This is ",
},
{
"text": "bold text",
"font_weight": "bold",
},
{
"text": " in a paragraph.",
},
],
},
],
},
)
import il "github.com/iterationlayer/sdk-go"
client := il.NewClient("YOUR_API_KEY")
result, err := client.GenerateDocument(
il.GenerateDocumentRequest{
Format: "pdf",
Document: il.DocumentDefinition{
Metadata: il.DocumentMetadata{
Title: "Quarterly Report",
Author: "Acme Corp",
Language: "en",
},
Page: il.DocumentPage{
Size: il.DocPageSize{
Preset: "A4",
},
Margins: il.DocMargins{
TopInPt: 72,
RightInPt: 72,
BottomInPt: 72,
LeftInPt: 72,
},
},
Styles: il.DocumentStyles{
Text: il.TextStyle{
FontFamily: "Helvetica",
FontSizeInPt: 12,
Color: "#000000",
LineHeight: 1.5,
},
Headline: il.HeadlineStyle{
FontFamily: "Helvetica",
FontSizeInPt: 24,
Color: "#111111",
SpacingBeforeInPt: 12,
SpacingAfterInPt: 6,
FontWeight: "bold",
},
},
Content: []il.ContentBlock{
il.NewHeadlineBlock("h1", "Quarterly Report"),
il.ParagraphBlock{
Type: "paragraph",
Runs: []il.TextRun{
{
Text: "This is ",
},
{
Text: "bold text",
FontWeight: "bold",
},
{
Text: " in a paragraph.",
},
},
},
},
},
},
)
<!-- response -->
{
"success": true,
"data": {
"buffer": "JVBERi0xLjcKMSAwIG9iago8...",
"mime_type": "application/pdf"
}
}
<!-- /tabs -->
The top-level request has the following fields:
| Field | Type | Required | Description |
|---|---|---|---|
format | string | Yes | Output format: pdf, docx, epub, or pptx |
document | object | Yes | The full document definition (see below) |
webhook_url | string | No | HTTPS URL to receive results asynchronously. If provided, returns 201 immediately. See Webhooks. |
Add a webhook_url parameter to process the request in the background. The API returns 201 Accepted immediately and delivers the result to your webhook URL when processing completes. See Webhooks for payload format and retry behavior.
The document object contains:
| Field | Type | Required | Description |
|---|---|---|---|
metadata | object | Yes | Document metadata (title, author, language) |
page | object | No | Page size and margins. Defaults to A4 with 72pt margins |
fonts | array | No | Custom font definitions (base64-encoded font files) |
styles | object | No | Document-wide default styles. Defaults to PlusJakartaSans body, Outfit headings, black text, sky-500 links |
header | array | No | Content blocks rendered at the top of every page |
footer | array | No | Content blocks rendered at the bottom of every page |
header_distance_from_edge_in_pt | float | No | Distance from the page edge to the header |
footer_distance_from_edge_in_pt | float | No | Distance from the page edge to the footer |
content | array | Yes | Ordered list of content blocks |
| Field | Type | Required | Description |
|---|---|---|---|
title | string | Yes | Document title (min 1 character) |
author | string | No | Document author |
language | string | No | Language code (min 2 characters, e.g., "en") |
{
"metadata": {
"title": "Annual Report 2025",
"author": "Acme Corp",
"language": "en"
}
}
The page object controls page dimensions, margins, and background color.
| Field | Type | Required | Description |
|---|---|---|---|
size | object | Yes | Page size (preset or custom dimensions) |
margins | object | Yes | Page margins |
background_color | string | No | Hex color for the page background (e.g., #FFFFFF) |
Page size -- use a preset or provide custom dimensions:
| Field | Type | Required | Description |
|---|---|---|---|
preset | string | No | One of: A0-A6, B0-B6, Letter, Legal, Tabloid, Executive, Statement |
width_in_pt | float | No | Custom width in points (>= 1) |
height_in_pt | float | No | Custom height in points (>= 1) |
Use either preset or both width_in_pt and height_in_pt.
Margins:
| Field | Type | Required | Description |
|---|---|---|---|
top_in_pt | float | Yes | Top margin in points (>= 0) |
right_in_pt | float | Yes | Right margin in points (>= 0) |
bottom_in_pt | float | Yes | Bottom margin in points (>= 0) |
left_in_pt | float | Yes | Left margin in points (>= 0) |
{
"page": {
"size": {
"preset": "A4"
},
"margins": {
"top_in_pt": 72.0,
"right_in_pt": 72.0,
"bottom_in_pt": 72.0,
"left_in_pt": 72.0
},
"background_color": "#FFFFFF"
}
}
The top Google Fonts are bundled and available by default. Documents can reference any bundled font by name without providing font definitions. If a font name isn't found, it falls back to Inter Regular.
Bundled fonts:
To use additional fonts beyond the bundled set, upload them as base64-encoded font files. Each font definition requires a name, weight, style, and the font file data.
| Field | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Font family name (min 1 character) |
weight | string | Yes | One of: thin, extralight, light, regular, medium, semibold, bold, extrabold, black |
style | string | Yes | One of: normal, italic |
buffer | string | Yes | Base64-encoded font file (TTF, OTF, WOFF, or WOFF2) |
{
"fonts": [
{
"name": "CustomFont",
"weight": "regular",
"style": "normal",
"buffer": "<base64-encoded-font-file>"
},
{
"name": "CustomFont",
"weight": "bold",
"style": "normal",
"buffer": "<base64-encoded-font-file>"
}
]
}
The style system uses a two-layer merge approach: you define document-wide default styles in the styles object, and optionally override any property per content block using the block's styles field.
The styles object contains defaults for all block types:
| Field | Type | Required | Description |
|---|---|---|---|
text | object | No | Default text/paragraph style |
headline | object | No | Default headline style |
link | object | No | Default link style |
list | object | No | Default list style |
table | object | No | Default table style |
grid | object | No | Default grid style |
separator | object | No | Default separator style |
image | object | No | Default image style |
| Field | Type | Required | Description |
|---|---|---|---|
font_family | string | Yes | Font family name |
font_size_in_pt | float | Yes | Font size in points (>= 1) |
line_height | float | Yes | Line height multiplier (>= 0.5) |
color | string | Yes | Text color as hex (e.g., #000000) |
font_weight | string | No | Font weight: thin, extralight, light, regular, medium, semibold, bold, extrabold, black. PDF/EPUB render all weights. DOCX/PPTX map semibold and above to bold. |
is_italic | boolean | No | Italic text |
| Field | Type | Required | Description |
|---|---|---|---|
font_family | string | Yes | Font family name |
font_size_in_pt | float | Yes | Font size in points (>= 1) |
color | string | Yes | Headline color as hex |
spacing_before_in_pt | float | Yes | Space before the headline (>= 0) |
spacing_after_in_pt | float | Yes | Space after the headline (>= 0) |
font_weight | string | No | Font weight: thin, extralight, light, regular, medium, semibold, bold, extrabold, black. PDF/EPUB render all weights. DOCX/PPTX map semibold and above to bold. |
is_italic | boolean | No | Italic text |
| Field | Type | Required | Description |
|---|---|---|---|
color | string | Yes | Link color as hex |
is_underlined | boolean | No | Whether links are underlined |
| Field | Type | Required | Description |
|---|---|---|---|
text_style | object | Yes | Text style for list items (same fields as text style) |
marker_color | string | Yes | Bullet/number color as hex |
marker_gap_in_pt | float | Yes | Gap between marker and text (>= 0) |
| Field | Type | Required | Description |
|---|---|---|---|
header | object | Yes | Header row style: background_color, text_color, font_size_in_pt, font_weight |
body | object | Yes | Body row style: background_color, text_color, font_size_in_pt |
border | object | Yes | Border style with outer (top, right, bottom, left) and inner (horizontal, vertical) -- each with color and width_in_pt |
| Field | Type | Required | Description |
|---|---|---|---|
background_color | string | Yes | Grid background color as hex |
border_color | string | Yes | Grid border color as hex |
border_width_in_pt | float | Yes | Border width in points (>= 0) |
gap_in_pt | float | Yes | Gap between columns in points (>= 0) |
| Field | Type | Required | Description |
|---|---|---|---|
color | string | Yes | Line color as hex |
thickness_in_pt | float | Yes | Line thickness in points (>= 0) |
spacing_before_in_pt | float | Yes | Space before the separator (>= 0) |
spacing_after_in_pt | float | Yes | Space after the separator (>= 0) |
| Field | Type | Required | Description |
|---|---|---|---|
border_color | string | Yes | Border color as hex |
border_width_in_pt | float | Yes | Border width in points (>= 0) |
Content blocks are the building blocks of your document. They are provided as an ordered array in the content field and rendered sequentially.
A text paragraph composed of one or more rich text runs. Each run can have independent bold, italic, and link formatting. Alternatively, use markdown for simple Markdown-formatted text.
| Field | Type | Required | Description |
|---|---|---|---|
type | string | Yes | "paragraph" |
runs | array | No | Array of text runs (see below) |
markdown | string | No | Markdown-formatted text (alternative to runs) |
text_alignment | string | No | One of: left, center, right, justify |
styles | object | No | Text style overrides |
Text run:
| Field | Type | Required | Description |
|---|---|---|---|
text | string | Yes | The text content (min 1 character) |
font_weight | string | No | Font weight (same values as text style) |
is_italic | boolean | No | Italic formatting |
link_url | string | No | Makes the run a hyperlink |
{
"type": "paragraph",
"runs": [
{
"text": "Visit our "
},
{
"text": "website",
"font_weight": "bold",
"link_url": "https://example.com"
},
{
"text": " for details."
}
],
"text_alignment": "justify"
}
A heading from level h1 to h6. Optionally participates in the table of contents.
| Field | Type | Required | Description |
|---|---|---|---|
type | string | Yes | "headline" |
level | string | Yes | One of: h1, h2, h3, h4, h5, h6 |
text | string | Yes | Headline text (min 1 character) |
styles | object | No | Headline style overrides |
table_of_contents | object | No | Table of contents settings (see below) |
Table of contents options:
| Field | Type | Required | Description |
|---|---|---|---|
is_included | boolean | No | Whether this headline appears in the TOC |
label_override | string | No | Custom label in the TOC (min 1 character) |
level_override | string | No | Override the TOC indentation level (h1-h6) |
{
"type": "headline",
"level": "h2",
"text": "Chapter 1: Introduction",
"table_of_contents": {
"is_included": true
}
}
An inline image with specified dimensions.
| Field | Type | Required | Description |
|---|---|---|---|
type | string | Yes | "image" |
buffer | string | Yes | Base64-encoded image data |
width_in_pt | float | Yes | Display width in points (>= 1) |
height_in_pt | float | Yes | Display height in points (>= 1) |
fit | string | No | One of: cover, contain |
styles | object | No | Image style overrides |
{
"type": "image",
"buffer": "<base64-encoded-image>",
"width_in_pt": 400.0,
"height_in_pt": 300.0,
"fit": "contain"
}
A data table with optional header row, column widths, and cell-level formatting.
| Field | Type | Required | Description |
|---|---|---|---|
type | string | Yes | "table" |
header | object | No | Header row with cells array |
rows | array | Yes | Array of row objects, each with a cells array |
column_widths_in_percent | array | No | Column width percentages (each >= 1) |
styles | object | No | Table style overrides |
Table cell:
| Field | Type | Required | Description |
|---|---|---|---|
text | string | Yes | Cell content (min 1 character) |
horizontal_alignment | string | No | One of: left, center, right |
column_span | integer | No | Number of columns to span (>= 1) |
row_span | integer | No | Number of rows to span (>= 1) |
styles | object | No | Cell-level style overrides: background_color, text_color, font_size_in_pt, font_weight, is_italic |
{
"type": "table",
"header": {
"cells": [
{
"text": "Product"
},
{
"text": "Qty",
"horizontal_alignment": "right"
},
{
"text": "Price",
"horizontal_alignment": "right"
}
]
},
"rows": [
{
"cells": [
{
"text": "Widget A"
},
{
"text": "100",
"horizontal_alignment": "right"
},
{
"text": "$9.99",
"horizontal_alignment": "right"
}
]
}
],
"column_widths_in_percent": [50.0, 25.0, 25.0]
}
A 12-column grid layout for placing content blocks side by side. Each column specifies a column_span (1-12) and contains its own array of content blocks.
| Field | Type | Required | Description |
|---|---|---|---|
type | string | Yes | "grid" |
columns | array | Yes | Array of column objects (see below) |
horizontal_alignment | string | No | One of: left, center, right |
vertical_alignment | string | No | One of: top, center, bottom |
styles | object | No | Grid style overrides |
Grid column:
| Field | Type | Required | Description |
|---|---|---|---|
column_span | integer | Yes | Number of columns to span (1-12) |
horizontal_alignment | string | No | One of: left, center, right |
vertical_alignment | string | No | One of: top, center, bottom |
blocks | array | Yes | Content blocks within the column |
{
"type": "grid",
"columns": [
{
"column_span": 6,
"blocks": [
{
"type": "headline",
"level": "h3",
"text": "Left Column"
},
{
"type": "paragraph",
"runs": [
{
"text": "Content on the left."
}
]
}
]
},
{
"column_span": 6,
"blocks": [
{
"type": "headline",
"level": "h3",
"text": "Right Column"
},
{
"type": "paragraph",
"runs": [
{
"text": "Content on the right."
}
]
}
]
}
]
}
An ordered or unordered list with support for nested items.
| Field | Type | Required | Description |
|---|---|---|---|
type | string | Yes | "list" |
variant | string | Yes | "ordered" or "unordered" |
items | array | Yes | Array of list items (see below) |
styles | object | No | List style overrides |
List item:
| Field | Type | Required | Description |
|---|---|---|---|
text | string | Yes | Item text (min 1 character) |
children | array | No | Nested list items |
{
"type": "list",
"variant": "unordered",
"items": [
{
"text": "First item"
},
{
"text": "Second item",
"children": [
{
"text": "Nested item A"
},
{
"text": "Nested item B"
}
]
},
{
"text": "Third item"
}
]
}
An auto-generated table of contents built from headline blocks that have table_of_contents.is_included set to true.
| Field | Type | Required | Description |
|---|---|---|---|
type | string | Yes | "table-of-contents" |
levels | array | Yes | Which headline levels to include (e.g., ["h1", "h2", "h3"]) |
leader | string | Yes | Leader style between title and page number: "dots" or "none" |
text_alignment | string | No | One of: left, center, right, justify |
styles | object | No | Text style overrides |
{
"type": "table-of-contents",
"levels": ["h1", "h2", "h3"],
"leader": "dots"
}
Forces a page break at this point. In PPTX output, each page-break creates a new slide.
{
"type": "page-break"
}
A horizontal rule/divider line.
| Field | Type | Required | Description |
|---|---|---|---|
type | string | Yes | "separator" |
styles | object | No | Separator style overrides |
{
"type": "separator"
}
Renders the current page number. Only valid in headers and footers.
| Field | Type | Required | Description |
|---|---|---|---|
type | string | Yes | "page-number" |
text_alignment | string | No | One of: left, center, right, justify |
styles | object | No | Text style overrides |
{
"type": "page-number",
"text_alignment": "center"
}
Renders a QR code from a string value.
| Field | Type | Required | Description |
|---|---|---|---|
type | string | Yes | "qr-code" |
value | string | Yes | Data to encode (min 1 character) |
width_in_pt | integer | Yes | Width in points (>= 1) |
height_in_pt | integer | Yes | Height in points (>= 1) |
fg_hex_color | string | Yes | Foreground color as hex (e.g., #000000) |
bg_hex_color | string | Yes | Background color as hex (e.g., #FFFFFF) |
{
"type": "qr-code",
"value": "https://example.com",
"width_in_pt": 100,
"height_in_pt": 100,
"fg_hex_color": "#000000",
"bg_hex_color": "#FFFFFF"
}
Renders a barcode in one of several standard formats.
| Field | Type | Required | Description |
|---|---|---|---|
type | string | Yes | "barcode" |
value | string | Yes | Data to encode (min 1 character) |
format | string | Yes | One of: code128, ean13, ean8, code39, itf, codabar |
width_in_pt | integer | Yes | Width in points (>= 1) |
height_in_pt | integer | Yes | Height in points (>= 1) |
fg_hex_color | string | Yes | Foreground color as hex |
bg_hex_color | string | Yes | Background color as hex |
{
"type": "barcode",
"value": "1234567890128",
"format": "ean13",
"width_in_pt": 200,
"height_in_pt": 80,
"fg_hex_color": "#000000",
"bg_hex_color": "#FFFFFF"
}
Headers and footers accept the same content block types as the document body, with the addition of page-number and the exclusion of table-of-contents and page-break. They are rendered on every page.
Supported block types in headers/footers: paragraph, headline, image, table, grid, list, page-number, separator, qr-code, barcode
{
"header": [
{
"type": "paragraph",
"runs": [
{
"text": "Acme Corp -- Confidential"
}
],
"text_alignment": "right"
}
],
"footer": [
{
"type": "grid",
"columns": [
{
"column_span": 6,
"blocks": [
{
"type": "paragraph",
"runs": [
{
"text": "Acme Corp"
}
]
}
]
},
{
"column_span": 6,
"blocks": [
{
"type": "page-number",
"text_alignment": "right"
}
]
}
]
}
],
"header_distance_from_edge_in_pt": 36.0,
"footer_distance_from_edge_in_pt": 36.0
}
When generating PPTX (PowerPoint) output:
page-break becomes the first slide.page-break block creates a new slide.Not all features are supported equally across output formats. The table below shows per-format feature support:
| Feature | DOCX | PPTX | EPUB | |
|---|---|---|---|---|
| Paragraph (rich text) | ✅ | ✅ | ✅ | ✅ |
| Headline (h1-h6 sizes) | ✅ | ✅ | ✅ | ✅ |
| Image | ✅ | ✅ | ✅ | ✅ |
| QR Code | ✅ | ✅ | ✅ | ✅ |
| Barcode | ✅ | ✅ | ✅ | ✅ |
| Table | ✅ | ✅ | ✅ | ✅ |
| Grid (columns) | ✅ | ✅ | ✅ | ✅ |
| List (ordered/unordered) | ✅ | ✅ | ✅ | ✅ |
| Nested lists | ✅ | ✅ | ✅ | ✅ |
| Table of Contents | ✅ | ✅ | ✅ | ✅ |
| Page Break | ✅ | ✅ | ✅ | ✅ |
| Separator | ✅ | ✅ | ✅ | ✅ |
| Page Number | ✅ | ✅ | ✅ | ❌ |
| Header / Footer | ✅ | ✅ | ❌ | ❌ |
| Font Weight (thin–black) | ✅ | ⚠️ | ⚠️ | ✅ |
| Custom Fonts | ✅ | ✅ | ✅ | ✅ |
| Page Background Color | ✅ | ✅ | ✅ | ❌ |
| Table Cell Backgrounds | ✅ | ✅ | ✅ | ✅ |
Notes:
semibold, bold, extrabold, and black render as bold. All lighter weights (thin through medium) render as normal. PDF and EPUB render the full 100--900 numeric weight range, so all weights are visually distinct when the font supports them.For complete, runnable examples see the Recipes page.
| Status | Description |
|---|---|
| 400 | Invalid request (validation errors, missing required fields, invalid base64 font data) |
| 401 | Missing or invalid API key |
| 422 | Processing error (document rendering failure) |
| 429 | Rate limit exceeded |
まだレビューはありません。使ってみた感想をお寄せください。
概要と使いどころ
Resize, sharpen, and compress an image to fit email platform size limits in a single pipeline.
日本語の概要は準備中です。原文の説明を表示しています。
Compress an image to fit within a specific file size in bytes using quality-first compression.
日本語の概要は準備中です。原文の説明を表示しています。
Convert a contract PDF to clean markdown for clause extraction or LLM analysis.
日本語の概要は準備中です。原文の説明を表示しています。
Convert external documents — specs, contracts, reports — to markdown for knowledge base ingestion.
日本語の概要は準備中です。原文の説明を表示しています。
Convert a document to clean markdown suitable for chunking and embedding in a RAG pipeline.
日本語の概要は準備中です。原文の説明を表示しています。
Convert an image between PNG, JPEG, and WebP formats with quality control for web optimization.
日本語の概要は準備中です。原文の説明を表示しています。