# nodes

node_type: @decisionrules/n8n-nodes-decisionrules.decisionRules
package_name: @decisionrules/n8n-nodes-decisionrules
display_name: DecisionRules
description: DecisionRules Actions
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: decisionrules
author_github_url: https://github.com/decisionrules/n8n-nodes-decisionrules.git
npm_package_name: @decisionrules/n8n-nodes-decisionrules
npm_version: 1.0.5
community_fetched_at: 2026-04-16T09:43:36.410Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "solveRes",
      "options": [
        {
          "name": "Job",
          "value": "jobRes"
        },
        {
          "name": "Management Folder",
          "value": "managementFolderRes"
        },
        {
          "name": "Management Rule",
          "value": "managementRuleRes"
        },
        {
          "name": "Management Tag",
          "value": "managementTagRes"
        },
        {
          "name": "Management Tool",
          "value": "managementToolsRes"
        },
        {
          "name": "Solve",
          "value": "solveRes"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "solve",
      "options": [
        {
          "name": "Solve Rule",
          "value": "solve",
          "action": "Solve rule",
          "description": "Takes the node input, sends it as data to the defined host, and solves a rule"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "solveRes"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "startJob",
      "options": [
        {
          "name": "Start Job",
          "value": "startJob",
          "action": "Start a job",
          "description": "Takes the node input, sends it as data to the defined host, and starts a job for an integration flow rule"
        },
        {
          "name": "Cancel Job",
          "value": "cancelJob",
          "action": "Cancel a job",
          "description": "Cancels a running job"
        },
        {
          "name": "Get Job Info",
          "value": "jobInfo",
          "action": "Get job info",
          "description": "Retrieves information about a job's status (e.g., success, failure, or in process) based on its ID"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "jobRes"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getRule",
      "options": [
        {
          "name": "Create New Rule Version",
          "value": "createNewRuleVersion",
          "action": "Create a new rule version",
          "description": "Creates a new version of an existing rule"
        },
        {
          "name": "Create Rule",
          "value": "createRule",
          "action": "Create a rule",
          "description": "Creates a new rule"
        },
        {
          "name": "Delete Rule",
          "value": "deleteRule",
          "action": "Delete a rule",
          "description": "Deletes a specific rule or a version of a rule"
        },
        {
          "name": "Get Rule",
          "value": "getRule",
          "action": "Get a rule",
          "description": "Retrieves a specific rule by its ID or alias"
        },
        {
          "name": "Get Rules for Space",
          "value": "getRulesForSpace",
          "action": "Get all rules for a space",
          "description": "Retrieves all rules within the configured space"
        },
        {
          "name": "Lock Rule",
          "value": "lockRule",
          "action": "Lock or unlock a rule",
          "description": "Locks or unlocks a rule to prevent edits"
        },
        {
          "name": "Update Rule",
          "value": "updateRule",
          "action": "Update a rule",
          "description": "Updates the content or properties of a rule"
        },
        {
          "name": "Update Rule Status",
          "value": "updateRuleStatus",
          "action": "Update a rule s status",
          "description": "Changes a rule's status (e.g., to published or pending)"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "managementRuleRes"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getTags",
      "options": [
        {
          "name": "Delete Tags",
          "value": "deleteTags",
          "action": "Delete tags from a rule",
          "description": "Removes one or more tags from a rule"
        },
        {
          "name": "Get Rules by Tags",
          "value": "getTags",
          "action": "Get tags for a rule",
          "description": "Retrieves all tags associated with a rule"
        },
        {
          "name": "Update Tags",
          "value": "updateTags",
          "action": "Update tags for a rule",
          "description": "Adds or overwrites tags for a rule"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "managementTagRes"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getFolderStructure",
      "options": [
        {
          "name": "Create Folder",
          "value": "createFolder",
          "action": "Create a folder",
          "description": "Creates a new folder at a specified location"
        },
        {
          "name": "Delete Folder",
          "value": "deleteFolder",
          "action": "Delete a folder",
          "description": "Deletes a folder and optionally all its contents"
        },
        {
          "name": "Export Folder",
          "value": "exportFolder",
          "action": "Export a folder",
          "description": "Exports the contents of a folder as a JSON object"
        },
        {
          "name": "Find Folder or Rule",
          "value": "findFolderOrRule",
          "action": "Find a folder or rule",
          "description": "Finds a folder or rule by various attributes"
        },
        {
          "name": "Get Folder Structure",
          "value": "getFolderStructure",
          "action": "Get the folder structure",
          "description": "Retrieves the folder and rule hierarchy"
        },
        {
          "name": "Import Folder",
          "value": "importFolder",
          "action": "Import a folder",
          "description": "Imports a folder structure from a JSON object"
        },
        {
          "name": "Move Folder",
          "value": "moveFolder",
          "action": "Move a folder or rule",
          "description": "Moves a folder or rule to a different location"
        },
        {
          "name": "Rename Folder",
          "value": "renameFolder",
          "action": "Rename a folder",
          "description": "Renames an existing folder"
        },
        {
          "name": "Update Node Folder Structure",
          "value": "updateNodeFolderStructure",
          "action": "Update a node folder structure",
          "description": "Updates the structure of a folder or node"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "managementFolderRes"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "findDependencies",
      "options": [
        {
          "name": "Find Dependencies",
          "value": "findDependencies",
          "action": "Find rule dependencies",
          "description": "Finds all dependencies for a given rule"
        },
        {
          "name": "Find Duplicates",
          "value": "findDuplicates",
          "action": "Find duplicates in a rule",
          "description": "Finds duplicate conditions within a rule"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "managementToolsRes"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Solve Rule",
      "value": "solve",
      "action": "Solve rule",
      "description": "Takes the node input, sends it as data to the defined host, and solves a rule",
      "resource": "solveRes"
    },
    {
      "name": "Start Job",
      "value": "startJob",
      "action": "Start a job",
      "description": "Takes the node input, sends it as data to the defined host, and starts a job for an integration flow rule",
      "resource": "jobRes"
    },
    {
      "name": "Cancel Job",
      "value": "cancelJob",
      "action": "Cancel a job",
      "description": "Cancels a running job",
      "resource": "jobRes"
    },
    {
      "name": "Get Job Info",
      "value": "jobInfo",
      "action": "Get job info",
      "description": "Retrieves information about a job's status (e.g., success, failure, or in process) based on its ID",
      "resource": "jobRes"
    },
    {
      "name": "Create New Rule Version",
      "value": "createNewRuleVersion",
      "action": "Create a new rule version",
      "description": "Creates a new version of an existing rule",
      "resource": "managementRuleRes"
    },
    {
      "name": "Create Rule",
      "value": "createRule",
      "action": "Create a rule",
      "description": "Creates a new rule",
      "resource": "managementRuleRes"
    },
    {
      "name": "Delete Rule",
      "value": "deleteRule",
      "action": "Delete a rule",
      "description": "Deletes a specific rule or a version of a rule",
      "resource": "managementRuleRes"
    },
    {
      "name": "Get Rule",
      "value": "getRule",
      "action": "Get a rule",
      "description": "Retrieves a specific rule by its ID or alias",
      "resource": "managementRuleRes"
    },
    {
      "name": "Get Rules for Space",
      "value": "getRulesForSpace",
      "action": "Get all rules for a space",
      "description": "Retrieves all rules within the configured space",
      "resource": "managementRuleRes"
    },
    {
      "name": "Lock Rule",
      "value": "lockRule",
      "action": "Lock or unlock a rule",
      "description": "Locks or unlocks a rule to prevent edits",
      "resource": "managementRuleRes"
    },
    {
      "name": "Update Rule",
      "value": "updateRule",
      "action": "Update a rule",
      "description": "Updates the content or properties of a rule",
      "resource": "managementRuleRes"
    },
    {
      "name": "Update Rule Status",
      "value": "updateRuleStatus",
      "action": "Update a rule s status",
      "description": "Changes a rule's status (e.g., to published or pending)",
      "resource": "managementRuleRes"
    },
    {
      "name": "Delete Tags",
      "value": "deleteTags",
      "action": "Delete tags from a rule",
      "description": "Removes one or more tags from a rule",
      "resource": "managementTagRes"
    },
    {
      "name": "Get Rules by Tags",
      "value": "getTags",
      "action": "Get tags for a rule",
      "description": "Retrieves all tags associated with a rule",
      "resource": "managementTagRes"
    },
    {
      "name": "Update Tags",
      "value": "updateTags",
      "action": "Update tags for a rule",
      "description": "Adds or overwrites tags for a rule",
      "resource": "managementTagRes"
    },
    {
      "name": "Create Folder",
      "value": "createFolder",
      "action": "Create a folder",
      "description": "Creates a new folder at a specified location",
      "resource": "managementFolderRes"
    },
    {
      "name": "Delete Folder",
      "value": "deleteFolder",
      "action": "Delete a folder",
      "description": "Deletes a folder and optionally all its contents",
      "resource": "managementFolderRes"
    },
    {
      "name": "Export Folder",
      "value": "exportFolder",
      "action": "Export a folder",
      "description": "Exports the contents of a folder as a JSON object",
      "resource": "managementFolderRes"
    },
    {
      "name": "Find Folder or Rule",
      "value": "findFolderOrRule",
      "action": "Find a folder or rule",
      "description": "Finds a folder or rule by various attributes",
      "resource": "managementFolderRes"
    },
    {
      "name": "Get Folder Structure",
      "value": "getFolderStructure",
      "action": "Get the folder structure",
      "description": "Retrieves the folder and rule hierarchy",
      "resource": "managementFolderRes"
    },
    {
      "name": "Import Folder",
      "value": "importFolder",
      "action": "Import a folder",
      "description": "Imports a folder structure from a JSON object",
      "resource": "managementFolderRes"
    },
    {
      "name": "Move Folder",
      "value": "moveFolder",
      "action": "Move a folder or rule",
      "description": "Moves a folder or rule to a different location",
      "resource": "managementFolderRes"
    },
    {
      "name": "Rename Folder",
      "value": "renameFolder",
      "action": "Rename a folder",
      "description": "Renames an existing folder",
      "resource": "managementFolderRes"
    },
    {
      "name": "Update Node Folder Structure",
      "value": "updateNodeFolderStructure",
      "action": "Update a node folder structure",
      "description": "Updates the structure of a folder or node",
      "resource": "managementFolderRes"
    },
    {
      "name": "Find Dependencies",
      "value": "findDependencies",
      "action": "Find rule dependencies",
      "description": "Finds all dependencies for a given rule",
      "resource": "managementToolsRes"
    },
    {
      "name": "Find Duplicates",
      "value": "findDuplicates",
      "action": "Find duplicates in a rule",
      "description": "Finds duplicate conditions within a rule",
      "resource": "managementToolsRes"
    }
  ]

npm_readme:
  # n8n-nodes-decisionrules

  This is an n8n community node that integrates DecisionRules with your n8n workflows, so you can execute business rules, run integration flows, and automate complex logic-based tasks.

  [DecisionRules](https://www.decisionrules.io) is a no-code business rules engine that allows you to manage and execute complex logic without programming. n8n is a fair-code licensed tool for workflow automation that allows you to connect various services.

  [n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/reference/license/) workflow automation platform.

  ---

  ## Table of contents

  - [Installation](#installation)
  - [Operations](#operations)
  - [Credentials](#credentials)
  - [Compatibility](#compatibility)
  - [Usage](#usage)
  - [Resources](#resources)

  ---

  ## Installation (self-hosted)

  To install the DecisionRules community node directly from the n8n Editor UI:

  1. Open your n8n instance.
  2. Go to **Settings > Community Nodes**
  3. Select **Install**.
  4. Enter the npm package name: `@decisionrules/n8n-nodes-decisionrules` to install the latest version. To install a specific version (e.g 0.4.4) enter `@decisionrules/n8n-nodes-decisionrules@0.4.4`. All versions are available [here](https://www.npmjs.com/package/@decisionrules/n8n-nodes-decisionrules?activeTab=versions)
  5. Agree to the [risks](https://docs.n8n.io/integrations/community-nodes/risks/) of using community nodes and select **Install**
  6. The node is now available to use in your workflows.

  ## Installation (n8n Cloud)

  If you’re using n8n Cloud, installing community nodes is even simpler:

  1. Go to the **Canvas** and open the **nodes panel**.
  2. Search for **DecisionRules** in the community node registry.
  3. Click **Install node** to add the decisionrules node to your instance.


   > On n8n cloud users can choose not to show verified community nodes. Instance owners can toggle this in the Cloud Admin Panel. To install the DecisionRules node, make sure the installation of verified community nodes is enabled. 


  ## Installation (development and contributing) 
  To contribute to our DecisionRules node, you can install the node and link it to your n8n instance. Follow the steps below:

  ### ⚙️ Prerequisites

  - Node.js (recommended: v18.10+)
  - pnpm installed globally

  ---

  ### 1. Initialize n8n locally

  Begin by installing and running n8n to create the necessary configuration directory (`~/.n8n`):

  ```bash
  npm install -g n8n # Skip this step if you already have n8n installed globally
  n8n start # This will generate the ~/.n8n directory
  ```

  ### 2. Clone and build the Node Package

  Install dependencies and build the node:

  ```bash
  pnpm install
  pnpm run build
  ```

  ### 3. Link the custom node to n8n

  Create the `custom` directory inside `~/.n8n` (if it doesn't exist), then symlink your local node package:

  ```bash
  mkdir -p ~/.n8n/custom
  ln -s /full/path/to/n8n-nodes-decisionrules ~/.n8n/custom/n8n-nodes-decisionrules # replace full/path/to with the path to your n8n-nodes-decisionrules directory
  ```

  > **Note:** Use the absolute path in the symlink for compatibility.

  ### 4. Restart n8n

  Now that your custom node is linked, start n8n again:

  ```bash
  n8n start
  ```

  ---

  ### 🔁 Making changes

  If you make any changes to your custom node locally, remember to rebuild and restart:

  ```bash
  pnpm run build
  n8n start
  ```

  ---

  ## Operations

  This node supports the following operations:
  ### Rules
  - Solve Rule
  Takes the input data from a previous node and sends it to the DecisionRules API to solve a rule (e.g., decision table, decision tree). The node then outputs the result from the API.
  ### Integration Flows
  - Start Job:
  Takes the input data from a previous node to start a new asynchronous job for a specific Integration Flow rule. The node outputs the job initiation details.
  - Get Job Info:
  Retrieves the status and information (e.g., success, failure, in-process) for a specific job using its Job ID.
  - Cancel Job:
  Cancels a running or waiting job using its Job ID.

  ### Management
  The Management operations allow you to programmatically manage your DecisionRules rules, folders, and tags.

  #### Rule Management
  - **Get Rule**: Retrieves all information about a rule, including its content, version, input/output schemas. Can fetch by rule ID, alias, or path.
  - **Create Rule**: Creates a new rule based on the request body.
  - **Create New Rule Version**: Creates a new version of an existing rule with modifications.
  - **Update Rule**: Modifies an existing rule (cannot change rule ID, version, alias, or last update date).
  - **Update Rule Status**: Changes rule status between 'pending' and 'published'.
  - **Delete Rule**: Deletes a rule by ID, alias, or path.
  - **Lock Rule**: Locks or unlocks a rule to prevent/allow modifications.
  - **Get Rules For Space**: Retrieves all rules and rule flows in the current space.

  #### Rule Analysis
  - **Find Dependencies**: Identifies all dependencies for a specific rule.
  - **Find Duplicates**: Finds duplicate rules in decision tables.

  #### Tag Management
  - **Get Tags**: Retrieves all rules/rule flows with specific tags.
  - **Update Tags**: Adds tags to a rule (all versions or specific version).
  - **Delete Tags**: Removes tags from a rule (all versions or specific version).

  #### Folder Management
  - **Get Folder Structure**: Retrieves the folder hierarchy and contents by node ID or path.
  - **Create Folder**: Creates a new folder structure under a target location.
  - **Update Node Folder Structure**: Modifies existing folder structure and moves rules.
  - **Delete Folder**: Deletes a folder and optionally all its contents.
  - **Rename Folder**: Changes the name of a folder.
  - **Move Folder**: Moves folders and/or rules to a different parent location.
  - **Export Folder**: Exports a folder with all its rules.
  - **Import Folder**: Imports a folder structure with rules into a target location.
  - **Find Folder or Rule**: Searches for folders and rules by various attributes (name, ID, tags, type, etc.).

  ---

  ## Credentials

  To use this node, you will need to authenticate with the DecisionRules Solve API and specify host URL.

  To configure your credentials:
  1.  Log in to your DecisionRules account.
  2.  To specify the host correctly you can use the URL that you logged in by and you change app to api.
  (app.decisionrules.io -> api.decisionrules.io)
  2.  Navigate to **Space > API Keys > Solver** to find your API Token.
  3.  In n8n, go to the Credentials section and add new credentials for the 'DecisionRules API'.
  4.  Enter your API Token and host in the respective field.

  ### For Management API (Management Operations)

  To configure your Management API credentials:
  1. Log in to your DecisionRules account.
  2. Use the same host format as above (e.g., `api.decisionrules.io`).
  3. Navigate to **Space > API Keys > Management** to find your Management API Token.
  4. In n8n, add the Management API credentials.
  5. Enter your Management API Token and host in the respective fields.


  ---

  ## Compatibility

  This node has been tested with n8n version 1.16.3.

  ---

  ## Usage

  This node is designed to integrate your n8n workflows with the DecisionRules engine. Here's how to understand its behavior:

  ### Operations Using Input Data (`Solve Rule`, `Start Job`, `Create Rule`, `Create New Rule Version`, `Update Rule`, `Create Folder`, `Update Node Folder Structure`, `Import Folder`)

  These operations process data from previous nodes in your workflow. The JSON output of a preceding node will be used as the input payload for the DecisionRules API call.

  **Example:** You can have an 'HTTP Request' node that fetches user data. When you connect it to the DecisionRules node and select the `Solve Rule` operation, the fetched user data is sent to your rule for evaluation. The result of that rule is then available as the output of the DecisionRules node for the next steps in your workflow.

  **Management Example:** You can prepare a rule definition in JSON format in a previous node, then use `Create Rule` to add it to your DecisionRules space.

  ### Operations Using Node Parameters (All other operations)

  Operations like `Get Job Info`, `Cancel Job`, `Get Rule`, `Delete Rule`, etc. do **not** use the data from previous nodes. Instead, they rely on parameters you configure directly in the node's properties panel in the n8n UI, such as `Job ID`, `Rule ID`, `Node ID`, or `Path`.

  **Example:** After using a `Start Job` operation, you can use a 'Wait' node and then a `Get Job Info` node to check the status of that job. You would pass the `jobId` from the `Start Job` output into the 'Job ID' field of the `Get Job Info` node.

  ---

  ## Troubleshooting

  ### Common issues

  ---

  ### Authentication errors
  - Verify your **Host** is correct (e.g., `https://api.decisionrules.io`).
  - Verify your **Solver API Key** is correct.
  - Verify your **Management API Key** is correct for Management operations.

  ---

  ### Resource Not Found
  - Verify the **Rule ID**, **rule alias**, or **Job ID** is correct.
  - Check if the resource exists in the **DecisionRules space** associated with your API key.
  - Ensure you have access to the resource with the provided key.

  ---

  ### Operation failures
  - Check that the **input parameters** from the previous node are a valid JSON object.
  - For **Solve Rule** and **Start Job**, ensure the incoming data structure matches the expected input model for your rule in DecisionRules.
  - For **Create Rule**, **Update Rule**, and **Create New Rule Version**, ensure the rule definition follows the correct format.
  - For **Folder operations**, verify the folder structure and node IDs are valid.
  - Review the **error message** in the n8n output panel for detailed error messages from the DecisionRules API.

  ---

  ## Resources

  * [n8n Community Nodes Documentation](https://docs.n8n.io/integrations/community-nodes/)
  * [DecisionRules Documentation](https://docs.decisionrules.io/doc)

  ---

ai_documentation_summary:
  {"purpose":"A community node that integrates the DecisionRules business rules engine into n8n workflows to execute logic, manage rules, and automate complex decision-making tasks.","capabilities":["Execute decision rules (decision tables, decision trees)","Start asynchronous integration flow jobs","Retrieve job status and information","Cancel running or waiting jobs","Create, update, and delete rules","Manage rule versions and statuses (pending/published)","Lock and unlock rules","Find rule dependencies and duplicates","Manage rule tags and folders","Import and export folder structures with rules"],"authentication":"API key required (implied by 'DecisionRules API' references; specific credential setup not detailed in README)","commonUseCases":["Automating business logic decisions within n8n workflows","Managing and organizing business rules without coding","Monitoring the status of asynchronous rule execution jobs","Organizing rules into folders and applying tags for version control"],"limitations":["Community node (requires agreement to risks)","Requires external DecisionRules API access","Some rule updates cannot change rule ID, version, alias, or last update date"],"relatedNodes":["HTTP Request","Code","JSON"]}


node_type: n8n-nodes-parseur.parseur
package_name: n8n-nodes-parseur
display_name: Parseur
description: Interact with Parseur to upload text or files
category: Development
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: parseur
author_github_url: https://github.com/parseur/parseur-n8n-node.git
npm_package_name: n8n-nodes-parseur
npm_version: 0.0.4
community_fetched_at: 2026-04-16T09:43:36.412Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "operation",
      "type": "options",
      "default": "uploadFile",
      "options": [
        {
          "name": "Upload File",
          "value": "uploadFile",
          "action": "Upload a file to a mailbox",
          "description": "Upload a file to a mailbox"
        },
        {
          "name": "Upload Text",
          "value": "uploadText",
          "action": "Upload a text html document to a mailbox",
          "description": "Upload a text/HTML document to a mailbox"
        },
        {
          "name": "Custom API Call",
          "value": "__CUSTOM_API_CALL__"
        }
      ],
      "displayName": "Operation",
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Upload File",
      "value": "uploadFile",
      "action": "Upload a file to a mailbox",
      "description": "Upload a file to a mailbox"
    },
    {
      "name": "Upload Text",
      "value": "uploadText",
      "action": "Upload a text html document to a mailbox",
      "description": "Upload a text/HTML document to a mailbox"
    },
    {
      "name": "Custom API Call",
      "value": "__CUSTOM_API_CALL__"
    }
  ]

npm_readme:
  # Parseur n8n Node

  > 🧩 Official n8n Node to interact with [Parseur](https://parseur.com): receive events, upload text or upload files.

  [![npm version](https://badge.fury.io/js/n8n-nodes-parseur.svg)](https://badge.fury.io/js/n8n-nodes-parseur)
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

  [About](#about)  
  [Operations](#operations)  
  [Installation](#installation)  
  [Credentials](#credentials)  
  [Compatibility](#compatibility)  
  [Resources](#resources)  
  [Credit](#credit)  
  [License](#license)  


  ## About

  **Parseur** is a powerful no-code data extraction platform that helps you turn emails, PDFs, and other documents into structured data.

  This custom **n8n Node** allows you to:

  ✅ Trigger workflows when documents or tables are processed (via webhook)  
  ✅ Upload new documents as text (via API)  
  ✅ Upload files to a parser (via API)

  ## Operations

  - Upload File: send binary files (PDF, EML, etc.) to a Mailbox
  - Upload Text: send plain or HTML content as a document to a Mailbox
  - Supports webhook events from Parseur:

    | Event                          | Type        | Description                          |
    |--------------------------------|-------------|--------------------------------------|
    | `document.processed`           | document    | Document processed successfully      |
    | `document.processed.flattened` | document    | Document processed as flat data      |
    | `document.template_needed`     | document    | Processing failed (template needed)  |
    | `document.export_failed`       | document    | Export failed                        |
    | `table.processed`              | table       | A table field row was processed      |
    | `table.processed.flattened`    | table       | A table field row (flattened)        |


  ## Installation

  ### Install from npm

  Follow the [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) in the n8n community nodes documentation.

  ### Install from source

  1. Install dependencies

  ```bash
  brew install pnpm
  pnpm setup
  source ~/.zshrc
  ```

  2. Clone and build the node

  ```bash
  git clone https://github.com/parseur/parseur-n8n-node <parseur-n8n-node>
  cd <parseur-n8n-node>
  pnpm install
  pnpm build
  ```

  3. Set up a local n8n instance

  ```bash
  mkdir <n8n>
  cd <n8n>
  pnpm init
  pnpm add sqlite3
  pnpm approve-builds  # Needed for sqlite3 to complete install
  pnpm add n8n
  pnpm approve-builds  # Needed for n8n to complete install (select all packages, confirm and press Enter)
  pnpm exec n8n
  ```

  4. Link the Parseur node to n8n

  ```bash
  cd ~/.n8n
  mkdir -p custom
  cd custom
  pnpm init
  pnpm link <parseur-n8n-node>
  ```

  5. Restart n8n and you will see Parseur Trigger available.

  ```bash
  cd <n8n>
  pnpm exec n8n
  ```

  ## Credentials

  To connect n8n with your Parseur account, you’ll need two values: an **API Key** and a **Webhook Token**.

  ### API Key

  Get your API key in the [Parseur account settings](https://app.parseur.com/account).  
  This key is required to authenticate API requests to the Parseur platform.

  1. Log in to your [Parseur](https://app.parseur.com/login).
  2. Navigate to **Account**
  3. Copy your **API Key**.

  In n8n:

  - Click **“Add Credential”** and search for **"Parseur API"**.
  - Paste your API Key into the **API Key** field.

  ### Webhook Token

  The **Webhook Token** is used to verify that incoming webhook requests (e.g. from n8n to Parseur) are legitimate.

  You can generate a secure random token using a service like [uuidgenerator.net](https://www.uuidgenerator.net/), or generate one yourself using a tool or script of your choice.

  1. Go to [uuidgenerator.net](https://www.uuidgenerator.net/).
  2. Copy a generated UUID or token string.
  3. Paste it into the **Webhook Token** field in your Parseur credential in n8n.

  This token will be expected in the HTTP header `X-Parseur-Token` of all webhook requests.

  ## Compatibility

  Compatible with n8n v1.91.2.

  ## Resources

  - [Parseur](https://parseur.com) — Document processing & data extraction
  - [n8n](https://n8n.io) — Workflow automation

  ## Version history

  #### v0.0.1
  Initial release

  ## Contributing

  We welcome contributions and ideas!

  Please [open an issue](https://github.com/parseur/parseur-n8n-node/issues) or [submit a pull request](https://github.com/parseur/parseur-n8n-node/pulls) if you want to improve this node.

  ## License

  [MIT](LICENSE.md)

ai_documentation_summary:
  {"purpose":"This n8n community node enables interaction with the Parseur platform to upload text or files for document processing and receive webhook events when documents or tables are processed.","capabilities":["Upload binary files (PDF, EML, etc.) to a Mailbox","Upload plain text or HTML content as a document","Receive webhook events for document processing completion","Receive webhook events for table field row processing","Handle document processing failure events requiring templates","Handle document export failure events"],"authentication":"API Key required for API requests; Webhook Token (UUID) required for verifying incoming webhook requests via X-Parseur-Token header","commonUseCases":["Automated document data extraction from emails and PDFs","Triggering workflows when documents are successfully processed","Converting unstructured documents into structured data for downstream processing"],"limitations":["Compatible only with n8n v1.91.2","Requires manual setup of credentials including API Key and Webhook Token","Webhook verification requires generating and managing a separate UUID token"],"relatedNodes":["n8n-nodes-parseur.parseur"]}


node_type: @tavily/n8n-nodes-tavily.tavily
package_name: @tavily/n8n-nodes-tavily
display_name: Tavily
description: Tavily API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs: "={{['main']}}"
updated_at: 2026-04-16 09:43:36
author_name: konstantintzt
author_github_url: https://github.com/tavily-ai/tavily-n8n-node.git
npm_package_name: @tavily/n8n-nodes-tavily
npm_version: 0.5.1
community_fetched_at: 2026-04-16T09:43:36.413Z
ai_summary_generated_at: 2026-03-25 22:47:20
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "search",
      "options": [
        {
          "name": "Crawl",
          "value": "crawl"
        },
        {
          "name": "Extract",
          "value": "extract"
        },
        {
          "name": "Map",
          "value": "map"
        },
        {
          "name": "Research",
          "value": "research"
        },
        {
          "name": "Search",
          "value": "search"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "urls",
      "options": [
        {
          "name": "URLs",
          "value": "urls",
          "action": "Extract",
          "description": "Extract raw content from URLs"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "extract"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "query",
      "options": [
        {
          "name": "Query",
          "value": "query",
          "action": "Search",
          "description": "Search query"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "search"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "url",
      "options": [
        {
          "name": "URL",
          "value": "url",
          "action": "Crawl",
          "description": "The root URL to begin the crawl"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "crawl"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "url",
      "options": [
        {
          "name": "URL",
          "value": "url",
          "action": "Map",
          "description": "Discover all internal links starting from a base URL"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "map"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create Research Task",
          "value": "create",
          "action": "Create research task",
          "description": "Initiate a comprehensive research task on a given topic"
        },
        {
          "name": "Get Research Status",
          "value": "status",
          "action": "Get research status",
          "description": "Retrieve the status and results of a research task"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "research"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "URLs",
      "value": "urls",
      "action": "Extract",
      "description": "Extract raw content from URLs",
      "resource": "extract"
    },
    {
      "name": "Query",
      "value": "query",
      "action": "Search",
      "description": "Search query",
      "resource": "search"
    },
    {
      "name": "URL",
      "value": "url",
      "action": "Crawl",
      "description": "The root URL to begin the crawl",
      "resource": "crawl"
    },
    {
      "name": "URL",
      "value": "url",
      "action": "Map",
      "description": "Discover all internal links starting from a base URL",
      "resource": "map"
    },
    {
      "name": "Create Research Task",
      "value": "create",
      "action": "Create research task",
      "description": "Initiate a comprehensive research task on a given topic",
      "resource": "research"
    },
    {
      "name": "Get Research Status",
      "value": "status",
      "action": "Get research status",
      "description": "Retrieve the status and results of a research task",
      "resource": "research"
    }
  ]

npm_readme:
  # @tavily/n8n-nodes-tavily

  @tavily/n8n-nodes-tavily is a node for n8n that integrates the Tavily API, enabling powerful web search and content extraction within your no-code automation workflows.

  ## Features

  ### Tavily Search
  Tavily Search allows you to query the web with powerful filtering capabilities, including options to refine results by topic, time range, and specific domains to include or exclude. You can choose to retrieve a generated answer, raw content, or even related images, depending on your workflow needs. It also supports different search depths—basic or advanced. 

  ### Tavily Extract
   Tavily Extract allows you to effortlessly retrieve raw content from a list of websites, making it ideal for data collection, content analysis, and research. You can also combine Tavily Extract with our Search method: first, obtain a list of relevant documents, then perform further processing on selected links to gather additional information and use it as context for your research tasks.

  ### Tavily Crawl
  Tavily Crawl allows you to intelligently crawl a website from a starting URL to discover and extract content across multiple pages. Control depth, breadth, and apply filters to tailor your crawl for comprehensive analysis and content aggregation.

  ### Tavily Map
  Tavily Map allows you to discover and map out all the URLs within a website starting from a root URL. Unlike Crawl, which extracts content, Map focuses on efficiently building a comprehensive sitemap of a website's structure. This is ideal for understanding site architecture, planning content extraction, or identifying specific pages for further processing.

  ### Tavily Research
  Tavily Research performs comprehensive research on a given topic by conducting multiple searches, analyzing sources, and generating a detailed research report. Choose between different models (Mini for targeted research, Pro for comprehensive multi-angle analysis) and customize the output format with citation styles and structured schemas.

  ## Getting a Tavily API Key

  1. Go to the [Tavily website](https://tavily.com) and create an account
  2. Navigate to the [Tavily dashboard](https://app.tavily.com/home) to get your API key

  ## Configuring Credentials in n8n

  1. In your n8n instance, go to the "Credentials" section
  2. Click "Create Credential"
  3. Search for or select "Tavily API"
  4. Enter your Tavily API key in the appropriate field
  5. Save the credential

  ## Usage

  ### Tavily Search

  1. Add the "Tavily" node to your n8n workflow
  2. Connect it to the preceding node in your workflow
  3. Click on 'Search'
  4. In the node's settings:
     - Select your Tavily API
     - Enter your search query
     - Configure any other desired search parameters (topic, search depth, etc.)
  5. Run the workflow to execute the search

  ### Tavily Extract

  1. Add the "Tavily" node to your n8n workflow
  2. Connect it to the preceding node
  3. Click on 'Extract'
  4. In the node's settings:
     - Select your Tavily API credential
     - Enter the URLs you want to extract content from
     - Configure any other extraction parameters (include images, extract depth)
  5. Run the workflow to extract the content

  ### Tavily Crawl

  1. Add the "Tavily" node to your n8n workflow
  2. Connect it to the preceding node
  3. Click on 'Crawl'
  4. In the node's settings:
     - Select your Tavily API credential
     - Enter the root URL to begin the crawl
     - Configure crawl parameters (max depth, limit, etc.)
  5. Run the workflow to crawl the website and extract content

  ### Tavily Map

  1. Add the "Tavily" node to your n8n workflow
  2. Connect it to the preceding node
  3. Click on 'Map'
  4. In the node's settings:
     - Select your Tavily API credential
     - Enter the root URL to begin mapping
     - Configure map parameters (max depth, limit, filters, etc.)
  5. Run the workflow to map the website's URL structure

  ### Tavily Research

  #### Create Research Task

  1. Add the "Tavily" node to your n8n workflow
  2. Connect it to the preceding node
  3. Click on 'Research'
  4. Select 'Create Research Task' operation
  5. In the node's settings:
     - Select your Tavily API credential
     - Enter your research task or question
     - Configure model (Auto, Mini, or Pro) and other options
  6. Run the workflow to initiate the research task
  7. The response will include a `request_id` to check the status later

  #### Get Research Status

  1. Add the "Tavily" node to your n8n workflow
  2. Connect it to the preceding node
  3. Click on 'Research'
  4. Select 'Get Research Status' operation
  5. In the node's settings:
     - Select your Tavily API credential
     - Enter the `request_id` from the create research task response
  6. Run the workflow to get the research status and results

  ## Parameters

  ### Tavily Search Parameters

  | Parameter | Description |
  |-----------|-------------|
  | Query | The search query to execute |
  | Topic | The category of the search (General, News, or Finance) |
  | Search Depth | The depth of the search (Basic or Advanced) |
  | Chunks Per Source (Advanced Search only) | Number of content chunks to retrieve from each source (1-3) |
  | Max Results | Maximum number of search results to return (1-20) |
  | Time Range | Time range filter for results (day, week, month, year) |
  | Days (News Only) | Number of days back from the current date to include (for News topic) |
  | Include Answer | Include an LLM-generated answer in the response (Basic or Advanced) |
  | Include Raw Content | Include cleaned and parsed HTML content of each search result |
  | Include Images | Perform an image search and include the results in the response |
  | Include Image Descriptions | When including images, also add a descriptive text for each image |
  | Include Domains | A list of domains to specifically include in the search results |
  | Exclude Domains | A list of domains to specifically exclude from the search results |
  | Include Favicon | Include the favicon URL for each result |
  | Include Usage | Whether to include credit usage information in the response. |
  | Country | Boost search results from a specific country. |
  | Auto Parameters | When enabled, Tavily automatically configures search parameters based on your query's content and intent |
  | Start Date | Will return all results after the specified start date (publish date). Required to be written in the format YYYY-MM-DD |
  | End Date | Will return all results before the specified end date (publish date). Required to be written in the format YYYY-MM-DD |

  ### Tavily Extract Parameters

  | Parameter | Description |
  |-----------|-------------|
  | URLs | One or more URLs to extract content from |
  | Include Images | Include a list of images extracted from each URL |
  | Extract Depth | How deeply to parse each URL (Basic or Advanced) |
  | Format | Format of the extracted web page content (Markdown or Text) |
  | Include Favicon | Include the favicon URL for each result |
  | Include Usage | Whether to include credit usage information in the response. NOTE:The value may be 0 if the total successful URL extractions has not yet reached 5 calls. See our [Credits & Pricing documentation](https://docs.tavily.com/documentation/api-credits) for details. |

  ### Tavily Crawl Parameters

  | Parameter | Description |
  |-----------|-------------|
  | URL | The root URL to begin the crawl |
  | Instructions | Natural language instructions for the crawler |
  | Max Depth | Maximum depth of the crawl (≥ 1) |
  | Max Breadth | Maximum number of links to follow per level (≥ 1) |
  | Limit | Maximum number of results to return (≥ 1) |
  | Select Paths | Regex patterns to select only URLs with specific path patterns |
  | Select Domains | Regex patterns to select crawling to specific domains or subdomains |
  | Exclude Paths | Regex patterns to exclude URLs with specific path patterns |
  | Exclude Domains | Regex patterns to exclude specific domains or subdomains from crawling |
  | Allow External | Whether to allow following links that go to external domains |
  | Include Images | Whether to include images in the crawl results |
  | Extract Depth | Extraction depth (Basic or Advanced) |
  | Format | Format of the extracted web page content (Markdown or Text) |
  | Include Favicon | Include the favicon URL for each result |
  | Include Usage | Whether to include credit usage information in the response. NOTE:The value may be 0 if the total use of /extract and /map calls has not yet reached minimum needed. See our [Credits & Pricing documentation](https://docs.tavily.com/documentation/api-credits) for details. |

  ### Tavily Map Parameters

  | Parameter | Description |
  |-----------|-------------|
  | URL | The root URL to begin mapping |
  | Instructions | Natural language instructions guiding the mapping process |
  | Max Depth | Defines how far from the base URL the crawler can explore (≥ 1) |
  | Max Breadth | Maximum number of links to follow per level of the tree (≥ 1) |
  | Limit | Total number of links the crawler will process before stopping (≥ 1) |
  | Select Paths | Regex patterns to select only URLs with specific path patterns |
  | Select Domains | Regex patterns to select crawling to specific domains or subdomains |
  | Exclude Paths | Regex patterns to exclude URLs with specific path patterns |
  | Exclude Domains | Regex patterns to exclude specific domains or subdomains from crawling |
  | Allow External | Whether to include external domain links in the final results list |
  | Timeout | Maximum time in seconds to wait for the map operation (10-150) |

  ### Tavily Research Parameters

  #### Create Research Task

  | Parameter | Description |
  |-----------|-------------|
  | Input | The research task or question to investigate |
  | Model | The model used by the research agent (Auto, Mini, or Pro). Mini is optimized for targeted research, Pro provides comprehensive multi-angle research |
  | Citation Format | The format for citations in the research report (Numbered, MLA, APA, or Chicago) |
  | Output Schema | A JSON Schema object that defines the structure of the research output |
  | Stream | Whether to stream research results in real-time as Server-Sent Events (SSE) with progress updates and incremental results |

  #### Get Research Status

  | Parameter | Description |
  |-----------|-------------|
  | Request ID | The unique identifier of the research task returned from the Create Research Task operation |

  ## Troubleshooting

  ### Error Codes

  | Error Code | Description | Solution |
  |------------|-------------|----------|
  | 400 Bad Request | Invalid request parameters or unsupported values | Check all parameters and their formats |
  | 401 Unauthorized | Missing or invalid API key | Verify API key or generate a new one |
  | 429 Too Many Requests | Rate limit exceeded | Reduce request frequency or implement backoff |
  | 432 Plan Limit Exceeded | Exceeds plan limits | Upgrade your plan via [Tavily Dashboard](https://app.tavily.com/billing) |
  | 433 Pay-As-You-Go Limit Exceeded | Exceeds pay-as-you-go limit | Increase limit via [Tavily Dashboard](https://app.tavily.com/billing) |
  | 500 Internal Server Error | Server-side issue | Retry request after a few minutes |

  ## Cost

  Head to the [API Credits Overview](https://docs.tavily.com/documentation/api-credits) in our documentation to learn more about how many API Credits each request costs.

  ## License

  This project is licensed under the terms of the MIT license.

  ## Contact

  If you are encountering issues while using Tavily, please email us at support@tavily.com. We'll be happy to help you.

  If you want to stay updated on the latest Tavily news and releases, head to our [Developer Community](https://community.tavily.com) to learn more!

ai_documentation_summary:
  {"purpose":"This n8n node integrates the Tavily API to perform web search, content extraction, website crawling, site mapping, and comprehensive research within no-code automation workflows.","capabilities":["Web search with filtering by topic, time range, and domains","Content extraction from specific URLs","Website crawling with configurable depth and breadth","Website URL mapping and sitemap generation","Automated research with multiple search iterations and source analysis","Support for different search depths (basic/advanced)","Support for different research models (Mini/Pro)","Image retrieval in search results"],"authentication":"API key required","commonUseCases":["Market research and competitor analysis","Data collection from multiple sources","Content aggregation and summarization","Website structure analysis","Automated fact-checking and verification"],"limitations":["Research tasks require a separate request_id to check status","Some advanced features may depend on specific Tavily API plan tiers","Crawl and Map operations are limited by API rate limits"],"relatedNodes":["HTTP Request","Code","Function","Wait Until","Split In Batches"]}


node_type: @exploriumai/n8n-nodes-explorium-ai.exploriumApiNode
package_name: @exploriumai/n8n-nodes-explorium-ai
display_name: Explorium API
description: Streamlined interface for Explorium API operations
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: omerkurtz
author_github_url: https://github.com/explorium-ai/n8n-nodes-explorium-api.git
npm_package_name: @exploriumai/n8n-nodes-explorium-ai
npm_version: 1.2.4
community_fetched_at: 2026-04-16T09:43:36.414Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "operation",
      "type": "options",
      "default": "",
      "options": [
        {
          "name": "Match",
          "value": "match",
          "description": "Find and match businesses or prospects to get their Explorium IDs"
        },
        {
          "name": "Enrich",
          "value": "enrich",
          "description": "Add additional data to existing records"
        },
        {
          "name": "Fetch",
          "value": "fetch",
          "description": "Retrieve records with filters and pagination"
        },
        {
          "name": "Events",
          "value": "events",
          "description": "Get business or prospect events"
        },
        {
          "name": "Autocomplete",
          "value": "autocomplete",
          "description": "Get field suggestions and autocomplete values"
        }
      ],
      "displayName": "Operation",
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Match",
      "value": "match",
      "description": "Find and match businesses or prospects to get their Explorium IDs"
    },
    {
      "name": "Enrich",
      "value": "enrich",
      "description": "Add additional data to existing records"
    },
    {
      "name": "Fetch",
      "value": "fetch",
      "description": "Retrieve records with filters and pagination"
    },
    {
      "name": "Events",
      "value": "events",
      "description": "Get business or prospect events"
    },
    {
      "name": "Autocomplete",
      "value": "autocomplete",
      "description": "Get field suggestions and autocomplete values"
    }
  ]

npm_readme:
  # n8n-nodes-explorium-ai

  [![License: Apache-2.0](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
  [![n8n Community Node](https://img.shields.io/badge/n8n-Community%20Node-green)](https://n8n.io)

  This project provides n8n community nodes for seamless integration with explorium.ai's powerful data enrichment and AI capabilities. With minimal setup required, you can leverage Explorium's features directly in your n8n workflows.

  ## Features

  ### 1. Explorium API Node
  Access all Explorium Agent Source API functions. Seamless integration with n8n workflows

  ### 2. Explorium MCP Node
  Direct integration with OpenAI through Explorium's Model Context Protocol (MCP)


  ## Prerequisites

  - n8n instance (self-hosted or cloud)
  - Explorium API Key
  - OpenAI API Key (for MCP node only)

  ## Installation

  1. Follow the [n8n community nodes installation guide](https://docs.n8n.io/integrations/community-nodes/installation/)
  2. Install this package in your n8n instance
  3. Configure the required environment variables

  ### Environment Variables

  Both nodes require the following environment variables:
  - `EXPLORIUM_API_KEY`: Your Explorium API key

  The MCP node additionally requires:
  - `OPENAI_API_KEY`: Your OpenAI API key

  ## Usage

  ### Getting Your API Keys

     - Visit [Explorium Developer Portal](https://developers.explorium.ai/reference/quick-starts)
     - Follow the steps to obtain your API key

     ![Get the Explorium api key](./assets/get-explorium-api-key.png)

  ### Node Configuration

  Example of configuring the node for Firmographic enrichment:
  ![Explorium MCP use example](./assets/api-config.png)

  ### Workflow Example

  Here's how to use the node in your workflow:
  ![Explorium MCP use example](./assets/use-the-node.png)


  ## Templates

  Find ready-to-use templates on the Explorium n8n Creator page and in our integrations-templates repository.

  Explorium n8n Creator page: https://n8n.io/creators/explorium/

  Integrations Templates GitHub repo: https://github.com/explorium-ai/integrations-templates

  ## Resources

  - [n8n Community Nodes Documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [Explorium Developer Documentation](https://developers.explorium.ai/)
  - [Model Context Protocol Documentation](https://modelcontextprotocol.io/docs/)
  - [AgentSource MCP Documentation](https://developers.explorium.ai/mcp-docs/agentsource-mcp)

  ## License

  This project is licensed under the Apache License 2.0 - see the [LICENSE.md](LICENSE.md) file for details.

  [n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/reference/license/) workflow automation platform.

ai_documentation_summary:
  {"purpose":"A n8n community node package providing integration with Explorium's AI capabilities for data enrichment and Model Context Protocol (MCP) operations.","capabilities":["Access Explorium Agent Source API functions","Firmographic data enrichment","Model Context Protocol (MCP) integration with OpenAI","Seamless n8n workflow integration"],"authentication":"API Key required (EXPLORIUM_API_KEY); OpenAI API Key required for MCP node only","commonUseCases":["Data enrichment workflows","AI-powered data processing","MCP-based agent interactions","Firmographic information gathering"],"limitations":["Requires self-hosted or cloud n8n instance","MCP node specifically requires OpenAI API key"],"relatedNodes":["n8n Community Nodes","OpenAI Node","MCP Node"]}


node_type: @cometapi-dev/n8n-nodes-cometapi.cometApi
package_name: @cometapi-dev/n8n-nodes-cometapi
display_name: CometAPI
description: Interact with CometAPI large language models
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: tensornull
author_github_url: https://github.com/cometapi-dev/n8n-nodes-cometapi.git
npm_package_name: @cometapi-dev/n8n-nodes-cometapi
npm_version: 0.1.5
community_fetched_at: 2026-04-16T09:43:36.415Z
ai_summary_generated_at: 2026-03-25 22:51:43
npm_readme:
  # n8n-nodes-cometapi

  This is an n8n community node. It lets you use CometAPI in your n8n workflows.

  CometAPI is a powerful AI language model service that provides OpenAI-compatible API endpoints for various large language models, enabling developers to integrate advanced AI capabilities into their applications.

  [n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/reference/license/) workflow automation platform.

  [Installation](#installation)  
  [Operations](#operations)  
  [Credentials](#credentials)  
  [Compatibility](#compatibility)  
  [Usage](#usage)  
  [Resources](#resources)  

  ## Installation

  Follow the [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) in the n8n community nodes documentation.

  ## Operations

  The CometAPI node supports chat completions using various AI language models:

  ### Chat Completions
  - **Model Selection**: Choose from available models (default: gpt-4o-mini)
  - **Message Management**: Support for multi-turn conversations with user, assistant, and system roles
  - **Advanced Parameters**:
    - **Temperature**: Control randomness (0-2, default: 0.7)
    - **Max Tokens**: Set maximum response length (up to 32,768 tokens)
    - **Top P**: Control diversity via nucleus sampling (0-1, default: 1)
    - **Frequency Penalty**: Reduce repetition (-2 to 2, default: 0)
    - **Presence Penalty**: Encourage new topics (-2 to 2, default: 0)
    - **Stream**: Enable streaming responses (default: false)

  ## Credentials

  To use this node, you need to authenticate with CometAPI:

  1. Sign up for a CometAPI account at [CometAPI Console](https://api.cometapi.com/console/token)
  2. Generate an API key from your console dashboard
  3. In n8n, create new CometAPI credentials and enter your API key

  ### Authentication Method
  - **API Key**: Bearer token authentication using your CometAPI key

  ## Compatibility

  - **Minimum n8n version**: 1.0.0
  - **Node.js version**: 20.15 or higher
  - **Tested with**: Latest stable versions of n8n

  This node is compatible with all n8n deployment methods including:
  - Self-hosted n8n instances
  - n8n Cloud
  - Docker deployments

  ## Usage

  ### Basic Chat Completion

  1. Add the CometAPI node to your workflow
  2. Configure your CometAPI credentials
  3. Set up your messages:
     - **System message**: Define the AI's behavior (optional)
     - **User message**: Your prompt or question
  4. Choose your preferred model (e.g., gpt-4o-mini)
  5. Execute the workflow

  ### Example Use Cases

  - **Content Generation**: Create articles, summaries, or creative content
  - **Data Analysis**: Analyze and interpret data with AI assistance
  - **Customer Support**: Build intelligent chatbots and support systems
  - **Code Review**: Get AI feedback on code quality and suggestions
  - **Translation**: Translate text between different languages

  ### Advanced Configuration

  For more control over the AI responses, you can adjust:
  - **Temperature**: Lower values (0.1-0.3) for more focused responses, higher values (0.7-1.0) for more creative outputs
  - **Max Tokens**: Limit response length to control costs and response time
  - **Frequency/Presence Penalty**: Fine-tune repetition and topic diversity

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  * [CometAPI Documentation](https://api.cometapi.com/doc)
  * [CometAPI Console](https://api.cometapi.com/console/token)

  ## License

  [MIT](https://github.com/cometapi-dev/n8n-nodes-cometapi/blob/master/LICENSE.md)

ai_documentation_summary:
  {"purpose":"This n8n community node enables interaction with CometAPI's large language models by providing OpenAI-compatible API endpoints for chat completions.","capabilities":["Chat completions with model selection","Multi-turn conversation support (user, assistant, system roles)","Temperature control for response randomness","Max token limit configuration","Top P nucleus sampling for diversity","Frequency and presence penalty adjustments","Streaming response support","System prompt configuration"],"authentication":"API Key (Bearer token)","commonUseCases":["Content generation (articles, summaries, creative writing)","Data analysis and interpretation","Customer support chatbots","Code review and suggestions","Text translation"],"limitations":[],"relatedNodes":["OpenAI node","Anthropic node","Generic AI node","Chatbot node"]}


node_type: n8n-nodes-scrapegraphai.scrapegraphAi
package_name: n8n-nodes-scrapegraphai
display_name: ScrapegraphAI
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: vikrantgg
author_github_url: https://github.com/Vikrant-Khedkar/
npm_package_name: n8n-nodes-scrapegraphai
npm_version: 0.1.21
community_fetched_at: 2026-04-16T09:43:36.416Z
ai_summary_generated_at: 2026-03-25 22:51:43
description:
  Turn any webpage into usable data in one shot – ScrapegraphAI explores the website and extracts the content you need.

properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "smartscraper",
      "options": [
        {
          "name": "Agentic Scraper",
          "value": "agenticscraper"
        },
        {
          "name": "Markdownify",
          "value": "markdownify"
        },
        {
          "name": "Scrape",
          "value": "scrape"
        },
        {
          "name": "Search Scraper",
          "value": "searchscraper"
        },
        {
          "name": "Smart Crawler",
          "value": "smartcrawler"
        },
        {
          "name": "Smart Scraper",
          "value": "smartscraper"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "execute",
      "options": [
        {
          "name": "Execute",
          "value": "execute",
          "action": "Execute browser automation steps with optional AI extraction",
          "description": "Perform browser interactions like clicking, typing, and navigating, with optional AI-powered data extraction"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "agenticscraper"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "scrape",
      "options": [
        {
          "name": "Scrape",
          "value": "scrape",
          "action": "Autonomously extract live data from any website perfect for e commerce job boards lead capture and more",
          "description": "Autonomously extract live data from any website – perfect for e-commerce, job boards, lead capture and more"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "smartscraper"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "search",
      "options": [
        {
          "name": "Search",
          "value": "search",
          "action": "Perform ai powered site wide search and structured data extraction ideal for knowledge retrieval",
          "description": "Perform AI-powered site-wide search and structured data extraction – ideal for knowledge retrieval"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "searchscraper"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "crawl",
      "options": [
        {
          "name": "Crawl",
          "value": "crawl",
          "action": "Give a single URL – the AI crawler follows internal links to extract structured data across multiple pages",
          "description": "Give a single URL – the AI crawler follows internal links to extract structured data across multiple pages"
        },
        {
          "name": "Get Status",
          "value": "getStatus",
          "action": "Get the status and results of a crawl job using its task ID",
          "description": "Get the status and results of a crawl job using its task ID"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "smartcrawler"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "convert",
      "options": [
        {
          "name": "Convert",
          "value": "convert",
          "action": "Convert a webpage or article to clean markdown useful for blogs dev docs and more",
          "description": "Convert a webpage or article to clean markdown – useful for blogs, dev docs and more"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "markdownify"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "scrape",
      "options": [
        {
          "name": "Scrape",
          "value": "scrape",
          "action": "Scrape webpage content with optional javascript rendering",
          "description": "Scrape webpage content with optional JavaScript rendering"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "scrape"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Execute",
      "value": "execute",
      "action": "Execute browser automation steps with optional AI extraction",
      "description": "Perform browser interactions like clicking, typing, and navigating, with optional AI-powered data extraction",
      "resource": "agenticscraper"
    },
    {
      "name": "Scrape",
      "value": "scrape",
      "action": "Autonomously extract live data from any website perfect for e commerce job boards lead capture and more",
      "description": "Autonomously extract live data from any website – perfect for e-commerce, job boards, lead capture and more",
      "resource": "smartscraper"
    },
    {
      "name": "Search",
      "value": "search",
      "action": "Perform ai powered site wide search and structured data extraction ideal for knowledge retrieval",
      "description": "Perform AI-powered site-wide search and structured data extraction – ideal for knowledge retrieval",
      "resource": "searchscraper"
    },
    {
      "name": "Crawl",
      "value": "crawl",
      "action": "Give a single URL – the AI crawler follows internal links to extract structured data across multiple pages",
      "description": "Give a single URL – the AI crawler follows internal links to extract structured data across multiple pages",
      "resource": "smartcrawler"
    },
    {
      "name": "Get Status",
      "value": "getStatus",
      "action": "Get the status and results of a crawl job using its task ID",
      "description": "Get the status and results of a crawl job using its task ID",
      "resource": "smartcrawler"
    },
    {
      "name": "Convert",
      "value": "convert",
      "action": "Convert a webpage or article to clean markdown useful for blogs dev docs and more",
      "description": "Convert a webpage or article to clean markdown – useful for blogs, dev docs and more",
      "resource": "markdownify"
    },
    {
      "name": "Scrape",
      "value": "scrape",
      "action": "Scrape webpage content with optional javascript rendering",
      "description": "Scrape webpage content with optional JavaScript rendering",
      "resource": "scrape"
    }
  ]

npm_readme:
  # n8n-nodes-scrapegraphai

  <p align="center">
    <img src="./nodes/scrapegraphAI.svg" width="250" alt="ScrapegraphAI Logo">
  </p>

  This is the official node for [ScrapegraphAI](https://scrapegraphai.com) for n8n. It allows you to use ScrapegraphAI's powerful web scraping and data extraction capabilities within your n8n workflows.

  ## Installation

  You can install this node in your n8n instance as follows:

  1. Go to **Settings** in your n8n instance
  2. Select the **Community Nodes** tab
  3. Click on **Install**
  4. Enter `n8n-nodes-scrapegraphai` in the "npm package name" field
  5. Click **Install**

  After installation, you will be able to use the ScrapegraphAI nodes in your workflows.

  ## Features

  This node provides several operations to interact with the ScrapegraphAI API:

  - Markdownify - Convert a webpage to markdown
  - Smart Scraper - Extract specific data from a webpage
  - Search Scraper - Extract data from search results

  ## Credentials

  To use this node, you need a ScrapegraphAI API key. You can get one by signing up at [scrapegraphai.com](https://scrapegraphai.com) and visiting your [dashboard](https://dashboard.scrapegraphai.com/dashboard).

  <img width="1360" alt="image" src="https://github.com/user-attachments/assets/c4305f4d-a7bd-445a-a495-a1e0314b4f46" />


  ## Usage

  After adding the node to your workflow, you'll need to:

  1. Create new credentials and enter your ScrapegraphAI API key
  2. Choose the operation you want to perform
  3. Configure the required parameters (e.g., website URL, extraction rules)

  ## License

  [MIT](LICENSE.md)

ai_documentation_summary:
  {"purpose":"This n8n node enables web scraping and data extraction by integrating with ScrapegraphAI, allowing users to convert webpages to markdown or extract specific data from websites and search results.","capabilities":["Markdownify - Convert webpages to markdown format","Smart Scraper - Extract specific data from webpages using extraction rules","Search Scraper - Extract data from search engine results"],"authentication":"API key required","commonUseCases":["Extracting structured data from dynamic websites","Converting web content to markdown for documentation","Scraping data from search engine results pages"],"limitations":[],"relatedNodes":[]}


node_type: n8n-nodes-cloudinary.cloudinary
package_name: n8n-nodes-cloudinary
display_name: Cloudinary
description: Upload to Cloudinary
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: cloudinary
author_github_url: https://github.com/cloudinary/
npm_package_name: n8n-nodes-cloudinary
npm_version: 0.0.9
community_fetched_at: 2026-04-16T09:43:36.417Z
ai_summary_generated_at: 2026-03-25 22:47:20
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "upload",
      "options": [
        {
          "name": "Upload",
          "value": "upload"
        },
        {
          "name": "Update Asset",
          "value": "updateAsset"
        },
        {
          "name": "Admin",
          "value": "admin"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "uploadUrl",
      "options": [
        {
          "name": "Upload From URL",
          "value": "uploadUrl",
          "action": "Upload an asset from URL",
          "description": "Upload an asset from URL"
        },
        {
          "name": "Upload File",
          "value": "uploadFile",
          "action": "Upload an asset from file data",
          "description": "Upload an asset from file data"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "upload"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "updateTags",
      "options": [
        {
          "name": "Update Asset Tags",
          "value": "updateTags",
          "action": "Update asset tags",
          "description": "Update tags for an existing asset"
        },
        {
          "name": "Update Asset Structured Metadata",
          "value": "updateMetadata",
          "action": "Update asset structured metadata",
          "description": "Update structured metadata for an existing asset"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "updateAsset"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getTags",
      "options": [
        {
          "name": "Get Tags",
          "value": "getTags",
          "action": "Get tags for a resource type",
          "description": "Get all tags for a specific resource type"
        },
        {
          "name": "Get Metadata Fields",
          "value": "getMetadataFields",
          "action": "Get metadata fields definitions",
          "description": "Get all metadata fields definitions"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "admin"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Upload From URL",
      "value": "uploadUrl",
      "action": "Upload an asset from URL",
      "description": "Upload an asset from URL",
      "resource": "upload"
    },
    {
      "name": "Upload File",
      "value": "uploadFile",
      "action": "Upload an asset from file data",
      "description": "Upload an asset from file data",
      "resource": "upload"
    },
    {
      "name": "Update Asset Tags",
      "value": "updateTags",
      "action": "Update asset tags",
      "description": "Update tags for an existing asset",
      "resource": "updateAsset"
    },
    {
      "name": "Update Asset Structured Metadata",
      "value": "updateMetadata",
      "action": "Update asset structured metadata",
      "description": "Update structured metadata for an existing asset",
      "resource": "updateAsset"
    },
    {
      "name": "Get Tags",
      "value": "getTags",
      "action": "Get tags for a resource type",
      "description": "Get all tags for a specific resource type",
      "resource": "admin"
    },
    {
      "name": "Get Metadata Fields",
      "value": "getMetadataFields",
      "action": "Get metadata fields definitions",
      "description": "Get all metadata fields definitions",
      "resource": "admin"
    }
  ]

npm_readme:
  # Cloudinary node

  Use the Cloudinary node to automate work in Cloudinary, and integrate Cloudinary with other applications. n8n has built-in support for a wide range of Cloudinary features, including uploading assets, managing tags, and updating metadata.

  On this page, you'll find a list of operations the Cloudinary node supports.

  ## Operations

  * Asset
  	* Upload from URL/file
  	* Update asset tags
  	* Update asset metadata fields
  	* Get tags
  	* Get structured metadata definitions

  ## Supported authentication methods

  - API key & API secret

  ## Authentication 
  ### Using API key

  To configure this credential, you'll need a [Cloudinary Account](https://cloudinary.com/users/register_free) and:

  - A **Cloud name**
  - An **API Key**
  - An **API Secret**

  If you're a user with a Master admin, Admin, or Technical admin role, you can find your API keys and other credentials on the API Keys page of the Cloudinary Console Settings:

  1. Navigate to the API Keys pages in the [settings page](https://console.cloudinary.com/settings/api-keys).
  2. Click on **+ Generate New API Key**.
  3. Copy the API Key and API Secret.
  4. From the top of the page copy the **Cloud name**.
  5. Enter the cloud name, api key and api secret to your n8n credential.


  ## Related resources

  Refer to [Cloudinary's documentation](https://cloudinary.com/documentation/programmable_media_guides) for more information on this service.

ai_documentation_summary:
  {"purpose":"Automates work in Cloudinary by enabling asset uploads, tag management, and metadata updates through n8n workflows.","capabilities":["Upload assets from URL or file","Update asset tags","Update asset metadata fields","Retrieve asset tags","Get structured metadata definitions"],"authentication":"API key & API secret","commonUseCases":["Automating image uploads to Cloudinary","Managing and organizing media assets with tags","Updating metadata for existing assets"],"limitations":[],"relatedNodes":[]}


node_type: @enginemailer/n8n-nodes-enginemailer.enginemailer
package_name: @enginemailer/n8n-nodes-enginemailer
display_name: Enginemailer
description: Consume Enginemailer API
category: Community
development_style: declarative
version: 1.0.1
properties_schema: []
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: enginemailer
author_github_url: https://github.com/Enginemailer-Official/n8n-nodes-enginemailer.git
npm_package_name: @enginemailer/n8n-nodes-enginemailer
npm_version: 1.0.1
community_fetched_at: 2026-04-16T09:43:36.418Z
ai_summary_generated_at: 2026-03-25 22:51:43
npm_readme:
  # n8n-nodes-enginemailer

  This is an n8n community node. It lets you use Enginemailer in your n8n workflows.

  Enginemailer is an all-in-one email marketing platform offering lead generation, marketing, transactional and automation features.

  [n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/reference/license/) workflow automation platform.

  [Installation](#installation)  
  [Operations](#operations)  
  [Credentials](#credentials)  
  [Compatibility](#compatibility)  
  [Resources](#resources)

  ## Installation

  Follow the [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) in the n8n community nodes documentation.

  ## Operations

  - Subscriber
    - Add or update a subscriber
    - Deactivate a subscriber
    - Delete a subscriber
    - Find a subscriber
    - Send email
    - Tag a subscriber to subcategory
    - Untag a subscriber from subcategory

  ## Events

  - Subscriber
    - On autoresponder completed
    - On autoresponder triggered
    - On subscribed
    - On subscriber deleted
    - On subscriber's fields updated
    - On tagged with subcategory
    - On unsubscribed
    - On untagged with subcategory

  ## Credentials

  You can use these credentials to authenticate the following nodes:

  - Enginemailer
  - Enginemailer Trigger

  ### Prerequisites

  Create an [Enginemailer](https://www.enginemailer.com/) account.

  ### Supported authentication methods

  - API key

  ### Related resources

  Refer to [Enginemailer's API documentation](https://connect.enginemailer.com/n8n/index.html) for more information about the service.

  ### Using API Key

  To configure this credential, you'll need:

  - An **API Key**: Generate an API key from the **Enginemailer** account -> API Keys. Refer to the [API Authentication documentation](https://enginemailer.zendesk.com/hc/en-us/articles/360057634711-Manage-API-keys-for-your-account) for more detailed instructions.

  ## Compatibility

  - Tested against n8n version 1.103.2

  ### Node parameters

  Use these parameters to configure your node.

  #### Poll Times

  n8n's Enginemailer trigger node uses polling for check for updates on configured Enginemailer resources. The **Poll Times** parameter configures the querying frequency:

  - Every Minute
  - Every Hour
  - Every Day
  - Every Week
  - Every Month
  - Every X: Check for updates every given number of minutes or hours.
  - Custom: Customize the polling interval by providing a cron expression.
    Use the **Add Poll Time** button to add more polling intervals.

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  - [Enginemailer's API documentation](https://connect.enginemailer.com/n8n/index.html)

ai_documentation_summary:
  {"purpose":"This n8n community node enables automation workflows with Enginemailer, an all-in-one email marketing platform, allowing users to manage subscribers and send emails programmatically.","capabilities":["Add or update email subscribers","Deactivate or delete subscribers","Search for specific subscribers","Send transactional emails","Tag and untag subscribers into subcategories","Trigger workflows on subscriber events (subscription, deletion, field updates, tagging, unsubscribing)"],"authentication":"API key","commonUseCases":["Automated lead generation and nurturing","Transactional email delivery (password resets, receipts)","Marketing campaign automation","Subscriber lifecycle management"],"limitations":["Community node (not official n8n node)","Requires separate Enginemailer account and API key setup"],"relatedNodes":["Enginemailer Trigger"]}


node_type: @actaport/n8n-nodes-actaport.actaport
package_name: @actaport/n8n-nodes-actaport
display_name: Actaport
description: Interact with the Actaport API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: actaport.integration
author_github_url: https://github.com/actaport/n8n-nodes-actaport.git
npm_package_name: @actaport/n8n-nodes-actaport
npm_version: 0.3.0
community_fetched_at: 2026-04-16T09:43:36.420Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "contact",
      "options": [
        {
          "name": "Additional Information Category",
          "value": "additionalInformationCategory"
        },
        {
          "name": "Case File",
          "value": "caseFile"
        },
        {
          "name": "Collision",
          "value": "collision"
        },
        {
          "name": "Contact",
          "value": "contact"
        },
        {
          "name": "Deadline",
          "value": "deadline"
        },
        {
          "name": "Department",
          "value": "department"
        },
        {
          "name": "Document",
          "value": "document"
        },
        {
          "name": "Document Template",
          "value": "documentTemplate"
        },
        {
          "name": "Expense",
          "value": "expense"
        },
        {
          "name": "Folder",
          "value": "folder"
        },
        {
          "name": "Invoice",
          "value": "invoice"
        },
        {
          "name": "Note",
          "value": "note"
        },
        {
          "name": "Resubmission",
          "value": "resubmission"
        },
        {
          "name": "RVG Fee",
          "value": "rvg"
        },
        {
          "name": "Task",
          "value": "task"
        },
        {
          "name": "Third Party Cost",
          "value": "thirdPartyCost"
        },
        {
          "name": "User",
          "value": "user"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get additional information category",
          "routing": {
            "request": {
              "url": "=/v1/zusatzinformation/kategorien/{{$parameter[\"id\"]}}",
              "method": "GET"
            }
          }
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get additional information categories",
          "routing": {
            "request": {
              "url": "=/v1/zusatzinformation/kategorien",
              "method": "GET"
            }
          }
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "additionalInformationCategory"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get case files",
          "routing": {
            "send": {
              "paginate": "={{ $parameter['returnAll'] }}"
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "content"
                  }
                }
              ]
            },
            "request": {
              "qs": {
                "size": "={{ $parameter['returnAll'] ? 50 : $parameter['size'] }}"
              },
              "url": "=/v1/akten",
              "method": "GET",
              "arrayFormat": "repeat"
            },
            "operations": {
              "pagination": {
                "type": "generic",
                "properties": {
                  "request": {
                    "qs": {
                      "page": "={{ ($response.body?.number ?? -1) + 1 }}",
                      "size": "={{ $response.body?.size ?? 50 }}",
                      "sort": "={{ $request.qs?.sort }}",
                      "filter": "={{ $request.qs?.filter }}"
                    }
                  },
                  "continue": "={{ !$response.body?.last }}"
                }
              }
            }
          },
          "description": "Retrieve case files"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get case file",
          "routing": {
            "request": {
              "url": "=/v1/akten/{{$parameter[\"laufendeNummer\"]}}/{{$parameter[\"bezugsJahr\"]}}",
              "method": "GET"
            }
          },
          "description": "Retrieve case file"
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create case file",
          "routing": {
            "send": {
              "preSend": []
            },
            "request": {
              "url": "=/v1/akten",
              "method": "POST"
            }
          },
          "description": "Create new case file"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update case file",
          "routing": {
            "request": {
              "url": "=/v1/akten/{{$parameter[\"laufendeNummer\"]}}/{{$parameter[\"bezugsJahr\"]}}",
              "method": "PUT"
            }
          },
          "description": "Update case"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "caseFile"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get collision check",
          "routing": {
            "request": {
              "url": "=/v1/kollisionspruefung",
              "method": "GET"
            }
          },
          "description": "Check for collisions"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "collision"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a contact",
          "routing": {
            "request": {
              "url": "=/v1/kontakte",
              "method": "POST"
            }
          },
          "description": "Creates a new contact with the given data"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a contact",
          "routing": {
            "request": {
              "url": "=/v1/kontakte/{{$parameter.id}}",
              "method": "GET"
            }
          },
          "description": "Retrieves the metadata of a contact"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many contacts",
          "routing": {
            "send": {
              "paginate": "={{ $parameter['returnAll'] }}"
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "content"
                  }
                }
              ]
            },
            "request": {
              "qs": {
                "size": "={{ $parameter['returnAll'] ? 100 : $parameter['size'] }}"
              },
              "url": "=/v1/kontakte",
              "method": "GET",
              "arrayFormat": "repeat"
            },
            "operations": {
              "pagination": {
                "type": "generic",
                "properties": {
                  "request": {
                    "qs": {
                      "page": "={{ ($response.body?.number ?? -1) + 1 }}",
                      "size": "={{ $response.body?.size ?? 100 }}",
                      "sort": "={{ $request.qs?.sort }}",
                      "filter": "={{ $request.qs?.filter }}"
                    }
                  },
                  "continue": "={{ !$response.body?.last }}"
                }
              }
            }
          },
          "description": "Retrieves multiple contacts"
        },
        {
          "name": "Search",
          "value": "search",
          "action": "Search contacts",
          "routing": {
            "send": {
              "paginate": "={{ $parameter['returnAll'] }}"
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "content"
                  }
                }
              ]
            },
            "request": {
              "qs": {
                "size": "={{ $parameter['returnAll'] ? 20 : $parameter['size'] }}"
              },
              "url": "=/v1/kontakte/suche",
              "method": "GET"
            },
            "operations": {
              "pagination": {
                "type": "generic",
                "properties": {
                  "request": {
                    "qs": {
                      "page": "={{ ($response.body?.number ?? -1) + 1 }}",
                      "size": "={{ $response.body?.size ?? 20 }}",
                      "suchbegriff": "={{ $request.qs.suchbegriff }}"
                    }
                  },
                  "continue": "={{ !$response.body?.last }}"
                }
              }
            }
          },
          "description": "Search contacts with a search term. The search will be performed on certain fields of the contact."
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a contact",
          "routing": {
            "request": {
              "url": "=/v1/kontakte/{{$parameter.id}}",
              "method": "PUT"
            }
          },
          "description": "Updates the data of a contact"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "contact"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create deadline",
          "routing": {
            "request": {
              "url": "=/v1/akten/{{$parameter[\"laufendeNummer\"]}}/{{$parameter[\"bezugsJahr\"]}}/fristen",
              "method": "POST"
            }
          },
          "description": "Create a new deadline"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get deadline",
          "routing": {
            "request": {
              "url": "=/v1/akten/{{$parameter[\"laufendeNummer\"]}}/{{$parameter[\"bezugsJahr\"]}}/fristen/{{$parameter[\"id\"]}}",
              "method": "GET"
            }
          },
          "description": "Retrieve a single deadline"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get deadlines",
          "routing": {
            "send": {
              "paginate": "={{ $parameter['returnAll'] }}"
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "content"
                  }
                }
              ]
            },
            "request": {
              "qs": {
                "size": "={{ $parameter['returnAll'] ? 100 : $parameter['size'] }}"
              },
              "url": "=/v1/fristen",
              "method": "GET",
              "arrayFormat": "repeat"
            },
            "operations": {
              "pagination": {
                "type": "generic",
                "properties": {
                  "request": {
                    "qs": {
                      "page": "={{ ($response.body?.number ?? -1) + 1 }}",
                      "size": "={{ $response.body?.size ?? 100 }}",
                      "sort": "={{ $request.qs?.sort }}",
                      "filter": "={{ $request.qs?.filter }}"
                    }
                  },
                  "continue": "={{ !$response.body?.last }}"
                }
              }
            }
          },
          "description": "Retrieve many deadlines"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update deadline",
          "routing": {
            "request": {
              "url": "=/v1/akten/{{$parameter[\"laufendeNummer\"]}}/{{$parameter[\"bezugsJahr\"]}}/fristen/{{$parameter[\"id\"]}}",
              "method": "PUT"
            }
          },
          "description": "Update an existing deadline"
        },
        {
          "name": "Update Status",
          "value": "updateStatus",
          "action": "Update deadline status",
          "routing": {
            "request": {
              "url": "=/v1/akten/{{$parameter[\"laufendeNummer\"]}}/{{$parameter[\"bezugsJahr\"]}}/fristen/{{$parameter[\"id\"]}}/status/{{$parameter[\"status\"]}}",
              "method": "PUT"
            }
          },
          "description": "Change the status of a deadline"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "deadline"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get department",
          "routing": {
            "request": {
              "url": "=/v1/info/kanzlei/dezernate/{{$parameter[\"id\"]}}",
              "method": "GET"
            }
          },
          "description": "Retrieves a department by ID"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get departments",
          "routing": {
            "send": {
              "paginate": "={{ $parameter['returnAll'] }}"
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "content"
                  }
                }
              ]
            },
            "request": {
              "qs": {
                "size": "={{ $parameter['returnAll'] ? 100 : $parameter['size'] }}"
              },
              "url": "=/v1/info/kanzlei/dezernate",
              "method": "GET",
              "arrayFormat": "repeat"
            },
            "operations": {
              "pagination": {
                "type": "generic",
                "properties": {
                  "request": {
                    "qs": {
                      "page": "={{ ($response.body?.number ?? -1) + 1 }}",
                      "size": "={{ $response.body?.size ?? 100 }}",
                      "sort": "={{ $request.qs?.sort }}",
                      "filter": "={{ $request.qs?.filter }}"
                    }
                  },
                  "continue": "={{ !$response.body?.last }}"
                }
              }
            }
          },
          "description": "Retrieves many departments"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "department"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create document",
          "routing": {
            "request": {
              "url": "=/v1/akten/{{$parameter[\"laufendeNummer\"]}}/{{$parameter[\"bezugsJahr\"]}}/dokumente/neu",
              "method": "POST"
            }
          },
          "description": "Create a new document with template if supported. If no template is specified, a blank document will be created."
        },
        {
          "name": "Download",
          "value": "download",
          "action": "Download document",
          "routing": {
            "output": {
              "postReceive": [
                null
              ]
            },
            "request": {
              "url": "=/v1/documents/{{$parameter[\"id\"]}}",
              "method": "GET",
              "encoding": "arraybuffer",
              "returnFullResponse": true
            }
          },
          "description": "Download a single document"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get document",
          "routing": {
            "request": {
              "url": "=/v1/akten/{{$parameter[\"laufendeNummer\"]}}/{{$parameter[\"bezugsJahr\"]}}/dokumente/{{$parameter[\"id\"]}}",
              "method": "GET"
            }
          },
          "description": "Get a single document"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get documents",
          "routing": {
            "send": {
              "paginate": "={{ $parameter['returnAll'] }}"
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "content"
                  }
                }
              ]
            },
            "request": {
              "qs": {
                "size": "={{ $parameter['returnAll'] ? 50 : $parameter['size'] }}"
              },
              "url": "=/v1/akten/{{$parameter[\"laufendeNummer\"]}}/{{$parameter[\"bezugsJahr\"]}}/dokumente/uebersicht",
              "method": "GET",
              "arrayFormat": "repeat"
            },
            "operations": {
              "pagination": {
                "type": "generic",
                "properties": {
                  "request": {
                    "qs": {
                      "page": "={{ ($response.body?.number ?? -1) + 1 }}",
                      "size": "={{ $response.body?.size ?? 100 }}",
                      "sort": "={{ $request.qs?.sort }}",
                      "filter": "={{ $request.qs?.filter }}"
                    }
                  },
                  "continue": "={{ !$response.body?.last }}"
                }
              }
            }
          },
          "description": "Retrieve many documents"
        },
        {
          "name": "Search",
          "value": "search",
          "action": "Search documents",
          "routing": {
            "send": {
              "paginate": "={{ $parameter['returnAll'] }}"
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "content"
                  }
                }
              ]
            },
            "request": {
              "qs": {
                "size": "={{ $parameter['returnAll'] ? 20 : $parameter['size'] }}"
              },
              "url": "=/v1/documents/search",
              "method": "GET"
            },
            "operations": {
              "pagination": {
                "type": "generic",
                "properties": {
                  "request": {
                    "qs": {
                      "page": "={{ ($response.body?.number ?? -1) + 1 }}",
                      "size": "={{ $response.body?.size ?? 20 }}",
                      "aktennummer": "={{ $request.qs?.aktennummer }}",
                      "suchbegriff": "={{ $request.qs.suchbegriff }}"
                    }
                  },
                  "continue": "={{ !$response.body?.last }}"
                }
              }
            }
          },
          "description": "Search documents with a search term. The search will be performed on the document attributes and content."
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update document",
          "routing": {
            "request": {
              "url": "=/v1/documents/{{$parameter[\"id\"]}}/metadata",
              "method": "PUT"
            }
          },
          "description": "Update a single document"
        },
        {
          "name": "Upload",
          "value": "upload",
          "action": "Upload document",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "=/v1/akten/{{$parameter.laufendeNummer}}/{{$parameter.bezugsJahr}}/dokumente",
              "method": "POST",
              "headers": {
                "Content-Type": "multipart/form-data"
              }
            }
          },
          "description": "Upload a document to a case"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "document"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get document template",
          "routing": {
            "request": {
              "url": "=/v1/vorlagen/{{$parameter[\"id\"]}}",
              "method": "GET"
            }
          },
          "description": "Get a single document template"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get document templates",
          "routing": {
            "send": {
              "paginate": "={{ $parameter['returnAll'] }}"
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "content"
                  }
                }
              ]
            },
            "request": {
              "qs": {
                "size": "={{ $parameter['returnAll'] ? 50 : $parameter['size'] }}"
              },
              "url": "=/v1/vorlagen",
              "method": "GET",
              "arrayFormat": "repeat"
            },
            "operations": {
              "pagination": {
                "type": "generic",
                "properties": {
                  "request": {
                    "qs": {
                      "page": "={{ ($response.body?.number ?? -1) + 1 }}",
                      "size": "={{ $response.body?.size ?? 50 }}",
                      "sort": "={{ $request.qs?.sort }}",
                      "filter": "={{ $request.qs?.filter }}"
                    }
                  },
                  "continue": "={{ !$response.body?.last }}"
                }
              }
            }
          },
          "description": "Retrieve many document templates"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "documentTemplate"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create expense",
          "routing": {
            "request": {
              "url": "=/v1/akten/{{$parameter[\"laufendeNummer\"]}}/{{$parameter[\"bezugsJahr\"]}}/verguetungspositionen/eigene-auslagen",
              "method": "POST"
            }
          }
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete expense",
          "routing": {
            "request": {
              "url": "=/v1/akten/{{$parameter[\"laufendeNummer\"]}}/{{$parameter[\"bezugsJahr\"]}}/verguetungspositionen/eigene-auslagen/{{$parameter[\"id\"]}}",
              "method": "DELETE"
            }
          }
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get expense",
          "routing": {
            "request": {
              "url": "=/v1/akten/{{$parameter[\"laufendeNummer\"]}}/{{$parameter[\"bezugsJahr\"]}}/verguetungspositionen/eigene-auslagen/{{$parameter[\"id\"]}}",
              "method": "GET"
            }
          }
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get expenses",
          "routing": {
            "send": {
              "paginate": "={{ $parameter['returnAll'] }}"
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "content"
                  }
                }
              ]
            },
            "request": {
              "qs": {
                "size": "={{ $parameter['returnAll'] ? 50 : $parameter['size'] }}"
              },
              "url": "=/v1/akten/{{$parameter[\"laufendeNummer\"]}}/{{$parameter[\"bezugsJahr\"]}}/verguetungspositionen/eigene-auslagen",
              "method": "GET",
              "arrayFormat": "repeat"
            },
            "operations": {
              "pagination": {
                "type": "generic",
                "properties": {
                  "request": {
                    "qs": {
                      "page": "={{ ($response.body?.number ?? -1) + 1 }}",
                      "size": "={{ $response.body?.size ?? 50 }}",
                      "sort": "={{ $request.qs?.sort }}",
                      "filter": "={{ $request.qs?.filter }}"
                    }
                  },
                  "continue": "={{ !$response.body?.last }}"
                }
              }
            }
          }
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update expense",
          "routing": {
            "request": {
              "url": "=/v1/akten/{{$parameter[\"laufendeNummer\"]}}/{{$parameter[\"bezugsJahr\"]}}/verguetungspositionen/eigene-auslagen/{{$parameter[\"id\"]}}",
              "method": "PUT"
            }
          }
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "expense"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create folder",
          "routing": {
            "request": {
              "url": "=/v1/akten/{{$parameter[\"laufendeNummer\"]}}/{{$parameter[\"bezugsJahr\"]}}/ordner",
              "method": "POST"
            }
          },
          "description": "Create a new folder in a case file"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get folder",
          "routing": {
            "request": {
              "url": "=/v1/akten/{{$parameter[\"laufendeNummer\"]}}/{{$parameter[\"bezugsJahr\"]}}/ordner/{{$parameter[\"id\"]}}",
              "method": "GET"
            }
          },
          "description": "Get a single folder"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get folders",
          "routing": {
            "send": {
              "paginate": "={{ $parameter['returnAll'] }}"
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "content"
                  }
                }
              ]
            },
            "request": {
              "qs": {
                "size": "={{ $parameter['returnAll'] ? 50 : $parameter['size'] }}"
              },
              "url": "=/v1/akten/{{$parameter[\"laufendeNummer\"]}}/{{$parameter[\"bezugsJahr\"]}}/ordner",
              "method": "GET",
              "arrayFormat": "repeat"
            },
            "operations": {
              "pagination": {
                "type": "generic",
                "properties": {
                  "request": {
                    "qs": {
                      "page": "={{ ($response.body?.number ?? -1) + 1 }}",
                      "size": "={{ $response.body?.size ?? 50 }}",
                      "sort": "={{ $request.qs?.sort }}",
                      "filter": "={{ $request.qs?.filter }}"
                    }
                  },
                  "continue": "={{ !$response.body?.last }}"
                }
              }
            }
          },
          "description": "Retrieve folder structure of a case file"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "folder"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get invoices",
          "routing": {
            "send": {
              "paginate": "={{ $parameter['returnAll'] }}"
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "content"
                  }
                }
              ]
            },
            "request": {
              "qs": {
                "size": "={{ $parameter['returnAll'] ? 50 : $parameter['size'] }}"
              },
              "url": "=/v1/rechnungen",
              "method": "GET",
              "arrayFormat": "repeat"
            },
            "operations": {
              "pagination": {
                "type": "generic",
                "properties": {
                  "request": {
                    "qs": {
                      "page": "={{ ($response.body?.number ?? -1) + 1 }}",
                      "size": "={{ $response.body?.size ?? 50 }}",
                      "sort": "={{ $request.qs?.sort }}",
                      "filter": "={{ $request.qs?.filter }}"
                    }
                  },
                  "continue": "={{ !$response.body?.last }}"
                }
              }
            }
          },
          "description": "Retrieve many invoices"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get invoice",
          "routing": {
            "request": {
              "url": "=/v1/rechnungen/{{$parameter[\"id\"]}}",
              "method": "GET"
            }
          },
          "description": "Retrieve a single invoice"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "invoice"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create note",
          "routing": {
            "request": {
              "url": "=/v1/akten/{{$parameter[\"laufendeNummer\"]}}/{{$parameter[\"bezugsJahr\"]}}/notizen",
              "method": "POST"
            }
          },
          "description": "Create a new note"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get note",
          "routing": {
            "request": {
              "url": "=/v1/akten/{{$parameter[\"laufendeNummer\"]}}/{{$parameter[\"bezugsJahr\"]}}/notizen/{{$parameter[\"id\"]}}",
              "method": "GET"
            }
          },
          "description": "Retrieve a single note"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get notes",
          "routing": {
            "send": {
              "paginate": "={{ $parameter['returnAll'] }}"
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "content"
                  }
                }
              ]
            },
            "request": {
              "qs": {
                "size": "={{ $parameter['returnAll'] ? 100 : $parameter['size'] }}"
              },
              "url": "=/v1/akten/{{$parameter[\"laufendeNummer\"]}}/{{$parameter[\"bezugsJahr\"]}}/notizen",
              "method": "GET",
              "arrayFormat": "repeat"
            },
            "operations": {
              "pagination": {
                "type": "generic",
                "properties": {
                  "request": {
                    "qs": {
                      "page": "={{ ($response.body?.number ?? -1) + 1 }}",
                      "size": "={{ $response.body?.size ?? 100 }}",
                      "sort": "={{ $request.qs?.sort }}",
                      "filter": "={{ $request.qs?.filter }}"
                    }
                  },
                  "continue": "={{ !$response.body?.last }}"
                }
              }
            }
          },
          "description": "Retrieve many notes"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update note",
          "routing": {
            "request": {
              "url": "=/v1/akten/{{$parameter[\"laufendeNummer\"]}}/{{$parameter[\"bezugsJahr\"]}}/notizen/{{$parameter[\"id\"]}}",
              "method": "PUT"
            }
          },
          "description": "Update an existing note"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "note"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create resubmission",
          "routing": {
            "request": {
              "url": "=/v1/akten/{{$parameter[\"laufendeNummer\"]}}/{{$parameter[\"bezugsJahr\"]}}/wiedervorlagen",
              "method": "POST"
            }
          },
          "description": "Create a new resubmission"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get resubmission",
          "routing": {
            "request": {
              "url": "=/v1/akten/{{$parameter[\"laufendeNummer\"]}}/{{$parameter[\"bezugsJahr\"]}}/wiedervorlagen/{{$parameter[\"id\"]}}",
              "method": "GET"
            }
          },
          "description": "Retrieve a single resubmission"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get resubmissions",
          "routing": {
            "send": {
              "paginate": "={{ $parameter['returnAll'] }}"
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "content"
                  }
                }
              ]
            },
            "request": {
              "qs": {
                "size": "={{ $parameter['returnAll'] ? 100 : $parameter['size'] }}"
              },
              "url": "=/v1/wiedervorlagen",
              "method": "GET",
              "arrayFormat": "repeat"
            },
            "operations": {
              "pagination": {
                "type": "generic",
                "properties": {
                  "request": {
                    "qs": {
                      "page": "={{ ($response.body?.number ?? -1) + 1 }}",
                      "size": "={{ $response.body?.size ?? 100 }}",
                      "sort": "={{ $request.qs?.sort }}",
                      "filter": "={{ $request.qs?.filter }}"
                    }
                  },
                  "continue": "={{ !$response.body?.last }}"
                }
              }
            }
          },
          "description": "Retrieve many resubmissions"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update resubmission",
          "routing": {
            "request": {
              "url": "=/v1/akten/{{$parameter[\"laufendeNummer\"]}}/{{$parameter[\"bezugsJahr\"]}}/wiedervorlagen/{{$parameter[\"id\"]}}",
              "method": "PUT"
            }
          },
          "description": "Update an existing resubmission"
        },
        {
          "name": "Update Status",
          "value": "updateStatus",
          "action": "Update resubmission status",
          "routing": {
            "request": {
              "url": "=/v1/akten/{{$parameter[\"laufendeNummer\"]}}/{{$parameter[\"bezugsJahr\"]}}/wiedervorlagen/{{$parameter[\"id\"]}}/status/{{$parameter[\"status\"]}}",
              "method": "PUT"
            }
          },
          "description": "Change the status of a resubmission"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "resubmission"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create rvg fee",
          "routing": {
            "request": {
              "url": "=/v1/akten/{{$parameter[\"laufendeNummer\"]}}/{{$parameter[\"bezugsJahr\"]}}/verguetungspositionen/rvg",
              "method": "POST"
            }
          }
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete rvg fee",
          "routing": {
            "request": {
              "url": "=/v1/akten/{{$parameter[\"laufendeNummer\"]}}/{{$parameter[\"bezugsJahr\"]}}/verguetungspositionen/rvg/{{$parameter[\"id\"]}}",
              "method": "DELETE"
            }
          }
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get rvg fee",
          "routing": {
            "request": {
              "url": "=/v1/akten/{{$parameter[\"laufendeNummer\"]}}/{{$parameter[\"bezugsJahr\"]}}/verguetungspositionen/rvg/{{$parameter[\"id\"]}}",
              "method": "GET"
            }
          }
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get rvg fees",
          "routing": {
            "send": {
              "paginate": "={{ $parameter['returnAll'] }}"
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "content"
                  }
                }
              ]
            },
            "request": {
              "qs": {
                "size": "={{ $parameter['returnAll'] ? 100 : $parameter['size'] }}"
              },
              "url": "=/v1/akten/{{$parameter[\"laufendeNummer\"]}}/{{$parameter[\"bezugsJahr\"]}}/verguetungspositionen/rvg",
              "method": "GET",
              "arrayFormat": "repeat"
            },
            "operations": {
              "pagination": {
                "type": "generic",
                "properties": {
                  "request": {
                    "qs": {
                      "page": "={{ ($response.body?.number ?? -1) + 1 }}",
                      "size": "={{ $response.body?.size ?? 100 }}",
                      "sort": "={{ $request.qs?.sort }}",
                      "filter": "={{ $request.qs?.filter }}"
                    }
                  },
                  "continue": "={{ !$response.body?.last }}"
                }
              }
            }
          }
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update rvg fee",
          "routing": {
            "request": {
              "url": "=/v1/akten/{{$parameter[\"laufendeNummer\"]}}/{{$parameter[\"bezugsJahr\"]}}/verguetungspositionen/rvg/{{$parameter[\"id\"]}}",
              "method": "PUT"
            }
          }
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "rvg"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create task",
          "routing": {
            "request": {
              "url": "=/v1/aufgaben",
              "method": "POST"
            }
          },
          "description": "Create a new task"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get task",
          "routing": {
            "request": {
              "url": "=/v1/aufgaben/{{$parameter[\"id\"]}}",
              "method": "GET"
            }
          },
          "description": "Retrieve a single task"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get tasks",
          "routing": {
            "send": {
              "paginate": "={{ $parameter['returnAll'] }}"
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "content"
                  }
                }
              ]
            },
            "request": {
              "qs": {
                "size": "={{ $parameter['returnAll'] ? 100 : $parameter['size'] }}"
              },
              "url": "=/v1/aufgaben",
              "method": "GET",
              "arrayFormat": "repeat"
            },
            "operations": {
              "pagination": {
                "type": "generic",
                "properties": {
                  "request": {
                    "qs": {
                      "page": "={{ ($response.body?.number ?? -1) + 1 }}",
                      "size": "={{ $response.body?.size ?? 100 }}",
                      "sort": "={{ $request.qs?.sort }}",
                      "filter": "={{ $request.qs?.filter }}"
                    }
                  },
                  "continue": "={{ !$response.body?.last }}"
                }
              }
            }
          },
          "description": "Retrieve many tasks"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update task",
          "routing": {
            "request": {
              "url": "=/v1/aufgaben/{{$parameter[\"id\"]}}",
              "method": "PUT"
            }
          },
          "description": "Update an existing task"
        },
        {
          "name": "Update Status",
          "value": "updateStatus",
          "action": "Update task status",
          "routing": {
            "request": {
              "url": "=/v1/aufgaben/{{$parameter[\"id\"]}}/status/{{$parameter[\"status\"]}}",
              "method": "PUT"
            }
          },
          "description": "Change the status of a task"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "task"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create third party cost",
          "routing": {
            "request": {
              "url": "=/v1/akten/{{$parameter[\"laufendeNummer\"]}}/{{$parameter[\"bezugsJahr\"]}}/verguetungspositionen/fremde-auslagen",
              "method": "POST"
            }
          }
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete third party cost",
          "routing": {
            "request": {
              "url": "=/v1/akten/{{$parameter[\"laufendeNummer\"]}}/{{$parameter[\"bezugsJahr\"]}}/verguetungspositionen/fremde-auslagen/{{$parameter[\"id\"]}}",
              "method": "DELETE"
            }
          }
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get third party cost",
          "routing": {
            "request": {
              "url": "=/v1/akten/{{$parameter[\"laufendeNummer\"]}}/{{$parameter[\"bezugsJahr\"]}}/verguetungspositionen/fremde-auslagen/{{$parameter[\"id\"]}}",
              "method": "GET"
            }
          }
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get third party costs",
          "routing": {
            "send": {
              "paginate": "={{ $parameter['returnAll'] }}"
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "content"
                  }
                }
              ]
            },
            "request": {
              "qs": {
                "size": "={{ $parameter['returnAll'] ? 100 : $parameter['size'] }}"
              },
              "url": "=/v1/akten/{{$parameter[\"laufendeNummer\"]}}/{{$parameter[\"bezugsJahr\"]}}/verguetungspositionen/fremde-auslagen",
              "method": "GET",
              "arrayFormat": "repeat"
            },
            "operations": {
              "pagination": {
                "type": "generic",
                "properties": {
                  "request": {
                    "qs": {
                      "page": "={{ ($response.body?.number ?? -1) + 1 }}",
                      "size": "={{ $response.body?.size ?? 100 }}",
                      "sort": "={{ $request.qs?.sort }}",
                      "filter": "={{ $request.qs?.filter }}"
                    }
                  },
                  "continue": "={{ !$response.body?.last }}"
                }
              }
            }
          }
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update third party cost",
          "routing": {
            "request": {
              "url": "=/v1/akten/{{$parameter[\"laufendeNummer\"]}}/{{$parameter[\"bezugsJahr\"]}}/verguetungspositionen/fremde-auslagen/{{$parameter[\"id\"]}}",
              "method": "PUT"
            }
          }
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "thirdPartyCost"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getCurrent",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get a user",
          "routing": {
            "request": {
              "url": "=/v1/benutzer/{{$parameter.userId}}",
              "method": "GET"
            }
          },
          "description": "Get the data of a single user"
        },
        {
          "name": "Get Me",
          "value": "getCurrent",
          "action": "Get me",
          "routing": {
            "request": {
              "url": "=/v1/info/me",
              "method": "GET"
            }
          },
          "description": "Get the data of the current authenticated user"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many users",
          "routing": {
            "send": {
              "paginate": "={{ $parameter['returnAll'] }}"
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "content"
                  }
                }
              ]
            },
            "request": {
              "qs": {
                "size": "={{ $parameter['returnAll'] ? 100 : $parameter['size'] }}"
              },
              "url": "=/v1/benutzer",
              "method": "GET",
              "arrayFormat": "repeat"
            },
            "operations": {
              "pagination": {
                "type": "generic",
                "properties": {
                  "request": {
                    "qs": {
                      "page": "={{ ($response.body?.number ?? -1) + 1 }}",
                      "size": "={{ $response.body?.size ?? 100 }}",
                      "sort": "={{ $request.qs?.sort }}",
                      "filter": "={{ $request.qs?.filter }}"
                    }
                  },
                  "continue": "={{ !$response.body?.last }}"
                }
              }
            }
          },
          "description": "Get the data of multiple users"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "user"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get",
      "value": "get",
      "action": "Get additional information category",
      "routing": {
        "request": {
          "url": "=/v1/zusatzinformation/kategorien/{{$parameter[\"id\"]}}",
          "method": "GET"
        }
      },
      "resource": "additionalInformationCategory"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get additional information categories",
      "routing": {
        "request": {
          "url": "=/v1/zusatzinformation/kategorien",
          "method": "GET"
        }
      },
      "resource": "additionalInformationCategory"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get case files",
      "routing": {
        "send": {
          "paginate": "={{ $parameter['returnAll'] }}"
        },
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "content"
              }
            }
          ]
        },
        "request": {
          "qs": {
            "size": "={{ $parameter['returnAll'] ? 50 : $parameter['size'] }}"
          },
          "url": "=/v1/akten",
          "method": "GET",
          "arrayFormat": "repeat"
        },
        "operations": {
          "pagination": {
            "type": "generic",
            "properties": {
              "request": {
                "qs": {
                  "page": "={{ ($response.body?.number ?? -1) + 1 }}",
                  "size": "={{ $response.body?.size ?? 50 }}",
                  "sort": "={{ $request.qs?.sort }}",
                  "filter": "={{ $request.qs?.filter }}"
                }
              },
              "continue": "={{ !$response.body?.last }}"
            }
          }
        }
      },
      "description": "Retrieve case files",
      "resource": "caseFile"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get case file",
      "routing": {
        "request": {
          "url": "=/v1/akten/{{$parameter[\"laufendeNummer\"]}}/{{$parameter[\"bezugsJahr\"]}}",
          "method": "GET"
        }
      },
      "description": "Retrieve case file",
      "resource": "caseFile"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create case file",
      "routing": {
        "send": {
          "preSend": []
        },
        "request": {
          "url": "=/v1/akten",
          "method": "POST"
        }
      },
      "description": "Create new case file",
      "resource": "caseFile"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update case file",
      "routing": {
        "request": {
          "url": "=/v1/akten/{{$parameter[\"laufendeNummer\"]}}/{{$parameter[\"bezugsJahr\"]}}",
          "method": "PUT"
        }
      },
      "description": "Update case",
      "resource": "caseFile"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get collision check",
      "routing": {
        "request": {
          "url": "=/v1/kollisionspruefung",
          "method": "GET"
        }
      },
      "description": "Check for collisions",
      "resource": "collision"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a contact",
      "routing": {
        "request": {
          "url": "=/v1/kontakte",
          "method": "POST"
        }
      },
      "description": "Creates a new contact with the given data",
      "resource": "contact"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a contact",
      "routing": {
        "request": {
          "url": "=/v1/kontakte/{{$parameter.id}}",
          "method": "GET"
        }
      },
      "description": "Retrieves the metadata of a contact",
      "resource": "contact"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many contacts",
      "routing": {
        "send": {
          "paginate": "={{ $parameter['returnAll'] }}"
        },
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "content"
              }
            }
          ]
        },
        "request": {
          "qs": {
            "size": "={{ $parameter['returnAll'] ? 100 : $parameter['size'] }}"
          },
          "url": "=/v1/kontakte",
          "method": "GET",
          "arrayFormat": "repeat"
        },
        "operations": {
          "pagination": {
            "type": "generic",
            "properties": {
              "request": {
                "qs": {
                  "page": "={{ ($response.body?.number ?? -1) + 1 }}",
                  "size": "={{ $response.body?.size ?? 100 }}",
                  "sort": "={{ $request.qs?.sort }}",
                  "filter": "={{ $request.qs?.filter }}"
                }
              },
              "continue": "={{ !$response.body?.last }}"
            }
          }
        }
      },
      "description": "Retrieves multiple contacts",
      "resource": "contact"
    },
    {
      "name": "Search",
      "value": "search",
      "action": "Search contacts",
      "routing": {
        "send": {
          "paginate": "={{ $parameter['returnAll'] }}"
        },
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "content"
              }
            }
          ]
        },
        "request": {
          "qs": {
            "size": "={{ $parameter['returnAll'] ? 20 : $parameter['size'] }}"
          },
          "url": "=/v1/kontakte/suche",
          "method": "GET"
        },
        "operations": {
          "pagination": {
            "type": "generic",
            "properties": {
              "request": {
                "qs": {
                  "page": "={{ ($response.body?.number ?? -1) + 1 }}",
                  "size": "={{ $response.body?.size ?? 20 }}",
                  "suchbegriff": "={{ $request.qs.suchbegriff }}"
                }
              },
              "continue": "={{ !$response.body?.last }}"
            }
          }
        }
      },
      "description": "Search contacts with a search term. The search will be performed on certain fields of the contact.",
      "resource": "contact"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a contact",
      "routing": {
        "request": {
          "url": "=/v1/kontakte/{{$parameter.id}}",
          "method": "PUT"
        }
      },
      "description": "Updates the data of a contact",
      "resource": "contact"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create deadline",
      "routing": {
        "request": {
          "url": "=/v1/akten/{{$parameter[\"laufendeNummer\"]}}/{{$parameter[\"bezugsJahr\"]}}/fristen",
          "method": "POST"
        }
      },
      "description": "Create a new deadline",
      "resource": "deadline"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get deadline",
      "routing": {
        "request": {
          "url": "=/v1/akten/{{$parameter[\"laufendeNummer\"]}}/{{$parameter[\"bezugsJahr\"]}}/fristen/{{$parameter[\"id\"]}}",
          "method": "GET"
        }
      },
      "description": "Retrieve a single deadline",
      "resource": "deadline"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get deadlines",
      "routing": {
        "send": {
          "paginate": "={{ $parameter['returnAll'] }}"
        },
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "content"
              }
            }
          ]
        },
        "request": {
          "qs": {
            "size": "={{ $parameter['returnAll'] ? 100 : $parameter['size'] }}"
          },
          "url": "=/v1/fristen",
          "method": "GET",
          "arrayFormat": "repeat"
        },
        "operations": {
          "pagination": {
            "type": "generic",
            "properties": {
              "request": {
                "qs": {
                  "page": "={{ ($response.body?.number ?? -1) + 1 }}",
                  "size": "={{ $response.body?.size ?? 100 }}",
                  "sort": "={{ $request.qs?.sort }}",
                  "filter": "={{ $request.qs?.filter }}"
                }
              },
              "continue": "={{ !$response.body?.last }}"
            }
          }
        }
      },
      "description": "Retrieve many deadlines",
      "resource": "deadline"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update deadline",
      "routing": {
        "request": {
          "url": "=/v1/akten/{{$parameter[\"laufendeNummer\"]}}/{{$parameter[\"bezugsJahr\"]}}/fristen/{{$parameter[\"id\"]}}",
          "method": "PUT"
        }
      },
      "description": "Update an existing deadline",
      "resource": "deadline"
    },
    {
      "name": "Update Status",
      "value": "updateStatus",
      "action": "Update deadline status",
      "routing": {
        "request": {
          "url": "=/v1/akten/{{$parameter[\"laufendeNummer\"]}}/{{$parameter[\"bezugsJahr\"]}}/fristen/{{$parameter[\"id\"]}}/status/{{$parameter[\"status\"]}}",
          "method": "PUT"
        }
      },
      "description": "Change the status of a deadline",
      "resource": "deadline"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get department",
      "routing": {
        "request": {
          "url": "=/v1/info/kanzlei/dezernate/{{$parameter[\"id\"]}}",
          "method": "GET"
        }
      },
      "description": "Retrieves a department by ID",
      "resource": "department"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get departments",
      "routing": {
        "send": {
          "paginate": "={{ $parameter['returnAll'] }}"
        },
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "content"
              }
            }
          ]
        },
        "request": {
          "qs": {
            "size": "={{ $parameter['returnAll'] ? 100 : $parameter['size'] }}"
          },
          "url": "=/v1/info/kanzlei/dezernate",
          "method": "GET",
          "arrayFormat": "repeat"
        },
        "operations": {
          "pagination": {
            "type": "generic",
            "properties": {
              "request": {
                "qs": {
                  "page": "={{ ($response.body?.number ?? -1) + 1 }}",
                  "size": "={{ $response.body?.size ?? 100 }}",
                  "sort": "={{ $request.qs?.sort }}",
                  "filter": "={{ $request.qs?.filter }}"
                }
              },
              "continue": "={{ !$response.body?.last }}"
            }
          }
        }
      },
      "description": "Retrieves many departments",
      "resource": "department"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create document",
      "routing": {
        "request": {
          "url": "=/v1/akten/{{$parameter[\"laufendeNummer\"]}}/{{$parameter[\"bezugsJahr\"]}}/dokumente/neu",
          "method": "POST"
        }
      },
      "description": "Create a new document with template if supported. If no template is specified, a blank document will be created.",
      "resource": "document"
    },
    {
      "name": "Download",
      "value": "download",
      "action": "Download document",
      "routing": {
        "output": {
          "postReceive": [
            null
          ]
        },
        "request": {
          "url": "=/v1/documents/{{$parameter[\"id\"]}}",
          "method": "GET",
          "encoding": "arraybuffer",
          "returnFullResponse": true
        }
      },
      "description": "Download a single document",
      "resource": "document"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get document",
      "routing": {
        "request": {
          "url": "=/v1/akten/{{$parameter[\"laufendeNummer\"]}}/{{$parameter[\"bezugsJahr\"]}}/dokumente/{{$parameter[\"id\"]}}",
          "method": "GET"
        }
      },
      "description": "Get a single document",
      "resource": "document"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get documents",
      "routing": {
        "send": {
          "paginate": "={{ $parameter['returnAll'] }}"
        },
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "content"
              }
            }
          ]
        },
        "request": {
          "qs": {
            "size": "={{ $parameter['returnAll'] ? 50 : $parameter['size'] }}"
          },
          "url": "=/v1/akten/{{$parameter[\"laufendeNummer\"]}}/{{$parameter[\"bezugsJahr\"]}}/dokumente/uebersicht",
          "method": "GET",
          "arrayFormat": "repeat"
        },
        "operations": {
          "pagination": {
            "type": "generic",
            "properties": {
              "request": {
                "qs": {
                  "page": "={{ ($response.body?.number ?? -1) + 1 }}",
                  "size": "={{ $response.body?.size ?? 100 }}",
                  "sort": "={{ $request.qs?.sort }}",
                  "filter": "={{ $request.qs?.filter }}"
                }
              },
              "continue": "={{ !$response.body?.last }}"
            }
          }
        }
      },
      "description": "Retrieve many documents",
      "resource": "document"
    },
    {
      "name": "Search",
      "value": "search",
      "action": "Search documents",
      "routing": {
        "send": {
          "paginate": "={{ $parameter['returnAll'] }}"
        },
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "content"
              }
            }
          ]
        },
        "request": {
          "qs": {
            "size": "={{ $parameter['returnAll'] ? 20 : $parameter['size'] }}"
          },
          "url": "=/v1/documents/search",
          "method": "GET"
        },
        "operations": {
          "pagination": {
            "type": "generic",
            "properties": {
              "request": {
                "qs": {
                  "page": "={{ ($response.body?.number ?? -1) + 1 }}",
                  "size": "={{ $response.body?.size ?? 20 }}",
                  "aktennummer": "={{ $request.qs?.aktennummer }}",
                  "suchbegriff": "={{ $request.qs.suchbegriff }}"
                }
              },
              "continue": "={{ !$response.body?.last }}"
            }
          }
        }
      },
      "description": "Search documents with a search term. The search will be performed on the document attributes and content.",
      "resource": "document"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update document",
      "routing": {
        "request": {
          "url": "=/v1/documents/{{$parameter[\"id\"]}}/metadata",
          "method": "PUT"
        }
      },
      "description": "Update a single document",
      "resource": "document"
    },
    {
      "name": "Upload",
      "value": "upload",
      "action": "Upload document",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "=/v1/akten/{{$parameter.laufendeNummer}}/{{$parameter.bezugsJahr}}/dokumente",
          "method": "POST",
          "headers": {
            "Content-Type": "multipart/form-data"
          }
        }
      },
      "description": "Upload a document to a case",
      "resource": "document"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get document template",
      "routing": {
        "request": {
          "url": "=/v1/vorlagen/{{$parameter[\"id\"]}}",
          "method": "GET"
        }
      },
      "description": "Get a single document template",
      "resource": "documentTemplate"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get document templates",
      "routing": {
        "send": {
          "paginate": "={{ $parameter['returnAll'] }}"
        },
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "content"
              }
            }
          ]
        },
        "request": {
          "qs": {
            "size": "={{ $parameter['returnAll'] ? 50 : $parameter['size'] }}"
          },
          "url": "=/v1/vorlagen",
          "method": "GET",
          "arrayFormat": "repeat"
        },
        "operations": {
          "pagination": {
            "type": "generic",
            "properties": {
              "request": {
                "qs": {
                  "page": "={{ ($response.body?.number ?? -1) + 1 }}",
                  "size": "={{ $response.body?.size ?? 50 }}",
                  "sort": "={{ $request.qs?.sort }}",
                  "filter": "={{ $request.qs?.filter }}"
                }
              },
              "continue": "={{ !$response.body?.last }}"
            }
          }
        }
      },
      "description": "Retrieve many document templates",
      "resource": "documentTemplate"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create expense",
      "routing": {
        "request": {
          "url": "=/v1/akten/{{$parameter[\"laufendeNummer\"]}}/{{$parameter[\"bezugsJahr\"]}}/verguetungspositionen/eigene-auslagen",
          "method": "POST"
        }
      },
      "resource": "expense"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete expense",
      "routing": {
        "request": {
          "url": "=/v1/akten/{{$parameter[\"laufendeNummer\"]}}/{{$parameter[\"bezugsJahr\"]}}/verguetungspositionen/eigene-auslagen/{{$parameter[\"id\"]}}",
          "method": "DELETE"
        }
      },
      "resource": "expense"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get expense",
      "routing": {
        "request": {
          "url": "=/v1/akten/{{$parameter[\"laufendeNummer\"]}}/{{$parameter[\"bezugsJahr\"]}}/verguetungspositionen/eigene-auslagen/{{$parameter[\"id\"]}}",
          "method": "GET"
        }
      },
      "resource": "expense"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get expenses",
      "routing": {
        "send": {
          "paginate": "={{ $parameter['returnAll'] }}"
        },
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "content"
              }
            }
          ]
        },
        "request": {
          "qs": {
            "size": "={{ $parameter['returnAll'] ? 50 : $parameter['size'] }}"
          },
          "url": "=/v1/akten/{{$parameter[\"laufendeNummer\"]}}/{{$parameter[\"bezugsJahr\"]}}/verguetungspositionen/eigene-auslagen",
          "method": "GET",
          "arrayFormat": "repeat"
        },
        "operations": {
          "pagination": {
            "type": "generic",
            "properties": {
              "request": {
                "qs": {
                  "page": "={{ ($response.body?.number ?? -1) + 1 }}",
                  "size": "={{ $response.body?.size ?? 50 }}",
                  "sort": "={{ $request.qs?.sort }}",
                  "filter": "={{ $request.qs?.filter }}"
                }
              },
              "continue": "={{ !$response.body?.last }}"
            }
          }
        }
      },
      "resource": "expense"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update expense",
      "routing": {
        "request": {
          "url": "=/v1/akten/{{$parameter[\"laufendeNummer\"]}}/{{$parameter[\"bezugsJahr\"]}}/verguetungspositionen/eigene-auslagen/{{$parameter[\"id\"]}}",
          "method": "PUT"
        }
      },
      "resource": "expense"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create folder",
      "routing": {
        "request": {
          "url": "=/v1/akten/{{$parameter[\"laufendeNummer\"]}}/{{$parameter[\"bezugsJahr\"]}}/ordner",
          "method": "POST"
        }
      },
      "description": "Create a new folder in a case file",
      "resource": "folder"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get folder",
      "routing": {
        "request": {
          "url": "=/v1/akten/{{$parameter[\"laufendeNummer\"]}}/{{$parameter[\"bezugsJahr\"]}}/ordner/{{$parameter[\"id\"]}}",
          "method": "GET"
        }
      },
      "description": "Get a single folder",
      "resource": "folder"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get folders",
      "routing": {
        "send": {
          "paginate": "={{ $parameter['returnAll'] }}"
        },
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "content"
              }
            }
          ]
        },
        "request": {
          "qs": {
            "size": "={{ $parameter['returnAll'] ? 50 : $parameter['size'] }}"
          },
          "url": "=/v1/akten/{{$parameter[\"laufendeNummer\"]}}/{{$parameter[\"bezugsJahr\"]}}/ordner",
          "method": "GET",
          "arrayFormat": "repeat"
        },
        "operations": {
          "pagination": {
            "type": "generic",
            "properties": {
              "request": {
                "qs": {
                  "page": "={{ ($response.body?.number ?? -1) + 1 }}",
                  "size": "={{ $response.body?.size ?? 50 }}",
                  "sort": "={{ $request.qs?.sort }}",
                  "filter": "={{ $request.qs?.filter }}"
                }
              },
              "continue": "={{ !$response.body?.last }}"
            }
          }
        }
      },
      "description": "Retrieve folder structure of a case file",
      "resource": "folder"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get invoices",
      "routing": {
        "send": {
          "paginate": "={{ $parameter['returnAll'] }}"
        },
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "content"
              }
            }
          ]
        },
        "request": {
          "qs": {
            "size": "={{ $parameter['returnAll'] ? 50 : $parameter['size'] }}"
          },
          "url": "=/v1/rechnungen",
          "method": "GET",
          "arrayFormat": "repeat"
        },
        "operations": {
          "pagination": {
            "type": "generic",
            "properties": {
              "request": {
                "qs": {
                  "page": "={{ ($response.body?.number ?? -1) + 1 }}",
                  "size": "={{ $response.body?.size ?? 50 }}",
                  "sort": "={{ $request.qs?.sort }}",
                  "filter": "={{ $request.qs?.filter }}"
                }
              },
              "continue": "={{ !$response.body?.last }}"
            }
          }
        }
      },
      "description": "Retrieve many invoices",
      "resource": "invoice"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get invoice",
      "routing": {
        "request": {
          "url": "=/v1/rechnungen/{{$parameter[\"id\"]}}",
          "method": "GET"
        }
      },
      "description": "Retrieve a single invoice",
      "resource": "invoice"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create note",
      "routing": {
        "request": {
          "url": "=/v1/akten/{{$parameter[\"laufendeNummer\"]}}/{{$parameter[\"bezugsJahr\"]}}/notizen",
          "method": "POST"
        }
      },
      "description": "Create a new note",
      "resource": "note"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get note",
      "routing": {
        "request": {
          "url": "=/v1/akten/{{$parameter[\"laufendeNummer\"]}}/{{$parameter[\"bezugsJahr\"]}}/notizen/{{$parameter[\"id\"]}}",
          "method": "GET"
        }
      },
      "description": "Retrieve a single note",
      "resource": "note"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get notes",
      "routing": {
        "send": {
          "paginate": "={{ $parameter['returnAll'] }}"
        },
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "content"
              }
            }
          ]
        },
        "request": {
          "qs": {
            "size": "={{ $parameter['returnAll'] ? 100 : $parameter['size'] }}"
          },
          "url": "=/v1/akten/{{$parameter[\"laufendeNummer\"]}}/{{$parameter[\"bezugsJahr\"]}}/notizen",
          "method": "GET",
          "arrayFormat": "repeat"
        },
        "operations": {
          "pagination": {
            "type": "generic",
            "properties": {
              "request": {
                "qs": {
                  "page": "={{ ($response.body?.number ?? -1) + 1 }}",
                  "size": "={{ $response.body?.size ?? 100 }}",
                  "sort": "={{ $request.qs?.sort }}",
                  "filter": "={{ $request.qs?.filter }}"
                }
              },
              "continue": "={{ !$response.body?.last }}"
            }
          }
        }
      },
      "description": "Retrieve many notes",
      "resource": "note"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update note",
      "routing": {
        "request": {
          "url": "=/v1/akten/{{$parameter[\"laufendeNummer\"]}}/{{$parameter[\"bezugsJahr\"]}}/notizen/{{$parameter[\"id\"]}}",
          "method": "PUT"
        }
      },
      "description": "Update an existing note",
      "resource": "note"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create resubmission",
      "routing": {
        "request": {
          "url": "=/v1/akten/{{$parameter[\"laufendeNummer\"]}}/{{$parameter[\"bezugsJahr\"]}}/wiedervorlagen",
          "method": "POST"
        }
      },
      "description": "Create a new resubmission",
      "resource": "resubmission"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get resubmission",
      "routing": {
        "request": {
          "url": "=/v1/akten/{{$parameter[\"laufendeNummer\"]}}/{{$parameter[\"bezugsJahr\"]}}/wiedervorlagen/{{$parameter[\"id\"]}}",
          "method": "GET"
        }
      },
      "description": "Retrieve a single resubmission",
      "resource": "resubmission"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get resubmissions",
      "routing": {
        "send": {
          "paginate": "={{ $parameter['returnAll'] }}"
        },
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "content"
              }
            }
          ]
        },
        "request": {
          "qs": {
            "size": "={{ $parameter['returnAll'] ? 100 : $parameter['size'] }}"
          },
          "url": "=/v1/wiedervorlagen",
          "method": "GET",
          "arrayFormat": "repeat"
        },
        "operations": {
          "pagination": {
            "type": "generic",
            "properties": {
              "request": {
                "qs": {
                  "page": "={{ ($response.body?.number ?? -1) + 1 }}",
                  "size": "={{ $response.body?.size ?? 100 }}",
                  "sort": "={{ $request.qs?.sort }}",
                  "filter": "={{ $request.qs?.filter }}"
                }
              },
              "continue": "={{ !$response.body?.last }}"
            }
          }
        }
      },
      "description": "Retrieve many resubmissions",
      "resource": "resubmission"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update resubmission",
      "routing": {
        "request": {
          "url": "=/v1/akten/{{$parameter[\"laufendeNummer\"]}}/{{$parameter[\"bezugsJahr\"]}}/wiedervorlagen/{{$parameter[\"id\"]}}",
          "method": "PUT"
        }
      },
      "description": "Update an existing resubmission",
      "resource": "resubmission"
    },
    {
      "name": "Update Status",
      "value": "updateStatus",
      "action": "Update resubmission status",
      "routing": {
        "request": {
          "url": "=/v1/akten/{{$parameter[\"laufendeNummer\"]}}/{{$parameter[\"bezugsJahr\"]}}/wiedervorlagen/{{$parameter[\"id\"]}}/status/{{$parameter[\"status\"]}}",
          "method": "PUT"
        }
      },
      "description": "Change the status of a resubmission",
      "resource": "resubmission"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create rvg fee",
      "routing": {
        "request": {
          "url": "=/v1/akten/{{$parameter[\"laufendeNummer\"]}}/{{$parameter[\"bezugsJahr\"]}}/verguetungspositionen/rvg",
          "method": "POST"
        }
      },
      "resource": "rvg"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete rvg fee",
      "routing": {
        "request": {
          "url": "=/v1/akten/{{$parameter[\"laufendeNummer\"]}}/{{$parameter[\"bezugsJahr\"]}}/verguetungspositionen/rvg/{{$parameter[\"id\"]}}",
          "method": "DELETE"
        }
      },
      "resource": "rvg"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get rvg fee",
      "routing": {
        "request": {
          "url": "=/v1/akten/{{$parameter[\"laufendeNummer\"]}}/{{$parameter[\"bezugsJahr\"]}}/verguetungspositionen/rvg/{{$parameter[\"id\"]}}",
          "method": "GET"
        }
      },
      "resource": "rvg"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get rvg fees",
      "routing": {
        "send": {
          "paginate": "={{ $parameter['returnAll'] }}"
        },
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "content"
              }
            }
          ]
        },
        "request": {
          "qs": {
            "size": "={{ $parameter['returnAll'] ? 100 : $parameter['size'] }}"
          },
          "url": "=/v1/akten/{{$parameter[\"laufendeNummer\"]}}/{{$parameter[\"bezugsJahr\"]}}/verguetungspositionen/rvg",
          "method": "GET",
          "arrayFormat": "repeat"
        },
        "operations": {
          "pagination": {
            "type": "generic",
            "properties": {
              "request": {
                "qs": {
                  "page": "={{ ($response.body?.number ?? -1) + 1 }}",
                  "size": "={{ $response.body?.size ?? 100 }}",
                  "sort": "={{ $request.qs?.sort }}",
                  "filter": "={{ $request.qs?.filter }}"
                }
              },
              "continue": "={{ !$response.body?.last }}"
            }
          }
        }
      },
      "resource": "rvg"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update rvg fee",
      "routing": {
        "request": {
          "url": "=/v1/akten/{{$parameter[\"laufendeNummer\"]}}/{{$parameter[\"bezugsJahr\"]}}/verguetungspositionen/rvg/{{$parameter[\"id\"]}}",
          "method": "PUT"
        }
      },
      "resource": "rvg"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create task",
      "routing": {
        "request": {
          "url": "=/v1/aufgaben",
          "method": "POST"
        }
      },
      "description": "Create a new task",
      "resource": "task"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get task",
      "routing": {
        "request": {
          "url": "=/v1/aufgaben/{{$parameter[\"id\"]}}",
          "method": "GET"
        }
      },
      "description": "Retrieve a single task",
      "resource": "task"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get tasks",
      "routing": {
        "send": {
          "paginate": "={{ $parameter['returnAll'] }}"
        },
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "content"
              }
            }
          ]
        },
        "request": {
          "qs": {
            "size": "={{ $parameter['returnAll'] ? 100 : $parameter['size'] }}"
          },
          "url": "=/v1/aufgaben",
          "method": "GET",
          "arrayFormat": "repeat"
        },
        "operations": {
          "pagination": {
            "type": "generic",
            "properties": {
              "request": {
                "qs": {
                  "page": "={{ ($response.body?.number ?? -1) + 1 }}",
                  "size": "={{ $response.body?.size ?? 100 }}",
                  "sort": "={{ $request.qs?.sort }}",
                  "filter": "={{ $request.qs?.filter }}"
                }
              },
              "continue": "={{ !$response.body?.last }}"
            }
          }
        }
      },
      "description": "Retrieve many tasks",
      "resource": "task"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update task",
      "routing": {
        "request": {
          "url": "=/v1/aufgaben/{{$parameter[\"id\"]}}",
          "method": "PUT"
        }
      },
      "description": "Update an existing task",
      "resource": "task"
    },
    {
      "name": "Update Status",
      "value": "updateStatus",
      "action": "Update task status",
      "routing": {
        "request": {
          "url": "=/v1/aufgaben/{{$parameter[\"id\"]}}/status/{{$parameter[\"status\"]}}",
          "method": "PUT"
        }
      },
      "description": "Change the status of a task",
      "resource": "task"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create third party cost",
      "routing": {
        "request": {
          "url": "=/v1/akten/{{$parameter[\"laufendeNummer\"]}}/{{$parameter[\"bezugsJahr\"]}}/verguetungspositionen/fremde-auslagen",
          "method": "POST"
        }
      },
      "resource": "thirdPartyCost"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete third party cost",
      "routing": {
        "request": {
          "url": "=/v1/akten/{{$parameter[\"laufendeNummer\"]}}/{{$parameter[\"bezugsJahr\"]}}/verguetungspositionen/fremde-auslagen/{{$parameter[\"id\"]}}",
          "method": "DELETE"
        }
      },
      "resource": "thirdPartyCost"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get third party cost",
      "routing": {
        "request": {
          "url": "=/v1/akten/{{$parameter[\"laufendeNummer\"]}}/{{$parameter[\"bezugsJahr\"]}}/verguetungspositionen/fremde-auslagen/{{$parameter[\"id\"]}}",
          "method": "GET"
        }
      },
      "resource": "thirdPartyCost"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get third party costs",
      "routing": {
        "send": {
          "paginate": "={{ $parameter['returnAll'] }}"
        },
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "content"
              }
            }
          ]
        },
        "request": {
          "qs": {
            "size": "={{ $parameter['returnAll'] ? 100 : $parameter['size'] }}"
          },
          "url": "=/v1/akten/{{$parameter[\"laufendeNummer\"]}}/{{$parameter[\"bezugsJahr\"]}}/verguetungspositionen/fremde-auslagen",
          "method": "GET",
          "arrayFormat": "repeat"
        },
        "operations": {
          "pagination": {
            "type": "generic",
            "properties": {
              "request": {
                "qs": {
                  "page": "={{ ($response.body?.number ?? -1) + 1 }}",
                  "size": "={{ $response.body?.size ?? 100 }}",
                  "sort": "={{ $request.qs?.sort }}",
                  "filter": "={{ $request.qs?.filter }}"
                }
              },
              "continue": "={{ !$response.body?.last }}"
            }
          }
        }
      },
      "resource": "thirdPartyCost"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update third party cost",
      "routing": {
        "request": {
          "url": "=/v1/akten/{{$parameter[\"laufendeNummer\"]}}/{{$parameter[\"bezugsJahr\"]}}/verguetungspositionen/fremde-auslagen/{{$parameter[\"id\"]}}",
          "method": "PUT"
        }
      },
      "resource": "thirdPartyCost"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a user",
      "routing": {
        "request": {
          "url": "=/v1/benutzer/{{$parameter.userId}}",
          "method": "GET"
        }
      },
      "description": "Get the data of a single user",
      "resource": "user"
    },
    {
      "name": "Get Me",
      "value": "getCurrent",
      "action": "Get me",
      "routing": {
        "request": {
          "url": "=/v1/info/me",
          "method": "GET"
        }
      },
      "description": "Get the data of the current authenticated user",
      "resource": "user"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many users",
      "routing": {
        "send": {
          "paginate": "={{ $parameter['returnAll'] }}"
        },
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "content"
              }
            }
          ]
        },
        "request": {
          "qs": {
            "size": "={{ $parameter['returnAll'] ? 100 : $parameter['size'] }}"
          },
          "url": "=/v1/benutzer",
          "method": "GET",
          "arrayFormat": "repeat"
        },
        "operations": {
          "pagination": {
            "type": "generic",
            "properties": {
              "request": {
                "qs": {
                  "page": "={{ ($response.body?.number ?? -1) + 1 }}",
                  "size": "={{ $response.body?.size ?? 100 }}",
                  "sort": "={{ $request.qs?.sort }}",
                  "filter": "={{ $request.qs?.filter }}"
                }
              },
              "continue": "={{ !$response.body?.last }}"
            }
          }
        }
      },
      "description": "Get the data of multiple users",
      "resource": "user"
    }
  ]

npm_readme:
  # n8n-nodes-actaport

  ![n8n.io - Workflow Automation](https://raw.githubusercontent.com/n8n-io/n8n/master/assets/n8n-logo.png)

  This is an n8n community node. It lets you use Actaport in your n8n workflows.

  Actaport is a cloud-based legal management platform that helps law firms streamline their daily work.

  [n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/sustainable-use-license/) workflow automation
  platform.

  [Installation](#installation)
  [Operations](#operations)
  [Credentials](#credentials)
  [Compatibility](#compatibility)
  [Usage](#usage)
  [Resources](#resources)
  [Version history](#version-history)

  ## Installation

  Follow the [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) in the n8n community
  nodes documentation.

  1. Go to **Settings > Community Nodes**.
  2. Select **Install**.
  3. Enter `@actaport/n8n-nodes-actaport` in **Enter npm package name**.
  4. Agree to the [risks](https://docs.n8n.io/integrations/community-nodes/risks/) of using community nodes: select **I
     understand the risks of installing unverified code from a public source**.
  5. Select **Install**.

  After installing the node, you can use it like any other node. n8n displays the node in search results in the **Nodes**
  panel.

  ## Operations

  | Resource                              | Supported Operations                          |
  |---------------------------------------|-----------------------------------------------|
  | **Additional Information Categories** | get, getAll                                   |
  | **Case File**                         | get, getAll, create, update                   |
  | **Collision Check**                   | get                                           |
  | **Contact**                           | get, getAll, create, update, search           |
  | **Deadline**                          | get, getAll, create, update, updateStatus     |
  | **Department**                        | get, getAll                                   |
  | **Document**                          | get, getAll, update, download, create, search |
  | **Document Template**                 | get, getAll                                   |
  | **Expense**                           | get, getAll, create, update, delete           |
  | **Folder**                            | get, getAll, create                           |
  | **Invoice**                           | get, getAll                                   |
  | **Note**                              | get, getAll, create, update                   |
  | **Resubmission**                      | get, getAll, create, update, updateStatus     |
  | **RVG Fee**                           | get, getAll, create, update, delete           |
  | **Task**                              | get, getAll, create, update, updateStatus     |
  | **Third Party Cost**                  | get, getAll, create, update, delete           |
  | **User**                              | get, getMe, getAll                            |

  ## Credentials

  ### Prerequisites
  1. An active Actaport account. If you don't have one, sign up at [Actaport](https://www.actaport.de/).
  2. API access enabled for your Actaport account. Contact [Actaport support](https://actaport.zendesk.com/hc/de/requests/new) if you need assistance with this step.

  ### Setting up Actaport credentials in n8n
  1. In n8n, locate the **Credentials** section and click on **Create credential**.
  2. Select **Actaport OAuth2 API** from the list.
  3. Fill in your realm once prompted and click on **Connect my account**.
  4. Once redirected to the Actaport login page, enter your Actaport credentials to authorize n8n.
  5. After successful authentication, n8n will store the access token securely for future API requests

  ![img.png](assets/add_credentials.png)
  ![img_1.png](assets/login_prompt.png)
  ![img_2.png](assets/successful_login.png)
  ## Compatibility

  * n8n Nodes API version: 1
  * Node.js: >= 20.15


  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  * [Actaport Homepage](https://www.actaport.de/)
  * [Actaport Developer Documentation](https://api.actaport.de/api-docs)
  * [Actaport REST API Reference](https://api.actaport.de/api-docs/rest-api/reference/public)
  * [Actaport Technical Support](https://www.actaport.de/kontakt/api-anfrage)

  # Version history
  * 0.1.0 - Initial release of the n8n Actaport node, supporting multiple resources and operations (see [Operations
    section](#operations) for details).

ai_documentation_summary:
  {"purpose":"This n8n community node enables workflow automation by interacting with the Actaport cloud-based legal management platform API.","capabilities":["Retrieve additional information categories","Manage case files (get, create, update)","Perform collision checks","Search and manage contacts","Handle deadlines (get, create, update, update status)","Manage departments","Retrieve and download documents","Manage document templates","Process expenses (create, update, delete)","Manage folders"],"authentication":"OAuth2","commonUseCases":["Automating legal case management workflows","Syncing contact information between systems","Processing deadline updates and status changes","Downloading and managing legal documents","Tracking expenses and third-party costs"],"limitations":["Requires an active Actaport account with API access enabled","Node.js version 20.15 or higher is required","Requires manual setup of credentials in n8n before use"],"relatedNodes":["n8n HTTP Request node","n8n Webhook node","n8n Code node"]}


node_type: n8n-nodes-swiftgum-trigger.swiftgumTrigger
package_name: n8n-nodes-swiftgum-trigger
display_name: Swiftgum Trigger
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
outputs:
  [
  {
  "type": "main"
  }
  ]

updated_at: 2026-04-16 09:43:36
author_name: arthurbk
author_github_url: https://github.com/Swiftgum/n8n-nodes-swiftgum.git
npm_package_name: n8n-nodes-swiftgum-trigger
npm_version: 0.1.7
community_fetched_at: 2026-04-16T09:43:36.421Z
ai_summary_generated_at: 2026-03-25 22:51:43
description:
  Listen for Swiftgum PDF extraction webhooks, filtered by schema. To test, upload a PDF in your Swiftgum workspace — this node will emit the extracted data once processed.

npm_readme:
  ![Swiftgum n8n Node](https://user-images.githubusercontent.com/10284570/173569848-c624317f-42b1-45a6-ab09-f0ea3c247648.png)

  # n8n-nodes-swiftgum-trigger

  A custom [n8n](https://n8n.io) trigger node built by Swiftgum.

  This node allows you to trigger workflows from Swiftgum-related events or integrations.

  ---

  ## 🚀 Features

  - Custom trigger node for Swiftgum-specific events
  - Built for compatibility with the latest n8n versions
  - Ready to use in your local or cloud-hosted n8n instance

  ---

  ## 📚 How to Use the Swiftgum Trigger Node

  ### 1. Add the Swiftgum Trigger to Your Workflow
  - Search for `Swiftgum Trigger` in the n8n node selector.
  - Add it as the starting node of your workflow.

  ### 2. Set Up Credentials  
  - Go to **Credentials** in n8n and create new credentials with your Swiftgum API Key.  
  - Click **Test Credentials** to ensure your API key is valid (it performs a call to `/schemas`).

  ### 3. (Optional) Filter by Schemas  
  - In the node configuration, select one or more **Schema Names or IDs** to only trigger on events matching these schemas.
  - Leave it blank to receive all events (`job.processed`).

  ### 4. Trigger Events
  - Upload a PDF document in your Swiftgum workspace.
  - Once the document is processed, the node will emit structured data extracted from the document.

  ---

  ### 📦 Example Event Payload

  ```json
  {
    "id": "file-123",
    "name": "document.pdf",
    "createdAt": "2024-06-01T12:00:00.000Z",
    "receivedAt": "2024-06-01T12:00:00.000Z",
    "updatedAt": "2024-06-01T12:05:00.000Z",
    "job": {
      "id": "job-123",
      "status": "completed",
      "schema": {
        "type": "object",
        "properties": {
          "fieldA": { "type": "number", "title": "Surface" }
        }
      },
      "result": { "fieldA": 350 }
    }
  }
  ```

  ---

  ### 🔐 Webhook Security

  - Each webhook subscription generates a **signing secret** (`secret`) when created.
  - Verify the authenticity of incoming events using the `X-Swiftgum-Signature` header.
  - The signature is an HMAC-SHA256 hash of the raw body using your secret.

  Example verification (in Node.js):

  ```ts
  const crypto = require('crypto');
  const expectedSignature = crypto
    .createHmac('sha256', secret)
    .update(rawBody)
    .digest('hex');

  if (receivedSignature !== expectedSignature) {
    throw new Error('Invalid signature');
  }
  ```

  ---

  ## 🧰 Installation

  You can install this package directly via the n8n UI or CLI.

  ### Via n8n UI

  Paste this URL into the **Install from npm** input:

  ```
  https://www.npmjs.com/package/n8n-nodes-swiftgum-trigger
  ```

  ### Via CLI (inside your custom n8n setup)

  ```bash
  pnpm add n8n-nodes-swiftgum-trigger
  ```

  ---

  ## 🧪 Local Development

  To test this node locally:

  ```bash
  pnpm install
  pnpm build
  ```

  You can also use our internal dev environment with Docker:

  ```bash
  ./fetch-node.sh
  docker compose up --build
  ```

  ---

  ## 🗂 File Structure

  ```
  n8n-nodes-swiftgum-trigger/
  ├── credentials/           # Custom credential classes
  ├── nodes/                 # Swiftgum Trigger node definition
  ├── dist/                  # Compiled output
  ├── gulpfile.js            # Icon handling
  ├── tsconfig.json
  ├── package.json
  └── README.md
  ```

  ---

  ## 🧑‍💻 Contributing

  Pull requests and contributions are welcome! Please:
  - Follow the code structure in `nodes/` and `credentials/`
  - Run `pnpm lint` before submitting
  - Build locally and test in a running n8n instance

  ---

  ## 🚀 Publishing

  If you're making changes to this node and want to publish them to npm:

  1. Bump the version:
     ```bash
     pnpm version patch   # or minor / major
     ```

  2. Publish to npm:
     ```bash
     pnpm publish --access public
     ```

  > 📦 npm does not allow publishing the same version twice. Always increment the version before running `pnpm publish`.

  ---

  ## 📄 License

  [MIT](LICENSE.md)

ai_documentation_summary:
  {"purpose":"A custom n8n trigger node that listens for Swiftgum PDF extraction webhooks and emits structured data once documents are processed.","capabilities":["Listen for Swiftgum PDF extraction events","Filter incoming events by specific Schema Names or IDs","Emit structured JSON data containing document metadata and extraction results","Support HMAC-SHA256 signature verification for webhook security"],"authentication":"API Key required (Swiftgum API Key)","commonUseCases":["Automate workflows triggered by PDF document processing in Swiftgum","Extract and route structured data from PDFs to other nodes or services","Monitor document processing status and results"],"limitations":["Requires Swiftgum workspace and API key setup","Signature verification requires manual implementation in downstream nodes (Node.js example provided)"],"relatedNodes":["n8n HTTP Request","n8n Set","n8n Function"]}


node_type: n8n-nodes-deliverect.deliverectTrigger
package_name: n8n-nodes-deliverect
display_name: Deliverect Order Webhook Trigger
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: deliverect-stefaang
author_github_url: https://github.com/Deliverect/
npm_package_name: n8n-nodes-deliverect
npm_version: 0.1.6
community_fetched_at: 2026-04-16T09:43:36.422Z
ai_summary_generated_at: 2026-03-25 22:51:43
description:
  Triggers the workflow when order events are received from Deliverect. Handles new orders, order status updates, and courier/delivery updates.

npm_readme:
  # n8n-nodes-deliverect

  This is an n8n community node. It lets you use [Deliverect](https://developers.deliverect.com/) in your n8n workflows.


  [n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/reference/license/) workflow automation platform.

  [Installation](#installation)  
  [Operations](#operations)  
  [Credentials](#credentials)
  [Compatibility](#compatibility)  
  [Usage](#usage)
  [Resources](#resources)  
  [Version history](#version-history)

  ## Installation

  Follow the [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) in the n8n community nodes documentation.

  ## Operations

  Store API: 

  * get stores
  * get snoozed products
  * set snoozed products

  POSAPI

  * sync products

  Channel API

  * publish menu

  ## Credentials

  [Request](https://developers.deliverect.com/docs/getting-started) a client credentials keypair with Deliverect API support.

  Bearer token support is WIP.

  ## Compatibility

  Tested with N8N 1.97.1

  ## Usage

  If you're new with N8N, [try it out](https://docs.n8n.io/try-it-out/) first.

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  * [Deliverect API documentation](https://developers.deliverect.com)

  ## Version history

  v1.0: Initial version

ai_documentation_summary:
  {"purpose":"Triggers n8n workflows when order events, status updates, or courier/delivery updates are received from Deliverect.","capabilities":["Monitor new orders","Track order status updates","Handle courier and delivery updates","Retrieve stores","Retrieve snoozed products","Set snoozed products","Sync products via POSAPI","Publish menu via Channel API"],"authentication":"API key required (Client credentials keypair)","commonUseCases":["Automate order processing upon delivery confirmation","Update inventory based on order status changes","Trigger notifications for delivery updates","Sync product data between POS and delivery systems"],"limitations":["Bearer token support is currently in progress (WIP)","Limited to Deliverect-specific operations"],"relatedNodes":["Deliverect Store","Deliverect Product","Deliverect Order","Deliverect Courier"]}


node_type: @meistrari/n8n-nodes-tela.tela
package_name: @meistrari/n8n-nodes-tela
display_name: Tela
description: Integrates with Tela to run AI-driven workflows and automation tasks
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: 0xthierry
author_github_url: https://github.com/meistrari/n8n-nodes-tela.git
npm_package_name: @meistrari/n8n-nodes-tela
npm_version: 1.5.0
community_fetched_at: 2026-04-16T09:43:36.423Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "canvas",
      "options": [
        {
          "name": "Canvas",
          "value": "canvas"
        }
      ],
      "description": "The resource to operate on",
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "execute",
      "options": [
        {
          "name": "Execute",
          "value": "execute",
          "action": "Execute a canvas",
          "description": "Execute a canvas with variables"
        },
        {
          "name": "Execute Workstation",
          "value": "executeWorkstation",
          "action": "Execute workstation task",
          "description": "Create a task in the workstation dashboard"
        },
        {
          "name": "Get Completion",
          "value": "getCompletion",
          "action": "Get completion status",
          "description": "Get the result of an async completion"
        }
      ],
      "description": "The operation to perform",
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "canvas"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Execute",
      "value": "execute",
      "action": "Execute a canvas",
      "description": "Execute a canvas with variables",
      "resource": "canvas"
    },
    {
      "name": "Execute Workstation",
      "value": "executeWorkstation",
      "action": "Execute workstation task",
      "description": "Create a task in the workstation dashboard",
      "resource": "canvas"
    },
    {
      "name": "Get Completion",
      "value": "getCompletion",
      "action": "Get completion status",
      "description": "Get the result of an async completion",
      "resource": "canvas"
    }
  ]

npm_readme:
  # n8n-nodes-tela

  This is an n8n community node that provides seamless integration with the Tela API. It allows you to interact with Tela projects and canvases in your n8n workflows, enabling dynamic content generation and workflow automation.

  ![n8n.io - Workflow Automation](https://raw.githubusercontent.com/n8n-io/n8n/master/assets/n8n-logo.png)

  ## TL;DR

  Don't want to read? Import the sample workflow **"Tela Canvas Execution with Dynamic Variables"** to test this node with real Tela API integration.

  ## What This Node Does

  The Tela node enables you to:

  - **Execute Tela Canvases**: Run AI-powered canvases with dynamic variables and get results
  - **Dynamic Variable Handling**: Automatically detect and configure canvas variables
  - **File Upload Support**: Handle file uploads for canvas processing
  - **Project Management**: List and manage Tela projects and their canvases
  - **Workflow Integration**: Seamlessly integrate Tela AI workflows into your n8n automation

  ## Installation

  ### Community Nodes (Recommended)

  1. Go to **Settings > Community Nodes**
  2. Select **Install**
  3. Enter `@meistrari/n8n-nodes-tela` as the package name
  4. Agree to the [risks](https://docs.n8n.io/integrations/community-nodes/risks/) of using community nodes
  5. Select **Install**

  ### Manual Installation

  For self-hosted n8n instances:

  ```bash
  npm install @meistrari/n8n-nodes-tela
  ```

  For Docker installations, follow the [custom nodes guide](https://docs.n8n.io/integrations/creating-nodes/deploy/install-private-nodes/).

  ## Configuration

  ### 1. Create Tela API Credentials

  1. Create a new credential of type **"Tela API"**
  2. Enter your Tela API key (find this in your [Tela dashboard](https://app.tela.com))
  3. Test the connection to verify it works

  ### 2. Configure the Node

  1. **Project**: Select the project containing your canvas
  2. **Canvas**: Choose the specific canvas to execute
  3. **Variables**: Configure dynamic fields based on your canvas configuration

  ## Operations

  ### Execute Canvas

  The main operation that runs your Tela canvas with the specified variables and returns the AI-generated results.

  **Parameters:**

  | Field              | Type    | Required | Description                                                                 |
  | ------------------ | ------- | -------- | --------------------------------------------------------------------------- |
  | **Project**        | Options | Yes      | Select the project containing your canvas                                   |
  | **Canvas**         | Options | Yes      | Select the canvas to execute                                                |
  | **Variables**      | Collection | No    | Dynamic fields based on your canvas configuration                           |
  | **Async Execution** | Boolean | No      | When enabled, returns immediately with completion ID instead of waiting     |

  **Use Cases:**

  - Generate dynamic content for emails
  - Create personalized marketing materials
  - Process documents with AI assistance
  - Generate reports based on input data

  ### Execute Workstation

  Create a task in the Tela Workstation dashboard. Tasks are visible in the Tela web interface and can be reviewed, approved, or processed manually.

  **Parameters:**

  | Field         | Type       | Required | Description                                       |
  | ------------- | ---------- | -------- | ------------------------------------------------- |
  | **Project**   | Options    | Yes      | Select the project containing your canvas         |
  | **Canvas**    | Options    | Yes      | Select the canvas to execute                      |
  | **Label**     | String     | No       | Optional label for the workstation task           |
  | **Variables** | Collection | No       | Dynamic fields based on your canvas configuration |

  **Response:**

  - Returns the full API response object

  **Use Cases:**

  - Create tasks for human review in Tela dashboard
  - Queue AI-generated content for approval workflows
  - Build hybrid human-AI pipelines with manual checkpoints

  ### Get Completion

  Retrieve the result of an async canvas execution. Use this operation to poll for completion status when using async execution.

  **Parameters:**

  | Field            | Type   | Required | Description                              |
  | ---------------- | ------ | -------- | ---------------------------------------- |
  | **Completion ID** | String | Yes      | The ID returned from async execution     |

  **Response:**

  - Returns the full API response object with `id`, `status`, and `outputContent`

  **Use Cases:**

  - Poll for long-running canvas executions
  - Build async workflows with wait loops
  - Handle high-latency AI processing without timeouts

  ## Node Reference

  ### Credentials

  | Field       | Description                           |
  | ----------- | ------------------------------------- |
  | **API Key** | Your Tela API key from your dashboard |

  ### Parameters

  | Field         | Type       | Required | Description                                       |
  | ------------- | ---------- | -------- | ------------------------------------------------- |
  | **Project**   | Options    | Yes      | Select the project containing your canvas         |
  | **Canvas**    | Options    | Yes      | Select the canvas to execute                      |
  | **Variables** | Collection | No       | Dynamic fields based on your canvas configuration |

  ## Usage Examples

  ### Example 1: Basic Canvas Execution

  **Input Data:**

  ```json
  {
    "customerName": "John Doe",
    "productType": "Premium Subscription",
    "monthlyAmount": 99.99
  }
  ```

  **Canvas Variables:**

  - `customer_name`: John Doe
  - `product_type`: Premium Subscription
  - `monthly_amount`: 99.99

  **Result:** AI-generated personalized content based on your canvas configuration.

  ### Example 2: File Processing

  **Input Data:**

  ```json
  {
    "document": "binary_file_data",
    "processingType": "summarize"
  }
  ```

  **Canvas Variables:**

  - `document`: [File upload]
  - `processing_type`: summarize

  **Result:** AI-processed document with summary or analysis.

  ### Example 3: Dynamic Content Generation

  **Input Data:**

  ```json
  {
    "industry": "Technology",
    "companySize": "100-500 employees",
    "challenge": "Digital transformation"
  }
  ```

  **Canvas Variables:**

  - `industry`: Technology
  - `company_size`: 100-500 employees
  - `challenge`: Digital transformation

  **Result:** Tailored content addressing specific business challenges.

  ## Sample Workflows

  ### Workflow 1: Automated Customer Onboarding

  1. **Webhook** receives new customer signup
  2. **Tela** generates personalized welcome email
  3. **Send Email** delivers the generated content

  ### Workflow 2: Document Processing Pipeline

  1. **File Upload** receives document
  2. **Tela** processes and analyzes document
  3. **Database** stores processed results
  4. **Notification** sends completion alert

  ### Workflow 3: Marketing Campaign Generator

  1. **CRM** provides customer segments
  2. **Tela** generates personalized campaigns
  3. **Marketing Platform** deploys campaigns
  4. **Analytics** tracks performance

  ## Advanced Features

  ### Dynamic Variable Detection

  The node automatically detects canvas variables and their types:

  - **Text variables**: Standard string inputs
  - **File variables**: Automatic file upload handling
  - **Required fields**: Clearly marked in the interface

  ### Smart File Handling

  - Supports multiple file formats
  - Automatic MIME type detection
  - Secure file upload to Tela servers
  - Binary data processing from n8n workflows

  ### Load Options

  - **Projects**: Dynamically loads available projects
  - **Canvases**: Loads canvases based on selected project
  - **Variables**: Auto-populates variable fields based on canvas

  ## Compatibility

  - **n8n Version**: 0.174.0 or later
  - **Node.js**: 18.0.0 or later
  - **npm**: 8.0.0 or later
  - **Platforms**: n8n Cloud, Self-hosted instances

  ## Troubleshooting

  ### Common Issues

  1. **API Key Invalid**

     - Verify your Tela API key is correct
     - Check if the key has expired
     - Ensure proper permissions

  2. **Project Not Loading**

     - Verify API key has access to projects
     - Check Tela API status
     - Refresh credentials

  3. **Canvas Execution Fails**
     - Verify all required variables are set
     - Check canvas configuration in Tela
     - Review API response for error details

  ### Error Messages

  - `Failed to load projects`: Check API key and permissions
  - `Failed to load canvases`: Verify project ID and access
  - `Failed to execute canvas`: Review variable configuration

  ## Resources

  - [n8n Community Nodes Documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [Tela API Documentation](https://docs.tela.com)
  - [n8n Workflow Automation](https://n8n.io)
  - [Community Support](https://community.n8n.io)

  ## Support

  ### Getting Help

  - **GitHub Issues**: [Report bugs and request features](https://github.com/meistrari/n8n-nodes-tela/issues)
  - **n8n Community**: [Ask questions in the community](https://community.n8n.io)
  - **Documentation**: [Check the comprehensive docs](https://docs.n8n.io)

  ## Development

  ### Local Development

  ```bash
  # Clone the repository
  git clone https://github.com/meistrari/n8n-nodes-tela.git
  cd n8n-nodes-tela

  # Install dependencies
  npm install

  # Build the project
  npm run build

  # Link locally for testing
  npm link
  ```

  ### Testing

  ```bash
  # Run tests
  npm test

  # Build and test
  npm run build && npm test
  ```

  ## Changelog

  ### Version 1.5.0

  **Improved Binary File Handling**

  #### Improvements

  - **Uses n8n's official helper**: Now uses `helpers.getBinaryDataBuffer()` instead of directly accessing binary data, which works correctly in all n8n storage modes (memory, filesystem, S3)
  - **Any variable can receive files**: Removed type validation - binary files can now be sent to any canvas variable, not just `file` type variables. Tela will automatically parse text content from files when needed
  - **Simplified binary detection**: Cleaner logic with 3 clear cases:
    1. String with binary field name (e.g., `"data"`)
    2. Binary object passed directly (e.g., `{{ $binary.data }}`)
    3. Fallback to first available binary when value is empty
  - **Removed unnecessary API call**: No longer fetches canvas variable definitions just to check types

  #### Migration Guide

  No breaking changes - all existing workflows continue to work. The only difference is:
  - Variables with `type: text` can now receive binary files (previously only `type: file` variables could)

  ### Version 1.4.0

  **BREAKING CHANGE: Simplified API Response Handling**

  All operations now return the raw API response directly instead of formatted/transformed data.

  #### Breaking Changes

  - **Execute Canvas**: Now returns the full `CompletionResponse` object from the API
    - Before: `data.choices[0].message?.content` (sync) or `{ id, status }` (async)
    - After: Full API response object

  - **Execute Workstation**: Now returns the full API response
    - Before: `{ status: "created" }`
    - After: Full `CompletionResponse` object from the API

  - **Get Completion**: Now returns the full API response
    - Before: `{ status, ...outputContent }` (succeeded) or `{ status }` (pending)
    - After: Full `GetCompletionResponse` object with `id`, `status`, and `outputContent`

  #### Migration Guide

  If your workflows depend on the previous response format, you'll need to update your expressions:

  ```
  # Execute Canvas (sync) - accessing content
  Before: {{ $json.fieldName }}
  After:  {{ $json.choices[0].message.content.fieldName }}

  # Execute Canvas (async) - accessing id/status
  Before: {{ $json.id }}
  After:  {{ $json.id }}  (no change needed)

  # Get Completion - accessing output content
  Before: {{ $json.fieldName }}
  After:  {{ $json.outputContent.content.fieldName }}
  ```

  #### Why This Change?

  - Provides full API response data for advanced use cases
  - Eliminates data loss from response transformation
  - Gives users complete control over how to process the response
  - Simplifies codebase maintenance

  ### Version 1.2.0

  **New Features: Async Execution, Completion Polling & Workstation Integration**

  #### New Operations
  - **Execute Workstation**: Create tasks in the Tela Workstation dashboard
    - Tasks are visible in the Tela web interface for review and approval
    - Supports optional `label` field for task identification
    - Automatically fetches `application_id` from the canvas
    - Returns `{ status: "created" }` on success

  - **Get Completion**: Retrieve the result of an async canvas execution
    - Accepts a `completionId` parameter
    - Returns `{ status, ...content }` when succeeded
    - Returns `{ status }` when still processing (for polling workflows)

  #### Execute Canvas Enhancements
  - **Async Execution**: New toggle to execute canvases asynchronously
    - When enabled, returns immediately with `{ id, status }` instead of waiting for completion
    - Ideal for long-running AI tasks that may exceed timeout limits
    - Enables building polling workflows with Wait + If nodes

  #### Use Case: Async Workflow Pattern
  ```
  1. [Tela: Execute Canvas] (Async: ON) → { id: "abc-123", status: "pending" }
  2. [Wait] → 5 seconds
  3. [Tela: Get Completion] (ID: {{ $json.id }}) → { status: "pending" } or { status: "succeeded", ...content }
  4. [If] status !== "succeeded" → Loop back to step 2
  5. [Continue] → Process the completed result
  ```

  #### Use Case: Workstation Task Creation
  ```
  1. [Webhook] → Receive data from external system
  2. [Tela: Execute Workstation] → Create task with label "{{ $json.customer }} - {{ $json.orderId }}"
  3. [Task appears in Tela dashboard for human review]
  ```

  #### Technical Details
  - Added `async` parameter to completion request body
  - Added `status` field to completion response types
  - New `GetCompletionResponse` type for get completion endpoint
  - New `PromptApplication` and `WorkstationRequest` types
  - New `/prompt-application` endpoint integration
  - Graceful error handling for polling requests

  ### Version 1.1.2

  **UX Pattern compliance for n8n verification:**

  #### n8n Verification Requirements
  - **Implemented Resources and Operations pattern**: Added standard n8n UX pattern with Resource and Operation dropdowns
    - Resource: Canvas (single option, extensible for future resources)
    - Operation: Execute (executes a canvas with variables)
    - All existing functionality preserved and unchanged
    - No breaking changes - workflows continue to work seamlessly

  #### User Experience Improvements
  - **Better discoverability**: Users can now see available resources and operations in dropdown menus
  - **Consistent with n8n ecosystem**: Follows the same UX pattern as official n8n nodes
  - **Future-proof architecture**: Easy to extend with additional operations (Get Details, List, etc.)

  #### Technical Details
  - Added `resource` property with 'canvas' option
  - Added `operation` property with 'execute' action
  - Updated all existing properties with `displayOptions` to show conditionally
  - Maintains backwards compatibility with existing workflows

  #### Breaking Changes
  - None - all changes are backwards compatible

  ### Version 1.1.0

  **Major improvements for n8n Cloud verification compliance:**

  #### Critical Fixes
  - **Removed dependency overrides**: Eliminated `overrides` section from package.json to prevent masking security vulnerabilities
  - **Replaced native fetch() with n8n HTTP helpers**: All API requests now use n8n's `httpRequest` helper for proper proxy support, retry logic, and request logging
  - **Added pairedItem linking**: Implemented proper data flow tracking with `pairedItem` metadata on all outputs

  #### High Priority Improvements
  - **Enhanced error logging**: Replaced `console.error` with n8n's logger service for better debugging in production
  - **Added continueOnFail support**: Workflows can now handle errors gracefully and continue processing remaining items
  - **Multi-item processing**: Refactored execute() method to properly process multiple input items in batch

  #### Quality Improvements
  - **Converted icon to SVG format**: Replaced PNG icon with SVG for better scalability and 70% smaller file size
    - Updated both node and credential files to use `tela.svg`
    - Removed legacy PNG icon from build output
    - Consistent icon format across entire package
  - **Improved error handling**: Added `NodeOperationError` with detailed metadata including itemIndex
  - **Better type safety**: Enhanced TypeScript types for HTTP request methods

  #### Breaking Changes
  - None - all changes are backwards compatible

  #### Developer Experience
  - Enhanced logging visibility in n8n execution logs
  - Better error messages with actionable descriptions
  - Improved workflow debugging with proper data flow tracking

  ### Version 1.0.16

  - Replace get prompts call (includeLastVersion=true) for /promoted-version endpoint (the old one was deprecated internally)

  ### Version 1.0.15

  - Fixed critical security vulnerabilities in transitive dependencies
  - Updated axios from vulnerable version to 1.12.2 (fixes CVE-2025-58754)
  - Updated form-data from vulnerable version to 4.0.4 (fixes CVE-2025-7783)
  - Added npm overrides to ensure secure dependency versions across all packages
  - Zero vulnerabilities reported by npm audit

  ### Version 1.0.14

  - Added credential test method to fix n8n verification pre-checks
  - Fixed n8n verification pre-checks by restructuring project to match n8n-nodes-starter template
  - Moved credentials and nodes to proper directories as required by n8n
  - Enhanced README documentation for n8n verification compliance
  - Added comprehensive usage examples and sample workflows
  - Improved installation and configuration instructions
  - Added troubleshooting guide and development documentation

  ### Version 1.0.1

  - Enhanced error handling
  - Improved file upload support
  - Better variable validation

  ### Version 1.0.0

  - Initial release
  - Basic Tela API integration
  - Dynamic variable support

  ## License

  [MIT](LICENSE.md)

ai_documentation_summary:
  {"purpose":"This n8n community node integrates with the Tela API to execute AI-driven canvases, manage projects, and handle file uploads for automation workflows.","capabilities":["Execute Tela canvases with dynamic variables","Handle file uploads for canvas processing","List and manage Tela projects and canvases","Create tasks in Tela Workstation dashboard","Poll for async canvas execution completion status","Generate dynamic content for emails and marketing materials","Process documents with AI assistance"],"authentication":"API key required (Tela API key from dashboard)","commonUseCases":["Generate personalized marketing materials","Process documents with AI assistance","Create tasks for human review in Tela dashboard","Build hybrid human-AI pipelines with manual checkpoints","Poll for long-running AI processing without timeouts"],"limitations":["Community node (requires accepting n8n community node risks)","Manual installation required for self-hosted instances","Requires Tela API credentials setup"],"relatedNodes":["n8n HTTP Request","n8n Wait","n8n File"]}


node_type: @fibery/n8n-nodes-fibery.fibery
package_name: @fibery/n8n-nodes-fibery
display_name: Fibery
description: Read, update, write and delete data from Fibery
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: gaswelder
author_github_url: https://github.com/Fibery-inc/n8n-nodes-fibery.git
npm_package_name: @fibery/n8n-nodes-fibery
npm_version: 0.1.19
community_fetched_at: 2026-04-16T09:43:36.424Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "entity",
      "options": [
        {
          "name": "Database",
          "value": "database"
        },
        {
          "name": "Entity",
          "value": "entity"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many databases",
          "description": "Get many databases from the workspace"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "database"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create an entity",
          "description": "Create a new entity"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete an entity",
          "description": "Delete an entity"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get an entity",
          "description": "Get an entity"
        },
        {
          "name": "Get Many",
          "value": "getMany",
          "action": "Get many entities",
          "description": "Get many entities from a database"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update an entity",
          "description": "Update an entity"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "entity"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many databases",
      "description": "Get many databases from the workspace",
      "resource": "database"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create an entity",
      "description": "Create a new entity",
      "resource": "entity"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete an entity",
      "description": "Delete an entity",
      "resource": "entity"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get an entity",
      "description": "Get an entity",
      "resource": "entity"
    },
    {
      "name": "Get Many",
      "value": "getMany",
      "action": "Get many entities",
      "description": "Get many entities from a database",
      "resource": "entity"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update an entity",
      "description": "Update an entity",
      "resource": "entity"
    }
  ]

npm_readme:
  # n8n-nodes-fibery

  ![Fibery x n8n](./fibery-x-n8n.png)

  This is an n8n community node. It lets you use Fibery in your n8n workflows.

  Fibery is your company’s operating system
  It's a work platform that replaces scattered tools and connects teams. Chosen by nerds, appreciated by everyone (almost).

  [n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/reference/license/) workflow automation platform.

  [Installation](#installation)
  [Operations](#operations)
  [Credentials](#credentials)
  [Compatibility](#compatibility)
  [Usage](#usage)
  [Resources](#resources)
  [Version history](#version-history)

  ## Installation

  Follow the [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) in the n8n community nodes documentation.

  1. Go to **Settings** > **Community Nodes**.
  2. Select **Install**.
  3. Enter `@fibery/n8n-nodes-fibery` in **npm Package name**.
  4. Agree to the [risks](https://docs.n8n.io/integrations/community-nodes/risks/) of using community nodes: select **I understand the risks of installing unverified code from a public source**.
  5. Select **Install**.

  ## Operations

  ### Database

  - **get many**. List all databases in the workspace.

  ### Entity

  - **create**. Create a new entity.
  - **delete**. Delete an entity.
  - **get**. Get an entity.s
  - **get many**. Search and list entities from a database.
  - **update**. Update an entity.

  ### Triggers

  - **default**. Handle Fibery events to Database from webhooks.

  ## Credentials

  At the moment this node supports only one authentication method: **API Key**.

  ### Using API Key

  1. Enter the name of your Fibery workspace in the **Workspace** field. It can be obtained from the URL of your workspace. For example, if your workspace URL is `https://my-company.fibery.io`, then the workspace name is `my-company`.
  2. Obtain an API key from your Fibery workspace. Please follow the [Fibery API keys](https://the.fibery.io/@public/User_Guide/Guide/Fibery-API-keys-252) guide.
  3. Enter API key in the **API Key** field.

  ## Compatibility

  Tested on: 1.111.0

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  - [Fibery](https://www.fibery.io/)
  - [Fibery API documentation](https://the.fibery.io/@public/User_Guide/Guide/Fibery-API-overview-279)

ai_documentation_summary:
  {"purpose":"This n8n community node enables full CRUD operations (create, read, update, delete) on Fibery entities and databases within automation workflows.","capabilities":["Create new entities","Delete entities","Retrieve single entities","Search and list multiple entities from databases","Update existing entities","List all databases in a workspace","Handle Fibery events via webhooks"],"authentication":"API Key","commonUseCases":["Automating data entry into Fibery workspaces","Syncing external data sources to Fibery","Triggering workflows based on Fibery events","Updating records based on conditional logic"],"limitations":["Only supports API Key authentication method","Requires manual workspace name extraction from URL","Community node status may imply less official support than core nodes"],"relatedNodes":["n8n HTTP Request","n8n Webhook","n8n Code Node"]}


node_type: n8n-nodes-aimlapi.aimlApi
package_name: n8n-nodes-aimlapi
display_name: AI/ML API
description: Choose from 300+ AI models, from Gemini and ChatGPT to DeepSeek and Llama.
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: aiml_api
author_github_url: https://github.com/D1m7asis/
npm_package_name: n8n-nodes-aimlapi
npm_version: 2.0.3
community_fetched_at: 2026-04-16T09:43:36.425Z
ai_summary_generated_at: 2026-03-25 22:47:20
properties_schema:
  [
    {
      "name": "operation",
      "type": "options",
      "default": "chatCompletion",
      "options": [
        {
          "name": "Chat Completion",
          "value": "chatCompletion",
          "action": "Generate text using chat completion models",
          "description": "Generate text using chat completion models"
        },
        {
          "name": "Image Generation",
          "value": "imageGeneration",
          "action": "Generate images from text prompts",
          "description": "Generate images from text prompts"
        },
        {
          "name": "Audio Generation",
          "value": "audioGeneration",
          "action": "Generate music or sound effects from text prompts",
          "description": "Generate music or sound effects from text prompts"
        },
        {
          "name": "Video Generation",
          "value": "videoGeneration",
          "action": "Generate videos from prompts or reference media",
          "description": "Generate videos from prompts or reference media"
        },
        {
          "name": "Speech Synthesis",
          "value": "speechSynthesis",
          "action": "Convert text into speech audio",
          "description": "Convert text into speech audio"
        },
        {
          "name": "Speech Transcription",
          "value": "speechTranscription",
          "action": "Transcribe audio files into text",
          "description": "Transcribe audio files into text"
        },
        {
          "name": "Embedding Generation",
          "value": "embeddingGeneration",
          "action": "Create vector embeddings from text",
          "description": "Create vector embeddings from text"
        }
      ],
      "displayName": "Operation",
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Chat Completion",
      "value": "chatCompletion",
      "action": "Generate text using chat completion models",
      "description": "Generate text using chat completion models"
    },
    {
      "name": "Image Generation",
      "value": "imageGeneration",
      "action": "Generate images from text prompts",
      "description": "Generate images from text prompts"
    },
    {
      "name": "Audio Generation",
      "value": "audioGeneration",
      "action": "Generate music or sound effects from text prompts",
      "description": "Generate music or sound effects from text prompts"
    },
    {
      "name": "Video Generation",
      "value": "videoGeneration",
      "action": "Generate videos from prompts or reference media",
      "description": "Generate videos from prompts or reference media"
    },
    {
      "name": "Speech Synthesis",
      "value": "speechSynthesis",
      "action": "Convert text into speech audio",
      "description": "Convert text into speech audio"
    },
    {
      "name": "Speech Transcription",
      "value": "speechTranscription",
      "action": "Transcribe audio files into text",
      "description": "Transcribe audio files into text"
    },
    {
      "name": "Embedding Generation",
      "value": "embeddingGeneration",
      "action": "Create vector embeddings from text",
      "description": "Create vector embeddings from text"
    }
  ]

npm_readme:
  # n8n-nodes-aimlapi

  This is an n8n community node for [AI/ML API](https://aimlapi.com/?utm_source=n8n&utm_medium=github&utm_campaign=integration) integration.  
  It allows you to interact with large language models (LLMs) and multimodal models directly from your n8n workflows.

  [n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/reference/license/) workflow automation platform.

  [AI/ML API](https://aimlapi.com/app/?utm_source=n8n&utm_medium=github&utm_campaign=integration) provides access to **300+ AI models**, including Deepseek, Gemini, ChatGPT, and many others — all with **enterprise-grade rate limits and uptimes**.

  ---

  ## Features

  - Chat with any LLM available on AI/ML API
  - Generate AI images with supported diffusion and vision models
  - Create AI music and sound effects with audio-generation models
  - Render text-to-video or image-to-video clips
  - Convert text to speech and speech to text via TTS/STT models
  - Produce text embeddings for search and retrieval workflows
  - Dynamic model selection per modality with shared authentication
  - Parameter tuning (temperature, max tokens, top-p, penalties, etc.)
  - Multiple output formats: raw payloads or curated fields for each modality
  - Credential-based authentication

  ---

  ## Installation

  ### Community Node (Recommended)

  1. Open your n8n instance
  2. Go to **Settings → Community Nodes**
  3. Click **Install**
  4. Enter `n8n-nodes-aimlapi`
  5. Accept the prompt to install the node
  6. After installation, the node will appear under **AI/ML API** in the node palette

  ### Manual Installation (Advanced)

  ```bash
  npm install n8n-nodes-aimlapi
  ```

  Then restart your `n8n` instance.

  ---

  ## Configuration

  ### Credentials

  To use this node, you must configure **AI/ML API** credentials:

  1. Sign up at [https://aimlapi.com/](https://aimlapi.com/?utm_source=n8n&utm_medium=github&utm_campaign=integration)
  2. Go to your [dashboard](https://aimlapi.com/app/?utm_source=n8n&utm_medium=github&utm_campaign=integration) and generate an API key
  3. In n8n, create new credentials of type **AI/ML API**
  4. Paste your API key
  5. Save and use in the node

  📚 You can also refer to the [provider documentation](https://docs.aimlapi.com/?utm_source=n8n&utm_medium=github&utm_campaign=integration) for detailed API specs.

  ### Node Parameters

  - **Operation** – Select the modality (`Chat Completion`, `Image Generation`, `Audio Generation`, `Video Generation`, `Speech Synthesis`, `Speech Transcription`, or `Embedding Generation`).
  - **Model** – Pick a model from the filtered list (dependent on operation) or provide an ID via expression.

  #### Chat Completion

  - **Use Message List** – Switch between a single prompt and a structured list of chat messages.
  - **Prompt/Messages** – Provide either one prompt or multiple messages. Each structured message selects a **Role** (`assistant`, `system`, or `user`) from the dropdown, or choose **Custom…** to enter another role such as `tool`, plus the text **Content**. When using the `tool` role, fill in the required **Tool Call ID** with the identifier returned alongside the assistant tool invocation so the API can pair the response correctly.
  - **Extract From Response** – Decide what to return (`Text Only`, `Assistant Messages`, `Choices Array`, or `Full Raw JSON`).
  - **Options** – Fine-tune completions with **Temperature**, **Top P**, **Max Tokens**, **Presence Penalty**, **Frequency Penalty**, and **Response Format**.

  #### Image Generation

  - **Prompt** – Describe the image you want the model to create.
  - **Extract From Response** – Return the first/all URLs, first/all base64 images, or the raw payload.
  - **Image Options** – Configure **Background**, **Image Count**, **Negative Prompt**, **Quality**, **Response Format**, **Size**, and **Style**.

  #### Audio Generation

  - **Prompt** – Describe the audio clip you want to generate.
  - **Extract From Response** – Return audio URLs, base64 blobs, or the raw payload.
  - **Audio Options** – Adjust **Audio Format**, **Duration**, **Mode**, **Negative Prompt**, **Prompt Strength**, **Seed**, **Reference Audio URL**, **Instrument**, and **CFG Scale**.

  #### Video Generation

  - **Prompt** – Describe the scene for the generated video.
  - **Extract From Response** – Return the first/all video URLs or the raw payload.
  - **Video Options** – Control **Aspect Ratio/Ratio**, **Duration**, **Kling Types & Image Lists**, **Google Veo Tail Images & Prompt Enhancement**, **Alibaba Resolution/Watermark/Prompt Expansion**, **MiniMax Prompt Optimizer & First Frame**, **Runway Last Image**, plus legacy toggles like **Negative Prompt**, **Prompt Strength**, **Reference Media**, **Background Audio**, **CFG Scale**, and **Seed**.

  #### Speech Synthesis

  - **Text** – Content that should be spoken aloud.
  - **Extract From Response** – Return an audio URL, base64 payload, or the raw response.
  - **Speech Options** – Configure **Voice**, **Audio Format**, **Sample Rate**, **Speaking Rate**, and **Style**.

  #### Speech Transcription

  - **Binary Property** – Name of the binary property that contains the audio file.
  - **Extract From Response** – Return transcript text, segment breakdowns, or the raw payload.
  - **Transcription Options** – Provide **Language**, **Prompt**, **Response Format**, and **Temperature**.

  #### Embedding Generation

  - **Input Text** – Text that should be converted into an embedding vector.
  - **Extract From Response** – Return the first vector, all vectors, or the raw payload.
  - **Embedding Options** – Configure **Encoding Format** and **User Identifier** metadata.

  ---

  ## Usage Example

  1. Add a **Manual Trigger**
  2. Add the **AI/ML API** node
  3. Configure credentials
  4. Set a model (e.g. `gpt-3.5-turbo`)
  5. Enter prompt: `What is the capital of France?`
  6. Select `Extract: Text Only`
  7. Execute — you’ll get `Paris`

  ---

  ## Troubleshooting

  - If the node doesn't show up, try restarting your instance
  - If the icon or name doesn't render, make sure you ran `npm run build && gulp build:icons`
  - To debug model list: ensure credentials and `/models` endpoint return valid JSON

  ---

  ## Support

  Please open an issue or pull request in the [GitHub repository](https://github.com/D1m7asis/n8n-nodes-aimlapi) if you encounter problems.

ai_documentation_summary:
  {"purpose":"This n8n community node enables interaction with 300+ AI models from providers like Gemini, ChatGPT, and DeepSeek to perform text, image, audio, video, and speech tasks.","capabilities":["Chat completion with LLMs","Image generation (diffusion and vision models)","Audio generation and sound effects","Text-to-video and image-to-video rendering","Text-to-speech (TTS)","Speech-to-text transcription (STT)","Text embedding generation for search/retrieval","Dynamic model selection per modality","Parameter tuning (temperature, top-p, max tokens, penalties)","Multiple output formats (raw payloads, curated fields, base64, URLs)"],"authentication":"API key required (entered via Credentials node)","commonUseCases":["Integrating enterprise-grade LLMs into automation workflows","Generating AI images or videos based on text prompts","Creating voiceovers or transcribing audio files","Building search and retrieval systems with text embeddings"],"limitations":["Community node (may lack official support compared to n8n core nodes)","Requires separate API key subscription at aimlapi.com","README truncated, full troubleshooting details not available"],"relatedNodes":["Credentials","Manual Trigger","Code"]}


node_type: n8n-nodes-yourtextguru.yourtextGuru
package_name: n8n-nodes-yourtextguru
display_name: Yourtext.Guru
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: web.waboo
author_github_url: https://github.com/webwaboo/n8n-yourtextguru-api.git
npm_package_name: n8n-nodes-yourtextguru
npm_version: 0.3.0
community_fetched_at: 2026-04-16T09:43:36.426Z
ai_summary_generated_at: 2026-03-25 22:51:43
description:
  Yourtext.Guru is an advanced SEO content optimization tool designed to help writers and marketers create high-performing content.

properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "project",
      "options": [
        {
          "name": "Group",
          "value": "group"
        },
        {
          "name": "Guide",
          "value": "guide"
        },
        {
          "name": "Project",
          "value": "project"
        },
        {
          "name": "SEO Txl",
          "value": "seotxl"
        },
        {
          "name": "Status",
          "value": "status"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "listProjects",
      "options": [
        {
          "name": "Create",
          "value": "createProject",
          "action": "Create project",
          "routing": {
            "request": {
              "url": "=/projects",
              "body": {
                "host": "={{$parameter.host}}",
                "name": "={{$parameter.nameProject}}"
              },
              "method": "POST"
            }
          },
          "description": "Create a new project"
        },
        {
          "name": "Delete",
          "value": "deleteProject",
          "action": "Delete project",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter.projectId}}",
              "method": "DELETE"
            }
          },
          "description": "Delete one project and all guides inside"
        },
        {
          "name": "Get",
          "value": "getProject",
          "action": "Get project information",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter.projectId}}",
              "method": "GET"
            }
          },
          "description": "Get a project's information"
        },
        {
          "name": "Get Many",
          "value": "listProjects",
          "action": "List all projects",
          "routing": {
            "request": {
              "url": "/projects",
              "method": "GET"
            }
          },
          "description": "List all the organization's projects"
        },
        {
          "name": "Update",
          "value": "updateProject",
          "action": "Update project",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter.projectId}}",
              "body": {
                "host": "={{$parameter.host}}",
                "name": "={{$parameter.nameProject}}"
              },
              "method": "POST"
            }
          },
          "description": "Delete one project and all guides inside"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "project"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "listGuides",
      "options": [
        {
          "name": "Analyze Text",
          "value": "analyzeText",
          "action": "Analyze text",
          "routing": {
            "request": {
              "url": "=/guides/{{$parameter.guideId}}/brief/analyze",
              "body": {
                "text": "={{$parameter.text}}"
              },
              "method": "POST"
            }
          },
          "description": "Analyze a text to see if it meets the brief"
        },
        {
          "name": "Check",
          "value": "check",
          "action": "Check guide",
          "routing": {
            "request": {
              "url": "=/guides/{{$parameter.guideId}}/check",
              "body": {
                "text": "={{$parameter.text}}"
              },
              "method": "POST"
            }
          },
          "description": "Analyze a given text against the semantic and SEO recommendations of a specific guide"
        },
        {
          "name": "Create Guide",
          "value": "createGuide",
          "action": "Create guide",
          "routing": {
            "request": {
              "qs": {
                "lang": "={{$parameter.lang}}",
                "type": "={{$parameter.additionalFields.guideType}}",
                "query": "={{$parameter.query}}",
                "groupId": "={{$parameter.additionalFields.groupIdOptional}}",
                "projectId": "={{$parameter.additionalFields.projectIdOptional}}"
              },
              "url": "=/guides",
              "method": "POST"
            }
          },
          "description": "Create a new guide"
        },
        {
          "name": "Create Brief",
          "value": "createBrief",
          "action": "Create guide brief",
          "routing": {
            "request": {
              "url": "=/guides/{{$parameter.guideId}}/brief",
              "method": "POST"
            }
          },
          "description": "Create a new brief guide"
        },
        {
          "name": "Delete",
          "value": "deleteGuide",
          "action": "Delete guide",
          "routing": {
            "request": {
              "url": "=/guides/{{$parameter.guideId}}",
              "method": "DELETE"
            }
          },
          "description": "Delete a guide"
        },
        {
          "name": "Get",
          "value": "getGuide",
          "action": "Get guide",
          "routing": {
            "request": {
              "url": "=/guides/{{$parameter.guideId}}/{{$parameter.guideTypeSearch}}",
              "method": "GET"
            }
          },
          "description": "Get a specific guide"
        },
        {
          "name": "Get Many",
          "value": "listGuides",
          "action": "List all guides",
          "routing": {
            "request": {
              "qs": {
                "lang": "={{$parameter.additionalFields.langOptionnal}}",
                "lastId": "={{$parameter.lastId}}",
                "status": "={{$parameter.additionalFields.status}}",
                "apiOnly": "={{$parameter.additionalFields.apiOnly}}",
                "groupId": "={{$parameter.additionalFields.groupIdOptional}}",
                "projectId": "={{$parameter.projectIdOptional}}"
              },
              "url": "=/guides",
              "method": "GET"
            }
          },
          "description": "List all the organization's guide"
        },
        {
          "name": "Get Brief Analysis",
          "value": "getGuideBriefAnalysis",
          "action": "Get brief analysis",
          "routing": {
            "request": {
              "url": "=/guides/{{$parameter.guideId}}/brief/analyze/{{$parameter.analyzeId}}",
              "method": "GET"
            }
          },
          "description": "Get the last briefs analysis"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "guide"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getStatus",
      "options": [
        {
          "name": "Get Status",
          "value": "getStatus",
          "action": "Get status",
          "routing": {
            "request": {
              "url": "=/status",
              "method": "GET"
            }
          },
          "description": "Get the current status of the organization's account, including available tokens and guides in progress"
        },
        {
          "name": "Get Consumption",
          "value": "getTokenConsumption",
          "action": "Get consumption",
          "routing": {
            "request": {
              "url": "=/consumption/openai",
              "method": "GET"
            }
          },
          "description": "Get Token Consumption"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "status"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAllGroupsinProject",
      "options": [
        {
          "name": "Add List in Group",
          "value": "addListinGroup",
          "action": "Add list of guide in group",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter.projectId}}/groups/{{$parameter.groupId}}/guides/add",
              "body": {
                "guideId": "={{$parameter.guideIdCollection}}"
              },
              "method": "POST"
            }
          },
          "description": "Add a list of guide in a group"
        },
        {
          "name": "Create",
          "value": "createGroup",
          "action": "Create group",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter.projectId}}/groups",
              "body": {
                "name": "={{$parameter.nameGroup}}"
              },
              "method": "POST"
            }
          },
          "description": "Create a new group"
        },
        {
          "name": "Create Topical Mesh",
          "value": "createTopicalMesh",
          "action": "Create a topical mesh",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter.projectId}}/groups/{{$parameter.groupId}}/topicalMesh",
              "method": "POST"
            }
          },
          "description": "Create a thematic mesh from all the guides in the group"
        },
        {
          "name": "List All Groups in a Project",
          "value": "getAllGroupsinProject",
          "action": "List all groups in a project",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter.projectId}}/groups",
              "method": "GET"
            }
          },
          "description": "Get all groups in a project"
        },
        {
          "name": "Get Group Info",
          "value": "getGroupInfo",
          "action": "Get group info",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter.projectId}}/groups/{{$parameter.groupId}}",
              "method": "GET"
            }
          },
          "description": "Get info of a group"
        },
        {
          "name": "Get Topical Mesh",
          "value": "getTopicalMesh",
          "action": "Get topical mesh",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter.projectId}}/groups/{{$parameter.groupId}}/topicalMesh",
              "method": "GET"
            }
          },
          "description": "Get a group topical mesh"
        },
        {
          "name": "Get Topical Mesh Paa",
          "value": "getTopicalMeshPaa",
          "action": "Get topical mesh paa",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter.projectId}}/groups/{{$parameter.groupId}}/topicalMesh/paa",
              "method": "GET"
            }
          },
          "description": "Get a topical mesh paa"
        },
        {
          "name": "Get Topical Mesh Wordcloud",
          "value": "getTopicalMeshWordcloud",
          "action": "Get topical mesh wordcloud",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter.projectId}}/groups/{{$parameter.groupId}}/topicalMesh/wordcloud",
              "method": "GET"
            }
          },
          "description": "Get a topical mesh wordcloud"
        },
        {
          "name": "Update",
          "value": "updateGroup",
          "action": "Update group",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter.projectId}}/groups/{{$parameter.groupId}}",
              "body": {
                "name": "={{$parameter.nameGroup}}"
              },
              "method": "POST"
            }
          },
          "description": "Update a group"
        },
        {
          "name": "Delete Group",
          "value": "deleteGroup",
          "action": "Delete group",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter.projectId}}/groups/{{$parameter.groupId}}",
              "method": "DELETE"
            }
          },
          "description": "Delete a whole group"
        },
        {
          "name": "Delete Guide",
          "value": "removeGuideinGroup",
          "action": "Delete guide from group",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter.projectId}}/groups/{{$parameter.groupId}}/guides/remove",
              "body": {
                "guideId": "={{$parameter.guideIdCollection}}"
              },
              "method": "POST"
            }
          },
          "description": "Remove a list of guide from group"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "group"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "generateOutlineTextBasedonGuideWords",
      "options": [
        {
          "name": "Generate Outline Text Based on Guide Words",
          "value": "generateOutlineTextBasedonGuideWords",
          "action": "Generate outline text based on guide words",
          "routing": {
            "request": {
              "url": "=/guides/{{$parameter.guideId}}/seotxl/outline",
              "body": {
                "text": "={{$parameter.text}}"
              },
              "method": "POST"
            }
          }
        },
        {
          "name": "Generate Questions Based on Guide Words",
          "value": "generateQuestionsBasedonGuideWords",
          "action": "Generate questions based on guide words",
          "routing": {
            "request": {
              "url": "=/guides/{{$parameter.guideId}}/seotxl/questions",
              "method": "POST"
            }
          }
        },
        {
          "name": "Generate Text Based on Guide Words",
          "value": "generateTextBasedonGuideWords",
          "action": "Generate text based on guide words",
          "routing": {
            "request": {
              "url": "=/guides/{{$parameter.guideId}}/seotxl/auto",
              "body": {
                "text": "={{$parameter.text}}"
              },
              "method": "POST"
            }
          }
        },
        {
          "name": "Generate Text From a Guide",
          "value": "generateTextfromGuide",
          "action": "Generate text from a guide",
          "routing": {
            "request": {
              "url": "=/guides/{{$parameter.guideId}}/seotxl/create",
              "body": {
                "text": "={{$parameter.text}}",
                "maxWords": "={{$parameter.maxWords}}",
                "temperature": "={{$parameter.temperature}}"
              },
              "method": "POST"
            }
          }
        },
        {
          "name": "Rephrase Text Based on Guide Words",
          "value": "rephraseTextBasedonGuideWords",
          "action": "Rephrase text based on guide words",
          "routing": {
            "request": {
              "url": "=/guides/{{$parameter.guideId}}/seotxl/rephrase",
              "body": {
                "text": "={{$parameter.text}}"
              },
              "method": "POST"
            }
          }
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "seotxl"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create",
      "value": "createProject",
      "action": "Create project",
      "routing": {
        "request": {
          "url": "=/projects",
          "body": {
            "host": "={{$parameter.host}}",
            "name": "={{$parameter.nameProject}}"
          },
          "method": "POST"
        }
      },
      "description": "Create a new project",
      "resource": "project"
    },
    {
      "name": "Delete",
      "value": "deleteProject",
      "action": "Delete project",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter.projectId}}",
          "method": "DELETE"
        }
      },
      "description": "Delete one project and all guides inside",
      "resource": "project"
    },
    {
      "name": "Get",
      "value": "getProject",
      "action": "Get project information",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter.projectId}}",
          "method": "GET"
        }
      },
      "description": "Get a project's information",
      "resource": "project"
    },
    {
      "name": "Get Many",
      "value": "listProjects",
      "action": "List all projects",
      "routing": {
        "request": {
          "url": "/projects",
          "method": "GET"
        }
      },
      "description": "List all the organization's projects",
      "resource": "project"
    },
    {
      "name": "Update",
      "value": "updateProject",
      "action": "Update project",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter.projectId}}",
          "body": {
            "host": "={{$parameter.host}}",
            "name": "={{$parameter.nameProject}}"
          },
          "method": "POST"
        }
      },
      "description": "Delete one project and all guides inside",
      "resource": "project"
    },
    {
      "name": "Analyze Text",
      "value": "analyzeText",
      "action": "Analyze text",
      "routing": {
        "request": {
          "url": "=/guides/{{$parameter.guideId}}/brief/analyze",
          "body": {
            "text": "={{$parameter.text}}"
          },
          "method": "POST"
        }
      },
      "description": "Analyze a text to see if it meets the brief",
      "resource": "guide"
    },
    {
      "name": "Check",
      "value": "check",
      "action": "Check guide",
      "routing": {
        "request": {
          "url": "=/guides/{{$parameter.guideId}}/check",
          "body": {
            "text": "={{$parameter.text}}"
          },
          "method": "POST"
        }
      },
      "description": "Analyze a given text against the semantic and SEO recommendations of a specific guide",
      "resource": "guide"
    },
    {
      "name": "Create Guide",
      "value": "createGuide",
      "action": "Create guide",
      "routing": {
        "request": {
          "qs": {
            "lang": "={{$parameter.lang}}",
            "type": "={{$parameter.additionalFields.guideType}}",
            "query": "={{$parameter.query}}",
            "groupId": "={{$parameter.additionalFields.groupIdOptional}}",
            "projectId": "={{$parameter.additionalFields.projectIdOptional}}"
          },
          "url": "=/guides",
          "method": "POST"
        }
      },
      "description": "Create a new guide",
      "resource": "guide"
    },
    {
      "name": "Create Brief",
      "value": "createBrief",
      "action": "Create guide brief",
      "routing": {
        "request": {
          "url": "=/guides/{{$parameter.guideId}}/brief",
          "method": "POST"
        }
      },
      "description": "Create a new brief guide",
      "resource": "guide"
    },
    {
      "name": "Delete",
      "value": "deleteGuide",
      "action": "Delete guide",
      "routing": {
        "request": {
          "url": "=/guides/{{$parameter.guideId}}",
          "method": "DELETE"
        }
      },
      "description": "Delete a guide",
      "resource": "guide"
    },
    {
      "name": "Get",
      "value": "getGuide",
      "action": "Get guide",
      "routing": {
        "request": {
          "url": "=/guides/{{$parameter.guideId}}/{{$parameter.guideTypeSearch}}",
          "method": "GET"
        }
      },
      "description": "Get a specific guide",
      "resource": "guide"
    },
    {
      "name": "Get Many",
      "value": "listGuides",
      "action": "List all guides",
      "routing": {
        "request": {
          "qs": {
            "lang": "={{$parameter.additionalFields.langOptionnal}}",
            "lastId": "={{$parameter.lastId}}",
            "status": "={{$parameter.additionalFields.status}}",
            "apiOnly": "={{$parameter.additionalFields.apiOnly}}",
            "groupId": "={{$parameter.additionalFields.groupIdOptional}}",
            "projectId": "={{$parameter.projectIdOptional}}"
          },
          "url": "=/guides",
          "method": "GET"
        }
      },
      "description": "List all the organization's guide",
      "resource": "guide"
    },
    {
      "name": "Get Brief Analysis",
      "value": "getGuideBriefAnalysis",
      "action": "Get brief analysis",
      "routing": {
        "request": {
          "url": "=/guides/{{$parameter.guideId}}/brief/analyze/{{$parameter.analyzeId}}",
          "method": "GET"
        }
      },
      "description": "Get the last briefs analysis",
      "resource": "guide"
    },
    {
      "name": "Get Status",
      "value": "getStatus",
      "action": "Get status",
      "routing": {
        "request": {
          "url": "=/status",
          "method": "GET"
        }
      },
      "description": "Get the current status of the organization's account, including available tokens and guides in progress",
      "resource": "status"
    },
    {
      "name": "Get Consumption",
      "value": "getTokenConsumption",
      "action": "Get consumption",
      "routing": {
        "request": {
          "url": "=/consumption/openai",
          "method": "GET"
        }
      },
      "description": "Get Token Consumption",
      "resource": "status"
    },
    {
      "name": "Add List in Group",
      "value": "addListinGroup",
      "action": "Add list of guide in group",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter.projectId}}/groups/{{$parameter.groupId}}/guides/add",
          "body": {
            "guideId": "={{$parameter.guideIdCollection}}"
          },
          "method": "POST"
        }
      },
      "description": "Add a list of guide in a group",
      "resource": "group"
    },
    {
      "name": "Create",
      "value": "createGroup",
      "action": "Create group",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter.projectId}}/groups",
          "body": {
            "name": "={{$parameter.nameGroup}}"
          },
          "method": "POST"
        }
      },
      "description": "Create a new group",
      "resource": "group"
    },
    {
      "name": "Create Topical Mesh",
      "value": "createTopicalMesh",
      "action": "Create a topical mesh",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter.projectId}}/groups/{{$parameter.groupId}}/topicalMesh",
          "method": "POST"
        }
      },
      "description": "Create a thematic mesh from all the guides in the group",
      "resource": "group"
    },
    {
      "name": "List All Groups in a Project",
      "value": "getAllGroupsinProject",
      "action": "List all groups in a project",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter.projectId}}/groups",
          "method": "GET"
        }
      },
      "description": "Get all groups in a project",
      "resource": "group"
    },
    {
      "name": "Get Group Info",
      "value": "getGroupInfo",
      "action": "Get group info",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter.projectId}}/groups/{{$parameter.groupId}}",
          "method": "GET"
        }
      },
      "description": "Get info of a group",
      "resource": "group"
    },
    {
      "name": "Get Topical Mesh",
      "value": "getTopicalMesh",
      "action": "Get topical mesh",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter.projectId}}/groups/{{$parameter.groupId}}/topicalMesh",
          "method": "GET"
        }
      },
      "description": "Get a group topical mesh",
      "resource": "group"
    },
    {
      "name": "Get Topical Mesh Paa",
      "value": "getTopicalMeshPaa",
      "action": "Get topical mesh paa",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter.projectId}}/groups/{{$parameter.groupId}}/topicalMesh/paa",
          "method": "GET"
        }
      },
      "description": "Get a topical mesh paa",
      "resource": "group"
    },
    {
      "name": "Get Topical Mesh Wordcloud",
      "value": "getTopicalMeshWordcloud",
      "action": "Get topical mesh wordcloud",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter.projectId}}/groups/{{$parameter.groupId}}/topicalMesh/wordcloud",
          "method": "GET"
        }
      },
      "description": "Get a topical mesh wordcloud",
      "resource": "group"
    },
    {
      "name": "Update",
      "value": "updateGroup",
      "action": "Update group",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter.projectId}}/groups/{{$parameter.groupId}}",
          "body": {
            "name": "={{$parameter.nameGroup}}"
          },
          "method": "POST"
        }
      },
      "description": "Update a group",
      "resource": "group"
    },
    {
      "name": "Delete Group",
      "value": "deleteGroup",
      "action": "Delete group",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter.projectId}}/groups/{{$parameter.groupId}}",
          "method": "DELETE"
        }
      },
      "description": "Delete a whole group",
      "resource": "group"
    },
    {
      "name": "Delete Guide",
      "value": "removeGuideinGroup",
      "action": "Delete guide from group",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter.projectId}}/groups/{{$parameter.groupId}}/guides/remove",
          "body": {
            "guideId": "={{$parameter.guideIdCollection}}"
          },
          "method": "POST"
        }
      },
      "description": "Remove a list of guide from group",
      "resource": "group"
    },
    {
      "name": "Generate Outline Text Based on Guide Words",
      "value": "generateOutlineTextBasedonGuideWords",
      "action": "Generate outline text based on guide words",
      "routing": {
        "request": {
          "url": "=/guides/{{$parameter.guideId}}/seotxl/outline",
          "body": {
            "text": "={{$parameter.text}}"
          },
          "method": "POST"
        }
      },
      "resource": "seotxl"
    },
    {
      "name": "Generate Questions Based on Guide Words",
      "value": "generateQuestionsBasedonGuideWords",
      "action": "Generate questions based on guide words",
      "routing": {
        "request": {
          "url": "=/guides/{{$parameter.guideId}}/seotxl/questions",
          "method": "POST"
        }
      },
      "resource": "seotxl"
    },
    {
      "name": "Generate Text Based on Guide Words",
      "value": "generateTextBasedonGuideWords",
      "action": "Generate text based on guide words",
      "routing": {
        "request": {
          "url": "=/guides/{{$parameter.guideId}}/seotxl/auto",
          "body": {
            "text": "={{$parameter.text}}"
          },
          "method": "POST"
        }
      },
      "resource": "seotxl"
    },
    {
      "name": "Generate Text From a Guide",
      "value": "generateTextfromGuide",
      "action": "Generate text from a guide",
      "routing": {
        "request": {
          "url": "=/guides/{{$parameter.guideId}}/seotxl/create",
          "body": {
            "text": "={{$parameter.text}}",
            "maxWords": "={{$parameter.maxWords}}",
            "temperature": "={{$parameter.temperature}}"
          },
          "method": "POST"
        }
      },
      "resource": "seotxl"
    },
    {
      "name": "Rephrase Text Based on Guide Words",
      "value": "rephraseTextBasedonGuideWords",
      "action": "Rephrase text based on guide words",
      "routing": {
        "request": {
          "url": "=/guides/{{$parameter.guideId}}/seotxl/rephrase",
          "body": {
            "text": "={{$parameter.text}}"
          },
          "method": "POST"
        }
      },
      "resource": "seotxl"
    }
  ]

npm_readme:
  # n8n-nodes-yourtextguru

  This is an n8n community node. It lets you use YourTextGuru in your n8n workflows.

  This API enables developers to integrate SEO optimization tools into their applications, allowing for content analysis, keyword research, and more.

  [n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/reference/license/) workflow automation platform.

  [Installation](#installation)  
  [Operations](#operations)  
  [Credentials](#credentials)   
  [Compatibility](#compatibility)  
  [Resources](#resources)  
  [Version history](#version-history)

  ## Installation

  Follow the [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) in the n8n community nodes documentation.

  ## Operations

  Base URL : https://yourtext.guru/api/v2/

  1. Status Endpoints
  Endpoints for monitoring API availability and usage.
  ________________________________________
  GET /status
  Description:
  Check the current operational status of the API.
  Parameters:
  None
  ________________________________________
  GET /consumption/openai
  Description:
  Retrieve information about OpenAI-related usage and consumption.
  Parameters:
  •	lastId (integer) – Retrieve consumption entries after this ID (for pagination or incremental updates).

  2. Project Endpoints
  Endpoints for managing SEO projects, including creation, retrieval, and deletion.
  ________________________________________
  GET /projects
  Description:
  Retrieve a list of all projects associated with the authenticated user.
  Parameters:
  None
  ________________________________________
  POST /projects
  Description:
  Create a new project.
  Parameters:
  •	name (string) – Name of the project.
  •	host (string) – Associated domain or host (e.g., example.com).
  ________________________________________
  GET /projects/{projectId}
  Description:
  Retrieve detailed information about a specific project.
  Parameters:
  •	projectId (integer) – ID of the project to retrieve.
  ________________________________________
  POST /projects/{projectId}
  Description:
  Update the name or host of an existing project.
  Parameters:
  •	projectId (integer) – ID of the project to update.
  •	name (string) – New name for the project.
  •	host (string) – New host or domain for the project.
  ________________________________________
  DELETE /projects/{projectId}
  Description:
  Delete a specific project by its ID.
  Parameters:
  •	projectId (integer) – ID of the project to delete.

  3. Group Endpoints
  Endpoints for organizing guides into groups and generating topical meshes within a project.
  ________________________________________
  GET /projects/{projectId}/groups
  Description:
  Retrieve all groups within a specific project.
  Parameters:
  •	projectId (integer) – ID of the project.
  ________________________________________
  POST /projects/{projectId}/groups
  Description:
  Create a new group within a project.
  Parameters:
  •	projectId (integer) – ID of the project.
  •	name (string) – Name of the new group.
  ________________________________________
  GET /projects/{projectId}/groups/{groupId}
  Description:
  Retrieve details of a specific group.
  Parameters:
  •	projectId (integer) – ID of the project.
  •	groupId (integer) – ID of the group.
  ________________________________________
  POST /projects/{projectId}/groups/{groupId}
  Description:
  Update the name of a specific group.
  Parameters:
  •	projectId (integer) – ID of the project.
  •	groupId (integer) – ID of the group.
  •	name (string) – New name for the group.
  ________________________________________
  DELETE /projects/{projectId}/groups/{groupId}
  Description:
  Delete a specific group from a project.
  Parameters:
  •	projectId (integer) – ID of the project.
  •	groupId (integer) – ID of the group.
  ________________________________________
  POST /projects/{projectId}/groups/{groupId}/guides/add
  Description:
  Add a list of guide to a group.
  Parameters:
  •	projectId (integer) – ID of the project.
  •	groupId (integer) – ID of the group.
  •	guideId (integer) – ID of the guide to add.
  ________________________________________
  POST /projects/{projectId}/groups/{groupId}/guides/remove
  Description:
  Remove guides from a group.
  Parameters:
  •	projectId (integer) – ID of the project.
  •	groupId (integer) – ID of the group.
  •	guideId (integer) – ID of the guide to remove.
  ________________________________________
  GET /projects/{projectId}/groups/{groupId}/topicalMesh
  Description:
  Retrieve the topical mesh associated with a group.
  Parameters:
  •	projectId (integer) – ID of the project.
  •	groupId (integer) – ID of the group.
  ________________________________________
  POST /projects/{projectId}/groups/{groupId}/topicalMesh
  Description:
  Generate a topical mesh for a group.
  Parameters:
  •	projectId (integer) – ID of the project.
  •	groupId (integer) – ID of the group.
  ________________________________________
  GET /projects/{projectId}/groups/{groupId}/topicalMesh/wordcloud
  Description:
  Retrieve a word cloud visualization of the group's topical mesh.
  Parameters:
  •	projectId (integer) – ID of the project.
  •	groupId (integer) – ID of the group.
  ________________________________________
  GET /projects/{projectId}/groups/{groupId}/topicalMesh/paa
  Description:
  Retrieve "People Also Ask" questions related to the group's topical mesh.
  Parameters:
  •	projectId (integer) – ID of the project.
  •	groupId (integer) – ID of the group.

  4. Guide Endpoints
  Endpoints related to the creation, retrieval, and analysis of SEO guides.
  ________________________________________
  GET /guides
  Description:
  Retrieve a list of guides, optionally filtered by project, group, or other attributes.
  Parameters:
  •	projectId (integer) – ID of the associated project.
  •	lastId (integer) – Retrieve guides after this ID (for pagination).
  •	lang (string) – Language code (e.g., " en_GB", " fr_FR").
  •	apiOnly (integer) – If set to 1, only API-generated guides are returned.
  •	groupId (integer) – ID of the associated group.
  •	status (string) – Filter by guide status.
  ________________________________________
  POST /guides
  Description:
  Create a new SEO guide based on a query (keyword or phrase).
  Parameters:
  •	query (string) – Target keyword or phrase.
  •	lang (string) – Language code for the guide.
  •	projectId (integer) – ID of the project to associate the guide with.
  •	type (string) – Type of guide (, "google" or "bing").
  •	groupId (integer) – group ID to associate the guide with.
  ________________________________________
  GET /guides/{guideId}
  Description:
  Retrieve detailed information about a specific guide.
  Parameters:
  •	guideId (integer) – ID of the guide to retrieve.
  ________________________________________
  DELETE /guides/{guideId}
  Description:
  Delete a specific guide by its ID.
  Parameters:
  •	guideId (integer) – ID of the guide to delete.
  ________________________________________
  GET /guides/{guideId}/paa
  Description:
  Retrieve "People Also Ask" questions related to the guide's query.
  Parameters:
  •	guideId (integer) – ID of the guide.
  ________________________________________
  GET /guides/{guideId}/related
  Description:
  Retrieve keywords and topics related to the guide's query.
  Parameters:
  •	guideId (integer) – ID of the guide.
  ________________________________________
  POST /guides/{guideId}/check
  Description:
  Check the SEO quality of a given text against the guide.
  Parameters:
  •	guideId (integer) – ID of the guide.
  •	text (string) – The content to analyze.
  ________________________________________
  GET /guides/{guideId}/serp
  Description:
  Retrieve SERP (Search Engine Results Page) data related to the guide’s keyword.
  Parameters:
  •	guideId (integer) – ID of the guide.
  ________________________________________
  GET /guides/{guideId}/brief
  Description:
  Get the current brief associated with the guide.
  Parameters:
  •	guideId (integer) – ID of the guide.
  ________________________________________
  POST /guides/{guideId}/brief
  Description:
  Generate or update the brief for the guide.
  Parameters:
  •	guideId (integer) – ID of the guide.
  ________________________________________
  GET /guides/{guideId}/brief/analyze
  Description:
  Retrieve the result of the latest brief analysis.
  Parameters:
  •	guideId (integer) – ID of the guide.
  ________________________________________
  POST /guides/{guideId}/brief/analyze
  Description:
  Submit a brief for SEO analysis.
  Parameters:
  •	guideId (integer) – ID of the guide.
  •	requestBody (string) – Text content to analyze.
  ________________________________________
  GET /guides/{guideId}/brief/analyze/{analyzeId}
  Description:
  Retrieve a specific analysis result by its ID.
  Parameters:
  •	guideId (integer) – ID of the guide.
  •	analyzeId (integer) – ID of the analysis to retrieve.

  5. Seo Txl Endpoints
  Endpoints for generating and manipulating SEO-optimized text (TXL) based on guide data.
  ________________________________________
  POST /guides/{guideId}/seotxl/auto
  Description:
  Automatically generate SEO content based on the guide and input text.
  Parameters:
  •	guide (integer) – ID of the guide.
  •	text (string) – Input text to base the generation on.
  ________________________________________
  POST /guides/{guideId}/seotxl/outline
  Description:
  Generate a structured outline for SEO content.
  Parameters:
  •	guide (integer) – ID of the guide.
  •	text (string) – Input topic or content to guide the outline.
  ________________________________________
  POST /guides/{guideId}/seotxl/questions
  Description:
  Generate a list of relevant questions based on the guide’s topic.
  Parameters:
  •	guide (integer) – ID of the guide.
  ________________________________________
  POST /guides/{guideId}/seotxl/rephrase
  Description:
  Rephrase a given text to improve clarity or SEO performance.
  Parameters:
  •	guide (integer) – ID of the guide.
  •	text (string) – The text to rephrase.
  ________________________________________
  POST /guides/{guideId}/seotxl/create
  Description:
  Generate custom SEO text with configurable temperature and word limit.
  Parameters:
  •	guide (integer) – ID of the guide.
  •	text (string) – Input prompt or content base.
  •	temperature (integer) – Controls creativity (higher = more creative).
  •	maxWords (integer) – Maximum number of words in the output.


  ## Credentials

  To get your API key, please refer to [this page](https://yourtext.guru/en/pricing) for pricing and details.
  All API requests require authentication. You must include your API key in the request headers:

  ```
  Authorization: Bearer YOUR_API_KEY
  ```

  Replace `YOUR_API_KEY` with your actual API key.

  ## Compatibility

  Tested on n8n Version: 1.100.1

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  * For more detailed information, refer to the [official API documentation](https://yourtext.guru/api/v2/documentation)
    If you encounter issues or have questions, please contact the YourText.Guru support team through their support portal.


  ## Version history

  version: 0.1.0

ai_documentation_summary:
  {"purpose":"This n8n community node integrates YourTextGuru, an SEO content optimization tool, to enable content analysis, keyword research, and project management within n8n workflows.","capabilities":["Monitor API status and OpenAI usage consumption","Create, retrieve, update, and delete SEO projects","Organize content into groups and manage guide associations","Generate and retrieve topical meshes for content groups","Create word cloud visualizations of topical data","Retrieve 'People Also Ask' questions for SEO analysis","Manage SEO guides with filtering by project, group, language, and API generation status"],"authentication":"API Key (implied by 'authenticated user' references in endpoints)","commonUseCases":["Automated SEO content planning and organization","Keyword research and topical authority mapping","Content gap analysis using People Also Ask data","Automated creation of SEO guide structures"],"limitations":["Authentication method not explicitly documented in the provided text","Full API documentation is truncated in the source material"],"relatedNodes":["n8n-nodes-http.request","n8n-nodes-http.response"]}


node_type: n8n-nodes-dataforseo.dataForSeo
package_name: n8n-nodes-dataforseo
display_name: DataForSEO
description: DataForSEO
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: dataforseo
author_github_url: https://github.com/dataforseo/
npm_package_name: n8n-nodes-dataforseo
npm_version: 1.6.1
community_fetched_at: 2026-04-16T09:43:36.427Z
ai_summary_generated_at: 2026-03-25 22:47:20
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "backlinks",
      "options": [
        {
          "name": "Backlink",
          "value": "backlinks"
        },
        {
          "name": "SERP",
          "value": "serp"
        },
        {
          "name": "Business Data",
          "value": "business_data"
        },
        {
          "name": "On Page",
          "value": "on_page"
        },
        {
          "name": "Keywords Data",
          "value": "keywords_data"
        },
        {
          "name": "Labs",
          "value": "labs"
        },
        {
          "name": "AI Optimization",
          "value": "ai_optimization"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get-backlinks",
      "options": [
        {
          "name": "Get Backlinks",
          "value": "get-backlinks",
          "action": "Get backlinks",
          "description": "Get a list of backlinks for a domain, subdomain or page"
        },
        {
          "name": "Get Backlink Summary",
          "value": "get-backlink-summary",
          "action": "Get backlink summary",
          "description": "Get an overview of backlink data for a domain, subdomain, or webpage"
        },
        {
          "name": "Get Historical Backlink Summary",
          "value": "get-historical-backlink-summary",
          "action": "Get historical backlink summary",
          "description": "Get historical backlink data for a domain back to the beginning of 2019"
        },
        {
          "name": "Get Bulk Backlink Rank",
          "value": "get-bulk-backlink-rank",
          "action": "Get bulk backlink rank",
          "description": "Get rank scores for up to 1,000 domains, subdomains, and pages"
        },
        {
          "name": "Get Bulk Backlink Stats",
          "value": "get-bulk-backlink-stats",
          "action": "Get bulk backlink stats",
          "description": "Get the number of backlinks for up to 1,000 domains, subdomains, and pages"
        },
        {
          "name": "Get Backlinks Pages Summary",
          "value": "get-backlinks-page-summary",
          "action": "Get backlinks pages summary",
          "description": "Get an overview of backlinks and associated data in bulk"
        },
        {
          "name": "Get Bulk Referring Domain Stats",
          "value": "get-bulk-referring-domain-stats",
          "action": "Get bulk referring domain stats",
          "description": "Get the number of referring domains for up to 1,000 domains, subdomains, and pages"
        },
        {
          "name": "Get Referring Domains",
          "value": "get-referring-domains",
          "action": "Get referring domains",
          "description": "Get a detailed overview of referring domains pointing to the target you specify"
        },
        {
          "name": "Get Bulk Spam Scores",
          "value": "get-bulk-spam-scores",
          "action": "Get bulk spam scores",
          "description": "Get Spam Scores for up to 1,000 domains, subdomains, and pages"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "backlinks"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get-parsed-serp",
      "options": [
        {
          "name": "Get Parsed SERP",
          "value": "get-parsed-serp",
          "action": "Get parsed serp",
          "description": "Get Google Search results for the specified keyword"
        },
        {
          "name": "Get Finance Explore",
          "value": "get-finance-explore",
          "action": "Get finance explore",
          "description": "Get real-time data from the ‘Explore’ tab of Google Finance"
        },
        {
          "name": "Get Finance Markets",
          "value": "get-finance-markets",
          "action": "Get finance markets",
          "description": "Get real-time data from the ‘Markets’ tab of Google Finance"
        },
        {
          "name": "Get Finance Quote",
          "value": "get-finance-quote",
          "action": "Get finance quote",
          "description": "Get real-time data from the ‘Quote’ tab of Google Finance"
        },
        {
          "name": "Search Google Finance Tickers",
          "value": "search-google-finance-tickers",
          "action": "Search google finance tickers",
          "description": "Search by company name, market, or financial instrument to get Google Finance data on stocks, futures, and asset pairs, their value, growth trends, and identifiers"
        },
        {
          "name": "Get Google AI Mode SERP",
          "value": "get-google-ai-mode-serp",
          "action": "Get google ai mode serp",
          "description": "Get search results from the AI Mode feature of Google Search"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "serp"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get-business-listings",
      "options": [
        {
          "name": "Get Business Listings",
          "value": "get-business-listings",
          "action": "Get business listings",
          "description": "Get information about businesses listed on Google Maps in the specified categories"
        },
        {
          "name": "Get Business Listings Categories Aggregation",
          "value": "get-business-listings-categories-aggregation",
          "action": "Get business listings categories aggregation",
          "description": "Get data about groups of related business categories along with the number of entities in each category"
        },
        {
          "name": "Get Google Reviews",
          "value": "get-google-reviews",
          "action": "Get google reviews",
          "description": "Fetch reviews and related data from millions of Google Business Profiles around the world"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "business_data"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get-page-audit-check",
      "options": [
        {
          "name": "Get Page Audit Check",
          "value": "get-page-audit-check",
          "action": "Get page audit check",
          "description": "Run an essential SEO Audit of a page"
        },
        {
          "name": "Parse Page Content",
          "value": "parse-page-content",
          "action": "Parse page content",
          "description": "Get parsed and structured content of any page, including link URLs, anchors, headings, and text"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "on_page"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get-google-search-volume",
      "options": [
        {
          "name": "Get Google Search Volume",
          "value": "get-google-search-volume",
          "action": "Get google search volume",
          "description": "Get search volume, CPC, and competition for keywords"
        },
        {
          "name": "Get Keywords for Keywords",
          "value": "get-keywords-for-keywords",
          "action": "Get keywords for keywords",
          "description": "Get relevant keyword suggestions for the specified terms"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "keywords_data"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get-domain-rank-overview",
      "options": [
        {
          "name": "Get Domain Rank Overview",
          "value": "get-domain-rank-overview",
          "action": "Get domain rank overview",
          "description": "Get ranking and traffic data from organic search for a domain"
        },
        {
          "name": "Get Keyword Suggestions",
          "value": "get-keyword-suggestions",
          "action": "Get keyword suggestions",
          "description": "Get search terms that are relevant to the product or service categories of all the specified keywords"
        },
        {
          "name": "Get Ranked Keywords",
          "value": "get-ranked-keywords",
          "action": "Get ranked keywords",
          "description": "Get the list of keywords that any domain or webpage is ranking for"
        },
        {
          "name": "Get Keyword Difficulty",
          "value": "get-keyword-difficulty",
          "action": "Get keyword difficulty",
          "description": "Get Keyword Difficulty for the specified keywords"
        },
        {
          "name": "Get Organic Traffic Stats",
          "value": "get-organic-traffic-stats",
          "action": "Get organic traffic stats",
          "description": "Get an estimation of monthly organic traffic for a website or page"
        },
        {
          "name": "Get Historical Traffic Stats",
          "value": "get-historical-traffic-stats",
          "action": "Get historical traffic stats",
          "description": "Get a historical estimate of organic traffic for a website or page"
        },
        {
          "name": "Get Keyword Ideas",
          "value": "get-keyword-ideas",
          "action": "Get keyword ideas",
          "description": "Get search terms that fall into the same Google product or service category as the specified keywords"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "labs"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get-ai-keyword-search-volume",
      "options": [
        {
          "name": "Get AI Keyword Search Volume",
          "value": "get-ai-keyword-search-volume",
          "action": "Get AI keyword search volume",
          "description": "Get search volume data for target keywords based on their estimated usage in AI tools"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "ai_optimization"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get Backlinks",
      "value": "get-backlinks",
      "action": "Get backlinks",
      "description": "Get a list of backlinks for a domain, subdomain or page",
      "resource": "backlinks"
    },
    {
      "name": "Get Backlink Summary",
      "value": "get-backlink-summary",
      "action": "Get backlink summary",
      "description": "Get an overview of backlink data for a domain, subdomain, or webpage",
      "resource": "backlinks"
    },
    {
      "name": "Get Historical Backlink Summary",
      "value": "get-historical-backlink-summary",
      "action": "Get historical backlink summary",
      "description": "Get historical backlink data for a domain back to the beginning of 2019",
      "resource": "backlinks"
    },
    {
      "name": "Get Bulk Backlink Rank",
      "value": "get-bulk-backlink-rank",
      "action": "Get bulk backlink rank",
      "description": "Get rank scores for up to 1,000 domains, subdomains, and pages",
      "resource": "backlinks"
    },
    {
      "name": "Get Bulk Backlink Stats",
      "value": "get-bulk-backlink-stats",
      "action": "Get bulk backlink stats",
      "description": "Get the number of backlinks for up to 1,000 domains, subdomains, and pages",
      "resource": "backlinks"
    },
    {
      "name": "Get Backlinks Pages Summary",
      "value": "get-backlinks-page-summary",
      "action": "Get backlinks pages summary",
      "description": "Get an overview of backlinks and associated data in bulk",
      "resource": "backlinks"
    },
    {
      "name": "Get Bulk Referring Domain Stats",
      "value": "get-bulk-referring-domain-stats",
      "action": "Get bulk referring domain stats",
      "description": "Get the number of referring domains for up to 1,000 domains, subdomains, and pages",
      "resource": "backlinks"
    },
    {
      "name": "Get Referring Domains",
      "value": "get-referring-domains",
      "action": "Get referring domains",
      "description": "Get a detailed overview of referring domains pointing to the target you specify",
      "resource": "backlinks"
    },
    {
      "name": "Get Bulk Spam Scores",
      "value": "get-bulk-spam-scores",
      "action": "Get bulk spam scores",
      "description": "Get Spam Scores for up to 1,000 domains, subdomains, and pages",
      "resource": "backlinks"
    },
    {
      "name": "Get Parsed SERP",
      "value": "get-parsed-serp",
      "action": "Get parsed serp",
      "description": "Get Google Search results for the specified keyword",
      "resource": "serp"
    },
    {
      "name": "Get Finance Explore",
      "value": "get-finance-explore",
      "action": "Get finance explore",
      "description": "Get real-time data from the ‘Explore’ tab of Google Finance",
      "resource": "serp"
    },
    {
      "name": "Get Finance Markets",
      "value": "get-finance-markets",
      "action": "Get finance markets",
      "description": "Get real-time data from the ‘Markets’ tab of Google Finance",
      "resource": "serp"
    },
    {
      "name": "Get Finance Quote",
      "value": "get-finance-quote",
      "action": "Get finance quote",
      "description": "Get real-time data from the ‘Quote’ tab of Google Finance",
      "resource": "serp"
    },
    {
      "name": "Search Google Finance Tickers",
      "value": "search-google-finance-tickers",
      "action": "Search google finance tickers",
      "description": "Search by company name, market, or financial instrument to get Google Finance data on stocks, futures, and asset pairs, their value, growth trends, and identifiers",
      "resource": "serp"
    },
    {
      "name": "Get Google AI Mode SERP",
      "value": "get-google-ai-mode-serp",
      "action": "Get google ai mode serp",
      "description": "Get search results from the AI Mode feature of Google Search",
      "resource": "serp"
    },
    {
      "name": "Get Business Listings",
      "value": "get-business-listings",
      "action": "Get business listings",
      "description": "Get information about businesses listed on Google Maps in the specified categories",
      "resource": "business_data"
    },
    {
      "name": "Get Business Listings Categories Aggregation",
      "value": "get-business-listings-categories-aggregation",
      "action": "Get business listings categories aggregation",
      "description": "Get data about groups of related business categories along with the number of entities in each category",
      "resource": "business_data"
    },
    {
      "name": "Get Google Reviews",
      "value": "get-google-reviews",
      "action": "Get google reviews",
      "description": "Fetch reviews and related data from millions of Google Business Profiles around the world",
      "resource": "business_data"
    },
    {
      "name": "Get Page Audit Check",
      "value": "get-page-audit-check",
      "action": "Get page audit check",
      "description": "Run an essential SEO Audit of a page",
      "resource": "on_page"
    },
    {
      "name": "Parse Page Content",
      "value": "parse-page-content",
      "action": "Parse page content",
      "description": "Get parsed and structured content of any page, including link URLs, anchors, headings, and text",
      "resource": "on_page"
    },
    {
      "name": "Get Google Search Volume",
      "value": "get-google-search-volume",
      "action": "Get google search volume",
      "description": "Get search volume, CPC, and competition for keywords",
      "resource": "keywords_data"
    },
    {
      "name": "Get Keywords for Keywords",
      "value": "get-keywords-for-keywords",
      "action": "Get keywords for keywords",
      "description": "Get relevant keyword suggestions for the specified terms",
      "resource": "keywords_data"
    },
    {
      "name": "Get Domain Rank Overview",
      "value": "get-domain-rank-overview",
      "action": "Get domain rank overview",
      "description": "Get ranking and traffic data from organic search for a domain",
      "resource": "labs"
    },
    {
      "name": "Get Keyword Suggestions",
      "value": "get-keyword-suggestions",
      "action": "Get keyword suggestions",
      "description": "Get search terms that are relevant to the product or service categories of all the specified keywords",
      "resource": "labs"
    },
    {
      "name": "Get Ranked Keywords",
      "value": "get-ranked-keywords",
      "action": "Get ranked keywords",
      "description": "Get the list of keywords that any domain or webpage is ranking for",
      "resource": "labs"
    },
    {
      "name": "Get Keyword Difficulty",
      "value": "get-keyword-difficulty",
      "action": "Get keyword difficulty",
      "description": "Get Keyword Difficulty for the specified keywords",
      "resource": "labs"
    },
    {
      "name": "Get Organic Traffic Stats",
      "value": "get-organic-traffic-stats",
      "action": "Get organic traffic stats",
      "description": "Get an estimation of monthly organic traffic for a website or page",
      "resource": "labs"
    },
    {
      "name": "Get Historical Traffic Stats",
      "value": "get-historical-traffic-stats",
      "action": "Get historical traffic stats",
      "description": "Get a historical estimate of organic traffic for a website or page",
      "resource": "labs"
    },
    {
      "name": "Get Keyword Ideas",
      "value": "get-keyword-ideas",
      "action": "Get keyword ideas",
      "description": "Get search terms that fall into the same Google product or service category as the specified keywords",
      "resource": "labs"
    },
    {
      "name": "Get AI Keyword Search Volume",
      "value": "get-ai-keyword-search-volume",
      "action": "Get AI keyword search volume",
      "description": "Get search volume data for target keywords based on their estimated usage in AI tools",
      "resource": "ai_optimization"
    }
  ]

npm_readme:
  DataForSEO Node for n8n
  ==========

  With the DataForSEO node in n8n, you can retrieve marketing and SEO data, such as Google rankings, keyword suggestions, backlink reports, etc., through the DataForSEO API.

  To use the DataForSEO node, you must have a DataForSEO account. You can create an account at [dataforseo.com](https://dataforseo.com/).

  Refer to the [DataForSEO API documentation](https://docs.dataforseo.com/v3/) for the list of available endpoints.

  ## Contents
  - [Connect DataForSEO to n8n](#connect-dataforseo-to-n8n)
  - [Available DataForSEO Operations](#available-dataforseo-operations)
  - [Example DataForSEO Workflow Configurations](#example-dataforseo-workflow-configurations)


  Connect DataForSEO to n8n
  --------------------------

  ## Prerequisites

  - DataForSEO account
  - n8n installed or cloud account

  ## Setup

  To establish the connection, you must:

  1.  [Obtain your DataForSEO API credentials.](#obtain-your-dataforseo-api-credentials "Obtain Your DataForSEO API Credentials")
      
  2.  [Establish the connection in n8n.](#establish-the-connection-with-dataforseo-in-n8n "Establish the connection with DataForSEO in n8n")
      

  ### Obtain Your DataForSEO API Credentials

  To obtain your DataForSEO API credentials (API login and password):

  1.  Log in to your DataForSEO account dashboard.
      
  2.  In the left sidebar, click **API Access**.
      
  3.  Copy the **API Login** and **API Password** values shown and store them in a safe place. 

  Note that the API password is visible for the first 24 hours after registration. Later, you can request the password by clicking “Send by e-mail,” then copy the credentials from it.


  Enter these values in the **API Login** and **API Password** fields in n8n.

  ### Establish the connection with DataForSEO in n8n

  To establish the connection in n8n:

  1.  Log in to your n8n account, add a DataForSEO node to your workflow, and click **Create new credential**.
      
  2.  Optional: Rename the credential.
      
  3.  In the **API Login** and **API Password** fields, enter the values copied above.
      
  4.  Click **Save**.
      

  You have successfully established the connection. You can now build workflows using DataForSEO operations.


  Available DataForSEO Operations
  --------------------------

  After connecting the app, you can perform the following operations:

  ## DataForSEO SERP API

  ### Google
  + [Get Live Google Organic SERP Regular](https://docs.dataforseo.com/v3/serp/google/organic/live/regular/?bash)
  + [Get Live Google Organic SERP Advanced](https://docs.dataforseo.com/v3/serp/google/organic/live/advanced/?bash)
  + [Get Live Google Organic SERP HTML](https://docs.dataforseo.com/v3/serp/google/organic/live/html/?bash)
  + [Get Google Organic SERP Regular](https://docs.dataforseo.com/v3/serp/google/organic/task_get/regular/?bash)
  + [Get Google Organic SERP Advanced](https://docs.dataforseo.com/v3/serp/google/organic/task_get/advanced/?bash)
  + [Get Google Organic SERP HTML](https://docs.dataforseo.com/v3/serp/google/organic/task_get/html/?bash)
  + [Get Live Google AI Mode SERP Advanced](https://docs.dataforseo.com/v3/serp/google/ai_mode/live/advanced/?bash)
  + [Get Live Google AI Mode SERP HTML](https://docs.dataforseo.com/v3/serp/google/ai_mode/live/html/?bash)
  + [Get Google AI Mode SERP Advanced](https://docs.dataforseo.com/v3/serp/google/ai_mode/task_get/advanced/?bash)
  + [Get Google AI Mode SERP HTML](https://docs.dataforseo.com/v3/serp/google/ai_mode/task_get/html/?bash)
  + [Get Live Google Maps SERP Advanced](https://docs.dataforseo.com/v3/serp/google/maps/live/advanced/?bash)
  + [Get Google Maps SERP Advanced](https://docs.dataforseo.com/v3/serp/google/maps/task_get/advanced/?bash)
  + [Get Live Google Local Finder SERP Advanced](https://docs.dataforseo.com/v3/serp/google/local_finder/live/advanced/?bash)
  + [Get Live Google Local Finder SERP HTML](https://docs.dataforseo.com/v3/serp/google/local_finder/live/html/?bash)
  + [Get Google Local Finder SERP Advanced](https://docs.dataforseo.com/v3/serp/google/local_finder/task_get/advanced/?bash)
  + [Get Google Local Finder SERP HTML](https://docs.dataforseo.com/v3/serp/google/local_finder/task_get/html/?bash)
  + [Get Live Google News SERP Advanced](https://docs.dataforseo.com/v3/serp/google/news/live/advanced/?bash)
  + [Get Live Google News SERP HTML](https://docs.dataforseo.com/v3/serp/google/news/live/html/?bash)
  + [Get Google News SERP Advanced](https://docs.dataforseo.com/v3/serp/google/news/task_get/advanced/?bash)
  + [Get Google News SERP HTML](https://docs.dataforseo.com/v3/serp/google/news/task_get/html/?bash)
  + [Get Live Google Events SERP Advanced](https://docs.dataforseo.com/v3/serp/google/events/live/advanced/?bash)
  + [Get Google Events SERP Advanced](https://docs.dataforseo.com/v3/serp/google/events/task_get/advanced/?bash)
  + [Get Live Google Images SERP Advanced](https://docs.dataforseo.com/v3/serp/google/images/live/advanced/?bash)
  + [Get Live Google Images SERP HTML](https://docs.dataforseo.com/v3/serp/google/images/live/html/?bash)
  + [Get Google Images SERP Advanced](https://docs.dataforseo.com/v3/serp/google/images/task_get/advanced/?bash)
  + [Get Google Images SERP HTML](https://docs.dataforseo.com/v3/serp/google/images/task_get/html/?bash)
  + [Get Google Search By Image SERP Advanced](https://docs.dataforseo.com/v3/serp/google/search_by_image/task_get/advanced/?bash)
  + [Get Google Search By Image SERP HTML](https://docs.dataforseo.com/v3/serp/google/search_by_image/task_get/html/?bash)
  + [Get Google Jobs SERP Advanced](https://docs.dataforseo.com/v3/serp/google/jobs/task_get/advanced/?bash)
  + [Get Google Jobs SERP HTML](https://docs.dataforseo.com/v3/serp/google/jobs/task_get/html/?bash)
  + [Get Live Google Autocomplete SERP Advanced](https://docs.dataforseo.com/v3/serp/google/autocomplete/live/advanced/?bash)
  + [Get Google Autocomplete SERP Advanced](https://docs.dataforseo.com/v3/serp/google/autocomplete/task_get/advanced/?bash)
  + [Get Live Google Dataset Search SERP Advanced](https://docs.dataforseo.com/v3/serp/google/dataset_search/live/advanced/?bash)
  + [Get Google Dataset Search SERP Advanced](https://docs.dataforseo.com/v3/serp/google/dataset_search/task_get/advanced/?bash)
  + [Get Live Google Dataset Info Advanced](https://docs.dataforseo.com/v3/serp/google/dataset_info/live/advanced/?bash)
  + [Get Google Dataset Info Advanced](https://docs.dataforseo.com/v3/serp/google/dataset_info/task_get/advanced/?bash)
  + [Get Live Google Ads Advertisers SERP Advanced](https://docs.dataforseo.com/v3/serp/google/ads_advertisers/live/advanced/?bash)
  + [Get Google Ads Advertisers SERP Advanced](https://docs.dataforseo.com/v3/serp/google/ads_advertisers/task_get/advanced/?bash)
  + [Get Live Google Ads Search Advanced](https://docs.dataforseo.com/v3/serp/google/ads_search/live/advanced/?bash)
  +[Get Google Ads Search Advanced](https://docs.dataforseo.com/v3/serp/google/ads_search/task_get/advanced/?bash)
  + [Get Live Finance Explore SERP Advanced](https://docs.dataforseo.com/v3/serp/google/finance_explore/live/advanced/?bash)
  + [Get Live Finance Explore SERP HTML](https://docs.dataforseo.com/v3/serp/google/finance_explore/live/html/?bash)
  + [Get Finance Explore SERP Advanced](https://docs.dataforseo.com/v3/serp/google/finance_explore/task_get/advanced/?bash)
  + [Get Finance Explore SERP HTML](https://docs.dataforseo.com/v3/serp/google/finance_explore/task_get/html/?bash)
  + [Get Live Finance Markets SERP Advanced](https://docs.dataforseo.com/v3/serp/google/finance_markets/live/advanced/?bash)
  + [Get Live Finance Markets SERP HTML](https://docs.dataforseo.com/v3/serp/google/finance_markets/live/html/?bash)
  + [Get Finance Markets SERP Advanced](https://docs.dataforseo.com/v3/serp/google/finance_markets/task_get/advanced/?bash)
  + [Get Finance Markets SERP HTML](https://docs.dataforseo.com/v3/serp/google/finance_markets/task_get/html/?bash)
  + [Get Live Finance Quote SERP Advanced](https://docs.dataforseo.com/v3/serp/google/finance_quote/live/advanced/?bash)
  + [Get Live Finance Quote SERP HTML](https://docs.dataforseo.com/v3/serp/google/finance_quote/live/html/?bash)
  + [Get Finance Quote SERP Advanced](https://docs.dataforseo.com/v3/serp/google/finance_quote/task_get/advanced/?bash)
  + [Get Finance Quote SERP HTML](https://docs.dataforseo.com/v3/serp/google/finance_quote/task_get/html/?bash)
  + [Get Live Finance Ticker Search Advanced](https://docs.dataforseo.com/v3/serp/google/finance_ticker_search/live/advanced/?bash)
  + [Get Finance Ticker Search Advanced](https://docs.dataforseo.com/v3/serp/google/finance_ticker_search/task_get/advanced/?bash)

  ### Bing
  + [Get Live Bing Organic SERP Regular](https://docs.dataforseo.com/v3/serp/bing/organic/live/regular/?bash)
  + [Get Live Bing Organic SERP Advanced](https://docs.dataforseo.com/v3/serp/bing/organic/live/advanced/?bash)
  + [Get Live Bing Organic SERP HTML](https://docs.dataforseo.com/v3/serp/bing/organic/live/html/?bash)
  + [Get Bing Organic SERP Regular](https://docs.dataforseo.com/v3/serp/bing/organic/task_get/regular/?bash)
  + [Get Bing Organic SERP HTML](https://docs.dataforseo.com/v3/serp/bing/organic/task_get/html/?bash)
  + [Get Live Bing Local Finder SERP Regular](https://docs.dataforseo.com/v3/serp/bing/organic/task_get/regular/?bash)
  + [Get Live Bing Local Finder SERP HTML](https://docs.dataforseo.com/v3/serp/bing/organic/task_get/html/?bash)

  ### YouTube
  + [Get Live YouTube Organic SERP Advanced](https://docs.dataforseo.com/v3/serp/youtube/organic/live/advanced/?bash)
  + [Get YouTube Organic SERP Advanced](https://docs.dataforseo.com/v3/serp/youtube/organic/task_get/advanced/?bash)
  + [Get Live YouTube Video Info Advanced](https://docs.dataforseo.com/v3/serp/youtube/video_info/live/advanced/?bash)
  + [Get YouTube Video Info Advanced](https://docs.dataforseo.com/v3/serp/youtube/video_info/task_get/advanced/?bash)
  + [Get Live YouTube Subtitles Advanced](https://docs.dataforseo.com/v3/serp/youtube/video_subtitles/live/advanced/?bash)
  + [Get YouTube Subtitles Advanced](https://docs.dataforseo.com/v3/serp/youtube/video_subtitles/task_get/advanced/?bash)
  + [Get Live YouTube Comments Advanced](https://docs.dataforseo.com/v3/serp/youtube/video_comments/live/advanced/?bash)
  + [Get YouTube Comments Advanced](https://docs.dataforseo.com/v3/serp/youtube/video_comments/task_get/advanced/?bash)

  ### Yahoo
  + [Get Live Yahoo Organic SERP Regular](https://docs.dataforseo.com/v3/serp/yahoo/organic/live/regular/?bash)
  + [Get Live Yahoo Organic SERP Advanced](https://docs.dataforseo.com/v3/serp/yahoo/organic/live/advanced/?bash)
  + [Get Live Yahoo Organic SERP HTML](https://docs.dataforseo.com/v3/serp/yahoo/organic/live/html/?bash)
  + [Get Yahoo Organic SERP Regular](https://docs.dataforseo.com/v3/serp/yahoo/organic/task_get/regular/?bash)
  + [Get Yahoo Organic SERP Advanced](https://docs.dataforseo.com/v3/serp/yahoo/organic/task_get/advanced/?bash)
  + [Get Yahoo Organic SERP HTML](https://docs.dataforseo.com/v3/serp/yahoo/organic/task_get/html/?bash)

  ### Baidu
  + [Get Baidu Organic SERP Regular](https://docs.dataforseo.com/v3/serp/baidu/organic/task_get/regular/?bash)
  + [Get Baidu Organic SERP Advanced](https://docs.dataforseo.com/v3/serp/baidu/organic/task_get/advanced/?bash)
  + [Get Baidu Organic SERP HTML](https://docs.dataforseo.com/v3/serp/baidu/organic/task_get/html/?bash)

  ### Naver
  + [Get Naver Organic SERP Regular](https://docs.dataforseo.com/v3/serp/naver/organic/task_get/regular/?bash)
  + [Get Naver Organic SERP Advanced](https://docs.dataforseo.com/v3/serp/naver/organic/task_get/advanced/?bash)
  + [Get Naver Organic SERP HTML](https://docs.dataforseo.com/v3/serp/naver/organic/task_get/html/?bash)

  ### Seznam
  + [Get Seznam Organic SERP Regular](https://docs.dataforseo.com/v3/serp/seznam/organic/task_get/regular/?bash)
  + [Get Seznam Organic SERP Advanced](https://docs.dataforseo.com/v3/serp/seznam/organic/task_get/advanced/?bash)
  + [Get Seznam Organic SERP HTML](https://docs.dataforseo.com/v3/serp/seznam/organic/task_get/html/?bash)


  ## DataForSEO Keywords Data API

  ### Google Ads
  + [Get Live Google Search Volume](https://docs.dataforseo.com/v3/keywords_data/google_ads/search_volume/live/?bash)
  + [Get Google Search Volume](https://docs.dataforseo.com/v3/keywords_data/google_ads/search_volume/task_get/?bash)
  + [Get Live Google Keywords for Site](https://docs.dataforseo.com/v3/keywords_data/google_ads/keywords_for_site/live/?bash)
  + [Get Google Keywords for Site](https://docs.dataforseo.com/v3/keywords_data/google_ads/keywords_for_site/task_get/?bash)
  + [Get Live Google Keywords for Keywords](https://docs.dataforseo.com/v3/keywords_data/google_ads/keywords_for_keywords/live/?bash)
  + [Get Google Keywords for Keywords](https://docs.dataforseo.com/v3/keywords_data/google_ads/keywords_for_keywords/task_get/?bash)
  + [Get Live Google Ad Traffic By Keywords](https://docs.dataforseo.com/v3/keywords_data/google_ads/ad_traffic_by_keywords/live/?bash)
  + [Get Google Ad Traffic By Keywords](https://docs.dataforseo.com/v3/keywords_data/google_ads/ad_traffic_by_keywords/task_get/?bash)

  ### Bing Ads
  + [Get Live Bing Search Volume](https://docs.dataforseo.com/v3/keywords_data/bing/search_volume/live/?bash)
  + [Get Bing Search Volume](https://docs.dataforseo.com/v3/keywords_data/bing/search_volume/task_get/?bash)
  + [Get Live Bing Search Volume History](https://docs.dataforseo.com/v3/keywords_data/bing/search_volume_history/live/?bash)
  + [Get Bing Search Volume History](https://docs.dataforseo.com/v3/keywords_data/bing/search_volume_history/task_get/?bash)
  + [Get Live Bing Keywords for Site](https://docs.dataforseo.com/v3/keywords_data/bing/keywords_for_site/live/?bash)
  + [Get Bing Keywords for Site](https://docs.dataforseo.com/v3/keywords_data/bing/keywords_for_site/task_get/?bash)
  + [Get Live Bing Keywords for Keywords](https://docs.dataforseo.com/v3/keywords_data/bing/keywords_for_keywords/live/?bash)
  + [Get Bing Keywords for Keywords](https://docs.dataforseo.com/v3/keywords_data/bing/keywords_for_keywords/task_get/?bash)
  + [Get Live Bing Keyword Performance](https://docs.dataforseo.com/v3/keywords_data/bing/keyword_performance/live/?bash)
  + [Get Bing Keyword Performance](https://docs.dataforseo.com/v3/keywords_data/bing/keyword_performance/task_get/?bash)
  + [Get Live Bing Keyword Suggestions for URL](https://docs.dataforseo.com/v3/keywords_data/bing/keyword_suggestions_for_url/live/?bash)
  + [Get Bing Keyword Suggestions for URL](https://docs.dataforseo.com/v3/keywords_data/bing/keyword_suggestions_for_url/task_get/?bash)
  + [Get Live Bing Ads Audience Estimation](https://docs.dataforseo.com/v3/keywords_data/bing/audience_estimation/live/?bash)
  + [Get Bing Ads Audience Estimation](https://docs.dataforseo.com/v3/keywords_data/bing/audience_estimation/task_get/?bash)

  ### Google Trends
  + [Get Live Google Trends Explore](https://docs.dataforseo.com/v3/keywords_data/google_trends/explore/live/?bash)
  + [Get Google Trends Explore](https://docs.dataforseo.com/v3/keywords_data/google_trends/explore/task_get/?bash)

  ### DataForSEO Trends
  + [Get Live DataForSEO Trends Explore](https://docs.dataforseo.com/v3/keywords_data/dataforseo_trends/explore/live/?bash)
  + [Get Live DataForSEO Trends Subregion Interests](https://docs.dataforseo.com/v3/keywords_data/dataforseo_trends/subregion_interests/live/?bash)
  + [Get Live DataForSEO Trends Demography](https://docs.dataforseo.com/v3/keywords_data/dataforseo_trends/demography/live/?bash)
  + [Get Live DataForSEO Trends Merged Data](https://docs.dataforseo.com/v3/keywords_data/dataforseo_trends/merged_data/live/?bash)

  ### Clickstream Data
  + [Get Live DataForSEO Search Volume](https://docs.dataforseo.com/v3/keywords_data/clickstream_data/dataforseo_search_volume/live/?bash)
  + [Get Live Clickstream Global Search Volume](https://docs.dataforseo.com/v3/keywords_data/clickstream_data/global_search_volume/live/?bash)
  + [Get Live Bulk Clickstream Search Volume](https://docs.dataforseo.com/v3/keywords_data/clickstream_data/bulk_search_volume/live/?bash)

  ## DataForSEO Domain Analytics API

  ### Technologies
  + [Get Live Aggregation Technologies](https://docs.dataforseo.com/v3/domain_analytics/technologies/aggregation_technologies/live/?bash)
  + [Get Live Technologies Summary](https://docs.dataforseo.com/v3/domain_analytics/technologies/technologies_summary/live/?bash)
  + [Get Live Technology Stats](https://docs.dataforseo.com/v3/domain_analytics/technologies/technology_stats/live/?bash)
  + [Get Domains By Technology](https://docs.dataforseo.com/v3/domain_analytics/technologies/domains_by_technology/live/?bash)
  + [Get Domains By HTML Terms](https://docs.dataforseo.com/v3/domain_analytics/technologies/domains_by_html_terms/live/?bash)
  + [Get Live Domain Technologies](https://docs.dataforseo.com/v3/domain_analytics/technologies/domain_technologies/live/?bash)

  ### Whois
  + [Get Live Domain Whois Overview](https://docs.dataforseo.com/v3/domain_analytics/whois/overview/live/?bash)

  ## DataForSEO Labs API

  ### Google
  + [Get Keywords For Site](https://docs.dataforseo.com/v3/dataforseo_labs/google/keywords_for_site/live/?bash)
  + [Get Related Keywords](https://docs.dataforseo.com/v3/dataforseo_labs/google/related_keywords/live/?bash)
  + [Get Keyword Suggestions](https://docs.dataforseo.com/v3/dataforseo_labs/google/keyword_suggestions/live/?bash)
  + [Get Keyword Ideas](https://docs.dataforseo.com/v3/dataforseo_labs/google/keyword_ideas/live/?bash)
  + [Get Keyword Difficulty](https://docs.dataforseo.com/v3/dataforseo_labs/google/bulk_keyword_difficulty/live/?bash)
  + [Get Search Intent](https://docs.dataforseo.com/v3/dataforseo_labs/google/search_intent/live/?bash)
  + [Get Keyword Overview](https://docs.dataforseo.com/v3/dataforseo_labs/google/keyword_overview/live/?bash)
  + [Get Historical Keyword Data](https://docs.dataforseo.com/v3/dataforseo_labs/google/historical_keyword_data/live/?bash)
  + [Get Categories For Domain](https://docs.dataforseo.com/v3/dataforseo_labs/google/categories_for_domain/live/?bash)
  + [Get Categories For Keywords](https://docs.dataforseo.com/v3/dataforseo_labs/google/categories_for_keywords/live/?bash)
  + [Get Keywords For Categories](https://docs.dataforseo.com/v3/dataforseo_labs/google/keywords_for_categories/live/?bash)
  + [Get Domain Metrics By Categories](https://docs.dataforseo.com/v3/dataforseo_labs/google/domain_metrics_by_categories/live/?bash)
  + [Get Top Searches](https://docs.dataforseo.com/v3/dataforseo_labs/google/top_searches/live/?bash)
  + [Get SERP Competitors](https://docs.dataforseo.com/v3/dataforseo_labs/google/serp_competitors/live/?bash)
  + [Get Ranked Keywords](https://docs.dataforseo.com/v3/dataforseo_labs/google/ranked_keywords/live/?bash)
  + [Get Competitors Domain](https://docs.dataforseo.com/v3/dataforseo_labs/google/competitors_domain/live/?bash)
  + [Get Domain Intersection](https://docs.dataforseo.com/v3/dataforseo_labs/google/domain_intersection/live/?bash)
  + [Get Subdomains](https://docs.dataforseo.com/v3/dataforseo_labs/google/subdomains/live/?bash)
  + [Get Relevant Pages](https://docs.dataforseo.com/v3/dataforseo_labs/google/relevant_pages/live/?bash)
  + [Get Domain Rank Overview](https://docs.dataforseo.com/v3/dataforseo_labs/google/domain_rank_overview/live/?bash)
  + [Get Historical SERPs](https://docs.dataforseo.com/v3/dataforseo_labs/google/historical_serps/live/?bash)
  + [Get Historical Rank Overview](https://docs.dataforseo.com/v3/dataforseo_labs/google/historical_rank_overview/live/?bash)
  + [Get Page Intersection](https://docs.dataforseo.com/v3/dataforseo_labs/google/page_intersection/live/?bash)
  + [Get Bulk Traffic Estimation](https://docs.dataforseo.com/v3/dataforseo_labs/google/bulk_traffic_estimation/live/?bash)
  + [Get Historical Bulk Traffic Estimation](https://docs.dataforseo.com/v3/dataforseo_labs/google/historical_bulk_traffic_estimation/live/?bash)

  ### Amazon
  + [Get Bulk Search Volume](https://docs.dataforseo.com/v3/dataforseo_labs/amazon/bulk_search_volume/live/?bash)
  + [Get Related Keywords](https://docs.dataforseo.com/v3/dataforseo_labs/amazon/related_keywords/live/?bash)
  + [Get Ranked Keywords](https://docs.dataforseo.com/v3/dataforseo_labs/amazon/ranked_keywords/live/?bash)
  + [Get Product Rank Overview](https://docs.dataforseo.com/v3/dataforseo_labs/amazon/product_rank_overview/live/?bash)
  + [Get Product Competitors](https://docs.dataforseo.com/v3/dataforseo_labs/amazon/product_competitors/live/?bash)
  + [Get Product Keyword Intersections](https://docs.dataforseo.com/v3/dataforseo_labs/amazon/product_keyword_intersections/live/?bash)

  ### Bing
  + [Get Bulk Keyword Difficulty](https://docs.dataforseo.com/v3/dataforseo_labs/bing/bulk_keyword_difficulty/live/?bash)
  + [Get Bulk Traffic Estimation](https://docs.dataforseo.com/v3/dataforseo_labs/bing/bulk_traffic_estimation/live/?bash)
  + [Get Competitors Domain](https://docs.dataforseo.com/v3/dataforseo_labs/bing/competitors_domain/live/?bash)
  + [Get Domain Intersection](https://docs.dataforseo.com/v3/dataforseo_labs/bing/domain_intersection/live/?bash)
  + [Get Domain Rank Overview](https://docs.dataforseo.com/v3/dataforseo_labs/bing/domain_rank_overview/live/?bash)
  + [Get Page Intersection](https://docs.dataforseo.com/v3/dataforseo_labs/bing/page_intersection/live/?bash)
  + [Get Related Keywords](https://docs.dataforseo.com/v3/dataforseo_labs/bing/related_keywords/live/?bash)
  + [Get Relevant Pages](https://docs.dataforseo.com/v3/dataforseo_labs/bing/relevant_pages/live/?bash)
  + [Get SERP Competitors](https://docs.dataforseo.com/v3/dataforseo_labs/bing/serp_competitors/live/?bash)
  + [Get Subdomains](https://docs.dataforseo.com/v3/dataforseo_labs/bing/subdomains/live/?bash)

  ### Google Play
  + [Get Bulk App Metrics](https://docs.dataforseo.com/v3/dataforseo_labs/google/bulk_app_metrics/live/?bash)
  + [Get Keywords for App](https://docs.dataforseo.com/v3/dataforseo_labs/google/keywords_for_app/live/?bash)
  + [Get App Competitors](https://docs.dataforseo.com/v3/dataforseo_labs/google/app_competitors/live/?bash)
  + [Get App Intersection](https://docs.dataforseo.com/v3/dataforseo_labs/google/app_intersection/live/?bash)

  ### App Store
  + [Get Bulk App Metrics](https://docs.dataforseo.com/v3/dataforseo_labs/apple/bulk_app_metrics/live/?bash)
  + [Get Keywords for App](https://docs.dataforseo.com/v3/dataforseo_labs/apple/keywords_for_app/live/?bash)
  + [Get App Competitors](https://docs.dataforseo.com/v3/dataforseo_labs/apple/app_competitors/live/?bash)
  + [Get App Intersection](https://docs.dataforseo.com/v3/dataforseo_labs/apple/app_intersection/live/?bash)

  ## DataForSEO Backlinks API
   + [Get Backlinks Summary](https://docs.dataforseo.com/v3/backlinks/summary/live/?bash)
   + [Get Historical Backlink Summary](https://docs.dataforseo.com/v3/backlinks/history/live/?bash)
   + [Get Backlinks](https://docs.dataforseo.com/v3/backlinks/backlinks/live/?bash)
   + [Get Anchors](https://docs.dataforseo.com/v3/backlinks/anchors/live/?bash)
   + [Get Domain Pages](https://docs.dataforseo.com/v3/backlinks/domain_pages/live/?bash)
   + [Get Domain Pages Summary](https://docs.dataforseo.com/v3/backlinks/domain_pages_summary/live/?bash)
   + [Get Referring Domains](https://docs.dataforseo.com/v3/backlinks/referring_domains/live/?bash)
   + [Get Referring Networks](https://docs.dataforseo.com/v3/backlinks/referring_networks/live/?bash)
   + [Get Competitors](https://docs.dataforseo.com/v3/backlinks/competitors/live/?bash)
   + [Get Domain Intersection](https://docs.dataforseo.com/v3/backlinks/domain_intersection/live/?bash)
   + [Get Page Intersection](https://docs.dataforseo.com/v3/backlinks/page_intersection/live/?bash)
   + [Get Backlinks Timeseries Summary](https://docs.dataforseo.com/v3/backlinks/timeseries_summary/live/?bash)
   + [Get New & Lost Backlinks Timeseries Summary](https://docs.dataforseo.com/v3/backlinks/timeseries_new_lost_summary/live/?bash)
   + [Get Bulk Ranks](https://docs.dataforseo.com/v3/backlinks/bulk_ranks/live/?bash)
   + [Get Bulk Backlinks](https://docs.dataforseo.com/v3/backlinks/bulk_backlinks/live/?bash)
   + [Get Bulk Spam Scores](https://docs.dataforseo.com/v3/backlinks/bulk_spam_score/live/?bash)
   + [Get Bulk Referring Domains](https://docs.dataforseo.com/v3/backlinks/bulk_referring_domains/live/?bash)
   + [Get Bulk New & Lost Backlinks](https://docs.dataforseo.com/v3/backlinks/bulk_new_lost_backlinks/live/?bash)
   + [Get Bulk New & Lost Referring Domains](https://docs.dataforseo.com/v3/backlinks/bulk_new_lost_referring_domains/live/?bash)
   + [Get Bulk Pages Summary](https://docs.dataforseo.com/v3/backlinks/bulk_pages_summary/live/?bash)

  ## DataForSEO OnPage API
  + [Get Pages](https://docs.dataforseo.com/v3/on_page/pages/?bash)
  + [Get Pages By Resource](https://docs.dataforseo.com/v3/on_page/page_by_resource/?bash)
  + [Get Resources](https://docs.dataforseo.com/v3/on_page/resources/?bash)
  + [Get Duplicate Tags](https://docs.dataforseo.com/v3/on_page/duplicate_tags/?bash)
  + [Get Duplicate Content](https://docs.dataforseo.com/v3/on_page/duplicate_content/?bash)
  + [Get Links](https://docs.dataforseo.com/v3/on_page/links/?bash)
  + [Get Redirect Chains](https://docs.dataforseo.com/v3/on_page/redirect_chains/?bash)
  + [Get Non-Indexable Pages](https://docs.dataforseo.com/v3/on_page/non_indexable/?bash)
  + [Get Waterfall](https://docs.dataforseo.com/v3/on_page/waterfall/?bash)
  + [Get Keyword Density](https://docs.dataforseo.com/v3/on_page/keyword_density/?bash)
  + [Get Microdata](https://docs.dataforseo.com/v3/on_page/microdata/?bash)
  + [Get Raw HTML](https://docs.dataforseo.com/v3/on_page/raw_html/?bash)
  + [Get Page Screenshot](https://docs.dataforseo.com/v3/on_page/page_screenshot/?bash)
  + [Get Parsed Content](https://docs.dataforseo.com/v3/on_page/content_parsing/?bash)
  + [Get Live Parsed Content](https://docs.dataforseo.com/v3/on_page/content_parsing/live/?bash)
  + [Get Live Instant Pages](https://docs.dataforseo.com/v3/on_page/instant_pages/?bash)
  + [Get Lighthouse Audit Results](https://docs.dataforseo.com/v3/on_page/lighthouse/task_get/json/?bash)
  + [Get Live Lighthouse Audit Results](https://docs.dataforseo.com/v3/on_page/lighthouse/live/json/?bash)

  ## DataForSEO Content Analysis API
  + [Get Search Results](https://docs.dataforseo.com/v3/content_analysis/search/live/?bash)
  + [Get Summary](https://docs.dataforseo.com/v3/content_analysis/summary/live/?bash)
  + [Get Sentiment Analysis](https://docs.dataforseo.com/v3/content_analysis/sentiment_analysis/live/?bash)
  + [Get Rating Distribution](https://docs.dataforseo.com/v3/content_analysis/rating_distribution/live/?bash)
  + [Get Phrase Trends](https://docs.dataforseo.com/v3/content_analysis/phrase_trends/live/?bash)
  + [Get Category Trends](https://docs.dataforseo.com/v3/content_analysis/category_trends/live/?bash)

  ## DataForSEO Content Generation API
  + [Generate Text From Initial Input](https://docs.dataforseo.com/v3/content_generation/generate/live/?bash)
  + [Generate Text By Topic](https://docs.dataforseo.com/v3/content_generation/generate_text/live/?bash)
  + [Generate Meta Tags](https://docs.dataforseo.com/v3/content_generation/generate_meta_tags/live/?bash)
  + [Generate Sub Topics](https://docs.dataforseo.com/v3/content_generation/generate_sub_topics/live/?bash)
  + [Paraphrase Text](https://docs.dataforseo.com/v3/content_generation/paraphrase/live/?bash)
  + [Check Grammar](https://docs.dataforseo.com/v3/content_generation/check_grammar/live/?bash)
  + [Get Text Summary](https://docs.dataforseo.com/v3/content_generation/text_summary/live/?bash)

  ## DataForSEO Merchant API

  ### Google Shopping
  + [Get Products Advanced](https://docs.dataforseo.com/v3/merchant/google/products/task_get/advanced/?bash)
  + [Get Products HTML](https://docs.dataforseo.com/v3/merchant/google/products/task_get/html/?bash)
  + [Get Sellers Advanced](https://docs.dataforseo.com/v3/merchant/google/sellers/task_get/advanced/?bash)
  + [Get Product Info](https://docs.dataforseo.com/v3/merchant/google/product_info/task_get/advanced/?bash)
  + [Get Product Reviews](https://docs.dataforseo.com/v3/merchant/google/reviews/task_get/advanced/?bash)

  ### Amazon
  + [Get Products Advanced](https://docs.dataforseo.com/v3/merchant/amazon/products/task_get/advanced/?bash)
  + [Get Products HTML](https://docs.dataforseo.com/v3/merchant/amazon/products/task_get/html/?bash)
  + [Get Product ASINs Advanced](https://docs.dataforseo.com/v3/merchant/amazon/asin/task_get/advanced/?bash)
  + [Get Product ASINs HTML](https://docs.dataforseo.com/v3/merchant/amazon/asin/task_get/html/?bash)
  + [Get Sellers Advanced](https://docs.dataforseo.com/v3/merchant/amazon/sellers/task_get/advanced/?bash)
  + [Get Sellers HTML](https://docs.dataforseo.com/v3/merchant/amazon/sellers/task_get/html?bash)

  ## DataForSEO App Data API

  ### Google
  + [Search Apps Advanced](https://docs.dataforseo.com/v3/app_data/google/app_searches/task_get/advanced/?bash)
  + [Search Apps HTML](https://docs.dataforseo.com/v3/app_data/google/app_searches/task_get/html/?bash)
  + [Get App List Advanced](https://docs.dataforseo.com/v3/app_data/google/app_list/task_get/advanced/?bash)
  + [Get App List HTML](https://docs.dataforseo.com/v3/app_data/google/app_list/task_get/html/?bash)
  + [Get App Info Advanced](https://docs.dataforseo.com/v3/app_data/google/app_info/task_get/advanced/?bash)
  + [Get App Info HTML](https://docs.dataforseo.com/v3/app_data/google/app_info/task_get/html/?bash)
  + [Get App Reviews](https://docs.dataforseo.com/v3/app_data/google/app_reviews/task_get/advanced/?bash)
  + [Get App Listing Search](https://docs.dataforseo.com/v3/app_data/google/app_listings/search/live/?bash)

  ### Apple
  + [Search Apps](https://docs.dataforseo.com/v3/app_data/apple/app_searches/task_get/advanced/?bash)
  + [Get App List](https://docs.dataforseo.com/v3/app_data/apple/app_list/task_get/advanced/?bash)
  + [Get App Info](https://docs.dataforseo.com/v3/app_data/apple/app_info/task_get/advanced/?bash)
  + [Get App Reviews](https://docs.dataforseo.com/v3/app_data/apple/app_reviews/task_get/advanced/?bash)
  + [Get App Listings Search](https://docs.dataforseo.com/v3/app_data/apple/app_listings/search/live/?bash)

  ## DataForSEO Business Data API

  ### Business Listings
  + [Get Business Listings](https://docs.dataforseo.com/v3/business_data/business_listings/search/live/?bash)
  + [Get Categories Aggregation](https://docs.dataforseo.com/v3/business_data/business_listings/categories_aggregation/live/?bash)

  ### Google
  + [Get Google Business Info Live](https://docs.dataforseo.com/v3/business_data/google/my_business_info/live/?bash)
  + [Get Google Business Info](https://docs.dataforseo.com/v3/business_data/google/my_business_info/task_get/?bash)
  + [Get Google Business Updates](https://docs.dataforseo.com/v3/business_data/google/my_business_updates/task_get/?bash)
  + [Get Google Hotel Searches Live](https://docs.dataforseo.com/v3/business_data/google/hotel_searches/live/?bash)
  + [Get Google Hotel Searches](https://docs.dataforseo.com/v3/business_data/google/hotel_searches/task_get/?bash)
  + [Get Live Google Hotel Info Advanced](https://docs.dataforseo.com/v3/business_data/google/hotel_info/live/advanced/?bash)
  + [Get Live Google Hotel Info HTML](https://docs.dataforseo.com/v3/business_data/google/hotel_info/live/html/?bash)
  + [Get Google Hotel Info Advanced](https://docs.dataforseo.com/v3/business_data/google/hotel_info/task_get/advanced/?bash)
  + [Get Google Hotel Info HTML](https://docs.dataforseo.com/v3/business_data/google/hotel_info/task_get/html/?bash)
  + [Get Google Reviews](https://docs.dataforseo.com/v3/business_data/google/reviews/task_get/?bash)
  + [Get Extended Google Reviews](https://docs.dataforseo.com/v3/business_data/google/extended_reviews/task_get/?bash)
  + [Get Live Business Questions and Answers](https://docs.dataforseo.com/v3/business_data/google/questions_and_answers/live/?bash)
  + [Get Business Questions and Answers](https://docs.dataforseo.com/v3/business_data/google/questions_and_answers/task_get/?bash)

  ### Trustpilot
  + [Search Trustpilot Business Info](https://docs.dataforseo.com/v3/business_data/trustpilot/search/task_get/?bash)
  + [Get Trustpilot Reviews](https://docs.dataforseo.com/v3/business_data/trustpilot/reviews/task_get/?bash)

  ### Tripadvisor
  + [Search Tripadvisor Business Info](https://docs.dataforseo.com/v3/business_data/tripadvisor/search/task_get/?bash)
  + [Get Tripadvisor Reviews](https://docs.dataforseo.com/v3/business_data/tripadvisor/reviews/task_get/?bash)

  ### Social Media
  + [Get Pinterest Data](https://docs.dataforseo.com/v3/business_data/social_media/pinterest/live/?bash)
  + [Get Facebook Data](https://docs.dataforseo.com/v3/business_data/social_media/facebook/live/?bash)
  + [Get Reddit Data](https://docs.dataforseo.com/v3/business_data/social_media/reddit/live/?bash)

  ## DataForSEO AI Optimization API

  ### Keyword Data
  + [Get AI Keyword Search Volume](https://docs.dataforseo.com/v3/ai_optimization/ai_keyword_data/keywords_search_volume/live/)

  ### ChatGPT
  + [Get Live ChatGPT LLM Responses](https://docs.dataforseo.com/v3/ai_optimization/chat_gpt/llm_responses/live/)
  + [Get Live ChatGPT LLM Scraper Results Advanced](https://docs.dataforseo.com/v3/ai_optimization/chat_gpt/llm_scraper/live/advanced/)
  + [Get Live ChatGPT LLM Scraper Results HTML](https://docs.dataforseo.com/v3/ai_optimization/chat_gpt/llm_scraper/live/html/)
  + [Get ChatGPT LLM Scraper Results Advanced](https://docs.dataforseo.com/v3/ai_optimization/chat_gpt/llm_scraper/task_get/advanced/)
  + [Get ChatGPT LLM Scraper Results HTML](https://docs.dataforseo.com/v3/ai_optimization/chat_gpt/llm_scraper/task_get/html/)

  ### Claude
  + [Get Live Claude LLM Responses](https://docs.dataforseo.com/v3/ai_optimization/claude/llm_responses/live/)

  ### Gemini
  + [Get Live Gemini LLM Responses](https://docs.dataforseo.com/v3/ai_optimization/gemini/llm_responses/live/)

  ### Perplexity
  + [Get Live Perplexity LLM Responses](https://docs.dataforseo.com/v3/ai_optimization/perplexity/llm_responses/live/)

  ### LLM Mentions
  + [Get Live LLM Mentions](https://docs.dataforseo.com/v3/ai_optimization/llm_mentions/search/live/)
  + [Get Live LLM Mentions Top Pages](https://docs.dataforseo.com/v3/ai_optimization/llm_mentions/top_pages/live/)
  + [Get Live LLM Mentions Top Domains](https://docs.dataforseo.com/v3/ai_optimization/llm_mentions/top_domains/live/)
  + [Get Live LLM Mentions Aggregated Metrics](https://docs.dataforseo.com/v3/ai_optimization/llm_mentions/aggregated_metrics/live/)
  + [Get Live LLM Mentions Cross Aggregated Metrics](https://docs.dataforseo.com/v3/ai_optimization/llm_mentions/cross_aggregated_metrics/live/)

  Example DataForSEO Workflow Configurations
  --------------------------

  This section provides examples of commonly used DataForSEO operations along with detailed descriptions of their configuration parameters.

  #### Backlinks
  + [Get Backlinks](#get-backlinks)
  + [Get Backlink Summary](#get-backlink-summary)
  + [Get Historical Backlink Summary](#get-historical-backlink-summary)
  + [Get Bulk Backlink Rank](#get-bulk-backlink-rank)
  + [Get Bulk Backlink Stats](#get-bulk-backlink-stats)
  + [Get Backlinks Pages Summary](#get-backlinks-pages-summary)
  + [Get Bulk Referring Domain Stats](#get-bulk-referring-domain-stats)
  + [Get Referring Domains](#get-referring-domains)
  + [Get Bulk Spam Scores](#get-bulk-spam-scores)
  #### SERP
  + [Get Parsed SERP](#get-parsed-serp)
  + [Get Finance Explore](#get-finance-explore)
  + [Get Finance Markets](#get-finance-markets)
  + [Get Finance Quote](#get-finance-quote)
  + [Search Google Finance Tickers](#search-google-finance-tickers)
  + [Get Google AI Mode SERP](#get-google-ai-mode-serp)
  #### Business Data
  + [Search Business Listings](#search-business-listings)
  + [Get Business Listings Categories Aggregation](#get-business-listings-categories-aggregation)
  + [Get Google Reviews](#get-google-reviews)
  #### On Page
  + [Get Page Audit Check](#get-page-audit-check)
  + [Parse Page Content](#parse-page-content)
  #### DataForSEO Labs
  + [Get Domain Rank Overview](#get-domain-rank-overview)
  + [Get Keyword Suggestions](#get-keyword-suggestions)
  + [Get Ranked Keywords](#get-ranked-keywords)
  + [Get Keyword Difficulty](#get-keyword-difficulty)
  + [Get Organic Traffic Stats](#get-organic-traffic-stats)
  + [Get Historical Traffic Stats](#get-historical-traffic-stats)
  + [Get Keyword Ideas](#get-keyword-ideas)


  ### Get Backlinks

  Get a list of backlinks for a domain, subdomain, or page.

   + **Target (domain, subdomain, URL)**: Enter the domain, subdomain, or webpage to get backlinks for. A domain or a subdomain should be specified without `https://` and `www.` A page should be specified with an absolute URL (including `http://` or `https://`).

  + **Mode**: Select the grouping type for the results (**As is**: Returns all backlinks, **One Per Domain**: Returns one backlink per domain, **One Per Anchor**: Returns one backlink per anchor). If not specified, the **As is** option will be selected by default.

  + **Limit (up to 1000)**: Enter the maximum number of returned backlinks.

  + **Offset**: Enter the offset in the results array for returned backlinks. The default value is 0. If set to 10, the first 10 backlinks will be skipped, and the results will start from the subsequent backlink.

  + **Sort**: Select the sorting rules for the results.

  + **Backlink Status**: Select the backlink status to return and count (**All**: All backlinks will be returned and counted, **Live**: Backlinks found during the last check will be returned and counted, **Lost**: Lost backlinks will be returned and counted). If not specified, the **Live** option will be selected by default.

  + **Include Subdomains (Optional)**: Select whether to include subdomains of the target in the search.

  + **Include Indirect Links (Optional)**: Select whether to include indirect links in the results.

  ### Get Backlink Summary

  Get an overview of backlink data for a domain, subdomain, or webpage.

  + **Target (domain, subdomain, URL)**: Enter the domain, subdomain, or webpage to get backlinks for. A domain or a subdomain should be specified without `https://` and `www.` A page should be specified with an absolute URL (including `http://` or `https://`).

  + **Include Subdomains (Optional)**: Select whether to include subdomains of the target in the search.

  + **Include Indirect Links (Optional)**: Select whether to include indirect links in the results.

  + **Internal List limit (up to 1000)**: Enter the number of backlinks to be returned in the results.

  + **Backlink Status**: Select the backlink status to return and count (**All**: All backlinks will be returned and counted, **Live**: Backlinks found during the last check will be returned and counted, **Lost**: Lost backlinks will be returned and counted).

  ### Get Historical Backlink Summary

  Get historical backlink data for a domain dating back to the beginning of 2019.

  + **Target (domain, subdomain, URL)**: Enter the domain, subdomain, or webpage to get backlinks for. A domain or a subdomain should be specified without `https://` and `www.` A page should be specified with an absolute URL (including `http://` or `https://`).

  + **Date From**: Enter the starting date of the time range. Minimal value: 2019-01-01. The minimum value will be used by default. Time zone: Europe/Prague.

  + **Date To**: Enter the ending date of the time range. If you don’t specify this field, today’s date will be used by default. Time zone: Europe/Prague.

  ### Get Bulk Backlink Rank

  Get rank scores for up to 1,000 domains, subdomains, and pages.

  + **Target (domain, subdomain, URL)**: Enter the domain, subdomain, or webpage to get backlinks for. A domain or a subdomain should be specified without `https://` and `www.` A page should be specified with an absolute URL (including `http://` or `https://`).

  ### Get Bulk Backlink Stats

  Get the number of backlinks for up to 1,000 domains, subdomains, and pages.

  + **Target (domain, subdomain, URL)**: Enter the domain, subdomain, or webpage to get backlinks for. A domain or a subdomain should be specified without `https://` and `www.` A page should be specified with an absolute URL (including `http://` or `https://`).

  ### Get Backlinks Pages Summary

  Get an overview of backlinks and associated data in bulk.

  + **Target (domain, subdomain, URL)**: Enter the domain, subdomain, or webpage to get backlinks for. A domain or a subdomain should be specified without `https://` and `www.` A page should be specified with an absolute URL (including `http://` or `https://`).

  + **Include Subdomains (Optional)**: Select whether to include subdomains of the target in the search.

  ### Get Bulk Referring Domain Stats

  Get the number of referring domains for up to 1,000 domains, subdomains, and pages.

  + **Target (domain, subdomain, URL)**: Enter the domain, subdomain, or webpage to get backlinks for. A domain or a subdomain should be specified without `https://` and `www.` A page should be specified with an absolute URL (including `http://` or `https://`).

  ### Get Referring Domains

  Get a detailed overview of referring domains pointing to the target you specify.

  + **Target (domain, subdomain, URL)**: Enter the domain, subdomain, or webpage to get backlinks for. A domain or a subdomain should be specified without `https://` and `www.` A page should be specified with an absolute URL (including `http://` or `https://`).

  + **Limit (up to 1000)**: Enter the maximum number of returned backlinks.

  + **Offset**: Enter the offset in the results array for returned backlinks. Default is 0. For example, if set to 10, the first 10 backlinks will be skipped, and the results will start from the subsequent backlink.

  + **Internal List limit ( up to 1000)**: Enter the number of backlinks to be returned in the results.

  + **Backlink Status**: Select the backlink status to return and count ( **All**: All backlinks will be returned and counted, **Live**: Backlinks found during the last check will be returned and counted, **Lost**: Lost backlinks will be returned and counted). If not specified, the **Live** option will be selected by default.

  + **Sort**: Enter (map) the sorting rules for the results.

  + **Include Subdomains (Optional)**: Select whether to include subdomains of the target in the search.

  + **Include Indirect Links (Optional)**: Select whether to include indirect links in the results.

  + **Exclude Internal Links (Optional)**: Select whether to include external links in the results.

  ### Get Bulk Spam Scores

  Get Spam Scores for up to 1,000 domains, subdomains, and pages.

  + **Target (domain, subdomain, URL)**: Enter the domain, subdomain, or webpage to get backlinks for. A domain or a subdomain should be specified without `https://` and `www.` A page should be specified with an absolute URL (including `http://` or `https://`).

  ## SERP

  ### Get Parsed SERP

  Get Google Search results for the specified keyword.

  + **Keyword**: Enter a keyword for parsing the SERP. You can specify up to 700 symbols.

  + **Location**: Enter the full name of the search engine location. You can find the supported locations on the DataForSEO [Supported Locations page](https://docs.dataforseo.com/v3/serp/google/locations/).

  + **Language**: Enter the full name of the search engine language. You can find the list of supported languages on the DataForSEO [Supported Languages page](https://docs.dataforseo.com/v3/serp/google/languages/).

  + **Device**: Select your device type (Desktop, Mobile).
      
  + **OS**: Select your device's operating system (Windows, macOS, Android, iOS).

  + **Domain**: Enter the search engine domain. For example: `google.co.uk`, `google.com.au`, `google.de`, etc. Note: We automatically select the relevant search engine domain according to the location and language you specify. However, you can set a custom search engine domain in this field.

  + **Depth**: Enter parsing depth, number of results in SERP, max value is 700.

  + **Target**: Enter the target domain, subdomain, or webpage. Note: Domain or a subdomain should be specified without `https://` and `www.`.

  ### Get Finance Explore

  Get real-time data from the ‘Explore’ tab of Google Finance.

  + **Location**: Enter the full name of the search engine location. You can find the supported locations in the DataForSEO [Supported Locations page](https://docs.dataforseo.com/v3/serp/google/locations/).

  + **Language**: Enter the full name of the search engine language. You can find the list of supported languages in the DataForSEO [Supported Languages page](https://docs.dataforseo.com/v3/serp/google/languages/).

  + **News Type**: Select news type.

  ### Get Finance Markets

  Get real-time data from the ‘Markets’ tab of Google Finance.

  + **Location**: Enter the full name of the search engine location. You can find the supported locations in the DataForSEO [Supported Locations page](https://docs.dataforseo.com/v3/serp/google/locations/).

  + **Language**: Enter the full name of the search engine language. You can find the list of supported languages in the DataForSEO [Supported Languages page](https://docs.dataforseo.com/v3/serp/google/languages/).

  + **Market Type**: Select market type.

  ### Get Finance Quote

  Get real-time data from the ‘Quote’ tab of Google Finance.

  + **Keyword (Ticker or Stock Symbol)**: Enter the Ticker symbol of publicly traded shares of a particular stock or security in a specific stock exchange.

  + **Location**: Enter the full name of the search engine location. You can find the supported locations in the DataForSEO [Supported Locations page](https://docs.dataforseo.com/v3/serp/google/locations/).

  + **Language**: Enter the full name of the search engine language. You can find the list of supported languages in the DataForSEO [Supported Languages page](https://docs.dataforseo.com/v3/serp/google/languages/).

  + **Window**: Select time window for google_finance_quote graph.

  ### Search Google Finance Tickers

  Search by company name, market, or financial instrument to get Google Finance data on stocks, futures, and asset pairs, their value, growth trends, and identifiers.

  + **Keyword**: Enter Company name or financial instrument.

  + **Location**: Enter the full name of the search engine location. You can find the supported locations in the DataForSEO [Supported Locations page](https://docs.dataforseo.com/v3/serp/google/locations/).

  + **Language**: Enter the full name of the search engine language. You can find the list of supported languages in the DataForSEO [Supported Languages page](https://docs.dataforseo.com/v3/serp/google/languages/).

  + **Category**: Select the Category of financial instruments to search for.

  ### Get Google AI Mode SERP

  Get search results from the AI Mode feature of Google Search.

  + **Keyword**: Keyword to get results for.

  + **Location**: Enter the full name of the search engine location. You can find the supported locations in the DataForSEO [Supported Locations page](https://docs.dataforseo.com/v3/serp/google/locations/).

  + **Language**: Enter the full name of the search engine language. You can find the list of supported languages in the DataForSEO [Supported Languages page](https://docs.dataforseo.com/v3/serp/google/languages/).

  + **Device**: Select your device type (Desktop, Mobile).
      
  + **OS**: Select your device's operating system (Windows, macOS, Android, iOS).

  + **Calculate Pixel Rankings for SERP Elements?**: By default, the parameter is set to false.

  + **Browser Screen Width**: You can set a custom browser screen width to calculate pixel rankings for a particular device.

  + **Browser Screen Height**: You can set a custom browser screen height to calculate pixel rankings for a particular device.

  + **Browser Screen Resolution Ratio**: You can set a custom browser screen resolution ratio to calculate pixel rankings for a particular device.


  ## Business Data

  ### Get Search Business Listings

  Get information about businesses listed on Google Maps in the specified categories.

  + **Categories**: Enter up to 10 categories for the business listings, allowing you to specify relevant business categories.

  + **Description**: Enter a description for the business listing.

  + **Title**: Enter the title for the business listing.

  + **Is Claimed**: Select whether the business listing is claimed.

  + **Location Coordinate**: Enter location coordinates in the format `latitude`,`longitude`,`radius`. Example: 53.476225,-2.243572,200.

  + **Sort**: Select the sorting rules for the results. You can specify multiple sorting criteria by adding items.

  + **Limit (up to 1000)**: Enter the maximum number of returned listings.

  + **Offset**: Enter the offset in the results array for returned listings.

  ### Get Business Listings Categories Aggregation

  Get data about groups of related business categories along with the number of entities in each category.

  + **Categories**: Enter up to 10 categories for the business listings, allowing you to specify relevant business categories.

  + **Description**: Enter a description for the business listing.

  + **Title**: Enter the title for the business listing.

  + **Is Claimed**: Select whether the business listing is claimed.

  + **Location Coordinate**: Enter location coordinates in the format `latitude`,`longitude`,`radius`. Example: 53.476225,-2.243572,200.

  + **Internal List Limit**: Enter the number of business listings to be returned in the aggregated results.

  + **Limit (up to 1000)**: Enter the maximum number of results to be returned.

  + **Offset**: Enter the offset in the results array.

  ### Get Google Reviews

  Fetch reviews and related data from millions of Google Business Profiles around the world.

  + **Search By**: Select the method for searching Google reviews (Keyword, CID, Place ID).

  + **Keyword/CID/Place ID**: Enter the keyword, CID, or Place ID for the business or place you want to retrieve reviews for.

  + **Task Priority**: Select the task priority for the request. You will be additionally charged for the tasks with high execution priority.

  + **Location**: Enter the full name of the search engine location. You can find the supported locations in the DataForSEO [Supported Locations page](https://docs.dataforseo.com/v3/serp/google/locations/).

  + **Language**: Enter the full name of the search engine language. You can find the list of supported languages in the DataForSEO [Supported Languages page](https://docs.dataforseo.com/v3/serp/google/languages/).

  + **Number of reviews**: Enter the number of reviews to retrieve.

  + **Sort**: Select the sorting criteria for the reviews (Newest, Highest Rating, Lowest Rating, Relevance).
      
  ## On Page

  ### Get Page Audit Check

  Run an essential SEO Audit of a page.

  + **Target page URL**: Enter the complete URL of the target page for which the data will be retrieved.

  ### Parse Page Content

  Get parsed and structured content of any page, including link URLs, anchors, headings, and text.

  + **Target page URL**: Enter the complete URL of the page to be parsed.

  ## Labs

  ### Get Domain Rank Overview

  Get ranking and traffic data from organic search for a domain.

  + **Target Domain**: Enter the target domain to retrieve the rank overview. The domain should be specified without `https://` or `www`.

  + **Location**: Enter the full name of the search engine location. You can find the supported locations in the DataForSEO [Supported Locations page](https://docs.dataforseo.com/v3/serp/google/locations/).

  + **Language**: Enter the full name of the search engine language. You can find the list of supported languages in the DataForSEO [Supported Languages page](https://docs.dataforseo.com/v3/serp/google/languages/).

  + **Ignore Synonyms**: Select whether to ignore synonyms in the search results.

  + **Limit**: Enter the maximum number of results to retrieve.

  + **Offset**: Enter the offset in the results array. For example, if set to 10, the first 10 results will be skipped, and the data will start from the subsequent result.

  ### Get Keyword Suggestions

  Get search terms that are relevant to the product or service categories of all the specified keywords.

   + **Location**: Enter the full name of the search engine location. You can find the supported locations in the DataForSEO [Supported Locations page](https://docs.dataforseo.com/v3/serp/google/locations/).

  + **Language**: Enter the full name of the search engine language. You can find the list of supported languages in the DataForSEO [Supported Languages page](https://docs.dataforseo.com/v3/serp/google/languages/).

  + **Keyword**: Enter the keyword for which you want to retrieve suggestions.

  + **Limit (up to 1000)**: Enter the maximum number of keyword suggestions to retrieve.

  + **Offset**: Enter the offset in the results array. For example, if set to 10, the first 10 results will be skipped, and the data will start from the subsequent result.

  + **Sort**: Enter the sorting criteria for keyword suggestions.

  ### Get Ranked Keywords

  Get the list of keywords that any domain or webpage is ranking for.

  + **Location**: Enter the full name of the search engine location. You can find the supported locations in the DataForSEO [Supported Locations page](https://docs.dataforseo.com/v3/serp/google/locations/).

  + **Language**: Enter the full name of the search engine language. You can find the list of supported languages in the DataForSEO [Supported Languages page](https://docs.dataforseo.com/v3/serp/google/languages/).

  + **Target**: Enter the domain name of the target website. The domain should be specified without `https://` or `www`.

  + **Limit (up to 1000)**: Enter the maximum number of keywords to retrieve.

  + **Item Types**: Select the type of search results included in the response.

  + **Sort**: Enter the sorting criteria for keyword rankings.

  + **Ignore Synonyms**: Select whether to ignore synonyms in the search results.

  ### Get Keyword Difficulty

  Get keyword difficulty for the specified keywords.

  + **Target Keywords**: Enter the keywords you want to analyze for difficulty. Keywords should be in **UTF-8** encoding, at least three characters long, and will be converted to lowercase. You can specify up to 1000 keywords."

  + **Location**: Enter the full name of the search engine location. You can find the supported locations in the DataForSEO [Supported Locations page](https://docs.dataforseo.com/v3/serp/google/locations/).

  + **Language**: Enter the full name of the search engine language. You can find the list of supported languages in the DataForSEO [Supported Languages page](https://docs.dataforseo.com/v3/serp/google/languages/).

  ### Get Organic Traffic Stats

  Get an estimation of the monthly organic traffic for a website or page.

  + **Target Domain or Subdomains**: Enter the target domain to retrieve the organic traffic stats. The domain should be specified without `https://` or `www`.

  + **Location**: Enter the full name of the search engine location. You can find the supported locations in the DataForSEO [Supported Locations page](https://docs.dataforseo.com/v3/serp/google/locations/).

  + **Language**: Enter the full name of the search engine language. You can find the list of supported languages in the DataForSEO [Supported Languages page](https://docs.dataforseo.com/v3/serp/google/languages/).

  + **Item Types**: Select the type of search results included in the response.

  ### Get Historical Traffic Stats

  Get a historical estimate of organic traffic for a website or page.

  + **Target Domain or Subdomains**: Enter the target domain to retrieve the organic traffic stats. The domain should be specified without `https://` or `www`.

  + **Location**: Enter the full name of the search engine location. You can find the supported locations in the DataForSEO [Supported Locations page](https://docs.dataforseo.com/v3/serp/google/locations/).

  + **Language**: Enter the full name of the search engine language. You can find the list of supported languages in the DataForSEO [Supported Languages page](https://docs.dataforseo.com/v3/serp/google/languages/).

  + **Item Types**: Select the type of search results included in the response.

  ### Get Keyword Ideas

  Get search terms that fall into the same Google product or service category as the specified keywords.

  + **Keywords**: Enter the keywords you want to retrieve suggestions for.

  + **Location**: Enter the full name of the search engine location. You can find the supported locations in the DataForSEO [Supported Locations page](https://docs.dataforseo.com/v3/serp/google/locations/).

  + **Language**: Enter the full name of the search engine language. You can find the list of supported languages in the DataForSEO [Supported Languages page](https://docs.dataforseo.com/v3/serp/google/languages/).

  + **Limit (up to 1000)**: Enter the maximum number of keyword ideas to retrieve.

  + **Offset**: Enter the offset in the results array. For example, if set to 10, the first 10 results will be skipped, and the data will start from the subsequent result.

  + **Sort**: Enter the sorting criteria for keyword ideas.

ai_documentation_summary:
  {"purpose":"Retrieves marketing and SEO data from the DataForSEO API, including Google rankings, keyword suggestions, and backlink reports.","capabilities":["Retrieve Google Organic SERP data (Regular, Advanced, HTML)","Retrieve Google AI Mode SERP data (Advanced, HTML)","Retrieve Google Maps SERP data (Advanced)","Retrieve Google Local Finder SERP data (Advanced)","Retrieve Google News SERP data (Advanced)","Retrieve Google Events SERP data (Advanced)","Retrieve Google Images SERP data (Advanced)","Retrieve Google Search By Image SERP data","Retrieve Google Jobs SERP data","Retrieve Google Autocomplete SERP data"],"authentication":"API Login and Password","commonUseCases":["Competitor keyword analysis","Search engine result page (SERP) monitoring","Local SEO data retrieval","Image search analysis","News and events SERP tracking"],"limitations":["Requires a paid DataForSEO account","API credentials must be manually entered in n8n","API password is only visible for 24 hours after registration"],"relatedNodes":["n8n-nodes-webhook","n8n-nodes-httpRequest","n8n-nodes-ai"]}


node_type: n8n-nodes-webmetic.webmetic
package_name: n8n-nodes-webmetic
display_name: Webmetic
description: Get company visits data from Webmetic with date range filtering
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: webmetic
author_github_url: https://github.com/webmetic-gmbh/
npm_package_name: n8n-nodes-webmetic
npm_version: 0.4.1
community_fetched_at: 2026-04-16T09:43:36.428Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "newVisits",
      "options": [
        {
          "name": "New Visits",
          "value": "newVisits",
          "description": "Get companies that have visited a domain for the first time"
        },
        {
          "name": "Intensive Visits",
          "value": "intensiveVisits",
          "description": "Get companies that have had intensive visits to a domain"
        },
        {
          "name": "Returning Visits",
          "value": "returningVisits",
          "description": "Get companies that have visited a domain multiple times"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get new visits",
          "routing": {
            "request": {
              "url": "/new-visits",
              "method": "GET"
            }
          },
          "description": "Get a list of companies that have visited the specified domain for the first time"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "newVisits"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get intensive visits",
          "routing": {
            "request": {
              "url": "/intensive-visits",
              "method": "GET"
            }
          },
          "description": "Get a list of companies that have had intensive visits to the specified domain"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "intensiveVisits"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get returning visits",
          "routing": {
            "request": {
              "url": "/returning-visits",
              "method": "GET"
            }
          },
          "description": "Get a list of companies that have visited the specified domain multiple times"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "returningVisits"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get",
      "value": "get",
      "action": "Get new visits",
      "routing": {
        "request": {
          "url": "/new-visits",
          "method": "GET"
        }
      },
      "description": "Get a list of companies that have visited the specified domain for the first time",
      "resource": "newVisits"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get intensive visits",
      "routing": {
        "request": {
          "url": "/intensive-visits",
          "method": "GET"
        }
      },
      "description": "Get a list of companies that have had intensive visits to the specified domain",
      "resource": "intensiveVisits"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get returning visits",
      "routing": {
        "request": {
          "url": "/returning-visits",
          "method": "GET"
        }
      },
      "description": "Get a list of companies that have visited the specified domain multiple times",
      "resource": "returningVisits"
    }
  ]

npm_readme:
  # n8n-nodes-webmetic

  This is an n8n community node that lets you use Webmetic in your n8n workflows.

  [Webmetic](https://webmetic.de) provides company visitor tracking data for sales and marketing teams.

  [n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/reference/license/) workflow automation platform.

  [Installation](#installation)  
  [Operations](#operations)  
  [Credentials](#credentials)  
  [Compatibility](#compatibility)  
  [Usage](#usage)  
  [Resources](#resources)  

  ## Installation

  Follow the [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) in the n8n community nodes documentation.

  ## Operations

  * **New Visits**
    * Get: Retrieve a list of companies that have visited a specified domain for the first time
  * **Intensive Visits**
    * Get: Retrieve a list of companies that have had intensive visits to a specified domain
  * **Returning Visits**
    * Get: Retrieve a list of companies that have visited a specified domain multiple times

  ## Credentials

  To use this node, you need:

  1. A Webmetic API key - Get yours from [Webmetic](https://webmetic.de)
  2. Configure the API key in n8n's credentials

  ## Compatibility

  * Requires n8n version 0.172.0 or later
  * Tested with n8n version 1.0.0+

  ## Usage

  1. Add the Webmetic node to your workflow
  2. Create new Webmetic API credentials:
     - Enter your API key (starts with `wmtc_`)
  3. Configure the node:
     - Select "New Visits", "Intensive Visits", or "Returning Visits" as the resource
     - Select "Get" as the operation
     - Enter the domain you want to track (e.g., `example.com`)
     - Optional: Configure additional fields for date filtering:
       - **From Date**: Start date or relative time period (default: "-30 days")
       - **To Date**: End date or "now" for current date (default: "now")
  4. Execute the node to retrieve company visitor data

  The node returns valuable sales intelligence about companies and their visiting behavior on your domain.

  ### Date Format Examples:
  - **Relative times**: `-30 days`, `-12 hours`, `-45 minutes`, `-7 days`
  - **Absolute dates**: `2023-01-01`, `2023-12-31`  
  - **Current**: `now`
  - **Minutes**: `-15 minutes`, `-30 minutes`, `-90 minutes`

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  * [Webmetic API documentation](https://hub.webmetic.de/docs)

ai_documentation_summary:
  {"purpose":"Retrieves company visitor tracking data from Webmetic for sales and marketing teams, including new, intensive, and returning visits to specified domains.","capabilities":["Retrieve new company visits to a domain","Retrieve companies with intensive visits to a domain","Retrieve companies with multiple returning visits to a domain","Filter results by date range using relative times or absolute dates","Return company visitor data as JSON"],"authentication":"API key required","commonUseCases":["Sales intelligence gathering","Marketing campaign tracking","Lead generation from domain visits","Competitor analysis via visitor data"],"limitations":["Requires valid Webmetic API key","Requires n8n version 0.172.0 or later","Data access depends on Webmetic API availability and permissions"],"relatedNodes":["n8n-nodes-webmetic.webmetic","n8n-nodes-http.request","n8n-nodes-webhook"]}


node_type: n8n-nodes-softr.softr
package_name: n8n-nodes-softr
display_name: Softr
description: Softr.io Integration Node
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: dariusz-softr
author_github_url: https://github.com/softr-io/n8n-softr.git
npm_package_name: n8n-nodes-softr
npm_version: 1.0.8
community_fetched_at: 2026-04-16T09:43:36.429Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "database",
      "options": [
        {
          "name": "Database Record",
          "value": "database",
          "action": "Manage database records",
          "description": "Manage database records"
        },
        {
          "name": "Application User",
          "value": "appUser",
          "action": "Manage application users",
          "description": "Manage application users"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getMany",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create record",
          "description": "Create database record"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete record",
          "description": "Delete database record"
        },
        {
          "name": "Get Many",
          "value": "getMany",
          "action": "Get many records",
          "description": "Get many database records"
        },
        {
          "name": "Get One",
          "value": "getOne",
          "action": "Get one record",
          "description": "Get one database record"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update record",
          "description": "Update database record"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "database"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "createAppUser",
      "options": [
        {
          "name": "Create Application User",
          "value": "createAppUser",
          "action": "Create application user",
          "description": "Create an application user"
        },
        {
          "name": "Delete Application User",
          "value": "deleteAppUser",
          "action": "Delete application user",
          "description": "Delete an application user"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "appUser"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create",
      "value": "create",
      "action": "Create record",
      "description": "Create database record",
      "resource": "database"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete record",
      "description": "Delete database record",
      "resource": "database"
    },
    {
      "name": "Get Many",
      "value": "getMany",
      "action": "Get many records",
      "description": "Get many database records",
      "resource": "database"
    },
    {
      "name": "Get One",
      "value": "getOne",
      "action": "Get one record",
      "description": "Get one database record",
      "resource": "database"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update record",
      "description": "Update database record",
      "resource": "database"
    },
    {
      "name": "Create Application User",
      "value": "createAppUser",
      "action": "Create application user",
      "description": "Create an application user",
      "resource": "appUser"
    },
    {
      "name": "Delete Application User",
      "value": "deleteAppUser",
      "action": "Delete application user",
      "description": "Delete an application user",
      "resource": "appUser"
    }
  ]

npm_readme:
  # n8n-nodes-softr

  This is an n8n community node. It lets you use Softr in your n8n workflows.

  Softr is a no-code platform that allows you to build web applications and websites. It provides a user-friendly interface for creating and managing applications without needing to write code.

  [n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/reference/license/) workflow automation platform.

  [Installation](#installation)  
  [Operations](#operations)  
  [Credentials](#credentials)  
  [Compatibility](#compatibility)  
  [Usage](#usage)  
  [Resources](#resources)   

  ## Installation

  Follow the [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) in the n8n community nodes documentation.

  ## Operations

  ### Softr Databases

  Triggers

  * `On New Record`: Triggered when a new record is created in a Softr database.
  * `On Updated Record`: Triggered when an existing record in a Softr database is updated.

  Actions:

  * `Create Record`: Creates a new record in a specified Softr database.
  * `Update Record`: Updates an existing record in a specified Softr database.
  * `Delete Record`: Deletes a record from a specified Softr database.
  * `Get Record`: Retrieves a specific record from a specified Softr database.
  * `Get All Records`: Retrieves all records from a specified Softr database.
  * `Search Records`: Searches for records in a specified Softr database based on a search query.

  ### Softr Application Users

  * `Create Application User`: Creates a new user in a specified Softr application.
  * `Delete Application User`: Deletes a user from a specified Softr application.

  ## Credentials

  To use Softr, you must authenticate with your API Key. You can find your API Key in your [Softr account settings](https://studio.softr.io/user/apisettings).

  More details on how to find your API Key can be found in the [Softr documentation](https://docs.softr.io/softr-api/tTFQ5vSAUozj5MsKixMH8C/api-setup-and-endpoints/j1PrTZxt7pv3iZCnZ5Fp19).

  ## Compatibility

  Implemented and tested against n8n version 1.103.2.

  ## Usage

  Softr node uses Softr Public API under the hood. You can find more information about the API in the [Softr API documentation](https://docs.softr.io/softr-api/tTFQ5vSAUozj5MsKixMH8C/softr-database-api/5aZs45abxPkQ4dURKFwRGF).

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  * [Softr API documentation](https://docs.softr.io/softr-api/tTFQ5vSAUozj5MsKixMH8C/softr-database-api/5aZs45abxPkQ4dURKFwRGF)

ai_documentation_summary:
  {"purpose":"This n8n community node enables automation with Softr, a no-code platform for building web applications and websites, by interacting with Softr databases and application users.","capabilities":["Trigger on new database record creation","Trigger on database record updates","Create new database records","Update existing database records","Delete database records","Retrieve specific database records","Retrieve all database records","Search database records by query","Create application users","Delete application users"],"authentication":"API Key required (found in Softr account settings)","commonUseCases":["Automating data synchronization between Softr and other tools","Creating or managing users in Softr applications via workflow","Triggering workflows when database records change in Softr"],"limitations":["Community node (not official n8n node)","Requires manual API key configuration"],"relatedNodes":["Softr Database","Softr Application User"]}


node_type: @itechnotion/n8n-nodes-inboxplus.inboxPlus
package_name: @itechnotion/n8n-nodes-inboxplus
display_name: InboxPlus
description: Interact with InboxPlus API - send emails and manage sequences
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: itechnotion
author_github_url: https://github.com/itechnotion/n8n-nodes-inboxplus.git
npm_package_name: @itechnotion/n8n-nodes-inboxplus
npm_version: 1.2.0
community_fetched_at: 2026-04-16T09:43:36.430Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "hidden",
      "default": "email",
      "options": [
        {
          "name": "Email",
          "value": "email"
        }
      ],
      "displayName": "Resource"
    },
    {
      "name": "operation",
      "type": "options",
      "default": "prepareEmail",
      "options": [
        {
          "name": "Select Template",
          "value": "prepareEmail",
          "action": "Select a template",
          "description": "Load template and generate tracking for Gmail"
        },
        {
          "name": "Attach Sequence",
          "value": "startSequence",
          "action": "Attach a sequence",
          "description": "Record sent email and start automated follow-up sequence"
        }
      ],
      "displayName": "Operation",
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Select Template",
      "value": "prepareEmail",
      "action": "Select a template",
      "description": "Load template and generate tracking for Gmail"
    },
    {
      "name": "Attach Sequence",
      "value": "startSequence",
      "action": "Attach a sequence",
      "description": "Record sent email and start automated follow-up sequence"
    }
  ]

npm_readme:
  # n8n-nodes-inboxplus

  InboxPlus integration for n8n - Send emails with templates and automate follow-up sequences.

  ## Features

  - ✅ Load email templates from InboxPlus
  - ✅ Generate tracking pixels for email analytics
  - ✅ Send emails via Gmail with InboxPlus templates
  - ✅ Start automated follow-up sequences
  - ✅ Track email opens and replies
  - ✅ Automatic follow-up management

  ## Installation

  ```bash
  cd n8n-nodes-inboxplus
  pnpm install
  pnpm build
  pnpm link --global
  ```

  Then restart your n8n instance or link in your n8n custom nodes directory.

  ## Credentials

  You need an InboxPlus API key (JWT token) from your InboxPlus account.

  1. Go to InboxPlus Profile → Manage API → Generate API
  2. Copy your API key
  3. In n8n: Credentials → Add → InboxPlus API
  4. Paste your API key

  ## Operations

  ### 1. Prepare Email

  Loads an InboxPlus template and generates tracking.

  **Parameters:**
  - Recipient Email
  - Template (dropdown - loads from your InboxPlus account)

  **Output:**
  ```json
  {
    "recipientEmail": "contact@example.com",
    "subject": "Email Subject",
    "body": "<div>Email content</div>",
    "gmailBodyHtml": "<div>Email content</div><br><img tracking />",
    "trackingId": "uuid"
  }
  ```

  ### 2. Start Sequence

  Records the sent email in InboxPlus and starts automated follow-up sequence.

  **Parameters:**
  - Sender Email
  - Recipient Email
  - Subject (from Prepare Email)
  - Thread ID (from Gmail)
  - Message ID (from Gmail)
  - Tracking ID (from Prepare Email)
  - Sequence (dropdown - loads from your InboxPlus account)

  **Output:**
  ```json
  {
    "success": true,
    "sequenceId": "uuid",
    "recipientEmail": "contact@example.com",
    "apiResponse": { "code": 200, "success": 1 }
  }
  ```

  ## Workflow Example

  ```
  [Trigger]
      ↓
  [InboxPlus: Prepare Email]
    - Recipient: contact@example.com
    - Template: "Welcome Email"
      ↓
  [Gmail: Send Message]
    - To: {{ $json.recipientEmail }}
    - Subject: {{ $json.subject }}
    - Body HTML: {{ $json.gmailBodyHtml }}
      ↓
  [InboxPlus: Start Sequence]
    - Sender: you@example.com
    - Recipient: {{ $("InboxPlus").item.json.recipientEmail }}
    - Subject: {{ $("InboxPlus").item.json.subject }}
    - Thread ID: {{ $("Gmail").item.json.threadId }}
    - Message ID: {{ $("Gmail").item.json.id }}
    - Tracking ID: {{ $("InboxPlus").item.json.trackingId }}
    - Sequence: "Onboarding Sequence"
  ```

  ## How It Works

  1. **Prepare Email** - Fetches template from InboxPlus and generates tracking pixel
  2. **Gmail** - Sends the email (Day 0) with template content and tracking
  3. **Start Sequence** - Records email in InboxPlus and starts automated follow-ups

  InboxPlus then:
  - Monitors the email thread for replies
  - Sends Day 1, Day 2, etc. follow-ups automatically
  - Stops sequence if recipient replies
  - Tracks opens and clicks

  ## Field Mapping

  ### From Prepare Email to Gmail:
  - `recipientEmail` → Gmail "To"
  - `subject` → Gmail "Subject"
  - `gmailBodyHtml` → Gmail "Body HTML"

  ### From Prepare Email to Start Sequence:
  - `recipientEmail` → "Recipient Email"
  - `subject` → "Subject"
  - `trackingId` → "Tracking ID"

  ### From Gmail to Start Sequence:
  - `threadId` → "Thread ID"
  - `id` → "Message ID"

  ## Important Notes

  - **Gmail is required** - InboxPlus works WITH Gmail, not as a replacement
  - **Day 0 sent by Gmail** - The first email is sent via Gmail node
  - **Follow-ups by InboxPlus** - Automated follow-ups are sent by InboxPlus
  - **Tracking included** - Tracking pixel is automatically added to emails
  - **Reply detection** - InboxPlus monitors for replies and stops sequences

  ## API Endpoints Used

  - `POST /user-emails/n8n/get-email-templates` - Load templates
  - `POST /user-emails/n8n/get-sequences` - Load sequences
  - `POST /user-emails/n8n/tracking-id` - Generate tracking
  - `POST /user-emails/n8n` - Record email and start sequence

  ## Troubleshooting

  ### Templates not loading
  - Check API key is correct
  - Verify templates exist in InboxPlus dashboard

  ### Sequence not starting
  - Ensure all fields are mapped correctly
  - Check API response in node output
  - Verify sequence exists and is active

  ### Follow-ups not sending
  - Wait for the configured delay (e.g., 24 hours for Day 1)
  - Check sequence is active in InboxPlus dashboard
  - Verify Gmail is connected in InboxPlus settings

  ## Version

  Current version: 1.1.2

  ## Author

  Avkash Kakdiya
  - Email: avkash@itechnotion.com
  - Github: https://github.com/itechnotion

  ## License

  MIT

ai_documentation_summary:
  {"purpose":"This n8n node integrates with InboxPlus to send templated emails via Gmail and manage automated follow-up sequences.","capabilities":["Load email templates from InboxPlus","Generate tracking pixels for email analytics","Send emails via Gmail using InboxPlus templates","Start automated follow-up sequences","Track email opens and replies","Manage automatic follow-up scheduling"],"authentication":"API key required (InboxPlus JWT token)","commonUseCases":["Automated customer onboarding sequences","Sales follow-up automation","Marketing email campaigns with tracking"],"limitations":["Gmail is required as the email sending provider; InboxPlus does not replace Gmail","The first email (Day 0) must be sent via Gmail node","Automated follow-ups are handled by InboxPlus, not n8n directly","Sequences stop automatically when a recipient replies"],"relatedNodes":["Gmail Send","Gmail Get Messages","Gmail Get Threads"]}


node_type: @woztell-sanuker/n8n-nodes-woztell-sanuker.woztellTrigger
package_name: @woztell-sanuker/n8n-nodes-woztell-sanuker
display_name: WOZTELL Trigger
description: Automate messaging workflows across WhatsApp, Messenger, and Instagram with WOZTELL
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: krisatwoztell
author_github_url: https://github.com/Woztell/n8n-nodes-woztell-sanuker.git
npm_package_name: @woztell-sanuker/n8n-nodes-woztell-sanuker
npm_version: 0.1.15
community_fetched_at: 2026-04-16T09:43:36.431Z
ai_summary_generated_at: 2026-03-25 22:51:43
npm_readme:
  # n8n-nodes-woztell-sanuker

  Welcome to our WOZTELL n8n nodes, for easier [WOZTELL](https://woztell.com/) integration within your n8n workflows, please read:

  *  [Product Features](#product-features)
  *  [In case you don't have the n8n](#in-case-you-dont-have-the-n8n)
  *  [Sign up WOZTELL and WhatsApp Business API for Free](#sign-up-woztell-and-whatsapp-business-api-for-free)
  *  [Installation](#installation)
  *  [Credentials](#credentials)
  *  [Build automation with WOZTELL](#build-automation-with-woztell)
  *  [Triggers and Nodes](#triggers-and-nodes)
  *  [Contact](#contact)
  *  [About Us](#about-us)
  *  [Resources](#resources)


  ## Product Features

  * **Webhook**: Receive all WhatsApp, Facebook Messenger, Instagram, WebChat, and website messages in WOZTELL inbox in real time.

  * **Send Messages**: Send messages or approved message templates to target customers via WhatsApp Business API.

  * **Chatbot Forwarding**: Route customer conversations to WOZTELL chatbot for autoreply.

  * **Full WhatsApp Message Type Support**: Support all business message types and conversation categories available on WhatsApp and Facebook Messenger.

  * **Member Search**: Batch query WOZTELL user information using Member Tags.

  * **OpenAPI Information Query**: Directly query and update user profiles, conversation histories, and related data on WOZTELL platform via OpenAPI.


  ## In case you don't have the n8n

  Connect WOZTELL on n8n | Unlock AI-powered WhatsApp automation in just a few clicks. Easily build no-code workflows on WhatsApp, Messenger, Instagram, and WebChat by connecting WOZTELL with thousands of n8n integrations. Automate personalized broadcasts, conversations, and inbox management, fully powered by WOZTELL’s OpenAPI and GenAI engine.


  ## Sign up WOZTELL and WhatsApp Business API for Free

  You can now create a WOZTELL account and open up a WhatsApp Business API account, completely for free.

  1.  Go to the registration link: https://platform.woztell.com/signup?lang=en&utm_campaign=plugin-n8n&utm_medium=plugin-n8n&utm_source=N8N

  2.  Fill in personal and company details and verify your email.

      ![register2](https://store.sanuker.cn/nn/images/register2.png)

      ![register3](https://store.sanuker.cn/nn/images/register3.png)

  3.  Once you signed up, you will be directed to the platform homepage. There, you can register a WhatsApp Business API account for free following [https://doc.woztell.com/docs/procedures/basic-whatsapp-chatbot-setup/standard-procedures-wa-connect-waba/](https://doc.woztell.com/docs/procedures/basic-whatsapp-chatbot-setup/standard-procedures-wa-connect-waba/) or  use the buttons on the top right of the homepage to chat with our sales team or book a demo session.

      ![register4](https://store.sanuker.cn/nn/images/register4.png)

  ## Installation

  Install WOZTELL community node package in your n8n

  1.	Sign in to n8n with admin access
  2.	Go to **Settings** > **Community Nodes**
  3.	Select **Install**
  4.	Copy and paste the n8n package name @woztell-sanuker/n8n-nodes-woztell-sanuker

  ```
  @woztell-sanuker/n8n-nodes-woztell-sanuker
  ```

  <img src="https://store.sanuker.cn/nn/images/image-20250826180723230.png" alt="image-20250826180723230" style="zoom:50%;" />

  5.  Click **Install**. n8n will now download the package and you may return to n8n to use.

  Learn more about installation from  [https://docs.n8n.io/integrations/community-nodes/installation/gui-install/](https://docs.n8n.io/integrations/community-nodes/installation/gui-install/)



  ## Credentials

  Before you begin using our n8n plugin, you will need to obtain your API Credential information from the WOZTELL Platform. These credentials serve as the essential authentication keys for accessing the WOZTELL Product API. Please refer to the documentation linked below to acquire the appropriate credential according to the required permission level, and then enter this information into the WOZTELL n8n Credential configuration.

  1.  Open **Credential**

  ![image-20250829102707280](https://store.sanuker.cn/nn/images/image-20250829102707280.png)

  2.  Create credential by searching **WOZTELL**

  <img src="https://store.sanuker.cn/nn/images/image-20250829122336781.png" alt="image-20250829122336781" style="zoom:50%;" />

  3.  Login your WOZTELL account and open [**https://platform.woztell.com/settings/accesstokens?lang=en**](https://platform.woztell.com/settings/accesstokens?lang=en), and enable the **channel:list**, **botapi:sendResponses**, and **bot:redirectMemberToNode** permissions.

  4.  For more functions you need, please check the document [**https://doc.woztell.com/docs/documentations/settings/access-token/**](https://doc.woztell.com/docs/documentations/settings/access-token/)

  5.  Generate the access token

  6.  For more details on access token, please refer to this [https://doc.woztell.com/docs/documentations/settings/access-token](https://doc.woztell.com/docs/documentations/settings/access-token).

      ![image-20250829103010464](https://store.sanuker.cn/nn/images/image-20250829103010464.png)

  7.  Fill in access token and **Save**

      ![image-20250829103034574](https://store.sanuker.cn/nn/images/image-20250829103034574.png)

      

  ## Build automation with WOZTELL

  #### Create a n8n workflow

  ![image-20250829121753114](https://store.sanuker.cn/nn/images/image-20250829121753114.png)

  #### Open the nodes panel

  ![image-20250829121645155](https://store.sanuker.cn/nn/images/image-20250829121645155.png)

  #### Search WOZTELL

  <img src="https://store.sanuker.cn/nn/images/image-20250829121853114.png" alt="image-20250829121853114" style="zoom:50%;" />



  ## Triggers and Nodes

  #### Overview

  By searching the keyword **“WOZTELL”** in the sidebar, you can access the list of available n8n nodes and triggers.

  <img src="https://store.sanuker.cn/nn/images/image-20250829122639889.png" alt="image-20250829122639889" style="zoom:50%;" />

  Within this list, you will find all nodes and triggers developed by WOZTELL for n8n. You may directly drag and drop the required node or trigger into the workflow designer to make it part of your workflow.

  -  **Triggers**: These nodes enable you to receive all webhook message data coming from WOZTELL products.
  -  **BOT API Actions**: These nodes provide your workflow with the ability to send messages and perform data operations through WOZTELL products.
  -  **Member Actions**: These nodes allow you to efficiently manage all member information stored within WOZTELL products.



  #### Webhook: On WOZTELL Message received

  Through the **WOZTELL Trigger** node, you can receive webhook messages from any WOZTELL Channel, including various types such as *Inbound*, *Outbound*, and *Member Update*. Each message is delivered in JSON format and contains comprehensive data along with the associated event information.

  ![image-20250829122535949](https://store.sanuker.cn/nn/images/image-20250829122535949.png)

  Within this node, you can specify the corresponding **Webhook Path** and configure filtering options based on **Channel ID** and **Event Type**, ensuring that the information you receive is properly filtered and can be utilized effectively.

  Learn more from: [https://doc.woztell.com/docs/documentations/channels/channels-webhook](https://doc.woztell.com/docs/documentations/channels/channels-webhook)

  ![image-20250826184406024](https://store.sanuker.cn/nn/images/image-20250826184406024.png)



  #### Node: Send Response

  Using the **Send Response** node, you can directly send messages from your WhatsApp Business number to the target customer’s WhatsApp account via the WOZTELL BotAPI. All message content can be placed directly within the Response data.

  Once the message is sent, you will receive the corresponding API result, which allows subsequent nodes to continue processing the data.

  For more details, please refer to the official WOZTELL product documentation: [https://doc.woztell.com/docs/reference/bot-api-reference#send-responses](https://doc.woztell.com/docs/reference/bot-api-reference#send-responses)

  ![sendResponse](https://store.sanuker.cn/nn/images/sendResponse.png)



  #### Node: Redirect member to node

  With the **Redirect Member to Node** node, you no longer need to manually construct complex JSON data for sending messages. Instead, you simply pass the relevant WOZTELL information to a **Chatbot Tree** node, and the WOZTELL Chatbot will handle the subsequent actions for you — such as sending WhatsApp conversation message templates.

  This node can be understood as a memory pointer: it redirects the current operation to the WOZTELL Chatbot. You do not need to prepare complicated data structures; you only need to initiate a request to the BotAPI.

  For customers who already have chatbot designs running on the WOZTELL platform, this provides an excellent way to integrate with n8n.

  Learn more from: [https://doc.woztell.com/docs/reference/bot-api-reference#redirect-member-to-node](https://doc.woztell.com/docs/reference/bot-api-reference#redirect-member-to-node)

  ![redirectMemberToNode](https://store.sanuker.cn/nn/images/redirectMemberToNode.png)

  #### Node: Send WhatsApp Template message

  According to WhatsApp’s official business messaging guidelines, when contacting unfamiliar WhatsApp numbers or numbers outside the 24-hour session window, you must first send a **WhatsApp Template Message**.

  Our n8n plugin significantly simplifies the complexity of working with WhatsApp Template Messages. The current node can automatically generate the required message content based on templates that have already been created and approved. You only need to complete the corresponding form fields, and the Template Message can be sent directly.

  Learn more from: [https://doc.woztell.com/docs/integrations/whatsapp/wa-message-types#whatsapp-message-template](https://doc.woztell.com/docs/integrations/whatsapp/wa-message-types#whatsapp-message-template)

  ![image-20250826185818626](https://store.sanuker.cn/nn/images/image-20250826185818626.png)



  ## Contact

  We sincerely appreciate your strong support and understanding of our current n8n plugin. If you are interested in learning more about our products or services, you may also reach us through the following channels:

  *  WOZTELL product team: [https://woztell.com](https://woztell.com)
  *  Sanuker service team: [https://sanuker.com](https://sanuker.com)
  *  Email: [kris@woztell.com](mailto:kris@woztell.com)
  *  Email: [hello@woztell.com](mailto:hello@woztell.com)
  *  WOZTELL Customer Success WhatsApp: [https://wa.me/14157959796](https://wa.me/14157959796)
  *  Sanuker Service WhatsApp: [https://wa.me/85254432330](https://wa.me/85254432330)



  ## About Us

  **Sanuker**

  Sanuker is a leading AI Business Messaging Consulting firm, offering professional business messaging services and AI chatbot solutions tailored for enterprises. We distinguish ourselves in the market through our innovative approach to messaging designs and strategies, especially across Meta platforms - WhatsApp, Messenger, Instagram.

  As a trusted partners of AWS, HSBC Business Go, and Meta, we serve 10K+ clients across 25 countries through our WOZTELL Conversational Platform, empowering businesses to qualify leads and boost conversions.

  **WOZTELL**

  WOZTELL is your all-in-one platform to seamlessly create, manage, and deploy chatbots across WhatsApp, Messenger, Instagram, and Websites. Powered by cutting-edge GenAI engines, WOZTELL empowers you to execute personalized broadcasts, manage unlimited live chat agents, and integrate effortlessly with any third-party software via our robust OpenAPI.

  ## Resources

  - n8n Community Nodes, [https://docs.n8n.io/integrations/#community-nodes](https://docs.n8n.io/integrations/#community-nodes)
  - WOZTELL Platform documentation, [https://doc.woztell.com/](https://doc.woztell.com/)
  - WOZTELL Bot API, [https://doc.woztell.com/docs/reference/bot-api-reference](https://doc.woztell.com/docs/reference/bot-api-reference)
  - WOZTELL Open API, [https://doc.woztell.com/open-api-reference](https://doc.woztell.com/open-api-reference)
  - WOZTELL Webhook, [https://doc.woztell.com/docs/documentations/channels/channels-webhook](https://doc.woztell.com/docs/documentations/channels/channels-webhook)
  - WhatsApp Integration on Woztell: [https://doc.woztell.com/docs/integrations/whatsapp/wa-overview](https://doc.woztell.com/docs/integrations/whatsapp/wa-overview)
  - Facebook Messenger Integration on WOZTELL: [https://doc.woztell.com/docs/integrations/facebook/fb-overview](https://doc.woztell.com/docs/integrations/facebook/fb-overview)
  - Instagram Integration on WOZTELL: [https://doc.woztell.com/docs/integrations/instagram/ig-overview](https://doc.woztell.com/docs/integrations/instagram/ig-overview)
  - Webchat Integration on WOZTELL: [https://doc.woztell.com/docs/integrations/web-chat/webchat-overview](https://doc.woztell.com/docs/integrations/web-chat/webchat-overview)

ai_documentation_summary:
  {"purpose":"The WOZTELL Trigger node automates messaging workflows by receiving real-time messages from WhatsApp, Facebook Messenger, Instagram, and WebChat, and enables sending messages or routing conversations to chatbots.","capabilities":["Receive messages from WhatsApp, Facebook Messenger, Instagram, WebChat, and websites","Send messages or approved message templates via WhatsApp Business API","Route customer conversations to WOZTELL chatbot for autoreply","Support all business message types and conversation categories","Batch query user information using Member Tags","Query and update user profiles and conversation histories via OpenAPI"],"authentication":"API Token (Access Token) required from WOZTELL Platform with specific permissions (channel:list, botapi:sendResponses, bot:redirectMemberToNode)","commonUseCases":["Automate customer support responses across multiple messaging platforms","Implement chatbot forwarding for autoreplies","Send broadcast messages to target customers","Manage and update user profiles and conversation histories"],"limitations":["Requires manual setup of WOZTELL account and WhatsApp Business API","Access tokens require specific permission levels to be enabled in the WOZTELL platform","Node is a community package and may depend on n8n's community node support"],"relatedNodes":["WOZTELL Send","WOZTELL Chatbot","WOZTELL Member Search","WOZTELL OpenAPI"]}


node_type: n8n-nodes-anchorbrowser.anchorBrowser
package_name: n8n-nodes-anchorbrowser
display_name: Anchor Browser
description: Interact with Anchor Browser API for browser automation and control
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: gdanks-anchor
author_github_url: https://github.com/anchorbrowser/anchorbrowser-n8n-node.git
npm_package_name: n8n-nodes-anchorbrowser
npm_version: 0.1.12
community_fetched_at: 2026-04-16T09:43:36.432Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "session",
      "options": [
        {
          "name": "Browser Session",
          "value": "session"
        },
        {
          "name": "OS Level Control",
          "value": "osControl"
        },
        {
          "name": "Profile",
          "value": "profile"
        },
        {
          "name": "Task",
          "value": "task"
        },
        {
          "name": "Tool",
          "value": "tools"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create Session",
          "value": "create",
          "action": "Create browser session",
          "description": "Start a new browser session"
        },
        {
          "name": "End All",
          "value": "endAll",
          "action": "End all browser sessions",
          "description": "End all browser sessions"
        },
        {
          "name": "End Session",
          "value": "end",
          "action": "End browser session",
          "description": "End a specific browser session"
        },
        {
          "name": "Get Downloads",
          "value": "getDownloads",
          "action": "Get session downloads",
          "description": "Get session downloads"
        },
        {
          "name": "Get Recordings",
          "value": "getRecordings",
          "action": "Get session recordings",
          "description": "Get session recordings"
        },
        {
          "name": "Get Session",
          "value": "get",
          "action": "Get browser session",
          "description": "Get details of a specific session"
        },
        {
          "name": "List All",
          "value": "listAll",
          "action": "List all browser sessions",
          "description": "List all browser sessions"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "session"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "Delete Profile",
          "value": "delete",
          "action": "Delete profile",
          "description": "Delete a profile"
        },
        {
          "name": "Get Profile",
          "value": "get",
          "action": "Get profile",
          "description": "Get details of a specific profile"
        },
        {
          "name": "List Profiles",
          "value": "list",
          "action": "List all profiles",
          "description": "List all profiles"
        },
        {
          "name": "Update Profile",
          "value": "update",
          "action": "Update profile",
          "description": "Update an existing profile"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "profile"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "fetchWebpage",
      "options": [
        {
          "name": "Fetch Webpage",
          "value": "fetchWebpage",
          "action": "Fetch webpage",
          "description": "Get webpage content as HTML or Markdown"
        },
        {
          "name": "Perform Web Task",
          "value": "performWebTask",
          "action": "Perform web task",
          "description": "Perform an AI-powered web task"
        },
        {
          "name": "Get Perform Web Task Status",
          "value": "getPerformWebTaskStatus",
          "action": "Get perform web task status",
          "description": "Get the status of an asynchronous perform-web-task execution"
        },
        {
          "name": "Take Screenshot",
          "value": "screenshot",
          "action": "Take screenshot",
          "description": "Take a screenshot of a webpage"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "tools"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "Create Task",
          "value": "create",
          "action": "Create task",
          "description": "Create a new task or update existing task"
        },
        {
          "name": "Delete Task",
          "value": "delete",
          "action": "Delete task",
          "description": "Delete a task"
        },
        {
          "name": "Deploy Task",
          "value": "deploy",
          "action": "Deploy task",
          "description": "Deploy a task version"
        },
        {
          "name": "Get Execution",
          "value": "getExecution",
          "action": "Get execution result",
          "description": "Get a specific execution result by ID"
        },
        {
          "name": "List Executions",
          "value": "listExecutions",
          "action": "List task executions",
          "description": "List task execution results"
        },
        {
          "name": "List Tasks",
          "value": "list",
          "action": "List tasks",
          "description": "List all tasks"
        },
        {
          "name": "Run Task",
          "value": "run",
          "action": "Run task",
          "description": "Execute a task"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "task"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "mouseClick",
      "options": [
        {
          "name": "Copy Text",
          "value": "copyText",
          "action": "Copy text",
          "description": "Copy selected text"
        },
        {
          "name": "Drag and Drop",
          "value": "dragDrop",
          "action": "Drag and drop",
          "description": "Perform drag and drop"
        },
        {
          "name": "Get Clipboard",
          "value": "getClipboard",
          "action": "Get clipboard",
          "description": "Get clipboard content"
        },
        {
          "name": "Keyboard Shortcut",
          "value": "keyboardShortcut",
          "action": "Use keyboard shortcut",
          "description": "Perform keyboard shortcut"
        },
        {
          "name": "Mouse Click",
          "value": "mouseClick",
          "action": "Click mouse",
          "description": "Perform a mouse click"
        },
        {
          "name": "Mouse Double Click",
          "value": "mouseDoubleClick",
          "action": "Double click mouse",
          "description": "Perform a double click"
        },
        {
          "name": "Mouse Move",
          "value": "mouseMove",
          "action": "Move mouse",
          "description": "Move mouse cursor"
        },
        {
          "name": "Navigate to URL",
          "value": "navigate",
          "action": "Navigate to URL",
          "description": "Navigate to a URL"
        },
        {
          "name": "Paste Text",
          "value": "pasteText",
          "action": "Paste text"
        },
        {
          "name": "Scroll",
          "value": "scroll",
          "action": "Scroll page",
          "description": "Scroll the page"
        },
        {
          "name": "Set Clipboard",
          "value": "setClipboard",
          "action": "Set clipboard",
          "description": "Set clipboard content"
        },
        {
          "name": "Take Screenshot",
          "value": "screenshot",
          "action": "Take screenshot",
          "description": "Take a screenshot of current session"
        },
        {
          "name": "Type Text",
          "value": "typeText",
          "action": "Type text",
          "description": "Type text with keyboard"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "osControl"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create Session",
      "value": "create",
      "action": "Create browser session",
      "description": "Start a new browser session",
      "resource": "session"
    },
    {
      "name": "End All",
      "value": "endAll",
      "action": "End all browser sessions",
      "description": "End all browser sessions",
      "resource": "session"
    },
    {
      "name": "End Session",
      "value": "end",
      "action": "End browser session",
      "description": "End a specific browser session",
      "resource": "session"
    },
    {
      "name": "Get Downloads",
      "value": "getDownloads",
      "action": "Get session downloads",
      "description": "Get session downloads",
      "resource": "session"
    },
    {
      "name": "Get Recordings",
      "value": "getRecordings",
      "action": "Get session recordings",
      "description": "Get session recordings",
      "resource": "session"
    },
    {
      "name": "Get Session",
      "value": "get",
      "action": "Get browser session",
      "description": "Get details of a specific session",
      "resource": "session"
    },
    {
      "name": "List All",
      "value": "listAll",
      "action": "List all browser sessions",
      "description": "List all browser sessions",
      "resource": "session"
    },
    {
      "name": "Delete Profile",
      "value": "delete",
      "action": "Delete profile",
      "description": "Delete a profile",
      "resource": "profile"
    },
    {
      "name": "Get Profile",
      "value": "get",
      "action": "Get profile",
      "description": "Get details of a specific profile",
      "resource": "profile"
    },
    {
      "name": "List Profiles",
      "value": "list",
      "action": "List all profiles",
      "description": "List all profiles",
      "resource": "profile"
    },
    {
      "name": "Update Profile",
      "value": "update",
      "action": "Update profile",
      "description": "Update an existing profile",
      "resource": "profile"
    },
    {
      "name": "Fetch Webpage",
      "value": "fetchWebpage",
      "action": "Fetch webpage",
      "description": "Get webpage content as HTML or Markdown",
      "resource": "tools"
    },
    {
      "name": "Perform Web Task",
      "value": "performWebTask",
      "action": "Perform web task",
      "description": "Perform an AI-powered web task",
      "resource": "tools"
    },
    {
      "name": "Get Perform Web Task Status",
      "value": "getPerformWebTaskStatus",
      "action": "Get perform web task status",
      "description": "Get the status of an asynchronous perform-web-task execution",
      "resource": "tools"
    },
    {
      "name": "Take Screenshot",
      "value": "screenshot",
      "action": "Take screenshot",
      "description": "Take a screenshot of a webpage",
      "resource": "tools"
    },
    {
      "name": "Create Task",
      "value": "create",
      "action": "Create task",
      "description": "Create a new task or update existing task",
      "resource": "task"
    },
    {
      "name": "Delete Task",
      "value": "delete",
      "action": "Delete task",
      "description": "Delete a task",
      "resource": "task"
    },
    {
      "name": "Deploy Task",
      "value": "deploy",
      "action": "Deploy task",
      "description": "Deploy a task version",
      "resource": "task"
    },
    {
      "name": "Get Execution",
      "value": "getExecution",
      "action": "Get execution result",
      "description": "Get a specific execution result by ID",
      "resource": "task"
    },
    {
      "name": "List Executions",
      "value": "listExecutions",
      "action": "List task executions",
      "description": "List task execution results",
      "resource": "task"
    },
    {
      "name": "List Tasks",
      "value": "list",
      "action": "List tasks",
      "description": "List all tasks",
      "resource": "task"
    },
    {
      "name": "Run Task",
      "value": "run",
      "action": "Run task",
      "description": "Execute a task",
      "resource": "task"
    },
    {
      "name": "Copy Text",
      "value": "copyText",
      "action": "Copy text",
      "description": "Copy selected text",
      "resource": "osControl"
    },
    {
      "name": "Drag and Drop",
      "value": "dragDrop",
      "action": "Drag and drop",
      "description": "Perform drag and drop",
      "resource": "osControl"
    },
    {
      "name": "Get Clipboard",
      "value": "getClipboard",
      "action": "Get clipboard",
      "description": "Get clipboard content",
      "resource": "osControl"
    },
    {
      "name": "Keyboard Shortcut",
      "value": "keyboardShortcut",
      "action": "Use keyboard shortcut",
      "description": "Perform keyboard shortcut",
      "resource": "osControl"
    },
    {
      "name": "Mouse Click",
      "value": "mouseClick",
      "action": "Click mouse",
      "description": "Perform a mouse click",
      "resource": "osControl"
    },
    {
      "name": "Mouse Double Click",
      "value": "mouseDoubleClick",
      "action": "Double click mouse",
      "description": "Perform a double click",
      "resource": "osControl"
    },
    {
      "name": "Mouse Move",
      "value": "mouseMove",
      "action": "Move mouse",
      "description": "Move mouse cursor",
      "resource": "osControl"
    },
    {
      "name": "Navigate to URL",
      "value": "navigate",
      "action": "Navigate to URL",
      "description": "Navigate to a URL",
      "resource": "osControl"
    },
    {
      "name": "Paste Text",
      "value": "pasteText",
      "action": "Paste text",
      "resource": "osControl"
    },
    {
      "name": "Scroll",
      "value": "scroll",
      "action": "Scroll page",
      "description": "Scroll the page",
      "resource": "osControl"
    },
    {
      "name": "Set Clipboard",
      "value": "setClipboard",
      "action": "Set clipboard",
      "description": "Set clipboard content",
      "resource": "osControl"
    },
    {
      "name": "Take Screenshot",
      "value": "screenshot",
      "action": "Take screenshot",
      "description": "Take a screenshot of current session",
      "resource": "osControl"
    },
    {
      "name": "Type Text",
      "value": "typeText",
      "action": "Type text",
      "description": "Type text with keyboard",
      "resource": "osControl"
    }
  ]

npm_readme:
  # n8n-nodes-anchorbrowser

  An n8n community node for integrating with the Anchor Browser API. This node provides comprehensive browser automation capabilities including session management, web scraping, AI-powered tasks, and OS-level control.

  ## Features

  ### Browser Sessions
  - **Create Session**: Start new browser sessions with customizable configurations
  - **Get Session**: Retrieve details of specific sessions
  - **List All Sessions**: Get status of all active sessions
  - **End Session**: Terminate specific sessions
  - **End All Sessions**: Terminate all active sessions
  - **Get Recordings**: Retrieve session recordings
  - **Get Downloads**: Get session downloads

  ### Profiles
  - **Get Profile**: Retrieve profile details
  - **List Profiles**: View all available profiles
  - **Update Profile**: Modify existing profiles (description only)
  - **Delete Profile**: Remove profiles

  ### Tools
  - **Fetch Webpage**: Get webpage content as HTML or Markdown (requires either Session ID or URL)
  - **Perform Web Task**: Execute AI-powered web tasks using various agents (requires either Session ID or URL)
  - **Take Screenshot**: Capture screenshots with customizable options (requires either Session ID or URL)

  > **Note**: Tools operations are flexible - you can either provide a Session ID to use an existing session, or provide a URL and let the system create a new session automatically. This makes the Tools operations perfect for quick, one-off tasks without needing to manage sessions manually.

  ### OS Level Control
  - **Mouse Actions**: Click, double-click, move, drag and drop (requires Session ID)
  - **Keyboard Input**: Type text, use shortcuts (requires Session ID)
  - **Scrolling**: Scroll pages with customizable parameters (requires Session ID)
  - **Clipboard**: Get/set clipboard content, copy/paste text (requires Session ID)
  - **Navigation**: Navigate to URLs (requires Session ID)
  - **Screenshots**: Capture current session screenshots (requires Session ID)

  ## Installation

  1. Install the node package:
  ```bash
  npm install n8n-nodes-anchorbrowser
  ```

  2. Or build from source:
  ```bash
  git clone https://github.com/anchorbrowser/n8n-nodes-anchorbrowser.git
  cd n8n-nodes-anchorbrowser
  npm install
  npm run build
  ```

  ## Configuration

  ### Credentials

  1. Get your API key from [Anchor Browser Dashboard](https://app.anchorbrowser.io?utm_source=n8n-node)
  2. In n8n, go to Credentials and create a new "Anchor Browser API" credential
  3. Enter your API key and base URL (default: https://api.anchorbrowser.io)

  ### Node Usage

  1. Add the "Anchor Browser" node to your workflow
  2. Select the resource type (Browser Session, Profile, Tools, etc.)
  3. Choose the operation you want to perform
  4. Configure the parameters as needed
  5. Connect the node to your workflow

  ## Examples

  ### Basic Web Scraping

  1. **Create Session**: Start a new browser session
  2. **Navigate**: Go to the target website using OS Control
  3. **Fetch Webpage**: Get the page content as HTML or Markdown
  4. **End Session**: Clean up the session

  ### AI-Powered Task Automation

  1. **Perform Web Task**: Use AI to complete tasks like form filling or data extraction (provides URL directly)
  2. **Get Results**: Retrieve the task results

  ### Session-Based Automation

  1. **Create Session**: Start a browser session
  2. **Navigate**: Go to target website using OS Control
  3. **Mouse Actions**: Click buttons, fill forms using OS Control
  4. **Take Screenshot**: Capture the result
  5. **End Session**: Clean up

  ### Profile Management

  1. **List Profiles**: View all available profiles
  2. **Get Profile**: Retrieve specific profile details
  3. **Update Profile**: Modify profile description
  4. **Delete Profile**: Remove unused profiles

  ## Configuration Options

  ### Session Configuration
  - **Initial URL**: Starting page for the browser
  - **Recording**: Enable/disable video recording
  - **Timeouts**: Set maximum duration and idle timeouts
  - **Live View**: Configure read-only viewing options

  ### Browser Configuration
  - **Profile Management**: Use existing profiles or create new ones
  - **Ad Blocking**: Enable/disable ad blocking
  - **Captcha Solving**: Configure AI-powered captcha solving
  - **Viewport**: Set browser window dimensions
  - **Headless Mode**: Run browser in headless or headful mode
  - **Web Security**: Disable web security features if needed

  ### Proxy Configuration
  - **Anchor Proxies**: Use Anchor's residential, mobile, or government proxies
  - **Custom Proxies**: Configure your own proxy servers
  - **Geographic Targeting**: Select specific countries, regions, or cities

  ### Tools Configuration
  - **Session ID**: Optional - if not provided, a new session will be created automatically
  - **URL**: Required for Tools operations if Session ID is not provided
  - **Format**: Choose between HTML and Markdown for webpage content
  - **AI Models**: Select from various AI providers (OpenAI, Groq, etc.)
  - **Screenshot Options**: Configure image quality, dimensions, and capture settings

  ## API Reference

  For detailed API documentation, visit [Anchor Browser API Docs](https://docs.anchorbrowser.io?utm_source=n8n-node).

  ## Support

  - **Documentation**: [https://docs.anchorbrowser.io?utm_source=n8n-node](https://docs.anchorbrowser.io?utm_source=n8n-node)
  - **Support**: [support@anchorbrowser.io](mailto:support@anchorbrowser.io)
  - **GitHub Issues**: [https://github.com/anchorbrowser/n8n-nodes-anchorbrowser/issues](https://github.com/anchorbrowser/n8n-nodes-anchorbrowser/issues)

  ## License

  MIT License - see [LICENSE](LICENSE) file for details.

  ## Contributing

  Contributions are welcome! Please read our [Contributing Guidelines](CONTRIBUTING.md) and submit pull requests to our [GitHub repository](https://github.com/anchorbrowser/n8n-nodes-anchorbrowser).

  ## Changelog

  ### v0.1.0
  - Initial release
  - Browser session management (create, get, list, end)
  - Profile management (get, list, update, delete)
  - Tools operations (fetch webpage, perform web task, screenshot)
  - OS-level control (mouse, keyboard, scrolling, clipboard, navigation)
  - Flexible session handling - Tools operations can work with or without existing sessions
  - Comprehensive parameter validation and error handling
  - Support for binary data (screenshots) with proper n8n formatting
  - AI-powered task execution with multiple provider support

ai_documentation_summary:
  {"purpose":"This n8n community node enables browser automation and control by integrating with the Anchor Browser API, supporting session management, web scraping, AI-powered tasks, and OS-level interactions.","capabilities":["Create, retrieve, list, and terminate browser sessions","Retrieve session recordings and downloads","Manage browser profiles (view, update, delete)","Fetch webpage content as HTML or Markdown","Execute AI-powered web tasks using various agents","Capture screenshots with customizable options","Perform mouse actions (click, drag, move)","Execute keyboard input and text entry","Control scrolling and navigation","Access and manage clipboard content"],"authentication":"API key required (stored in n8n Credentials)","commonUseCases":["Web scraping and data extraction","Automated form filling and data entry","Browser-based AI task automation","Session-based UI testing and automation","Profile management for different browser configurations"],"limitations":["Tools operations require either a Session ID or URL; cannot operate without one","OS-level control operations require an active Session ID","Some configurations (like custom proxies) may require additional setup outside the node"],"relatedNodes":["n8n HTTP Request","n8n Code","n8n Webhook"]}


