# nodes

node_type: nodes-base.zulipTool
package_name: n8n-nodes-base
display_name: Zulip Tool
description: Consume Zulip API (AI Tool variant for use with AI Agents)
category: output
development_style: programmatic
version: 1
credentials_required:
  [
  {
  "name": "zulipApi",
  "required": true
  }
  ]

outputs:
  [
  {
  "type": "ai_tool",
  "displayName": "Tool"
  }
  ]

output_names:
  [
  "Tool"
  ]

updated_at: 2026-03-04 11:46:58
tool_variant_of: nodes-base.zulip
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: Zulip node documentation
  description: Learn how to use the Zulip node in n8n. Follow technical documentation to integrate Zulip node into your workflows.
  contentType: [integration, reference]
  ---

  # Zulip node

  Use the Zulip node to automate work in Zulip, and integrate Zulip with other applications. n8n has built-in support for a wide range of Zulip features, including creating, deleting, and getting users and streams, as well as sending messages. 

  On this page, you'll find a list of operations the Zulip node supports and links to more resources.

  /// note | Credentials
  Refer to [Zulip credentials](/integrations/builtin/credentials/zulip.md) for guidance on setting up authentication. 
  ///

  ## Operations

  * Message
      * Delete a message
      * Get a message
      * Send a private message
      * Send a message to stream
      * Update a message
      * Upload a file
  * Stream
      * Create a stream.
      * Delete a stream.
      * Get all streams.
      * Get subscribed streams.
      * Update a stream.
  * User
      * Create a user.
      * Deactivate a user.
      * Get a user.
      * Get all users.
      * Update a user.

  ## Templates and examples

  <!-- see https://www.notion.so/n8n/Pull-in-templates-for-the-integrations-pages-37c716837b804d30a33b47475f6e3780 -->
  [[ templatesWidget(page.title, 'zulip') ]]

properties_schema:
  [
    {
      "displayName": "Tool Description",
      "name": "toolDescription",
      "type": "string",
      "default": "",
      "required": false,
      "description": "Description for the AI to understand what this tool does and when to use it",
      "typeOptions": {
        "rows": 3
      },
      "placeholder": "e.g., Use this tool to interact with Zulip"
    },
    {
      "displayName": "Resource",
      "name": "resource",
      "type": "options",
      "default": "message",
      "options": [
        {
          "name": "Message",
          "value": "message"
        },
        {
          "name": "Stream",
          "value": "stream"
        },
        {
          "name": "User",
          "value": "user"
        }
      ],
      "noDataExpression": true
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "sendPrivate",
      "options": [
        {
          "name": "Delete",
          "value": "delete",
          "description": "Delete a message",
          "action": "Delete a message"
        },
        {
          "name": "Get",
          "value": "get",
          "description": "Get a message",
          "action": "Get a message"
        },
        {
          "name": "Send Private",
          "value": "sendPrivate",
          "description": "Send a private message",
          "action": "Send a private message"
        },
        {
          "name": "Send to Stream",
          "value": "sendStream",
          "description": "Send a message to stream",
          "action": "Send a message to a stream"
        },
        {
          "name": "Update",
          "value": "update",
          "description": "Update a message",
          "action": "Update a message"
        },
        {
          "name": "Upload a File",
          "value": "updateFile",
          "action": "Upload a file"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "To",
      "name": "to",
      "type": "multiOptions",
      "default": [],
      "description": "The destination stream, or a comma-separated list containing the usernames (emails) of the recipients. Choose from the list, or specify IDs using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>.",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ],
          "operation": [
            "sendPrivate"
          ]
        }
      },
      "typeOptions": {
        "loadOptionsMethod": "getUsers"
      }
    },
    {
      "displayName": "Content",
      "name": "content",
      "type": "string",
      "default": "",
      "description": "The content of the message",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ],
          "operation": [
            "sendPrivate"
          ]
        }
      }
    },
    {
      "displayName": "Stream Name or ID",
      "name": "stream",
      "type": "options",
      "default": "",
      "description": "The destination stream, or a comma-separated list containing the usernames (emails) of the recipients. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>.",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ],
          "operation": [
            "sendStream"
          ]
        }
      },
      "typeOptions": {
        "loadOptionsMethod": "getStreams"
      }
    },
    {
      "displayName": "Topic Name or ID",
      "name": "topic",
      "type": "options",
      "default": "",
      "description": "The topic of the message. Only required if type is stream, ignored otherwise. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>.",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ],
          "operation": [
            "sendStream"
          ]
        }
      },
      "typeOptions": {
        "loadOptionsDependsOn": [
          "stream"
        ],
        "loadOptionsMethod": "getTopics"
      }
    },
    {
      "displayName": "Content",
      "name": "content",
      "type": "string",
      "default": "",
      "description": "The content of the message",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ],
          "operation": [
            "sendStream"
          ]
        }
      }
    },
    {
      "displayName": "Message ID",
      "name": "messageId",
      "type": "string",
      "default": "",
      "description": "Unique identifier for the message",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ],
          "operation": [
            "update"
          ]
        }
      }
    },
    {
      "displayName": "Update Fields",
      "name": "updateFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Content",
          "name": "content",
          "type": "string",
          "default": "",
          "description": "The content of the message"
        },
        {
          "displayName": "Propagate Mode",
          "name": "propagateMode",
          "type": "options",
          "options": [
            {
              "name": "Change One",
              "value": "changeOne"
            },
            {
              "name": "Change Later",
              "value": "changeLater"
            },
            {
              "name": "Change All",
              "value": "changeAll"
            }
          ],
          "default": "changeOne",
          "description": "Which message(s) should be edited: just the one indicated in message_id, messages in the same topic that had been sent after this one, or all of them"
        },
        {
          "displayName": "Topic",
          "name": "topic",
          "type": "string",
          "default": "",
          "description": "The topic of the message. Only required for stream messages."
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ],
          "operation": [
            "update"
          ]
        }
      }
    },
    {
      "displayName": "Message ID",
      "name": "messageId",
      "type": "string",
      "default": "",
      "description": "Unique identifier for the message",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ],
          "operation": [
            "get"
          ]
        }
      }
    },
    {
      "displayName": "Message ID",
      "name": "messageId",
      "type": "string",
      "default": "",
      "description": "Unique identifier for the message",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ],
          "operation": [
            "delete"
          ]
        }
      }
    },
    {
      "displayName": "Put Output File in Field",
      "name": "dataBinaryProperty",
      "type": "string",
      "default": "data",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ],
          "operation": [
            "updateFile"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "description": "Create a stream",
          "action": "Create a stream"
        },
        {
          "name": "Delete",
          "value": "delete",
          "description": "Delete a stream",
          "action": "Delete a stream"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "description": "Get many streams",
          "action": "Get many streams"
        },
        {
          "name": "Get Subscribed",
          "value": "getSubscribed",
          "description": "Get subscribed streams",
          "action": "Get subscribed streams"
        },
        {
          "name": "Update",
          "value": "update",
          "description": "Update a stream",
          "action": "Update a stream"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "stream"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "JSON Parameters",
      "name": "jsonParameters",
      "type": "boolean",
      "default": false,
      "displayOptions": {
        "show": {
          "resource": [
            "stream"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Additional Fields",
      "name": "additionalFieldsJson",
      "type": "json",
      "default": "",
      "description": "JSON format parameters for stream creation",
      "displayOptions": {
        "show": {
          "resource": [
            "stream"
          ],
          "operation": [
            "create"
          ],
          "jsonParameters": [
            true
          ]
        }
      },
      "typeOptions": {
        "alwaysOpenEditWindow": true
      }
    },
    {
      "displayName": "Subscriptions",
      "name": "subscriptions",
      "type": "fixedCollection",
      "default": {},
      "description": "A list of dictionaries containing the the key name and value specifying the name of the stream to subscribe. If the stream does not exist a new stream is created.",
      "options": [
        {
          "displayName": "Subscription Properties",
          "name": "properties",
          "values": [
            {
              "displayName": "Name",
              "name": "name",
              "type": "string",
              "required": true,
              "default": "",
              "description": "Name of Subscription"
            },
            {
              "displayName": "Description",
              "name": "description",
              "type": "string",
              "required": true,
              "default": "",
              "description": "Description of Subscription"
            }
          ]
        }
      ],
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "stream"
          ],
          "operation": [
            "create"
          ],
          "jsonParameters": [
            false
          ]
        }
      },
      "typeOptions": {
        "multipleValues": true
      }
    },
    {
      "displayName": "Additional Fields",
      "name": "additionalFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Announce",
          "name": "announce",
          "type": "boolean",
          "default": false,
          "description": "If announce is True and one of the streams specified in subscriptions has to be created (i.e. doesnt exist to begin with), an announcement will be made notifying that a new stream was created."
        },
        {
          "displayName": "Authorization Errors Fatal",
          "name": "authorizationErrorsFatal",
          "type": "boolean",
          "default": false,
          "description": "Whether authorization errors (such as when the requesting user is not authorized to access a private stream) should be considered fatal or not. When True, an authorization error is reported as such. When set to False, the returned JSON payload indicates that there was an authorization error, but the response is still considered a successful one."
        },
        {
          "displayName": "History Public to Subscribers",
          "name": "historyPublicToSubscribers",
          "type": "boolean",
          "default": false,
          "description": "Whether the streams message history should be available to newly subscribed members, or users can only access messages they actually received while subscribed to the stream"
        },
        {
          "displayName": "Invite Only",
          "name": "inviteOnly",
          "type": "boolean",
          "default": false,
          "description": "Whether the streams specified in subscriptions are invite-only or not"
        },
        {
          "displayName": "Principals",
          "name": "principals",
          "type": "fixedCollection",
          "default": {},
          "description": "A list of email addresses of the users that will be subscribed/unsubscribed to the streams specified in the subscriptions argument. If not provided, then the requesting user/bot is subscribed.",
          "typeOptions": {
            "multipleValues": true
          },
          "options": [
            {
              "displayName": "Principals Properties",
              "name": "properties",
              "values": [
                {
                  "displayName": "Principal Email",
                  "name": "email",
                  "type": "string",
                  "placeholder": "name@email.com",
                  "required": true,
                  "default": "",
                  "description": "Principal email address"
                }
              ]
            }
          ]
        },
        {
          "displayName": "Stream Post Policy",
          "name": "streamPostPolicy",
          "type": "options",
          "default": "",
          "description": "Policy for which users can post messages to the stream",
          "options": [
            {
              "name": "1",
              "value": 1,
              "description": "Any user can post"
            },
            {
              "name": "2",
              "value": 2,
              "description": "Only administrators can post"
            },
            {
              "name": "3",
              "value": 3,
              "description": "Only new members can post"
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "stream"
          ],
          "operation": [
            "create"
          ],
          "jsonParameters": [
            false
          ]
        }
      }
    },
    {
      "displayName": "Additional Fields",
      "name": "additionalFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Include All Active",
          "name": "includeAllActive",
          "type": "boolean",
          "default": true,
          "description": "Whether to include all active streams. The user must have administrative privileges to use this parameter."
        },
        {
          "displayName": "Include Default",
          "name": "includeDefault",
          "type": "boolean",
          "default": true,
          "description": "Whether to include all default streams for the users realm"
        },
        {
          "displayName": "Include Owner Subscribed",
          "name": "includeOwnersubscribed",
          "type": "boolean",
          "default": true,
          "description": "Whether the user is a bot, include all streams that the bots owner is subscribed to"
        },
        {
          "displayName": "Include Public",
          "name": "includePublic",
          "type": "boolean",
          "default": true,
          "description": "Whether to include all public streams"
        },
        {
          "displayName": "Include Subscribed",
          "name": "includeSubscribed",
          "type": "boolean",
          "default": true,
          "description": "Whether to include all streams that the user is subscribed to"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "stream"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Additional Fields",
      "name": "additionalFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Include Subscribers",
          "name": "includeSubscribers",
          "type": "boolean",
          "default": true,
          "description": "Whether each returned stream object should include a subscribers field containing a list of the user IDs of its subscribers"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "stream"
          ],
          "operation": [
            "getSubscribed"
          ]
        }
      }
    },
    {
      "displayName": "Stream ID",
      "name": "streamId",
      "type": "string",
      "default": "",
      "description": "ID of stream to update",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "stream"
          ],
          "operation": [
            "update"
          ]
        }
      }
    },
    {
      "displayName": "JSON Parameters",
      "name": "jsonParameters",
      "type": "boolean",
      "default": false,
      "displayOptions": {
        "show": {
          "resource": [
            "stream"
          ],
          "operation": [
            "update"
          ]
        }
      }
    },
    {
      "displayName": "Additional Fields",
      "name": "additionalFieldsJson",
      "type": "json",
      "default": "",
      "description": "JSON format parameters for stream creation",
      "displayOptions": {
        "show": {
          "resource": [
            "stream"
          ],
          "operation": [
            "update"
          ],
          "jsonParameters": [
            true
          ]
        }
      },
      "typeOptions": {
        "alwaysOpenEditWindow": true
      }
    },
    {
      "displayName": "Additional Fields",
      "name": "additionalFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Announcement Only",
          "name": "isAnnouncementOnly",
          "type": "boolean",
          "default": false,
          "description": "Whether the stream is limited to announcements"
        },
        {
          "displayName": "Description",
          "name": "description",
          "type": "string",
          "default": "",
          "description": "The new description for the stream",
          "placeholder": "Place of discussion"
        },
        {
          "displayName": "Is Private",
          "name": "isPrivate",
          "type": "boolean",
          "default": false,
          "description": "Whether the stream is a private stream"
        },
        {
          "displayName": "History Public to Subscribers",
          "name": "historyPublicToSubscribers",
          "type": "boolean",
          "default": false,
          "description": "Whether the streams message history should be available to newly subscribed members, or users can only access messages they actually received while subscribed to the stream"
        },
        {
          "displayName": "New Name",
          "name": "newName",
          "type": "string",
          "default": "",
          "description": "The new name for the stream",
          "placeholder": "Italy"
        },
        {
          "displayName": "Stream Post Policy",
          "name": "streamPostPolicy",
          "type": "options",
          "default": "",
          "description": "Policy for which users can post messages to the stream",
          "options": [
            {
              "name": "1",
              "value": 1,
              "description": "Any user can post"
            },
            {
              "name": "2",
              "value": 2,
              "description": "Only administrators can post"
            },
            {
              "name": "3",
              "value": 3,
              "description": "Only new members can post"
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "stream"
          ],
          "operation": [
            "update"
          ],
          "jsonParameters": [
            false
          ]
        }
      }
    },
    {
      "displayName": "Stream ID",
      "name": "streamId",
      "type": "string",
      "default": "",
      "description": "ID of stream to delete",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "stream"
          ],
          "operation": [
            "delete"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "description": "Create a user",
          "action": "Create a user"
        },
        {
          "name": "Deactivate",
          "value": "deactivate",
          "description": "Deactivate a user",
          "action": "Deactivate a user"
        },
        {
          "name": "Get",
          "value": "get",
          "description": "Get a user",
          "action": "Get a user"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "description": "Get many users",
          "action": "Get many users"
        },
        {
          "name": "Update",
          "value": "update",
          "description": "Update a user",
          "action": "Update a user"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "user"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Email",
      "name": "email",
      "type": "string",
      "default": "",
      "description": "The email address of the new user",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "user"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Full Name",
      "name": "fullName",
      "type": "string",
      "default": "",
      "description": "The full name of the new user",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "user"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Password",
      "name": "password",
      "type": "string",
      "default": "",
      "description": "The password of the new user",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "user"
          ],
          "operation": [
            "create"
          ]
        }
      },
      "typeOptions": {
        "password": true
      }
    },
    {
      "displayName": "Short Name",
      "name": "shortName",
      "type": "string",
      "default": "",
      "description": "The short name of the new user. Not user-visible.",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "user"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "User ID",
      "name": "userId",
      "type": "string",
      "default": "",
      "description": "The ID of user to get",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "user"
          ],
          "operation": [
            "get"
          ]
        }
      }
    },
    {
      "displayName": "Additional Fields",
      "name": "additionalFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Client Gravatar",
          "name": "clientGravatar",
          "type": "boolean",
          "default": false,
          "description": "Whether the client supports computing gravatars URLs. If enabled, avatar_url will be included in the response only if there is a Zulip avatar, and will be null for users who are using gravatar as their avatar."
        },
        {
          "displayName": "Custom Profile Fields",
          "name": "includeCustomProfileFields",
          "type": "boolean",
          "default": false,
          "description": "Whether the client wants custom profile field data to be included in the response"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "user"
          ],
          "operation": [
            "get",
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "User ID",
      "name": "userId",
      "type": "string",
      "default": "",
      "description": "The ID of user to update",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "user"
          ],
          "operation": [
            "update"
          ]
        }
      }
    },
    {
      "displayName": "Additional Fields",
      "name": "additionalFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Full Name",
          "name": "fullName",
          "type": "string",
          "default": "",
          "description": "The users full name"
        },
        {
          "displayName": "Is Admin",
          "name": "isAdmin",
          "type": "boolean",
          "default": false,
          "description": "Whether the target user is an administrator"
        },
        {
          "displayName": "Is Guest",
          "name": "isGuest",
          "type": "boolean",
          "default": false,
          "description": "Whether the target user is a guest"
        },
        {
          "displayName": "Profile Data",
          "name": "profileData",
          "type": "fixedCollection",
          "default": {},
          "description": "A dictionary containing the to be updated custom profile field data for the user",
          "typeOptions": {
            "multipleValues": true
          },
          "options": [
            {
              "displayName": "Property",
              "name": "property",
              "values": [
                {
                  "displayName": "ID",
                  "name": "id",
                  "type": "string",
                  "required": true,
                  "default": "",
                  "description": "ID of custom profile data value"
                },
                {
                  "displayName": "Value",
                  "name": "value",
                  "type": "string",
                  "default": "",
                  "description": "Value of custom profile data"
                }
              ]
            }
          ]
        },
        {
          "displayName": "Role",
          "name": "role",
          "type": "options",
          "options": [
            {
              "name": "Guest",
              "value": 600
            },
            {
              "name": "Member",
              "value": 400
            },
            {
              "name": "Organization Administrator",
              "value": 200
            },
            {
              "name": "Organization Moderator",
              "value": 300
            },
            {
              "name": "Organization Owner",
              "value": 100
            }
          ],
          "default": "",
          "description": "Role for the user"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "user"
          ],
          "operation": [
            "update"
          ]
        }
      }
    },
    {
      "displayName": "User ID",
      "name": "userId",
      "type": "string",
      "default": "",
      "description": "The ID of user to deactivate",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "user"
          ],
          "operation": [
            "deactivate"
          ]
        }
      }
    }
  ]

operations:
  [
    {
      "operation": "delete",
      "name": "Delete",
      "description": "Delete a message"
    },
    {
      "operation": "get",
      "name": "Get",
      "description": "Get a message"
    },
    {
      "operation": "sendPrivate",
      "name": "Send Private",
      "description": "Send a private message"
    },
    {
      "operation": "sendStream",
      "name": "Send to Stream",
      "description": "Send a message to stream"
    },
    {
      "operation": "update",
      "name": "Update",
      "description": "Update a message"
    },
    {
      "operation": "updateFile",
      "name": "Upload a File"
    }
  ]


node_type: nodes-base.zulip
package_name: n8n-nodes-base
display_name: Zulip
description: Consume Zulip API
category: output
development_style: programmatic
version: 1
credentials_required:
  [
  {
  "name": "zulipApi",
  "required": true
  }
  ]

outputs:
  [
  "main"
  ]

updated_at: 2026-03-04 11:46:58
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: Zulip node documentation
  description: Learn how to use the Zulip node in n8n. Follow technical documentation to integrate Zulip node into your workflows.
  contentType: [integration, reference]
  ---

  # Zulip node

  Use the Zulip node to automate work in Zulip, and integrate Zulip with other applications. n8n has built-in support for a wide range of Zulip features, including creating, deleting, and getting users and streams, as well as sending messages. 

  On this page, you'll find a list of operations the Zulip node supports and links to more resources.

  /// note | Credentials
  Refer to [Zulip credentials](/integrations/builtin/credentials/zulip.md) for guidance on setting up authentication. 
  ///

  ## Operations

  * Message
      * Delete a message
      * Get a message
      * Send a private message
      * Send a message to stream
      * Update a message
      * Upload a file
  * Stream
      * Create a stream.
      * Delete a stream.
      * Get all streams.
      * Get subscribed streams.
      * Update a stream.
  * User
      * Create a user.
      * Deactivate a user.
      * Get a user.
      * Get all users.
      * Update a user.

  ## Templates and examples

  <!-- see https://www.notion.so/n8n/Pull-in-templates-for-the-integrations-pages-37c716837b804d30a33b47475f6e3780 -->
  [[ templatesWidget(page.title, 'zulip') ]]

properties_schema:
  [
    {
      "displayName": "Resource",
      "name": "resource",
      "type": "options",
      "default": "message",
      "options": [
        {
          "name": "Message",
          "value": "message"
        },
        {
          "name": "Stream",
          "value": "stream"
        },
        {
          "name": "User",
          "value": "user"
        }
      ],
      "noDataExpression": true
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "sendPrivate",
      "options": [
        {
          "name": "Delete",
          "value": "delete",
          "description": "Delete a message",
          "action": "Delete a message"
        },
        {
          "name": "Get",
          "value": "get",
          "description": "Get a message",
          "action": "Get a message"
        },
        {
          "name": "Send Private",
          "value": "sendPrivate",
          "description": "Send a private message",
          "action": "Send a private message"
        },
        {
          "name": "Send to Stream",
          "value": "sendStream",
          "description": "Send a message to stream",
          "action": "Send a message to a stream"
        },
        {
          "name": "Update",
          "value": "update",
          "description": "Update a message",
          "action": "Update a message"
        },
        {
          "name": "Upload a File",
          "value": "updateFile",
          "action": "Upload a file"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "To",
      "name": "to",
      "type": "multiOptions",
      "default": [],
      "description": "The destination stream, or a comma-separated list containing the usernames (emails) of the recipients. Choose from the list, or specify IDs using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>.",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ],
          "operation": [
            "sendPrivate"
          ]
        }
      },
      "typeOptions": {
        "loadOptionsMethod": "getUsers"
      }
    },
    {
      "displayName": "Content",
      "name": "content",
      "type": "string",
      "default": "",
      "description": "The content of the message",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ],
          "operation": [
            "sendPrivate"
          ]
        }
      }
    },
    {
      "displayName": "Stream Name or ID",
      "name": "stream",
      "type": "options",
      "default": "",
      "description": "The destination stream, or a comma-separated list containing the usernames (emails) of the recipients. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>.",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ],
          "operation": [
            "sendStream"
          ]
        }
      },
      "typeOptions": {
        "loadOptionsMethod": "getStreams"
      }
    },
    {
      "displayName": "Topic Name or ID",
      "name": "topic",
      "type": "options",
      "default": "",
      "description": "The topic of the message. Only required if type is stream, ignored otherwise. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>.",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ],
          "operation": [
            "sendStream"
          ]
        }
      },
      "typeOptions": {
        "loadOptionsDependsOn": [
          "stream"
        ],
        "loadOptionsMethod": "getTopics"
      }
    },
    {
      "displayName": "Content",
      "name": "content",
      "type": "string",
      "default": "",
      "description": "The content of the message",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ],
          "operation": [
            "sendStream"
          ]
        }
      }
    },
    {
      "displayName": "Message ID",
      "name": "messageId",
      "type": "string",
      "default": "",
      "description": "Unique identifier for the message",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ],
          "operation": [
            "update"
          ]
        }
      }
    },
    {
      "displayName": "Update Fields",
      "name": "updateFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Content",
          "name": "content",
          "type": "string",
          "default": "",
          "description": "The content of the message"
        },
        {
          "displayName": "Propagate Mode",
          "name": "propagateMode",
          "type": "options",
          "options": [
            {
              "name": "Change One",
              "value": "changeOne"
            },
            {
              "name": "Change Later",
              "value": "changeLater"
            },
            {
              "name": "Change All",
              "value": "changeAll"
            }
          ],
          "default": "changeOne",
          "description": "Which message(s) should be edited: just the one indicated in message_id, messages in the same topic that had been sent after this one, or all of them"
        },
        {
          "displayName": "Topic",
          "name": "topic",
          "type": "string",
          "default": "",
          "description": "The topic of the message. Only required for stream messages."
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ],
          "operation": [
            "update"
          ]
        }
      }
    },
    {
      "displayName": "Message ID",
      "name": "messageId",
      "type": "string",
      "default": "",
      "description": "Unique identifier for the message",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ],
          "operation": [
            "get"
          ]
        }
      }
    },
    {
      "displayName": "Message ID",
      "name": "messageId",
      "type": "string",
      "default": "",
      "description": "Unique identifier for the message",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ],
          "operation": [
            "delete"
          ]
        }
      }
    },
    {
      "displayName": "Put Output File in Field",
      "name": "dataBinaryProperty",
      "type": "string",
      "default": "data",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ],
          "operation": [
            "updateFile"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "description": "Create a stream",
          "action": "Create a stream"
        },
        {
          "name": "Delete",
          "value": "delete",
          "description": "Delete a stream",
          "action": "Delete a stream"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "description": "Get many streams",
          "action": "Get many streams"
        },
        {
          "name": "Get Subscribed",
          "value": "getSubscribed",
          "description": "Get subscribed streams",
          "action": "Get subscribed streams"
        },
        {
          "name": "Update",
          "value": "update",
          "description": "Update a stream",
          "action": "Update a stream"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "stream"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "JSON Parameters",
      "name": "jsonParameters",
      "type": "boolean",
      "default": false,
      "displayOptions": {
        "show": {
          "resource": [
            "stream"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Additional Fields",
      "name": "additionalFieldsJson",
      "type": "json",
      "default": "",
      "description": "JSON format parameters for stream creation",
      "displayOptions": {
        "show": {
          "resource": [
            "stream"
          ],
          "operation": [
            "create"
          ],
          "jsonParameters": [
            true
          ]
        }
      },
      "typeOptions": {
        "alwaysOpenEditWindow": true
      }
    },
    {
      "displayName": "Subscriptions",
      "name": "subscriptions",
      "type": "fixedCollection",
      "default": {},
      "description": "A list of dictionaries containing the the key name and value specifying the name of the stream to subscribe. If the stream does not exist a new stream is created.",
      "options": [
        {
          "displayName": "Subscription Properties",
          "name": "properties",
          "values": [
            {
              "displayName": "Name",
              "name": "name",
              "type": "string",
              "required": true,
              "default": "",
              "description": "Name of Subscription"
            },
            {
              "displayName": "Description",
              "name": "description",
              "type": "string",
              "required": true,
              "default": "",
              "description": "Description of Subscription"
            }
          ]
        }
      ],
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "stream"
          ],
          "operation": [
            "create"
          ],
          "jsonParameters": [
            false
          ]
        }
      },
      "typeOptions": {
        "multipleValues": true
      }
    },
    {
      "displayName": "Additional Fields",
      "name": "additionalFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Announce",
          "name": "announce",
          "type": "boolean",
          "default": false,
          "description": "If announce is True and one of the streams specified in subscriptions has to be created (i.e. doesnt exist to begin with), an announcement will be made notifying that a new stream was created."
        },
        {
          "displayName": "Authorization Errors Fatal",
          "name": "authorizationErrorsFatal",
          "type": "boolean",
          "default": false,
          "description": "Whether authorization errors (such as when the requesting user is not authorized to access a private stream) should be considered fatal or not. When True, an authorization error is reported as such. When set to False, the returned JSON payload indicates that there was an authorization error, but the response is still considered a successful one."
        },
        {
          "displayName": "History Public to Subscribers",
          "name": "historyPublicToSubscribers",
          "type": "boolean",
          "default": false,
          "description": "Whether the streams message history should be available to newly subscribed members, or users can only access messages they actually received while subscribed to the stream"
        },
        {
          "displayName": "Invite Only",
          "name": "inviteOnly",
          "type": "boolean",
          "default": false,
          "description": "Whether the streams specified in subscriptions are invite-only or not"
        },
        {
          "displayName": "Principals",
          "name": "principals",
          "type": "fixedCollection",
          "default": {},
          "description": "A list of email addresses of the users that will be subscribed/unsubscribed to the streams specified in the subscriptions argument. If not provided, then the requesting user/bot is subscribed.",
          "typeOptions": {
            "multipleValues": true
          },
          "options": [
            {
              "displayName": "Principals Properties",
              "name": "properties",
              "values": [
                {
                  "displayName": "Principal Email",
                  "name": "email",
                  "type": "string",
                  "placeholder": "name@email.com",
                  "required": true,
                  "default": "",
                  "description": "Principal email address"
                }
              ]
            }
          ]
        },
        {
          "displayName": "Stream Post Policy",
          "name": "streamPostPolicy",
          "type": "options",
          "default": "",
          "description": "Policy for which users can post messages to the stream",
          "options": [
            {
              "name": "1",
              "value": 1,
              "description": "Any user can post"
            },
            {
              "name": "2",
              "value": 2,
              "description": "Only administrators can post"
            },
            {
              "name": "3",
              "value": 3,
              "description": "Only new members can post"
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "stream"
          ],
          "operation": [
            "create"
          ],
          "jsonParameters": [
            false
          ]
        }
      }
    },
    {
      "displayName": "Additional Fields",
      "name": "additionalFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Include All Active",
          "name": "includeAllActive",
          "type": "boolean",
          "default": true,
          "description": "Whether to include all active streams. The user must have administrative privileges to use this parameter."
        },
        {
          "displayName": "Include Default",
          "name": "includeDefault",
          "type": "boolean",
          "default": true,
          "description": "Whether to include all default streams for the users realm"
        },
        {
          "displayName": "Include Owner Subscribed",
          "name": "includeOwnersubscribed",
          "type": "boolean",
          "default": true,
          "description": "Whether the user is a bot, include all streams that the bots owner is subscribed to"
        },
        {
          "displayName": "Include Public",
          "name": "includePublic",
          "type": "boolean",
          "default": true,
          "description": "Whether to include all public streams"
        },
        {
          "displayName": "Include Subscribed",
          "name": "includeSubscribed",
          "type": "boolean",
          "default": true,
          "description": "Whether to include all streams that the user is subscribed to"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "stream"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Additional Fields",
      "name": "additionalFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Include Subscribers",
          "name": "includeSubscribers",
          "type": "boolean",
          "default": true,
          "description": "Whether each returned stream object should include a subscribers field containing a list of the user IDs of its subscribers"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "stream"
          ],
          "operation": [
            "getSubscribed"
          ]
        }
      }
    },
    {
      "displayName": "Stream ID",
      "name": "streamId",
      "type": "string",
      "default": "",
      "description": "ID of stream to update",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "stream"
          ],
          "operation": [
            "update"
          ]
        }
      }
    },
    {
      "displayName": "JSON Parameters",
      "name": "jsonParameters",
      "type": "boolean",
      "default": false,
      "displayOptions": {
        "show": {
          "resource": [
            "stream"
          ],
          "operation": [
            "update"
          ]
        }
      }
    },
    {
      "displayName": "Additional Fields",
      "name": "additionalFieldsJson",
      "type": "json",
      "default": "",
      "description": "JSON format parameters for stream creation",
      "displayOptions": {
        "show": {
          "resource": [
            "stream"
          ],
          "operation": [
            "update"
          ],
          "jsonParameters": [
            true
          ]
        }
      },
      "typeOptions": {
        "alwaysOpenEditWindow": true
      }
    },
    {
      "displayName": "Additional Fields",
      "name": "additionalFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Announcement Only",
          "name": "isAnnouncementOnly",
          "type": "boolean",
          "default": false,
          "description": "Whether the stream is limited to announcements"
        },
        {
          "displayName": "Description",
          "name": "description",
          "type": "string",
          "default": "",
          "description": "The new description for the stream",
          "placeholder": "Place of discussion"
        },
        {
          "displayName": "Is Private",
          "name": "isPrivate",
          "type": "boolean",
          "default": false,
          "description": "Whether the stream is a private stream"
        },
        {
          "displayName": "History Public to Subscribers",
          "name": "historyPublicToSubscribers",
          "type": "boolean",
          "default": false,
          "description": "Whether the streams message history should be available to newly subscribed members, or users can only access messages they actually received while subscribed to the stream"
        },
        {
          "displayName": "New Name",
          "name": "newName",
          "type": "string",
          "default": "",
          "description": "The new name for the stream",
          "placeholder": "Italy"
        },
        {
          "displayName": "Stream Post Policy",
          "name": "streamPostPolicy",
          "type": "options",
          "default": "",
          "description": "Policy for which users can post messages to the stream",
          "options": [
            {
              "name": "1",
              "value": 1,
              "description": "Any user can post"
            },
            {
              "name": "2",
              "value": 2,
              "description": "Only administrators can post"
            },
            {
              "name": "3",
              "value": 3,
              "description": "Only new members can post"
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "stream"
          ],
          "operation": [
            "update"
          ],
          "jsonParameters": [
            false
          ]
        }
      }
    },
    {
      "displayName": "Stream ID",
      "name": "streamId",
      "type": "string",
      "default": "",
      "description": "ID of stream to delete",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "stream"
          ],
          "operation": [
            "delete"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "description": "Create a user",
          "action": "Create a user"
        },
        {
          "name": "Deactivate",
          "value": "deactivate",
          "description": "Deactivate a user",
          "action": "Deactivate a user"
        },
        {
          "name": "Get",
          "value": "get",
          "description": "Get a user",
          "action": "Get a user"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "description": "Get many users",
          "action": "Get many users"
        },
        {
          "name": "Update",
          "value": "update",
          "description": "Update a user",
          "action": "Update a user"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "user"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Email",
      "name": "email",
      "type": "string",
      "default": "",
      "description": "The email address of the new user",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "user"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Full Name",
      "name": "fullName",
      "type": "string",
      "default": "",
      "description": "The full name of the new user",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "user"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Password",
      "name": "password",
      "type": "string",
      "default": "",
      "description": "The password of the new user",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "user"
          ],
          "operation": [
            "create"
          ]
        }
      },
      "typeOptions": {
        "password": true
      }
    },
    {
      "displayName": "Short Name",
      "name": "shortName",
      "type": "string",
      "default": "",
      "description": "The short name of the new user. Not user-visible.",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "user"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "User ID",
      "name": "userId",
      "type": "string",
      "default": "",
      "description": "The ID of user to get",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "user"
          ],
          "operation": [
            "get"
          ]
        }
      }
    },
    {
      "displayName": "Additional Fields",
      "name": "additionalFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Client Gravatar",
          "name": "clientGravatar",
          "type": "boolean",
          "default": false,
          "description": "Whether the client supports computing gravatars URLs. If enabled, avatar_url will be included in the response only if there is a Zulip avatar, and will be null for users who are using gravatar as their avatar."
        },
        {
          "displayName": "Custom Profile Fields",
          "name": "includeCustomProfileFields",
          "type": "boolean",
          "default": false,
          "description": "Whether the client wants custom profile field data to be included in the response"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "user"
          ],
          "operation": [
            "get",
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "User ID",
      "name": "userId",
      "type": "string",
      "default": "",
      "description": "The ID of user to update",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "user"
          ],
          "operation": [
            "update"
          ]
        }
      }
    },
    {
      "displayName": "Additional Fields",
      "name": "additionalFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Full Name",
          "name": "fullName",
          "type": "string",
          "default": "",
          "description": "The users full name"
        },
        {
          "displayName": "Is Admin",
          "name": "isAdmin",
          "type": "boolean",
          "default": false,
          "description": "Whether the target user is an administrator"
        },
        {
          "displayName": "Is Guest",
          "name": "isGuest",
          "type": "boolean",
          "default": false,
          "description": "Whether the target user is a guest"
        },
        {
          "displayName": "Profile Data",
          "name": "profileData",
          "type": "fixedCollection",
          "default": {},
          "description": "A dictionary containing the to be updated custom profile field data for the user",
          "typeOptions": {
            "multipleValues": true
          },
          "options": [
            {
              "displayName": "Property",
              "name": "property",
              "values": [
                {
                  "displayName": "ID",
                  "name": "id",
                  "type": "string",
                  "required": true,
                  "default": "",
                  "description": "ID of custom profile data value"
                },
                {
                  "displayName": "Value",
                  "name": "value",
                  "type": "string",
                  "default": "",
                  "description": "Value of custom profile data"
                }
              ]
            }
          ]
        },
        {
          "displayName": "Role",
          "name": "role",
          "type": "options",
          "options": [
            {
              "name": "Guest",
              "value": 600
            },
            {
              "name": "Member",
              "value": 400
            },
            {
              "name": "Organization Administrator",
              "value": 200
            },
            {
              "name": "Organization Moderator",
              "value": 300
            },
            {
              "name": "Organization Owner",
              "value": 100
            }
          ],
          "default": "",
          "description": "Role for the user"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "user"
          ],
          "operation": [
            "update"
          ]
        }
      }
    },
    {
      "displayName": "User ID",
      "name": "userId",
      "type": "string",
      "default": "",
      "description": "The ID of user to deactivate",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "user"
          ],
          "operation": [
            "deactivate"
          ]
        }
      }
    }
  ]

