Reference · Tools

APITemplate.io

Generate images (JPEG/PNG) and PDF documents from pre-defined templates using the APITemplate.io API.

Action (binary) Marketing v1 Binary data

The APITemplate.io node generates images (JPEG/PNG) or PDF documents from templates you've built in the APITemplate.io editor, driven by data in your workflow. Supply a template ID and the values to fill in, and the node returns the finished file — either as a URL or downloaded directly as binary data ready for a subsequent upload, email, or storage node. A typical use case is auto-generating personalised certificates or invoices at scale.

Node type
Action (binary)
Parameters
15
Outputs
Output, Error
Credentials
APITemplate.io API

APITemplate.io

Generate images and PDFs from templates via APITemplate.io

Overview

APITemplate.io turns a template you designed in its editor into a finished image or PDF. This tool drives that from a workflow: supply a template ID plus the values that vary, and the node returns the generated file’s URLs — optionally downloading the file itself and attaching it to the item as binary data so a later node can upload, email or store it. Image templates take a list of overrides; PDF templates take a flat set of key/value properties. A third resource reads your account information, including usage and plan details.

Category: Marketing
Tool Name: api_template_io
Version: 1

Appearance: Icon: lucide-Image | Color: #1F8EFA

Node Type

Action (Binary) — handles file/binary data operations

Input / Output

DirectionPort(s)
InputInput
OutputOutput, Error

Credentials

This tool requires APITemplate.io API credentials. See the Credentials Guide for setup instructions.

Resources

ResourceValue
Accountaccount
Imageimage
PDFpdf

Operations

Image

OperationValueDescription
CreatecreateCreate an image from a template

PDF

OperationValueDescription
CreatecreateCreate a PDF from a template

Account

OperationValueDescription
GetgetGet account information

Parameters

Account: Get takes no parameters of its own — see All Operations.

Image: Create

ParameterTypeRequiredDefaultDescription
Template ID (imageTemplateId)stringYesID of the image template (JPEG or PNG format). Obtain from the APITemplate.io dashboard or list-templates endpoint. Supports expressions like {{ $json.templateId }}.
JSON ParametersbooleanNofalseWhether to provide overrides/properties as raw JSON instead of using the UI fields.
Overrides (JSON)jsonNoJSON array of override objects for the image template. Example: [{“name”: “text_1”, “text”: “hello world”}] (shown when JSON Parameters is true)
OverridesfixedCollectionNo{}The template elements to override, added one at a time. (shown when JSON Parameters is false)
— OverrideOne override entry.
— — PropertiesfixedCollectionNo{}The key/value pairs that make up this override.
— — — KeystringNoName of the property to override.
— — — ValuestringNoValue for the property. Supports expressions like {{ $json.headline }}.
DownloadbooleanNofalseWhether to download the generated file and store it as binary data.
Put Output File in FieldstringYesdataThe name of the output binary field to put the file in. Names are case-sensitive — see the upstream node’s Binary Data panel for the exact names to use. (shown when Download is true)
OptionscollectionNo{}Extra download settings. (shown when Download is true)
— File NamestringNoThe name of the downloaded image/pdf. It must include the extension. For example: report.pdf

PDF: Create

ParameterTypeRequiredDefaultDescription
Template ID (pdfTemplateId)stringYesID of the PDF template. Obtain from the APITemplate.io dashboard or list-templates endpoint. Supports expressions like {{ $json.templateId }}.
JSON ParametersbooleanNofalseWhether to provide overrides/properties as raw JSON instead of using the UI fields.
Properties (JSON)jsonNoJSON object of key-value properties for the PDF template. Example: {“name”: “John Doe”, “date”: “2024-01-15”} (shown when JSON Parameters is true)
PropertiesfixedCollectionNo{}The template properties to fill in, added one at a time. (shown when JSON Parameters is false)
— PropertyOne property entry.
— — KeystringNoName of the template property.
— — ValuestringNoValue for the template property. Supports expressions like {{ $json.customerName }}.
DownloadbooleanNofalseWhether to download the generated file and store it as binary data.
Put Output File in FieldstringYesdataThe name of the output binary field to put the file in. Names are case-sensitive — see the upstream node’s Binary Data panel for the exact names to use. (shown when Download is true)
OptionscollectionNo{}Extra download settings. (shown when Download is true)
— File NamestringNoThe name of the downloaded image/pdf. It must include the extension. For example: report.pdf

All Operations

ParameterTypeRequiredDefaultDescription
Max ConcurrencynumberNo10Maximum number of items to process concurrently.

Output Data

One output item per input item — no operation on this node fans out. The API response is merged onto the input item JSON, so the returned fields sit alongside whatever the item already carried. Binary already on the item is preserved in every case.

Resource / operationMerged onto the item
image / createThe generation response, including download_url for the rendered image
pdf / createThe generation response, including download_url for the rendered PDF
account / getYour account information as APITemplate.io returns it — usage and plan details

Binary. With Download on, the node fetches the file from the returned download_url and attaches it to the item under the property named in Put Output File in Field (default data), merged with any binary the item already had. The stored file name comes from Options → File Name when you set one, otherwise from the last path segment of the download URL. With Download off, no binary is created and the input item’s binary is forwarded unchanged.

Reference the result downstream by expression, e.g. {{ $json.download_url }}.

