Developer API / docs
Recipes
Working job graphs to copy. Each one runs as-is with your key - every operation in them exists today.
Merge many PDFs into one
Import each part, merge in order, export. Order of the input list is the page order.
{ "tasks": {
"p1": { "operation": "import/url", "url": "https://example.com/cover.pdf" },
"p2": { "operation": "import/url", "url": "https://example.com/body.pdf" },
"p3": { "operation": "import/url", "url": "https://example.com/appendix.pdf" },
"merge": { "operation": "merge-pdf", "input": ["p1", "p2", "p3"] },
"out": { "operation": "export/url", "input": ["merge"] }
} }Fix a sideways scan, then extract its text
Tasks chain by naming inputs - rotate feeds pdf-to-text, both outputs export.
{ "tasks": {
"in": { "operation": "import/base64", "file": "<base64>", "filename": "scan.pdf" },
"fix": { "operation": "rotate-pdf", "input": ["in"], "angle": 90 },
"txt": { "operation": "pdf-to-text", "input": ["fix"] },
"out": { "operation": "export/url", "input": ["fix", "txt"] }
} }Web-ready image: resize, then fit under 200 KB
resize-image caps the pixel size, compress-image finds the best quality under target_kb - and says so honestly if the target is impossible.
{ "tasks": {
"in": { "operation": "import/url", "url": "https://example.com/photo.jpg" },
"size": { "operation": "resize-image", "input": ["in"], "width": 1600 },
"small": { "operation": "compress-image", "input": ["size"], "target_kb": 200 },
"out": { "operation": "export/url", "input": ["small"] }
} }A batch of QR codes in one job
generate-qr takes no input file, so a job can mint many at once.
{ "tasks": {
"qr-a": { "operation": "generate-qr", "text": "https://example.com/table-1" },
"qr-b": { "operation": "generate-qr", "text": "https://example.com/table-2" },
"qr-c": { "operation": "generate-qr", "text": "https://example.com/table-3" },
"out": { "operation": "export/url", "input": ["qr-a", "qr-b", "qr-c"] }
} }Markdown release notes to a styled HTML page
{ "tasks": {
"md": { "operation": "import/url", "url": "https://raw.githubusercontent.com/you/repo/main/CHANGELOG.md" },
"html": { "operation": "markdown-to-html", "input": ["md"], "title": "Changelog" },
"out": { "operation": "export/url", "input": ["html"] }
} }Want a pipeline these engines cannot do yet (video, docx, watermarks)? The catalog only grows with real engines - check what exists before designing around it.
Was this page helpful?