operations:
  [
    {
      "operation": "delete",
      "name": "Delete",
      "description": "Delete a message"
    },
    {
      "operation": "get",
      "name": "Get",
      "description": "Get a message"
    },
    {
      "operation": "sendPrivate",
      "name": "Send Private",
      "description": "Send a private message"
    },
    {
      "operation": "sendStream",
      "name": "Send to Stream",
      "description": "Send a message to stream"
    },
    {
      "operation": "update",
      "name": "Update",
      "description": "Update a message"
    },
    {
      "operation": "updateFile",
      "name": "Upload a File"
    }
  ]


node_type: nodes-base.aggregate
package_name: n8n-nodes-base
display_name: Aggregate
description: Combine a field from many items into a list in a single item
category: transform
development_style: programmatic
version: 1
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-03-04 11:46:58
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: Aggregate
  description: Documentation for the Aggregate node in n8n, a workflow automation platform. Includes guidance on usage, and links to examples.
  contentType: [integration, reference]
  priority: high
  ---

  # Aggregate

  Use the Aggregate node to take separate items, or portions of them, and group them together into individual items.

  ## Node parameters

  To begin using the node, select the **Aggregate** you'd like to use:

  * [**Individual Fields**](#individual-fields): Aggregate individual fields separately.
  * [**All Item Data**](#all-item-data): Aggregate all item data into a single list.

  ### Individual Fields

  * **Input Field Name**: Enter the name of the field in the input data to aggregate together.
  * **Rename Field**: This toggle controls whether to give the field a different name in the aggregated output data. Turn this on to add a different field name. If you're aggregating multiple fields, you must provide new output field names. You can't leave multiple fields undefined.
  	* **Output Field Name**: This field is displayed when you turn on **Rename Field**. Enter the field name for the aggregated output data.

  Refer to [Node options](#node-options) for more configuration options.

  ### All Item Data

  * **Put Output in Field**: Enter the name of the field to output the data in.
  * **Include**: Select which fields to include in the output. Choose from:
  	* **All fields**: The output includes data from all fields with no further parameters.
  	* **Specified Fields**: If you select this option, enter a comma-separated list of fields the output should include data from in the **Fields To Include** parameter. The output will include only the fields in this list.
  	* **All Fields Except**: If you select this option, enter a comma-separated list of fields the output should exclude data from in the **Fields To Exclude** parameter. The output will include all fields not in this list.

  Refer to [Node options](#node-options) for more configuration options.

  ## Node options

  You can further configure this node using these **Options**:

  * **Disable Dot Notation**: The node displays this toggle when you select the **Individual Fields** Aggregate. It controls whether to disallow referencing child fields using `parent.child` in the field name (turned on), or allow it (turned off, default).
  * **Merge Lists**: The node displays this toggle when you select the **Individual Fields** Aggregate. Turn it on if the field to aggregate is a list and you want to output a single flat list rather than a list of lists.
  * **Include Binaries**: The node displays this toggle for both Aggregate types. Turn it on if you want to include binary data from the input in the new output.
  * **Keep Missing And Null Values**: The node displays this toggle when you select the **Individual Fields** Aggregate. Turn it on to add a null (empty) entry in the output list when there is a null or missing value in the input. If turned off, the output ignores null or empty values.

  ## Templates and examples

  <!-- see https://www.notion.so/n8n/Pull-in-templates-for-the-integrations-pages-37c716837b804d30a33b47475f6e3780 -->
  [[ templatesWidget(page.title, 'aggregate') ]]

  ## Related resources

  --8<-- "_snippets/integrations/builtin/core-nodes/data-transformation-actions/data-section-link.md"

properties_schema:
  [
    {
      "displayName": "Aggregate",
      "name": "aggregate",
      "type": "options",
      "default": "aggregateIndividualFields",
      "options": [
        {
          "name": "Individual Fields",
          "value": "aggregateIndividualFields"
        },
        {
          "name": "All Item Data (Into a Single List)",
          "value": "aggregateAllItemData"
        }
      ]
    },
    {
      "displayName": "Fields To Aggregate",
      "name": "fieldsToAggregate",
      "type": "fixedCollection",
      "default": {
        "fieldToAggregate": [
          {
            "fieldToAggregate": "",
            "renameField": false
          }
        ]
      },
      "options": [
        {
          "displayName": "",
          "name": "fieldToAggregate",
          "values": [
            {
              "displayName": "Input Field Name",
              "name": "fieldToAggregate",
              "type": "string",
              "default": "",
              "description": "The name of a field in the input items to aggregate together",
              "placeholder": "e.g. id",
              "hint": " Enter the field name as text",
              "requiresDataPath": "single"
            },
            {
              "displayName": "Rename Field",
              "name": "renameField",
              "type": "boolean",
              "default": false,
              "description": "Whether to give the field a different name in the output"
            },
            {
              "displayName": "Output Field Name",
              "name": "outputFieldName",
              "displayOptions": {
                "show": {
                  "renameField": [
                    true
                  ]
                }
              },
              "type": "string",
              "default": "",
              "description": "The name of the field to put the aggregated data in. Leave blank to use the input field name.",
              "requiresDataPath": "single"
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "aggregate": [
            "aggregateIndividualFields"
          ]
        }
      },
      "typeOptions": {
        "multipleValues": true
      }
    },
    {
      "displayName": "Put Output in Field",
      "name": "destinationFieldName",
      "type": "string",
      "default": "data",
      "description": "The name of the output field to put the data in",
      "displayOptions": {
        "show": {
          "aggregate": [
            "aggregateAllItemData"
          ]
        }
      }
    },
    {
      "displayName": "Include",
      "name": "include",
      "type": "options",
      "default": "allFields",
      "options": [
        {
          "name": "All Fields",
          "value": "allFields"
        },
        {
          "name": "Specified Fields",
          "value": "specifiedFields"
        },
        {
          "name": "All Fields Except",
          "value": "allFieldsExcept"
        }
      ],
      "displayOptions": {
        "show": {
          "aggregate": [
            "aggregateAllItemData"
          ]
        }
      }
    },
    {
      "displayName": "Fields To Exclude",
      "name": "fieldsToExclude",
      "type": "string",
      "default": "",
      "displayOptions": {
        "show": {
          "aggregate": [
            "aggregateAllItemData"
          ],
          "include": [
            "allFieldsExcept"
          ]
        }
      }
    },
    {
      "displayName": "Fields To Include",
      "name": "fieldsToInclude",
      "type": "string",
      "default": "",
      "displayOptions": {
        "show": {
          "aggregate": [
            "aggregateAllItemData"
          ],
          "include": [
            "specifiedFields"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Disable Dot Notation",
          "name": "disableDotNotation",
          "type": "boolean",
          "default": false,
          "description": "Whether to disallow referencing child fields using `parent.child` in the field name",
          "displayOptions": {
            "hide": {
              "/aggregate": [
                "aggregateAllItemData"
              ]
            }
          }
        },
        {
          "displayName": "Merge Lists",
          "name": "mergeLists",
          "type": "boolean",
          "default": false,
          "description": "Whether to merge the output into a single flat list (rather than a list of lists), if the field to aggregate is a list",
          "displayOptions": {
            "hide": {
              "/aggregate": [
                "aggregateAllItemData"
              ]
            }
          }
        },
        {
          "displayName": "Include Binaries",
          "name": "includeBinaries",
          "type": "boolean",
          "default": false,
          "description": "Whether to include the binary data in the new item"
        },
        {
          "displayName": "Keep Only Unique Binaries",
          "name": "keepOnlyUnique",
          "type": "boolean",
          "default": false,
          "description": "Whether to keep only unique binaries by comparing mime types, file types, file sizes and file extensions",
          "displayOptions": {
            "show": {
              "includeBinaries": [
                true
              ]
            }
          }
        },
        {
          "displayName": "Keep Missing And Null Values",
          "name": "keepMissing",
          "type": "boolean",
          "default": false,
          "description": "Whether to add a null entry to the aggregated list when there is a missing or null value",
          "displayOptions": {
            "hide": {
              "/aggregate": [
                "aggregateAllItemData"
              ]
            }
          }
        }
      ]
    }
  ]


node_type: nodes-base.limit
package_name: n8n-nodes-base
display_name: Limit
description: Restrict the number of items
category: transform
development_style: programmatic
version: 1
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-03-04 11:46:58
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: Limit
  description: Documentation for the Limit node in n8n, a workflow automation platform. Includes guidance on usage, and links to examples.
  contentType: [integration, reference]
  priority: high
  ---

  # Limit

  Use the Limit node to remove items beyond a defined maximum number. You can choose whether n8n takes the items from the beginning or end of the input data.

  ## Node parameters

  Configure this node using the following parameters.

  ### Max Items

  Enter the maximum number of items that n8n should keep. If the input data contains more than this value, n8n removes the items.

  ### Keep

  If the node has to remove items, select where it keeps the input items from:

  * **First Items**: Keeps the **Max Items** number of items from the beginning of the input data.
  * **Last Items**: Keeps the **Max Items** number of items from the end of the input data.

  ## Templates and examples

  <!-- see https://www.notion.so/n8n/Pull-in-templates-for-the-integrations-pages-37c716837b804d30a33b47475f6e3780 -->
  [[ templatesWidget(page.title, 'limit') ]]

  ## Related resources

  --8<-- "_snippets/integrations/builtin/core-nodes/data-transformation-actions/data-section-link.md"

properties_schema:
  [
    {
      "displayName": "Max Items",
      "name": "maxItems",
      "type": "number",
      "default": 1,
      "description": "If there are more items than this number, some are removed",
      "typeOptions": {
        "minValue": 1
      }
    },
    {
      "displayName": "Keep",
      "name": "keep",
      "type": "options",
      "default": "firstItems",
      "description": "When removing items, whether to keep the ones at the start or the ending",
      "options": [
        {
          "name": "First Items",
          "value": "firstItems"
        },
        {
          "name": "Last Items",
          "value": "lastItems"
        }
      ]
    }
  ]


node_type: nodes-base.removeDuplicates
package_name: n8n-nodes-base
display_name: Remove Duplicates
description: Delete items with matching field values
category: transform
development_style: programmatic
version: 2
credentials_required: []
outputs:
  [
  "main"
  ]

output_names:
  [
  "Kept",
  "Discarded"
  ]

updated_at: 2026-03-04 11:46:58
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: Remove Duplicates node documentation
  description: Documentation for the Remove Duplicates node in n8n, a workflow automation platform. Includes guidance on usage and links to examples.
  contentType: [integration, reference]
  priority: medium
  ---

  # Remove Duplicates node

  Use the Remove Duplicates node to identify and delete items that are:

  * identical across all fields or a subset of fields in a single execution
  * identical to or surpassed by items seen in previous executions

  This is helpful in situations where you can end up with duplicate data, such as a user creating multiple accounts, or a customer submitting the same order multiple times. When working with large datasets it becomes more difficult to spot and remove these items.

  By comparing against data from previous executions, the Remove Duplicates node can  delete items seen in earlier executions. It can also ensure that new items have a later date or a higher value than previous values.

  /// note | Major changes in 1.64.0
  The n8n team overhauled this node in n8n 1.64.0. This document reflects the latest version of the node. If you're using an older version of n8n, you can find the previous version of this document [here](https://github.com/n8n-io/n8n-docs/blob/7a66308290e6e5b104fcb82a3beafa0d6987df36/docs/integrations/builtin/core-nodes/n8n-nodes-base.removeduplicates.md){:target=_blank .external-link}.
  ///

  ## Operation modes

  The remove duplication node works differently depending on the value of the **operation** parameter:

  * **[Remove Items Repeated Within Current Input](#remove-items-repeated-within-current-input)**: Identify and remove duplicate items in the current input across all fields or a subset of fields.
  * **[Remove Items Processed in Previous Executions](#remove-items-processed-in-previous-executions)**: Compare items in the current input to items from previous executions and remove duplicates.
  * **[Clear Deduplication History](#clear-deduplication-history)**: Wipe the memory of items from previous executions.

  ### Remove Items Repeated Within Current Input

  When you set the "Operations" field to **Remove Items Repeated Within Current Input**, the Remove Duplicate node identifies and removes duplicate items in the current input. It can do this across all fields, or within a subset of fields.

  #### Remove Items Repeated Within Current Input parameters

  When using the **Remove Items Repeated Within Current Input** operation, the following parameter is available:

  * **Compare**: Select which fields of the input data n8n should compare to check if they're the same. The following options are available:
  	* **All Fields**: Compares all fields of the input data.
  	* **All Fields Except**: Enter which input data fields n8n should exclude from the comparison. You can provide multiple values separated by commas.
  	* **Selected Fields**: Enter which input data fields n8n should include in the comparison. You can provide multiple values separated by commas.

  #### Remove Items Repeated Within Current Input options

  If you choose **All Fields Except** or **Selected Fields** as your compare type, you can add these options:

  * **Disable Dot Notation**: Set whether to use dot notation to reference child fields in the format `parent.child` (turned off) or not (turn on).
  * **Remove Other Fields**: Set whether to remove any fields that aren't used in the comparison (turned on) or not (turned off).

  ### Remove Items Processed in Previous Executions

  When you set the "Operation" field to **Remove Items Processed in Previous Executions**, the Remove Duplicate node compares items in the current input to items from previous executions.

  #### Remove Items Processed in Previous Executions parameters

  When using the **Remove Items Processed in Previous Executions** operation, the following parameters are available:

  * **Keep Items Where**: Select how n8n decides which items to keep. The following options are available:
  	* **Value Is New**: n8n removes items if their value matches items from earlier executions.
  	* **Value Is Higher than Any Previous Value**: n8n removes items if the current value isn't higher than previous values.
  	* **Value Is a Date Later than Any Previous Date**: n8n removes date items if the current date isn't later than previous dates.

  * **Value to Dedupe On**: The input field or fields to compare. The option you select for the **Keep Items Where** parameter determines the exact format you need:
  	* When using **Value Is New**, this must be an input field or combination of fields with a unique ID.
  	* When using **Value Is Higher than Any Previous Value**, this must be an input field or combination of fields that has an incremental value.
  	* When using **Value Is a Date Later than Any Previous Date**, this must be an input field that has a date value in ISO format.

  #### Remove Items Processed in Previous Executions options

  When using the **Remove Items Processed in Previous Executions** operation, the following option is available:

  * **Scope**: Sets how n8n stores and uses the deduplication data for comparisons. The following options are available:
  	* **Node**: (default) Stores the data for this node independently from other Remove Duplicates instances in the workflow. When you use this scope, you can [clear the duplication history](#clear-deduplication-history) for this node instance without affecting other nodes.
  	* **Workflow**: Stores the duplication data at the workflow level. This shares duplication data with any other Remove Duplicate nodes set to use "workflow" scope.  n8n will still manage the duplication data for other Remove Duplicate nodes set to "node" scope independently.

  When you select **Value Is New** as your **Keep Items Where** choice, this option is also available:

  * **History Size**: The number of items for n8n to store to track duplicates across executions. The value of the **Scope** option determines whether this history size is specific to this individual Remove Duplicate node instance or shared with other instances in the workflow. By default, n8n stores 10,000 items.

  ### Clear Deduplication History

  When you set the "Operation" field to **Clear Deduplication History**, the Remove Duplicates node manages and clears the stored items from previous executions. This operation doesn't affect any items in the current input. Instead, it manages the database of items that the "Remove Items Processed in Previous Executions" operation uses.

  #### Clear Deduplication History parameters

  When using the **Clear Deduplication History** operation, the following parameter is available:

  * **Mode**: How you want to manage the key / value items stored in the database. The following option is available:
  	* **Clean Database**: Deletes all duplication data stored in the database. This resets the duplication database to its original state.

  #### Clear Deduplication History options

  When using the **Clear Deduplication History** operation, the following option is available:

  * **Scope**: Sets the scope n8n uses when managing the duplication database.
  	* **Node**: (default) Manages the duplication database specific to this Remove Duplicates node instance.
  	* **Workflow**: Manages the duplication database shared by all Remove Duplicate node instances that use workflow scope.

  ## Templates and examples

  For templates using the Remove Duplicates node and examples of how to use it, refer to [Templates and examples](/integrations/builtin/core-nodes/n8n-nodes-base.removeduplicates/templates-and-examples.md).

  ## Related resources

  --8<-- "_snippets/integrations/builtin/core-nodes/data-transformation-actions/data-section-link.md"

properties_schema:
  [
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "removeDuplicateInputItems",
      "options": [
        {
          "name": "Remove Items Repeated Within Current Input",
          "value": "removeDuplicateInputItems",
          "description": "Remove duplicates from incoming items",
          "action": "Remove items repeated within current input"
        },
        {
          "name": "Remove Items Processed in Previous Executions",
          "value": "removeItemsSeenInPreviousExecutions",
          "description": "Deduplicate items already seen in previous executions",
          "action": "Remove items processed in previous executions"
        },
        {
          "name": "Clear Deduplication History",
          "value": "clearDeduplicationHistory",
          "description": "Wipe the store of previous items",
          "action": "Clear deduplication history"
        }
      ],
      "noDataExpression": true
    },
    {
      "displayName": "Compare",
      "name": "compare",
      "type": "options",
      "default": "allFields",
      "description": "The fields of the input items to compare to see if they are the same",
      "options": [
        {
          "name": "All Fields",
          "value": "allFields"
        },
        {
          "name": "All Fields Except",
          "value": "allFieldsExcept"
        },
        {
          "name": "Selected Fields",
          "value": "selectedFields"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "removeDuplicateInputItems"
          ]
        }
      }
    },
    {
      "displayName": "Fields To Exclude",
      "name": "fieldsToExclude",
      "type": "string",
      "default": "",
      "description": "Fields in the input to exclude from the comparison",
      "displayOptions": {
        "show": {
          "compare": [
            "allFieldsExcept"
          ]
        }
      }
    },
    {
      "displayName": "Fields To Compare",
      "name": "fieldsToCompare",
      "type": "string",
      "default": "",
      "description": "Fields in the input to add to the comparison",
      "displayOptions": {
        "show": {
          "compare": [
            "selectedFields"
          ]
        }
      }
    },
    {
      "displayName": "Keep Items Where",
      "name": "logic",
      "type": "options",
      "default": "removeItemsWithAlreadySeenKeyValues",
      "description": "How to select input items to remove by comparing them with key values previously processed",
      "options": [
        {
          "name": "Value Is New",
          "value": "removeItemsWithAlreadySeenKeyValues",
          "description": "Remove all input items with values matching those already processed"
        },
        {
          "name": "Value Is Higher than Any Previous Value",
          "value": "removeItemsUpToStoredIncrementalKey",
          "description": "Works with incremental values, removes all input items with values up to the stored value"
        },
        {
          "name": "Value Is a Date Later than Any Previous Date",
          "value": "removeItemsUpToStoredDate",
          "description": "Works with date values, removes all input items with values up to the stored date"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "removeItemsSeenInPreviousExecutions"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Value to Dedupe On",
      "name": "dedupeValue",
      "type": "string",
      "default": "",
      "description": "Use an input field (or a combination of fields) that has a unique ID value",
      "required": true,
      "displayOptions": {
        "show": {
          "logic": [
            "removeItemsWithAlreadySeenKeyValues"
          ],
          "/operation": [
            "removeItemsSeenInPreviousExecutions"
          ]
        }
      }
    },
    {
      "displayName": "Value to Dedupe On",
      "name": "incrementalDedupeValue",
      "type": "number",
      "default": "",
      "description": "Use an input field (or a combination of fields) that has an incremental value",
      "displayOptions": {
        "show": {
          "logic": [
            "removeItemsUpToStoredIncrementalKey"
          ],
          "/operation": [
            "removeItemsSeenInPreviousExecutions"
          ]
        }
      }
    },
    {
      "displayName": "Value to Dedupe On",
      "name": "dateDedupeValue",
      "type": "dateTime",
      "default": "",
      "description": "Use an input field that has a date value in ISO format",
      "displayOptions": {
        "show": {
          "logic": [
            "removeItemsUpToStoredDate"
          ],
          "/operation": [
            "removeItemsSeenInPreviousExecutions"
          ]
        }
      }
    },
    {
      "displayName": "Mode",
      "name": "mode",
      "type": "options",
      "default": "cleanDatabase",
      "description": "How you want to modify the key values stored on the database. None of these modes removes input items.",
      "options": [
        {
          "name": "Clean Database",
          "value": "cleanDatabase",
          "description": "Clear all values stored for a key in the database"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "clearDeduplicationHistory"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Disable Dot Notation",
          "name": "disableDotNotation",
          "type": "boolean",
          "default": false,
          "displayOptions": {
            "show": {
              "/operation": [
                "removeDuplicateInputItems"
              ]
            },
            "hide": {
              "/compare": [
                "allFields"
              ]
            }
          },
          "description": "Whether to disallow referencing child fields using `parent.child` in the field name"
        },
        {
          "displayName": "Remove Other Fields",
          "name": "removeOtherFields",
          "type": "boolean",
          "default": false,
          "displayOptions": {
            "show": {
              "/operation": [
                "removeDuplicateInputItems"
              ]
            },
            "hide": {
              "/compare": [
                "allFields"
              ]
            }
          },
          "description": "Whether to remove any fields that are not being compared. If disabled, will keep the values from the first of the duplicates."
        },
        {
          "displayName": "Scope",
          "name": "scope",
          "type": "options",
          "default": "node",
          "displayOptions": {
            "show": {
              "/operation": [
                "clearDeduplicationHistory",
                "removeItemsSeenInPreviousExecutions"
              ]
            }
          },
          "description": "If set to ‘workflow,’ key values will be shared across all nodes in the workflow. If set to ‘node,’ key values will be specific to this node.",
          "options": [
            {
              "name": "Workflow",
              "value": "workflow",
              "description": "Deduplication info will be shared by all the nodes in the workflow"
            },
            {
              "name": "Node",
              "value": "node",
              "description": "Deduplication info will be stored only for this node"
            }
          ]
        },
        {
          "displayName": "History Size",
          "name": "historySize",
          "type": "number",
          "default": 10000,
          "hint": "The max number of past items to store for deduplication",
          "displayOptions": {
            "show": {
              "/logic": [
                "removeItemsWithAlreadySeenKeyValues"
              ],
              "/operation": [
                "removeItemsSeenInPreviousExecutions"
              ]
            }
          }
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "removeDuplicateInputItems",
            "removeItemsSeenInPreviousExecutions",
            "clearDeduplicationHistory"
          ]
        }
      }
    }
  ]

operations:
  [
    {
      "operation": "removeDuplicateInputItems",
      "name": "Remove Items Repeated Within Current Input",
      "description": "Remove duplicates from incoming items"
    },
    {
      "operation": "removeItemsSeenInPreviousExecutions",
      "name": "Remove Items Processed in Previous Executions",
      "description": "Deduplicate items already seen in previous executions"
    },
    {
      "operation": "clearDeduplicationHistory",
      "name": "Clear Deduplication History",
      "description": "Wipe the store of previous items"
    }
  ]


node_type: nodes-base.splitOut
package_name: n8n-nodes-base
display_name: Split Out
description: Turn a list inside item(s) into separate items
category: transform
development_style: programmatic
version: 1
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-03-04 11:46:58
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: Split Out
  description: Documentation for the Split Out node in n8n, a workflow automation platform. Includes guidance on usage, and links to examples.
  contentType: [integration, reference]
  priority: high
  ---

  # Split Out

  Use the Split Out node to separate a single data item containing a list into multiple items. For example, a list of customers, and you want to split them so that you have an item for each customer.

  ## Node parameters

  Configure this node using the following parameters.

  ### Field to Split Out

  Enter the field containing the list you want to separate out into individual items.

  If you're working with binary data inputs, use `$binary` in an expression to set the field to split out.

  ### Include

  Select whether and how you want n8n to keep any other fields from the input data with each new individual item.

  You can select:

  * **No Other Fields**: No other fields will be included.
  * **All Other Fields**: All other fields will be included.
  * **Selected Other Fields**: Only the selected fields will be included.
      * **Fields to Include**: Enter a comma separated list of the fields you want to include.

  ## Node options

  ### Disable Dot Notation

  By default, n8n enables dot notation to reference child fields in the format `parent.child`. Use this option to disable dot notation (turned on) or to continue using dot (turned off).

  ### Destination Field Name

  Enter the field in the output where the split field contents should go.

  ### Include Binary

  Choose whether to include binary data from the input in the new output (turned on) or not (turned off).

  ## Templates and examples

  <!-- see https://www.notion.so/n8n/Pull-in-templates-for-the-integrations-pages-37c716837b804d30a33b47475f6e3780 -->
  [[ templatesWidget(page.title, 'split-out') ]]

  ## Related resources

  --8<-- "_snippets/integrations/builtin/core-nodes/data-transformation-actions/data-section-link.md"

properties_schema:
  [
    {
      "displayName": "Fields To Split Out",
      "name": "fieldToSplitOut",
      "type": "string",
      "default": "",
      "description": "The name of the input fields to break out into separate items. Separate multiple field names by commas. For binary data, use $binary.",
      "required": true
    },
    {
      "displayName": "Include",
      "name": "include",
      "type": "options",
      "default": "noOtherFields",
      "description": "Whether to copy any other fields into the new items",
      "options": [
        {
          "name": "No Other Fields",
          "value": "noOtherFields"
        },
        {
          "name": "All Other Fields",
          "value": "allOtherFields"
        },
        {
          "name": "Selected Other Fields",
          "value": "selectedOtherFields"
        }
      ]
    },
    {
      "displayName": "Fields To Include",
      "name": "fieldsToInclude",
      "type": "string",
      "default": "",
      "description": "Fields in the input items to aggregate together",
      "displayOptions": {
        "show": {
          "include": [
            "selectedOtherFields"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Disable Dot Notation",
          "name": "disableDotNotation",
          "type": "boolean",
          "default": false,
          "description": "Whether to disallow referencing child fields using `parent.child` in the field name"
        },
        {
          "displayName": "Destination Field Name",
          "name": "destinationFieldName",
          "type": "string",
          "requiresDataPath": "multiple",
          "default": "",
          "description": "The field in the output under which to put the split field contents"
        },
        {
          "displayName": "Include Binary",
          "name": "includeBinary",
          "type": "boolean",
          "default": false,
          "description": "Whether to include the binary data in the new items"
        }
      ]
    }
  ]


node_type: nodes-base.sort
package_name: n8n-nodes-base
display_name: Sort
description: Change items order
category: transform
development_style: programmatic
version: 1
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-03-04 11:46:58
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: Sort
  description: Documentation for the Sort node in n8n, a workflow automation platform. Includes guidance on usage, and links to examples.
  contentType: [integration, reference]
  priority: medium
  ---

  # Sort

  Use the Sort node to organize lists of items in a desired ordering, or generate a random selection.

  /// note | Array sort behavior
  The Sort operation uses the default JavaScript operation where the elements to be sorted are converted into strings and their values compared. Refer to [Mozilla's guide to Array sort](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort){:target=_blank .external-link} to learn more.
  ///

  ## Node parameters

  Configure this node using the **Type** parameter.

  Use the dropdown to select how you want to input the sorting from these options.

  ### Simple

  Performs an ascending or descending sort using the selected fields.

  When you select this **Type**:

  * Use the **Add Field To Sort By** button to input the **Field Name**.
  * Select whether to use **Ascending** or **Descending** order.

  #### Simple options

  When you select **Simple** as the **Type**, you have the option to **Disable Dot Notation**. By default, n8n enables dot notation to reference child fields in the format `parent.child`. Use this option to disable dot notation (turned on) or to continue using dot (turned off).

  ### Random

  Creates a random order in the list.

  ### Code

  Input custom JavaScript code to perform the sort operation. This is a good option if a simple sort won't meet your needs.

  Enter your custom JavaScript code in the **Code** input field.

  ## Templates and examples

  <!-- see https://www.notion.so/n8n/Pull-in-templates-for-the-integrations-pages-37c716837b804d30a33b47475f6e3780 -->
  [[ templatesWidget(page.title, 'sort') ]]

  ## Related resources

  --8<-- "_snippets/integrations/builtin/core-nodes/data-transformation-actions/data-section-link.md"

properties_schema:
  [
    {
      "displayName": "Type",
      "name": "type",
      "type": "options",
      "default": "simple",
      "description": "The type of sorting to perform",
      "options": [
        {
          "name": "Simple",
          "value": "simple"
        },
        {
          "name": "Random",
          "value": "random"
        },
        {
          "name": "Code",
          "value": "code"
        }
      ]
    },
    {
      "displayName": "Fields To Sort By",
      "name": "sortFieldsUi",
      "type": "fixedCollection",
      "default": {},
      "description": "The fields of the input items to sort by",
      "options": [
        {
          "displayName": "",
          "name": "sortField",
          "values": [
            {
              "displayName": "Field Name",
              "name": "fieldName",
              "type": "string",
              "required": true,
              "default": "",
              "description": "The field to sort by",
              "placeholder": "e.g. id",
              "hint": " Enter the field name as text",
              "requiresDataPath": "single"
            },
            {
              "displayName": "Order",
              "name": "order",
              "type": "options",
              "options": [
                {
                  "name": "Ascending",
                  "value": "ascending"
                },
                {
                  "name": "Descending",
                  "value": "descending"
                }
              ],
              "default": "ascending",
              "description": "The order to sort by"
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "type": [
            "simple"
          ]
        }
      },
      "typeOptions": {
        "multipleValues": true
      }
    },
    {
      "displayName": "Code",
      "name": "code",
      "type": "string",
      "default": "// The two items to compare are in the variables a and b\n\t// Access the fields in a.json and b.json\n\t// Return -1 if a should go before b\n\t// Return 1 if b should go before a\n\t// Return 0 if there's no difference\n\n\tfieldName = 'myField';\n\n\tif (a.json[fieldName] < b.json[fieldName]) {\n\treturn -1;\n\t}\n\tif (a.json[fieldName] > b.json[fieldName]) {\n\treturn 1;\n\t}\n\treturn 0;",
      "description": "Javascript code to determine the order of any two items",
      "displayOptions": {
        "show": {
          "type": [
            "code"
          ]
        }
      },
      "typeOptions": {
        "alwaysOpenEditWindow": true,
        "editor": "jsEditor",
        "rows": 10
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Disable Dot Notation",
          "name": "disableDotNotation",
          "type": "boolean",
          "default": false,
          "description": "Whether to disallow referencing child fields using `parent.child` in the field name"
        }
      ],
      "displayOptions": {
        "show": {
          "type": [
            "simple"
          ]
        }
      }
    }
  ]


node_type: nodes-base.summarize
package_name: n8n-nodes-base
display_name: Summarize
description: Sum, count, max, etc. across items
category: transform
development_style: programmatic
version: 1.1
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-03-04 11:46:58
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: Summarize
  description: Documentation for the Summarize node in n8n, a workflow automation platform. Includes guidance on usage, and links to examples.
  contentType: [integration, reference]
  priority: high
  ---

  # Summarize

  Use the Summarize node to aggregate items together, in a manner similar to Excel pivot tables.

  ## Node parameters

  ### Fields to Summarize

  Use these fields to define how you want to summarize your input data.

  * **Aggregation**: Select the aggregation method to use on a given field. Options include:
  	* **Append**: Append 
  		* If you select this option, decide whether you want to **Include Empty Values** or not.
  	* **Average**: Calculate the numeric average of your input data.
  	* **Concatenate**: Combine together values in your input data.
  		* If you select this option, decide whether you want to **Include Empty Values** or not.
  		* **Separator**: Select the separator you want to insert between concatenated values.
  	* **Count**: Count the total number of values in your input data.
  	* **Count Unique**: Count the number of unique values in your input data.
  	* **Max**: Find the highest numeric value in your input data.
  	* **Min**: Find the lowest numeric value in your input data.
  	* **Sum**: Add together the numeric values in your input data.
  * **Field**: Enter the name of the field you want to perform the aggregation on.

  ### Fields to Split By

  Enter the name of the input fields that you want to split the summary by (similar to a group by statement). This allows you to get separate summaries based on values in other fields.

  For example, if our input data contains columns for `Sales Rep` and `Deal Amount` and we're performing a **Sum** on the `Deal Amount` field, we could split by `Sales Rep` to get a **Sum** total for each Sales Rep.

  To enter multiple fields to split by, enter a comma-separated list.

  ## Node options

  ### Continue if Field Not Found

  By default, if a **Field to Summarize** isn't in any items, the node throws an error. Use this option to continue and return a single empty item (turned on) instead or keep the default error behavior (turned off).

  ### Disable Dot Notation

  By default, n8n enables dot notation to reference child fields in the format `parent.child`. Use this option to disable dot notation (turned on) or to continue using dot (turned off).

  ### Output Format

  Select the format for your output format. This option is recommended if you're using **Fields to Split By**

  * **Each Split in a Separate Item**: Use this option to generate a separate output item for each split out field.
  * **All Splits in a Single Item**: Use this option to generate a single item that lists the split out fields.

  ## Ignore items without valid fields to group by

  Set whether to ignore input items that don't contain the **Fields to Split By** (turned on) or not (turned off).

  ## Templates and examples

  <!-- see https://www.notion.so/n8n/Pull-in-templates-for-the-integrations-pages-37c716837b804d30a33b47475f6e3780 -->
  [[ templatesWidget(page.title, 'summarize') ]]

  ## Related resources

  --8<-- "_snippets/integrations/builtin/core-nodes/data-transformation-actions/data-section-link.md"

properties_schema:
  [
    {
      "displayName": "Fields to Summarize",
      "name": "fieldsToSummarize",
      "type": "fixedCollection",
      "default": {
        "values": [
          {
            "aggregation": "count",
            "field": ""
          }
        ]
      },
      "options": [
        {
          "displayName": "",
          "name": "values",
          "values": [
            {
              "displayName": "Aggregation",
              "name": "aggregation",
              "type": "options",
              "options": [
                {
                  "name": "Append",
                  "value": "append"
                },
                {
                  "name": "Average",
                  "value": "average"
                },
                {
                  "name": "Concatenate",
                  "value": "concatenate"
                },
                {
                  "name": "Count",
                  "value": "count"
                },
                {
                  "name": "Count Unique",
                  "value": "countUnique"
                },
                {
                  "name": "Max",
                  "value": "max"
                },
                {
                  "name": "Min",
                  "value": "min"
                },
                {
                  "name": "Sum",
                  "value": "sum"
                }
              ],
              "default": "count",
              "description": "How to combine the values of the field you want to summarize"
            },
            {
              "displayName": "Field",
              "name": "field",
              "type": "string",
              "default": "",
              "description": "The name of an input field that you want to summarize",
              "placeholder": "e.g. cost",
              "hint": " Enter the field name as text",
              "displayOptions": {
                "hide": {
                  "aggregation": [
                    "average",
                    "sum",
                    "countUnique",
                    "count",
                    "max",
                    "min"
                  ]
                }
              },
              "requiresDataPath": "single"
            },
            {
              "displayName": "Field",
              "name": "field",
              "type": "string",
              "default": "",
              "description": "The name of an input field that you want to summarize. The field should contain numerical values; null, undefined, empty strings would be ignored.",
              "placeholder": "e.g. cost",
              "hint": " Enter the field name as text",
              "displayOptions": {
                "show": {
                  "aggregation": [
                    "average",
                    "sum"
                  ]
                }
              },
              "requiresDataPath": "single"
            },
            {
              "displayName": "Field",
              "name": "field",
              "type": "string",
              "default": "",
              "description": "The name of an input field that you want to summarize; null, undefined, empty strings would be ignored",
              "placeholder": "e.g. cost",
              "hint": " Enter the field name as text",
              "displayOptions": {
                "show": {
                  "aggregation": [
                    "countUnique",
                    "count",
                    "max",
                    "min"
                  ]
                }
              },
              "requiresDataPath": "single"
            },
            {
              "displayName": "Include Empty Values",
              "name": "includeEmpty",
              "type": "boolean",
              "default": false,
              "displayOptions": {
                "show": {
                  "aggregation": [
                    "append",
                    "concatenate",
                    "count",
                    "countUnique"
                  ]
                }
              }
            },
            {
              "displayName": "Separator",
              "name": "separateBy",
              "type": "options",
              "default": ",",
              "options": [
                {
                  "name": "Comma",
                  "value": ","
                },
                {
                  "name": "Comma and Space",
                  "value": ", "
                },
                {
                  "name": "New Line",
                  "value": "\n"
                },
                {
                  "name": "None",
                  "value": ""
                },
                {
                  "name": "Space",
                  "value": " "
                },
                {
                  "name": "Other",
                  "value": "other"
                }
              ],
              "hint": "What to insert between values",
              "displayOptions": {
                "show": {
                  "aggregation": [
                    "concatenate"
                  ]
                }
              }
            },
            {
              "displayName": "Custom Separator",
              "name": "customSeparator",
              "type": "string",
              "default": "",
              "displayOptions": {
                "show": {
                  "aggregation": [
                    "concatenate"
                  ],
                  "separateBy": [
                    "other"
                  ]
                }
              }
            }
          ]
        }
      ],
      "typeOptions": {
        "multipleValues": true
      }
    },
    {
      "displayName": "Fields to Split By",
      "name": "fieldsToSplitBy",
      "type": "string",
      "default": "",
      "description": "The name of the input fields that you want to split the summary by",
      "displayOptions": {
        "hide": {
          "/options.outputFormat": [
            "singleItem"
          ]
        }
      }
    },
    {
      "displayName": "Fields to Group By",
      "name": "fieldsToSplitBy",
      "type": "string",
      "default": "",
      "description": "The name of the input fields that you want to split the summary by",
      "displayOptions": {
        "show": {
          "/options.outputFormat": [
            "singleItem"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Continue if Field Not Found",
          "name": "continueIfFieldNotFound",
          "type": "boolean",
          "default": false,
          "description": "Whether to continue if field to summarize can't be found in any items and return single empty item, otherwise an error would be thrown",
          "displayOptions": {
            "hide": {
              "@version": [
                {
                  "_cnd": {
                    "gte": 1.1
                  }
                }
              ]
            }
          }
        },
        {
          "displayName": "Disable Dot Notation",
          "name": "disableDotNotation",
          "type": "boolean",
          "default": false,
          "description": "Whether to disallow referencing child fields using `parent.child` in the field name"
        },
        {
          "displayName": "Output Format",
          "name": "outputFormat",
          "type": "options",
          "default": "separateItems",
          "options": [
            {
              "name": "Each Split in a Separate Item",
              "value": "separateItems"
            },
            {
              "name": "All Splits in a Single Item",
              "value": "singleItem"
            }
          ]
        },
        {
          "displayName": "Ignore items without valid fields to group by",
          "name": "skipEmptySplitFields",
          "type": "boolean",
          "default": false
        }
      ]
    }
  ]


node_type: nodes-langchain.anthropicTool
package_name: @n8n/n8n-nodes-langchain
display_name: Anthropic Tool
description: Interact with Anthropic AI models (AI Tool variant for use with AI Agents)
category: transform
development_style: programmatic
version: 1
credentials_required:
  [
  {
  "name": "anthropicApi",
  "required": true
  }
  ]

outputs:
  [
  {
  "type": "ai_tool",
  "displayName": "Tool"
  }
  ]

output_names:
  [
  "Tool"
  ]

updated_at: 2026-03-04 11:46:58
tool_variant_of: nodes-langchain.anthropic
properties_schema:
  [
    {
      "displayName": "Tool Description",
      "name": "toolDescription",
      "type": "string",
      "default": "",
      "required": false,
      "description": "Description for the AI to understand what this tool does and when to use it",
      "typeOptions": {
        "rows": 3
      },
      "placeholder": "e.g., Use this tool to interact with Anthropic"
    },
    {
      "displayName": "Resource",
      "name": "resource",
      "type": "options",
      "default": "text",
      "options": [
        {
          "name": "Document",
          "value": "document"
        },
        {
          "name": "File",
          "value": "file"
        },
        {
          "name": "Image",
          "value": "image"
        },
        {
          "name": "Prompt",
          "value": "prompt"
        },
        {
          "name": "Text",
          "value": "text"
        }
      ],
      "noDataExpression": true
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "analyze",
      "options": [
        {
          "name": "Analyze Document",
          "value": "analyze",
          "action": "Analyze document",
          "description": "Take in documents and answer questions about them"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "document"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Model",
      "name": "modelId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "document"
          ]
        }
      },
      "modes": [
        {
          "displayName": "From List",
          "name": "list",
          "type": "list",
          "typeOptions": {
            "searchListMethod": "modelSearch",
            "searchable": true
          }
        },
        {
          "displayName": "ID",
          "name": "id",
          "type": "string",
          "placeholder": "e.g. claude-sonnet-4-5-20250929"
        }
      ]
    },
    {
      "displayName": "Text Input",
      "name": "text",
      "type": "string",
      "default": "What's in this document?",
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "document"
          ]
        }
      },
      "typeOptions": {
        "rows": 2
      }
    },
    {
      "displayName": "Input Type",
      "name": "inputType",
      "type": "options",
      "default": "url",
      "options": [
        {
          "name": "Document URL(s)",
          "value": "url"
        },
        {
          "name": "Binary File(s)",
          "value": "binary"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "document"
          ]
        }
      }
    },
    {
      "displayName": "URL(s)",
      "name": "documentUrls",
      "type": "string",
      "default": "",
      "description": "URL(s) of the document(s) to analyze, multiple URLs can be added separated by comma",
      "displayOptions": {
        "show": {
          "inputType": [
            "url"
          ],
          "operation": [
            "analyze"
          ],
          "resource": [
            "document"
          ]
        }
      }
    },
    {
      "displayName": "Input Data Field Name(s)",
      "name": "binaryPropertyName",
      "type": "string",
      "default": "data",
      "description": "Name of the binary field(s) which contains the document(s), seperate multiple field names with commas",
      "displayOptions": {
        "show": {
          "inputType": [
            "binary"
          ],
          "operation": [
            "analyze"
          ],
          "resource": [
            "document"
          ]
        }
      }
    },
    {
      "displayName": "Simplify Output",
      "name": "simplify",
      "type": "boolean",
      "default": true,
      "description": "Whether to simplify the response or not",
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "document"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Length of Description (Max Tokens)",
          "description": "Fewer tokens will result in shorter, less detailed image description",
          "name": "maxTokens",
          "type": "number",
          "default": 1024,
          "typeOptions": {
            "minValue": 1
          }
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "document"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "upload",
      "options": [
        {
          "name": "Upload File",
          "value": "upload",
          "action": "Upload a file",
          "description": "Upload a file to the Anthropic API for later use"
        },
        {
          "name": "Get File Metadata",
          "value": "get",
          "action": "Get file metadata",
          "description": "Get metadata for a file from the Anthropic API"
        },
        {
          "name": "List Files",
          "value": "list",
          "action": "List files",
          "description": "List files from the Anthropic API"
        },
        {
          "name": "Delete File",
          "value": "deleteFile",
          "action": "Delete a file",
          "description": "Delete a file from the Anthropic API"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "File ID",
      "name": "fileId",
      "type": "string",
      "default": "",
      "description": "ID of the file to delete",
      "displayOptions": {
        "show": {
          "operation": [
            "deleteFile"
          ],
          "resource": [
            "file"
          ]
        }
      }
    },
    {
      "displayName": "File ID",
      "name": "fileId",
      "type": "string",
      "default": "",
      "description": "ID of the file to get metadata for",
      "displayOptions": {
        "show": {
          "operation": [
            "get"
          ],
          "resource": [
            "file"
          ]
        }
      }
    },
    {
      "displayName": "Return All",
      "name": "returnAll",
      "type": "boolean",
      "default": false,
      "description": "Whether to return all results or only up to a given limit",
      "displayOptions": {
        "show": {
          "operation": [
            "list"
          ],
          "resource": [
            "file"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 50,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "returnAll": [
            false
          ],
          "operation": [
            "list"
          ],
          "resource": [
            "file"
          ]
        }
      },
      "typeOptions": {
        "minValue": 1,
        "maxValue": 1000
      }
    },
    {
      "displayName": "Input Type",
      "name": "inputType",
      "type": "options",
      "default": "url",
      "options": [
        {
          "name": "File URL",
          "value": "url"
        },
        {
          "name": "Binary File",
          "value": "binary"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "upload"
          ],
          "resource": [
            "file"
          ]
        }
      }
    },
    {
      "displayName": "URL",
      "name": "fileUrl",
      "type": "string",
      "default": "",
      "description": "URL of the file to upload",
      "displayOptions": {
        "show": {
          "inputType": [
            "url"
          ],
          "operation": [
            "upload"
          ],
          "resource": [
            "file"
          ]
        }
      }
    },
    {
      "displayName": "Input Data Field Name",
      "name": "binaryPropertyName",
      "type": "string",
      "default": "data",
      "description": "Name of the binary field which contains the file",
      "displayOptions": {
        "show": {
          "inputType": [
            "binary"
          ],
          "operation": [
            "upload"
          ],
          "resource": [
            "file"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "File Name",
          "name": "fileName",
          "type": "string",
          "description": "The file name to use for the uploaded file",
          "default": ""
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "upload"
          ],
          "resource": [
            "file"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "analyze",
      "options": [
        {
          "name": "Analyze Image",
          "value": "analyze",
          "action": "Analyze image",
          "description": "Take in images and answer questions about them"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "image"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Model",
      "name": "modelId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "image"
          ]
        }
      },
      "modes": [
        {
          "displayName": "From List",
          "name": "list",
          "type": "list",
          "typeOptions": {
            "searchListMethod": "modelSearch",
            "searchable": true
          }
        },
        {
          "displayName": "ID",
          "name": "id",
          "type": "string",
          "placeholder": "e.g. claude-sonnet-4-5-20250929"
        }
      ]
    },
    {
      "displayName": "Text Input",
      "name": "text",
      "type": "string",
      "default": "What's in this image?",
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "image"
          ]
        }
      },
      "typeOptions": {
        "rows": 2
      }
    },
    {
      "displayName": "Input Type",
      "name": "inputType",
      "type": "options",
      "default": "url",
      "options": [
        {
          "name": "Image URL(s)",
          "value": "url"
        },
        {
          "name": "Binary File(s)",
          "value": "binary"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "image"
          ]
        }
      }
    },
    {
      "displayName": "URL(s)",
      "name": "imageUrls",
      "type": "string",
      "default": "",
      "description": "URL(s) of the image(s) to analyze, multiple URLs can be added separated by comma",
      "displayOptions": {
        "show": {
          "inputType": [
            "url"
          ],
          "operation": [
            "analyze"
          ],
          "resource": [
            "image"
          ]
        }
      }
    },
    {
      "displayName": "Input Data Field Name(s)",
      "name": "binaryPropertyName",
      "type": "string",
      "default": "data",
      "description": "Name of the binary field(s) which contains the image(s), seperate multiple field names with commas",
      "displayOptions": {
        "show": {
          "inputType": [
            "binary"
          ],
          "operation": [
            "analyze"
          ],
          "resource": [
            "image"
          ]
        }
      }
    },
    {
      "displayName": "Simplify Output",
      "name": "simplify",
      "type": "boolean",
      "default": true,
      "description": "Whether to simplify the response or not",
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "image"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Length of Description (Max Tokens)",
          "description": "Fewer tokens will result in shorter, less detailed image description",
          "name": "maxTokens",
          "type": "number",
          "default": 1024,
          "typeOptions": {
            "minValue": 1
          }
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "image"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "generate",
      "options": [
        {
          "name": "Generate Prompt",
          "value": "generate",
          "action": "Generate a prompt",
          "description": "Generate a prompt for a model"
        },
        {
          "name": "Improve Prompt",
          "value": "improve",
          "action": "Improve a prompt",
          "description": "Improve a prompt for a model"
        },
        {
          "name": "Templatize Prompt",
          "value": "templatize",
          "action": "Templatize a prompt",
          "description": "Templatize a prompt for a model"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "prompt"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "The <a href=\"https://docs.anthropic.com/en/api/prompt-tools-generate\">prompt tools APIs</a> are in a closed research preview. Your organization must request access to use them.",
      "name": "experimentalNotice",
      "type": "notice",
      "default": "",
      "displayOptions": {
        "show": {
          "resource": [
            "prompt"
          ]
        }
      }
    },
    {
      "displayName": "Task",
      "name": "task",
      "type": "string",
      "default": "",
      "description": "Description of the prompt's purpose",
      "displayOptions": {
        "show": {
          "operation": [
            "generate"
          ],
          "resource": [
            "prompt"
          ]
        }
      },
      "typeOptions": {
        "rows": 2
      }
    },
    {
      "displayName": "Simplify Output",
      "name": "simplify",
      "type": "boolean",
      "default": true,
      "description": "Whether to return a simplified version of the response instead of the raw data",
      "displayOptions": {
        "show": {
          "operation": [
            "generate"
          ],
          "resource": [
            "prompt"
          ]
        }
      }
    },
    {
      "displayName": "Messages",
      "name": "messages",
      "type": "fixedCollection",
      "default": {
        "values": [
          {
            "content": "",
            "role": "user"
          }
        ]
      },
      "description": "Messages that constitute the prompt to be improved",
      "options": [
        {
          "displayName": "Values",
          "name": "values",
          "values": [
            {
              "displayName": "Prompt",
              "name": "content",
              "type": "string",
              "description": "The content of the message to be sent",
              "default": "",
              "placeholder": "e.g. Concise instructions for a meal prep service",
              "typeOptions": {
                "rows": 2
              }
            },
            {
              "displayName": "Role",
              "name": "role",
              "type": "options",
              "description": "Role in shaping the model's response, it tells the model how it should behave and interact with the user",
              "options": [
                {
                  "name": "User",
                  "value": "user",
                  "description": "Send a message as a user and get a response from the model"
                },
                {
                  "name": "Assistant",
                  "value": "assistant",
                  "description": "Tell the model to adopt a specific tone or personality"
                }
              ],
              "default": "user"
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "improve"
          ],
          "resource": [
            "prompt"
          ]
        }
      },
      "typeOptions": {
        "sortable": true,
        "multipleValues": true
      }
    },
    {
      "displayName": "Simplify Output",
      "name": "simplify",
      "type": "boolean",
      "default": true,
      "description": "Whether to return a simplified version of the response instead of the raw data",
      "displayOptions": {
        "show": {
          "operation": [
            "improve"
          ],
          "resource": [
            "prompt"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "System Message",
          "name": "system",
          "type": "string",
          "description": "The existing system prompt to incorporate, if any",
          "default": "",
          "placeholder": "e.g. You are a professional meal prep chef"
        },
        {
          "displayName": "Feedback",
          "name": "feedback",
          "type": "string",
          "description": "Feedback for improving the prompt",
          "default": "",
          "placeholder": "e.g. Make it more detailed and include cooking times"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "improve"
          ],
          "resource": [
            "prompt"
          ]
        }
      }
    },
    {
      "displayName": "Messages",
      "name": "messages",
      "type": "fixedCollection",
      "default": {
        "values": [
          {
            "content": "",
            "role": "user"
          }
        ]
      },
      "description": "Messages that constitute the prompt to be templatized",
      "options": [
        {
          "displayName": "Values",
          "name": "values",
          "values": [
            {
              "displayName": "Prompt",
              "name": "content",
              "type": "string",
              "description": "The content of the message to be sent",
              "default": "",
              "placeholder": "e.g. Translate hello to German",
              "typeOptions": {
                "rows": 2
              }
            },
            {
              "displayName": "Role",
              "name": "role",
              "type": "options",
              "description": "Role in shaping the model's response, it tells the model how it should behave and interact with the user",
              "options": [
                {
                  "name": "User",
                  "value": "user",
                  "description": "Send a message as a user and get a response from the model"
                },
                {
                  "name": "Assistant",
                  "value": "assistant",
                  "description": "Tell the model to adopt a specific tone or personality"
                }
              ],
              "default": "user"
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "templatize"
          ],
          "resource": [
            "prompt"
          ]
        }
      },
      "typeOptions": {
        "sortable": true,
        "multipleValues": true
      }
    },
    {
      "displayName": "Simplify Output",
      "name": "simplify",
      "type": "boolean",
      "default": true,
      "description": "Whether to return a simplified version of the response instead of the raw data",
      "displayOptions": {
        "show": {
          "operation": [
            "templatize"
          ],
          "resource": [
            "prompt"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "System Message",
          "name": "system",
          "type": "string",
          "description": "The existing system prompt to templatize",
          "default": "",
          "placeholder": "e.g. You are a professional English to German translator"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "templatize"
          ],
          "resource": [
            "prompt"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "message",
      "options": [
        {
          "name": "Message a Model",
          "value": "message",
          "action": "Message a model",
          "description": "Create a completion with Anthropic model"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "text"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Model",
      "name": "modelId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "message"
          ],
          "resource": [
            "text"
          ]
        }
      },
      "modes": [
        {
          "displayName": "From List",
          "name": "list",
          "type": "list",
          "typeOptions": {
            "searchListMethod": "modelSearch",
            "searchable": true
          }
        },
        {
          "displayName": "ID",
          "name": "id",
          "type": "string",
          "placeholder": "e.g. claude-sonnet-4-5-20250929"
        }
      ]
    },
    {
      "displayName": "Messages",
      "name": "messages",
      "type": "fixedCollection",
      "default": {
        "values": [
          {
            "content": "",
            "role": "user"
          }
        ]
      },
      "options": [
        {
          "displayName": "Values",
          "name": "values",
          "values": [
            {
              "displayName": "Prompt",
              "name": "content",
              "type": "string",
              "description": "The content of the message to be sent",
              "default": "",
              "placeholder": "e.g. Hello, how can you help me?",
              "typeOptions": {
                "rows": 2
              }
            },
            {
              "displayName": "Role",
              "name": "role",
              "type": "options",
              "description": "Role in shaping the model's response, it tells the model how it should behave and interact with the user",
              "options": [
                {
                  "name": "User",
                  "value": "user",
                  "description": "Send a message as a user and get a response from the model"
                },
                {
                  "name": "Assistant",
                  "value": "assistant",
                  "description": "Tell the model to adopt a specific tone or personality"
                }
              ],
              "default": "user"
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "message"
          ],
          "resource": [
            "text"
          ]
        }
      },
      "typeOptions": {
        "sortable": true,
        "multipleValues": true
      }
    },
    {
      "displayName": "Add Attachments",
      "name": "addAttachments",
      "type": "boolean",
      "default": false,
      "description": "Whether to add attachments to the message",
      "displayOptions": {
        "show": {
          "operation": [
            "message"
          ],
          "resource": [
            "text"
          ]
        }
      }
    },
    {
      "displayName": "Attachments Input Type",
      "name": "attachmentsInputType",
      "type": "options",
      "default": "url",
      "description": "The type of input to use for the attachments",
      "options": [
        {
          "name": "URL(s)",
          "value": "url"
        },
        {
          "name": "Binary File(s)",
          "value": "binary"
        }
      ],
      "displayOptions": {
        "show": {
          "addAttachments": [
            true
          ],
          "operation": [
            "message"
          ],
          "resource": [
            "text"
          ]
        }
      }
    },
    {
      "displayName": "Attachment URL(s)",
      "name": "attachmentsUrls",
      "type": "string",
      "default": "",
      "description": "URL(s) of the file(s) to attach, multiple URLs can be added separated by comma",
      "displayOptions": {
        "show": {
          "addAttachments": [
            true
          ],
          "attachmentsInputType": [
            "url"
          ],
          "operation": [
            "message"
          ],
          "resource": [
            "text"
          ]
        }
      }
    },
    {
      "displayName": "Attachment Input Data Field Name(s)",
      "name": "binaryPropertyName",
      "type": "string",
      "default": "data",
      "description": "Name of the binary field(s) which contains the file(s) to attach, multiple field names can be added separated by comma",
      "displayOptions": {
        "show": {
          "addAttachments": [
            true
          ],
          "attachmentsInputType": [
            "binary"
          ],
          "operation": [
            "message"
          ],
          "resource": [
            "text"
          ]
        }
      }
    },
    {
      "displayName": "Simplify Output",
      "name": "simplify",
      "type": "boolean",
      "default": true,
      "description": "Whether to return a simplified version of the response instead of the raw data",
      "displayOptions": {
        "show": {
          "operation": [
            "message"
          ],
          "resource": [
            "text"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Include Merged Response",
          "name": "includeMergedResponse",
          "type": "boolean",
          "default": false,
          "description": "Whether to include a single output string merging all text parts of the response"
        },
        {
          "displayName": "System Message",
          "name": "system",
          "type": "string",
          "default": "",
          "placeholder": "e.g. You are a helpful assistant"
        },
        {
          "displayName": "Code Execution",
          "name": "codeExecution",
          "type": "boolean",
          "default": false,
          "description": "Whether to enable code execution. Not supported by all models."
        },
        {
          "displayName": "Web Search",
          "name": "webSearch",
          "type": "boolean",
          "default": false,
          "description": "Whether to enable web search"
        },
        {
          "displayName": "Web Search Max Uses",
          "name": "maxUses",
          "type": "number",
          "default": 5,
          "description": "The maximum number of web search uses per request",
          "typeOptions": {
            "minValue": 0,
            "numberPrecision": 0
          }
        },
        {
          "displayName": "Web Search Allowed Domains",
          "name": "allowedDomains",
          "type": "string",
          "default": "",
          "description": "Comma-separated list of domains to search. Only domains in this list will be searched. Conflicts with \"Web Search Blocked Domains\".",
          "placeholder": "e.g. google.com, wikipedia.org"
        },
        {
          "displayName": "Web Search Blocked Domains",
          "name": "blockedDomains",
          "type": "string",
          "default": "",
          "description": "Comma-separated list of domains to block from search. Conflicts with \"Web Search Allowed Domains\".",
          "placeholder": "e.g. google.com, wikipedia.org"
        },
        {
          "displayName": "Maximum Number of Tokens",
          "name": "maxTokens",
          "default": 1024,
          "description": "The maximum number of tokens to generate in the completion",
          "type": "number",
          "typeOptions": {
            "minValue": 1,
            "numberPrecision": 0
          }
        },
        {
          "displayName": "Output Randomness (Temperature)",
          "name": "temperature",
          "default": 1,
          "description": "Controls the randomness of the output. Lowering results in less random completions. As the temperature approaches zero, the model will become deterministic and repetitive",
          "type": "number",
          "typeOptions": {
            "minValue": 0,
            "maxValue": 1,
            "numberPrecision": 1
          }
        },
        {
          "displayName": "Output Randomness (Top P)",
          "name": "topP",
          "default": 0.7,
          "description": "The maximum cumulative probability of tokens to consider when sampling",
          "type": "number",
          "typeOptions": {
            "minValue": 0,
            "maxValue": 1,
            "numberPrecision": 1
          }
        },
        {
          "displayName": "Output Randomness (Top K)",
          "name": "topK",
          "default": 5,
          "description": "The maximum number of tokens to consider when sampling",
          "type": "number",
          "typeOptions": {
            "minValue": 0,
            "numberPrecision": 0
          }
        },
        {
          "displayName": "Max Tool Calls Iterations",
          "name": "maxToolsIterations",
          "type": "number",
          "default": 15,
          "description": "The maximum number of tool iteration cycles the LLM will run before stopping. A single iteration can contain multiple tool calls. Set to 0 for no limit",
          "typeOptions": {
            "minValue": 0,
            "numberPrecision": 0
          }
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "message"
          ],
          "resource": [
            "text"
          ]
        }
      }
    }
  ]

operations:
  [
    {
      "operation": "analyze",
      "name": "Analyze Document",
      "description": "Take in documents and answer questions about them"
    }
  ]


node_type: nodes-langchain.anthropic
package_name: @n8n/n8n-nodes-langchain
display_name: Anthropic
description: Interact with Anthropic AI models
category: transform
development_style: programmatic
version: 1
credentials_required:
  [
  {
  "name": "anthropicApi",
  "required": true
  }
  ]

outputs:
  [
  "main"
  ]

updated_at: 2026-03-04 11:46:58
properties_schema:
  [
    {
      "displayName": "Resource",
      "name": "resource",
      "type": "options",
      "default": "text",
      "options": [
        {
          "name": "Document",
          "value": "document"
        },
        {
          "name": "File",
          "value": "file"
        },
        {
          "name": "Image",
          "value": "image"
        },
        {
          "name": "Prompt",
          "value": "prompt"
        },
        {
          "name": "Text",
          "value": "text"
        }
      ],
      "noDataExpression": true
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "analyze",
      "options": [
        {
          "name": "Analyze Document",
          "value": "analyze",
          "action": "Analyze document",
          "description": "Take in documents and answer questions about them"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "document"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Model",
      "name": "modelId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "document"
          ]
        }
      },
      "modes": [
        {
          "displayName": "From List",
          "name": "list",
          "type": "list",
          "typeOptions": {
            "searchListMethod": "modelSearch",
            "searchable": true
          }
        },
        {
          "displayName": "ID",
          "name": "id",
          "type": "string",
          "placeholder": "e.g. claude-sonnet-4-5-20250929"
        }
      ]
    },
    {
      "displayName": "Text Input",
      "name": "text",
      "type": "string",
      "default": "What's in this document?",
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "document"
          ]
        }
      },
      "typeOptions": {
        "rows": 2
      }
    },
    {
      "displayName": "Input Type",
      "name": "inputType",
      "type": "options",
      "default": "url",
      "options": [
        {
          "name": "Document URL(s)",
          "value": "url"
        },
        {
          "name": "Binary File(s)",
          "value": "binary"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "document"
          ]
        }
      }
    },
    {
      "displayName": "URL(s)",
      "name": "documentUrls",
      "type": "string",
      "default": "",
      "description": "URL(s) of the document(s) to analyze, multiple URLs can be added separated by comma",
      "displayOptions": {
        "show": {
          "inputType": [
            "url"
          ],
          "operation": [
            "analyze"
          ],
          "resource": [
            "document"
          ]
        }
      }
    },
    {
      "displayName": "Input Data Field Name(s)",
      "name": "binaryPropertyName",
      "type": "string",
      "default": "data",
      "description": "Name of the binary field(s) which contains the document(s), seperate multiple field names with commas",
      "displayOptions": {
        "show": {
          "inputType": [
            "binary"
          ],
          "operation": [
            "analyze"
          ],
          "resource": [
            "document"
          ]
        }
      }
    },
    {
      "displayName": "Simplify Output",
      "name": "simplify",
      "type": "boolean",
      "default": true,
      "description": "Whether to simplify the response or not",
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "document"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Length of Description (Max Tokens)",
          "description": "Fewer tokens will result in shorter, less detailed image description",
          "name": "maxTokens",
          "type": "number",
          "default": 1024,
          "typeOptions": {
            "minValue": 1
          }
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "document"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "upload",
      "options": [
        {
          "name": "Upload File",
          "value": "upload",
          "action": "Upload a file",
          "description": "Upload a file to the Anthropic API for later use"
        },
        {
          "name": "Get File Metadata",
          "value": "get",
          "action": "Get file metadata",
          "description": "Get metadata for a file from the Anthropic API"
        },
        {
          "name": "List Files",
          "value": "list",
          "action": "List files",
          "description": "List files from the Anthropic API"
        },
        {
          "name": "Delete File",
          "value": "deleteFile",
          "action": "Delete a file",
          "description": "Delete a file from the Anthropic API"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "File ID",
      "name": "fileId",
      "type": "string",
      "default": "",
      "description": "ID of the file to delete",
      "displayOptions": {
        "show": {
          "operation": [
            "deleteFile"
          ],
          "resource": [
            "file"
          ]
        }
      }
    },
    {
      "displayName": "File ID",
      "name": "fileId",
      "type": "string",
      "default": "",
      "description": "ID of the file to get metadata for",
      "displayOptions": {
        "show": {
          "operation": [
            "get"
          ],
          "resource": [
            "file"
          ]
        }
      }
    },
    {
      "displayName": "Return All",
      "name": "returnAll",
      "type": "boolean",
      "default": false,
      "description": "Whether to return all results or only up to a given limit",
      "displayOptions": {
        "show": {
          "operation": [
            "list"
          ],
          "resource": [
            "file"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 50,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "returnAll": [
            false
          ],
          "operation": [
            "list"
          ],
          "resource": [
            "file"
          ]
        }
      },
      "typeOptions": {
        "minValue": 1,
        "maxValue": 1000
      }
    },
    {
      "displayName": "Input Type",
      "name": "inputType",
      "type": "options",
      "default": "url",
      "options": [
        {
          "name": "File URL",
          "value": "url"
        },
        {
          "name": "Binary File",
          "value": "binary"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "upload"
          ],
          "resource": [
            "file"
          ]
        }
      }
    },
    {
      "displayName": "URL",
      "name": "fileUrl",
      "type": "string",
      "default": "",
      "description": "URL of the file to upload",
      "displayOptions": {
        "show": {
          "inputType": [
            "url"
          ],
          "operation": [
            "upload"
          ],
          "resource": [
            "file"
          ]
        }
      }
    },
    {
      "displayName": "Input Data Field Name",
      "name": "binaryPropertyName",
      "type": "string",
      "default": "data",
      "description": "Name of the binary field which contains the file",
      "displayOptions": {
        "show": {
          "inputType": [
            "binary"
          ],
          "operation": [
            "upload"
          ],
          "resource": [
            "file"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "File Name",
          "name": "fileName",
          "type": "string",
          "description": "The file name to use for the uploaded file",
          "default": ""
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "upload"
          ],
          "resource": [
            "file"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "analyze",
      "options": [
        {
          "name": "Analyze Image",
          "value": "analyze",
          "action": "Analyze image",
          "description": "Take in images and answer questions about them"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "image"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Model",
      "name": "modelId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "image"
          ]
        }
      },
      "modes": [
        {
          "displayName": "From List",
          "name": "list",
          "type": "list",
          "typeOptions": {
            "searchListMethod": "modelSearch",
            "searchable": true
          }
        },
        {
          "displayName": "ID",
          "name": "id",
          "type": "string",
          "placeholder": "e.g. claude-sonnet-4-5-20250929"
        }
      ]
    },
    {
      "displayName": "Text Input",
      "name": "text",
      "type": "string",
      "default": "What's in this image?",
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "image"
          ]
        }
      },
      "typeOptions": {
        "rows": 2
      }
    },
    {
      "displayName": "Input Type",
      "name": "inputType",
      "type": "options",
      "default": "url",
      "options": [
        {
          "name": "Image URL(s)",
          "value": "url"
        },
        {
          "name": "Binary File(s)",
          "value": "binary"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "image"
          ]
        }
      }
    },
    {
      "displayName": "URL(s)",
      "name": "imageUrls",
      "type": "string",
      "default": "",
      "description": "URL(s) of the image(s) to analyze, multiple URLs can be added separated by comma",
      "displayOptions": {
        "show": {
          "inputType": [
            "url"
          ],
          "operation": [
            "analyze"
          ],
          "resource": [
            "image"
          ]
        }
      }
    },
    {
      "displayName": "Input Data Field Name(s)",
      "name": "binaryPropertyName",
      "type": "string",
      "default": "data",
      "description": "Name of the binary field(s) which contains the image(s), seperate multiple field names with commas",
      "displayOptions": {
        "show": {
          "inputType": [
            "binary"
          ],
          "operation": [
            "analyze"
          ],
          "resource": [
            "image"
          ]
        }
      }
    },
    {
      "displayName": "Simplify Output",
      "name": "simplify",
      "type": "boolean",
      "default": true,
      "description": "Whether to simplify the response or not",
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "image"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Length of Description (Max Tokens)",
          "description": "Fewer tokens will result in shorter, less detailed image description",
          "name": "maxTokens",
          "type": "number",
          "default": 1024,
          "typeOptions": {
            "minValue": 1
          }
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "image"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "generate",
      "options": [
        {
          "name": "Generate Prompt",
          "value": "generate",
          "action": "Generate a prompt",
          "description": "Generate a prompt for a model"
        },
        {
          "name": "Improve Prompt",
          "value": "improve",
          "action": "Improve a prompt",
          "description": "Improve a prompt for a model"
        },
        {
          "name": "Templatize Prompt",
          "value": "templatize",
          "action": "Templatize a prompt",
          "description": "Templatize a prompt for a model"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "prompt"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "The <a href=\"https://docs.anthropic.com/en/api/prompt-tools-generate\">prompt tools APIs</a> are in a closed research preview. Your organization must request access to use them.",
      "name": "experimentalNotice",
      "type": "notice",
      "default": "",
      "displayOptions": {
        "show": {
          "resource": [
            "prompt"
          ]
        }
      }
    },
    {
      "displayName": "Task",
      "name": "task",
      "type": "string",
      "default": "",
      "description": "Description of the prompt's purpose",
      "displayOptions": {
        "show": {
          "operation": [
            "generate"
          ],
          "resource": [
            "prompt"
          ]
        }
      },
      "typeOptions": {
        "rows": 2
      }
    },
    {
      "displayName": "Simplify Output",
      "name": "simplify",
      "type": "boolean",
      "default": true,
      "description": "Whether to return a simplified version of the response instead of the raw data",
      "displayOptions": {
        "show": {
          "operation": [
            "generate"
          ],
          "resource": [
            "prompt"
          ]
        }
      }
    },
    {
      "displayName": "Messages",
      "name": "messages",
      "type": "fixedCollection",
      "default": {
        "values": [
          {
            "content": "",
            "role": "user"
          }
        ]
      },
      "description": "Messages that constitute the prompt to be improved",
      "options": [
        {
          "displayName": "Values",
          "name": "values",
          "values": [
            {
              "displayName": "Prompt",
              "name": "content",
              "type": "string",
              "description": "The content of the message to be sent",
              "default": "",
              "placeholder": "e.g. Concise instructions for a meal prep service",
              "typeOptions": {
                "rows": 2
              }
            },
            {
              "displayName": "Role",
              "name": "role",
              "type": "options",
              "description": "Role in shaping the model's response, it tells the model how it should behave and interact with the user",
              "options": [
                {
                  "name": "User",
                  "value": "user",
                  "description": "Send a message as a user and get a response from the model"
                },
                {
                  "name": "Assistant",
                  "value": "assistant",
                  "description": "Tell the model to adopt a specific tone or personality"
                }
              ],
              "default": "user"
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "improve"
          ],
          "resource": [
            "prompt"
          ]
        }
      },
      "typeOptions": {
        "sortable": true,
        "multipleValues": true
      }
    },
    {
      "displayName": "Simplify Output",
      "name": "simplify",
      "type": "boolean",
      "default": true,
      "description": "Whether to return a simplified version of the response instead of the raw data",
      "displayOptions": {
        "show": {
          "operation": [
            "improve"
          ],
          "resource": [
            "prompt"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "System Message",
          "name": "system",
          "type": "string",
          "description": "The existing system prompt to incorporate, if any",
          "default": "",
          "placeholder": "e.g. You are a professional meal prep chef"
        },
        {
          "displayName": "Feedback",
          "name": "feedback",
          "type": "string",
          "description": "Feedback for improving the prompt",
          "default": "",
          "placeholder": "e.g. Make it more detailed and include cooking times"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "improve"
          ],
          "resource": [
            "prompt"
          ]
        }
      }
    },
    {
      "displayName": "Messages",
      "name": "messages",
      "type": "fixedCollection",
      "default": {
        "values": [
          {
            "content": "",
            "role": "user"
          }
        ]
      },
      "description": "Messages that constitute the prompt to be templatized",
      "options": [
        {
          "displayName": "Values",
          "name": "values",
          "values": [
            {
              "displayName": "Prompt",
              "name": "content",
              "type": "string",
              "description": "The content of the message to be sent",
              "default": "",
              "placeholder": "e.g. Translate hello to German",
              "typeOptions": {
                "rows": 2
              }
            },
            {
              "displayName": "Role",
              "name": "role",
              "type": "options",
              "description": "Role in shaping the model's response, it tells the model how it should behave and interact with the user",
              "options": [
                {
                  "name": "User",
                  "value": "user",
                  "description": "Send a message as a user and get a response from the model"
                },
                {
                  "name": "Assistant",
                  "value": "assistant",
                  "description": "Tell the model to adopt a specific tone or personality"
                }
              ],
              "default": "user"
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "templatize"
          ],
          "resource": [
            "prompt"
          ]
        }
      },
      "typeOptions": {
        "sortable": true,
        "multipleValues": true
      }
    },
    {
      "displayName": "Simplify Output",
      "name": "simplify",
      "type": "boolean",
      "default": true,
      "description": "Whether to return a simplified version of the response instead of the raw data",
      "displayOptions": {
        "show": {
          "operation": [
            "templatize"
          ],
          "resource": [
            "prompt"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "System Message",
          "name": "system",
          "type": "string",
          "description": "The existing system prompt to templatize",
          "default": "",
          "placeholder": "e.g. You are a professional English to German translator"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "templatize"
          ],
          "resource": [
            "prompt"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "message",
      "options": [
        {
          "name": "Message a Model",
          "value": "message",
          "action": "Message a model",
          "description": "Create a completion with Anthropic model"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "text"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Model",
      "name": "modelId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "message"
          ],
          "resource": [
            "text"
          ]
        }
      },
      "modes": [
        {
          "displayName": "From List",
          "name": "list",
          "type": "list",
          "typeOptions": {
            "searchListMethod": "modelSearch",
            "searchable": true
          }
        },
        {
          "displayName": "ID",
          "name": "id",
          "type": "string",
          "placeholder": "e.g. claude-sonnet-4-5-20250929"
        }
      ]
    },
    {
      "displayName": "Messages",
      "name": "messages",
      "type": "fixedCollection",
      "default": {
        "values": [
          {
            "content": "",
            "role": "user"
          }
        ]
      },
      "options": [
        {
          "displayName": "Values",
          "name": "values",
          "values": [
            {
              "displayName": "Prompt",
              "name": "content",
              "type": "string",
              "description": "The content of the message to be sent",
              "default": "",
              "placeholder": "e.g. Hello, how can you help me?",
              "typeOptions": {
                "rows": 2
              }
            },
            {
              "displayName": "Role",
              "name": "role",
              "type": "options",
              "description": "Role in shaping the model's response, it tells the model how it should behave and interact with the user",
              "options": [
                {
                  "name": "User",
                  "value": "user",
                  "description": "Send a message as a user and get a response from the model"
                },
                {
                  "name": "Assistant",
                  "value": "assistant",
                  "description": "Tell the model to adopt a specific tone or personality"
                }
              ],
              "default": "user"
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "message"
          ],
          "resource": [
            "text"
          ]
        }
      },
      "typeOptions": {
        "sortable": true,
        "multipleValues": true
      }
    },
    {
      "displayName": "Add Attachments",
      "name": "addAttachments",
      "type": "boolean",
      "default": false,
      "description": "Whether to add attachments to the message",
      "displayOptions": {
        "show": {
          "operation": [
            "message"
          ],
          "resource": [
            "text"
          ]
        }
      }
    },
    {
      "displayName": "Attachments Input Type",
      "name": "attachmentsInputType",
      "type": "options",
      "default": "url",
      "description": "The type of input to use for the attachments",
      "options": [
        {
          "name": "URL(s)",
          "value": "url"
        },
        {
          "name": "Binary File(s)",
          "value": "binary"
        }
      ],
      "displayOptions": {
        "show": {
          "addAttachments": [
            true
          ],
          "operation": [
            "message"
          ],
          "resource": [
            "text"
          ]
        }
      }
    },
    {
      "displayName": "Attachment URL(s)",
      "name": "attachmentsUrls",
      "type": "string",
      "default": "",
      "description": "URL(s) of the file(s) to attach, multiple URLs can be added separated by comma",
      "displayOptions": {
        "show": {
          "addAttachments": [
            true
          ],
          "attachmentsInputType": [
            "url"
          ],
          "operation": [
            "message"
          ],
          "resource": [
            "text"
          ]
        }
      }
    },
    {
      "displayName": "Attachment Input Data Field Name(s)",
      "name": "binaryPropertyName",
      "type": "string",
      "default": "data",
      "description": "Name of the binary field(s) which contains the file(s) to attach, multiple field names can be added separated by comma",
      "displayOptions": {
        "show": {
          "addAttachments": [
            true
          ],
          "attachmentsInputType": [
            "binary"
          ],
          "operation": [
            "message"
          ],
          "resource": [
            "text"
          ]
        }
      }
    },
    {
      "displayName": "Simplify Output",
      "name": "simplify",
      "type": "boolean",
      "default": true,
      "description": "Whether to return a simplified version of the response instead of the raw data",
      "displayOptions": {
        "show": {
          "operation": [
            "message"
          ],
          "resource": [
            "text"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Include Merged Response",
          "name": "includeMergedResponse",
          "type": "boolean",
          "default": false,
          "description": "Whether to include a single output string merging all text parts of the response"
        },
        {
          "displayName": "System Message",
          "name": "system",
          "type": "string",
          "default": "",
          "placeholder": "e.g. You are a helpful assistant"
        },
        {
          "displayName": "Code Execution",
          "name": "codeExecution",
          "type": "boolean",
          "default": false,
          "description": "Whether to enable code execution. Not supported by all models."
        },
        {
          "displayName": "Web Search",
          "name": "webSearch",
          "type": "boolean",
          "default": false,
          "description": "Whether to enable web search"
        },
        {
          "displayName": "Web Search Max Uses",
          "name": "maxUses",
          "type": "number",
          "default": 5,
          "description": "The maximum number of web search uses per request",
          "typeOptions": {
            "minValue": 0,
            "numberPrecision": 0
          }
        },
        {
          "displayName": "Web Search Allowed Domains",
          "name": "allowedDomains",
          "type": "string",
          "default": "",
          "description": "Comma-separated list of domains to search. Only domains in this list will be searched. Conflicts with \"Web Search Blocked Domains\".",
          "placeholder": "e.g. google.com, wikipedia.org"
        },
        {
          "displayName": "Web Search Blocked Domains",
          "name": "blockedDomains",
          "type": "string",
          "default": "",
          "description": "Comma-separated list of domains to block from search. Conflicts with \"Web Search Allowed Domains\".",
          "placeholder": "e.g. google.com, wikipedia.org"
        },
        {
          "displayName": "Maximum Number of Tokens",
          "name": "maxTokens",
          "default": 1024,
          "description": "The maximum number of tokens to generate in the completion",
          "type": "number",
          "typeOptions": {
            "minValue": 1,
            "numberPrecision": 0
          }
        },
        {
          "displayName": "Output Randomness (Temperature)",
          "name": "temperature",
          "default": 1,
          "description": "Controls the randomness of the output. Lowering results in less random completions. As the temperature approaches zero, the model will become deterministic and repetitive",
          "type": "number",
          "typeOptions": {
            "minValue": 0,
            "maxValue": 1,
            "numberPrecision": 1
          }
        },
        {
          "displayName": "Output Randomness (Top P)",
          "name": "topP",
          "default": 0.7,
          "description": "The maximum cumulative probability of tokens to consider when sampling",
          "type": "number",
          "typeOptions": {
            "minValue": 0,
            "maxValue": 1,
            "numberPrecision": 1
          }
        },
        {
          "displayName": "Output Randomness (Top K)",
          "name": "topK",
          "default": 5,
          "description": "The maximum number of tokens to consider when sampling",
          "type": "number",
          "typeOptions": {
            "minValue": 0,
            "numberPrecision": 0
          }
        },
        {
          "displayName": "Max Tool Calls Iterations",
          "name": "maxToolsIterations",
          "type": "number",
          "default": 15,
          "description": "The maximum number of tool iteration cycles the LLM will run before stopping. A single iteration can contain multiple tool calls. Set to 0 for no limit",
          "typeOptions": {
            "minValue": 0,
            "numberPrecision": 0
          }
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "message"
          ],
          "resource": [
            "text"
          ]
        }
      }
    }
  ]

operations:
  [
    {
      "operation": "analyze",
      "name": "Analyze Document",
      "description": "Take in documents and answer questions about them"
    }
  ]


node_type: nodes-langchain.googleGeminiTool
package_name: @n8n/n8n-nodes-langchain
display_name: Google Gemini Tool
description: Interact with Google Gemini AI models (AI Tool variant for use with AI Agents)
category: transform
development_style: programmatic
version: 1.1
credentials_required:
  [
  {
  "name": "googlePalmApi",
  "required": true
  }
  ]

outputs:
  [
  {
  "type": "ai_tool",
  "displayName": "Tool"
  }
  ]

output_names:
  [
  "Tool"
  ]

updated_at: 2026-03-04 11:46:58
tool_variant_of: nodes-langchain.googleGemini
properties_schema:
  [
    {
      "displayName": "Tool Description",
      "name": "toolDescription",
      "type": "string",
      "default": "",
      "required": false,
      "description": "Description for the AI to understand what this tool does and when to use it",
      "typeOptions": {
        "rows": 3
      },
      "placeholder": "e.g., Use this tool to interact with Google Gemini"
    },
    {
      "displayName": "Resource",
      "name": "resource",
      "type": "options",
      "default": "text",
      "options": [
        {
          "name": "Audio",
          "value": "audio"
        },
        {
          "name": "Document",
          "value": "document"
        },
        {
          "name": "File Search",
          "value": "fileSearch"
        },
        {
          "name": "Image",
          "value": "image"
        },
        {
          "name": "Media File",
          "value": "file"
        },
        {
          "name": "Text",
          "value": "text"
        },
        {
          "name": "Video",
          "value": "video"
        }
      ],
      "noDataExpression": true
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "transcribe",
      "options": [
        {
          "name": "Analyze Audio",
          "value": "analyze",
          "action": "Analyze audio",
          "description": "Take in audio and answer questions about it"
        },
        {
          "name": "Transcribe a Recording",
          "value": "transcribe",
          "action": "Transcribe a recording",
          "description": "Transcribes audio into the text"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "audio"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Model",
      "name": "modelId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "audio"
          ]
        }
      },
      "modes": [
        {
          "displayName": "From List",
          "name": "list",
          "type": "list",
          "typeOptions": {
            "searchListMethod": "audioModelSearch",
            "searchable": true
          }
        },
        {
          "displayName": "ID",
          "name": "id",
          "type": "string",
          "placeholder": "e.g. models/gemini-2.5-flash"
        }
      ]
    },
    {
      "displayName": "Text Input",
      "name": "text",
      "type": "string",
      "default": "What's in this audio?",
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "audio"
          ]
        }
      },
      "typeOptions": {
        "rows": 2
      }
    },
    {
      "displayName": "Input Type",
      "name": "inputType",
      "type": "options",
      "default": "url",
      "options": [
        {
          "name": "Audio URL(s)",
          "value": "url"
        },
        {
          "name": "Binary File(s)",
          "value": "binary"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "audio"
          ]
        }
      }
    },
    {
      "displayName": "URL(s)",
      "name": "audioUrls",
      "type": "string",
      "default": "",
      "description": "URL(s) of the audio(s) to analyze, multiple URLs can be added separated by comma",
      "displayOptions": {
        "show": {
          "inputType": [
            "url"
          ],
          "operation": [
            "analyze"
          ],
          "resource": [
            "audio"
          ]
        }
      }
    },
    {
      "displayName": "Input Data Field Name(s)",
      "name": "binaryPropertyName",
      "type": "string",
      "default": "data",
      "description": "Name of the binary field(s) which contains the audio(s), seperate multiple field names with commas",
      "displayOptions": {
        "show": {
          "inputType": [
            "binary"
          ],
          "operation": [
            "analyze"
          ],
          "resource": [
            "audio"
          ]
        }
      }
    },
    {
      "displayName": "Simplify Output",
      "name": "simplify",
      "type": "boolean",
      "default": true,
      "description": "Whether to simplify the response or not",
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "audio"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Length of Description (Max Tokens)",
          "description": "Fewer tokens will result in shorter, less detailed audio description",
          "name": "maxOutputTokens",
          "type": "number",
          "default": 300,
          "typeOptions": {
            "minValue": 1
          }
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "audio"
          ]
        }
      }
    },
    {
      "displayName": "Model",
      "name": "modelId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "transcribe"
          ],
          "resource": [
            "audio"
          ]
        }
      },
      "modes": [
        {
          "displayName": "From List",
          "name": "list",
          "type": "list",
          "typeOptions": {
            "searchListMethod": "audioModelSearch",
            "searchable": true
          }
        },
        {
          "displayName": "ID",
          "name": "id",
          "type": "string",
          "placeholder": "e.g. models/gemini-2.5-flash"
        }
      ]
    },
    {
      "displayName": "Input Type",
      "name": "inputType",
      "type": "options",
      "default": "url",
      "options": [
        {
          "name": "Audio URL(s)",
          "value": "url"
        },
        {
          "name": "Binary File(s)",
          "value": "binary"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "transcribe"
          ],
          "resource": [
            "audio"
          ]
        }
      }
    },
    {
      "displayName": "URL(s)",
      "name": "audioUrls",
      "type": "string",
      "default": "",
      "description": "URL(s) of the audio(s) to transcribe, multiple URLs can be added separated by comma",
      "displayOptions": {
        "show": {
          "inputType": [
            "url"
          ],
          "operation": [
            "transcribe"
          ],
          "resource": [
            "audio"
          ]
        }
      }
    },
    {
      "displayName": "Input Data Field Name(s)",
      "name": "binaryPropertyName",
      "type": "string",
      "default": "data",
      "description": "Name of the binary field(s) which contains the audio(s), seperate multiple field names with commas",
      "displayOptions": {
        "show": {
          "inputType": [
            "binary"
          ],
          "operation": [
            "transcribe"
          ],
          "resource": [
            "audio"
          ]
        }
      }
    },
    {
      "displayName": "Simplify Output",
      "name": "simplify",
      "type": "boolean",
      "default": true,
      "description": "Whether to simplify the response or not",
      "displayOptions": {
        "show": {
          "operation": [
            "transcribe"
          ],
          "resource": [
            "audio"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Start Time",
          "name": "startTime",
          "type": "string",
          "default": "",
          "description": "The start time of the audio in MM:SS or HH:MM:SS format",
          "placeholder": "e.g. 00:15"
        },
        {
          "displayName": "End Time",
          "name": "endTime",
          "type": "string",
          "default": "",
          "description": "The end time of the audio in MM:SS or HH:MM:SS format",
          "placeholder": "e.g. 02:15"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "transcribe"
          ],
          "resource": [
            "audio"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "analyze",
      "options": [
        {
          "name": "Analyze Document",
          "value": "analyze",
          "action": "Analyze document",
          "description": "Take in documents and answer questions about them"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "document"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Model",
      "name": "modelId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "document"
          ]
        }
      },
      "modes": [
        {
          "displayName": "From List",
          "name": "list",
          "type": "list",
          "typeOptions": {
            "searchListMethod": "modelSearch",
            "searchable": true
          }
        },
        {
          "displayName": "ID",
          "name": "id",
          "type": "string",
          "placeholder": "e.g. models/gemini-2.5-flash"
        }
      ]
    },
    {
      "displayName": "Text Input",
      "name": "text",
      "type": "string",
      "default": "What's in this document?",
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "document"
          ]
        }
      },
      "typeOptions": {
        "rows": 2
      }
    },
    {
      "displayName": "Input Type",
      "name": "inputType",
      "type": "options",
      "default": "url",
      "options": [
        {
          "name": "Document URL(s)",
          "value": "url"
        },
        {
          "name": "Binary File(s)",
          "value": "binary"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "document"
          ]
        }
      }
    },
    {
      "displayName": "URL(s)",
      "name": "documentUrls",
      "type": "string",
      "default": "",
      "description": "URL(s) of the document(s) to analyze, multiple URLs can be added separated by comma",
      "displayOptions": {
        "show": {
          "inputType": [
            "url"
          ],
          "operation": [
            "analyze"
          ],
          "resource": [
            "document"
          ]
        }
      }
    },
    {
      "displayName": "Input Data Field Name(s)",
      "name": "binaryPropertyName",
      "type": "string",
      "default": "data",
      "description": "Name of the binary field(s) which contains the document(s), seperate multiple field names with commas",
      "displayOptions": {
        "show": {
          "inputType": [
            "binary"
          ],
          "operation": [
            "analyze"
          ],
          "resource": [
            "document"
          ]
        }
      }
    },
    {
      "displayName": "Simplify Output",
      "name": "simplify",
      "type": "boolean",
      "default": true,
      "description": "Whether to simplify the response or not",
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "document"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Length of Description (Max Tokens)",
          "description": "Fewer tokens will result in shorter, less detailed document description",
          "name": "maxOutputTokens",
          "type": "number",
          "default": 300,
          "typeOptions": {
            "minValue": 1
          }
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "document"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "upload",
      "options": [
        {
          "name": "Upload Media File",
          "value": "upload",
          "action": "Upload a media file",
          "description": "Upload a file to the Google Gemini API for later use"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Input Type",
      "name": "inputType",
      "type": "options",
      "default": "url",
      "options": [
        {
          "name": "File URL",
          "value": "url"
        },
        {
          "name": "Binary File",
          "value": "binary"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "upload"
          ],
          "resource": [
            "file"
          ]
        }
      }
    },
    {
      "displayName": "URL",
      "name": "fileUrl",
      "type": "string",
      "default": "",
      "description": "URL of the file to upload",
      "displayOptions": {
        "show": {
          "inputType": [
            "url"
          ],
          "operation": [
            "upload"
          ],
          "resource": [
            "file"
          ]
        }
      }
    },
    {
      "displayName": "Input Data Field Name",
      "name": "binaryPropertyName",
      "type": "string",
      "default": "data",
      "description": "Name of the binary property which contains the file",
      "displayOptions": {
        "show": {
          "inputType": [
            "binary"
          ],
          "operation": [
            "upload"
          ],
          "resource": [
            "file"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "createStore",
      "options": [
        {
          "name": "Create File Search Store",
          "value": "createStore",
          "action": "Create a File Search store",
          "description": "Create a new File Search store for RAG (Retrieval Augmented Generation)"
        },
        {
          "name": "Delete File Search Store",
          "value": "deleteStore",
          "action": "Delete a File Search store",
          "description": "Delete a File Search store"
        },
        {
          "name": "List File Search Stores",
          "value": "listStores",
          "action": "List all File Search stores",
          "description": "List all File Search stores owned by the user"
        },
        {
          "name": "Upload to File Search Store",
          "value": "uploadToStore",
          "action": "Upload a file to a File Search store",
          "description": "Upload a file to a File Search store for RAG (Retrieval Augmented Generation)"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "fileSearch"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Display Name",
      "name": "displayName",
      "type": "string",
      "default": "",
      "description": "A human-readable name for the File Search store",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "createStore"
          ],
          "resource": [
            "fileSearch"
          ]
        }
      }
    },
    {
      "displayName": "File Search Store Name",
      "name": "fileSearchStoreName",
      "type": "string",
      "default": "",
      "description": "The full name of the File Search store to delete (format: fileSearchStores/...)",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "deleteStore"
          ],
          "resource": [
            "fileSearch"
          ]
        }
      }
    },
    {
      "displayName": "Force Delete",
      "name": "force",
      "type": "boolean",
      "default": false,
      "description": "Whether to delete related Documents and objects. If false, deletion will fail if the store contains any Documents.",
      "displayOptions": {
        "show": {
          "operation": [
            "deleteStore"
          ],
          "resource": [
            "fileSearch"
          ]
        }
      }
    },
    {
      "displayName": "Page Size",
      "name": "pageSize",
      "type": "number",
      "default": 10,
      "description": "Maximum number of File Search stores to return per page (max 20)",
      "displayOptions": {
        "show": {
          "operation": [
            "listStores"
          ],
          "resource": [
            "fileSearch"
          ]
        }
      },
      "typeOptions": {
        "minValue": 1,
        "maxValue": 20
      }
    },
    {
      "displayName": "Page Token",
      "name": "pageToken",
      "type": "string",
      "default": "",
      "description": "Token from a previous page to retrieve the next page of results",
      "displayOptions": {
        "show": {
          "operation": [
            "listStores"
          ],
          "resource": [
            "fileSearch"
          ]
        }
      }
    },
    {
      "displayName": "File Search Store Name",
      "name": "fileSearchStoreName",
      "type": "string",
      "default": "",
      "description": "The full name of the File Search store to upload to (format: fileSearchStores/...)",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "uploadToStore"
          ],
          "resource": [
            "fileSearch"
          ]
        }
      }
    },
    {
      "displayName": "File Display Name",
      "name": "displayName",
      "type": "string",
      "default": "",
      "description": "A human-readable name for the file (will be visible in citations)",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "uploadToStore"
          ],
          "resource": [
            "fileSearch"
          ]
        }
      }
    },
    {
      "displayName": "Input Type",
      "name": "inputType",
      "type": "options",
      "default": "url",
      "options": [
        {
          "name": "File URL",
          "value": "url"
        },
        {
          "name": "Binary File",
          "value": "binary"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "uploadToStore"
          ],
          "resource": [
            "fileSearch"
          ]
        }
      }
    },
    {
      "displayName": "URL",
      "name": "fileUrl",
      "type": "string",
      "default": "",
      "description": "URL of the file to upload",
      "displayOptions": {
        "show": {
          "inputType": [
            "url"
          ],
          "operation": [
            "uploadToStore"
          ],
          "resource": [
            "fileSearch"
          ]
        }
      }
    },
    {
      "displayName": "Input Data Field Name",
      "name": "binaryPropertyName",
      "type": "string",
      "default": "data",
      "description": "Name of the binary property which contains the file",
      "displayOptions": {
        "show": {
          "inputType": [
            "binary"
          ],
          "operation": [
            "uploadToStore"
          ],
          "resource": [
            "fileSearch"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "generate",
      "options": [
        {
          "name": "Analyze Image",
          "value": "analyze",
          "action": "Analyze an image",
          "description": "Take in images and answer questions about them"
        },
        {
          "name": "Generate an Image",
          "value": "generate",
          "action": "Generate an image",
          "description": "Creates an image from a text prompt"
        },
        {
          "name": "Edit Image",
          "value": "edit",
          "action": "Edit an image",
          "description": "Upload one or more images and apply edits based on a prompt"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "image"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Model",
      "name": "modelId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "image"
          ]
        }
      },
      "modes": [
        {
          "displayName": "From List",
          "name": "list",
          "type": "list",
          "typeOptions": {
            "searchListMethod": "modelSearch",
            "searchable": true
          }
        },
        {
          "displayName": "ID",
          "name": "id",
          "type": "string",
          "placeholder": "e.g. models/gemini-2.5-flash"
        }
      ]
    },
    {
      "displayName": "Text Input",
      "name": "text",
      "type": "string",
      "default": "What's in this image?",
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "image"
          ]
        }
      },
      "typeOptions": {
        "rows": 2
      }
    },
    {
      "displayName": "Input Type",
      "name": "inputType",
      "type": "options",
      "default": "url",
      "options": [
        {
          "name": "Image URL(s)",
          "value": "url"
        },
        {
          "name": "Binary File(s)",
          "value": "binary"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "image"
          ]
        }
      }
    },
    {
      "displayName": "URL(s)",
      "name": "imageUrls",
      "type": "string",
      "default": "",
      "description": "URL(s) of the image(s) to analyze, multiple URLs can be added separated by comma",
      "displayOptions": {
        "show": {
          "inputType": [
            "url"
          ],
          "operation": [
            "analyze"
          ],
          "resource": [
            "image"
          ]
        }
      }
    },
    {
      "displayName": "Input Data Field Name(s)",
      "name": "binaryPropertyName",
      "type": "string",
      "default": "data",
      "description": "Name of the binary field(s) which contains the image(s), separate multiple field names with commas",
      "displayOptions": {
        "show": {
          "inputType": [
            "binary"
          ],
          "operation": [
            "analyze"
          ],
          "resource": [
            "image"
          ]
        }
      }
    },
    {
      "displayName": "Simplify Output",
      "name": "simplify",
      "type": "boolean",
      "default": true,
      "description": "Whether to simplify the response or not",
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "image"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Length of Description (Max Tokens)",
          "description": "Fewer tokens will result in shorter, less detailed image description",
          "name": "maxOutputTokens",
          "type": "number",
          "default": 300,
          "typeOptions": {
            "minValue": 1
          }
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "image"
          ]
        }
      }
    },
    {
      "displayName": "Model",
      "name": "modelId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "edit"
          ],
          "resource": [
            "image"
          ]
        }
      },
      "modes": [
        {
          "displayName": "From List",
          "name": "list",
          "type": "list",
          "typeOptions": {
            "searchListMethod": "imageEditModelSearch",
            "searchable": true
          }
        },
        {
          "displayName": "ID",
          "name": "id",
          "type": "string",
          "placeholder": "e.g. models/gemini-2.5-flash"
        }
      ]
    },
    {
      "displayName": "Prompt",
      "name": "prompt",
      "type": "string",
      "default": "",
      "description": "Instruction describing how to edit the image",
      "displayOptions": {
        "show": {
          "operation": [
            "edit"
          ],
          "resource": [
            "image"
          ]
        }
      },
      "typeOptions": {
        "rows": 2
      }
    },
    {
      "displayName": "Images",
      "name": "images",
      "type": "fixedCollection",
      "default": {
        "values": [
          {
            "binaryPropertyName": "data"
          }
        ]
      },
      "description": "Add one or more binary fields to include images with your prompt",
      "options": [
        {
          "displayName": "Image",
          "name": "values",
          "values": [
            {
              "displayName": "Binary Field Name",
              "name": "binaryPropertyName",
              "type": "string",
              "default": "data",
              "placeholder": "e.g. data",
              "description": "The name of the binary field containing the image data"
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "edit"
          ],
          "resource": [
            "image"
          ]
        }
      },
      "typeOptions": {
        "multipleValues": true,
        "multipleValueButtonText": "Add Image"
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Put Output in Field",
          "name": "binaryPropertyOutput",
          "type": "string",
          "default": "edited",
          "hint": "The name of the output field to put the binary file data in"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "edit"
          ],
          "resource": [
            "image"
          ]
        }
      }
    },
    {
      "displayName": "Model",
      "name": "modelId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "generate"
          ],
          "resource": [
            "image"
          ]
        }
      },
      "modes": [
        {
          "displayName": "From List",
          "name": "list",
          "type": "list",
          "typeOptions": {
            "searchListMethod": "imageGenerationModelSearch",
            "searchable": true
          }
        },
        {
          "displayName": "ID",
          "name": "id",
          "type": "string",
          "placeholder": "e.g. models/gemini-2.5-flash"
        }
      ]
    },
    {
      "displayName": "Prompt",
      "name": "prompt",
      "type": "string",
      "default": "",
      "description": "A text description of the desired image(s)",
      "displayOptions": {
        "show": {
          "operation": [
            "generate"
          ],
          "resource": [
            "image"
          ]
        }
      },
      "typeOptions": {
        "rows": 2
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Number of Images",
          "name": "sampleCount",
          "default": 1,
          "description": "Number of images to generate. Not supported by Gemini models, supported by Imagen models.",
          "type": "number",
          "typeOptions": {
            "minValue": 1
          }
        },
        {
          "displayName": "Put Output in Field",
          "name": "binaryPropertyOutput",
          "type": "string",
          "default": "data",
          "hint": "The name of the output field to put the binary file data in"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "generate"
          ],
          "resource": [
            "image"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "message",
      "options": [
        {
          "name": "Message a Model",
          "value": "message",
          "action": "Message a model",
          "description": "Create a completion with Google Gemini model"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "text"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Model",
      "name": "modelId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "message"
          ],
          "resource": [
            "text"
          ]
        }
      },
      "modes": [
        {
          "displayName": "From List",
          "name": "list",
          "type": "list",
          "typeOptions": {
            "searchListMethod": "modelSearch",
            "searchable": true
          }
        },
        {
          "displayName": "ID",
          "name": "id",
          "type": "string",
          "placeholder": "e.g. models/gemini-2.5-flash"
        }
      ]
    },
    {
      "displayName": "Messages",
      "name": "messages",
      "type": "fixedCollection",
      "default": {
        "values": [
          {
            "content": ""
          }
        ]
      },
      "options": [
        {
          "displayName": "Values",
          "name": "values",
          "values": [
            {
              "displayName": "Prompt",
              "name": "content",
              "type": "string",
              "description": "The content of the message to be send",
              "default": "",
              "placeholder": "e.g. Hello, how can you help me?",
              "typeOptions": {
                "rows": 2
              }
            },
            {
              "displayName": "Role",
              "name": "role",
              "type": "options",
              "description": "Role in shaping the model's response, it tells the model how it should behave and interact with the user",
              "options": [
                {
                  "name": "User",
                  "value": "user",
                  "description": "Send a message as a user and get a response from the model"
                },
                {
                  "name": "Model",
                  "value": "model",
                  "description": "Tell the model to adopt a specific tone or personality"
                }
              ],
              "default": "user"
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "message"
          ],
          "resource": [
            "text"
          ]
        }
      },
      "typeOptions": {
        "sortable": true,
        "multipleValues": true
      }
    },
    {
      "displayName": "Simplify Output",
      "name": "simplify",
      "type": "boolean",
      "default": true,
      "description": "Whether to return a simplified version of the response instead of the raw data",
      "displayOptions": {
        "show": {
          "operation": [
            "message"
          ],
          "resource": [
            "text"
          ]
        }
      }
    },
    {
      "displayName": "Output Content as JSON",
      "name": "jsonOutput",
      "type": "boolean",
      "default": false,
      "description": "Whether to attempt to return the response in JSON format",
      "displayOptions": {
        "show": {
          "operation": [
            "message"
          ],
          "resource": [
            "text"
          ]
        }
      }
    },
    {
      "displayName": "Built-in Tools",
      "name": "builtInTools",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Google Search",
          "name": "googleSearch",
          "type": "boolean",
          "default": true,
          "description": "Whether to allow the model to search the web using Google Search to get real-time information"
        },
        {
          "displayName": "Google Maps",
          "name": "googleMaps",
          "type": "collection",
          "default": {
            "latitude": "",
            "longitude": ""
          },
          "options": [
            {
              "displayName": "Latitude",
              "name": "latitude",
              "type": "number",
              "default": "",
              "description": "The latitude coordinate for location-based queries",
              "typeOptions": {
                "numberPrecision": 6
              }
            },
            {
              "displayName": "Longitude",
              "name": "longitude",
              "type": "number",
              "default": "",
              "description": "The longitude coordinate for location-based queries",
              "typeOptions": {
                "numberPrecision": 6
              }
            }
          ]
        },
        {
          "displayName": "URL Context",
          "name": "urlContext",
          "type": "boolean",
          "default": true,
          "description": "Whether to allow the model to read and analyze content from specific URLs"
        },
        {
          "displayName": "File Search",
          "name": "fileSearch",
          "type": "collection",
          "default": {
            "fileSearchStoreNames": "[]"
          },
          "options": [
            {
              "displayName": "File Search Store Names",
              "name": "fileSearchStoreNames",
              "description": "The file search store names to use for the file search. File search stores are managed via Google AI Studio.",
              "type": "json",
              "default": "[]",
              "required": true
            },
            {
              "displayName": "Metadata Filter",
              "name": "metadataFilter",
              "type": "string",
              "default": "",
              "description": "Use metadata filter to search within a subset of documents. Example: author=\"Robert Graves\".",
              "placeholder": "e.g. author=\"John Doe\""
            }
          ]
        },
        {
          "displayName": "Code Execution",
          "name": "codeExecution",
          "type": "boolean",
          "default": true,
          "description": "Whether to allow the model to execute code it generates to produce a response. Supported only by certain models."
        }
      ],
      "displayOptions": {
        "show": {
          "@version": [
            {
              "_cnd": {
                "gte": 1.1
              }
            }
          ],
          "operation": [
            "message"
          ],
          "resource": [
            "text"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Include Merged Response",
          "name": "includeMergedResponse",
          "type": "boolean",
          "default": false,
          "description": "Whether to include a single output string merging all text parts of the response",
          "displayOptions": {
            "show": {
              "@version": [
                {
                  "_cnd": {
                    "gte": 1.1
                  }
                }
              ]
            }
          }
        },
        {
          "displayName": "System Message",
          "name": "systemMessage",
          "type": "string",
          "default": "",
          "placeholder": "e.g. You are a helpful assistant"
        },
        {
          "displayName": "Code Execution",
          "name": "codeExecution",
          "type": "boolean",
          "default": false,
          "description": "Whether to allow the model to execute code it generates to produce a response. Supported only by certain models.",
          "displayOptions": {
            "show": {
              "@version": [
                {
                  "_cnd": {
                    "eq": 1
                  }
                }
              ]
            }
          }
        },
        {
          "displayName": "Frequency Penalty",
          "name": "frequencyPenalty",
          "default": 0,
          "description": "Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim",
          "type": "number",
          "typeOptions": {
            "minValue": -2,
            "maxValue": 2,
            "numberPrecision": 1
          }
        },
        {
          "displayName": "Maximum Number of Tokens",
          "name": "maxOutputTokens",
          "default": 16,
          "description": "The maximum number of tokens to generate in the completion",
          "type": "number",
          "typeOptions": {
            "minValue": 1,
            "numberPrecision": 0
          }
        },
        {
          "displayName": "Number of Completions",
          "name": "candidateCount",
          "default": 1,
          "description": "How many completions to generate for each prompt",
          "type": "number",
          "typeOptions": {
            "minValue": 1,
            "maxValue": 8,
            "numberPrecision": 0
          }
        },
        {
          "displayName": "Presence Penalty",
          "name": "presencePenalty",
          "default": 0,
          "description": "Positive values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics",
          "type": "number",
          "typeOptions": {
            "minValue": -2,
            "maxValue": 2,
            "numberPrecision": 1
          }
        },
        {
          "displayName": "Output Randomness (Temperature)",
          "name": "temperature",
          "default": 1,
          "description": "Controls the randomness of the output. Lowering results in less random completions. As the temperature approaches zero, the model will become deterministic and repetitive",
          "type": "number",
          "typeOptions": {
            "minValue": 0,
            "maxValue": 2,
            "numberPrecision": 1
          }
        },
        {
          "displayName": "Output Randomness (Top P)",
          "name": "topP",
          "default": 1,
          "description": "The maximum cumulative probability of tokens to consider when sampling",
          "type": "number",
          "typeOptions": {
            "minValue": 0,
            "maxValue": 1,
            "numberPrecision": 1
          }
        },
        {
          "displayName": "Output Randomness (Top K)",
          "name": "topK",
          "default": 1,
          "description": "The maximum number of tokens to consider when sampling",
          "type": "number",
          "typeOptions": {
            "minValue": 1,
            "numberPrecision": 0
          }
        },
        {
          "displayName": "Thinking Budget",
          "name": "thinkingBudget",
          "type": "number",
          "default": -1,
          "description": "Controls reasoning tokens for thinking models. Set to 0 to disable automatic thinking. Set to -1 for dynamic thinking (default).",
          "typeOptions": {
            "minValue": -1,
            "numberPrecision": 0
          }
        },
        {
          "displayName": "Max Tool Calls Iterations",
          "name": "maxToolsIterations",
          "type": "number",
          "default": 15,
          "description": "The maximum number of tool iteration cycles the LLM will run before stopping. A single iteration can contain multiple tool calls. Set to 0 for no limit",
          "typeOptions": {
            "minValue": 0,
            "numberPrecision": 0
          }
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "message"
          ],
          "resource": [
            "text"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "generate",
      "options": [
        {
          "name": "Analyze Video",
          "value": "analyze",
          "action": "Analyze video",
          "description": "Take in videos and answer questions about them"
        },
        {
          "name": "Generate a Video",
          "value": "generate",
          "action": "Generate a video",
          "description": "Creates a video from a text prompt"
        },
        {
          "name": "Download Video",
          "value": "download",
          "action": "Download a video",
          "description": "Download a generated video from the Google Gemini API using a URL"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "video"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Model",
      "name": "modelId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "video"
          ]
        }
      },
      "modes": [
        {
          "displayName": "From List",
          "name": "list",
          "type": "list",
          "typeOptions": {
            "searchListMethod": "modelSearch",
            "searchable": true
          }
        },
        {
          "displayName": "ID",
          "name": "id",
          "type": "string",
          "placeholder": "e.g. models/gemini-2.5-flash"
        }
      ]
    },
    {
      "displayName": "Text Input",
      "name": "text",
      "type": "string",
      "default": "What's in this video?",
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "video"
          ]
        }
      },
      "typeOptions": {
        "rows": 2
      }
    },
    {
      "displayName": "Input Type",
      "name": "inputType",
      "type": "options",
      "default": "url",
      "options": [
        {
          "name": "Video URL(s)",
          "value": "url"
        },
        {
          "name": "Binary File(s)",
          "value": "binary"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "video"
          ]
        }
      }
    },
    {
      "displayName": "URL(s)",
      "name": "videoUrls",
      "type": "string",
      "default": "",
      "description": "URL(s) of the video(s) to analyze, multiple URLs can be added separated by comma",
      "displayOptions": {
        "show": {
          "inputType": [
            "url"
          ],
          "operation": [
            "analyze"
          ],
          "resource": [
            "video"
          ]
        }
      }
    },
    {
      "displayName": "Input Data Field Name(s)",
      "name": "binaryPropertyName",
      "type": "string",
      "default": "data",
      "description": "Name of the binary field(s) which contains the video(s), seperate multiple field names with commas",
      "displayOptions": {
        "show": {
          "inputType": [
            "binary"
          ],
          "operation": [
            "analyze"
          ],
          "resource": [
            "video"
          ]
        }
      }
    },
    {
      "displayName": "Simplify Output",
      "name": "simplify",
      "type": "boolean",
      "default": true,
      "description": "Whether to simplify the response or not",
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "video"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Length of Description (Max Tokens)",
          "description": "Fewer tokens will result in shorter, less detailed video description",
          "name": "maxOutputTokens",
          "type": "number",
          "default": 300,
          "typeOptions": {
            "minValue": 1
          }
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "video"
          ]
        }
      }
    },
    {
      "displayName": "URL",
      "name": "url",
      "type": "string",
      "default": "",
      "description": "The URL from Google Gemini API to download the video from",
      "displayOptions": {
        "show": {
          "operation": [
            "download"
          ],
          "resource": [
            "video"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Put Output in Field",
          "name": "binaryPropertyOutput",
          "type": "string",
          "default": "data",
          "hint": "The name of the output field to put the binary file data in"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "download"
          ],
          "resource": [
            "video"
          ]
        }
      }
    },
    {
      "displayName": "Model",
      "name": "modelId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "generate"
          ],
          "resource": [
            "video"
          ]
        }
      },
      "modes": [
        {
          "displayName": "From List",
          "name": "list",
          "type": "list",
          "typeOptions": {
            "searchListMethod": "videoGenerationModelSearch",
            "searchable": true
          }
        },
        {
          "displayName": "ID",
          "name": "id",
          "type": "string",
          "placeholder": "e.g. models/gemini-2.5-flash"
        }
      ]
    },
    {
      "displayName": "Prompt",
      "name": "prompt",
      "type": "string",
      "default": "",
      "description": "A text description of the desired video",
      "displayOptions": {
        "show": {
          "operation": [
            "generate"
          ],
          "resource": [
            "video"
          ]
        }
      },
      "typeOptions": {
        "rows": 2
      }
    },
    {
      "displayName": "Return As",
      "name": "returnAs",
      "type": "options",
      "default": "video",
      "description": "Whether to return the video as a binary file or a URL that can be used to download the video later",
      "options": [
        {
          "name": "Video",
          "value": "video"
        },
        {
          "name": "URL",
          "value": "url"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "generate"
          ],
          "resource": [
            "video"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Number of Videos",
          "name": "sampleCount",
          "type": "number",
          "default": 1,
          "description": "How many videos to generate",
          "typeOptions": {
            "minValue": 1,
            "maxValue": 4
          }
        },
        {
          "displayName": "Duration (Seconds)",
          "name": "durationSeconds",
          "type": "number",
          "default": 8,
          "description": "Length of the generated video in seconds. Supported only by certain models.",
          "typeOptions": {
            "minValue": 5,
            "maxValue": 8
          }
        },
        {
          "displayName": "Aspect Ratio",
          "name": "aspectRatio",
          "type": "options",
          "options": [
            {
              "name": "Widescreen (16:9)",
              "value": "16:9",
              "description": "Most common aspect ratio for televisions and monitors"
            },
            {
              "name": "Portrait (9:16)",
              "value": "9:16",
              "description": "Popular for short-form videos like YouTube Shorts"
            }
          ],
          "default": "16:9"
        },
        {
          "displayName": "Person Generation",
          "name": "personGeneration",
          "type": "options",
          "options": [
            {
              "name": "Don't Allow",
              "value": "dont_allow",
              "description": "Prevent generation of people in the video"
            },
            {
              "name": "Allow Adult",
              "value": "allow_adult",
              "description": "Allow generation of adult people in the video"
            },
            {
              "name": "Allow All",
              "value": "allow_all",
              "description": "Allow generation of all people in the video"
            }
          ],
          "default": "dont_allow"
        },
        {
          "displayName": "Put Output in Field",
          "name": "binaryPropertyOutput",
          "type": "string",
          "default": "data",
          "hint": "The name of the output field to put the binary file data in"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "generate"
          ],
          "resource": [
            "video"
          ]
        }
      }
    }
  ]