Usage Examples

  • Generate a marketing banner image from a template
  • Create a PDF invoice from a template with dynamic values
  • Generate and download a social media image
  • Check APITemplate.io account usage and quotas

Example Configuration

Render a banner image and keep only the URLs:

{
  "type": "api_template_io",
  "parameters": {
    "resource": "image",
    "operation": "create",
    "imageTemplateId": "{{ $json.templateId }}",
    "jsonParameters": true,
    "overridesJson": "[{\"name\": \"headline\", \"text\": \"{{ $json.headline }}\"}]"
  }
}

Render an image with the UI override fields and download the file into a named binary property:

{
  "type": "api_template_io",
  "parameters": {
    "resource": "image",
    "operation": "create",
    "imageTemplateId": "1f3c9d0a2b4e5f67",
    "jsonParameters": false,
    "overridesUi": {
      "overrideValues": [
        {
          "propertiesUi": {
            "propertyValues": [
              { "key": "name", "value": "headline" },
              { "key": "text", "value": "{{ $json.title }}" }
            ]
          }
        }
      ]
    },
    "download": true,
    "binaryProperty": "generatedImage",
    "options": {
      "fileName": "banner-{{ $index }}.png"
    }
  }
}

Build a PDF invoice from key/value properties and download it:

{
  "type": "api_template_io",
  "parameters": {
    "resource": "pdf",
    "operation": "create",
    "pdfTemplateId": "9a8b7c6d5e4f3210",
    "jsonParameters": false,
    "propertiesUi": {
      "propertyValues": [
        { "key": "customerName", "value": "{{ $json.customer.name }}" },
        { "key": "invoiceDate", "value": "{{ $datetime.now }}" },
        { "key": "totalAmount", "value": "{{ $json.total }}" }
      ]
    },
    "download": true,
    "binaryProperty": "invoice",
    "options": {
      "fileName": "invoice-{{ $json.invoiceNumber }}.pdf"
    }
  }
}

Build the same PDF from a JSON object instead of UI fields:

{
  "type": "api_template_io",
  "parameters": {
    "resource": "pdf",
    "operation": "create",
    "pdfTemplateId": "9a8b7c6d5e4f3210",
    "jsonParameters": true,
    "propertiesJson": "{\"customerName\": \"{{ $json.customer.name }}\", \"totalAmount\": \"{{ $json.total }}\"}"
  }
}

Check remaining quota before a large render run:

{
  "type": "api_template_io",
  "parameters": {
    "resource": "account",
    "operation": "get"
  }
}

Error Handling

ModeBehavior
stopHalts workflow on first error
continueSkips failed items, passes successful ones through
errorPortRoutes failed items to Error output port

Tips

Generate images (JPEG/PNG) and PDF documents from APITemplate.io templates, with optional binary download of the result.

Notes

  • Images and PDFs take different data shapes. An image template is filled with an array of overrides — each override names an element and sets its properties. A PDF template is filled with a flat set of key/value properties. The parameter panel already reflects this; do not carry a JSON payload from one across to the other.
  • JSON Parameters swaps the input method, not the destination. With it off you build the payload in the UI collection; with it on you paste the equivalent JSON. Invalid JSON fails the item rather than being ignored.
  • A PDF create with no properties fails. In UI mode, add at least one Property entry.
  • Download is what produces a file. Left off, you get download_url in the JSON and nothing binary; a downstream node would have to fetch it itself. Turned on, the file is fetched for you and attached to the item.
  • Give File Name an extension. It becomes the stored file’s name; without an extension, downstream nodes and services may mis-handle the file type. Leave it empty to reuse the name APITemplate.io generated.
  • Template IDs come from your APITemplate.io dashboard and are specific to an account, so a workflow exported to another account needs its IDs updated.

Frequently asked questions

What credentials do I need to connect this node?

You need an APITemplate.io API credential, configured in BusyBot as the 'APITemplate.io API' credential type. Your API key comes from your APITemplate.io account dashboard. Template IDs also come from that dashboard and are account-specific — if you share or export a workflow to another account, every template ID will need to be updated.

Why does my PDF generation fail with no output?

A PDF create operation requires at least one Property entry. If you're using the UI input mode and haven't added any properties, the request will fail. Go to the Properties section in the node parameters and add at least one key/value pair that matches a field in your PDF template.

What's the difference between how image and PDF templates accept data?

They use different data shapes. Image templates take an array of overrides — each entry names a specific element in the template and sets its properties. PDF templates take a flat set of key/value pairs. These formats are not interchangeable, so don't copy a payload built for one resource type and use it for the other.

Do I get an actual file back, or just a URL?

By default you get a download URL in the response JSON, but no file is attached to the workflow item. To receive the file as binary data — so a downstream node can upload, email, or store it without an extra HTTP step — enable the Download option in the node parameters. When enabled, the node fetches the file and attaches it directly to the item.

Does the File Name field matter if I'm just using the download URL?

File Name only applies when Download is enabled, since that's what determines the name of the binary attachment. If you leave it empty, the node reuses the filename APITemplate.io generated. If you set it yourself, include the correct extension (e.g. .pdf, .png) — without one, downstream nodes and external services may not handle the file type correctly.

Build with the APITemplate.io node

Drop it into a workflow, wire it to an agent, or call it on a schedule. You'll need APITemplate.io API credentials first.

Open BusyBot

Last updated . Spotted something wrong? Tell us.