> ## Documentation Index
> Fetch the complete documentation index at: https://iotools.cloud/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# n8n integration

> Run any IOTools.cloud tool from an n8n workflow with the community node

The [`n8n-nodes-iotools`](https://www.npmjs.com/package/n8n-nodes-iotools) community node adds one node — **IO Tools** — to [n8n](https://n8n.io), calling the same public API you already use for REST or MCP: same key, same credits, same 800+ tools.

<Info>
  The node calls the API and MCP surface while it's still in **Beta** — see [API overview](/docs/api/overview).
</Info>

## Install

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

## Credentials

Add an **iotools.cloud API** credential:

| Field        | Value                                                                        |
| ------------ | ---------------------------------------------------------------------------- |
| **API Key**  | Mint one under [Account → API keys](https://iotools.cloud/account/#api-keys) |
| **Base URL** | Defaults to `https://api.iotools.cloud/v1`                                   |

## Operations

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 or a manual slug, e.g. `case-converter`.
* **Fields** — populated dynamically from the selected tool's input schema. 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 by default, returns just the tool's `outputs`; off returns the full response envelope (`tool`, `tool_version`, `outputs`, `credits_used`, `credits_remaining`).

A failed call throws using the API's own [RFC 9457 problem document](/docs/concepts/errors) — the error message is the specific `detail` (falling back to the category title), and the code shows up in the error's description.

## Rate limits

API keys are limited to 60 requests/minute per endpoint on the free tier (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. See [Rate limits](/docs/concepts/rate-limits).

## Cost

Same meter as REST and MCP: every **Run Tool** call costs the tool's own credits, refunded if the call fails. Reading the catalog — **List Tools**, **Search Tools**, **Get Tool Schema**, **Get Credits**, **Get Usage** — is free. See [Credits](/docs/concepts/credits).

## Troubleshooting

| Symptom                                  | Cause                                                                            |
| ---------------------------------------- | -------------------------------------------------------------------------------- |
| Node not found in Community Nodes search | n8n's community node registry can lag a fresh publish by a few minutes           |
| Every call fails with `invalid_api_key`  | Key revoked, or the credential's Base URL doesn't match where the key was minted |
| `insufficient_credits`                   | Out of credits for the month — see [Credits](/docs/concepts/credits)                  |