operations:
  [
    {
      "operation": "analyze",
      "name": "Analyze Audio",
      "description": "Take in audio and answer questions about it"
    },
    {
      "operation": "transcribe",
      "name": "Transcribe a Recording",
      "description": "Transcribes audio into the text"
    }
  ]


node_type: nodes-langchain.googleGemini
package_name: @n8n/n8n-nodes-langchain
display_name: Google Gemini
description: Interact with Google Gemini AI models
category: transform
development_style: programmatic
version: 1.1
credentials_required:
  [
  {
  "name": "googlePalmApi",
  "required": true
  }
  ]

outputs:
  [
  "main"
  ]

updated_at: 2026-03-04 11:46:58
properties_schema:
  [
    {
      "displayName": "Resource",
      "name": "resource",
      "type": "options",
      "default": "text",
      "options": [
        {
          "name": "Audio",
          "value": "audio"
        },
        {
          "name": "Document",
          "value": "document"
        },
        {
          "name": "File Search",
          "value": "fileSearch"
        },
        {
          "name": "Image",
          "value": "image"
        },
        {
          "name": "Media File",
          "value": "file"
        },
        {
          "name": "Text",
          "value": "text"
        },
        {
          "name": "Video",
          "value": "video"
        }
      ],
      "noDataExpression": true
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "transcribe",
      "options": [
        {
          "name": "Analyze Audio",
          "value": "analyze",
          "action": "Analyze audio",
          "description": "Take in audio and answer questions about it"
        },
        {
          "name": "Transcribe a Recording",
          "value": "transcribe",
          "action": "Transcribe a recording",
          "description": "Transcribes audio into the text"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "audio"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Model",
      "name": "modelId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "audio"
          ]
        }
      },
      "modes": [
        {
          "displayName": "From List",
          "name": "list",
          "type": "list",
          "typeOptions": {
            "searchListMethod": "audioModelSearch",
            "searchable": true
          }
        },
        {
          "displayName": "ID",
          "name": "id",
          "type": "string",
          "placeholder": "e.g. models/gemini-2.5-flash"
        }
      ]
    },
    {
      "displayName": "Text Input",
      "name": "text",
      "type": "string",
      "default": "What's in this audio?",
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "audio"
          ]
        }
      },
      "typeOptions": {
        "rows": 2
      }
    },
    {
      "displayName": "Input Type",
      "name": "inputType",
      "type": "options",
      "default": "url",
      "options": [
        {
          "name": "Audio URL(s)",
          "value": "url"
        },
        {
          "name": "Binary File(s)",
          "value": "binary"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "audio"
          ]
        }
      }
    },
    {
      "displayName": "URL(s)",
      "name": "audioUrls",
      "type": "string",
      "default": "",
      "description": "URL(s) of the audio(s) to analyze, multiple URLs can be added separated by comma",
      "displayOptions": {
        "show": {
          "inputType": [
            "url"
          ],
          "operation": [
            "analyze"
          ],
          "resource": [
            "audio"
          ]
        }
      }
    },
    {
      "displayName": "Input Data Field Name(s)",
      "name": "binaryPropertyName",
      "type": "string",
      "default": "data",
      "description": "Name of the binary field(s) which contains the audio(s), seperate multiple field names with commas",
      "displayOptions": {
        "show": {
          "inputType": [
            "binary"
          ],
          "operation": [
            "analyze"
          ],
          "resource": [
            "audio"
          ]
        }
      }
    },
    {
      "displayName": "Simplify Output",
      "name": "simplify",
      "type": "boolean",
      "default": true,
      "description": "Whether to simplify the response or not",
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "audio"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Length of Description (Max Tokens)",
          "description": "Fewer tokens will result in shorter, less detailed audio description",
          "name": "maxOutputTokens",
          "type": "number",
          "default": 300,
          "typeOptions": {
            "minValue": 1
          }
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "audio"
          ]
        }
      }
    },
    {
      "displayName": "Model",
      "name": "modelId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "transcribe"
          ],
          "resource": [
            "audio"
          ]
        }
      },
      "modes": [
        {
          "displayName": "From List",
          "name": "list",
          "type": "list",
          "typeOptions": {
            "searchListMethod": "audioModelSearch",
            "searchable": true
          }
        },
        {
          "displayName": "ID",
          "name": "id",
          "type": "string",
          "placeholder": "e.g. models/gemini-2.5-flash"
        }
      ]
    },
    {
      "displayName": "Input Type",
      "name": "inputType",
      "type": "options",
      "default": "url",
      "options": [
        {
          "name": "Audio URL(s)",
          "value": "url"
        },
        {
          "name": "Binary File(s)",
          "value": "binary"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "transcribe"
          ],
          "resource": [
            "audio"
          ]
        }
      }
    },
    {
      "displayName": "URL(s)",
      "name": "audioUrls",
      "type": "string",
      "default": "",
      "description": "URL(s) of the audio(s) to transcribe, multiple URLs can be added separated by comma",
      "displayOptions": {
        "show": {
          "inputType": [
            "url"
          ],
          "operation": [
            "transcribe"
          ],
          "resource": [
            "audio"
          ]
        }
      }
    },
    {
      "displayName": "Input Data Field Name(s)",
      "name": "binaryPropertyName",
      "type": "string",
      "default": "data",
      "description": "Name of the binary field(s) which contains the audio(s), seperate multiple field names with commas",
      "displayOptions": {
        "show": {
          "inputType": [
            "binary"
          ],
          "operation": [
            "transcribe"
          ],
          "resource": [
            "audio"
          ]
        }
      }
    },
    {
      "displayName": "Simplify Output",
      "name": "simplify",
      "type": "boolean",
      "default": true,
      "description": "Whether to simplify the response or not",
      "displayOptions": {
        "show": {
          "operation": [
            "transcribe"
          ],
          "resource": [
            "audio"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Start Time",
          "name": "startTime",
          "type": "string",
          "default": "",
          "description": "The start time of the audio in MM:SS or HH:MM:SS format",
          "placeholder": "e.g. 00:15"
        },
        {
          "displayName": "End Time",
          "name": "endTime",
          "type": "string",
          "default": "",
          "description": "The end time of the audio in MM:SS or HH:MM:SS format",
          "placeholder": "e.g. 02:15"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "transcribe"
          ],
          "resource": [
            "audio"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "analyze",
      "options": [
        {
          "name": "Analyze Document",
          "value": "analyze",
          "action": "Analyze document",
          "description": "Take in documents and answer questions about them"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "document"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Model",
      "name": "modelId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "document"
          ]
        }
      },
      "modes": [
        {
          "displayName": "From List",
          "name": "list",
          "type": "list",
          "typeOptions": {
            "searchListMethod": "modelSearch",
            "searchable": true
          }
        },
        {
          "displayName": "ID",
          "name": "id",
          "type": "string",
          "placeholder": "e.g. models/gemini-2.5-flash"
        }
      ]
    },
    {
      "displayName": "Text Input",
      "name": "text",
      "type": "string",
      "default": "What's in this document?",
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "document"
          ]
        }
      },
      "typeOptions": {
        "rows": 2
      }
    },
    {
      "displayName": "Input Type",
      "name": "inputType",
      "type": "options",
      "default": "url",
      "options": [
        {
          "name": "Document URL(s)",
          "value": "url"
        },
        {
          "name": "Binary File(s)",
          "value": "binary"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "document"
          ]
        }
      }
    },
    {
      "displayName": "URL(s)",
      "name": "documentUrls",
      "type": "string",
      "default": "",
      "description": "URL(s) of the document(s) to analyze, multiple URLs can be added separated by comma",
      "displayOptions": {
        "show": {
          "inputType": [
            "url"
          ],
          "operation": [
            "analyze"
          ],
          "resource": [
            "document"
          ]
        }
      }
    },
    {
      "displayName": "Input Data Field Name(s)",
      "name": "binaryPropertyName",
      "type": "string",
      "default": "data",
      "description": "Name of the binary field(s) which contains the document(s), seperate multiple field names with commas",
      "displayOptions": {
        "show": {
          "inputType": [
            "binary"
          ],
          "operation": [
            "analyze"
          ],
          "resource": [
            "document"
          ]
        }
      }
    },
    {
      "displayName": "Simplify Output",
      "name": "simplify",
      "type": "boolean",
      "default": true,
      "description": "Whether to simplify the response or not",
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "document"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Length of Description (Max Tokens)",
          "description": "Fewer tokens will result in shorter, less detailed document description",
          "name": "maxOutputTokens",
          "type": "number",
          "default": 300,
          "typeOptions": {
            "minValue": 1
          }
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "document"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "upload",
      "options": [
        {
          "name": "Upload Media File",
          "value": "upload",
          "action": "Upload a media file",
          "description": "Upload a file to the Google Gemini API for later use"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Input Type",
      "name": "inputType",
      "type": "options",
      "default": "url",
      "options": [
        {
          "name": "File URL",
          "value": "url"
        },
        {
          "name": "Binary File",
          "value": "binary"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "upload"
          ],
          "resource": [
            "file"
          ]
        }
      }
    },
    {
      "displayName": "URL",
      "name": "fileUrl",
      "type": "string",
      "default": "",
      "description": "URL of the file to upload",
      "displayOptions": {
        "show": {
          "inputType": [
            "url"
          ],
          "operation": [
            "upload"
          ],
          "resource": [
            "file"
          ]
        }
      }
    },
    {
      "displayName": "Input Data Field Name",
      "name": "binaryPropertyName",
      "type": "string",
      "default": "data",
      "description": "Name of the binary property which contains the file",
      "displayOptions": {
        "show": {
          "inputType": [
            "binary"
          ],
          "operation": [
            "upload"
          ],
          "resource": [
            "file"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "createStore",
      "options": [
        {
          "name": "Create File Search Store",
          "value": "createStore",
          "action": "Create a File Search store",
          "description": "Create a new File Search store for RAG (Retrieval Augmented Generation)"
        },
        {
          "name": "Delete File Search Store",
          "value": "deleteStore",
          "action": "Delete a File Search store",
          "description": "Delete a File Search store"
        },
        {
          "name": "List File Search Stores",
          "value": "listStores",
          "action": "List all File Search stores",
          "description": "List all File Search stores owned by the user"
        },
        {
          "name": "Upload to File Search Store",
          "value": "uploadToStore",
          "action": "Upload a file to a File Search store",
          "description": "Upload a file to a File Search store for RAG (Retrieval Augmented Generation)"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "fileSearch"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Display Name",
      "name": "displayName",
      "type": "string",
      "default": "",
      "description": "A human-readable name for the File Search store",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "createStore"
          ],
          "resource": [
            "fileSearch"
          ]
        }
      }
    },
    {
      "displayName": "File Search Store Name",
      "name": "fileSearchStoreName",
      "type": "string",
      "default": "",
      "description": "The full name of the File Search store to delete (format: fileSearchStores/...)",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "deleteStore"
          ],
          "resource": [
            "fileSearch"
          ]
        }
      }
    },
    {
      "displayName": "Force Delete",
      "name": "force",
      "type": "boolean",
      "default": false,
      "description": "Whether to delete related Documents and objects. If false, deletion will fail if the store contains any Documents.",
      "displayOptions": {
        "show": {
          "operation": [
            "deleteStore"
          ],
          "resource": [
            "fileSearch"
          ]
        }
      }
    },
    {
      "displayName": "Page Size",
      "name": "pageSize",
      "type": "number",
      "default": 10,
      "description": "Maximum number of File Search stores to return per page (max 20)",
      "displayOptions": {
        "show": {
          "operation": [
            "listStores"
          ],
          "resource": [
            "fileSearch"
          ]
        }
      },
      "typeOptions": {
        "minValue": 1,
        "maxValue": 20
      }
    },
    {
      "displayName": "Page Token",
      "name": "pageToken",
      "type": "string",
      "default": "",
      "description": "Token from a previous page to retrieve the next page of results",
      "displayOptions": {
        "show": {
          "operation": [
            "listStores"
          ],
          "resource": [
            "fileSearch"
          ]
        }
      }
    },
    {
      "displayName": "File Search Store Name",
      "name": "fileSearchStoreName",
      "type": "string",
      "default": "",
      "description": "The full name of the File Search store to upload to (format: fileSearchStores/...)",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "uploadToStore"
          ],
          "resource": [
            "fileSearch"
          ]
        }
      }
    },
    {
      "displayName": "File Display Name",
      "name": "displayName",
      "type": "string",
      "default": "",
      "description": "A human-readable name for the file (will be visible in citations)",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "uploadToStore"
          ],
          "resource": [
            "fileSearch"
          ]
        }
      }
    },
    {
      "displayName": "Input Type",
      "name": "inputType",
      "type": "options",
      "default": "url",
      "options": [
        {
          "name": "File URL",
          "value": "url"
        },
        {
          "name": "Binary File",
          "value": "binary"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "uploadToStore"
          ],
          "resource": [
            "fileSearch"
          ]
        }
      }
    },
    {
      "displayName": "URL",
      "name": "fileUrl",
      "type": "string",
      "default": "",
      "description": "URL of the file to upload",
      "displayOptions": {
        "show": {
          "inputType": [
            "url"
          ],
          "operation": [
            "uploadToStore"
          ],
          "resource": [
            "fileSearch"
          ]
        }
      }
    },
    {
      "displayName": "Input Data Field Name",
      "name": "binaryPropertyName",
      "type": "string",
      "default": "data",
      "description": "Name of the binary property which contains the file",
      "displayOptions": {
        "show": {
          "inputType": [
            "binary"
          ],
          "operation": [
            "uploadToStore"
          ],
          "resource": [
            "fileSearch"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "generate",
      "options": [
        {
          "name": "Analyze Image",
          "value": "analyze",
          "action": "Analyze an image",
          "description": "Take in images and answer questions about them"
        },
        {
          "name": "Generate an Image",
          "value": "generate",
          "action": "Generate an image",
          "description": "Creates an image from a text prompt"
        },
        {
          "name": "Edit Image",
          "value": "edit",
          "action": "Edit an image",
          "description": "Upload one or more images and apply edits based on a prompt"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "image"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Model",
      "name": "modelId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "image"
          ]
        }
      },
      "modes": [
        {
          "displayName": "From List",
          "name": "list",
          "type": "list",
          "typeOptions": {
            "searchListMethod": "modelSearch",
            "searchable": true
          }
        },
        {
          "displayName": "ID",
          "name": "id",
          "type": "string",
          "placeholder": "e.g. models/gemini-2.5-flash"
        }
      ]
    },
    {
      "displayName": "Text Input",
      "name": "text",
      "type": "string",
      "default": "What's in this image?",
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "image"
          ]
        }
      },
      "typeOptions": {
        "rows": 2
      }
    },
    {
      "displayName": "Input Type",
      "name": "inputType",
      "type": "options",
      "default": "url",
      "options": [
        {
          "name": "Image URL(s)",
          "value": "url"
        },
        {
          "name": "Binary File(s)",
          "value": "binary"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "image"
          ]
        }
      }
    },
    {
      "displayName": "URL(s)",
      "name": "imageUrls",
      "type": "string",
      "default": "",
      "description": "URL(s) of the image(s) to analyze, multiple URLs can be added separated by comma",
      "displayOptions": {
        "show": {
          "inputType": [
            "url"
          ],
          "operation": [
            "analyze"
          ],
          "resource": [
            "image"
          ]
        }
      }
    },
    {
      "displayName": "Input Data Field Name(s)",
      "name": "binaryPropertyName",
      "type": "string",
      "default": "data",
      "description": "Name of the binary field(s) which contains the image(s), separate multiple field names with commas",
      "displayOptions": {
        "show": {
          "inputType": [
            "binary"
          ],
          "operation": [
            "analyze"
          ],
          "resource": [
            "image"
          ]
        }
      }
    },
    {
      "displayName": "Simplify Output",
      "name": "simplify",
      "type": "boolean",
      "default": true,
      "description": "Whether to simplify the response or not",
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "image"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Length of Description (Max Tokens)",
          "description": "Fewer tokens will result in shorter, less detailed image description",
          "name": "maxOutputTokens",
          "type": "number",
          "default": 300,
          "typeOptions": {
            "minValue": 1
          }
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "image"
          ]
        }
      }
    },
    {
      "displayName": "Model",
      "name": "modelId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "edit"
          ],
          "resource": [
            "image"
          ]
        }
      },
      "modes": [
        {
          "displayName": "From List",
          "name": "list",
          "type": "list",
          "typeOptions": {
            "searchListMethod": "imageEditModelSearch",
            "searchable": true
          }
        },
        {
          "displayName": "ID",
          "name": "id",
          "type": "string",
          "placeholder": "e.g. models/gemini-2.5-flash"
        }
      ]
    },
    {
      "displayName": "Prompt",
      "name": "prompt",
      "type": "string",
      "default": "",
      "description": "Instruction describing how to edit the image",
      "displayOptions": {
        "show": {
          "operation": [
            "edit"
          ],
          "resource": [
            "image"
          ]
        }
      },
      "typeOptions": {
        "rows": 2
      }
    },
    {
      "displayName": "Images",
      "name": "images",
      "type": "fixedCollection",
      "default": {
        "values": [
          {
            "binaryPropertyName": "data"
          }
        ]
      },
      "description": "Add one or more binary fields to include images with your prompt",
      "options": [
        {
          "displayName": "Image",
          "name": "values",
          "values": [
            {
              "displayName": "Binary Field Name",
              "name": "binaryPropertyName",
              "type": "string",
              "default": "data",
              "placeholder": "e.g. data",
              "description": "The name of the binary field containing the image data"
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "edit"
          ],
          "resource": [
            "image"
          ]
        }
      },
      "typeOptions": {
        "multipleValues": true,
        "multipleValueButtonText": "Add Image"
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Put Output in Field",
          "name": "binaryPropertyOutput",
          "type": "string",
          "default": "edited",
          "hint": "The name of the output field to put the binary file data in"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "edit"
          ],
          "resource": [
            "image"
          ]
        }
      }
    },
    {
      "displayName": "Model",
      "name": "modelId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "generate"
          ],
          "resource": [
            "image"
          ]
        }
      },
      "modes": [
        {
          "displayName": "From List",
          "name": "list",
          "type": "list",
          "typeOptions": {
            "searchListMethod": "imageGenerationModelSearch",
            "searchable": true
          }
        },
        {
          "displayName": "ID",
          "name": "id",
          "type": "string",
          "placeholder": "e.g. models/gemini-2.5-flash"
        }
      ]
    },
    {
      "displayName": "Prompt",
      "name": "prompt",
      "type": "string",
      "default": "",
      "description": "A text description of the desired image(s)",
      "displayOptions": {
        "show": {
          "operation": [
            "generate"
          ],
          "resource": [
            "image"
          ]
        }
      },
      "typeOptions": {
        "rows": 2
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Number of Images",
          "name": "sampleCount",
          "default": 1,
          "description": "Number of images to generate. Not supported by Gemini models, supported by Imagen models.",
          "type": "number",
          "typeOptions": {
            "minValue": 1
          }
        },
        {
          "displayName": "Put Output in Field",
          "name": "binaryPropertyOutput",
          "type": "string",
          "default": "data",
          "hint": "The name of the output field to put the binary file data in"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "generate"
          ],
          "resource": [
            "image"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "message",
      "options": [
        {
          "name": "Message a Model",
          "value": "message",
          "action": "Message a model",
          "description": "Create a completion with Google Gemini model"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "text"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Model",
      "name": "modelId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "message"
          ],
          "resource": [
            "text"
          ]
        }
      },
      "modes": [
        {
          "displayName": "From List",
          "name": "list",
          "type": "list",
          "typeOptions": {
            "searchListMethod": "modelSearch",
            "searchable": true
          }
        },
        {
          "displayName": "ID",
          "name": "id",
          "type": "string",
          "placeholder": "e.g. models/gemini-2.5-flash"
        }
      ]
    },
    {
      "displayName": "Messages",
      "name": "messages",
      "type": "fixedCollection",
      "default": {
        "values": [
          {
            "content": ""
          }
        ]
      },
      "options": [
        {
          "displayName": "Values",
          "name": "values",
          "values": [
            {
              "displayName": "Prompt",
              "name": "content",
              "type": "string",
              "description": "The content of the message to be send",
              "default": "",
              "placeholder": "e.g. Hello, how can you help me?",
              "typeOptions": {
                "rows": 2
              }
            },
            {
              "displayName": "Role",
              "name": "role",
              "type": "options",
              "description": "Role in shaping the model's response, it tells the model how it should behave and interact with the user",
              "options": [
                {
                  "name": "User",
                  "value": "user",
                  "description": "Send a message as a user and get a response from the model"
                },
                {
                  "name": "Model",
                  "value": "model",
                  "description": "Tell the model to adopt a specific tone or personality"
                }
              ],
              "default": "user"
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "message"
          ],
          "resource": [
            "text"
          ]
        }
      },
      "typeOptions": {
        "sortable": true,
        "multipleValues": true
      }
    },
    {
      "displayName": "Simplify Output",
      "name": "simplify",
      "type": "boolean",
      "default": true,
      "description": "Whether to return a simplified version of the response instead of the raw data",
      "displayOptions": {
        "show": {
          "operation": [
            "message"
          ],
          "resource": [
            "text"
          ]
        }
      }
    },
    {
      "displayName": "Output Content as JSON",
      "name": "jsonOutput",
      "type": "boolean",
      "default": false,
      "description": "Whether to attempt to return the response in JSON format",
      "displayOptions": {
        "show": {
          "operation": [
            "message"
          ],
          "resource": [
            "text"
          ]
        }
      }
    },
    {
      "displayName": "Built-in Tools",
      "name": "builtInTools",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Google Search",
          "name": "googleSearch",
          "type": "boolean",
          "default": true,
          "description": "Whether to allow the model to search the web using Google Search to get real-time information"
        },
        {
          "displayName": "Google Maps",
          "name": "googleMaps",
          "type": "collection",
          "default": {
            "latitude": "",
            "longitude": ""
          },
          "options": [
            {
              "displayName": "Latitude",
              "name": "latitude",
              "type": "number",
              "default": "",
              "description": "The latitude coordinate for location-based queries",
              "typeOptions": {
                "numberPrecision": 6
              }
            },
            {
              "displayName": "Longitude",
              "name": "longitude",
              "type": "number",
              "default": "",
              "description": "The longitude coordinate for location-based queries",
              "typeOptions": {
                "numberPrecision": 6
              }
            }
          ]
        },
        {
          "displayName": "URL Context",
          "name": "urlContext",
          "type": "boolean",
          "default": true,
          "description": "Whether to allow the model to read and analyze content from specific URLs"
        },
        {
          "displayName": "File Search",
          "name": "fileSearch",
          "type": "collection",
          "default": {
            "fileSearchStoreNames": "[]"
          },
          "options": [
            {
              "displayName": "File Search Store Names",
              "name": "fileSearchStoreNames",
              "description": "The file search store names to use for the file search. File search stores are managed via Google AI Studio.",
              "type": "json",
              "default": "[]",
              "required": true
            },
            {
              "displayName": "Metadata Filter",
              "name": "metadataFilter",
              "type": "string",
              "default": "",
              "description": "Use metadata filter to search within a subset of documents. Example: author=\"Robert Graves\".",
              "placeholder": "e.g. author=\"John Doe\""
            }
          ]
        },
        {
          "displayName": "Code Execution",
          "name": "codeExecution",
          "type": "boolean",
          "default": true,
          "description": "Whether to allow the model to execute code it generates to produce a response. Supported only by certain models."
        }
      ],
      "displayOptions": {
        "show": {
          "@version": [
            {
              "_cnd": {
                "gte": 1.1
              }
            }
          ],
          "operation": [
            "message"
          ],
          "resource": [
            "text"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Include Merged Response",
          "name": "includeMergedResponse",
          "type": "boolean",
          "default": false,
          "description": "Whether to include a single output string merging all text parts of the response",
          "displayOptions": {
            "show": {
              "@version": [
                {
                  "_cnd": {
                    "gte": 1.1
                  }
                }
              ]
            }
          }
        },
        {
          "displayName": "System Message",
          "name": "systemMessage",
          "type": "string",
          "default": "",
          "placeholder": "e.g. You are a helpful assistant"
        },
        {
          "displayName": "Code Execution",
          "name": "codeExecution",
          "type": "boolean",
          "default": false,
          "description": "Whether to allow the model to execute code it generates to produce a response. Supported only by certain models.",
          "displayOptions": {
            "show": {
              "@version": [
                {
                  "_cnd": {
                    "eq": 1
                  }
                }
              ]
            }
          }
        },
        {
          "displayName": "Frequency Penalty",
          "name": "frequencyPenalty",
          "default": 0,
          "description": "Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim",
          "type": "number",
          "typeOptions": {
            "minValue": -2,
            "maxValue": 2,
            "numberPrecision": 1
          }
        },
        {
          "displayName": "Maximum Number of Tokens",
          "name": "maxOutputTokens",
          "default": 16,
          "description": "The maximum number of tokens to generate in the completion",
          "type": "number",
          "typeOptions": {
            "minValue": 1,
            "numberPrecision": 0
          }
        },
        {
          "displayName": "Number of Completions",
          "name": "candidateCount",
          "default": 1,
          "description": "How many completions to generate for each prompt",
          "type": "number",
          "typeOptions": {
            "minValue": 1,
            "maxValue": 8,
            "numberPrecision": 0
          }
        },
        {
          "displayName": "Presence Penalty",
          "name": "presencePenalty",
          "default": 0,
          "description": "Positive values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics",
          "type": "number",
          "typeOptions": {
            "minValue": -2,
            "maxValue": 2,
            "numberPrecision": 1
          }
        },
        {
          "displayName": "Output Randomness (Temperature)",
          "name": "temperature",
          "default": 1,
          "description": "Controls the randomness of the output. Lowering results in less random completions. As the temperature approaches zero, the model will become deterministic and repetitive",
          "type": "number",
          "typeOptions": {
            "minValue": 0,
            "maxValue": 2,
            "numberPrecision": 1
          }
        },
        {
          "displayName": "Output Randomness (Top P)",
          "name": "topP",
          "default": 1,
          "description": "The maximum cumulative probability of tokens to consider when sampling",
          "type": "number",
          "typeOptions": {
            "minValue": 0,
            "maxValue": 1,
            "numberPrecision": 1
          }
        },
        {
          "displayName": "Output Randomness (Top K)",
          "name": "topK",
          "default": 1,
          "description": "The maximum number of tokens to consider when sampling",
          "type": "number",
          "typeOptions": {
            "minValue": 1,
            "numberPrecision": 0
          }
        },
        {
          "displayName": "Thinking Budget",
          "name": "thinkingBudget",
          "type": "number",
          "default": -1,
          "description": "Controls reasoning tokens for thinking models. Set to 0 to disable automatic thinking. Set to -1 for dynamic thinking (default).",
          "typeOptions": {
            "minValue": -1,
            "numberPrecision": 0
          }
        },
        {
          "displayName": "Max Tool Calls Iterations",
          "name": "maxToolsIterations",
          "type": "number",
          "default": 15,
          "description": "The maximum number of tool iteration cycles the LLM will run before stopping. A single iteration can contain multiple tool calls. Set to 0 for no limit",
          "typeOptions": {
            "minValue": 0,
            "numberPrecision": 0
          }
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "message"
          ],
          "resource": [
            "text"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "generate",
      "options": [
        {
          "name": "Analyze Video",
          "value": "analyze",
          "action": "Analyze video",
          "description": "Take in videos and answer questions about them"
        },
        {
          "name": "Generate a Video",
          "value": "generate",
          "action": "Generate a video",
          "description": "Creates a video from a text prompt"
        },
        {
          "name": "Download Video",
          "value": "download",
          "action": "Download a video",
          "description": "Download a generated video from the Google Gemini API using a URL"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "video"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Model",
      "name": "modelId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "video"
          ]
        }
      },
      "modes": [
        {
          "displayName": "From List",
          "name": "list",
          "type": "list",
          "typeOptions": {
            "searchListMethod": "modelSearch",
            "searchable": true
          }
        },
        {
          "displayName": "ID",
          "name": "id",
          "type": "string",
          "placeholder": "e.g. models/gemini-2.5-flash"
        }
      ]
    },
    {
      "displayName": "Text Input",
      "name": "text",
      "type": "string",
      "default": "What's in this video?",
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "video"
          ]
        }
      },
      "typeOptions": {
        "rows": 2
      }
    },
    {
      "displayName": "Input Type",
      "name": "inputType",
      "type": "options",
      "default": "url",
      "options": [
        {
          "name": "Video URL(s)",
          "value": "url"
        },
        {
          "name": "Binary File(s)",
          "value": "binary"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "video"
          ]
        }
      }
    },
    {
      "displayName": "URL(s)",
      "name": "videoUrls",
      "type": "string",
      "default": "",
      "description": "URL(s) of the video(s) to analyze, multiple URLs can be added separated by comma",
      "displayOptions": {
        "show": {
          "inputType": [
            "url"
          ],
          "operation": [
            "analyze"
          ],
          "resource": [
            "video"
          ]
        }
      }
    },
    {
      "displayName": "Input Data Field Name(s)",
      "name": "binaryPropertyName",
      "type": "string",
      "default": "data",
      "description": "Name of the binary field(s) which contains the video(s), seperate multiple field names with commas",
      "displayOptions": {
        "show": {
          "inputType": [
            "binary"
          ],
          "operation": [
            "analyze"
          ],
          "resource": [
            "video"
          ]
        }
      }
    },
    {
      "displayName": "Simplify Output",
      "name": "simplify",
      "type": "boolean",
      "default": true,
      "description": "Whether to simplify the response or not",
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "video"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Length of Description (Max Tokens)",
          "description": "Fewer tokens will result in shorter, less detailed video description",
          "name": "maxOutputTokens",
          "type": "number",
          "default": 300,
          "typeOptions": {
            "minValue": 1
          }
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "video"
          ]
        }
      }
    },
    {
      "displayName": "URL",
      "name": "url",
      "type": "string",
      "default": "",
      "description": "The URL from Google Gemini API to download the video from",
      "displayOptions": {
        "show": {
          "operation": [
            "download"
          ],
          "resource": [
            "video"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Put Output in Field",
          "name": "binaryPropertyOutput",
          "type": "string",
          "default": "data",
          "hint": "The name of the output field to put the binary file data in"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "download"
          ],
          "resource": [
            "video"
          ]
        }
      }
    },
    {
      "displayName": "Model",
      "name": "modelId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "generate"
          ],
          "resource": [
            "video"
          ]
        }
      },
      "modes": [
        {
          "displayName": "From List",
          "name": "list",
          "type": "list",
          "typeOptions": {
            "searchListMethod": "videoGenerationModelSearch",
            "searchable": true
          }
        },
        {
          "displayName": "ID",
          "name": "id",
          "type": "string",
          "placeholder": "e.g. models/gemini-2.5-flash"
        }
      ]
    },
    {
      "displayName": "Prompt",
      "name": "prompt",
      "type": "string",
      "default": "",
      "description": "A text description of the desired video",
      "displayOptions": {
        "show": {
          "operation": [
            "generate"
          ],
          "resource": [
            "video"
          ]
        }
      },
      "typeOptions": {
        "rows": 2
      }
    },
    {
      "displayName": "Return As",
      "name": "returnAs",
      "type": "options",
      "default": "video",
      "description": "Whether to return the video as a binary file or a URL that can be used to download the video later",
      "options": [
        {
          "name": "Video",
          "value": "video"
        },
        {
          "name": "URL",
          "value": "url"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "generate"
          ],
          "resource": [
            "video"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Number of Videos",
          "name": "sampleCount",
          "type": "number",
          "default": 1,
          "description": "How many videos to generate",
          "typeOptions": {
            "minValue": 1,
            "maxValue": 4
          }
        },
        {
          "displayName": "Duration (Seconds)",
          "name": "durationSeconds",
          "type": "number",
          "default": 8,
          "description": "Length of the generated video in seconds. Supported only by certain models.",
          "typeOptions": {
            "minValue": 5,
            "maxValue": 8
          }
        },
        {
          "displayName": "Aspect Ratio",
          "name": "aspectRatio",
          "type": "options",
          "options": [
            {
              "name": "Widescreen (16:9)",
              "value": "16:9",
              "description": "Most common aspect ratio for televisions and monitors"
            },
            {
              "name": "Portrait (9:16)",
              "value": "9:16",
              "description": "Popular for short-form videos like YouTube Shorts"
            }
          ],
          "default": "16:9"
        },
        {
          "displayName": "Person Generation",
          "name": "personGeneration",
          "type": "options",
          "options": [
            {
              "name": "Don't Allow",
              "value": "dont_allow",
              "description": "Prevent generation of people in the video"
            },
            {
              "name": "Allow Adult",
              "value": "allow_adult",
              "description": "Allow generation of adult people in the video"
            },
            {
              "name": "Allow All",
              "value": "allow_all",
              "description": "Allow generation of all people in the video"
            }
          ],
          "default": "dont_allow"
        },
        {
          "displayName": "Put Output in Field",
          "name": "binaryPropertyOutput",
          "type": "string",
          "default": "data",
          "hint": "The name of the output field to put the binary file data in"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "generate"
          ],
          "resource": [
            "video"
          ]
        }
      }
    }
  ]

