Back to Nodes

Tool

Last updated Aug 12, 2026

Run any iotools.cloud tool (converters, generators, formatters, calculators, editors, utilities) from an n8n workflow.

6 Weekly Downloads
47 Monthly Downloads

Included Nodes

Tool

Description

n8n-nodes-iotools

An n8n community node for iotools.cloud — run any of its 800+ tools
(converters, generators, formatters, calculators, editors, utilities) from a workflow, on top of the public
iotools.cloud API (GET /v1/openapi).

Install

In n8n: Settings → Community Nodes → Install, package name n8n-nodes-iotools.

Credentials

Add an iotools.cloud API credential:

  • API Key — mint one under Account → API Keys.
  • Base URL — defaults to https://api.iotools.cloud; only change it for a self-hosted or staging deployment.
  • The IO Tools node

    One node, six operations:

    | Operation | What it does |
    | — | — |
    | Run Tool | Pick a tool (searchable list or a known slug), fill its fields, run it. |
    | List Tools | Every tool with an API — one output item per tool. |
    | Search Tools | Find a tool by name, slug, description or tag. |
    | Get Tool Schema | A tool’s input/output JSON Schema and credit cost, without running it. |
    | Get Credits | The key’s remaining credit balance for the current period. |
    | Get Usage | The key’s recent credit spend, one item per (tool, day, surface) row. |

    Run Tool

  • Tool — a searchable resource picker (backed by GET /v1/tools/search) or a manual slug, e.g. case-converter.
  • Fields — populated dynamically from the selected tool’s input schema (GET /v1/tool/{slug}). Enums become
  • dropdowns; everything else maps to a string, number, or boolean field. Array and base64-blob inputs fall back to a
    string field (paste JSON / base64 text) — there’s no matching n8n field type for either.

  • Additional Fields (JSON) — a JSON object merged on top of Fields, for anything the mapper can’t represent well,
  • or to override a single field with an expression. Defaults to {} (no-op).

  • Simplify — on (default), returns just the tool’s outputs; off returns the full response envelope

(tool, toolversion, outputs, creditsused, credits_remaining).

A failed call throws using the API’s own RFC 9457 problem document — the error message
is the specific detail (falling back to the category title), and the code shows up in the error’s description.

Example: run a tool

A minimal workflow — a Manual Trigger feeding a Run Tool call to case-converter — looks like this. Import it via
n8n’s Import from File / URL (or paste into a new workflow with Ctrl/Cmd+V):

{
  "nodes": [
    {
      "parameters": {},
      "name": "When clicking 'Execute workflow'",
      "type": "n8n-nodes-base.manualTrigger",
      "typeVersion": 1,
      "position": [-200, 0]
    },
    {
      "parameters": {
        "operation": "runTool",
        "tool": { "mode": "id", "value": "case-converter" },
        "fields": { "mappingMode": "defineBelow", "value": {} },
        "additionalFieldsJson": "{n  "inputString": "hello world",n  "caseStyle": "param-case"n}"
      },
      "name": "IO Tools",
      "type": "n8n-nodes-iotools.ioTools",
      "typeVersion": 1,
      "position": [0, 0],
      "credentials": {
        "ioToolsApi": { "id": "REPLACEWITHYOURCREDENTIALID", "name": "iotools.cloud API" }
      }
    }
  ],
  "connections": {
    "When clicking 'Execute workflow'": { "main": [[{ "node": "IO Tools", "type": "main", "index": 0 }]] }
  }
}

Swap case-converter for any slug from List Tools / Search Tools. This example puts the tool’s input
(inputString, caseStyle) in Additional Fields (JSON) for a self-contained, pasteable workflow — when building
by hand, the dynamic Fields table above it populates from the tool’s schema instead.

Rate limits

API keys are limited to 60 requests/minute per endpoint (higher on paid tiers) — easy to hit with more than one IO
Tools node in a workflow, or one processing many input items. A rate-limited call is retried automatically (up to 3
times, waiting the time the API itself reports) rather than failing the run; only a rate limit that outlasts those
retries surfaces as an error.

Development

pnpm install
pnpm typecheck
pnpm test
pnpm build   # -> dist/, loadable by n8n
pnpm dev     # starts n8n with this node loaded, hot reload

src/ holds framework-agnostic logic (API types, JSON-Schema → resourceMapper-field mapping, request-body merging) —
unit tested directly with vitest. credentials/ and nodes/IoTools/ are the n8n-facing glue.

To test against a real n8n instance without publishing anything, use n8n’s “private node” install: npm pack the
built package, then on the target instance run npm install inside its .n8n/nodes folder (creating it
with npm init -y first if needed) and restart n8n — no Settings → Community Nodes step required. See
n8n’s community-node docs for details.

From our network Other tools and sites we build