operations:
  [
    {
      "operation": "analyze",
      "name": "Analyze Audio",
      "description": "Take in audio and answer questions about it"
    },
    {
      "operation": "transcribe",
      "name": "Transcribe a Recording",
      "description": "Transcribes audio into the text"
    }
  ]


node_type: nodes-langchain.ollamaTool
package_name: @n8n/n8n-nodes-langchain
display_name: Ollama Tool
description: Interact with Ollama AI models (AI Tool variant for use with AI Agents)
category: transform
development_style: programmatic
version: 1
credentials_required:
  [
  {
  "name": "ollamaApi",
  "required": true
  }
  ]

outputs:
  [
  {
  "type": "ai_tool",
  "displayName": "Tool"
  }
  ]

output_names:
  [
  "Tool"
  ]

updated_at: 2026-03-04 11:46:58
tool_variant_of: nodes-langchain.ollama
properties_schema:
  [
    {
      "displayName": "Tool Description",
      "name": "toolDescription",
      "type": "string",
      "default": "",
      "required": false,
      "description": "Description for the AI to understand what this tool does and when to use it",
      "typeOptions": {
        "rows": 3
      },
      "placeholder": "e.g., Use this tool to interact with Ollama"
    },
    {
      "displayName": "Resource",
      "name": "resource",
      "type": "options",
      "default": "text",
      "options": [
        {
          "name": "Image",
          "value": "image"
        },
        {
          "name": "Text",
          "value": "text"
        }
      ],
      "noDataExpression": true
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "analyze",
      "options": [
        {
          "name": "Analyze Image",
          "value": "analyze",
          "action": "Analyze image",
          "description": "Take in images and answer questions about them"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "image"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Model",
      "name": "modelId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "image"
          ]
        }
      },
      "modes": [
        {
          "displayName": "From List",
          "name": "list",
          "type": "list",
          "typeOptions": {
            "searchListMethod": "modelSearch",
            "searchable": true
          }
        },
        {
          "displayName": "ID",
          "name": "id",
          "type": "string",
          "placeholder": "e.g. llava, llama3.2-vision"
        }
      ]
    },
    {
      "displayName": "Text Input",
      "name": "text",
      "type": "string",
      "default": "What's in this image?",
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "image"
          ]
        }
      },
      "typeOptions": {
        "rows": 2
      }
    },
    {
      "displayName": "Input Type",
      "name": "inputType",
      "type": "options",
      "default": "binary",
      "options": [
        {
          "name": "Binary File(s)",
          "value": "binary"
        },
        {
          "name": "Image URL(s)",
          "value": "url"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "image"
          ]
        }
      }
    },
    {
      "displayName": "Input Data Field Name(s)",
      "name": "binaryPropertyName",
      "type": "string",
      "default": "data",
      "description": "Name of the binary field(s) which contains the image(s), separate multiple field names with commas",
      "displayOptions": {
        "show": {
          "inputType": [
            "binary"
          ],
          "operation": [
            "analyze"
          ],
          "resource": [
            "image"
          ]
        }
      }
    },
    {
      "displayName": "URL(s)",
      "name": "imageUrls",
      "type": "string",
      "default": "",
      "description": "URL(s) of the image(s) to analyze, multiple URLs can be added separated by comma",
      "displayOptions": {
        "show": {
          "inputType": [
            "url"
          ],
          "operation": [
            "analyze"
          ],
          "resource": [
            "image"
          ]
        }
      }
    },
    {
      "displayName": "Simplify Output",
      "name": "simplify",
      "type": "boolean",
      "default": true,
      "description": "Whether to simplify the response or not",
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "image"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "System Message",
          "name": "system",
          "type": "string",
          "default": "",
          "placeholder": "e.g. You are a helpful assistant.",
          "description": "System message to set the context for the conversation",
          "typeOptions": {
            "rows": 2
          }
        },
        {
          "displayName": "Temperature",
          "name": "temperature",
          "type": "number",
          "default": 0.8,
          "typeOptions": {
            "minValue": 0,
            "maxValue": 2,
            "numberPrecision": 2
          },
          "description": "Controls randomness in responses. Lower values make output more focused."
        },
        {
          "displayName": "Output Randomness (Top P)",
          "name": "top_p",
          "default": 0.7,
          "description": "The maximum cumulative probability of tokens to consider when sampling",
          "type": "number",
          "typeOptions": {
            "minValue": 0,
            "maxValue": 1,
            "numberPrecision": 1
          }
        },
        {
          "displayName": "Top K",
          "name": "top_k",
          "type": "number",
          "default": 40,
          "typeOptions": {
            "minValue": 1
          },
          "description": "Controls diversity by limiting the number of top tokens to consider"
        },
        {
          "displayName": "Max Tokens",
          "name": "num_predict",
          "type": "number",
          "default": 1024,
          "typeOptions": {
            "minValue": 1,
            "numberPrecision": 0
          },
          "description": "Maximum number of tokens to generate in the completion"
        },
        {
          "displayName": "Frequency Penalty",
          "name": "frequency_penalty",
          "type": "number",
          "default": 0,
          "typeOptions": {
            "minValue": 0,
            "numberPrecision": 2
          },
          "description": "Adjusts the penalty for tokens that have already appeared in the generated text. Higher values discourage repetition."
        },
        {
          "displayName": "Presence Penalty",
          "name": "presence_penalty",
          "type": "number",
          "default": 0,
          "typeOptions": {
            "numberPrecision": 2
          },
          "description": "Adjusts the penalty for tokens based on their presence in the generated text so far. Positive values penalize tokens that have already appeared, encouraging diversity."
        },
        {
          "displayName": "Repetition Penalty",
          "name": "repeat_penalty",
          "type": "number",
          "default": 1.1,
          "typeOptions": {
            "minValue": 0,
            "numberPrecision": 2
          },
          "description": "Sets how strongly to penalize repetitions. A higher value (e.g., 1.5) will penalize repetitions more strongly, while a lower value (e.g., 0.9) will be more lenient."
        },
        {
          "displayName": "Context Length",
          "name": "num_ctx",
          "type": "number",
          "default": 4096,
          "typeOptions": {
            "minValue": 1,
            "numberPrecision": 0
          },
          "description": "Sets the size of the context window used to generate the next token"
        },
        {
          "displayName": "Repeat Last N",
          "name": "repeat_last_n",
          "type": "number",
          "default": 64,
          "typeOptions": {
            "minValue": -1,
            "numberPrecision": 0
          },
          "description": "Sets how far back for the model to look back to prevent repetition. (0 = disabled, -1 = num_ctx)."
        },
        {
          "displayName": "Min P",
          "name": "min_p",
          "type": "number",
          "default": 0,
          "typeOptions": {
            "minValue": 0,
            "maxValue": 1,
            "numberPrecision": 3
          },
          "description": "Alternative to the top_p, and aims to ensure a balance of quality and variety. The parameter p represents the minimum probability for a token to be considered, relative to the probability of the most likely token."
        },
        {
          "displayName": "Seed",
          "name": "seed",
          "type": "number",
          "default": 0,
          "typeOptions": {
            "minValue": 0,
            "numberPrecision": 0
          },
          "description": "Sets the random number seed to use for generation. Setting this to a specific number will make the model generate the same text for the same prompt."
        },
        {
          "displayName": "Stop Sequences",
          "name": "stop",
          "type": "string",
          "default": "",
          "description": "Sets the stop sequences to use. When this pattern is encountered the LLM will stop generating text and return. Separate multiple patterns with commas"
        },
        {
          "displayName": "Keep Alive",
          "name": "keep_alive",
          "type": "string",
          "default": "5m",
          "description": "Specifies the duration to keep the loaded model in memory after use. Format: 1h30m (1 hour 30 minutes)."
        },
        {
          "displayName": "Low VRAM Mode",
          "name": "low_vram",
          "type": "boolean",
          "default": false,
          "description": "Whether to activate low VRAM mode, which reduces memory usage at the cost of slower generation speed. Useful for GPUs with limited memory."
        },
        {
          "displayName": "Main GPU ID",
          "name": "main_gpu",
          "type": "number",
          "default": 0,
          "typeOptions": {
            "minValue": 0,
            "numberPrecision": 0
          },
          "description": "Specifies the ID of the GPU to use for the main computation. Only change this if you have multiple GPUs."
        },
        {
          "displayName": "Context Batch Size",
          "name": "num_batch",
          "type": "number",
          "default": 512,
          "typeOptions": {
            "minValue": 1,
            "numberPrecision": 0
          },
          "description": "Sets the batch size for prompt processing. Larger batch sizes may improve generation speed but increase memory usage."
        },
        {
          "displayName": "Number of GPUs",
          "name": "num_gpu",
          "type": "number",
          "default": -1,
          "typeOptions": {
            "minValue": -1,
            "numberPrecision": 0
          },
          "description": "Specifies the number of GPUs to use for parallel processing. Set to -1 for auto-detection."
        },
        {
          "displayName": "Number of CPU Threads",
          "name": "num_thread",
          "type": "number",
          "default": 0,
          "typeOptions": {
            "minValue": 0,
            "numberPrecision": 0
          },
          "description": "Specifies the number of CPU threads to use for processing. Set to 0 for auto-detection."
        },
        {
          "displayName": "Penalize Newlines",
          "name": "penalize_newline",
          "type": "boolean",
          "default": true,
          "description": "Whether the model will be less likely to generate newline characters, encouraging longer continuous sequences of text"
        },
        {
          "displayName": "Use Memory Locking",
          "name": "use_mlock",
          "type": "boolean",
          "default": false,
          "description": "Whether to lock the model in memory to prevent swapping. This can improve performance but requires sufficient available memory."
        },
        {
          "displayName": "Use Memory Mapping",
          "name": "use_mmap",
          "type": "boolean",
          "default": true,
          "description": "Whether to use memory mapping for loading the model. This can reduce memory usage but may impact performance."
        },
        {
          "displayName": "Load Vocabulary Only",
          "name": "vocab_only",
          "type": "boolean",
          "default": false,
          "description": "Whether to only load the model vocabulary without the weights. Useful for quickly testing tokenization."
        },
        {
          "displayName": "Output Format",
          "name": "format",
          "type": "options",
          "options": [
            {
              "name": "Default",
              "value": ""
            },
            {
              "name": "JSON",
              "value": "json"
            }
          ],
          "default": "",
          "description": "Specifies the format of the API response"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "image"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "message",
      "options": [
        {
          "name": "Message a Model",
          "value": "message",
          "action": "Message a model",
          "description": "Send a message to Ollama model"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "text"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Model",
      "name": "modelId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "message"
          ],
          "resource": [
            "text"
          ]
        }
      },
      "modes": [
        {
          "displayName": "From List",
          "name": "list",
          "type": "list",
          "typeOptions": {
            "searchListMethod": "modelSearch",
            "searchable": true
          }
        },
        {
          "displayName": "ID",
          "name": "id",
          "type": "string",
          "placeholder": "e.g. llava, llama3.2-vision"
        }
      ]
    },
    {
      "displayName": "Messages",
      "name": "messages",
      "type": "fixedCollection",
      "default": {
        "values": [
          {
            "content": "",
            "role": "user"
          }
        ]
      },
      "options": [
        {
          "displayName": "Values",
          "name": "values",
          "values": [
            {
              "displayName": "Content",
              "name": "content",
              "type": "string",
              "description": "The content of the message to be sent",
              "default": "",
              "placeholder": "e.g. Hello, how can you help me?",
              "typeOptions": {
                "rows": 2
              }
            },
            {
              "displayName": "Role",
              "name": "role",
              "type": "options",
              "description": "The role of this message in the conversation",
              "options": [
                {
                  "name": "User",
                  "value": "user",
                  "description": "Message from the user"
                },
                {
                  "name": "Assistant",
                  "value": "assistant",
                  "description": "Response from the assistant (for conversation history)"
                }
              ],
              "default": "user"
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "message"
          ],
          "resource": [
            "text"
          ]
        }
      },
      "typeOptions": {
        "sortable": true,
        "multipleValues": true
      }
    },
    {
      "displayName": "Simplify Output",
      "name": "simplify",
      "type": "boolean",
      "default": true,
      "description": "Whether to simplify the response or not",
      "displayOptions": {
        "show": {
          "operation": [
            "message"
          ],
          "resource": [
            "text"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "System Message",
          "name": "system",
          "type": "string",
          "default": "",
          "placeholder": "e.g. You are a helpful assistant.",
          "description": "System message to set the context for the conversation",
          "typeOptions": {
            "rows": 2
          }
        },
        {
          "displayName": "Temperature",
          "name": "temperature",
          "type": "number",
          "default": 0.8,
          "typeOptions": {
            "minValue": 0,
            "maxValue": 2,
            "numberPrecision": 2
          },
          "description": "Controls randomness in responses. Lower values make output more focused."
        },
        {
          "displayName": "Output Randomness (Top P)",
          "name": "top_p",
          "default": 0.7,
          "description": "The maximum cumulative probability of tokens to consider when sampling",
          "type": "number",
          "typeOptions": {
            "minValue": 0,
            "maxValue": 1,
            "numberPrecision": 1
          }
        },
        {
          "displayName": "Top K",
          "name": "top_k",
          "type": "number",
          "default": 40,
          "typeOptions": {
            "minValue": 1
          },
          "description": "Controls diversity by limiting the number of top tokens to consider"
        },
        {
          "displayName": "Max Tokens",
          "name": "num_predict",
          "type": "number",
          "default": 1024,
          "typeOptions": {
            "minValue": 1,
            "numberPrecision": 0
          },
          "description": "Maximum number of tokens to generate in the completion"
        },
        {
          "displayName": "Frequency Penalty",
          "name": "frequency_penalty",
          "type": "number",
          "default": 0,
          "typeOptions": {
            "minValue": 0,
            "numberPrecision": 2
          },
          "description": "Adjusts the penalty for tokens that have already appeared in the generated text. Higher values discourage repetition."
        },
        {
          "displayName": "Presence Penalty",
          "name": "presence_penalty",
          "type": "number",
          "default": 0,
          "typeOptions": {
            "numberPrecision": 2
          },
          "description": "Adjusts the penalty for tokens based on their presence in the generated text so far. Positive values penalize tokens that have already appeared, encouraging diversity."
        },
        {
          "displayName": "Repetition Penalty",
          "name": "repeat_penalty",
          "type": "number",
          "default": 1.1,
          "typeOptions": {
            "minValue": 0,
            "numberPrecision": 2
          },
          "description": "Sets how strongly to penalize repetitions. A higher value (e.g., 1.5) will penalize repetitions more strongly, while a lower value (e.g., 0.9) will be more lenient."
        },
        {
          "displayName": "Context Length",
          "name": "num_ctx",
          "type": "number",
          "default": 4096,
          "typeOptions": {
            "minValue": 1,
            "numberPrecision": 0
          },
          "description": "Sets the size of the context window used to generate the next token"
        },
        {
          "displayName": "Repeat Last N",
          "name": "repeat_last_n",
          "type": "number",
          "default": 64,
          "typeOptions": {
            "minValue": -1,
            "numberPrecision": 0
          },
          "description": "Sets how far back for the model to look back to prevent repetition. (0 = disabled, -1 = num_ctx)."
        },
        {
          "displayName": "Min P",
          "name": "min_p",
          "type": "number",
          "default": 0,
          "typeOptions": {
            "minValue": 0,
            "maxValue": 1,
            "numberPrecision": 3
          },
          "description": "Alternative to the top_p, and aims to ensure a balance of quality and variety. The parameter p represents the minimum probability for a token to be considered, relative to the probability of the most likely token."
        },
        {
          "displayName": "Seed",
          "name": "seed",
          "type": "number",
          "default": 0,
          "typeOptions": {
            "minValue": 0,
            "numberPrecision": 0
          },
          "description": "Sets the random number seed to use for generation. Setting this to a specific number will make the model generate the same text for the same prompt."
        },
        {
          "displayName": "Stop Sequences",
          "name": "stop",
          "type": "string",
          "default": "",
          "description": "Sets the stop sequences to use. When this pattern is encountered the LLM will stop generating text and return. Separate multiple patterns with commas"
        },
        {
          "displayName": "Keep Alive",
          "name": "keep_alive",
          "type": "string",
          "default": "5m",
          "description": "Specifies the duration to keep the loaded model in memory after use. Format: 1h30m (1 hour 30 minutes)."
        },
        {
          "displayName": "Low VRAM Mode",
          "name": "low_vram",
          "type": "boolean",
          "default": false,
          "description": "Whether to activate low VRAM mode, which reduces memory usage at the cost of slower generation speed. Useful for GPUs with limited memory."
        },
        {
          "displayName": "Main GPU ID",
          "name": "main_gpu",
          "type": "number",
          "default": 0,
          "typeOptions": {
            "minValue": 0,
            "numberPrecision": 0
          },
          "description": "Specifies the ID of the GPU to use for the main computation. Only change this if you have multiple GPUs."
        },
        {
          "displayName": "Context Batch Size",
          "name": "num_batch",
          "type": "number",
          "default": 512,
          "typeOptions": {
            "minValue": 1,
            "numberPrecision": 0
          },
          "description": "Sets the batch size for prompt processing. Larger batch sizes may improve generation speed but increase memory usage."
        },
        {
          "displayName": "Number of GPUs",
          "name": "num_gpu",
          "type": "number",
          "default": -1,
          "typeOptions": {
            "minValue": -1,
            "numberPrecision": 0
          },
          "description": "Specifies the number of GPUs to use for parallel processing. Set to -1 for auto-detection."
        },
        {
          "displayName": "Number of CPU Threads",
          "name": "num_thread",
          "type": "number",
          "default": 0,
          "typeOptions": {
            "minValue": 0,
            "numberPrecision": 0
          },
          "description": "Specifies the number of CPU threads to use for processing. Set to 0 for auto-detection."
        },
        {
          "displayName": "Penalize Newlines",
          "name": "penalize_newline",
          "type": "boolean",
          "default": true,
          "description": "Whether the model will be less likely to generate newline characters, encouraging longer continuous sequences of text"
        },
        {
          "displayName": "Use Memory Locking",
          "name": "use_mlock",
          "type": "boolean",
          "default": false,
          "description": "Whether to lock the model in memory to prevent swapping. This can improve performance but requires sufficient available memory."
        },
        {
          "displayName": "Use Memory Mapping",
          "name": "use_mmap",
          "type": "boolean",
          "default": true,
          "description": "Whether to use memory mapping for loading the model. This can reduce memory usage but may impact performance."
        },
        {
          "displayName": "Load Vocabulary Only",
          "name": "vocab_only",
          "type": "boolean",
          "default": false,
          "description": "Whether to only load the model vocabulary without the weights. Useful for quickly testing tokenization."
        },
        {
          "displayName": "Output Format",
          "name": "format",
          "type": "options",
          "options": [
            {
              "name": "Default",
              "value": ""
            },
            {
              "name": "JSON",
              "value": "json"
            }
          ],
          "default": "",
          "description": "Specifies the format of the API response"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "message"
          ],
          "resource": [
            "text"
          ]
        }
      }
    }
  ]

operations:
  [
    {
      "operation": "analyze",
      "name": "Analyze Image",
      "description": "Take in images and answer questions about them"
    }
  ]


node_type: nodes-langchain.ollama
package_name: @n8n/n8n-nodes-langchain
display_name: Ollama
description: Interact with Ollama AI models
category: transform
development_style: programmatic
version: 1
credentials_required:
  [
  {
  "name": "ollamaApi",
  "required": true
  }
  ]

outputs:
  [
  "main"
  ]

updated_at: 2026-03-04 11:46:58
properties_schema:
  [
    {
      "displayName": "Resource",
      "name": "resource",
      "type": "options",
      "default": "text",
      "options": [
        {
          "name": "Image",
          "value": "image"
        },
        {
          "name": "Text",
          "value": "text"
        }
      ],
      "noDataExpression": true
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "analyze",
      "options": [
        {
          "name": "Analyze Image",
          "value": "analyze",
          "action": "Analyze image",
          "description": "Take in images and answer questions about them"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "image"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Model",
      "name": "modelId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "image"
          ]
        }
      },
      "modes": [
        {
          "displayName": "From List",
          "name": "list",
          "type": "list",
          "typeOptions": {
            "searchListMethod": "modelSearch",
            "searchable": true
          }
        },
        {
          "displayName": "ID",
          "name": "id",
          "type": "string",
          "placeholder": "e.g. llava, llama3.2-vision"
        }
      ]
    },
    {
      "displayName": "Text Input",
      "name": "text",
      "type": "string",
      "default": "What's in this image?",
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "image"
          ]
        }
      },
      "typeOptions": {
        "rows": 2
      }
    },
    {
      "displayName": "Input Type",
      "name": "inputType",
      "type": "options",
      "default": "binary",
      "options": [
        {
          "name": "Binary File(s)",
          "value": "binary"
        },
        {
          "name": "Image URL(s)",
          "value": "url"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "image"
          ]
        }
      }
    },
    {
      "displayName": "Input Data Field Name(s)",
      "name": "binaryPropertyName",
      "type": "string",
      "default": "data",
      "description": "Name of the binary field(s) which contains the image(s), separate multiple field names with commas",
      "displayOptions": {
        "show": {
          "inputType": [
            "binary"
          ],
          "operation": [
            "analyze"
          ],
          "resource": [
            "image"
          ]
        }
      }
    },
    {
      "displayName": "URL(s)",
      "name": "imageUrls",
      "type": "string",
      "default": "",
      "description": "URL(s) of the image(s) to analyze, multiple URLs can be added separated by comma",
      "displayOptions": {
        "show": {
          "inputType": [
            "url"
          ],
          "operation": [
            "analyze"
          ],
          "resource": [
            "image"
          ]
        }
      }
    },
    {
      "displayName": "Simplify Output",
      "name": "simplify",
      "type": "boolean",
      "default": true,
      "description": "Whether to simplify the response or not",
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "image"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "System Message",
          "name": "system",
          "type": "string",
          "default": "",
          "placeholder": "e.g. You are a helpful assistant.",
          "description": "System message to set the context for the conversation",
          "typeOptions": {
            "rows": 2
          }
        },
        {
          "displayName": "Temperature",
          "name": "temperature",
          "type": "number",
          "default": 0.8,
          "typeOptions": {
            "minValue": 0,
            "maxValue": 2,
            "numberPrecision": 2
          },
          "description": "Controls randomness in responses. Lower values make output more focused."
        },
        {
          "displayName": "Output Randomness (Top P)",
          "name": "top_p",
          "default": 0.7,
          "description": "The maximum cumulative probability of tokens to consider when sampling",
          "type": "number",
          "typeOptions": {
            "minValue": 0,
            "maxValue": 1,
            "numberPrecision": 1
          }
        },
        {
          "displayName": "Top K",
          "name": "top_k",
          "type": "number",
          "default": 40,
          "typeOptions": {
            "minValue": 1
          },
          "description": "Controls diversity by limiting the number of top tokens to consider"
        },
        {
          "displayName": "Max Tokens",
          "name": "num_predict",
          "type": "number",
          "default": 1024,
          "typeOptions": {
            "minValue": 1,
            "numberPrecision": 0
          },
          "description": "Maximum number of tokens to generate in the completion"
        },
        {
          "displayName": "Frequency Penalty",
          "name": "frequency_penalty",
          "type": "number",
          "default": 0,
          "typeOptions": {
            "minValue": 0,
            "numberPrecision": 2
          },
          "description": "Adjusts the penalty for tokens that have already appeared in the generated text. Higher values discourage repetition."
        },
        {
          "displayName": "Presence Penalty",
          "name": "presence_penalty",
          "type": "number",
          "default": 0,
          "typeOptions": {
            "numberPrecision": 2
          },
          "description": "Adjusts the penalty for tokens based on their presence in the generated text so far. Positive values penalize tokens that have already appeared, encouraging diversity."
        },
        {
          "displayName": "Repetition Penalty",
          "name": "repeat_penalty",
          "type": "number",
          "default": 1.1,
          "typeOptions": {
            "minValue": 0,
            "numberPrecision": 2
          },
          "description": "Sets how strongly to penalize repetitions. A higher value (e.g., 1.5) will penalize repetitions more strongly, while a lower value (e.g., 0.9) will be more lenient."
        },
        {
          "displayName": "Context Length",
          "name": "num_ctx",
          "type": "number",
          "default": 4096,
          "typeOptions": {
            "minValue": 1,
            "numberPrecision": 0
          },
          "description": "Sets the size of the context window used to generate the next token"
        },
        {
          "displayName": "Repeat Last N",
          "name": "repeat_last_n",
          "type": "number",
          "default": 64,
          "typeOptions": {
            "minValue": -1,
            "numberPrecision": 0
          },
          "description": "Sets how far back for the model to look back to prevent repetition. (0 = disabled, -1 = num_ctx)."
        },
        {
          "displayName": "Min P",
          "name": "min_p",
          "type": "number",
          "default": 0,
          "typeOptions": {
            "minValue": 0,
            "maxValue": 1,
            "numberPrecision": 3
          },
          "description": "Alternative to the top_p, and aims to ensure a balance of quality and variety. The parameter p represents the minimum probability for a token to be considered, relative to the probability of the most likely token."
        },
        {
          "displayName": "Seed",
          "name": "seed",
          "type": "number",
          "default": 0,
          "typeOptions": {
            "minValue": 0,
            "numberPrecision": 0
          },
          "description": "Sets the random number seed to use for generation. Setting this to a specific number will make the model generate the same text for the same prompt."
        },
        {
          "displayName": "Stop Sequences",
          "name": "stop",
          "type": "string",
          "default": "",
          "description": "Sets the stop sequences to use. When this pattern is encountered the LLM will stop generating text and return. Separate multiple patterns with commas"
        },
        {
          "displayName": "Keep Alive",
          "name": "keep_alive",
          "type": "string",
          "default": "5m",
          "description": "Specifies the duration to keep the loaded model in memory after use. Format: 1h30m (1 hour 30 minutes)."
        },
        {
          "displayName": "Low VRAM Mode",
          "name": "low_vram",
          "type": "boolean",
          "default": false,
          "description": "Whether to activate low VRAM mode, which reduces memory usage at the cost of slower generation speed. Useful for GPUs with limited memory."
        },
        {
          "displayName": "Main GPU ID",
          "name": "main_gpu",
          "type": "number",
          "default": 0,
          "typeOptions": {
            "minValue": 0,
            "numberPrecision": 0
          },
          "description": "Specifies the ID of the GPU to use for the main computation. Only change this if you have multiple GPUs."
        },
        {
          "displayName": "Context Batch Size",
          "name": "num_batch",
          "type": "number",
          "default": 512,
          "typeOptions": {
            "minValue": 1,
            "numberPrecision": 0
          },
          "description": "Sets the batch size for prompt processing. Larger batch sizes may improve generation speed but increase memory usage."
        },
        {
          "displayName": "Number of GPUs",
          "name": "num_gpu",
          "type": "number",
          "default": -1,
          "typeOptions": {
            "minValue": -1,
            "numberPrecision": 0
          },
          "description": "Specifies the number of GPUs to use for parallel processing. Set to -1 for auto-detection."
        },
        {
          "displayName": "Number of CPU Threads",
          "name": "num_thread",
          "type": "number",
          "default": 0,
          "typeOptions": {
            "minValue": 0,
            "numberPrecision": 0
          },
          "description": "Specifies the number of CPU threads to use for processing. Set to 0 for auto-detection."
        },
        {
          "displayName": "Penalize Newlines",
          "name": "penalize_newline",
          "type": "boolean",
          "default": true,
          "description": "Whether the model will be less likely to generate newline characters, encouraging longer continuous sequences of text"
        },
        {
          "displayName": "Use Memory Locking",
          "name": "use_mlock",
          "type": "boolean",
          "default": false,
          "description": "Whether to lock the model in memory to prevent swapping. This can improve performance but requires sufficient available memory."
        },
        {
          "displayName": "Use Memory Mapping",
          "name": "use_mmap",
          "type": "boolean",
          "default": true,
          "description": "Whether to use memory mapping for loading the model. This can reduce memory usage but may impact performance."
        },
        {
          "displayName": "Load Vocabulary Only",
          "name": "vocab_only",
          "type": "boolean",
          "default": false,
          "description": "Whether to only load the model vocabulary without the weights. Useful for quickly testing tokenization."
        },
        {
          "displayName": "Output Format",
          "name": "format",
          "type": "options",
          "options": [
            {
              "name": "Default",
              "value": ""
            },
            {
              "name": "JSON",
              "value": "json"
            }
          ],
          "default": "",
          "description": "Specifies the format of the API response"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "image"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "message",
      "options": [
        {
          "name": "Message a Model",
          "value": "message",
          "action": "Message a model",
          "description": "Send a message to Ollama model"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "text"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Model",
      "name": "modelId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "message"
          ],
          "resource": [
            "text"
          ]
        }
      },
      "modes": [
        {
          "displayName": "From List",
          "name": "list",
          "type": "list",
          "typeOptions": {
            "searchListMethod": "modelSearch",
            "searchable": true
          }
        },
        {
          "displayName": "ID",
          "name": "id",
          "type": "string",
          "placeholder": "e.g. llava, llama3.2-vision"
        }
      ]
    },
    {
      "displayName": "Messages",
      "name": "messages",
      "type": "fixedCollection",
      "default": {
        "values": [
          {
            "content": "",
            "role": "user"
          }
        ]
      },
      "options": [
        {
          "displayName": "Values",
          "name": "values",
          "values": [
            {
              "displayName": "Content",
              "name": "content",
              "type": "string",
              "description": "The content of the message to be sent",
              "default": "",
              "placeholder": "e.g. Hello, how can you help me?",
              "typeOptions": {
                "rows": 2
              }
            },
            {
              "displayName": "Role",
              "name": "role",
              "type": "options",
              "description": "The role of this message in the conversation",
              "options": [
                {
                  "name": "User",
                  "value": "user",
                  "description": "Message from the user"
                },
                {
                  "name": "Assistant",
                  "value": "assistant",
                  "description": "Response from the assistant (for conversation history)"
                }
              ],
              "default": "user"
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "message"
          ],
          "resource": [
            "text"
          ]
        }
      },
      "typeOptions": {
        "sortable": true,
        "multipleValues": true
      }
    },
    {
      "displayName": "Simplify Output",
      "name": "simplify",
      "type": "boolean",
      "default": true,
      "description": "Whether to simplify the response or not",
      "displayOptions": {
        "show": {
          "operation": [
            "message"
          ],
          "resource": [
            "text"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "System Message",
          "name": "system",
          "type": "string",
          "default": "",
          "placeholder": "e.g. You are a helpful assistant.",
          "description": "System message to set the context for the conversation",
          "typeOptions": {
            "rows": 2
          }
        },
        {
          "displayName": "Temperature",
          "name": "temperature",
          "type": "number",
          "default": 0.8,
          "typeOptions": {
            "minValue": 0,
            "maxValue": 2,
            "numberPrecision": 2
          },
          "description": "Controls randomness in responses. Lower values make output more focused."
        },
        {
          "displayName": "Output Randomness (Top P)",
          "name": "top_p",
          "default": 0.7,
          "description": "The maximum cumulative probability of tokens to consider when sampling",
          "type": "number",
          "typeOptions": {
            "minValue": 0,
            "maxValue": 1,
            "numberPrecision": 1
          }
        },
        {
          "displayName": "Top K",
          "name": "top_k",
          "type": "number",
          "default": 40,
          "typeOptions": {
            "minValue": 1
          },
          "description": "Controls diversity by limiting the number of top tokens to consider"
        },
        {
          "displayName": "Max Tokens",
          "name": "num_predict",
          "type": "number",
          "default": 1024,
          "typeOptions": {
            "minValue": 1,
            "numberPrecision": 0
          },
          "description": "Maximum number of tokens to generate in the completion"
        },
        {
          "displayName": "Frequency Penalty",
          "name": "frequency_penalty",
          "type": "number",
          "default": 0,
          "typeOptions": {
            "minValue": 0,
            "numberPrecision": 2
          },
          "description": "Adjusts the penalty for tokens that have already appeared in the generated text. Higher values discourage repetition."
        },
        {
          "displayName": "Presence Penalty",
          "name": "presence_penalty",
          "type": "number",
          "default": 0,
          "typeOptions": {
            "numberPrecision": 2
          },
          "description": "Adjusts the penalty for tokens based on their presence in the generated text so far. Positive values penalize tokens that have already appeared, encouraging diversity."
        },
        {
          "displayName": "Repetition Penalty",
          "name": "repeat_penalty",
          "type": "number",
          "default": 1.1,
          "typeOptions": {
            "minValue": 0,
            "numberPrecision": 2
          },
          "description": "Sets how strongly to penalize repetitions. A higher value (e.g., 1.5) will penalize repetitions more strongly, while a lower value (e.g., 0.9) will be more lenient."
        },
        {
          "displayName": "Context Length",
          "name": "num_ctx",
          "type": "number",
          "default": 4096,
          "typeOptions": {
            "minValue": 1,
            "numberPrecision": 0
          },
          "description": "Sets the size of the context window used to generate the next token"
        },
        {
          "displayName": "Repeat Last N",
          "name": "repeat_last_n",
          "type": "number",
          "default": 64,
          "typeOptions": {
            "minValue": -1,
            "numberPrecision": 0
          },
          "description": "Sets how far back for the model to look back to prevent repetition. (0 = disabled, -1 = num_ctx)."
        },
        {
          "displayName": "Min P",
          "name": "min_p",
          "type": "number",
          "default": 0,
          "typeOptions": {
            "minValue": 0,
            "maxValue": 1,
            "numberPrecision": 3
          },
          "description": "Alternative to the top_p, and aims to ensure a balance of quality and variety. The parameter p represents the minimum probability for a token to be considered, relative to the probability of the most likely token."
        },
        {
          "displayName": "Seed",
          "name": "seed",
          "type": "number",
          "default": 0,
          "typeOptions": {
            "minValue": 0,
            "numberPrecision": 0
          },
          "description": "Sets the random number seed to use for generation. Setting this to a specific number will make the model generate the same text for the same prompt."
        },
        {
          "displayName": "Stop Sequences",
          "name": "stop",
          "type": "string",
          "default": "",
          "description": "Sets the stop sequences to use. When this pattern is encountered the LLM will stop generating text and return. Separate multiple patterns with commas"
        },
        {
          "displayName": "Keep Alive",
          "name": "keep_alive",
          "type": "string",
          "default": "5m",
          "description": "Specifies the duration to keep the loaded model in memory after use. Format: 1h30m (1 hour 30 minutes)."
        },
        {
          "displayName": "Low VRAM Mode",
          "name": "low_vram",
          "type": "boolean",
          "default": false,
          "description": "Whether to activate low VRAM mode, which reduces memory usage at the cost of slower generation speed. Useful for GPUs with limited memory."
        },
        {
          "displayName": "Main GPU ID",
          "name": "main_gpu",
          "type": "number",
          "default": 0,
          "typeOptions": {
            "minValue": 0,
            "numberPrecision": 0
          },
          "description": "Specifies the ID of the GPU to use for the main computation. Only change this if you have multiple GPUs."
        },
        {
          "displayName": "Context Batch Size",
          "name": "num_batch",
          "type": "number",
          "default": 512,
          "typeOptions": {
            "minValue": 1,
            "numberPrecision": 0
          },
          "description": "Sets the batch size for prompt processing. Larger batch sizes may improve generation speed but increase memory usage."
        },
        {
          "displayName": "Number of GPUs",
          "name": "num_gpu",
          "type": "number",
          "default": -1,
          "typeOptions": {
            "minValue": -1,
            "numberPrecision": 0
          },
          "description": "Specifies the number of GPUs to use for parallel processing. Set to -1 for auto-detection."
        },
        {
          "displayName": "Number of CPU Threads",
          "name": "num_thread",
          "type": "number",
          "default": 0,
          "typeOptions": {
            "minValue": 0,
            "numberPrecision": 0
          },
          "description": "Specifies the number of CPU threads to use for processing. Set to 0 for auto-detection."
        },
        {
          "displayName": "Penalize Newlines",
          "name": "penalize_newline",
          "type": "boolean",
          "default": true,
          "description": "Whether the model will be less likely to generate newline characters, encouraging longer continuous sequences of text"
        },
        {
          "displayName": "Use Memory Locking",
          "name": "use_mlock",
          "type": "boolean",
          "default": false,
          "description": "Whether to lock the model in memory to prevent swapping. This can improve performance but requires sufficient available memory."
        },
        {
          "displayName": "Use Memory Mapping",
          "name": "use_mmap",
          "type": "boolean",
          "default": true,
          "description": "Whether to use memory mapping for loading the model. This can reduce memory usage but may impact performance."
        },
        {
          "displayName": "Load Vocabulary Only",
          "name": "vocab_only",
          "type": "boolean",
          "default": false,
          "description": "Whether to only load the model vocabulary without the weights. Useful for quickly testing tokenization."
        },
        {
          "displayName": "Output Format",
          "name": "format",
          "type": "options",
          "options": [
            {
              "name": "Default",
              "value": ""
            },
            {
              "name": "JSON",
              "value": "json"
            }
          ],
          "default": "",
          "description": "Specifies the format of the API response"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "message"
          ],
          "resource": [
            "text"
          ]
        }
      }
    }
  ]

operations:
  [
    {
      "operation": "analyze",
      "name": "Analyze Image",
      "description": "Take in images and answer questions about them"
    }
  ]


node_type: nodes-langchain.openAiTool
package_name: @n8n/n8n-nodes-langchain
display_name: OpenAI Tool
category: transform
development_style: programmatic
version: 2.1
credentials_required:
  [
  {
  "name": "openAiApi",
  "required": true
  }
  ]

outputs:
  [
  {
  "type": "ai_tool",
  "displayName": "Tool"
  }
  ]

output_names:
  [
  "Tool"
  ]

updated_at: 2026-03-04 11:46:58
tool_variant_of: nodes-langchain.openAi
description:
  Message an assistant or GPT, analyze images, generate audio, etc. (AI Tool variant for use with AI Agents)

properties_schema:
  [
    {
      "displayName": "Tool Description",
      "name": "toolDescription",
      "type": "string",
      "default": "",
      "required": false,
      "description": "Description for the AI to understand what this tool does and when to use it",
      "typeOptions": {
        "rows": 3
      },
      "placeholder": "e.g., Use this tool to interact with OpenAI"
    },
    {
      "displayName": "Resource",
      "name": "resource",
      "type": "options",
      "default": "text",
      "options": [
        {
          "name": "Text",
          "value": "text",
          "builderHint": {
            "message": "For text generation, reasoning and tools, use AI Agent with OpenAI Chat Model instead of this resource."
          }
        },
        {
          "name": "Image",
          "value": "image"
        },
        {
          "name": "Audio",
          "value": "audio"
        },
        {
          "name": "File",
          "value": "file"
        },
        {
          "name": "Conversation",
          "value": "conversation"
        },
        {
          "name": "Video",
          "value": "video"
        }
      ],
      "noDataExpression": true
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "generate",
      "options": [
        {
          "name": "Generate Audio",
          "value": "generate",
          "action": "Generate audio",
          "description": "Creates audio from a text prompt"
        },
        {
          "name": "Transcribe a Recording",
          "value": "transcribe",
          "action": "Transcribe a recording",
          "description": "Transcribes audio into text"
        },
        {
          "name": "Translate a Recording",
          "value": "translate",
          "action": "Translate a recording",
          "description": "Translates audio into text in English"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "audio"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "OpenAI API limits the size of the audio file to 25 MB",
      "name": "fileSizeLimitNotice",
      "type": "notice",
      "default": " ",
      "displayOptions": {
        "show": {
          "resource": [
            "audio"
          ],
          "operation": [
            "translate",
            "transcribe"
          ]
        }
      }
    },
    {
      "displayName": "Model",
      "name": "model",
      "type": "options",
      "default": "tts-1",
      "options": [
        {
          "name": "TTS-1",
          "value": "tts-1"
        },
        {
          "name": "TTS-1-HD",
          "value": "tts-1-hd"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "generate"
          ],
          "resource": [
            "audio"
          ]
        }
      }
    },
    {
      "displayName": "Text Input",
      "name": "input",
      "type": "string",
      "default": "",
      "description": "The text to generate audio for. The maximum length is 4096 characters.",
      "displayOptions": {
        "show": {
          "operation": [
            "generate"
          ],
          "resource": [
            "audio"
          ]
        }
      },
      "typeOptions": {
        "rows": 2
      }
    },
    {
      "displayName": "Voice",
      "name": "voice",
      "type": "options",
      "default": "alloy",
      "description": "The voice to use when generating the audio",
      "options": [
        {
          "name": "Alloy",
          "value": "alloy"
        },
        {
          "name": "Echo",
          "value": "echo"
        },
        {
          "name": "Fable",
          "value": "fable"
        },
        {
          "name": "Nova",
          "value": "nova"
        },
        {
          "name": "Onyx",
          "value": "onyx"
        },
        {
          "name": "Shimmer",
          "value": "shimmer"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "generate"
          ],
          "resource": [
            "audio"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Response Format",
          "name": "response_format",
          "type": "options",
          "default": "mp3",
          "options": [
            {
              "name": "MP3",
              "value": "mp3"
            },
            {
              "name": "OPUS",
              "value": "opus"
            },
            {
              "name": "AAC",
              "value": "aac"
            },
            {
              "name": "FLAC",
              "value": "flac"
            }
          ]
        },
        {
          "displayName": "Audio Speed",
          "name": "speed",
          "type": "number",
          "default": 1,
          "typeOptions": {
            "minValue": 0.25,
            "maxValue": 4,
            "numberPrecision": 1
          }
        },
        {
          "displayName": "Put Output in Field",
          "name": "binaryPropertyOutput",
          "type": "string",
          "default": "data",
          "hint": "The name of the output field to put the binary file data in"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "generate"
          ],
          "resource": [
            "audio"
          ]
        }
      }
    },
    {
      "displayName": "Input Data Field Name",
      "name": "binaryPropertyName",
      "type": "string",
      "default": "data",
      "description": "Name of the binary property which contains the audio file in one of these formats: flac, mp3, mp4, mpeg, mpga, m4a, ogg, wav, or webm",
      "displayOptions": {
        "show": {
          "operation": [
            "transcribe"
          ],
          "resource": [
            "audio"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Language of the Audio File",
          "name": "language",
          "type": "string",
          "description": "The language of the input audio. Supplying the input language in <a href=\"https://en.wikipedia.org/wiki/List_of_ISO_639_language_codes\" target=\"_blank\">ISO-639-1</a> format will improve accuracy and latency.",
          "default": ""
        },
        {
          "displayName": "Output Randomness (Temperature)",
          "name": "temperature",
          "type": "number",
          "default": 0,
          "typeOptions": {
            "minValue": 0,
            "maxValue": 1,
            "numberPrecision": 1
          }
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "transcribe"
          ],
          "resource": [
            "audio"
          ]
        }
      }
    },
    {
      "displayName": "Input Data Field Name",
      "name": "binaryPropertyName",
      "type": "string",
      "default": "data",
      "description": "Name of the binary property which contains the audio file in one of these formats: flac, mp3, mp4, mpeg, mpga, m4a, ogg, wav, or webm",
      "displayOptions": {
        "show": {
          "operation": [
            "translate"
          ],
          "resource": [
            "audio"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Output Randomness (Temperature)",
          "name": "temperature",
          "type": "number",
          "default": 0,
          "typeOptions": {
            "minValue": 0,
            "maxValue": 1,
            "numberPrecision": 1
          }
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "translate"
          ],
          "resource": [
            "audio"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "upload",
      "options": [
        {
          "name": "Delete a File",
          "value": "deleteFile",
          "action": "Delete a file",
          "description": "Delete a file from the server"
        },
        {
          "name": "List Files",
          "value": "list",
          "action": "List files",
          "description": "Returns a list of files that belong to the user's organization"
        },
        {
          "name": "Upload a File",
          "value": "upload",
          "action": "Upload a file",
          "description": "Upload a file that can be used across various endpoints"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Input Data Field Name",
      "name": "binaryPropertyName",
      "type": "string",
      "default": "data",
      "description": "Name of the binary property which contains the file. The size of individual files can be a maximum of 512 MB or 2 million tokens for Assistants.",
      "displayOptions": {
        "show": {
          "operation": [
            "upload"
          ],
          "resource": [
            "file"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Purpose",
          "name": "purpose",
          "type": "options",
          "default": "user_data",
          "description": "The intended purpose of the uploaded file, the 'Fine-tuning' only supports .jsonl files",
          "options": [
            {
              "name": "Assistants",
              "value": "assistants"
            },
            {
              "name": "Fine-Tune",
              "value": "fine-tune"
            },
            {
              "name": "Vision",
              "value": "vision"
            },
            {
              "name": "User Data",
              "value": "user_data"
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "upload"
          ],
          "resource": [
            "file"
          ]
        }
      }
    },
    {
      "displayName": "File",
      "name": "fileId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "deleteFile"
          ],
          "resource": [
            "file"
          ]
        }
      },
      "modes": [
        {
          "displayName": "From List",
          "name": "list",
          "type": "list",
          "typeOptions": {
            "searchListMethod": "fileSearch",
            "searchable": true
          }
        },
        {
          "displayName": "ID",
          "name": "id",
          "type": "string",
          "validation": [
            {
              "type": "regex",
              "properties": {
                "regex": "file-[a-zA-Z0-9]",
                "errorMessage": "Not a valid File ID"
              }
            }
          ],
          "placeholder": "e.g. file-1234567890"
        }
      ]
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Purpose",
          "name": "purpose",
          "type": "options",
          "default": "any",
          "description": "Only return files with the given purpose",
          "options": [
            {
              "name": "Any [Default]",
              "value": "any"
            },
            {
              "name": "Assistants",
              "value": "assistants"
            },
            {
              "name": "Fine-Tune",
              "value": "fine-tune"
            },
            {
              "name": "Vision",
              "value": "vision"
            },
            {
              "name": "User Data",
              "value": "user_data"
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "list"
          ],
          "resource": [
            "file"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "generate",
      "options": [
        {
          "name": "Analyze Image",
          "value": "analyze",
          "action": "Analyze image",
          "description": "Take in images and answer questions about them"
        },
        {
          "name": "Generate an Image",
          "value": "generate",
          "action": "Generate an image",
          "description": "Creates an image from a text prompt"
        },
        {
          "name": "Edit Image",
          "value": "edit",
          "action": "Edit image",
          "description": "Edit an image"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "image"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Model",
      "name": "model",
      "type": "options",
      "default": "dall-e-3",
      "description": "The model to use for image generation",
      "options": [
        {
          "name": "DALL·E 2",
          "value": "dall-e-2"
        },
        {
          "name": "DALL·E 3",
          "value": "dall-e-3"
        },
        {
          "name": "GPT Image 1",
          "value": "gpt-image-1"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "generate"
          ],
          "resource": [
            "image"
          ]
        }
      }
    },
    {
      "displayName": "Prompt",
      "name": "prompt",
      "type": "string",
      "default": "",
      "description": "A text description of the desired image(s). The maximum length is 1000 characters for dall-e-2 and 4000 characters for dall-e-3.",
      "displayOptions": {
        "show": {
          "operation": [
            "generate"
          ],
          "resource": [
            "image"
          ]
        }
      },
      "typeOptions": {
        "rows": 2
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Number of Images",
          "name": "n",
          "default": 1,
          "description": "Number of images to generate",
          "type": "number",
          "typeOptions": {
            "minValue": 1,
            "maxValue": 10
          },
          "displayOptions": {
            "show": {
              "/model": [
                "dall-e-2"
              ]
            }
          }
        },
        {
          "displayName": "Quality",
          "name": "dalleQuality",
          "type": "options",
          "description": "The quality of the image that will be generated, HD creates images with finer details and greater consistency across the image",
          "options": [
            {
              "name": "HD",
              "value": "hd"
            },
            {
              "name": "Standard",
              "value": "standard"
            }
          ],
          "displayOptions": {
            "show": {
              "/model": [
                "dall-e-3"
              ]
            }
          },
          "default": "standard"
        },
        {
          "displayName": "Quality",
          "name": "quality",
          "type": "options",
          "description": "The quality of the image that will be generated, High creates images with finer details and greater consistency across the image",
          "options": [
            {
              "name": "High",
              "value": "high"
            },
            {
              "name": "Medium",
              "value": "medium"
            },
            {
              "name": "Low",
              "value": "low"
            }
          ],
          "displayOptions": {
            "show": {
              "/model": [
                "gpt-image-1"
              ]
            }
          },
          "default": "medium"
        },
        {
          "displayName": "Resolution",
          "name": "size",
          "type": "options",
          "options": [
            {
              "name": "256x256",
              "value": "256x256"
            },
            {
              "name": "512x512",
              "value": "512x512"
            },
            {
              "name": "1024x1024",
              "value": "1024x1024"
            }
          ],
          "displayOptions": {
            "show": {
              "/model": [
                "dall-e-2"
              ]
            }
          },
          "default": "1024x1024"
        },
        {
          "displayName": "Resolution",
          "name": "size",
          "type": "options",
          "options": [
            {
              "name": "1024x1024",
              "value": "1024x1024"
            },
            {
              "name": "1792x1024",
              "value": "1792x1024"
            },
            {
              "name": "1024x1792",
              "value": "1024x1792"
            }
          ],
          "displayOptions": {
            "show": {
              "/model": [
                "dall-e-3"
              ]
            }
          },
          "default": "1024x1024"
        },
        {
          "displayName": "Resolution",
          "name": "size",
          "type": "options",
          "options": [
            {
              "name": "1024x1024",
              "value": "1024x1024"
            },
            {
              "name": "1024x1536",
              "value": "1024x1536"
            },
            {
              "name": "1536x1024",
              "value": "1536x1024"
            }
          ],
          "displayOptions": {
            "show": {
              "/model": [
                "gpt-image-1"
              ]
            }
          },
          "default": "1024x1024"
        },
        {
          "displayName": "Style",
          "name": "style",
          "type": "options",
          "options": [
            {
              "name": "Natural",
              "value": "natural",
              "description": "Produce more natural looking images"
            },
            {
              "name": "Vivid",
              "value": "vivid",
              "description": "Lean towards generating hyper-real and dramatic images"
            }
          ],
          "displayOptions": {
            "show": {
              "/model": [
                "dall-e-3"
              ]
            }
          },
          "default": "vivid"
        },
        {
          "displayName": "Respond with Image URL(s)",
          "name": "returnImageUrls",
          "type": "boolean",
          "default": false,
          "description": "Whether to return image URL(s) instead of binary file(s)",
          "displayOptions": {
            "hide": {
              "/model": [
                "gpt-image-1"
              ]
            }
          }
        },
        {
          "displayName": "Put Output in Field",
          "name": "binaryPropertyOutput",
          "type": "string",
          "default": "data",
          "hint": "The name of the output field to put the binary file data in",
          "displayOptions": {
            "show": {
              "returnImageUrls": [
                false
              ]
            }
          }
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "generate"
          ],
          "resource": [
            "image"
          ]
        }
      }
    },
    {
      "displayName": "Model",
      "name": "modelId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "image"
          ]
        }
      },
      "modes": [
        {
          "displayName": "From List",
          "name": "list",
          "type": "list",
          "typeOptions": {
            "searchListMethod": "imageModelSearch",
            "searchable": true
          }
        },
        {
          "displayName": "ID",
          "name": "id",
          "type": "string",
          "placeholder": "e.g. gpt-4"
        }
      ]
    },
    {
      "displayName": "Text Input",
      "name": "text",
      "type": "string",
      "default": "What's in this image?",
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "image"
          ]
        }
      },
      "typeOptions": {
        "rows": 2
      }
    },
    {
      "displayName": "Input Type",
      "name": "inputType",
      "type": "options",
      "default": "url",
      "options": [
        {
          "name": "Image URL(s)",
          "value": "url"
        },
        {
          "name": "Binary File(s)",
          "value": "base64"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "image"
          ]
        }
      }
    },
    {
      "displayName": "URL(s)",
      "name": "imageUrls",
      "type": "string",
      "default": "",
      "description": "URL(s) of the image(s) to analyze, multiple URLs can be added separated by comma",
      "displayOptions": {
        "show": {
          "inputType": [
            "url"
          ],
          "operation": [
            "analyze"
          ],
          "resource": [
            "image"
          ]
        }
      }
    },
    {
      "displayName": "Input Data Field Name",
      "name": "binaryPropertyName",
      "type": "string",
      "default": "data",
      "description": "Name of the binary property which contains the image(s)",
      "displayOptions": {
        "show": {
          "inputType": [
            "base64"
          ],
          "operation": [
            "analyze"
          ],
          "resource": [
            "image"
          ]
        }
      }
    },
    {
      "displayName": "Simplify Output",
      "name": "simplify",
      "type": "boolean",
      "default": true,
      "description": "Whether to simplify the response or not",
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "image"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Detail",
          "name": "detail",
          "type": "options",
          "default": "auto",
          "options": [
            {
              "name": "Auto",
              "value": "auto",
              "description": "Model will look at the image input size and decide if it should use the low or high setting"
            },
            {
              "name": "Low",
              "value": "low",
              "description": "Return faster responses and consume fewer tokens"
            },
            {
              "name": "High",
              "value": "high",
              "description": "Return more detailed responses, consumes more tokens"
            }
          ]
        },
        {
          "displayName": "Length of Description (Max Tokens)",
          "description": "Fewer tokens will result in shorter, less detailed image description",
          "name": "maxTokens",
          "type": "number",
          "default": 300,
          "typeOptions": {
            "minValue": 1
          }
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "image"
          ]
        }
      }
    },
    {
      "displayName": "Model",
      "name": "model",
      "type": "options",
      "default": "gpt-image-1",
      "description": "The model to use for image generation",
      "options": [
        {
          "name": "DALL·E 2",
          "value": "dall-e-2"
        },
        {
          "name": "GPT Image 1",
          "value": "gpt-image-1"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "edit"
          ],
          "resource": [
            "image"
          ]
        }
      }
    },
    {
      "displayName": "Prompt",
      "name": "prompt",
      "type": "string",
      "default": "",
      "description": "A text description of the desired image(s). Maximum 1000 characters for dall-e-2, 32000 characters for gpt-image-1.",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "edit"
          ],
          "resource": [
            "image"
          ]
        }
      },
      "typeOptions": {
        "rows": 2
      }
    },
    {
      "displayName": "Images",
      "name": "images",
      "type": "fixedCollection",
      "default": {
        "values": [
          {
            "binaryPropertyName": "data"
          }
        ]
      },
      "description": "Add one or more binary fields to include images with your prompt. Each image should be a png, webp, or jpg file less than 50MB. You can provide up to 16 images.",
      "options": [
        {
          "displayName": "Image",
          "name": "values",
          "values": [
            {
              "displayName": "Binary Field Name",
              "name": "binaryPropertyName",
              "type": "string",
              "default": "data",
              "placeholder": "e.g. data",
              "description": "The name of the binary field containing the image data"
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "/model": [
            "gpt-image-1"
          ],
          "operation": [
            "edit"
          ],
          "resource": [
            "image"
          ]
        }
      },
      "typeOptions": {
        "multipleValues": true,
        "multipleValueButtonText": "Add Image"
      }
    },
    {
      "displayName": "Binary Field Name",
      "name": "binaryPropertyName",
      "type": "string",
      "default": "data",
      "description": "Name of the binary property which contains the image. It should be a square png file less than 4MB.",
      "displayOptions": {
        "show": {
          "/model": [
            "dall-e-2"
          ],
          "operation": [
            "edit"
          ],
          "resource": [
            "image"
          ]
        }
      }
    },
    {
      "displayName": "Number of Images",
      "name": "n",
      "type": "number",
      "default": 1,
      "description": "The number of images to generate. Must be between 1 and 10.",
      "displayOptions": {
        "show": {
          "operation": [
            "edit"
          ],
          "resource": [
            "image"
          ]
        }
      },
      "typeOptions": {
        "minValue": 1,
        "maxValue": 10
      }
    },
    {
      "displayName": "Size",
      "name": "size",
      "type": "options",
      "default": "1024x1024",
      "description": "The size of the generated images",
      "options": [
        {
          "name": "256x256",
          "value": "256x256"
        },
        {
          "name": "512x512",
          "value": "512x512"
        },
        {
          "name": "1024x1024",
          "value": "1024x1024"
        },
        {
          "name": "1024x1536 (Portrait)",
          "value": "1024x1536"
        },
        {
          "name": "1536x1024 (Landscape)",
          "value": "1536x1024"
        },
        {
          "name": "Auto",
          "value": "auto"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "edit"
          ],
          "resource": [
            "image"
          ]
        }
      }
    },
    {
      "displayName": "Quality",
      "name": "quality",
      "type": "options",
      "default": "auto",
      "description": "The quality of the image that will be generated",
      "options": [
        {
          "name": "Auto",
          "value": "auto"
        },
        {
          "name": "High",
          "value": "high"
        },
        {
          "name": "Medium",
          "value": "medium"
        },
        {
          "name": "Low",
          "value": "low"
        },
        {
          "name": "Standard",
          "value": "standard"
        }
      ],
      "displayOptions": {
        "show": {
          "/model": [
            "gpt-image-1"
          ],
          "operation": [
            "edit"
          ],
          "resource": [
            "image"
          ]
        }
      }
    },
    {
      "displayName": "Response Format",
      "name": "responseFormat",
      "type": "options",
      "default": "url",
      "description": "The format in which the generated images are returned. URLs are only valid for 60 minutes after generation.",
      "options": [
        {
          "name": "URL",
          "value": "url"
        },
        {
          "name": "Base64 JSON",
          "value": "b64_json"
        }
      ],
      "displayOptions": {
        "show": {
          "/model": [
            "dall-e-2"
          ],
          "operation": [
            "edit"
          ],
          "resource": [
            "image"
          ]
        }
      }
    },
    {
      "displayName": "Output Format",
      "name": "outputFormat",
      "type": "options",
      "default": "png",
      "description": "The format in which the generated images are returned. Only supported for gpt-image-1.",
      "options": [
        {
          "name": "PNG",
          "value": "png"
        },
        {
          "name": "JPEG",
          "value": "jpeg"
        },
        {
          "name": "WebP",
          "value": "webp"
        }
      ],
      "displayOptions": {
        "show": {
          "/model": [
            "gpt-image-1"
          ],
          "operation": [
            "edit"
          ],
          "resource": [
            "image"
          ]
        }
      }
    },
    {
      "displayName": "Output Compression",
      "name": "outputCompression",
      "type": "number",
      "default": 100,
      "description": "The compression level (0-100%) for the generated images. Only supported for gpt-image-1 with webp or jpeg output formats.",
      "displayOptions": {
        "show": {
          "/model": [
            "gpt-image-1"
          ],
          "outputFormat": [
            "webp",
            "jpeg"
          ],
          "operation": [
            "edit"
          ],
          "resource": [
            "image"
          ]
        }
      },
      "typeOptions": {
        "minValue": 0,
        "maxValue": 100
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "User",
          "name": "user",
          "type": "string",
          "default": "",
          "description": "A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse",
          "placeholder": "user-12345"
        },
        {
          "displayName": "Background",
          "name": "background",
          "type": "options",
          "default": "auto",
          "description": "Allows to set transparency for the background of the generated image(s). Only supported for gpt-image-1.",
          "options": [
            {
              "name": "Auto",
              "value": "auto"
            },
            {
              "name": "Transparent",
              "value": "transparent"
            },
            {
              "name": "Opaque",
              "value": "opaque"
            }
          ],
          "displayOptions": {
            "show": {
              "/model": [
                "gpt-image-1"
              ]
            }
          }
        },
        {
          "displayName": "Input Fidelity",
          "name": "inputFidelity",
          "type": "options",
          "default": "low",
          "description": "Control how much effort the model will exert to match the style and features of input images. Only supported for gpt-image-1.",
          "options": [
            {
              "name": "Low",
              "value": "low"
            },
            {
              "name": "High",
              "value": "high"
            }
          ],
          "displayOptions": {
            "show": {
              "/model": [
                "gpt-image-1"
              ]
            }
          }
        },
        {
          "displayName": "Image Mask",
          "name": "imageMask",
          "type": "string",
          "default": "data",
          "hint": "The name of the input field containing the binary file data to be processed",
          "description": "Name of the binary property which contains the image. An additional image whose fully transparent areas (e.g. where alpha is zero) indicate where image should be edited. If there are multiple images provided, the mask will be applied on the first image. Must be a valid PNG file, less than 4MB, and have the same dimensions as image."
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "edit"
          ],
          "resource": [
            "image"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "response",
      "options": [
        {
          "name": "Message a Model",
          "value": "response",
          "action": "Message a model",
          "description": "Generate a model response with GPT 3, 4, 5, etc. using Responses API"
        },
        {
          "name": "Classify Text for Violations",
          "value": "classify",
          "action": "Classify text for violations",
          "description": "Check whether content complies with usage policies"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "text"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Text Input",
      "name": "input",
      "type": "string",
      "default": "",
      "description": "The input text to classify if it is violates the moderation policy",
      "displayOptions": {
        "show": {
          "operation": [
            "classify"
          ],
          "resource": [
            "text"
          ]
        }
      },
      "typeOptions": {
        "rows": 2
      }
    },
    {
      "displayName": "Simplify Output",
      "name": "simplify",
      "type": "boolean",
      "default": false,
      "description": "Whether to return a simplified version of the response instead of the raw data",
      "displayOptions": {
        "show": {
          "operation": [
            "classify"
          ],
          "resource": [
            "text"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Use Stable Model",
          "name": "useStableModel",
          "type": "boolean",
          "default": false,
          "description": "Whether to use the stable version of the model instead of the latest version, accuracy may be slightly lower"
        }
      ],
      "displayOptions": {
        "show": {
          "@version": [
            {
              "_cnd": {
                "lt": 2.1
              }
            }
          ],
          "operation": [
            "classify"
          ],
          "resource": [
            "text"
          ]
        }
      }
    },
    {
      "displayName": "Model",
      "name": "modelId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "response"
          ],
          "resource": [
            "text"
          ]
        }
      },
      "modes": [
        {
          "displayName": "From List",
          "name": "list",
          "type": "list",
          "typeOptions": {
            "searchListMethod": "modelSearch",
            "searchable": true
          }
        },
        {
          "displayName": "ID",
          "name": "id",
          "type": "string",
          "placeholder": "e.g. gpt-4"
        }
      ]
    },
    {
      "displayName": "Messages",
      "name": "responses",
      "type": "fixedCollection",
      "default": {
        "values": [
          {
            "type": "text"
          }
        ]
      },
      "options": [
        {
          "displayName": "Message",
          "name": "values",
          "values": [
            {
              "displayName": "Type",
              "name": "type",
              "type": "options",
              "default": "text",
              "options": [
                {
                  "name": "Text",
                  "value": "text"
                },
                {
                  "name": "Image",
                  "value": "image"
                },
                {
                  "name": "File",
                  "value": "file"
                }
              ]
            },
            {
              "displayName": "Role",
              "name": "role",
              "type": "options",
              "description": "Role in shaping the model's response, it tells the model how it should behave and interact with the user",
              "options": [
                {
                  "name": "User",
                  "value": "user",
                  "description": "Send a message as a user and get a response from the model"
                },
                {
                  "name": "Assistant",
                  "value": "assistant",
                  "description": "Tell the model to adopt a specific tone or personality"
                },
                {
                  "name": "System",
                  "value": "system",
                  "description": "Usually used to set the model's behavior or context for the next user message"
                }
              ],
              "default": "user"
            },
            {
              "displayName": "Prompt",
              "name": "content",
              "type": "string",
              "description": "The content of the message to be send",
              "default": "",
              "placeholder": "e.g. Hello, how can you help me?",
              "typeOptions": {
                "rows": 2
              },
              "displayOptions": {
                "show": {
                  "type": [
                    "text"
                  ]
                }
              }
            },
            {
              "displayName": "Image Type",
              "name": "imageType",
              "type": "options",
              "default": "url",
              "options": [
                {
                  "name": "Image URL",
                  "value": "url"
                },
                {
                  "name": "File ID",
                  "value": "fileId"
                },
                {
                  "name": "File Data",
                  "value": "base64"
                }
              ],
              "displayOptions": {
                "show": {
                  "type": [
                    "image"
                  ]
                }
              }
            },
            {
              "displayName": "Image URL",
              "name": "imageUrl",
              "type": "string",
              "default": "",
              "placeholder": "e.g. https://example.com/image.jpeg",
              "description": "URL of the image to be sent",
              "displayOptions": {
                "show": {
                  "type": [
                    "image"
                  ],
                  "imageType": [
                    "url"
                  ]
                }
              }
            },
            {
              "displayName": "Image Data",
              "name": "binaryPropertyName",
              "type": "string",
              "default": "data",
              "placeholder": "e.g. data",
              "hint": "The name of the input field containing the binary file data to be processed",
              "description": "Name of the binary property which contains the image(s)",
              "displayOptions": {
                "show": {
                  "type": [
                    "image"
                  ],
                  "imageType": [
                    "base64"
                  ]
                }
              }
            },
            {
              "displayName": "File ID",
              "name": "fileId",
              "type": "string",
              "default": "",
              "description": "ID of the file to be sent",
              "displayOptions": {
                "show": {
                  "type": [
                    "image"
                  ],
                  "imageType": [
                    "fileId"
                  ]
                }
              }
            },
            {
              "displayName": "Detail",
              "name": "imageDetail",
              "type": "options",
              "default": "auto",
              "description": "The detail level of the image to be sent to the model",
              "options": [
                {
                  "name": "Auto",
                  "value": "auto"
                },
                {
                  "name": "Low",
                  "value": "low"
                },
                {
                  "name": "High",
                  "value": "high"
                }
              ],
              "displayOptions": {
                "show": {
                  "type": [
                    "image"
                  ]
                }
              }
            },
            {
              "displayName": "File Type",
              "name": "fileType",
              "type": "options",
              "default": "url",
              "options": [
                {
                  "name": "File URL",
                  "value": "url"
                },
                {
                  "name": "File ID",
                  "value": "fileId"
                },
                {
                  "name": "File Data",
                  "value": "base64"
                }
              ],
              "displayOptions": {
                "show": {
                  "type": [
                    "file"
                  ]
                }
              }
            },
            {
              "displayName": "File URL",
              "name": "fileUrl",
              "type": "string",
              "default": "",
              "placeholder": "e.g. https://example.com/file.pdf",
              "description": "URL of the file to be sent. Accepts base64 encoded files as well.",
              "displayOptions": {
                "show": {
                  "type": [
                    "file"
                  ],
                  "fileType": [
                    "url"
                  ]
                }
              }
            },
            {
              "displayName": "File ID",
              "name": "fileId",
              "type": "string",
              "default": "",
              "description": "ID of the file to be sent",
              "displayOptions": {
                "show": {
                  "type": [
                    "file"
                  ],
                  "fileType": [
                    "fileId"
                  ]
                }
              }
            },
            {
              "displayName": "File Data",
              "name": "binaryPropertyName",
              "type": "string",
              "default": "data",
              "placeholder": "e.g. data",
              "hint": "The name of the input field containing the binary file data to be processed",
              "description": "Name of the binary property which contains the file",
              "displayOptions": {
                "show": {
                  "type": [
                    "file"
                  ],
                  "fileType": [
                    "base64"
                  ]
                }
              }
            },
            {
              "displayName": "File Name",
              "name": "fileName",
              "type": "string",
              "default": "",
              "required": true,
              "displayOptions": {
                "show": {
                  "type": [
                    "file"
                  ],
                  "fileType": [
                    "base64"
                  ]
                }
              }
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "response"
          ],
          "resource": [
            "text"
          ]
        }
      },
      "typeOptions": {
        "sortable": true,
        "multipleValues": true
      }
    },
    {
      "displayName": "Simplify Output",
      "name": "simplify",
      "type": "boolean",
      "default": true,
      "description": "Whether to return a simplified version of the response instead of the raw data",
      "displayOptions": {
        "show": {
          "operation": [
            "response"
          ],
          "resource": [
            "text"
          ]
        }
      }
    },
    {
      "displayName": "Hide Tools",
      "name": "hideTools",
      "type": "hidden",
      "default": "hide",
      "displayOptions": {
        "show": {
          "modelId": [
            "gpt-3.5-turbo-16k-0613",
            "dall-e-3",
            "text-embedding-3-large",
            "dall-e-2",
            "whisper-1",
            "tts-1-hd-1106",
            "tts-1-hd",
            "gpt-4-0314",
            "text-embedding-3-small",
            "gpt-4-32k-0314",
            "gpt-3.5-turbo-0301",
            "gpt-4-vision-preview",
            "gpt-3.5-turbo-16k",
            "gpt-3.5-turbo-instruct-0914",
            "tts-1",
            "davinci-002",
            "gpt-3.5-turbo-instruct",
            "babbage-002",
            "tts-1-1106",
            "text-embedding-ada-002"
          ],
          "operation": [
            "response"
          ],
          "resource": [
            "text"
          ]
        }
      }
    },
    {
      "displayName": "Connect your own custom n8n tools to this node on the canvas",
      "name": "noticeTools",
      "type": "notice",
      "default": "",
      "displayOptions": {
        "hide": {
          "hideTools": [
            "hide"
          ]
        },
        "show": {
          "operation": [
            "response"
          ],
          "resource": [
            "text"
          ]
        }
      }
    },
    {
      "displayName": "Built-in Tools",
      "name": "builtInTools",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Web Search",
          "name": "webSearch",
          "type": "collection",
          "default": {
            "searchContextSize": "medium"
          },
          "options": [
            {
              "displayName": "Search Context Size",
              "description": "High level guidance for the amount of context window space to use for the search",
              "name": "searchContextSize",
              "type": "options",
              "default": "medium",
              "options": [
                {
                  "name": "Low",
                  "value": "low"
                },
                {
                  "name": "Medium",
                  "value": "medium"
                },
                {
                  "name": "High",
                  "value": "high"
                }
              ]
            },
            {
              "displayName": "Web Search Allowed Domains",
              "name": "allowedDomains",
              "type": "string",
              "default": "",
              "description": "Comma-separated list of domains to search. Only domains in this list will be searched.",
              "placeholder": "e.g. google.com, wikipedia.org"
            },
            {
              "displayName": "Country",
              "name": "country",
              "type": "string",
              "default": "",
              "placeholder": "e.g. US, GB"
            },
            {
              "displayName": "City",
              "name": "city",
              "type": "string",
              "default": "",
              "placeholder": "e.g. New York, London"
            },
            {
              "displayName": "Region",
              "name": "region",
              "type": "string",
              "default": "",
              "placeholder": "e.g. New York, London"
            }
          ]
        },
        {
          "displayName": "File Search",
          "name": "fileSearch",
          "type": "collection",
          "default": {
            "vectorStoreIds": "[]"
          },
          "options": [
            {
              "displayName": "Vector Store IDs",
              "name": "vectorStoreIds",
              "description": "The vector store IDs to use for the file search. Vector stores are managed via OpenAI Dashboard.",
              "type": "json",
              "default": "[]",
              "required": true
            },
            {
              "displayName": "Filters",
              "name": "filters",
              "type": "json",
              "default": "{}"
            },
            {
              "displayName": "Max Results",
              "name": "maxResults",
              "type": "number",
              "default": 1,
              "typeOptions": {
                "minValue": 1,
                "maxValue": 50
              }
            }
          ]
        },
        {
          "displayName": "Code Interpreter",
          "name": "codeInterpreter",
          "type": "boolean",
          "default": true,
          "description": "Whether to allow the model to execute code in a sandboxed environment"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "response"
          ],
          "resource": [
            "text"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Conversation ID",
          "name": "conversationId",
          "default": "",
          "description": "The conversation that this response belongs to. Input items and output items from this response are automatically added to this conversation after this response completes.",
          "type": "string"
        },
        {
          "displayName": "Include Additional Data",
          "name": "include",
          "default": [],
          "type": "multiOptions",
          "description": "Specify additional output data to include in the model response",
          "options": [
            {
              "name": "Code Interpreter Call Outputs",
              "value": "code_interpreter_call.outputs"
            },
            {
              "name": "Computer Call Output Image URL",
              "value": "computer_call_output.output.image_url"
            },
            {
              "name": "File Search Call Results",
              "value": "file_search_call.results"
            },
            {
              "name": "Message Input Image URL",
              "value": "message.input_image.image_url"
            },
            {
              "name": "Message Output Text Logprobs",
              "value": "message.output_text.logprobs"
            },
            {
              "name": "Reasoning Encrypted Content",
              "value": "reasoning.encrypted_content"
            },
            {
              "name": "Web Search Tool Call Sources",
              "value": "web_search_call.action.sources"
            }
          ]
        },
        {
          "displayName": "Instructions",
          "name": "instructions",
          "type": "string",
          "default": "",
          "description": "Instructions for the model to follow",
          "typeOptions": {
            "rows": 2
          }
        },
        {
          "displayName": "Maximum Number of Tokens",
          "name": "maxTokens",
          "default": 16,
          "description": "The maximum number of tokens to generate in the completion. Most models have a context length of 2048 tokens (except for the newest models, which support 32,768).",
          "type": "number",
          "typeOptions": {
            "maxValue": 32768
          }
        },
        {
          "displayName": "Max Tool Calls Iterations",
          "name": "maxToolsIterations",
          "type": "number",
          "default": 15,
          "description": "The maximum number of tool iteration cycles the LLM will run before stopping. A single iteration can contain multiple tool calls. Set to 0 for no limit."
        },
        {
          "displayName": "Max Built-in Tool Calls",
          "name": "maxToolCalls",
          "type": "number",
          "default": 15,
          "description": "The maximum number of total calls to built-in tools that can be processed in a response. This maximum number applies across all built-in tool calls, not per individual tool. Any further attempts to call a tool by the model will be ignored."
        },
        {
          "displayName": "Metadata",
          "name": "metadata",
          "type": "json",
          "description": "Set of 16 key-value pairs that can be attached to an object. This can be useful for storing additional information about the object in a structured format, and querying for objects via API or the dashboard. Keys are strings with a maximum length of 64 characters. Values are strings with a maximum length of 512 characters.",
          "default": "{}"
        },
        {
          "displayName": "Parallel Tool Calls",
          "name": "parallelToolCalls",
          "type": "boolean",
          "default": false,
          "description": "Whether to allow parallel tool calls. If true, the model can call multiple tools at once."
        },
        {
          "displayName": "Previous Response ID",
          "name": "previousResponseId",
          "type": "string",
          "default": "",
          "description": "The ID of the previous response to continue from. Cannot be used in conjunction with Conversation ID."
        },
        {
          "displayName": "Prompt",
          "name": "promptConfig",
          "type": "fixedCollection",
          "description": "Configure the reusable prompt template configured via OpenAI Dashboard. <a href=\"https://platform.openai.com/docs/guides/prompt-engineering#reusable-prompts\">Learn more</a>.",
          "default": {
            "promptOptions": [
              {
                "promptId": ""
              }
            ]
          },
          "options": [
            {
              "displayName": "Prompt",
              "name": "promptOptions",
              "values": [
                {
                  "displayName": "Prompt ID",
                  "name": "promptId",
                  "type": "string",
                  "default": "",
                  "description": "The unique identifier of the prompt template to use"
                },
                {
                  "displayName": "Version",
                  "name": "version",
                  "type": "string",
                  "default": "",
                  "description": "Optional version of the prompt template"
                },
                {
                  "displayName": "Variables",
                  "name": "variables",
                  "type": "json",
                  "default": "{}",
                  "description": "Variables to be substituted into the prompt template"
                }
              ]
            }
          ]
        },
        {
          "displayName": "Prompt Cache Key",
          "name": "promptCacheKey",
          "type": "string",
          "default": "",
          "description": "Used by OpenAI to cache responses for similar requests to optimize your cache hit rates"
        },
        {
          "displayName": "Reasoning",
          "name": "reasoning",
          "type": "fixedCollection",
          "default": {
            "reasoningOptions": [
              {
                "effort": "medium",
                "summary": "none"
              }
            ]
          },
          "options": [
            {
              "displayName": "Reasoning",
              "name": "reasoningOptions",
              "values": [
                {
                  "displayName": "Effort",
                  "name": "effort",
                  "type": "options",
                  "default": "medium",
                  "options": [
                    {
                      "name": "Low",
                      "value": "low"
                    },
                    {
                      "name": "Medium",
                      "value": "medium"
                    },
                    {
                      "name": "High",
                      "value": "high"
                    }
                  ]
                },
                {
                  "displayName": "Summary",
                  "name": "summary",
                  "type": "options",
                  "default": "auto",
                  "description": "A summary of the reasoning performed by the model. This can be useful for debugging and understanding the model's reasoning process.",
                  "options": [
                    {
                      "name": "None",
                      "value": "none"
                    },
                    {
                      "name": "Auto",
                      "value": "auto"
                    },
                    {
                      "name": "Concise",
                      "value": "concise"
                    },
                    {
                      "name": "Detailed",
                      "value": "detailed"
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "displayName": "Safety Identifier",
          "name": "safetyIdentifier",
          "type": "string",
          "default": "",
          "description": "A stable identifier used to help detect users of your application that may be violating OpenAI's usage policies. The IDs should be a string that uniquely identifies each user."
        },
        {
          "displayName": "Service Tier",
          "name": "serviceTier",
          "type": "options",
          "default": "auto",
          "description": "The service tier to use for the request",
          "options": [
            {
              "name": "Auto",
              "value": "auto"
            },
            {
              "name": "Flex",
              "value": "flex"
            },
            {
              "name": "Default",
              "value": "default"
            },
            {
              "name": "Priority",
              "value": "priority"
            }
          ]
        },
        {
          "displayName": "Store",
          "name": "store",
          "type": "boolean",
          "default": true,
          "description": "Whether to store the generated model response for later retrieval via API"
        },
        {
          "displayName": "Output Format",
          "name": "textFormat",
          "type": "fixedCollection",
          "default": {
            "textOptions": [
              {
                "type": "text"
              }
            ]
          },
          "options": [
            {
              "displayName": "Text",
              "name": "textOptions",
              "values": [
                {
                  "displayName": "Type",
                  "name": "type",
                  "type": "options",
                  "default": "",
                  "options": [
                    {
                      "name": "Text",
                      "value": "text"
                    },
                    {
                      "name": "JSON Schema (recommended)",
                      "value": "json_schema"
                    },
                    {
                      "name": "JSON Object",
                      "value": "json_object"
                    }
                  ]
                },
                {
                  "displayName": "Verbosity",
                  "name": "verbosity",
                  "type": "options",
                  "default": "medium",
                  "options": [
                    {
                      "name": "Low",
                      "value": "low"
                    },
                    {
                      "name": "Medium",
                      "value": "medium"
                    },
                    {
                      "name": "High",
                      "value": "high"
                    }
                  ]
                },
                {
                  "displayName": "Name",
                  "name": "name",
                  "type": "string",
                  "default": "my_schema",
                  "description": "The name of the response format. Must be a-z, A-Z, 0-9, or contain underscores and dashes, with a maximum length of 64.",
                  "displayOptions": {
                    "show": {
                      "type": [
                        "json_schema"
                      ]
                    }
                  }
                },
                {
                  "displayName": "All properties in the schema must be set to \"required\", when using \"strict\" mode.",
                  "name": "requiredNotice",
                  "type": "notice",
                  "default": "",
                  "displayOptions": {
                    "show": {
                      "strict": [
                        true
                      ]
                    }
                  }
                },
                {
                  "displayName": "Schema",
                  "name": "schema",
                  "type": "json",
                  "default": "{\n  \"type\": \"object\",\n  \"properties\": {\n    \"message\": {\n      \"type\": \"string\"\n    }\n  },\n  \"additionalProperties\": false,\n  \"required\": [\"message\"]\n}",
                  "description": "The schema of the response format",
                  "displayOptions": {
                    "show": {
                      "type": [
                        "json_schema"
                      ]
                    }
                  }
                },
                {
                  "displayName": "Description",
                  "name": "description",
                  "type": "string",
                  "default": "",
                  "description": "The description of the response format",
                  "displayOptions": {
                    "show": {
                      "type": [
                        "json_schema"
                      ]
                    }
                  }
                },
                {
                  "displayName": "Strict",
                  "name": "strict",
                  "type": "boolean",
                  "default": false,
                  "description": "Whether to require that the AI will always generate responses that match the provided JSON Schema",
                  "displayOptions": {
                    "show": {
                      "type": [
                        "json_schema"
                      ]
                    }
                  }
                }
              ]
            }
          ]
        },
        {
          "displayName": "Top Logprobs",
          "name": "topLogprobs",
          "type": "number",
          "default": 0,
          "description": "An integer between 0 and 20 specifying the number of most likely tokens to return at each token position, each with an associated log probability",
          "typeOptions": {
            "minValue": 0,
            "maxValue": 20
          }
        },
        {
          "displayName": "Output Randomness (Temperature)",
          "name": "temperature",
          "type": "number",
          "default": 1,
          "description": "What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic. We generally recommend altering this or top_p but not both",
          "typeOptions": {
            "minValue": 0,
            "maxValue": 2,
            "numberPrecision": 1
          }
        },
        {
          "displayName": "Output Randomness (Top P)",
          "name": "topP",
          "default": 1,
          "typeOptions": {
            "maxValue": 1,
            "minValue": 0,
            "numberPrecision": 1
          },
          "description": "An alternative to sampling with temperature, controls diversity via nucleus sampling: 0.5 means half of all likelihood-weighted options are considered. We generally recommend altering this or temperature but not both.",
          "type": "number"
        },
        {
          "displayName": "Truncation",
          "name": "truncation",
          "type": "boolean",
          "default": false,
          "description": "Whether to truncate the input to the model's context window size. When disabled will throw a 400 error instead."
        },
        {
          "displayName": "Background Mode",
          "name": "backgroundMode",
          "type": "fixedCollection",
          "default": {
            "values": [
              {
                "backgroundMode": true
              }
            ]
          },
          "options": [
            {
              "displayName": "Bakground",
              "name": "values",
              "values": [
                {
                  "displayName": "Background Mode",
                  "name": "enabled",
                  "type": "boolean",
                  "default": false,
                  "description": "Whether to run the model in background mode. If true, the model will run in background mode."
                },
                {
                  "displayName": "Timeout",
                  "name": "timeout",
                  "type": "number",
                  "default": 300,
                  "description": "The timeout for the background mode in seconds. If 0, the timeout is infinite.",
                  "typeOptions": {
                    "minValue": 0,
                    "maxValue": 3600
                  }
                }
              ]
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "response"
          ],
          "resource": [
            "text"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a conversation",
          "description": "Create a conversation"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a conversation",
          "description": "Get a conversation"
        },
        {
          "name": "Remove",
          "value": "remove",
          "action": "Remove a conversation",
          "description": "Remove a conversation"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a conversation",
          "description": "Update a conversation"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "conversation"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Messages",
      "name": "messages",
      "type": "fixedCollection",
      "default": {
        "values": [
          {
            "type": "text"
          }
        ]
      },
      "options": [
        {
          "displayName": "Message",
          "name": "values",
          "values": [
            {
              "displayName": "Role",
              "name": "role",
              "type": "options",
              "description": "Role in shaping the model's response, it tells the model how it should behave and interact with the user",
              "options": [
                {
                  "name": "User",
                  "value": "user",
                  "description": "Send a message as a user and get a response from the model"
                },
                {
                  "name": "Assistant",
                  "value": "assistant",
                  "description": "Tell the model to adopt a specific tone or personality"
                },
                {
                  "name": "System",
                  "value": "system",
                  "description": "Usually used to set the model's behavior or context for the next user message"
                }
              ],
              "default": "user"
            },
            {
              "displayName": "Prompt",
              "name": "content",
              "type": "string",
              "description": "The content of the message to be send",
              "default": "",
              "placeholder": "e.g. Hello, how can you help me?",
              "typeOptions": {
                "rows": 2
              },
              "displayOptions": {}
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "create"
          ],
          "resource": [
            "conversation"
          ]
        }
      },
      "typeOptions": {
        "sortable": true,
        "multipleValues": true
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Metadata",
          "name": "metadata",
          "type": "json",
          "description": "Set of 16 key-value pairs that can be attached to an object. This can be useful for storing additional information about the object in a structured format, and querying for objects via API or the dashboard. Keys are strings with a maximum length of 64 characters. Values are strings with a maximum length of 512 characters.",
          "default": "{}"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "create"
          ],
          "resource": [
            "conversation"
          ]
        }
      }
    },
    {
      "displayName": "Conversation ID",
      "name": "conversationId",
      "type": "string",
      "default": "",
      "description": "The ID of the conversation to delete",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "remove"
          ],
          "resource": [
            "conversation"
          ]
        }
      }
    },
    {
      "displayName": "Conversation ID",
      "name": "conversationId",
      "type": "string",
      "default": "",
      "description": "The ID of the conversation to update",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "update"
          ],
          "resource": [
            "conversation"
          ]
        }
      }
    },
    {
      "displayName": "Metadata",
      "name": "metadata",
      "type": "json",
      "default": "{}",
      "description": "Set of 16 key-value pairs that can be attached to an object. This can be useful for storing additional information about the object in a structured format, and querying for objects via API or the dashboard. Keys are strings with a maximum length of 64 characters. Values are strings with a maximum length of 512 characters.",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "update"
          ],
          "resource": [
            "conversation"
          ]
        }
      }
    },
    {
      "displayName": "Conversation ID",
      "name": "conversationId",
      "type": "string",
      "default": "",
      "description": "The ID of the conversation to retrieve",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "get"
          ],
          "resource": [
            "conversation"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "generate",
      "options": [
        {
          "name": "Generate",
          "value": "generate",
          "action": "Generate a video",
          "description": "Creates a video from a text prompt"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "video"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Model",
      "name": "modelId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "generate"
          ],
          "resource": [
            "video"
          ]
        }
      },
      "modes": [
        {
          "displayName": "From List",
          "name": "list",
          "type": "list",
          "typeOptions": {
            "searchListMethod": "videoModelSearch",
            "searchable": true
          }
        },
        {
          "displayName": "ID",
          "name": "id",
          "type": "string",
          "placeholder": "e.g. gpt-4"
        }
      ]
    },
    {
      "displayName": "Prompt",
      "name": "prompt",
      "type": "string",
      "default": "A video of a cat playing with a ball",
      "description": "The prompt to generate a video from",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "generate"
          ],
          "resource": [
            "video"
          ]
        }
      },
      "typeOptions": {
        "rows": 2
      }
    },
    {
      "displayName": "Seconds",
      "name": "seconds",
      "type": "number",
      "default": 4,
      "description": "Clip duration in seconds",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "generate"
          ],
          "resource": [
            "video"
          ]
        }
      }
    },
    {
      "displayName": "Size",
      "name": "size",
      "type": "options",
      "default": "1280x720",
      "description": "Output resolution formatted as width x height. 1024x1792 and 1792x1024 are only supported by Sora 2 Pro.",
      "options": [
        {
          "name": "720x1280",
          "value": "720x1280"
        },
        {
          "name": "1280x720",
          "value": "1280x720"
        },
        {
          "name": "1024x1792",
          "value": "1024x1792"
        },
        {
          "name": "1792x1024",
          "value": "1792x1024"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "generate"
          ],
          "resource": [
            "video"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Reference",
          "description": "Optional image reference that guides generation",
          "name": "binaryPropertyNameReference",
          "type": "string",
          "default": "data",
          "placeholder": "e.g. data"
        },
        {
          "displayName": "Wait Timeout",
          "name": "waitTime",
          "type": "number",
          "default": 300,
          "description": "Time to wait for the video to be generated in seconds",
          "typeOptions": {
            "minValue": 5,
            "maxValue": 7200
          }
        },
        {
          "displayName": "Output Field Name",
          "name": "fileName",
          "type": "string",
          "default": "data",
          "hint": "The name of the output field to put the binary file data in"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "generate"
          ],
          "resource": [
            "video"
          ]
        }
      }
    }
  ]

operations:
  [
    {
      "operation": "generate",
      "name": "Generate Audio",
      "description": "Creates audio from a text prompt"
    },
    {
      "operation": "transcribe",
      "name": "Transcribe a Recording",
      "description": "Transcribes audio into text"
    },
    {
      "operation": "translate",
      "name": "Translate a Recording",
      "description": "Translates audio into text in English"
    }
  ]


