# nodes

node_type: n8n-nodes-dust.dust
package_name: n8n-nodes-dust
display_name: Dust
description: Interact with Dust API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-01-07 20:08:15
author_name: dust-dev
author_github_url: https://github.com/dust-tt/dust-n8n-node.git
npm_package_name: n8n-nodes-dust
npm_version: 0.1.70
community_fetched_at: 2026-01-07T20:08:15.953Z
ai_summary_generated_at: 2026-01-08 10:45:32
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "agent",
      "options": [
        {
          "name": "Agent",
          "value": "agent"
        },
        {
          "name": "Document",
          "value": "document"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "talkToAssistant",
      "options": [
        {
          "name": "Talk To",
          "value": "talkToAssistant",
          "action": "Talk to an agent",
          "description": "Send a message to an agent"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "agent"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "uploadDocument",
      "options": [
        {
          "name": "Upload",
          "value": "uploadDocument",
          "action": "Upload a document",
          "description": "Upload a document to a data source"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "document"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Talk To",
      "value": "talkToAssistant",
      "action": "Talk to an agent",
      "description": "Send a message to an agent"
    },
    {
      "name": "Upload",
      "value": "uploadDocument",
      "action": "Upload a document",
      "description": "Upload a document to a data source"
    }
  ]

npm_readme:
  # n8n-nodes-dust

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

  Dust is a platform for creating custom AI agents that combine leading AI models with company knowledge to help teams work better, leveraging RAG technology for accurate, contextual responses.

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

  [Installation](#installation)  
  [Operations](#operations)  
  [Credentials](#credentials)  
  [Compatibility](#compatibility)  
  [Usage](#usage)  
  [Example Workflow](#example-workflow)  
  [Authentication](#authentication)  
  [Resources](#resources)  
  [Version history](#version-history)

  ## Installation

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

  ## Operations

  - Talk to an Agent
  - Upload a Document

  ## Credentials

  - Dust Workspace ID
  - Dust API Key
  - Dust Region

  ## Compatibility

  - n8n 1.1.1

  ## Usage

  1. **Add the Dust node to your workflow.**
  2. **Select the operation:**
     - _Talk to an Agent_: Send a message to a Dust agent and receive a response.
     - _Upload a Document_: Upload a document to a Dust data source.
  3. **Configure the required parameters:**
     - For "Talk to an Agent": Provide the message and select the agent.
     - For "Upload a Document": Provide Space ID, Data Source Name, Document ID, and Document Content.
  4. **(Optional) Fill in additional fields** for more control (e.g., username, email, timezone, tags, etc.).
  5. **Execute the workflow** to interact with Dust.

  ## Example Workflow

  ### Talk to an Agent

  - **Operation:** Talk to an Agent
  - **Parameters:**
    - Message: `What is the latest update on project X?`
    - Agent: (Select from dropdown)
    - Additional Fields (optional): Username, Email, Timezone

  **Output:**

  ```
  {
    "agentMessage": "Project X is on track for delivery next week.",
    "conversationUrl": "https://dust.tt/w/{workspaceId}/assistant/{conversationId}",
    "userMessage": { ... }
  }
  ```

  ### Upload a Document

  - **Operation:** Upload a Document
  - **Parameters:**
    - Space ID: `your_space_id`
    - Data Source Name: `your_data_source`
    - Document ID: `doc-123`
    - Document Content: `This is the content of the document.`
    - Additional Fields (optional): Title, MIME Type, Source URL, Tags, Async, Light Document Output

  **Output:**

  ```
  {
    "documentId": "doc-123",
    "status": "uploaded"
  }
  ```

  ## Authentication

  To use this node, you need to set up Dust API credentials in n8n:

  - **API Key:** Get your API key from your [Dust account settings](https://dust.tt/settings/api).
  - **Workspace ID:** Find your workspace ID in the Dust dashboard URL or settings.
  - **Region:** Select `EU` or `US` depending on your workspace location.

  Add these credentials in n8n under the "Dust API" credential type and reference them in the node.

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [Dust API Documentation](https://docs.dust.tt/reference/api)

  ## Version history

  - 0.1.1
    - Add SkipToolsValidation + rename assitant to agent
  - 0.1.0
    - Initial release

ai_documentation_summary:
  {"purpose":"The Dust node enables n8n users to interact with Dust AI agents and upload documents using RAG technology, allowing teams to leverage AI with company-specific knowledge for contextual, accurate responses.","capabilities":["Talk to an Agent","Upload a Document"],"authentication":"API Key, Workspace ID, and Region (EU or US) required; credentials are configured in n8n under the 'Dust API' credential type","commonUseCases":["Querying AI agents with context-specific questions about company data","Uploading internal documents to a Dust data source for retrieval in future conversations"],"limitations":[],"relatedNodes":["n8n-nodes-dust.dust"]}


node_type: n8n-nodes-gatus-trigger.gatusTrigger
package_name: n8n-nodes-gatus-trigger
display_name: Gatus Trigger
description: Receives webhook alerts from Gatus monitoring system
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-01-07 20:08:15
author_name: twin.sh
author_github_url: https://github.com/TwiN/
npm_package_name: n8n-nodes-gatus-trigger
npm_version: 1.0.4
community_fetched_at: 2026-01-07T20:08:15.953Z
ai_summary_generated_at: 2026-01-08 10:45:32
npm_readme:
  # n8n-nodes-gatus-trigger
  [![npm package version](https://img.shields.io/npm/v/n8n-nodes-gatus-trigger)](https://www.npmjs.com/package/n8n-nodes-gatus-trigger)

  This is a n8n community node that lets you receive webhook alerts from [Gatus](https://github.com/TwiN/gatus), a developer-oriented health monitoring and status page system.


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

  ### npm

  ```bash
  npm install n8n-nodes-gatus-trigger
  ```

  ### n8n Cloud
  For n8n cloud users, follow the [n8n Cloud installation guide](https://docs.n8n.io/integrations/community-nodes/installation/gui-install/).

  ## Operations
  This node provides a single trigger operation:

  - **Webhook Trigger**: Receives HTTP POST webhooks from Gatus when alerts are triggered or resolved

  ## Configuring Gatus
  To send alerts to this n8n trigger node, configure Gatus to use the n8n alerting provider:

  ### 1. Get Your Webhook URL
  After adding the Gatus Trigger node to your n8n workflow:
  1. Click "Listen for Test Event" to get the test webhook URL
  2. Once your workflow is activated, use the Production webhook URL

  ### 2. Configure Gatus
  Add the following to your Gatus configuration file (`config.yaml`):

  ```yaml
  alerting:
    n8n:
      webhook-url: "https://your-n8n-instance.com/webhook/your-webhook-path"
    default-alert:
      send-on-resolved: true 

  endpoints:
    - name: example-api
      url: "https://api.example.com/health"
      interval: 1m
      conditions:
        - "[STATUS] == 200"
      alerts:
        - type: n8n
          description: "API health check failed"
  ```

  ### Gatus Webhook Payload Structure
  Gatus automatically sends webhooks with the following JSON structure (based on the [official n8n provider implementation](https://github.com/TwiN/gatus/blob/master/alerting/provider/n8n/n8n.go)):

  - `title`: Title of the alert (configurable in Gatus, defaults to "Gatus")
  - `endpoint_name`: Name of the monitored endpoint
  - `endpoint_group`: Group the endpoint belongs to (optional)
  - `endpoint_url`: URL being monitored
  - `alert_description`: Description from your alert configuration (optional)
  - `resolved`: Boolean - `true` if alert is resolved, `false` if triggered
  - `message`: Auto-generated message describing the alert
  - `condition_results`: Array of condition check results (optional)

  **Note:** You typically don't need to customize the payload - Gatus sends the correct structure automatically. However, if you need to customize the title, you can configure it in your Gatus config:

  ```yaml
  alerting:
    n8n:
      webhook-url: "https://your-n8n-instance.com/webhook/your-webhook-path"
      title: "Production Monitoring"  # Optional: customize the title
  ```

  ## Node Parameters

  ### Path
  - **Optional**: Custom webhook path
  - **Default**: Auto-generated
  - Leave empty to use an automatically generated webhook path, or specify a custom path for easier management

  ### Options

  #### Alert Type Filter
  - **All**: Receive both triggered and resolved alerts (default)
  - **Triggered Only**: Only receive alerts when endpoints fail
  - **Resolved Only**: Only receive alerts when endpoints recover

  #### Endpoint Group Filter
  - Filter alerts by endpoint group
  - Leave empty to receive alerts from all groups
  - Example: Set to "production" to only receive alerts for production endpoints

  #### Endpoint Name Filter
  - Filter alerts by endpoint name
  - Leave empty to receive alerts from all endpoints
  - Example: Set to "api-server" to only receive alerts for that specific endpoint

  ## Example Workflows

  ### Basic Alert Notification

  ```
  Gatus Trigger → Send Email
  ```

  Send an email whenever a Gatus alert is triggered.

  ### Conditional Response Based on Alert Type

  ```
  Gatus Trigger → IF Node → Send Slack Message / Log to Database
  ```

  Send Slack notifications for triggered alerts and log resolved alerts to a database.

  ### Alert Management

  ```
  Gatus Trigger → Set Variables → HTTP Request → Update Dashboard
  ```

  Process the alert data and update an external monitoring dashboard.

  ## Output Data

  The trigger node outputs the following data structure:

  ```json
  {
    "title": "Gatus",
    "endpoint_name": "api-server",
    "endpoint_group": "production",
    "endpoint_url": "https://api.example.com/health",
    "alert_description": "API health check failed",
    "resolved": false,
    "message": "An alert for api-server has been triggered due to having failed 3 time(s) in a row",
    "condition_results": [
      {
        "condition": "[STATUS] == 200",
        "success": false
      },
      {
        "condition": "[RESPONSE_TIME] < 500",
        "success": true
      }
    ]
  }
  ```

  ### Field Descriptions

  - **title**: The configured title from Gatus (defaults to "Gatus")
  - **endpoint_name**: Name of the endpoint that triggered the alert
  - **endpoint_group**: Optional group classification
  - **endpoint_url**: The URL being monitored
  - **alert_description**: Custom description from your Gatus alert configuration
  - **resolved**: `true` when an alert is resolved, `false` when triggered
  - **message**: Human-readable message generated by Gatus
  - **condition_results**: Array of all condition checks with their results

  ## Development

  ### Setup

  ```bash
  # Install dependencies
  npm install

  # Build the node
  npm run build

  # Link for local development
  npm link
  cd ~/.n8n/nodes
  npm link n8n-nodes-gatus-trigger
  ```

  ### Testing

  To test the node locally:

  1. Start n8n with `n8n start`
  2. Add the Gatus Trigger node to a workflow
  3. Click "Listen for Test Event"
  4. Send a test webhook using curl:

  ```bash
  curl -X POST https://your-n8n-instance.com/webhook/your-webhook-path \
    -H "Content-Type: application/json" \
    -d '{
      "title": "Gatus",
      "endpoint_name": "test-api",
      "endpoint_group": "test",
      "endpoint_url": "https://test.example.com",
      "alert_description": "Test alert",
      "resolved": false,
      "message": "An alert for test-api has been triggered due to having failed 3 time(s) in a row",
      "condition_results": [
        {
          "condition": "[STATUS] == 200",
          "success": false
        }
      ]
    }'
  ```

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [Gatus documentation](https://gatus.io/docs/)
  - [Gatus GitHub repository](https://github.com/TwiN/gatus)
  - [Gatus alerting configuration](https://gatus.io/docs/alerting-getting-started)

ai_documentation_summary:
  {"purpose":"The Gatus Trigger node receives HTTP POST webhooks from the Gatus monitoring system when alerts are triggered or resolved, enabling integration with other n8n nodes for automated responses like notifications or logging.","capabilities":["Receive webhook alerts from Gatus for endpoint failures or recoveries","Filter alerts by alert type (triggered, resolved, or both)","Filter alerts by endpoint group or name","Supports custom webhook paths and configurable titles","Outputs structured JSON data with alert details including endpoint info, conditions, and resolution status"],"authentication":"None required; authentication is handled via Gatus configuration using a webhook URL","commonUseCases":["Sending email or Slack notifications when an endpoint fails","Logging resolved alerts to a database or monitoring system","Updating external dashboards or status pages based on alert events","Implementing conditional workflows based on alert type or endpoint"],"limitations":[],"relatedNodes":["Send Email","Slack","HTTP Request","IF Node","Database"]}


node_type: n8n-nodes-streak-crm.streak
package_name: n8n-nodes-streak-crm
display_name: Streak
description: Streak CRM Node
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-01-07 20:08:15
author_name: nader_heidari
author_github_url: https://github.com/nukleas/
npm_package_name: n8n-nodes-streak-crm
npm_version: 1.1.17
community_fetched_at: 2026-01-07T20:08:15.954Z
ai_summary_generated_at: 2026-01-08 10:45:32
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "user",
      "options": [
        {
          "name": "Box",
          "value": "box",
          "description": "Operate on Streak boxes (deals/opportunities)"
        },
        {
          "name": "Contact",
          "value": "contact",
          "description": "Operate on Streak contacts"
        },
        {
          "name": "Field",
          "value": "field",
          "description": "Operate on Streak fields and field values"
        },
        {
          "name": "Organization",
          "value": "organization",
          "description": "Operate on Streak organizations"
        },
        {
          "name": "Pipeline",
          "value": "pipeline",
          "description": "Operate on Streak pipelines"
        },
        {
          "name": "Stage",
          "value": "stage",
          "description": "Operate on Streak pipeline stages"
        },
        {
          "name": "Task",
          "value": "task",
          "description": "Operate on Streak tasks"
        },
        {
          "name": "Team",
          "value": "team",
          "description": "Operate on Streak teams"
        },
        {
          "name": "User",
          "value": "user",
          "description": "Operate on Streak users"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getCurrentUser",
      "options": [
        {
          "name": "Get Current User",
          "value": "getCurrentUser",
          "action": "Get current user",
          "description": "Get information about the current user"
        },
        {
          "name": "Get User",
          "value": "getUser",
          "action": "Get a user",
          "description": "Get information about a specific user by their key"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "user"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getMyTeams",
      "options": [
        {
          "name": "Get My Teams",
          "value": "getMyTeams",
          "action": "Get my teams",
          "description": "List all teams the authenticated user belongs to"
        },
        {
          "name": "Get Team",
          "value": "getTeam",
          "action": "Get a team",
          "description": "Get information about a specific team"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "team"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "listAllPipelines",
      "options": [
        {
          "name": "Create Pipeline",
          "value": "createPipeline",
          "action": "Create a pipeline",
          "description": "Creates a new pipeline"
        },
        {
          "name": "Delete Pipeline",
          "value": "deletePipeline",
          "action": "Delete a pipeline",
          "description": "Deletes a pipeline"
        },
        {
          "name": "Get Pipeline",
          "value": "getPipeline",
          "action": "Get a pipeline",
          "description": "Gets a specific pipeline by its key"
        },
        {
          "name": "List All Pipelines",
          "value": "listAllPipelines",
          "action": "List all pipelines",
          "description": "Lists all pipelines the user has access to"
        },
        {
          "name": "Move Boxes (Batch)",
          "value": "moveBoxesBatch",
          "action": "Move boxes between pipelines",
          "description": "Moves multiple boxes to a different pipeline"
        },
        {
          "name": "Update Pipeline",
          "value": "updatePipeline",
          "action": "Update a pipeline",
          "description": "Updates an existing pipeline"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "pipeline"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "listBoxes",
      "options": [
        {
          "name": "Create Box in a Pipeline",
          "value": "createBox",
          "action": "Create a box in a pipeline",
          "description": "Creates a new box in a pipeline"
        },
        {
          "name": "Delete Box",
          "value": "deleteBox",
          "action": "Delete a box",
          "description": "Deletes a box"
        },
        {
          "name": "Get Box",
          "value": "getBox",
          "action": "Get a box",
          "description": "Gets a specific box by its key"
        },
        {
          "name": "Get Multiple Boxes",
          "value": "getMultipleBoxes",
          "action": "Get multiple boxes",
          "description": "Gets multiple boxes by their keys"
        },
        {
          "name": "Get Timeline",
          "value": "getTimeline",
          "action": "Get timeline",
          "description": "Gets the timeline of events for a box"
        },
        {
          "name": "List Boxes in Pipeline",
          "value": "listBoxes",
          "action": "Get all boxes in a pipeline",
          "description": "Get all boxes (deals) in a pipeline"
        },
        {
          "name": "Update Box",
          "value": "updateBox",
          "action": "Update a box",
          "description": "Updates an existing box"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "box"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "listStages",
      "options": [
        {
          "name": "Create Stage in a Pipeline",
          "value": "createStage",
          "action": "Create a stage in a pipeline",
          "description": "Creates a new stage in a pipeline"
        },
        {
          "name": "Delete Stage",
          "value": "deleteStage",
          "action": "Delete a stage",
          "description": "Deletes a stage"
        },
        {
          "name": "Get Stage",
          "value": "getStage",
          "action": "Get a stage",
          "description": "Gets a specific stage by its key"
        },
        {
          "name": "List Stages in a Pipeline",
          "value": "listStages",
          "action": "List stages in a pipeline",
          "description": "Lists all stages in a pipeline"
        },
        {
          "name": "Update Stage",
          "value": "updateStage",
          "action": "Update a stage",
          "description": "Updates an existing stage"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "stage"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "listFields",
      "options": [
        {
          "name": "Create Field in a Pipeline",
          "value": "createField",
          "action": "Create a field in a pipeline",
          "description": "Creates a new field in a pipeline"
        },
        {
          "name": "Delete Field",
          "value": "deleteField",
          "action": "Delete a field",
          "description": "Deletes a field"
        },
        {
          "name": "Get Field",
          "value": "getField",
          "action": "Get a field",
          "description": "Gets a specific field by its key"
        },
        {
          "name": "Get Field Value in a Box",
          "value": "getFieldValue",
          "action": "Get a field value in a box",
          "description": "Gets a specific field value for a box"
        },
        {
          "name": "List Field Values in a Box",
          "value": "listFieldValues",
          "action": "List field values in a box",
          "description": "Lists all field values for a box"
        },
        {
          "name": "List Fields in a Pipeline",
          "value": "listFields",
          "action": "List fields in a pipeline",
          "description": "Lists all fields in a pipeline"
        },
        {
          "name": "Update Field",
          "value": "updateField",
          "action": "Update a field",
          "description": "Updates an existing field"
        },
        {
          "name": "Update Field Value in a Box",
          "value": "updateFieldValue",
          "action": "Update a field value in a box",
          "description": "Updates a field value for a box"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "field"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getContact",
      "options": [
        {
          "name": "Get Contact",
          "value": "getContact",
          "action": "Get a contact",
          "description": "Gets a specific contact"
        },
        {
          "name": "Create Contact",
          "value": "createContact",
          "action": "Create a contact",
          "description": "Creates a new contact"
        },
        {
          "name": "Update Contact",
          "value": "updateContact",
          "action": "Update a contact",
          "description": "Updates an existing contact"
        },
        {
          "name": "Delete Contact",
          "value": "deleteContact",
          "action": "Delete a contact",
          "description": "Deletes a contact"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "contact"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getOrganization",
      "options": [
        {
          "name": "Check Existing Organizations",
          "value": "checkExistingOrganizations",
          "action": "Check existing organizations",
          "description": "Checks for existing organizations by name or domain"
        },
        {
          "name": "Create Organization",
          "value": "createOrganization",
          "action": "Create an organization",
          "description": "Creates a new organization"
        },
        {
          "name": "Delete Organization",
          "value": "deleteOrganization",
          "action": "Delete an organization",
          "description": "Deletes an organization"
        },
        {
          "name": "Get Organization",
          "value": "getOrganization",
          "action": "Get an organization",
          "description": "Gets a specific organization"
        },
        {
          "name": "Update Organization",
          "value": "updateOrganization",
          "action": "Update an organization",
          "description": "Updates an existing organization"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "organization"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getTask",
      "options": [
        {
          "name": "Create Task in a Box",
          "value": "createTask",
          "action": "Create a task in a box",
          "description": "Creates a new task for a box"
        },
        {
          "name": "Delete Task",
          "value": "deleteTask",
          "action": "Delete a task",
          "description": "Deletes a task"
        },
        {
          "name": "Get Task",
          "value": "getTask",
          "action": "Get a task",
          "description": "Gets a specific task"
        },
        {
          "name": "Get Tasks in a Box",
          "value": "getTasksInBox",
          "action": "Get tasks in a box",
          "description": "Gets all tasks associated with a box"
        },
        {
          "name": "Update Task",
          "value": "updateTask",
          "action": "Update a task",
          "description": "Updates an existing task"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "task"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get Current User",
      "value": "getCurrentUser",
      "action": "Get current user",
      "description": "Get information about the current user"
    },
    {
      "name": "Get User",
      "value": "getUser",
      "action": "Get a user",
      "description": "Get information about a specific user by their key"
    },
    {
      "name": "Get My Teams",
      "value": "getMyTeams",
      "action": "Get my teams",
      "description": "List all teams the authenticated user belongs to"
    },
    {
      "name": "Get Team",
      "value": "getTeam",
      "action": "Get a team",
      "description": "Get information about a specific team"
    },
    {
      "name": "Create Pipeline",
      "value": "createPipeline",
      "action": "Create a pipeline",
      "description": "Creates a new pipeline"
    },
    {
      "name": "Delete Pipeline",
      "value": "deletePipeline",
      "action": "Delete a pipeline",
      "description": "Deletes a pipeline"
    },
    {
      "name": "Get Pipeline",
      "value": "getPipeline",
      "action": "Get a pipeline",
      "description": "Gets a specific pipeline by its key"
    },
    {
      "name": "List All Pipelines",
      "value": "listAllPipelines",
      "action": "List all pipelines",
      "description": "Lists all pipelines the user has access to"
    },
    {
      "name": "Move Boxes (Batch)",
      "value": "moveBoxesBatch",
      "action": "Move boxes between pipelines",
      "description": "Moves multiple boxes to a different pipeline"
    },
    {
      "name": "Update Pipeline",
      "value": "updatePipeline",
      "action": "Update a pipeline",
      "description": "Updates an existing pipeline"
    },
    {
      "name": "Create Box in a Pipeline",
      "value": "createBox",
      "action": "Create a box in a pipeline",
      "description": "Creates a new box in a pipeline"
    },
    {
      "name": "Delete Box",
      "value": "deleteBox",
      "action": "Delete a box",
      "description": "Deletes a box"
    },
    {
      "name": "Get Box",
      "value": "getBox",
      "action": "Get a box",
      "description": "Gets a specific box by its key"
    },
    {
      "name": "Get Multiple Boxes",
      "value": "getMultipleBoxes",
      "action": "Get multiple boxes",
      "description": "Gets multiple boxes by their keys"
    },
    {
      "name": "Get Timeline",
      "value": "getTimeline",
      "action": "Get timeline",
      "description": "Gets the timeline of events for a box"
    },
    {
      "name": "List Boxes in Pipeline",
      "value": "listBoxes",
      "action": "Get all boxes in a pipeline",
      "description": "Get all boxes (deals) in a pipeline"
    },
    {
      "name": "Update Box",
      "value": "updateBox",
      "action": "Update a box",
      "description": "Updates an existing box"
    },
    {
      "name": "Create Stage in a Pipeline",
      "value": "createStage",
      "action": "Create a stage in a pipeline",
      "description": "Creates a new stage in a pipeline"
    },
    {
      "name": "Delete Stage",
      "value": "deleteStage",
      "action": "Delete a stage",
      "description": "Deletes a stage"
    },
    {
      "name": "Get Stage",
      "value": "getStage",
      "action": "Get a stage",
      "description": "Gets a specific stage by its key"
    },
    {
      "name": "List Stages in a Pipeline",
      "value": "listStages",
      "action": "List stages in a pipeline",
      "description": "Lists all stages in a pipeline"
    },
    {
      "name": "Update Stage",
      "value": "updateStage",
      "action": "Update a stage",
      "description": "Updates an existing stage"
    },
    {
      "name": "Create Field in a Pipeline",
      "value": "createField",
      "action": "Create a field in a pipeline",
      "description": "Creates a new field in a pipeline"
    },
    {
      "name": "Delete Field",
      "value": "deleteField",
      "action": "Delete a field",
      "description": "Deletes a field"
    },
    {
      "name": "Get Field",
      "value": "getField",
      "action": "Get a field",
      "description": "Gets a specific field by its key"
    },
    {
      "name": "Get Field Value in a Box",
      "value": "getFieldValue",
      "action": "Get a field value in a box",
      "description": "Gets a specific field value for a box"
    },
    {
      "name": "List Field Values in a Box",
      "value": "listFieldValues",
      "action": "List field values in a box",
      "description": "Lists all field values for a box"
    },
    {
      "name": "List Fields in a Pipeline",
      "value": "listFields",
      "action": "List fields in a pipeline",
      "description": "Lists all fields in a pipeline"
    },
    {
      "name": "Update Field",
      "value": "updateField",
      "action": "Update a field",
      "description": "Updates an existing field"
    },
    {
      "name": "Update Field Value in a Box",
      "value": "updateFieldValue",
      "action": "Update a field value in a box",
      "description": "Updates a field value for a box"
    },
    {
      "name": "Get Contact",
      "value": "getContact",
      "action": "Get a contact",
      "description": "Gets a specific contact"
    },
    {
      "name": "Create Contact",
      "value": "createContact",
      "action": "Create a contact",
      "description": "Creates a new contact"
    },
    {
      "name": "Update Contact",
      "value": "updateContact",
      "action": "Update a contact",
      "description": "Updates an existing contact"
    },
    {
      "name": "Delete Contact",
      "value": "deleteContact",
      "action": "Delete a contact",
      "description": "Deletes a contact"
    },
    {
      "name": "Check Existing Organizations",
      "value": "checkExistingOrganizations",
      "action": "Check existing organizations",
      "description": "Checks for existing organizations by name or domain"
    },
    {
      "name": "Create Organization",
      "value": "createOrganization",
      "action": "Create an organization",
      "description": "Creates a new organization"
    },
    {
      "name": "Delete Organization",
      "value": "deleteOrganization",
      "action": "Delete an organization",
      "description": "Deletes an organization"
    },
    {
      "name": "Get Organization",
      "value": "getOrganization",
      "action": "Get an organization",
      "description": "Gets a specific organization"
    },
    {
      "name": "Update Organization",
      "value": "updateOrganization",
      "action": "Update an organization",
      "description": "Updates an existing organization"
    },
    {
      "name": "Create Task in a Box",
      "value": "createTask",
      "action": "Create a task in a box",
      "description": "Creates a new task for a box"
    },
    {
      "name": "Delete Task",
      "value": "deleteTask",
      "action": "Delete a task",
      "description": "Deletes a task"
    },
    {
      "name": "Get Task",
      "value": "getTask",
      "action": "Get a task",
      "description": "Gets a specific task"
    },
    {
      "name": "Get Tasks in a Box",
      "value": "getTasksInBox",
      "action": "Get tasks in a box",
      "description": "Gets all tasks associated with a box"
    },
    {
      "name": "Update Task",
      "value": "updateTask",
      "action": "Update a task",
      "description": "Updates an existing task"
    }
  ]

npm_readme:
  # n8n-nodes-streak-crm

  This is an n8n community node that lets you use [Streak CRM](https://streak.com) in your n8n workflows.

  Streak CRM is a powerful customer relationship management (CRM) tool integrated directly into Gmail that helps teams track leads, manage sales pipelines, and streamline customer communications.

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

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

  ## Installation

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

  ```bash
  npm install n8n-nodes-streak-crm
  ```

  Or if you use n8n Desktop, you can go to **Settings > Community nodes > Install** and provide the package name `n8n-nodes-streak-crm`.

  ## Operations

  This node supports a comprehensive set of operations across various Streak CRM resources.

  ### Architecture Improvements

  The node now features a dedicated `StreakApiService` class that centralizes all API interactions, providing:

  - Consistent error handling across all operations
  - Strong TypeScript typing for better code reliability
  - Improved performance with optimized request handling
  - Better developer experience for future enhancements

  ### User Operations
  - **Get Current User** - Retrieve the details of the current authenticated user
  - **Get User** - Retrieve details of a specific user by key

  ### Team Operations
  - **Get My Teams** - Retrieve all teams the current user belongs to
  - **Get Team** - Retrieve details of a specific team by key

  ### Pipeline Operations
  - **List All Pipelines** - Get all available pipelines
  - **Get Pipeline** - Retrieve a specific pipeline by key
  - **Create Pipeline** - Create a new pipeline with customizable properties
  - **Update Pipeline** - Update properties of an existing pipeline
  - **Delete Pipeline** - Remove a pipeline
  - **Move Boxes Between Pipelines** - Move multiple boxes (deals) between pipelines in batch

  ### Box Operations
  - **List Boxes in Pipeline** - Get all boxes (deals) in a specific pipeline
  - **Get Box** - Retrieve a specific box by key
  - **Get Multiple Boxes** - Retrieve multiple boxes at once
  - **Create Box** - Create a new box in a pipeline
  - **Update Box** - Update properties of an existing box
  - **Delete Box** - Remove a box
  - **Get Box Timeline** - Retrieve the timeline of events for a box

  ### Stage Operations
  - **List Stages** - Get all stages in a pipeline
  - **Get Stage** - Retrieve a specific stage by key
  - **Create Stage** - Create a new stage in a pipeline
  - **Update Stage** - Update properties of an existing stage
  - **Delete Stage** - Remove a stage from a pipeline

  ### Field Operations
  - **List Fields** - Get all fields in a pipeline
  - **Get Field** - Retrieve a specific field by key
  - **Create Field** - Create a new field in a pipeline
  - **Update Field** - Update properties of an existing field
  - **Delete Field** - Remove a field from a pipeline
  - **List Field Values** - Get all field values for a box
  - **Get Field Value** - Retrieve a specific field value
  - **Update Field Value** - Update a field value for a box

  ### Contact Operations
  - **Get Contact** - Retrieve a specific contact by key
  - **Create Contact** - Create a new contact
  - **Update Contact** - Update properties of an existing contact
  - **Delete Contact** - Remove a contact

  ### Organization Operations
  - **Get Organization** - Retrieve a specific organization by key
  - **Create Organization** - Create a new organization
  - **Check Existing Organizations** - Search for existing organizations by name or domain
  - **Update Organization** - Update properties of an existing organization
  - **Delete Organization** - Remove an organization

  ### Task Operations
  - **Get Task** - Retrieve a specific task by key
  - **Get Tasks in Box** - Get all tasks associated with a box
  - **Create Task** - Create a new task for a box
  - **Update Task** - Update properties of an existing task
  - **Delete Task** - Remove a task

  ## Credentials

  To use this node, you need an API key from Streak CRM.

  ### How to get your API key:

  1. Log in to your Streak account at [streak.com](https://streak.com)
  2. Go to **Settings** > **API** 
  3. Copy your API key

  In n8n, create a new credential of type **Streak CRM API** and enter your API key.

  ## Compatibility

  This node was developed and tested with n8n version 1.0.0 and Streak API v1.

  ## Usage

  ### Example: Creating a new pipeline and adding a box (deal)

  This is a simple workflow to create a pipeline and then add a box to it:

  1. **Streak CRM node** with operation **Create Pipeline**
     - Set name: `New Sales Pipeline`
     - Optional: Add description, team key, and other properties

  2. **Streak CRM node** with operation **Create Box**
     - Use the pipeline key from the previous node
     - Set name: `Potential Client`
     - Optional: Add stage key and other properties

  ### Example: Managing contacts and linking them to boxes

  1. **Streak CRM node** with operation **Create Contact**
     - Set email: `client@example.com`
     - Add fields for name, organization, etc.

  2. **Streak CRM node** with operation **Update Box**
     - Use an existing box key
     - Link the contact by updating field values

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  * [Streak API Documentation](https://streak.readme.io/reference/about-the-streak-api)
  * [Streak User Guide](https://streak.com/support/articles)

  ## Version History

  ### 1.0.3
  - Added a comprehensive StreakApiService class to centralize API interactions
  - Improved pipeline selection with dynamic dropdown loading
  - Fixed Box Keys field handling in Move Boxes operation
  - Enhanced error handling and API request consistency
  - Added TypeScript interfaces for better type safety

  ### 1.0.2
  - Initial release with comprehensive support for Users, Teams, Pipelines, Boxes, Stages, Fields, Contacts, Organizations, and Tasks
  - Support for pagination in list operations
  - Detailed error handling

  ## License

  [MIT](LICENSE.md)

ai_documentation_summary:
  {"purpose":"The Streak CRM node enables integration with Streak CRM to manage customer data, sales pipelines, contacts, organizations, tasks, and more within n8n workflows.","capabilities":["Retrieve user and team details","Manage pipelines (create, update, delete, move boxes)","Manage boxes (deals) including creation, updates, and timeline retrieval","Manage stages, fields, and field values","Create, update, and delete contacts and organizations","Create and manage tasks linked to boxes"],"authentication":"API key required","commonUseCases":["Creating and managing sales pipelines and deals","Linking contacts to specific deals or boxes","Updating deal stages and properties","Automating task creation for follow-ups","Syncing customer data between email and CRM"],"limitations":[],"relatedNodes":["n8n-nodes-salesforce-crm","n8n-nodes-zapier","n8n-nodes-gmail"]}


node_type: n8n-nodes-outscraper.outscraper
package_name: n8n-nodes-outscraper
display_name: Outscraper
description: Interact with Outscraper API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-01-07 20:08:15
author_name: outscraper-api
author_github_url: https://github.com/outscraper/
npm_package_name: n8n-nodes-outscraper
npm_version: 0.1.9
community_fetched_at: 2026-01-07T20:08:15.955Z
ai_summary_generated_at: 2026-01-08 10:45:32
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "googleMaps",
      "options": [
        {
          "name": "Airbnb",
          "value": "airbnb"
        },
        {
          "name": "AppStore",
          "value": "appStore"
        },
        {
          "name": "Booking",
          "value": "booking"
        },
        {
          "name": "Company Insight",
          "value": "companyInsights"
        },
        {
          "name": "Company Website Finder",
          "value": "companyWebsiteFinder"
        },
        {
          "name": "Emails & Contact",
          "value": "emailsAndContacts"
        },
        {
          "name": "Expedia",
          "value": "expedia"
        },
        {
          "name": "G2 Review",
          "value": "g2Reviews"
        },
        {
          "name": "Geocoding",
          "value": "geocoding"
        },
        {
          "name": "GetApp Review",
          "value": "getAppReviews"
        },
        {
          "name": "Google Map",
          "value": "googleMaps"
        },
        {
          "name": "Google Search",
          "value": "googleSearch"
        },
        {
          "name": "Indeed",
          "value": "indeed"
        },
        {
          "name": "Phone Identity Finder",
          "value": "phoneIdentityFinder"
        },
        {
          "name": "Phones Owner",
          "value": "phonesOwners"
        },
        {
          "name": "Product Hunt",
          "value": "productHunt"
        },
        {
          "name": "Similarweb",
          "value": "similarweb"
        },
        {
          "name": "Target Review",
          "value": "targetReviews"
        },
        {
          "name": "TikTok Profile",
          "value": "tiktokProfiles"
        },
        {
          "name": "TripAdvisor",
          "value": "tripadvisor"
        },
        {
          "name": "Trustpilot",
          "value": "trustpilot"
        },
        {
          "name": "Twitter Profile",
          "value": "twitterProfiles"
        },
        {
          "name": "Universal AI Scraper",
          "value": "universalScraper"
        },
        {
          "name": "Walmart Review",
          "value": "walmartReviews"
        },
        {
          "name": "WebPage Screenshoter",
          "value": "webPageScreenshoter"
        },
        {
          "name": "Whitepages Addresses Scraper",
          "value": "whitepagesAddresses"
        },
        {
          "name": "Yellow Pages Search",
          "value": "yellowPagesSearch"
        },
        {
          "name": "Yelp",
          "value": "yelp"
        },
        {
          "name": "YouTube",
          "value": "youtube"
        },
        {
          "name": "Zillow",
          "value": "zillow"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "search",
      "options": [
        {
          "name": "Search",
          "value": "search",
          "action": "Search for businesses on google maps",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "/maps/search-v3",
              "method": "GET"
            }
          },
          "description": "Search for businesses on Google Maps"
        },
        {
          "name": "Get Reviews",
          "value": "reviews",
          "action": "Get reviews for a place on google maps",
          "routing": {
            "request": {
              "url": "/maps/reviews-v3",
              "method": "GET"
            }
          },
          "description": "Get reviews for a place on Google Maps"
        },
        {
          "name": "Get Photos",
          "value": "photos",
          "action": "Get photos for a place on google maps",
          "routing": {
            "request": {
              "url": "/maps/photos-v3",
              "method": "GET"
            }
          },
          "description": "Get photos for a place on Google Maps"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "googleMaps"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "search",
      "options": [
        {
          "name": "Search",
          "value": "search",
          "action": "Search on google",
          "routing": {
            "request": {
              "url": "/google-search-v3",
              "method": "GET"
            }
          },
          "description": "Search on Google"
        },
        {
          "name": "Search Careers",
          "value": "searchCareers",
          "action": "Search for career listings on google",
          "routing": {
            "request": {
              "url": "/google-search-careers",
              "method": "GET"
            }
          },
          "description": "Search for career listings on Google"
        },
        {
          "name": "Search Events",
          "value": "searchEvents",
          "action": "Search for events on google",
          "routing": {
            "request": {
              "url": "/google-search-events",
              "method": "GET"
            }
          },
          "description": "Search for events on Google"
        },
        {
          "name": "Search Images",
          "value": "searchImages",
          "action": "Search for images on google",
          "routing": {
            "request": {
              "url": "/google-search-images-v2",
              "method": "GET"
            }
          },
          "description": "Search for images on Google"
        },
        {
          "name": "Search News",
          "value": "searchNews",
          "action": "Search for news on google",
          "routing": {
            "request": {
              "url": "/google-search-news",
              "method": "GET"
            }
          },
          "description": "Search for news on Google"
        },
        {
          "name": "Search Shopping",
          "value": "searchShopping",
          "action": "Search for shopping products on google",
          "routing": {
            "request": {
              "url": "/google-search-shopping",
              "method": "GET"
            }
          },
          "description": "Search for shopping products on Google"
        },
        {
          "name": "Search Videos",
          "value": "searchVideos",
          "action": "Search for videos on google",
          "routing": {
            "request": {
              "url": "/google-search-videos",
              "method": "GET"
            }
          },
          "description": "Search for videos on Google"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "googleSearch"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "reviews",
      "options": [
        {
          "name": "Get Reviews",
          "value": "reviews",
          "action": "Get reviews from G2",
          "routing": {
            "request": {
              "url": "/g2/reviews",
              "method": "GET"
            }
          },
          "description": "Get reviews from G2"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "g2Reviews"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "business",
      "options": [
        {
          "name": "Get Business Info",
          "value": "business",
          "action": "Get business information from trustpilot",
          "routing": {
            "request": {
              "url": "/trustpilot",
              "method": "GET"
            }
          },
          "description": "Get business information from Trustpilot"
        },
        {
          "name": "Search",
          "value": "search",
          "action": "Search businesses on trustpilot",
          "routing": {
            "request": {
              "url": "/trustpilot/search",
              "method": "GET"
            }
          },
          "description": "Search businesses on Trustpilot"
        },
        {
          "name": "Get Reviews",
          "value": "reviews",
          "action": "Get reviews from trustpilot",
          "routing": {
            "request": {
              "url": "/trustpilot/reviews",
              "method": "GET"
            }
          },
          "description": "Get reviews from Trustpilot"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "trustpilot"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "reviews",
      "options": [
        {
          "name": "Get Reviews",
          "value": "reviews",
          "action": "Get reviews from trip advisor",
          "routing": {
            "request": {
              "url": "/tripadvisor-reviews",
              "method": "GET"
            }
          },
          "description": "Get reviews from TripAdvisor"
        },
        {
          "name": "Search",
          "value": "search",
          "action": "Search on trip advisor",
          "routing": {
            "request": {
              "url": "/tripadvisor-search",
              "method": "GET"
            }
          },
          "description": "Search on TripAdvisor"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "tripadvisor"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "search",
      "options": [
        {
          "name": "Search",
          "value": "search",
          "action": "Search on expedia",
          "routing": {
            "request": {
              "url": "/expedia/search",
              "method": "GET"
            }
          },
          "description": "Search on Expedia"
        },
        {
          "name": "Get Reviews",
          "value": "reviews",
          "action": "Get reviews from expedia",
          "routing": {
            "request": {
              "url": "/expedia/reviews",
              "method": "GET"
            }
          },
          "description": "Get reviews from Expedia"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "expedia"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "search",
      "options": [
        {
          "name": "Search",
          "value": "search",
          "action": "Search for videos on you tube",
          "description": "Search for videos on YouTube"
        },
        {
          "name": "Channel",
          "value": "channel",
          "action": "Get you tube channel information",
          "description": "Get YouTube channel information"
        },
        {
          "name": "Comments",
          "value": "comments",
          "action": "Get comments from you tube videos",
          "description": "Get comments from YouTube videos"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "youtube"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "search",
      "options": [
        {
          "name": "Search",
          "value": "search",
          "action": "Search on yelp",
          "routing": {
            "request": {
              "url": "/yelp-search",
              "method": "GET"
            }
          },
          "description": "Search on Yelp"
        },
        {
          "name": "Business",
          "value": "business",
          "action": "Get business information from yelp",
          "routing": {
            "request": {
              "url": "/yelp-business",
              "method": "GET"
            }
          },
          "description": "Get business information from Yelp"
        },
        {
          "name": "Reviews",
          "value": "reviews",
          "action": "Get reviews from yelp businesses",
          "routing": {
            "request": {
              "url": "/yelp-reviews",
              "method": "GET"
            }
          },
          "description": "Get reviews from Yelp businesses"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "yelp"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "reviews",
      "options": [
        {
          "name": "Reviews",
          "value": "reviews",
          "action": "Get reviews from product hunt",
          "routing": {
            "request": {
              "url": "/producthunt-reviews",
              "method": "GET"
            }
          },
          "description": "Get reviews from Product Hunt"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "productHunt"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "jobSearch",
      "options": [
        {
          "name": "Job Search",
          "value": "jobSearch",
          "action": "Get jobs from indeed",
          "routing": {
            "request": {
              "url": "/indeed-jobs",
              "method": "GET"
            }
          },
          "description": "Get jobs from Indeed"
        },
        {
          "name": "Reviews",
          "value": "reviews",
          "action": "Get reviews from indeed companies",
          "routing": {
            "request": {
              "url": "/indeed-reviews",
              "method": "GET"
            }
          },
          "description": "Get reviews from Indeed companies"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "indeed"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "search",
      "options": [
        {
          "name": "Search",
          "value": "search",
          "action": "Search on booking",
          "routing": {
            "request": {
              "url": "/booking/search",
              "method": "GET"
            }
          },
          "description": "Search results from Booking.com"
        },
        {
          "name": "Reviews",
          "value": "reviews",
          "action": "Get reviews from booking",
          "routing": {
            "request": {
              "url": "/booking/reviews",
              "method": "GET"
            }
          },
          "description": "Get reviews from Booking.com hotels"
        },
        {
          "name": "Prices",
          "value": "prices",
          "action": "Get prices from booking",
          "routing": {
            "request": {
              "url": "/booking/prices",
              "method": "GET"
            }
          },
          "description": "Get prices from Booking.com hotels"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "booking"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "search",
      "options": [
        {
          "name": "Search",
          "value": "search",
          "action": "Search on zillow",
          "routing": {
            "request": {
              "url": "/zillow/search",
              "method": "GET"
            }
          },
          "description": "Returns listings from Zillow"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "zillow"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "reviews",
      "options": [
        {
          "name": "Reviews",
          "value": "reviews",
          "action": "Get reviews from appstore",
          "routing": {
            "request": {
              "url": "/appstore/reviews",
              "method": "GET"
            }
          },
          "description": "Returns reviews from AppStore apps"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "appStore"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "geocode",
      "options": [
        {
          "name": "Geocode",
          "value": "geocode",
          "action": "Geocode address",
          "routing": {
            "request": {
              "url": "/geocoding",
              "method": "GET"
            }
          },
          "description": "Translates human-readable addresses into locations on the map"
        },
        {
          "name": "Reverse Geocode",
          "value": "reverseGeocode",
          "action": "Reverse geocode coordinates",
          "routing": {
            "request": {
              "url": "/reverse-geocoding",
              "method": "GET"
            }
          },
          "description": "Translate locations on the map into human-readable addresses"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "geocoding"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getInsights",
      "options": [
        {
          "name": "Get Insights",
          "value": "getInsights",
          "action": "Get company insights",
          "routing": {
            "request": {
              "url": "/company-insights",
              "method": "GET"
            }
          },
          "description": "Finds company details such as revenue, size, founding year, public status, etc"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "companyInsights"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "scrape",
      "options": [
        {
          "name": "Scrape",
          "value": "scrape",
          "action": "Scrape web page",
          "routing": {
            "request": {
              "url": "/universal-scraper",
              "method": "GET"
            }
          },
          "description": "Extracts the data you need from any web page by using AI"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "universalScraper"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "screenshot",
      "options": [
        {
          "name": "Screenshot",
          "value": "screenshot",
          "action": "Screenshot web page",
          "routing": {
            "request": {
              "url": "/webpage-screenshoter",
              "method": "GET"
            }
          },
          "description": "Captures high-quality screenshots of any webpage"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "webPageScreenshoter"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "search",
      "options": [
        {
          "name": "Search",
          "value": "search",
          "action": "Search on airbnb",
          "routing": {
            "request": {
              "url": "/airbnb/search",
              "method": "GET"
            }
          },
          "description": "Returns search results from Airbnb"
        },
        {
          "name": "Reviews",
          "value": "reviews",
          "action": "Get reviews from airbnb",
          "routing": {
            "request": {
              "url": "/airbnb/reviews",
              "method": "GET"
            }
          },
          "description": "Returns reviews from Airbnb accommodations"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "airbnb"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "reviews",
      "options": [
        {
          "name": "Reviews",
          "value": "reviews",
          "action": "Get reviews from walmart",
          "routing": {
            "request": {
              "url": "/walmart/reviews",
              "method": "GET"
            }
          },
          "description": "Returns reviews from a list of Walmart products"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "walmartReviews"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "reviews",
      "options": [
        {
          "name": "Reviews",
          "value": "reviews",
          "action": "Get reviews from target",
          "routing": {
            "request": {
              "url": "/target/reviews",
              "method": "GET"
            }
          },
          "description": "Returns reviews from a list of Target products"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "targetReviews"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "profiles",
      "options": [
        {
          "name": "Profiles",
          "value": "profiles",
          "action": "Get twitter profiles",
          "routing": {
            "request": {
              "url": "/twitter/profiles",
              "method": "GET"
            }
          },
          "description": "Returns information from the list of Twitter profiles"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "twitterProfiles"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "profiles",
      "options": [
        {
          "name": "Profiles",
          "value": "profiles",
          "action": "Get tik tok profiles",
          "routing": {
            "request": {
              "url": "/tiktok/profiles",
              "method": "GET"
            }
          },
          "description": "Returns information from the list of TikTok profiles"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "tiktokProfiles"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "reviews",
      "options": [
        {
          "name": "Reviews",
          "value": "reviews",
          "action": "Get reviews from get app",
          "routing": {
            "request": {
              "url": "/getapp/reviews",
              "method": "GET"
            }
          },
          "description": "Returns reviews from GetApp apps"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "getAppReviews"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "search",
      "options": [
        {
          "name": "Search",
          "value": "search",
          "action": "Search yellow pages",
          "routing": {
            "request": {
              "url": "/yellowpages-search",
              "method": "GET"
            }
          },
          "description": "Returns search results from Yellow Pages"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "yellowPagesSearch"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "findIdentity",
      "options": [
        {
          "name": "Find Identity",
          "value": "findIdentity",
          "action": "Find phone identity",
          "routing": {
            "request": {
              "url": "/whitepages-phones",
              "method": "GET"
            }
          },
          "description": "Returns insights about phone number owners (name, address, etc.)"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "phoneIdentityFinder"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "scrapeAddresses",
      "options": [
        {
          "name": "Scrape Addresses",
          "value": "scrapeAddresses",
          "action": "Scrape whitepages addresses",
          "routing": {
            "request": {
              "url": "/whitepages-addresses",
              "method": "GET"
            }
          },
          "description": "Returns insights about addresses and their residents"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "whitepagesAddresses"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getOwners",
      "options": [
        {
          "name": "Get Owners",
          "value": "getOwners",
          "action": "Get phone owners",
          "routing": {
            "request": {
              "url": "/phones-owners",
              "method": "GET"
            }
          },
          "description": "Returns insights about phone number owners (name, address, etc.)"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "phonesOwners"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getData",
      "options": [
        {
          "name": "Get Data",
          "value": "getData",
          "action": "Get similarweb data",
          "routing": {
            "request": {
              "url": "/similarweb",
              "method": "GET"
            }
          },
          "description": "Returns data from Similarweb businesses"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "similarweb"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "findWebsite",
      "options": [
        {
          "name": "Find Website",
          "value": "findWebsite",
          "action": "Find company website",
          "routing": {
            "request": {
              "url": "/company-website-finder",
              "method": "GET"
            }
          },
          "description": "Returns data from Company Website Finder businesses"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "companyWebsiteFinder"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "findEmailsAndContacts",
      "options": [
        {
          "name": "Find Emails & Contacts",
          "value": "findEmailsAndContacts",
          "action": "Find emails and contacts",
          "routing": {
            "request": {
              "url": "/emails-and-contacts",
              "method": "GET"
            }
          },
          "description": "Finds email addresses, social links, and phones from domains"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "emailsAndContacts"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Search",
      "value": "search",
      "action": "Search for businesses on google maps",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "/maps/search-v3",
          "method": "GET"
        }
      },
      "description": "Search for businesses on Google Maps"
    },
    {
      "name": "Get Reviews",
      "value": "reviews",
      "action": "Get reviews for a place on google maps",
      "routing": {
        "request": {
          "url": "/maps/reviews-v3",
          "method": "GET"
        }
      },
      "description": "Get reviews for a place on Google Maps"
    },
    {
      "name": "Get Photos",
      "value": "photos",
      "action": "Get photos for a place on google maps",
      "routing": {
        "request": {
          "url": "/maps/photos-v3",
          "method": "GET"
        }
      },
      "description": "Get photos for a place on Google Maps"
    },
    {
      "name": "Search",
      "value": "search",
      "action": "Search on google",
      "routing": {
        "request": {
          "url": "/google-search-v3",
          "method": "GET"
        }
      },
      "description": "Search on Google"
    },
    {
      "name": "Search Careers",
      "value": "searchCareers",
      "action": "Search for career listings on google",
      "routing": {
        "request": {
          "url": "/google-search-careers",
          "method": "GET"
        }
      },
      "description": "Search for career listings on Google"
    },
    {
      "name": "Search Events",
      "value": "searchEvents",
      "action": "Search for events on google",
      "routing": {
        "request": {
          "url": "/google-search-events",
          "method": "GET"
        }
      },
      "description": "Search for events on Google"
    },
    {
      "name": "Search Images",
      "value": "searchImages",
      "action": "Search for images on google",
      "routing": {
        "request": {
          "url": "/google-search-images-v2",
          "method": "GET"
        }
      },
      "description": "Search for images on Google"
    },
    {
      "name": "Search News",
      "value": "searchNews",
      "action": "Search for news on google",
      "routing": {
        "request": {
          "url": "/google-search-news",
          "method": "GET"
        }
      },
      "description": "Search for news on Google"
    },
    {
      "name": "Search Shopping",
      "value": "searchShopping",
      "action": "Search for shopping products on google",
      "routing": {
        "request": {
          "url": "/google-search-shopping",
          "method": "GET"
        }
      },
      "description": "Search for shopping products on Google"
    },
    {
      "name": "Search Videos",
      "value": "searchVideos",
      "action": "Search for videos on google",
      "routing": {
        "request": {
          "url": "/google-search-videos",
          "method": "GET"
        }
      },
      "description": "Search for videos on Google"
    },
    {
      "name": "Get Reviews",
      "value": "reviews",
      "action": "Get reviews from G2",
      "routing": {
        "request": {
          "url": "/g2/reviews",
          "method": "GET"
        }
      },
      "description": "Get reviews from G2"
    },
    {
      "name": "Get Business Info",
      "value": "business",
      "action": "Get business information from trustpilot",
      "routing": {
        "request": {
          "url": "/trustpilot",
          "method": "GET"
        }
      },
      "description": "Get business information from Trustpilot"
    },
    {
      "name": "Search",
      "value": "search",
      "action": "Search businesses on trustpilot",
      "routing": {
        "request": {
          "url": "/trustpilot/search",
          "method": "GET"
        }
      },
      "description": "Search businesses on Trustpilot"
    },
    {
      "name": "Get Reviews",
      "value": "reviews",
      "action": "Get reviews from trustpilot",
      "routing": {
        "request": {
          "url": "/trustpilot/reviews",
          "method": "GET"
        }
      },
      "description": "Get reviews from Trustpilot"
    },
    {
      "name": "Get Reviews",
      "value": "reviews",
      "action": "Get reviews from trip advisor",
      "routing": {
        "request": {
          "url": "/tripadvisor-reviews",
          "method": "GET"
        }
      },
      "description": "Get reviews from TripAdvisor"
    },
    {
      "name": "Search",
      "value": "search",
      "action": "Search on trip advisor",
      "routing": {
        "request": {
          "url": "/tripadvisor-search",
          "method": "GET"
        }
      },
      "description": "Search on TripAdvisor"
    },
    {
      "name": "Search",
      "value": "search",
      "action": "Search on expedia",
      "routing": {
        "request": {
          "url": "/expedia/search",
          "method": "GET"
        }
      },
      "description": "Search on Expedia"
    },
    {
      "name": "Get Reviews",
      "value": "reviews",
      "action": "Get reviews from expedia",
      "routing": {
        "request": {
          "url": "/expedia/reviews",
          "method": "GET"
        }
      },
      "description": "Get reviews from Expedia"
    },
    {
      "name": "Search",
      "value": "search",
      "action": "Search for videos on you tube",
      "description": "Search for videos on YouTube"
    },
    {
      "name": "Channel",
      "value": "channel",
      "action": "Get you tube channel information",
      "description": "Get YouTube channel information"
    },
    {
      "name": "Comments",
      "value": "comments",
      "action": "Get comments from you tube videos",
      "description": "Get comments from YouTube videos"
    },
    {
      "name": "Search",
      "value": "search",
      "action": "Search on yelp",
      "routing": {
        "request": {
          "url": "/yelp-search",
          "method": "GET"
        }
      },
      "description": "Search on Yelp"
    },
    {
      "name": "Business",
      "value": "business",
      "action": "Get business information from yelp",
      "routing": {
        "request": {
          "url": "/yelp-business",
          "method": "GET"
        }
      },
      "description": "Get business information from Yelp"
    },
    {
      "name": "Reviews",
      "value": "reviews",
      "action": "Get reviews from yelp businesses",
      "routing": {
        "request": {
          "url": "/yelp-reviews",
          "method": "GET"
        }
      },
      "description": "Get reviews from Yelp businesses"
    },
    {
      "name": "Reviews",
      "value": "reviews",
      "action": "Get reviews from product hunt",
      "routing": {
        "request": {
          "url": "/producthunt-reviews",
          "method": "GET"
        }
      },
      "description": "Get reviews from Product Hunt"
    },
    {
      "name": "Job Search",
      "value": "jobSearch",
      "action": "Get jobs from indeed",
      "routing": {
        "request": {
          "url": "/indeed-jobs",
          "method": "GET"
        }
      },
      "description": "Get jobs from Indeed"
    },
    {
      "name": "Reviews",
      "value": "reviews",
      "action": "Get reviews from indeed companies",
      "routing": {
        "request": {
          "url": "/indeed-reviews",
          "method": "GET"
        }
      },
      "description": "Get reviews from Indeed companies"
    },
    {
      "name": "Search",
      "value": "search",
      "action": "Search on booking",
      "routing": {
        "request": {
          "url": "/booking/search",
          "method": "GET"
        }
      },
      "description": "Search results from Booking.com"
    },
    {
      "name": "Reviews",
      "value": "reviews",
      "action": "Get reviews from booking",
      "routing": {
        "request": {
          "url": "/booking/reviews",
          "method": "GET"
        }
      },
      "description": "Get reviews from Booking.com hotels"
    },
    {
      "name": "Prices",
      "value": "prices",
      "action": "Get prices from booking",
      "routing": {
        "request": {
          "url": "/booking/prices",
          "method": "GET"
        }
      },
      "description": "Get prices from Booking.com hotels"
    },
    {
      "name": "Search",
      "value": "search",
      "action": "Search on zillow",
      "routing": {
        "request": {
          "url": "/zillow/search",
          "method": "GET"
        }
      },
      "description": "Returns listings from Zillow"
    },
    {
      "name": "Reviews",
      "value": "reviews",
      "action": "Get reviews from appstore",
      "routing": {
        "request": {
          "url": "/appstore/reviews",
          "method": "GET"
        }
      },
      "description": "Returns reviews from AppStore apps"
    },
    {
      "name": "Geocode",
      "value": "geocode",
      "action": "Geocode address",
      "routing": {
        "request": {
          "url": "/geocoding",
          "method": "GET"
        }
      },
      "description": "Translates human-readable addresses into locations on the map"
    },
    {
      "name": "Reverse Geocode",
      "value": "reverseGeocode",
      "action": "Reverse geocode coordinates",
      "routing": {
        "request": {
          "url": "/reverse-geocoding",
          "method": "GET"
        }
      },
      "description": "Translate locations on the map into human-readable addresses"
    },
    {
      "name": "Get Insights",
      "value": "getInsights",
      "action": "Get company insights",
      "routing": {
        "request": {
          "url": "/company-insights",
          "method": "GET"
        }
      },
      "description": "Finds company details such as revenue, size, founding year, public status, etc"
    },
    {
      "name": "Scrape",
      "value": "scrape",
      "action": "Scrape web page",
      "routing": {
        "request": {
          "url": "/universal-scraper",
          "method": "GET"
        }
      },
      "description": "Extracts the data you need from any web page by using AI"
    },
    {
      "name": "Screenshot",
      "value": "screenshot",
      "action": "Screenshot web page",
      "routing": {
        "request": {
          "url": "/webpage-screenshoter",
          "method": "GET"
        }
      },
      "description": "Captures high-quality screenshots of any webpage"
    },
    {
      "name": "Search",
      "value": "search",
      "action": "Search on airbnb",
      "routing": {
        "request": {
          "url": "/airbnb/search",
          "method": "GET"
        }
      },
      "description": "Returns search results from Airbnb"
    },
    {
      "name": "Reviews",
      "value": "reviews",
      "action": "Get reviews from airbnb",
      "routing": {
        "request": {
          "url": "/airbnb/reviews",
          "method": "GET"
        }
      },
      "description": "Returns reviews from Airbnb accommodations"
    },
    {
      "name": "Reviews",
      "value": "reviews",
      "action": "Get reviews from walmart",
      "routing": {
        "request": {
          "url": "/walmart/reviews",
          "method": "GET"
        }
      },
      "description": "Returns reviews from a list of Walmart products"
    },
    {
      "name": "Reviews",
      "value": "reviews",
      "action": "Get reviews from target",
      "routing": {
        "request": {
          "url": "/target/reviews",
          "method": "GET"
        }
      },
      "description": "Returns reviews from a list of Target products"
    },
    {
      "name": "Profiles",
      "value": "profiles",
      "action": "Get twitter profiles",
      "routing": {
        "request": {
          "url": "/twitter/profiles",
          "method": "GET"
        }
      },
      "description": "Returns information from the list of Twitter profiles"
    },
    {
      "name": "Profiles",
      "value": "profiles",
      "action": "Get tik tok profiles",
      "routing": {
        "request": {
          "url": "/tiktok/profiles",
          "method": "GET"
        }
      },
      "description": "Returns information from the list of TikTok profiles"
    },
    {
      "name": "Reviews",
      "value": "reviews",
      "action": "Get reviews from get app",
      "routing": {
        "request": {
          "url": "/getapp/reviews",
          "method": "GET"
        }
      },
      "description": "Returns reviews from GetApp apps"
    },
    {
      "name": "Search",
      "value": "search",
      "action": "Search yellow pages",
      "routing": {
        "request": {
          "url": "/yellowpages-search",
          "method": "GET"
        }
      },
      "description": "Returns search results from Yellow Pages"
    },
    {
      "name": "Find Identity",
      "value": "findIdentity",
      "action": "Find phone identity",
      "routing": {
        "request": {
          "url": "/whitepages-phones",
          "method": "GET"
        }
      },
      "description": "Returns insights about phone number owners (name, address, etc.)"
    },
    {
      "name": "Scrape Addresses",
      "value": "scrapeAddresses",
      "action": "Scrape whitepages addresses",
      "routing": {
        "request": {
          "url": "/whitepages-addresses",
          "method": "GET"
        }
      },
      "description": "Returns insights about addresses and their residents"
    },
    {
      "name": "Get Owners",
      "value": "getOwners",
      "action": "Get phone owners",
      "routing": {
        "request": {
          "url": "/phones-owners",
          "method": "GET"
        }
      },
      "description": "Returns insights about phone number owners (name, address, etc.)"
    },
    {
      "name": "Get Data",
      "value": "getData",
      "action": "Get similarweb data",
      "routing": {
        "request": {
          "url": "/similarweb",
          "method": "GET"
        }
      },
      "description": "Returns data from Similarweb businesses"
    },
    {
      "name": "Find Website",
      "value": "findWebsite",
      "action": "Find company website",
      "routing": {
        "request": {
          "url": "/company-website-finder",
          "method": "GET"
        }
      },
      "description": "Returns data from Company Website Finder businesses"
    },
    {
      "name": "Find Emails & Contacts",
      "value": "findEmailsAndContacts",
      "action": "Find emails and contacts",
      "routing": {
        "request": {
          "url": "/emails-and-contacts",
          "method": "GET"
        }
      },
      "description": "Finds email addresses, social links, and phones from domains"
    }
  ]

npm_readme:
  # n8n-nodes-outscraper

  ![Outscraper Logo](https://outscraper.com/wp-content/uploads/2023/11/cropped-logo-long-e1628850886215.webp)

  This is an n8n community node for integrating with the [Outscraper API](https://outscraper.com). It allows you to automate data extraction from various online platforms including Google Maps, Google Search, YouTube, Trustpilot, TripAdvisor, Expedia, and G2 Reviews.

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

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

  ## Installation

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

  ### Community Nodes (Recommended)

  For users on n8n v0.187+:

  1. Go to **Settings > Community Nodes**
  2. Select **Install**
  3. Enter `n8n-nodes-outscraper` in the input field
  4. Agree to the risks of using community nodes
  5. Click **Install**

  ### Manual Installation

  To install the node manually:

  1. Open your n8n installation folder
  2. Go to the `node_modules` folder
  3. Create a new folder called `n8n-nodes-outscraper`
  4. Download the [latest release](https://github.com/outscraper/n8n-nodes-outscraper/releases) and extract it into the folder
  5. Restart n8n

  ### npm Installation

  To install via npm:

  ```bash
  npm install n8n-nodes-outscraper
  ```

  ## Operations

  The Outscraper node supports the following platforms and operations:

  ### Google Maps
  - **Search**: Search for businesses on Google Maps
  - **Reviews**: Get reviews for businesses on Google Maps
  - **Photos**: Get photos for businesses on Google Maps

  ### Google Search
  - **Search**: Perform Google search queries

  ## Credentials

  To use this node, you need an Outscraper API key.

  1. Create an account on [Outscraper](https://app.outscraper.com/signup)
  2. Navigate to the [API section](https://app.outscraper.com/api) to get your API key
  3. In n8n, create new credentials of type **Outscraper API**
  4. Enter your API key and the API URL (default: https://api.outscraper.cloud)

  ## Usage

  1. Add the Outscraper node to your workflow
  2. Select the resource (e.g., Google Maps) you want to work with
  3. Choose the operation (e.g., Search, Reviews)
  4. Configure the required parameters
  5. Connect the node to the rest of your workflow

  ### Example: Search for Businesses on Google Maps

  1. Add the Outscraper node
  2. Select **Google Maps** as the resource
  3. Select **Search** as the operation
  4. Enter your search query (e.g., "coffee shops in New York")
  5. Set additional parameters like limit, async mode, etc.
  6. Run the workflow to get the search results

  ## Resources

  * [Outscraper Website](https://outscraper.com)
  * [Outscraper API Documentation](https://app.outscraper.com/api-docs)
  * [n8n Community Nodes Documentation](https://docs.n8n.io/integrations/community-nodes/)

  ## Version History

  ### 0.1.7 (2025-07-17)
  * Added Emails & Contacts scraper

  ### 0.1.6 (2025-07-17)
  * Fixed support for operations

  ### 0.1.5 (2025-06-27)
  * Added support for geocoding operations (Geocode and Reverse Geocode)
  * Enhanced operations with prices functionality
  * Improved field configurations and routing options

  ### 0.1.4 (2025-06-26)

  * Enhanced field configurations with additional parameters

  ### 0.1.3 (2025-06-26)

  * Improved routing and display options

  ### 0.1.2 (2025-06-26)

  * Refactored node structure for better maintainability
  * Updated field configurations with improved descriptions
  * Enhanced error handling and validation

  ### 0.1.1 (2025-06-25)

  * Fixed minor bugs and improved stability
  * Updated dependencies and documentation

  ### 0.1.0 (2025-06-25)

  * Initial release
  * Support for Google Maps, Google Search

  ## License

  [MIT](LICENSE.md)

ai_documentation_summary:
  {"purpose":"The Outscraper node enables automation of data extraction from various online platforms such as Google Maps, Google Search, YouTube, Trustpilot, TripAdvisor, Expedia, G2 Reviews, and more, using the Outscraper API.","capabilities":["Search businesses on Google Maps","Retrieve reviews for businesses on Google Maps","Get photos for businesses on Google Maps","Perform Google search queries","Extract emails and contacts","Geocode (convert addresses to coordinates)","Reverse geocode (convert coordinates to addresses)","Retrieve pricing information"],"authentication":"API key required; obtain it from the Outscraper dashboard at https://app.outscraper.com/api","commonUseCases":["Automated market research by scraping business listings and reviews","Competitor analysis using Google Search and review data","Lead generation through contact and email scraping","Price comparison across travel and review platforms"],"limitations":[],"relatedNodes":["Google Search","Google Maps","Data Extraction","Web Scraping"]}


node_type: n8n-nodes-binalyze-air.air
package_name: n8n-nodes-binalyze-air
display_name: AIR
description: Manage Binalyze AIR resources
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-01-07 20:08:15
author_name: emretinaztepe
author_github_url: https://github.com/binalyze/
npm_package_name: n8n-nodes-binalyze-air
npm_version: 1.4.3
community_fetched_at: 2026-01-07T20:08:15.956Z
ai_summary_generated_at: 2026-01-08 10:45:32
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "organizations",
      "options": [
        {
          "name": "Acquisition",
          "value": "acquisitions",
          "description": "Manage acquisition profiles and remote acquisitions"
        },
        {
          "name": "Asset",
          "value": "assets",
          "description": "Manage endpoint assets and their operations"
        },
        {
          "name": "Baseline",
          "value": "baselines",
          "description": "Manage baselines and comparisons"
        },
        {
          "name": "Case",
          "value": "cases",
          "description": "Manage cases and case operations"
        },
        {
          "name": "InterACT",
          "value": "interact",
          "description": "Interactive shell sessions and command execution on devices"
        },
        {
          "name": "Organization",
          "value": "organizations",
          "description": "Manage organizations"
        },
        {
          "name": "Repository",
          "value": "repositories",
          "description": "Manage evidence repositories"
        },
        {
          "name": "Task",
          "value": "tasks",
          "description": "Manage tasks and task assignments"
        },
        {
          "name": "Triage Rule",
          "value": "triagerules",
          "description": "Manage triage rules"
        },
        {
          "name": "User",
          "value": "users",
          "description": "Manage users"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Assign Evidence Acquisition Task",
          "value": "assignEvidenceTask",
          "action": "Assign an evidence acquisition task",
          "description": "Assign an evidence acquisition task by filter"
        },
        {
          "name": "Get Acquisition Profile",
          "value": "get",
          "action": "Get an acquisition profile",
          "description": "Retrieve a specific acquisition profile"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "acquisitions"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Add Tags",
          "value": "addTags",
          "action": "Add tags to assets",
          "description": "Add tags to assets by filter"
        },
        {
          "name": "Assign Isolation Task",
          "value": "setIsolation",
          "action": "Assign isolation task to an asset",
          "description": "Assign isolation task to an asset"
        },
        {
          "name": "Assign Reboot Task",
          "value": "reboot",
          "action": "Assign reboot task to assets",
          "description": "Assign reboot task to an asset"
        },
        {
          "name": "Assign Shutdown Task",
          "value": "shutdown",
          "action": "Assign shutdown task to asset",
          "description": "Assign shutdown task to an asset"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get an asset",
          "description": "Retrieve a specific asset"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many assets",
          "description": "Retrieve many assets"
        },
        {
          "name": "Get Tasks",
          "value": "getAssetTasks",
          "action": "Get asset tasks",
          "description": "Get tasks for a specific asset"
        },
        {
          "name": "Remove Tags",
          "value": "removeTags",
          "action": "Remove tags from assets",
          "description": "Remove tags from assets by filter"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "assets"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "acquireBaseline",
      "options": [
        {
          "name": "Acquire Baseline",
          "value": "acquireBaseline",
          "action": "Acquire a baseline",
          "description": "Acquire baseline for endpoints"
        },
        {
          "name": "Compare Baselines",
          "value": "compareBaseline",
          "action": "Compare baselines",
          "description": "Compare two baseline acquisition results from the same endpoint"
        },
        {
          "name": "Get Comparison Report",
          "value": "getComparisonReport",
          "action": "Get comparison report",
          "description": "Get baseline comparison report"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "baselines"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Change Owner",
          "value": "changeOwner",
          "action": "Change case owner",
          "description": "Change the owner of a case"
        },
        {
          "name": "Check Name",
          "value": "checkName",
          "action": "Check case name availability",
          "description": "Check if a case name is available"
        },
        {
          "name": "Close Case",
          "value": "closeCase",
          "action": "Close a case",
          "description": "Close a specific case"
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create a case",
          "description": "Create a new case"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a case",
          "description": "Retrieve a specific case"
        },
        {
          "name": "Get Activities",
          "value": "getActivities",
          "action": "Get case activities",
          "description": "Get activities for a specific case"
        },
        {
          "name": "Get Endpoints",
          "value": "getEndpoints",
          "action": "Get case endpoints",
          "description": "Get endpoints for a specific case"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many cases",
          "description": "Retrieve many cases"
        },
        {
          "name": "Get Tasks",
          "value": "getTasks",
          "action": "Get case tasks",
          "description": "Get tasks for a specific case"
        },
        {
          "name": "Get Users",
          "value": "getUsers",
          "action": "Get case users",
          "description": "Get users for a specific case"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "cases"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "createSession",
      "options": [
        {
          "name": "Close Session",
          "value": "closeSession",
          "action": "Close a session",
          "description": "Close an InterACT session"
        },
        {
          "name": "Create InterACT Session",
          "value": "createSession",
          "action": "Create an interact session",
          "description": "Create a new InterACT shell session for an asset"
        },
        {
          "name": "Execute Async Command",
          "value": "executeAsyncCommand",
          "action": "Execute an async command",
          "description": "Execute an asynchronous command in an InterACT session"
        },
        {
          "name": "Execute Command",
          "value": "executeCommand",
          "action": "Execute a command",
          "description": "Execute a command in an InterACT session"
        },
        {
          "name": "Get Command Response",
          "value": "getCommandMessage",
          "action": "Get a command response",
          "description": "Get the result of a command execution"
        },
        {
          "name": "Interrupt Command",
          "value": "interruptCommand",
          "action": "Interrupt a command",
          "description": "Interrupt a running command"
        },
        {
          "name": "Wait for Session to Be Live",
          "value": "waitForSession",
          "action": "Wait for session to be live",
          "description": "Wait for an InterACT session to become live by monitoring task status"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "interact"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Add Tags",
          "value": "addTags",
          "action": "Add tags to an organization",
          "description": "Add tags to an organization"
        },
        {
          "name": "Assign User",
          "value": "assignUser",
          "action": "Assign a user to an organization",
          "description": "Assign a user to an organization"
        },
        {
          "name": "Check Name Exists",
          "value": "checkNameExists",
          "action": "Check if organization name exists",
          "description": "Check if an organization name already exists"
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create an organization",
          "description": "Create a new organization"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get an organization",
          "description": "Retrieve a specific organization"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many organizations",
          "description": "Retrieve many organizations"
        },
        {
          "name": "Get Users",
          "value": "getUsers",
          "action": "Get users of an organization",
          "description": "Retrieve users assigned to an organization"
        },
        {
          "name": "Remove Tags",
          "value": "removeTags",
          "action": "Remove tags from an organization",
          "description": "Remove tags from an organization"
        },
        {
          "name": "Remove User",
          "value": "removeUser",
          "action": "Remove a user from an organization",
          "description": "Remove a user from an organization"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update an organization",
          "description": "Update an organization"
        },
        {
          "name": "Update Shareable Deployment",
          "value": "updateShareableDeployment",
          "action": "Update shareable deployment status",
          "description": "Update organization shareable deployment status"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "organizations"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get a repository",
          "description": "Get a repository by name"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many repositories",
          "description": "Get many repositories"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "repositories"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get a task",
          "description": "Retrieve a specific task"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many tasks",
          "description": "Retrieve many tasks"
        },
        {
          "name": "Get Task Assignments",
          "value": "getTaskAssignments",
          "action": "Get task assignments",
          "description": "Retrieve assignments for a specific task"
        },
        {
          "name": "Wait for Completion",
          "value": "waitForCompletion",
          "action": "Wait for task completion",
          "description": "Wait for a task to complete with polling"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "tasks"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Assign Triage Task",
          "value": "assignTask",
          "action": "Assign a triage task",
          "description": "Assign a triage task"
        },
        {
          "name": "Create Triage Rule",
          "value": "create",
          "action": "Create a triage rule",
          "description": "Create a new triage rule"
        },
        {
          "name": "Delete Triage Rule",
          "value": "delete",
          "action": "Delete a triage rule",
          "description": "Delete a triage rule"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a triage rule",
          "description": "Retrieve a specific triage rule"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many triage rules",
          "description": "Retrieve many triage rules"
        },
        {
          "name": "Update Triage Rule",
          "value": "update",
          "action": "Update a triage rule",
          "description": "Update a triage rule"
        },
        {
          "name": "Validate Triage Rule",
          "value": "validate",
          "action": "Validate a triage rule",
          "description": "Validate a triage rule"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "triagerules"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many users",
          "description": "Retrieve many users"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a user",
          "description": "Retrieve a specific user"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "users"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Assign Evidence Acquisition Task",
      "value": "assignEvidenceTask",
      "action": "Assign an evidence acquisition task",
      "description": "Assign an evidence acquisition task by filter"
    },
    {
      "name": "Get Acquisition Profile",
      "value": "get",
      "action": "Get an acquisition profile",
      "description": "Retrieve a specific acquisition profile"
    },
    {
      "name": "Add Tags",
      "value": "addTags",
      "action": "Add tags to assets",
      "description": "Add tags to assets by filter"
    },
    {
      "name": "Assign Isolation Task",
      "value": "setIsolation",
      "action": "Assign isolation task to an asset",
      "description": "Assign isolation task to an asset"
    },
    {
      "name": "Assign Reboot Task",
      "value": "reboot",
      "action": "Assign reboot task to assets",
      "description": "Assign reboot task to an asset"
    },
    {
      "name": "Assign Shutdown Task",
      "value": "shutdown",
      "action": "Assign shutdown task to asset",
      "description": "Assign shutdown task to an asset"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get an asset",
      "description": "Retrieve a specific asset"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many assets",
      "description": "Retrieve many assets"
    },
    {
      "name": "Get Tasks",
      "value": "getAssetTasks",
      "action": "Get asset tasks",
      "description": "Get tasks for a specific asset"
    },
    {
      "name": "Remove Tags",
      "value": "removeTags",
      "action": "Remove tags from assets",
      "description": "Remove tags from assets by filter"
    },
    {
      "name": "Acquire Baseline",
      "value": "acquireBaseline",
      "action": "Acquire a baseline",
      "description": "Acquire baseline for endpoints"
    },
    {
      "name": "Compare Baselines",
      "value": "compareBaseline",
      "action": "Compare baselines",
      "description": "Compare two baseline acquisition results from the same endpoint"
    },
    {
      "name": "Get Comparison Report",
      "value": "getComparisonReport",
      "action": "Get comparison report",
      "description": "Get baseline comparison report"
    },
    {
      "name": "Change Owner",
      "value": "changeOwner",
      "action": "Change case owner",
      "description": "Change the owner of a case"
    },
    {
      "name": "Check Name",
      "value": "checkName",
      "action": "Check case name availability",
      "description": "Check if a case name is available"
    },
    {
      "name": "Close Case",
      "value": "closeCase",
      "action": "Close a case",
      "description": "Close a specific case"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a case",
      "description": "Create a new case"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a case",
      "description": "Retrieve a specific case"
    },
    {
      "name": "Get Activities",
      "value": "getActivities",
      "action": "Get case activities",
      "description": "Get activities for a specific case"
    },
    {
      "name": "Get Endpoints",
      "value": "getEndpoints",
      "action": "Get case endpoints",
      "description": "Get endpoints for a specific case"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many cases",
      "description": "Retrieve many cases"
    },
    {
      "name": "Get Tasks",
      "value": "getTasks",
      "action": "Get case tasks",
      "description": "Get tasks for a specific case"
    },
    {
      "name": "Get Users",
      "value": "getUsers",
      "action": "Get case users",
      "description": "Get users for a specific case"
    },
    {
      "name": "Close Session",
      "value": "closeSession",
      "action": "Close a session",
      "description": "Close an InterACT session"
    },
    {
      "name": "Create InterACT Session",
      "value": "createSession",
      "action": "Create an interact session",
      "description": "Create a new InterACT shell session for an asset"
    },
    {
      "name": "Execute Async Command",
      "value": "executeAsyncCommand",
      "action": "Execute an async command",
      "description": "Execute an asynchronous command in an InterACT session"
    },
    {
      "name": "Execute Command",
      "value": "executeCommand",
      "action": "Execute a command",
      "description": "Execute a command in an InterACT session"
    },
    {
      "name": "Get Command Response",
      "value": "getCommandMessage",
      "action": "Get a command response",
      "description": "Get the result of a command execution"
    },
    {
      "name": "Interrupt Command",
      "value": "interruptCommand",
      "action": "Interrupt a command",
      "description": "Interrupt a running command"
    },
    {
      "name": "Wait for Session to Be Live",
      "value": "waitForSession",
      "action": "Wait for session to be live",
      "description": "Wait for an InterACT session to become live by monitoring task status"
    },
    {
      "name": "Add Tags",
      "value": "addTags",
      "action": "Add tags to an organization",
      "description": "Add tags to an organization"
    },
    {
      "name": "Assign User",
      "value": "assignUser",
      "action": "Assign a user to an organization",
      "description": "Assign a user to an organization"
    },
    {
      "name": "Check Name Exists",
      "value": "checkNameExists",
      "action": "Check if organization name exists",
      "description": "Check if an organization name already exists"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create an organization",
      "description": "Create a new organization"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get an organization",
      "description": "Retrieve a specific organization"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many organizations",
      "description": "Retrieve many organizations"
    },
    {
      "name": "Get Users",
      "value": "getUsers",
      "action": "Get users of an organization",
      "description": "Retrieve users assigned to an organization"
    },
    {
      "name": "Remove Tags",
      "value": "removeTags",
      "action": "Remove tags from an organization",
      "description": "Remove tags from an organization"
    },
    {
      "name": "Remove User",
      "value": "removeUser",
      "action": "Remove a user from an organization",
      "description": "Remove a user from an organization"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update an organization",
      "description": "Update an organization"
    },
    {
      "name": "Update Shareable Deployment",
      "value": "updateShareableDeployment",
      "action": "Update shareable deployment status",
      "description": "Update organization shareable deployment status"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a repository",
      "description": "Get a repository by name"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many repositories",
      "description": "Get many repositories"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a task",
      "description": "Retrieve a specific task"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many tasks",
      "description": "Retrieve many tasks"
    },
    {
      "name": "Get Task Assignments",
      "value": "getTaskAssignments",
      "action": "Get task assignments",
      "description": "Retrieve assignments for a specific task"
    },
    {
      "name": "Wait for Completion",
      "value": "waitForCompletion",
      "action": "Wait for task completion",
      "description": "Wait for a task to complete with polling"
    },
    {
      "name": "Assign Triage Task",
      "value": "assignTask",
      "action": "Assign a triage task",
      "description": "Assign a triage task"
    },
    {
      "name": "Create Triage Rule",
      "value": "create",
      "action": "Create a triage rule",
      "description": "Create a new triage rule"
    },
    {
      "name": "Delete Triage Rule",
      "value": "delete",
      "action": "Delete a triage rule",
      "description": "Delete a triage rule"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a triage rule",
      "description": "Retrieve a specific triage rule"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many triage rules",
      "description": "Retrieve many triage rules"
    },
    {
      "name": "Update Triage Rule",
      "value": "update",
      "action": "Update a triage rule",
      "description": "Update a triage rule"
    },
    {
      "name": "Validate Triage Rule",
      "value": "validate",
      "action": "Validate a triage rule",
      "description": "Validate a triage rule"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many users",
      "description": "Retrieve many users"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a user",
      "description": "Retrieve a specific user"
    }
  ]

npm_readme:
  ![Banner image](https://github.com/binalyze/n8n-nodes-binalyze-air/blob/main/assets/header-image.jpg)

  # n8n-nodes-binalyze-air

  This is an n8n community node that integrates with Binalyze AIR (Automated Incident Response) platform.

  ## Table of Contents

  - [Installation](#installation)
  - [Configuration](#configuration)
  - [Supported Resources](#supported-resources)
    - [Acquisitions](#acquisitions)
    - [Assets](#assets)
    - [Baselines](#baselines)
    - [Cases](#cases)
    - [InterACT](#interact)
    - [Organizations](#organizations)
    - [Repositories](#repositories)
    - [Tasks](#tasks)
    - [Triage Rules](#triage-rules)
    - [Users](#users)
  - [Trigger Node](#trigger-node)
    - [How to Use](#how-to-use)
    - [Supported Event Types](#supported-event-types)
    - [Event Data Structure](#event-data-structure)
  - [Development](#development)
  - [Testing](#testing)
  - [TODO](#todo)

  ## Installation

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

  ## Configuration

  Before using this node, you need to configure your Binalyze AIR credentials:

  ### Step 1: Create AIR API Key

  1. Go to AIR > Integrations > API Tokens > Add New
  	* Provide a Token Name
  	* Select an Organization
  	* Select a Role
  	* Define Expiration time
  2. Click Save button, and copy the token as you will not be able to see it again
  3. Click 'I got the token' button

  ### Step 2: Create AIR Credentials on your n8n instance

  1. In n8n, go to Settings → Credentials
  2. Add a new credential for "Binalyze AIR API"
  3. Enter your AIR instance URL and API token

  ## Supported Resources

  This node provides comprehensive coverage of Binalyze AIR's features listed below:

  ### Acquisitions
  Manage evidence acquisition profiles and tasks.

  **Operations:**
  - `get` - Retrieve a specific acquisition profile
  - `assignEvidenceTask` - Assign an evidence acquisition task by filter
  - `assignImageTask` - Assign an image acquisition task by filter
  - `createOffNetworkTask` - Create an off-network acquisition task

  ### Assets
  Manage endpoints and their associated tasks, tags, and status.

  **Operations:**
  - `addTags` - Add tags to assets by filter
  - `get` - Retrieve a specific asset
  - `getAssetTasks` - Get tasks for a specific asset
  - `getAll` - Retrieve many assets
  - `reboot` - Assign reboot task to a specific asset (returns standardized response with success status, message, asset details, task, and error information)
  - `removeTags` - Remove tags from assets by filter
  - `setIsolation` - Assign isolation task to a specific asset (checks for existing tasks and current isolation status, returns standardized response)
  - `shutdown` - Assign shutdown task to a specific asset (returns standardized response with success status, message, asset details, task, and error information)

  ### Baselines
  Acquire and compare system baselines.

  **Operations:**
  - `acquireBaseline` - Acquire baseline for endpoints
  - `compareBaseline` - Compare two baseline acquisition results from the same endpoint
  - `getComparisonReport` - Get baseline comparison report

  ### Cases
  Manage incident response cases, notes, and activities.

  **Operations:**
  - `changeOwner` - Change the owner of a case
  - `checkName` - Check if a case name is available
  - `closeCase` - Close a specific case
  - `create` - Create a new case
  - `get` - Retrieve a specific case
  - `getActivities` - Get activities for a specific case
  - `getEndpoints` - Get endpoints for a specific case
  - `getAll` - Retrieve many cases
  - `getTasks` - Get tasks for a specific case
  - `getUsers` - Get users for a specific case

  ### InterACT
  Execute commands and interact with endpoints remotely.

  **Operations:**
  - `createSession` - Create a new InterACT shell session for an asset
  - `waitForSession` - Wait for an InterACT session to become live by monitoring task status (supports indefinite wait with timeout=0)
  - `closeSession` - Close an InterACT session
  - `executeCommand` - Execute a command in an InterACT session
  - `executeAsyncCommand` - Execute an asynchronous command in an InterACT session
  - `getCommandMessage` - Get the result of a command execution
  - `interruptCommand` - Interrupt a running command

  ### Organizations
  Manage organizations and their users.

  **Operations:**
  - `addTags` - Add tags to an organization
  - `assignUser` - Assign a user to an organization
  - `checkNameExists` - Check if an organization name already exists
  - `create` - Create a new organization
  - `get` - Retrieve a specific organization
  - `getAll` - Retrieve many organizations
  - `getUsers` - Retrieve users assigned to an organization
  - `removeTags` - Remove tags from an organization
  - `removeUser` - Remove a user from an organization
  - `update` - Update an organization
  - `updateShareableDeployment` - Update organization shareable deployment status

  ### Repositories
  Manage evidence repositories.

  **Operations:**
  - `get` - Get a repository by name, ID, or from list selection
  - `getAll` - Get many repositories with filtering options

  ### Tasks
  Manage and monitor tasks and assignments.

  **Operations:**
  - `cancelTask` - Cancel a specific task
  - `cancelTaskAssignment` - Cancel a specific task assignment
  - `deleteTask` - Delete a specific task
  - `deleteTaskAssignment` - Delete a specific task assignment
  - `get` - Retrieve a specific task
  - `getAll` - Retrieve many tasks
  - `getTaskAssignments` - Retrieve assignments for a specific task
  - `waitForCompletion` - Wait for a task to complete with polling

  ### Triage Rules
  Create and manage triage rules for automated analysis.

  **Operations:**
  - `assignTask` - Assign a triage task
  - `create` - Create a new triage rule
  - `delete` - Delete a triage rule
  - `get` - Retrieve a specific triage rule
  - `getAll` - Retrieve many triage rules
  - `update` - Update a triage rule
  - `validate` - Validate a triage rule

  ### Users
  Manage user accounts and permissions.

  **Operations:**
  - `getAll` - Retrieve many users
  - `get` - Retrieve a specific user

  ## Trigger Node

  The On AIR Event-Trigger node allows you to trigger workflows based on AIR events.

  ### How to Use

  1. Add the On new AIR Trigger node to your workflow
  2. Configure your AIR API credentials
  3. Select the event types you want to listen for from the dynamically loaded list
  4. Configure the Bearer token that AIR will use for webhook authentication
  5. Copy the webhook URL from the node
  6. Create an event subscription in AIR:
     - Go to AIR > Integrations > Event Subscriptions
     - Add a new subscription with the webhook URL
     - Select the same event types
     - Provide the same Bearer token you configured in the trigger node

  ### Supported Event Types

  The trigger node dynamically loads available [event types](https://kb.binalyze.com/air/features/event-subscription) from your AIR instance, which may include:
  - TaskProcessingCompletedEvent
  - TaskProcessingFailedEvent
  - TaskCompletedEvent
  - TaskFailedEvent
  - CaseClosedEvent
  - EndpointRegisteredEvent
  - ...  

  ### Event Data Structure

  When an event is triggered, the node outputs data in the following format:
  ```json
  {
    "eventName": "TaskCompletedEvent",
    "organizationId": 0,
    "data": {
      "id": "task-id",
      "name": "Task Name",
      "type": "Task Type",
      "organizationId": "org-id",
      "totalAssignedEndpoints": 5,
      "totalCompletedEndpoints": 4
    }
  }
  ```

  ## Development

  To set up the development environment:

  1. Clone this repository
  2. Install dependencies: `yarn install`
  3. Build the project: `yarn build`
  4. Link the project using: 
     - `npm link`
     - `npm link n8n-nodes-binalyze-air`
  5. Start the development environment:
     - `yarn dev` - Start n8n in watch mode with automatic rebuilds
     - `yarn debug` - Start n8n in debug mode with verbose logging

  ### Development Scripts

  - `yarn build` - Build the project
  - `yarn dev` - Start development environment with file watching
  - `yarn debug` - Start development environment with debug logging enabled
  - `yarn restart:n8n` - Restart n8n without rebuilding

  ### Debug Mode

  The `yarn debug` command enables comprehensive debug logging to help troubleshoot issues:

  **Features:**
  - **Verbose Logging**: Sets `N8N_LOG_LEVEL=debug` for detailed n8n logs
  - **Console Output**: Direct log output to console (`N8N_LOG_OUTPUT=console`)
  - **Debug Patterns**: Enables debug output for n8n core and community nodes (`DEBUG=n8n*,n8n-nodes-*`)
  - **Error Details**: Shows detailed error information (`N8N_DETAILED_ERROR_OUTPUT=true`)
  - **Development Mode**: Sets `NODE_ENV=development` for enhanced debugging

  **Usage:**
  ```bash
  # Start development with debug logging
  yarn debug

  # Or manually start debug mode
  ./scripts/dev-watch.sh --debug
  ./scripts/restart-n8n.sh --debug
  ```

  **Debug Output Examples:**
  ```
  16:38:21.490   debug   Loaded all credentials and nodes from n8n-nodes-binalyze-air { "credentials": 1, "nodes": 1 }
  16:38:21.662   info    n8n ready on ::, port 5678
  16:38:23.607   info    Version: 1.103.2
  ```

  When debug mode is active, you'll see detailed information about:
  - Node and credential loading
  - API requests and responses
  - Workflow execution steps
  - Error stack traces
  - Internal n8n operations

  ## Testing

  The project includes an end-to-end testing workflow that can be managed using the e2e.js script.

  ### Prerequisites

  1. Create a `.env.local.yml` file in the project root with your credentials:
     ```yaml
     # n8n instance configuration
     N8N:
       INSTANCE_URL: http://127.0.0.1:5678
       API_TOKEN: your_n8n_api_token_here
     ```

  2. Ensure your n8n instance is running and you have a valid API token.

  ### Download Test Workflow

  To download the test workflow from your n8n instance:
  ```bash
  npm run test:download
  # or
  yarn test:download
  ```
  Or using the Node.js script directly:
  ```bash
  node test/e2e.js download
  ```

  This will download the `n8n-nodes-binalyze-air-e2e` workflow and save it to `test/n8n-nodes-binalyze-air-e2e.json`.

  ### Command Options

  Both commands support additional options:

  ```bash
  # Use a custom n8n instance URL
  node test/e2e.js download --url http://n8n.example.com:5678

  # Use a custom workflow name
  node test/e2e.js download --name my-custom-workflow

  # Use a custom output file
  node test/e2e.js download --file my-workflow.json
  ```


  ## TODO
  - Add interACT Library related operations

ai_documentation_summary:
  {"purpose":"The AIR node enables n8n users to manage Binalyze AIR resources such as cases, assets, tasks, triage rules, and user accounts, providing full integration with Binalyze's automated incident response platform for incident management and endpoint interaction.","capabilities":["Manage acquisitions including evidence and image tasks","Manage assets with tagging, reboot, shutdown, and isolation tasks","Acquire and compare system baselines","Create, update, and manage incident response cases and activities","Execute remote commands via InterACT sessions with session management and command execution","Manage organizations, users, and their assignments","Manage evidence repositories","Monitor and control tasks with cancellation, deletion, and completion waiting","Create and manage triage rules for automated incident analysis"],"authentication":"API key required (generated in Binalyze AIR under Integrations > API Tokens)","commonUseCases":["Automate incident response workflows by creating and managing cases and triage rules","Remotely execute commands on endpoints using InterACT sessions","Track and manage asset status with tagging, isolation, and task assignment","Monitor task progress and wait for completion in automated workflows","Manage user and organizational access within Binalyze AIR"],"limitations":[],"relatedNodes":["n8n-nodes-base","n8n-nodes-webhook","n8n-nodes-database"]}


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

updated_at: 2026-01-07 20:08:15
author_name: enginemailer
author_github_url: https://github.com/Enginemailer-Official/n8n-nodes-enginemailer.git
npm_package_name: @enginemailer/n8n-nodes-enginemailer
npm_version: 1.0.1
community_fetched_at: 2026-01-07T20:08:15.957Z
ai_summary_generated_at: 2026-01-08 10:45:32
npm_readme:
  # n8n-nodes-enginemailer

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

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

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

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

  ## Installation

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

  ## Operations

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

  ## Events

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

  ## Credentials

  You can use these credentials to authenticate the following nodes:

  - Enginemailer
  - Enginemailer Trigger

  ### Prerequisites

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

  ### Supported authentication methods

  - API key

  ### Related resources

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

  ### Using API Key

  To configure this credential, you'll need:

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

  ## Compatibility

  - Tested against n8n version 1.103.2

  ### Node parameters

  Use these parameters to configure your node.

  #### Poll Times

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

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

  ## Resources

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

ai_documentation_summary:
  {"purpose":"The Enginemailer node allows users to integrate Enginemailer's email marketing and automation features into n8n workflows, enabling actions like managing subscribers, sending emails, and triggering events based on subscriber activities.","capabilities":["Add or update a subscriber","Deactivate a subscriber","Delete a subscriber","Find a subscriber","Send email","Tag a subscriber to a subcategory","Untag a subscriber from a subcategory","Trigger on autoresponder completed","Trigger on autoresponder triggered","Trigger on subscribed"],"authentication":"API key required","commonUseCases":["Automating email campaigns based on subscriber actions","Tracking subscriber engagement and updates in real-time","Managing lead data and segmentation through tagging","Setting up automated workflows triggered by events like subscription or unsubscription"],"limitations":[],"relatedNodes":["Enginemailer Trigger"]}


node_type: @seranking/n8n-nodes-seranking.seRanking
package_name: @seranking/n8n-nodes-seranking
display_name: SE Ranking
description: Interact with SE Ranking API for SEO data
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-01-07 20:08:15
author_name: mikhail.liubushkin
author_github_url: https://github.com/seranking/n8n-nodes-seranking.git
npm_package_name: @seranking/n8n-nodes-seranking
npm_version: 1.3.1
community_fetched_at: 2026-01-07T20:08:15.957Z
ai_summary_generated_at: 2026-01-08 10:45:32
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "domainAnalysis",
      "options": [
        {
          "name": "AI Search",
          "value": "aiSearch",
          "description": "LLM visibility and AI search data"
        },
        {
          "name": "Backlinks",
          "value": "backlinks",
          "description": "Backlink analysis and authority metrics"
        },
        {
          "name": "Domain Analysis",
          "value": "domainAnalysis",
          "description": "Domain keyword rankings and competitor analysis"
        },
        {
          "name": "Keyword Research",
          "value": "keywordResearch",
          "description": "Keyword metrics, volume, CPC, and related keywords"
        },
        {
          "name": "SERP Classic",
          "value": "serpClassic",
          "description": "SERP tracking and results retrieval"
        },
        {
          "name": "Website Audit",
          "value": "websiteAudit",
          "description": "Site crawling, technical SEO, and on-page analysis"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getOverview",
      "options": [
        {
          "name": "Get Overview",
          "value": "getOverview",
          "action": "Get AI search overview",
          "description": "Get LLM visibility metrics for a domain"
        },
        {
          "name": "Discover Brand",
          "value": "discoverBrand",
          "action": "Discover brand name",
          "description": "Identify brand name for a domain"
        },
        {
          "name": "Get Prompts by Target",
          "value": "getPromptsByTarget",
          "action": "Get prompts by target",
          "description": "Get prompts mentioning target domain"
        },
        {
          "name": "Get Prompts by Brand",
          "value": "getPromptsByBrand",
          "action": "Get prompts by brand",
          "description": "Get prompts mentioning brand name"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "aiSearch"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getSummary",
      "options": [
        {
          "name": "Get Summary",
          "value": "getSummary",
          "action": "Get backlinks summary",
          "description": "Get extended backlink statistics (total links, domains, etc)"
        },
        {
          "name": "Get Metrics",
          "value": "getMetrics",
          "action": "Get backlink metrics",
          "description": "Get key backlink metrics for one or more targets"
        },
        {
          "name": "Get All Backlinks",
          "value": "getAll",
          "action": "Get all backlinks",
          "description": "Get detailed list of backlinks (supports sorting/pagination)"
        },
        {
          "name": "Get Raw Backlinks",
          "value": "getRaw",
          "action": "Get raw backlinks",
          "description": "Stream backlinks in batches (cursor-based for large datasets)"
        },
        {
          "name": "Get Count",
          "value": "getCount",
          "action": "Get backlinks count",
          "description": "Get total number of backlinks to a target"
        },
        {
          "name": "Export Backlinks",
          "value": "export",
          "action": "Export backlinks",
          "description": "Bulk export all backlinks (for large-scale retrieval)"
        },
        {
          "name": "Check Export Status",
          "value": "exportStatus",
          "action": "Check export status",
          "description": "Check status of bulk export job"
        },
        {
          "name": "Download Export Data",
          "value": "exportDownload",
          "action": "Download export data",
          "description": "Download completed export data"
        },
        {
          "name": "Get History",
          "value": "getHistory",
          "action": "Get backlinks history",
          "description": "Get backlinks found or lost in a date range"
        },
        {
          "name": "Get History Count",
          "value": "getHistoryCount",
          "action": "Get backlinks history count",
          "description": "Get daily counts of new/lost backlinks over a date range"
        },
        {
          "name": "Get Cumulative History",
          "value": "getCumulativeHistory",
          "action": "Get cumulative backlinks history",
          "description": "Get daily total of live backlinks over a date range"
        },
        {
          "name": "Get Anchors",
          "value": "getAnchors",
          "action": "Get anchor texts",
          "description": "Get anchor texts of backlinks pointing to the target"
        },
        {
          "name": "Get Referring Domains",
          "value": "getRefDomains",
          "action": "Get referring domains",
          "description": "Get list of domains linking to the target"
        },
        {
          "name": "Get Referring Domains Count",
          "value": "getRefDomainsCount",
          "action": "Get referring domains count",
          "description": "Get number of unique referring domains"
        },
        {
          "name": "Get Referring Domains History",
          "value": "getRefDomainsHistory",
          "action": "Get referring domains history",
          "description": "Get referring domains with new/lost links in a date range"
        },
        {
          "name": "Get Referring Domains History Count",
          "value": "getRefDomainsHistoryCount",
          "action": "Get referring domains history count",
          "description": "Get count of referring domains with link changes"
        },
        {
          "name": "Get Referring IPs",
          "value": "getReferringIps",
          "action": "Get referring IPs",
          "description": "Get IPv4 addresses of sites linking to the target"
        },
        {
          "name": "Get Referring IPs Count",
          "value": "getReferringIpsCount",
          "action": "Get referring IPs count",
          "description": "Get number of unique IP addresses linking to the target"
        },
        {
          "name": "Get Referring Subnets Count",
          "value": "getReferringSubnetsCount",
          "action": "Get referring subnets count",
          "description": "Get number of unique /24 IP subnets linking to the target"
        },
        {
          "name": "Get Indexed Pages",
          "value": "getIndexedPages",
          "action": "Get indexed pages",
          "description": "Get pages indexed or found by the backlink crawler"
        },
        {
          "name": "Get Authority",
          "value": "getAuthority",
          "action": "Get authority metrics",
          "description": "Get InLink Rank (page authority) and Domain InLink Rank"
        },
        {
          "name": "Get Domain Authority",
          "value": "getDomainAuthority",
          "action": "Get domain authority",
          "description": "Get Domain InLink Rank for the target domain"
        },
        {
          "name": "Get Domain Authority Distribution",
          "value": "getDomainAuthorityDistribution",
          "action": "Get domain authority distribution",
          "description": "Get distribution of domain authority scores among linking domains"
        },
        {
          "name": "Get Page Authority",
          "value": "getPageAuthority",
          "action": "Get page authority",
          "description": "Get InLink Rank (authority) for the target URL"
        },
        {
          "name": "Get Page Authority History",
          "value": "getPageAuthorityHistory",
          "action": "Get page authority history",
          "description": "Get historical InLink Rank values for the target URL"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "backlinks"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getOverviewWorldwide",
      "options": [
        {
          "name": "Get Regional Database Overview",
          "value": "getOverviewDb",
          "action": "Get regional database overview",
          "description": "Get detailed statistics for a specific regional database (FAST)"
        },
        {
          "name": "Get Worldwide Aggregate",
          "value": "getOverviewWorldwide",
          "action": "Get worldwide aggregate statistics",
          "description": "Get worldwide aggregate statistics for a domain (RECOMMENDED)"
        },
        {
          "name": "Get Overview History",
          "value": "getOverviewHistory",
          "action": "Get overview history",
          "description": "Get historical domain metrics over a date range"
        },
        {
          "name": "Get Keywords",
          "value": "getKeywords",
          "action": "Get domain keywords",
          "description": "Get keywords for which a domain ranks"
        },
        {
          "name": "Get Keywords Comparison",
          "value": "getKeywordsComparison",
          "action": "Get keywords comparison",
          "description": "Compare keyword rankings between two domains"
        },
        {
          "name": "Get Competitors",
          "value": "getCompetitors",
          "action": "Get domain competitors",
          "description": "Get competitor domains"
        },
        {
          "name": "Get Paid Ads for Keyword",
          "value": "getAdsForKeyword",
          "action": "Get paid ads for keyword",
          "description": "Get domains advertising on a specific keyword"
        },
        {
          "name": "Get Paid Ads for Domain",
          "value": "getAdsForDomain",
          "action": "Get paid ads for domain",
          "description": "Get keywords a domain is advertising on"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "domainAnalysis"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "exportMetrics",
      "options": [
        {
          "name": "Export Metrics",
          "value": "exportMetrics",
          "action": "Export keyword metrics",
          "description": "Get volume, CPC, competition, and difficulty for multiple keywords"
        },
        {
          "name": "Get Similar Keywords",
          "value": "getSimilar",
          "action": "Get similar keywords",
          "description": "Find semantically similar keywords"
        },
        {
          "name": "Get Related Keywords",
          "value": "getRelated",
          "action": "Get related keywords",
          "description": "Find topically related keywords with overlapping URLs"
        },
        {
          "name": "Get Question Keywords",
          "value": "getQuestions",
          "action": "Get question keywords",
          "description": "Find question-based keywords"
        },
        {
          "name": "Get Longtail Keywords",
          "value": "getLongtail",
          "action": "Get longtail keywords",
          "description": "Find long-tail keyword variations"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "keywordResearch"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "addTasks",
      "options": [
        {
          "name": "Add Tasks",
          "value": "addTasks",
          "action": "Add SERP tasks",
          "description": "Create SERP tasks for keywords (returns task IDs)"
        },
        {
          "name": "Get Results (standard)",
          "value": "getResults",
          "action": "Get SERP results",
          "description": "Get status or standard SERP results for a task"
        },
        {
          "name": "List Tasks",
          "value": "listTasks",
          "action": "List SERP tasks",
          "description": "List recent SERP tasks (last 24 hours)"
        },
        {
          "name": "Get Advanced Results",
          "value": "getAdvancedResults",
          "action": "Get advanced SERP results",
          "description": "Retrieve advanced (detailed) SERP results"
        },
        {
          "name": "Get Locations",
          "value": "getLocations",
          "action": "Get SERP locations",
          "description": "Get available location IDs for SERP queries"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "serpClassic"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "listAudits",
      "options": [
        {
          "name": "Create Standard Audit",
          "value": "createStandard",
          "action": "Create standard audit",
          "description": "Launch a standard (HTML) site audit"
        },
        {
          "name": "Create Advanced Audit",
          "value": "createAdvanced",
          "action": "Create advanced audit",
          "description": "Launch a JS-rendered site audit (for SPAs)"
        },
        {
          "name": "List Audits",
          "value": "listAudits",
          "action": "List all audits",
          "description": "Get all audits with status for the account"
        },
        {
          "name": "Get Audit Status",
          "value": "getStatus",
          "action": "Get audit status",
          "description": "Get status/progress of a specific audit"
        },
        {
          "name": "Get Audit Report",
          "value": "getReport",
          "action": "Get audit report",
          "description": "Retrieve full audit report for a completed audit"
        },
        {
          "name": "Get Crawled Pages",
          "value": "getCrawl",
          "action": "Get crawled pages",
          "description": "Get list of crawled pages for an audit"
        },
        {
          "name": "Get Issues by Type",
          "value": "getIssuesByType",
          "action": "Get issues by type",
          "description": "Get pages affected by a specific issue type"
        },
        {
          "name": "Get Issues by URL",
          "value": "getIssuesByUrl",
          "action": "Get issues for URL",
          "description": "Get all issue details for a specific audited URL"
        },
        {
          "name": "Get Links",
          "value": "getLinks",
          "action": "Get audit links",
          "description": "Get all outgoing links found during the audit"
        },
        {
          "name": "Get Audit History",
          "value": "getHistory",
          "action": "Get audit history",
          "description": "Get historical snapshot of a specific audit run"
        },
        {
          "name": "Update Audit",
          "value": "updateAudit",
          "action": "Update audit details",
          "description": "Update the title of an audit"
        },
        {
          "name": "Delete Audit",
          "value": "deleteAudit",
          "action": "Delete audit",
          "description": "Delete an audit by ID"
        },
        {
          "name": "Recheck Standard Audit",
          "value": "recheckStandard",
          "action": "Recheck standard audit",
          "description": "Re-run a standard audit with same settings"
        },
        {
          "name": "Recheck Advanced Audit",
          "value": "recheckAdvanced",
          "action": "Recheck advanced audit",
          "description": "Re-run an advanced audit with same settings"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "websiteAudit"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get Overview",
      "value": "getOverview",
      "action": "Get AI search overview",
      "description": "Get LLM visibility metrics for a domain"
    },
    {
      "name": "Discover Brand",
      "value": "discoverBrand",
      "action": "Discover brand name",
      "description": "Identify brand name for a domain"
    },
    {
      "name": "Get Prompts by Target",
      "value": "getPromptsByTarget",
      "action": "Get prompts by target",
      "description": "Get prompts mentioning target domain"
    },
    {
      "name": "Get Prompts by Brand",
      "value": "getPromptsByBrand",
      "action": "Get prompts by brand",
      "description": "Get prompts mentioning brand name"
    },
    {
      "name": "Get Summary",
      "value": "getSummary",
      "action": "Get backlinks summary",
      "description": "Get extended backlink statistics (total links, domains, etc)"
    },
    {
      "name": "Get Metrics",
      "value": "getMetrics",
      "action": "Get backlink metrics",
      "description": "Get key backlink metrics for one or more targets"
    },
    {
      "name": "Get All Backlinks",
      "value": "getAll",
      "action": "Get all backlinks",
      "description": "Get detailed list of backlinks (supports sorting/pagination)"
    },
    {
      "name": "Get Raw Backlinks",
      "value": "getRaw",
      "action": "Get raw backlinks",
      "description": "Stream backlinks in batches (cursor-based for large datasets)"
    },
    {
      "name": "Get Count",
      "value": "getCount",
      "action": "Get backlinks count",
      "description": "Get total number of backlinks to a target"
    },
    {
      "name": "Export Backlinks",
      "value": "export",
      "action": "Export backlinks",
      "description": "Bulk export all backlinks (for large-scale retrieval)"
    },
    {
      "name": "Check Export Status",
      "value": "exportStatus",
      "action": "Check export status",
      "description": "Check status of bulk export job"
    },
    {
      "name": "Download Export Data",
      "value": "exportDownload",
      "action": "Download export data",
      "description": "Download completed export data"
    },
    {
      "name": "Get History",
      "value": "getHistory",
      "action": "Get backlinks history",
      "description": "Get backlinks found or lost in a date range"
    },
    {
      "name": "Get History Count",
      "value": "getHistoryCount",
      "action": "Get backlinks history count",
      "description": "Get daily counts of new/lost backlinks over a date range"
    },
    {
      "name": "Get Cumulative History",
      "value": "getCumulativeHistory",
      "action": "Get cumulative backlinks history",
      "description": "Get daily total of live backlinks over a date range"
    },
    {
      "name": "Get Anchors",
      "value": "getAnchors",
      "action": "Get anchor texts",
      "description": "Get anchor texts of backlinks pointing to the target"
    },
    {
      "name": "Get Referring Domains",
      "value": "getRefDomains",
      "action": "Get referring domains",
      "description": "Get list of domains linking to the target"
    },
    {
      "name": "Get Referring Domains Count",
      "value": "getRefDomainsCount",
      "action": "Get referring domains count",
      "description": "Get number of unique referring domains"
    },
    {
      "name": "Get Referring Domains History",
      "value": "getRefDomainsHistory",
      "action": "Get referring domains history",
      "description": "Get referring domains with new/lost links in a date range"
    },
    {
      "name": "Get Referring Domains History Count",
      "value": "getRefDomainsHistoryCount",
      "action": "Get referring domains history count",
      "description": "Get count of referring domains with link changes"
    },
    {
      "name": "Get Referring IPs",
      "value": "getReferringIps",
      "action": "Get referring IPs",
      "description": "Get IPv4 addresses of sites linking to the target"
    },
    {
      "name": "Get Referring IPs Count",
      "value": "getReferringIpsCount",
      "action": "Get referring IPs count",
      "description": "Get number of unique IP addresses linking to the target"
    },
    {
      "name": "Get Referring Subnets Count",
      "value": "getReferringSubnetsCount",
      "action": "Get referring subnets count",
      "description": "Get number of unique /24 IP subnets linking to the target"
    },
    {
      "name": "Get Indexed Pages",
      "value": "getIndexedPages",
      "action": "Get indexed pages",
      "description": "Get pages indexed or found by the backlink crawler"
    },
    {
      "name": "Get Authority",
      "value": "getAuthority",
      "action": "Get authority metrics",
      "description": "Get InLink Rank (page authority) and Domain InLink Rank"
    },
    {
      "name": "Get Domain Authority",
      "value": "getDomainAuthority",
      "action": "Get domain authority",
      "description": "Get Domain InLink Rank for the target domain"
    },
    {
      "name": "Get Domain Authority Distribution",
      "value": "getDomainAuthorityDistribution",
      "action": "Get domain authority distribution",
      "description": "Get distribution of domain authority scores among linking domains"
    },
    {
      "name": "Get Page Authority",
      "value": "getPageAuthority",
      "action": "Get page authority",
      "description": "Get InLink Rank (authority) for the target URL"
    },
    {
      "name": "Get Page Authority History",
      "value": "getPageAuthorityHistory",
      "action": "Get page authority history",
      "description": "Get historical InLink Rank values for the target URL"
    },
    {
      "name": "Get Regional Database Overview",
      "value": "getOverviewDb",
      "action": "Get regional database overview",
      "description": "Get detailed statistics for a specific regional database (FAST)"
    },
    {
      "name": "Get Worldwide Aggregate",
      "value": "getOverviewWorldwide",
      "action": "Get worldwide aggregate statistics",
      "description": "Get worldwide aggregate statistics for a domain (RECOMMENDED)"
    },
    {
      "name": "Get Overview History",
      "value": "getOverviewHistory",
      "action": "Get overview history",
      "description": "Get historical domain metrics over a date range"
    },
    {
      "name": "Get Keywords",
      "value": "getKeywords",
      "action": "Get domain keywords",
      "description": "Get keywords for which a domain ranks"
    },
    {
      "name": "Get Keywords Comparison",
      "value": "getKeywordsComparison",
      "action": "Get keywords comparison",
      "description": "Compare keyword rankings between two domains"
    },
    {
      "name": "Get Competitors",
      "value": "getCompetitors",
      "action": "Get domain competitors",
      "description": "Get competitor domains"
    },
    {
      "name": "Get Paid Ads for Keyword",
      "value": "getAdsForKeyword",
      "action": "Get paid ads for keyword",
      "description": "Get domains advertising on a specific keyword"
    },
    {
      "name": "Get Paid Ads for Domain",
      "value": "getAdsForDomain",
      "action": "Get paid ads for domain",
      "description": "Get keywords a domain is advertising on"
    },
    {
      "name": "Export Metrics",
      "value": "exportMetrics",
      "action": "Export keyword metrics",
      "description": "Get volume, CPC, competition, and difficulty for multiple keywords"
    },
    {
      "name": "Get Similar Keywords",
      "value": "getSimilar",
      "action": "Get similar keywords",
      "description": "Find semantically similar keywords"
    },
    {
      "name": "Get Related Keywords",
      "value": "getRelated",
      "action": "Get related keywords",
      "description": "Find topically related keywords with overlapping URLs"
    },
    {
      "name": "Get Question Keywords",
      "value": "getQuestions",
      "action": "Get question keywords",
      "description": "Find question-based keywords"
    },
    {
      "name": "Get Longtail Keywords",
      "value": "getLongtail",
      "action": "Get longtail keywords",
      "description": "Find long-tail keyword variations"
    },
    {
      "name": "Add Tasks",
      "value": "addTasks",
      "action": "Add SERP tasks",
      "description": "Create SERP tasks for keywords (returns task IDs)"
    },
    {
      "name": "Get Results (standard)",
      "value": "getResults",
      "action": "Get SERP results",
      "description": "Get status or standard SERP results for a task"
    },
    {
      "name": "List Tasks",
      "value": "listTasks",
      "action": "List SERP tasks",
      "description": "List recent SERP tasks (last 24 hours)"
    },
    {
      "name": "Get Advanced Results",
      "value": "getAdvancedResults",
      "action": "Get advanced SERP results",
      "description": "Retrieve advanced (detailed) SERP results"
    },
    {
      "name": "Get Locations",
      "value": "getLocations",
      "action": "Get SERP locations",
      "description": "Get available location IDs for SERP queries"
    },
    {
      "name": "Create Standard Audit",
      "value": "createStandard",
      "action": "Create standard audit",
      "description": "Launch a standard (HTML) site audit"
    },
    {
      "name": "Create Advanced Audit",
      "value": "createAdvanced",
      "action": "Create advanced audit",
      "description": "Launch a JS-rendered site audit (for SPAs)"
    },
    {
      "name": "List Audits",
      "value": "listAudits",
      "action": "List all audits",
      "description": "Get all audits with status for the account"
    },
    {
      "name": "Get Audit Status",
      "value": "getStatus",
      "action": "Get audit status",
      "description": "Get status/progress of a specific audit"
    },
    {
      "name": "Get Audit Report",
      "value": "getReport",
      "action": "Get audit report",
      "description": "Retrieve full audit report for a completed audit"
    },
    {
      "name": "Get Crawled Pages",
      "value": "getCrawl",
      "action": "Get crawled pages",
      "description": "Get list of crawled pages for an audit"
    },
    {
      "name": "Get Issues by Type",
      "value": "getIssuesByType",
      "action": "Get issues by type",
      "description": "Get pages affected by a specific issue type"
    },
    {
      "name": "Get Issues by URL",
      "value": "getIssuesByUrl",
      "action": "Get issues for URL",
      "description": "Get all issue details for a specific audited URL"
    },
    {
      "name": "Get Links",
      "value": "getLinks",
      "action": "Get audit links",
      "description": "Get all outgoing links found during the audit"
    },
    {
      "name": "Get Audit History",
      "value": "getHistory",
      "action": "Get audit history",
      "description": "Get historical snapshot of a specific audit run"
    },
    {
      "name": "Update Audit",
      "value": "updateAudit",
      "action": "Update audit details",
      "description": "Update the title of an audit"
    },
    {
      "name": "Delete Audit",
      "value": "deleteAudit",
      "action": "Delete audit",
      "description": "Delete an audit by ID"
    },
    {
      "name": "Recheck Standard Audit",
      "value": "recheckStandard",
      "action": "Recheck standard audit",
      "description": "Re-run a standard audit with same settings"
    },
    {
      "name": "Recheck Advanced Audit",
      "value": "recheckAdvanced",
      "action": "Recheck advanced audit",
      "description": "Re-run an advanced audit with same settings"
    }
  ]

npm_readme:
  # n8n-nodes-seranking

  This is an n8n custom node that lets you use [SE Ranking](https://seranking.com/) in your n8n workflows.

  SE Ranking is a comprehensive SEO platform providing keyword research, competitor analysis, website audits, backlink monitoring, and AI search visibility tracking.

  [n8n](https://n8n.io/) is a workflow automation platform.

  ---

  ## Table of Contents

  - [Installation](#installation)
  - [Credentials](#credentials)
  - [Compatibility](#compatibility)
  - [Operations](#operations)
  - [Usage Examples](#usage-examples)
  - [API Documentation](#api-documentation)
  - [Version History](#version-history)

  ---

  ## Installation

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

  ### Prerequisites

  - Node.js 18.x or higher
  - n8n 1.0.0 or higher
  - SE Ranking API Token ([Get it here](https://online.seranking.com/admin.api.dashboard.html))

  ### npm (Recommended)

  ```bash
  npm install @seranking/n8n-nodes-seranking
  ```

  ### Quick Installation

  1. Navigate to your n8n installation directory
  2. Install the package:
     ```bash
     npm install @seranking/n8n-nodes-seranking
     ```
  3. Restart n8n

  ### Manual Install

  ### Step 1: Install n8n

  ```bash
  npm install n8n -g
  ```

  ### Step 2: Install SE Ranking Node

  **Option A: From .tgz file**

  ```bash
  npm install -g seranking-n8n-nodes-seranking-1.3.0.tgz
  ```

  **Option B: From GitHub**

  ```bash
  npm install -g git+https://github.com/seranking/n8n-nodes-seranking.git
  ```

  **Option C: From source (for developers)**

  ```bash
  cd ~/.n8n/custom
  git clone https://github.com/seranking/n8n-nodes-seranking.git
  cd n8n-nodes-seranking
  npm install
  npm run build
  npm link
  ```

  ### Step 3: Start n8n

  ```bash
  n8n start
  ```

  Open `http://localhost:5678` and add the SE Ranking node to your workflow.

  ### Step 4: Configure Credentials

  1. Add SE Ranking node
  2. Click "Create New Credential"
  3. Enter your API Token
  4. Select "Data API" as API Type
  5. Save

  ### Docker Installation

  ```bash
  # Create custom directory
  mkdir -p ~/.n8n/custom
  cd ~/.n8n/custom

  # Install node 
  npm install @seranking/n8n-nodes-seranking
  # OR
  npm install git+https://github.com/seranking/n8n-nodes-seranking.git

  # Run n8n
  docker run -it --rm \
    --name n8n \
    -p 5678:5678 \
    -v ~/.n8n:/home/node/.n8n \
    docker.n8n.io/n8nio/n8n
  ```

  ### Verify Installation

  1. Open n8n at `http://localhost:5678`
  2. Search for "SE Ranking" node
  3. If it appears, installation successful ✓

  ### Updating

  **From npm:**

  ```bash
  npm update @seranking/n8n-nodes-seranking
  ```

  **From .tgz:**

  ```bash
  npm uninstall -g seranking-n8n-nodes-seranking
  npm install -g seranking-n8n-nodes-seranking-NEW-VERSION.tgz
  ```

  **From GitHub:**

  ```bash
  npm install -g git+https://github.com/seranking/n8n-nodes-seranking.git
  ```

  **From source:**

  ```bash
  cd ~/.n8n/custom/n8n-nodes-seranking
  git pull
  npm install
  npm run build
  ```

  Then restart n8n
  ---

  ## Credentials

  To use this node, you need:

  1. **SE Ranking Account** - Sign up at [seranking.com](https://seranking.com/)
  2. **API Token** - Generate from your [SE Ranking API Dashboard](https://online.seranking.com/admin.api.dashboard.html)

  ### Setting up credentials in n8n

  1. Open any workflow and add the **SE Ranking** node
  2. Click on **Create New Credential**
  3. Enter your **API Token**
  4. Select **Data API** as API Type
  5. Click **Save**

  The node will automatically test your credentials by making a test request to the SE Ranking API.

  ---

  ## Compatibility

  - **n8n version**: 1.0.0 or higher
  - **Node.js version**: 18.x or higher
  - **SE Ranking API**: v1 (Data API)

  ## Operations

  This node provides access to 6 SE Ranking resources with 62 total operations:

  ### AI Search (4 operations)

  - Get Overview - LLM visibility metrics across ChatGPT, Perplexity, Gemini
  - Discover Brand - Identify brand name for domain
  - Get Prompts by Target - Find prompts mentioning your domain
  - Get Prompts by Brand - Track brand mentions in AI responses

  ### Backlinks (25 operations)

  - Get Summary - Complete backlink portfolio overview
  - Get Metrics - Key metrics for multiple targets
  - Get All Backlinks - Detailed backlink list with filters
  - Get Raw Backlinks - Cursor-based bulk retrieval
  - Get Count - Total backlinks count
  - Export Backlinks - Bulk export functionality
  - Check Export Status - Monitor export progress
  - Download Export Data - Retrieve completed exports
  - Get History - New/lost backlinks by date range
  - Get History Count - Daily new/lost counts
  - Get Cumulative History - Historical growth tracking
  - Get Anchors - Anchor text analysis
  - Get Referring Domains - List of linking domains
  - Get Referring Domains Count - Unique domain count
  - Get Referring Domains History - Domain link changes
  - Get Referring Domains History Count - Domain change counts
  - Get Referring IPs - IP addresses of linking sites
  - Get Referring IPs Count - Unique IP count
  - Get Referring Subnets Count - /24 subnet diversity
  - Get Indexed Pages - Pages in backlink index
  - Get Authority - InLink Rank metrics
  - Get Domain Authority - Domain-level authority
  - Get Domain Authority Distribution - Authority score distribution
  - Get Page Authority - Page-level authority
  - Get Page Authority History - Historical authority tracking

  ### Domain Analysis (11 operations)

  - Get Regional Database Overview - Regional performance data
  - Get Worldwide Aggregate - Global domain statistics
  - Get Worldwide Aggregate for URL - URL-level global performance
  - Get Overview History - Historical metrics tracking
  - Get Keywords - Ranking keywords with filters
  - Get Keywords Comparison - Domain vs competitor analysis
  - Get Domain Pages - Page-level keyword and traffic metrics
  - Get Domain Subdomains - Subdomain performance analysis
  - Get Competitors - Identify competing domains
  - Get Paid Ads for Keyword - Advertisers on keywords
  - Get Paid Ads for Domain - Domain's advertising keywords

  ### Keyword Research (5 operations)

  - Export Metrics - Bulk keyword metrics (up to 700 keywords)
  - Get Similar Keywords - Semantically similar suggestions
  - Get Related Keywords - Topically related keywords
  - Get Question Keywords - Question-based variations
  - Get Longtail Keywords - Long-tail opportunities

  ### Website Audit (14 operations)

  - Create Standard Audit - HTML site audit
  - Create Advanced Audit - JS-rendered audit for SPAs
  - List Audits - All audits with status
  - Get Audit Status - Check audit progress
  - Get Audit Report - Full audit results
  - Get Crawled Pages - List of crawled URLs
  - Get Issues by Type - Pages with specific issues
  - Get Issues by URL - All issues for one URL
  - Get Links - Internal/external links found
  - Get Audit History - Historical audit snapshots
  - Update Audit - Modify audit details
  - Delete Audit - Remove audit
  - Recheck Standard Audit - Re-run HTML audit
  - Recheck Advanced Audit - Re-run JS audit

  ### SERP Classic (5 operations)

  - Add Tasks - Create SERP tasks for keywords (up to 1,000 per request)
  - Get Results - Get standard SERP results for a task
  - List Tasks - List recent SERP tasks (last 24 hours)
  - Get Advanced Results - Retrieve detailed SERP results with all features
  - Get Locations - Get available location IDs for SERP queries

  ## Usage Examples

  Ready-to-use workflows demonstrating real-world applications of the SE Ranking node. Each example includes importable n8n workflows, setup instructions, and expected outputs.

  ---

  ### 🤖 Example 1: AI Search Visibility Tracker

  **Track your brand's presence and competitive gaps across ChatGPT, Perplexity, and Gemini**

  Two comprehensive workflows for monitoring AI visibility and identifying content opportunities.

  **Workflow 1: AI Search Visibility Tracker**

  Monitor how often your brand appears in AI-powered search engines with automated historical tracking.

  - Link presence count across multiple AI engines
  - Average position tracking in AI citations
  - AI opportunity traffic estimates
  - Period-over-period comparison metrics

  **Workflow 2: Competitor Topic Gap Analysis**

  Identify content opportunities by analyzing where competitors outrank you in AI search and traditional SEO.

  - AI visibility gaps across ChatGPT, Perplexity, and Gemini
  - Keyword gaps with search volume and difficulty
  - Competitor backlink authority metrics
  - Prioritized opportunities with HIGH/MEDIUM/LOW scoring
  - Actionable recommendations for each gap

  **Best For:** Marketing teams tracking AI SEO performance, Content strategists planning editorial calendars, SEO teams doing competitive intelligence

  📂 [View Full Guide & Download Workflow →](./Usage-Examples/AI-Search)

  ---

  ### 🔗 Example 2: Backlinks Monitoring & Analysis

  **Track new/lost backlinks, monitor domain authority, and analyze anchor text distribution**

  Automatically monitor backlink portfolio health with daily tracking and alerts for significant changes.

  **What You'll Get:**

  - Daily new/lost backlink reports
  - Domain authority trend tracking
  - Anchor text distribution analysis
  - Referring domain diversity metrics
  - Export-ready CSV/Excel reports

  **Best For:** SEO agencies managing client backlink portfolios, In-house SEO teams tracking link-building campaigns

  📂 [View Full Guide & Download Workflow →](./Usage-Examples/SERP-Classic)

  ---

  ### 📊 Example 3: Domain Analysis Data Processor

  **Transform SE Ranking API data into structured Google Sheets reports**

  Automatically process and organize domain analysis data with intelligent type detection.

  **What You'll Get:**

  - Regional performance across 200+ countries
  - Domain summary with organic vs. paid breakdown
  - Keywords analysis with positions and difficulty
  - Competitor insights and gap analysis
  - Multi-domain comparison with worldwide traffic data

  **Best For:** SEO agencies managing multiple clients, Enterprise teams tracking regional performance

  📂 [View Full Guide & Download Workflow →](./Usage-Examples/Domain-Analysis)

  ---

  ### 🔍 Example 4: Keyword Research Automation

  **Automate comprehensive keyword research with trend analysis**

  Build an automated keyword intelligence pipeline with historical tracking and SERP features.

  **What You'll Get:**

  - Bulk keyword metrics with volume and CPC
  - Historical trend analysis (peaks, valleys, averages)
  - SERP features tracking (PAA, featured snippets, etc.)
  - Search intent mapping (informational, commercial, navigational)

  **Best For:** Content strategists planning editorial calendars, SEO specialists doing competitor research

  📂 [View Full Guide & Download Workflow →](./Usage-Examples/Keyword-Research)

  ---

  ### 🔧 Example 5: Website Audit Automation

  **Automatically crawl sites, detect issues, and generate reports**

  Schedule regular technical SEO audits and get alerts when critical issues are detected.

  **What You'll Get:**

  - Automated monthly/weekly site audits
  - Issue detection across 25+ SEO factors
  - Historical issue tracking and resolution monitoring
  - Exportable reports for clients/stakeholders

  **Best For:** Development teams doing pre-launch checks, SEO consultants managing multiple client sites

  📂 [View Full Guide & Download Workflow →](./Usage-Examples/Website-Audit)

  ---

  ### 📍 Example 6: SERP Classic Tracking

  **Track keyword rankings and analyze SERP features across search engines**

  Monitor keyword positions, SERP features, and competitor visibility with automated rank tracking.

  **What You'll Get:**

  - Keyword position tracking across multiple locations
  - SERP features analysis (featured snippets, local pack, etc.)
  - Competitor ranking visibility
  - Device-specific rankings (desktop, mobile, tablet)
  - Historical rank tracking

  **Best For:** SEO teams tracking keyword performance, Local businesses monitoring location-based rankings, Agencies managing multi-client SERP tracking

  📂 [View Full Guide & Download Workflow →](./Usage-Examples/SERP-Classic)

  ---

  ### 🚀 Quick Start

  1. **Browse** the example that matches your use case
  2. **Download** the `workflow.json` file from the example folder
  3. **Import** into n8n (Workflows → Import from File)
  4. **Configure** your SE Ranking API credentials
  5. **Run** and customize to your needs

  **Need help?** Each example includes troubleshooting tips and configuration details.

  ---

  ## API Documentation

  This node implements the following SE Ranking APIs:

  - [AI Search API](https://seranking.com/api/data/ai-search/)
  - [Backlinks API](https://seranking.com/api/data/backlinks/)
  - [Domain Analysis API](https://seranking.com/api/data/domain-analysis/)
  - [Keyword Research API](https://seranking.com/api/data/keyword-research/)
  - [Website Audit API](https://seranking.com/api/data/website-audit/)
  - [SERP API](https://seranking.com/api/data/serp/)

  For detailed API specifications, visit [SE Ranking API Documentation](https://seranking.com/api.html).

  ---

  ## Version History

  ## Version History

  ### v1.3.3 (Current)

  - ✅ **NEW: Get Worldwide Aggregate for URL** - URL-level global performance metrics
  - ✅ **NEW: Get Domain Pages** - Page-level keyword and traffic analysis with intent breakdown
  - ✅ **NEW: Get Domain Subdomains** - Subdomain traffic and keyword metrics
  - ✅ **Total: 62 operations across 6 resources**
  - ✅ Advanced filtering for pages/subdomains (traffic %, keywords count, traffic sum)
  - ✅ Search intent breakdown (Informational, Navigational, Transactional, Commercial, Local)

  ### v1.3.0 

  - ✅ Complete AI Search resource (4 operations)
  - ✅ Complete Backlinks resource (25 operations)
  - ✅ Enhanced Domain Analysis resource (8 operations - added History, Comparison, Paid Ads)
  - ✅ Complete Keyword Research resource (5 operations)
  - ✅ Complete Website Audit resource (14 operations)
  - ✅ **NEW: Complete SERP Classic resource (5 operations)**
  - ✅ **Total: 59 operations across 6 resources**
  - ✅ Comprehensive error handling with detailed messages
  - ✅ Full TypeScript support
  - ✅ Input validation (domains, sources, dates)
  - ✅ Pagination support (offset/limit)
  - ✅ Advanced filtering options
  - ✅ Multi-keyword support (up to 1,000 keywords for SERP tasks)
  - ✅ Backlink export and bulk operations
  - ✅ Website audit creation and management
  - ✅ **NEW: SERP rank tracking and analysis**
  - ✅ **NEW: Multi-location SERP data retrieval**

  ### v1.2.3

  - ✅ Complete AI Search resource (4 operations)
  - ✅ **NEW: Complete Backlinks resource (25 operations)**
  - ✅ Enhanced Domain Analysis resource (8 operations - added History, Comparison, Paid Ads)
  - ✅ Complete Keyword Research resource (5 operations)
  - ✅ **NEW: Complete Website Audit resource (14 operations)**
  - ✅ **Total: 54 operations across 5 resources**
  - ✅ Comprehensive error handling with detailed messages
  - ✅ Full TypeScript support
  - ✅ Input validation (domains, sources, dates)
  - ✅ Pagination support (offset/limit)
  - ✅ Advanced filtering options
  - ✅ Multi-keyword support (up to 700 keywords)
  - ✅ **NEW: Backlink export and bulk operations**
  - ✅ **NEW: Website audit creation and management**

  ### v1.0.7

  - ✅ Complete AI Search resource (4 operations)
  - ✅ Complete Domain Analysis resource (4 operations)
  - ✅ Complete Keyword Research resource (5 operations)
  - ✅ Total: 13 operations across 3 resources
  - ✅ Comprehensive error handling with detailed messages
  - ✅ Full TypeScript support
  - ✅ Input validation (domains, sources, dates)
  - ✅ Pagination support (offset/limit)
  - ✅ Advanced filtering options
  - ✅ Multi-keyword support (up to 700 keywords)

  ---

  ## Features

  ✅ **62 Operations** - Comprehensive coverage across 6 major resources  

  ✅ **Type Safety** - Full TypeScript implementation with strict typing  

  ✅ **Error Handling** - Detailed error messages with troubleshooting hints  

  ✅ **Pagination** - Efficient handling of large datasets  

  ✅ **Advanced Filtering** - Volume, position, CPC, difficulty filters  

  ✅ **Validation** - Input validation for domains, country codes, and parameters  

  ✅ **Authentication** - Automatic credential management and testing  

  ✅ **Rate Limiting** - Built-in rate limit handling with retry logic  

  ✅ **Batch Operations** - Support for multiple keywords/domains  

  ✅ **Backlink Monitoring** - Complete backlink analysis and tracking  

  ✅ **Website Auditing** - Technical SEO audits with issue detection

  ✅ **SERP Tracking** - Keyword ranking and SERP features analysis

  ---

  ## Limitations

  - **Rate Limits**: SE Ranking API has rate limits (varies by plan)
  - **Regional Data**: Some data is region-specific (requires country code)
  - **Keyword Limits**: Export Metrics supports up to 700 keywords per request
  - **Historical Data**: History trend data adds to response time
  - **API Credits**: Some operations consume API credits (check your plan)

  ---

  ## Troubleshooting

  ### Authentication Errors

  **Problem**: "401 Unauthorized" or "Invalid API Token"

  **Solution**:

  1. Verify API token is correct (copy from SE Ranking dashboard)
  2. Ensure API Type is set to "Data API"
  3. Check token hasn't expired
  4. Regenerate token in SE Ranking dashboard if needed
  5. Test credentials using the "Test" button in n8n

  ---

  ### Invalid Source/Country Code

  **Problem**: "Invalid source" or "400 Bad Request"

  **Solution**:

  1. Use correct Alpha-2 country codes: `us`, `uk`, `de`, `fr`, `es`, `it`, `ca`, `au`, `pl`
  2. Country code must be lowercase
  3. Check if SE Ranking has data for that region
  4. Some engines/features may not be available in all regions

  ---

  ### Domain Format Errors

  **Problem**: "Invalid domain format" or "Domain validation failed"

  **Solution**:

  1. Remove `http://` or `https://` from domain (unless operation specifies full URL)
  2. Remove `www.` prefix
  3. Remove trailing slashes
  4. Use format: `example.com` not `www.example.com/`
  5. For subdomains: `blog.example.com` is valid

  **Valid formats:**

  - ✅ `example.com`
  - ✅ `blog.example.com`
  - ✅ `example.co.uk`
  - ❌ `https://example.com`
  - ❌ `www.example.com`
  - ❌ `example.com/`

  ---

  ### Empty Results

  **Problem**: No data returned from API

  **Solution**:

  1. Verify domain has data in SE Ranking database
  2. Check if domain is indexed/tracked
  3. Try different source/region (domain may rank elsewhere)
  4. Adjust filters - they may be too restrictive
  5. For new domains, wait 24-48 hours for initial data collection
  6. Check if keyword has search volume in selected region

  ---

  ### Timeout Errors

  **Problem**: "Request timeout" or "Operation exceeded time limit"

  **Solution**:

  1. Reduce `limit` parameter (try 100 instead of 1000)
  2. Use pagination with `offset` to fetch data in chunks
  3. For keyword export, reduce number of keywords (try 100 instead of 700)
  4. Remove `history_trend` parameter if not needed (adds processing time)
  5. Use "Get Worldwide Aggregate" instead of getting all regional databases

  ---

  ### Too Many Keywords Error

  **Problem**: "Too many keywords" or "Maximum 700 keywords exceeded"

  **Solution**:

  1. Split keyword list into batches of 700 or less
  2. Use multiple node executions with different batches
  3. Consider using keyword suggestion operations first to narrow down list

  ---

  ### Rate Limit Errors

  **Problem**: "429 Too Many Requests" or "Rate limit exceeded"

  **Solution**:

  1. Add delay between requests using n8n Wait node
  2. Reduce frequency of scheduled workflows
  3. Use batch operations instead of individual requests
  4. Upgrade SE Ranking plan for higher rate limits
  5. Implement exponential backoff retry logic

  ---

  ## Best Practices

  ### 1. Efficient Data Retrieval

  ✅ **DO:**

  - Use "Get Worldwide Aggregate" for quick domain overview
  - Use pagination for large datasets (limit: 100-500)
  - Cache frequently accessed data
  - Use filters to reduce result size

  ❌ **DON'T:**

  - Request all databases when you only need one region
  - Fetch 10,000 keywords at once without pagination
  - Request history_trend unless specifically needed

  ### 2. Keyword Research

  ✅ **DO:**

  - Start with similar keywords, then expand to related/questions
  - Use filters to focus on achievable opportunities (difficulty < 50)
  - Export metrics in batches of 200-500 keywords
  - Include multiple keyword types for comprehensive research

  ❌ **DON'T:**

  - Request all keyword types simultaneously without filtering
  - Ignore difficulty scores (targeting too-hard keywords wastes effort)
  - Forget to check search intent and relevance

  ### 3. Backlink Monitoring

  ✅ **DO:**

  - Schedule daily checks for new/lost backlinks
  - Use "Get Summary" for quick health checks
  - Export full data monthly for archival
  - Track Domain InLink Rank trends over time
  - Monitor anchor text distribution for natural link profile

  ❌ **DON'T:**

  - Poll "Get All Backlinks" every hour (use history endpoints)
  - Download exports without checking status first
  - Ignore referring domain diversity (IP distribution)

  ### 4. Competitor Analysis

  ✅ **DO:**

  - Use "Get Competitors" to identify relevant competitors first
  - Track competitor changes over time (weekly/monthly)
  - Focus on keywords where competitors rank in top 20
  - Analyze multiple competitors to find patterns

  ❌ **DON'T:**

  - Compare against irrelevant competitors
  - Track too many competitors (focus on top 5-10)
  - Ignore competitor's content strategy and backlink profile

  ### 5. AI Search Optimization

  ✅ **DO:**

  - Monitor multiple engines (ChatGPT, Perplexity, Gemini)
  - Track brand mentions and citation types
  - Focus on high-volume prompts
  - Use base_domain scope for brand monitoring

  ❌ **DON'T:**

  - Only track one LLM engine
  - Ignore prompt context and user intent
  - Forget to optimize content based on insights

  ### 6. Website Auditing

  ✅ **DO:**

  - Use Advanced Audit for JavaScript-heavy sites (React, Vue, Angular)
  - Set realistic max_pages based on site size
  - Schedule monthly audits for ongoing monitoring
  - Compare historical audits to track improvements
  - Export issues to spreadsheet for team collaboration

  ❌ **DON'T:**

  - Set max_pages too high (start with 1000-5000)
  - Ignore robots.txt unless intentionally testing blocked areas
  - Run audits too frequently (daily audits waste credits)

  ### 7. Error Handling

  ✅ **DO:**

  - Implement retry logic for transient errors
  - Log errors for debugging
  - Use n8n's "Continue on Fail" for batch operations
  - Validate input before API calls

  ❌ **DON'T:**

  - Ignore error messages (they contain helpful hints)
  - Retry immediately after rate limit (wait 60s)
  - Skip input validation

  ---

  ### Development Setup

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

  # Navigate to directory
  cd n8n-nodes-seranking

  # Install dependencies
  npm install

  # Build the node
  npm run build

  # Watch for changes during development
  npm run dev
  ```

  ### Project Structure

  ```
  n8n-nodes-seranking/
  │
  ├── credentials/
  │   └── SeRankingApi.credentials.ts                               # API credentials configuration
  │
  ├── nodes/
  │   └── SeRanking/
  │       ├── SeRanking.node.ts                                     # Main node definition
  │       ├── dataApi/
  │       │   ├── operations/
  │       │   │   ├── AiSearchOperations.ts                         # AI Search operations logic
  │       │   │   ├── BacklinksOperations.ts                        # Backlinks operations logic
  │       │   │   ├── DomainAnalysisOperations.ts                   # Domain Analysis operations logic
  │       │   │   ├── KeywordResearchOperations.ts                  # Keyword Research operations logic
  │       │   │   ├── WebsiteAuditOperations.ts                     # Website Audit operations logic
  │       │   │   └── SerpClassicOperations.ts                      # SERP Classic operations logic
  │       │   └── descriptions/
  │       │       ├── AiSearchDescription.ts                        # AI Search UI definitions
  │       │       ├── BacklinksDescription.ts                       # Backlinks UI definitions
  │       │       ├── DomainAnalysisDescription.ts                  # Domain Analysis UI definitions
  │       │       ├── KeywordResearchDescription.ts                 # Keyword Research UI definitions
  │       │       ├── WebsiteAuditDescription.ts                    # Website Audit UI definitions
  │       │       └── SerpClassicDescription.ts                     # SERP Classic UI definitions
  │       └── utils/
  │           ├── validators.ts                                     # Input validators
  │           └── apiRequest.ts                                     # API request handler
  │
  ├── Usage-Examples/
  │   ├── AI-Search/
  │   │   ├── AIVisibilityTracker.json                              # Workflow 1: AI Visibility Tracker
  │   │   ├── AIVisibilityTrackerResults.xlsx                       # Workflow 1 Results
  │   │   ├── SERanking-CompetitorTopicGapAnalysis.json             # Workflow 2: Competitor Topic Gap Analysis
  │   │   ├── SE Ranking - Competitor Topic Gap Analysis.xlsx       # Workflow 2 Results
  │   │   └── README.md                                             # AI Search workflows documentation
  │   │
  │   ├── Backlinks/
  │   │   ├── Backlinks-Monitoring&Analysis.json                    # Backlinks monitoring workflow
  │   │   └── README.md                                             # Backlinks workflow documentation
  │   │
  │   ├── Domain-Analysis/
  │   │   ├── DomainAnalysisMulti-FormatProcessor.json              # Workflow 1: Multi-Format Data Processor
  │   │   ├── DomainAnalysisMulti-FormatProcessor.xlsx              # Workflow 1 Results
  │   │   ├── DomainTraffic&CompetitorAnalysis.json                 # Workflow 2: Multi-Domain Traffic Analysis
  │   │   ├── DomainTraffic&CompetitorAnalysis.xlsx                 # Workflow 2 Results
  │   │   ├── Get_Regional_DB_Overview.jpg                          # Screenshot: Regional Overview
  │   │   ├── Get_Worldwide_Aggregate.jpg                           # Screenshot: Worldwide Aggregate
  │   │   ├── Get_Domain_Keywords.jpg                               # Screenshot: Keywords Analysis
  │   │   ├── Get_Competitors.jpg                                   # Screenshot: Competitors
  │   │   ├── Get keywords comparison Organic Common Keywords.jpg   # Screenshot: Keywords Comparison
  │   │   ├── Get keywords comparison Organic Keyword Gap.jpg       # Screenshot: Organic Gap
  │   │   ├── Get keywords comparison Paid Keyword Gap.jpg          # Screenshot: Paid Gap
  │   │   ├── Get keywords comparison Paid.jpg                      # Screenshot: Paid Comparison
  │   │   ├── Get overview history Organic.jpg                      # Screenshot: Organic History
  │   │   ├── Get overview history Paid.jpg                         # Screenshot: Paid History
  │   │   ├── Get paid ads for domain.jpg                           # Screenshot: Domain Ads
  │   │   ├── Get paid ads for keyword.jpg                          # Screenshot: Keyword Ads
  │   │   ├── Get audit links.png                                   # Screenshot: Audit Links
  │   │   ├── Get crawled pages.png                                 # Screenshot: Crawled Pages
  │   │   ├── Get issues for URL.png                                # Screenshot: URL Issues
  │   │   └── README.md                                             # Domain Analysis workflows documentation
  │   │
  │   ├── Keyword-Research/
  │   │   ├── KeywordResearch→GoogleSheetsPipeline.json             # Keyword research workflow
  │   │   ├── KeywordResearch→GoogleSheetsPipeline.xlsx             # Workflow results
  │   │   ├── Get_Similar_Keywords.jpg                              # Screenshot: Similar Keywords
  │   │   ├── Get_Related_Keywords.jpg                              # Screenshot: Related Keywords
  │   │   ├── Get_Question_Keywords.jpg                             # Screenshot: Question Keywords
  │   │   ├── Get_Longtail_Keywords.jpg                             # Screenshot: Longtail Keywords
  │   │   └── README.md                                             # Keyword Research workflow documentation
  │   │
  │   ├── Website-Audit/
  │   │   ├── Website-Audit-Technical-SEO-Monitor.json              # Website audit workflow
  │   │   └── README.md                                             # Website Audit workflow documentation
  │   │
  │   └── SERP-Classic/
  │       ├── Gelato-Small-Towns-Amsterdam-Area.json                # SERP tracking workflow
  │       ├── Gelato Small Towns Amsterdam Area.xlsx                # Workflow results
  │       └── README.md                                             # SERP Classic workflow documentation
  │
  ├── package.json
  ├── package-lock.json
  ├── tsconfig.json
  └── README.md
  ```

  ---

  ## Acknowledgments

  - Built for the [n8n](https://n8n.io/) workflow automation platform
  - Powered by [SE Ranking API](https://seranking.com)

  ---

  ## Keywords

  n8n, n8n-custom-node, seranking, seo, keyword-research, domain-analysis, ai-search, llm-visibility, serp-tracking, competitive-analysis, seo-automation, workflow-automation

  ---

  **Made with ❤️ for SEO professionals using n8n**

ai_documentation_summary:
  {"purpose":"The SE Ranking n8n node enables users to integrate SE Ranking's SEO analytics platform into n8n workflows, allowing automation of tasks such as keyword research, backlink monitoring, domain analysis, and AI search visibility tracking.","capabilities":["Retrieve AI search visibility metrics (e.g., ChatGPT, Gemini, Perplexity)","Discover brand names from domains","Find prompts mentioning a domain or brand in AI responses","Get comprehensive backlink data including count, anchors, referring domains, IPs, and authority scores","Analyze domain performance with regional and global metrics","Perform keyword research and comparison with competitors","Track domain and page-level keyword rankings and traffic","Identify competitors and paid advertising activity on keywords","Export and monitor backlink data exports","Access historical backlink and authority trends"],"authentication":"API token required; generated from the SE Ranking API Dashboard (https://online.seranking.com/admin.api.dashboard.html)","commonUseCases":["Automated keyword research and competitor analysis","Backlink monitoring and auditing for SEO tracking","AI search visibility tracking across major AI platforms","Domain performance and regional SEO trend analysis","Periodic export of backlink data for reporting"],"limitations":[],"relatedNodes":["SEO Analysis","Competitor Research","Backlink Monitoring","Keyword Research","AI/LLM Integration"]}


node_type: @blotato/n8n-nodes-blotato.blotato
package_name: @blotato/n8n-nodes-blotato
display_name: Blotato
description: Use Blotato API
category: Community
development_style: declarative
version: 2
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-01-07 20:08:15
author_name: sabrina_ramonov
author_github_url: https://github.com/Blotato-Inc/n8n-nodes-blotato.git
npm_package_name: @blotato/n8n-nodes-blotato
npm_version: 1.0.5
community_fetched_at: 2026-01-07T20:08:15.958Z
ai_summary_generated_at: 2026-01-08 10:45:32
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "post",
      "options": [
        {
          "name": "Video",
          "value": "video"
        },
        {
          "name": "Media",
          "value": "media"
        },
        {
          "name": "Post",
          "value": "post"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create video",
          "description": "Create a video from a template"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get video",
          "description": "Get a video by ID"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete video",
          "description": "Delete a video by ID"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "video"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "upload",
      "options": [
        {
          "name": "Upload",
          "value": "upload",
          "action": "Upload media",
          "description": "Upload image or video"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "media"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create post",
          "description": "Create post"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get post",
          "description": "Get post status by submission ID"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "post"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create",
      "value": "create",
      "action": "Create video",
      "description": "Create a video from a template"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get video",
      "description": "Get a video by ID"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete video",
      "description": "Delete a video by ID"
    },
    {
      "name": "Upload",
      "value": "upload",
      "action": "Upload media",
      "description": "Upload image or video"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create post",
      "description": "Create post"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get post",
      "description": "Get post status by submission ID"
    }
  ]

npm_readme:
  # n8n-nodes-blotato

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

  Blotato is an AI-powered content engine that enables content creation, publishing, and scheduling across multiple social media platforms through a unified API.

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

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

  ## Installation

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

  ## Operations

  This node provides three main resources for interacting with Blotato:

  ### Video Resource
  Create AI-generated visuals from templates, such as videos, carousels, slideshows, infographics, and images.
  - **Create Visual**: Generate visuals from pre-built templates with a prompt and optional inputs
  - **Get Visual**: Retrieve visual status and details by ID
  - **Delete**: Remove a viusal by ID
  - **Features**:
    - Template-based generation of visual assets
    - Dynamic input fields based on template requirements
    - Support for leading AI image and video models
    - Automatic rendering upon creation

  ### Media Upload
  Upload media files (e.g. images and videos) for your social media content using the Media resource.
  - **Upload from URL**: Upload media files from a URL
  - **Upload from Binary**: Upload media files from binary data
  - **Size limit**: 60MB for binary uploads, larger files should use URL upload
  - **Rate limit**: 10 requests per minute

  ### Post Publish
  Post content across multiple social media platforms using the Post resource.
  - **Platforms supported**: Twitter, Linkedin, Facebook, Instagram, Pinterest, Tiktok, Threads, Bluesky, Youtube
  - **Operations**:
    - **Create**: Publish content to social media platforms
    - **Get**: Check post status and details by submission ID
  - **Features**:
    - Multi-platform publishing with a single workflow
    - Schedule posts for later or use the next available free slot
    - Add captions, hashtags, and media
    - Platform-specific options, such as, but not limited to:
      - Youtube: Privacy settings, subscriber notifications, Made for Kids setting, Contains Synthetic Media
      - Pinterest: Board selection, pin title, alt text, and link
      - Tiktok: Privacy levels, comment/duet settings, Post as Draft, Slideshow Title, Image Cover Index, Video Cover Timestamp
      - Instagram: Post, Reel, or Story options, Audio Name (for Reels), Collaborators
      - Linkedin: Personal profile or Company page
      - Facebook: Page selection, Video/Reel options
      - Threads: Reply control settings
    - **Note**: Instagram, Tiktok, Pinterest, and Youtube require at least one media file (image or video) to be included in posts.
    - Rate limit: 30 requests per minute

  ## Credentials

  To use this node, you need to create credentials in n8n:

  1. **Get your Blotato API Key**:
     - Log in to your [Blotato account](https://my.blotato.com)
     - Navigate to Settings → API Keys
     - Click "Generate API Key"
     - **Important**: API access is only available to paying subscribers.

  2. **Configure in n8n**:
     - Go to **Credentials** → **New** → **Blotato API**
     - Enter your API key

  3. **Connect Social Media Accounts**:
     - In Blotato, navigate to Settings → Connected Accounts
     - Click "Login with <platform>" to connect your social media account.

  ## Compatibility

  - **n8n version**: 1.80.0 and above
  - **Node.js version**: 18.10 or higher

  ## Usage

  ### Example: AI Video to Multi-Platform Publishing

  1. **Create AI video/carousel** using the Video resource where you select a template
  2. **Wait for generation** by checking status with Video Get operation
  3. **Publish to multiple platforms** using the Post resource with the generated media URL
  4. **Check post status** using the Post Get operation to verify successful publishing

  ### Example: Upload and Publish

  1. **Upload your media** using the Media resource and Upload operation
  2. **Publish to multiple platforms** using the Post resource and Create operation
  3. **Track publishing progress** using the Post Get operation with the submission ID

  ### Tips

  - **Video Templates**: Browse available templates at [Blotato Templates](https://my.blotato.com/videos/new)
  - **Rate Limits**: Blotato has a rate limit of 10 media uploads per minute
  - **Media Requirements**: Each platform has specific [media requirements](https://help.blotato.com/api/media)
  - **Scheduling**: Use the `scheduledTime` parameter to schedule posts in ISO 8601 format, or enable `Schedule Next Free Slot` to automatically schedule posts in the next available time slot
  - **Instagram Collaborators**: Add up to 3 Instagram usernames as collaborators on your posts
  - **Debugging**: To view all your API requests, responses, and error messages, go to your [Blotato API Dashboard](https://my.blotato.com/api-dashboard)
  - **Error Handling**: The node supports n8n's error output paths - use "Continue (using error output)" to handle errors gracefully

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  * [Blotato API Reference](https://help.blotato.com/api-reference)
  * [Blotato Help Center](https://help.blotato.com)

  ## About Blotato

  Blotato is your all-in-one AI content engine to create and distribute social media posts. It solves the problem of producing and distributing high-quality content consistently while growing on multiple platforms, without paying for multiple tools that don't integrate with each other.

  ### Key Features
  - **Multi-Platform Publishing**: Schedule and publish to all major social platforms
  - **Viral Templates**: Create social media videos and carousels using prebuilt viral templates
  - **Access to AI Models**: Access the leading AI image and video models, all in one unified tool
  - **Content Remixing**: Transform content between platforms (e.g., Youtube videos to Linkedin posts)

  ### Who is Blotato For?
  - Solopreneurs
  - Content creators
  - Small business owners
  - Social media marketers
  - Digital marketing agencies

  ## Support

  For issues and feature requests related to this n8n node, please use the [GitHub issue tracker](https://github.com/Blotato-Inc/n8n-nodes-blotato/issues).

  For Blotato-specific questions, visit [Blotato Help Center](https://help.blotato.com/).

  ## Development

  - Install n8n (if you want faster development and don't wanna use docker)

  ```sh
  npm i -g n8n
  ```

  - Create necessary directories

  ```sh
  export N8N_BLOTATO_WORKDIR=$HOME/dev/n8n-blotato-work
  mkdir -p $N8N_BLOTATO_WORKDIR/n8n-selfhost
  cd $N8N_BLOTATO_WORKDIR
  git clone git@github.com:Blotato-Inc/n8n-nodes-blotato.git
  ```

  - Build the custom node code

  ```sh
  cd $N8N_BLOTATO_WORKDIR/n8n-nodes-blotato
  npm i
  # rebuilding the code and n8n restart is required
  # on every change
  npm run build
  ```

  - Run locally with `n8n` npm package

  ```sh
  export N8N_BLOTATO_WORKDIR=$HOME/dev/n8n-blotato-work
  export N8N_CUSTOM_EXTENSIONS=$N8N_BLOTATO_WORKDIR/n8n-nodes-blotato
  n8n
  ```

  - Or, alternatively, start n8n instance docker instance (might be slower than native)

  ```sh
  export N8N_BLOTATO_WORKDIR=$HOME/dev/n8n-blotato-work

  docker run -it --rm --name n8n -p 5678:5678 \
             -e N8N_CUSTOM_EXTENSIONS=/mnt/custom-nodes/n8n-nodes-blotato \
             -v $N8N_BLOTATO_WORKDIR/n8n-nodes-blotato:/mnt/custom-nodes/n8n-nodes-blotato \
             -v $N8N_BLOTATO_WORKDIR/n8n-selfhost/data:/home/node \
             docker.n8n.io/n8nio/n8n
  ```

  - NOTE: When you create Blotato API credentials, use http://127.0.0.1:8000 to avoid ipv6 issues

ai_documentation_summary:
  {"purpose":"The Blotato n8n node enables users to integrate Blotato's AI-powered content creation and publishing capabilities into n8n workflows, allowing for the generation of visual assets and multi-platform social media posting with support for scheduling and platform-specific configurations.","capabilities":["Create AI-generated visuals (videos, carousels, infographics, images) from templates using prompts and dynamic inputs","Upload media files via URL or binary data (with 60MB binary size limit)","Publish content to multiple platforms including Twitter, LinkedIn, Facebook, Instagram, Pinterest, TikTok, Threads, Bluesky, and YouTube","Schedule posts using ISO 8601 format or automatically schedule in the next available free slot","Add captions, hashtags, media, and platform-specific settings (e.g., privacy, cover timestamps, collaborators)","Retrieve status and details of generated visuals and published posts","Delete visuals by ID"],"authentication":"API key required; users must generate an API key from their Blotato account (available only to paying subscribers)","commonUseCases":["Generate AI videos or carousels and publish them across multiple social platforms","Upload media files and schedule posts with custom settings per platform","Automate content publishing workflows with scheduled or on-demand posting","Create Instagram or TikTok posts with specific features like collaborators, duets, or privacy settings"],"limitations":["Instagram, TikTok, Pinterest, and YouTube require at least one media file per post","Media upload rate limit: 10 requests per minute","Post creation rate limit: 30 requests per minute","Binary uploads are limited to 60MB; larger files must be uploaded via URL","API access only available to paying Blotato subscribers"],"relatedNodes":["Social Media Nodes","AI Content Generation Nodes","Media Upload Nodes","Workflow Automation Nodes"]}


node_type: n8n-nodes-serpapi.serpApi
package_name: n8n-nodes-serpapi
display_name: SerpApi Official
description: Get live Google Search data and more from SerpApi's official node
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-01-07 20:08:15
author_name: serpapi
author_github_url: https://github.com/alexbarron/
npm_package_name: n8n-nodes-serpapi
npm_version: 0.1.8
community_fetched_at: 2026-01-07T20:08:15.959Z
ai_summary_generated_at: 2026-01-08 10:45:32
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "search",
      "options": [
        {
          "name": "Search",
          "value": "search"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "google",
      "options": [
        {
          "name": "Amazon Search",
          "value": "amazon",
          "action": "Search Amazon",
          "routing": {
            "request": {
              "qs": {
                "engine": "amazon"
              }
            }
          }
        },
        {
          "name": "Baidu Search",
          "value": "baidu",
          "action": "Search Baidu",
          "routing": {
            "request": {
              "qs": {
                "engine": "baidu"
              }
            }
          }
        },
        {
          "name": "Bing Images",
          "value": "bing_images",
          "action": "Search Bing Images",
          "routing": {
            "request": {
              "qs": {
                "engine": "bing_images"
              }
            }
          }
        },
        {
          "name": "Bing Search",
          "value": "bing",
          "action": "Search Bing",
          "routing": {
            "request": {
              "qs": {
                "engine": "bing"
              }
            }
          }
        },
        {
          "name": "DuckDuckGo Search",
          "value": "duckduckgo",
          "action": "Search DuckDuckGo",
          "routing": {
            "request": {
              "qs": {
                "engine": "duckduckgo"
              }
            }
          }
        },
        {
          "name": "eBay Search",
          "value": "ebay",
          "action": "Search eBay",
          "routing": {
            "request": {
              "qs": {
                "engine": "ebay"
              }
            }
          }
        },
        {
          "name": "Facebook Profile",
          "value": "facebook_profile",
          "action": "Search Facebook Profile",
          "routing": {
            "request": {
              "qs": {
                "engine": "facebook_profile"
              }
            }
          }
        },
        {
          "name": "Google AI Mode",
          "value": "google_ai_mode",
          "action": "Search Google AI Mode",
          "routing": {
            "request": {
              "qs": {
                "engine": "google_ai_mode"
              }
            }
          }
        },
        {
          "name": "Google AI Overview",
          "value": "google_ai_overview",
          "action": "Search Google AI Overview",
          "routing": {
            "request": {
              "qs": {
                "engine": "google_ai_overview"
              }
            }
          }
        },
        {
          "name": "Google Autocomplete",
          "value": "google_autocomplete",
          "action": "Search Google Autocomplete",
          "routing": {
            "request": {
              "qs": {
                "engine": "google_autocomplete"
              }
            }
          }
        },
        {
          "name": "Google Finance",
          "value": "google_finance",
          "action": "Search Google Finance",
          "routing": {
            "request": {
              "qs": {
                "engine": "google_finance"
              }
            }
          }
        },
        {
          "name": "Google Flights",
          "value": "google_flights",
          "action": "Search Google Flights",
          "routing": {
            "request": {
              "qs": {
                "engine": "google_flights"
              }
            }
          }
        },
        {
          "name": "Google Hotels",
          "value": "google_hotels",
          "action": "Search Google Hotels",
          "routing": {
            "request": {
              "qs": {
                "engine": "google_hotels"
              }
            }
          }
        },
        {
          "name": "Google Images",
          "value": "google_images",
          "action": "Search Google Images",
          "routing": {
            "request": {
              "qs": {
                "engine": "google_images"
              }
            }
          }
        },
        {
          "name": "Google Images Light",
          "value": "google_images_light",
          "action": "Search Google Images Light",
          "routing": {
            "request": {
              "qs": {
                "engine": "google_images_light"
              }
            }
          }
        },
        {
          "name": "Google Immersive Product",
          "value": "google_immersive_product",
          "action": "Search Google Immersive Product",
          "routing": {
            "request": {
              "qs": {
                "engine": "google_immersive_product"
              }
            }
          }
        },
        {
          "name": "Google Jobs",
          "value": "google_jobs",
          "action": "Search Google Jobs",
          "routing": {
            "request": {
              "qs": {
                "engine": "google_jobs"
              }
            }
          }
        },
        {
          "name": "Google Lens",
          "value": "google_lens",
          "action": "Search Google Lens",
          "routing": {
            "request": {
              "qs": {
                "engine": "google_lens"
              }
            }
          }
        },
        {
          "name": "Google Light",
          "value": "google_light",
          "action": "Search Google Light",
          "routing": {
            "request": {
              "qs": {
                "engine": "google_light"
              }
            }
          }
        },
        {
          "name": "Google Local",
          "value": "google_local",
          "action": "Search Google Local",
          "routing": {
            "request": {
              "qs": {
                "engine": "google_local"
              }
            }
          }
        },
        {
          "name": "Google Maps",
          "value": "google_maps",
          "action": "Search Google Maps",
          "routing": {
            "request": {
              "qs": {
                "engine": "google_maps"
              }
            }
          }
        },
        {
          "name": "Google Maps Directions",
          "value": "google_maps_directions",
          "action": "Search Google Maps Directions",
          "routing": {
            "request": {
              "qs": {
                "engine": "google_maps_directions"
              }
            }
          }
        },
        {
          "name": "Google Maps Reviews",
          "value": "google_maps_reviews",
          "action": "Search Google Maps Reviews",
          "routing": {
            "request": {
              "qs": {
                "engine": "google_maps_reviews"
              }
            }
          }
        },
        {
          "name": "Google News",
          "value": "google_news",
          "action": "Search Google News",
          "routing": {
            "request": {
              "qs": {
                "engine": "google_news"
              }
            }
          }
        },
        {
          "name": "Google News Light",
          "value": "google_news_light",
          "action": "Search Google News Light",
          "routing": {
            "request": {
              "qs": {
                "engine": "google_news_light"
              }
            }
          }
        },
        {
          "name": "Google Play Games",
          "value": "google_play_games",
          "action": "Search Google Play Games",
          "routing": {
            "request": {
              "qs": {
                "engine": "google_play_games"
              }
            }
          }
        },
        {
          "name": "Google Play Product",
          "value": "google_play_product",
          "action": "Search Google Play Product",
          "routing": {
            "request": {
              "qs": {
                "engine": "google_play_product"
              }
            }
          }
        },
        {
          "name": "Google Play Store",
          "value": "google_play",
          "action": "Search Google Play Store",
          "routing": {
            "request": {
              "qs": {
                "engine": "google_play"
              }
            }
          }
        },
        {
          "name": "Google Product",
          "value": "google_product",
          "action": "Search Google Product",
          "routing": {
            "request": {
              "qs": {
                "engine": "google_product"
              }
            }
          }
        },
        {
          "name": "Google Scholar",
          "value": "google_scholar",
          "action": "Search Google Scholar",
          "routing": {
            "request": {
              "qs": {
                "engine": "google_scholar"
              }
            }
          }
        },
        {
          "name": "Google Search",
          "value": "google",
          "action": "Search Google",
          "routing": {
            "request": {
              "qs": {
                "engine": "google"
              }
            }
          }
        },
        {
          "name": "Google Shopping",
          "value": "google_shopping",
          "action": "Search Google Shopping",
          "routing": {
            "request": {
              "qs": {
                "engine": "google_shopping"
              }
            }
          }
        },
        {
          "name": "Google Trends",
          "value": "google_trends",
          "action": "Search Google Trends",
          "routing": {
            "request": {
              "qs": {
                "engine": "google_trends"
              }
            }
          }
        },
        {
          "name": "Google Trends Trending Now",
          "value": "google_trends_trending_now",
          "action": "Search Google Trends Trending Now",
          "routing": {
            "request": {
              "qs": {
                "engine": "google_trends_trending_now"
              }
            }
          }
        },
        {
          "name": "Google Videos",
          "value": "google_videos",
          "action": "Search Google Videos",
          "routing": {
            "request": {
              "qs": {
                "engine": "google_videos"
              }
            }
          }
        },
        {
          "name": "YouTube Search",
          "value": "youtube",
          "action": "Search YouTube",
          "routing": {
            "request": {
              "qs": {
                "engine": "youtube"
              }
            }
          }
        }
      ],
      "displayName": "Operation",
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Amazon Search",
      "value": "amazon",
      "action": "Search Amazon",
      "routing": {
        "request": {
          "qs": {
            "engine": "amazon"
          }
        }
      }
    },
    {
      "name": "Baidu Search",
      "value": "baidu",
      "action": "Search Baidu",
      "routing": {
        "request": {
          "qs": {
            "engine": "baidu"
          }
        }
      }
    },
    {
      "name": "Bing Images",
      "value": "bing_images",
      "action": "Search Bing Images",
      "routing": {
        "request": {
          "qs": {
            "engine": "bing_images"
          }
        }
      }
    },
    {
      "name": "Bing Search",
      "value": "bing",
      "action": "Search Bing",
      "routing": {
        "request": {
          "qs": {
            "engine": "bing"
          }
        }
      }
    },
    {
      "name": "DuckDuckGo Search",
      "value": "duckduckgo",
      "action": "Search DuckDuckGo",
      "routing": {
        "request": {
          "qs": {
            "engine": "duckduckgo"
          }
        }
      }
    },
    {
      "name": "eBay Search",
      "value": "ebay",
      "action": "Search eBay",
      "routing": {
        "request": {
          "qs": {
            "engine": "ebay"
          }
        }
      }
    },
    {
      "name": "Facebook Profile",
      "value": "facebook_profile",
      "action": "Search Facebook Profile",
      "routing": {
        "request": {
          "qs": {
            "engine": "facebook_profile"
          }
        }
      }
    },
    {
      "name": "Google AI Mode",
      "value": "google_ai_mode",
      "action": "Search Google AI Mode",
      "routing": {
        "request": {
          "qs": {
            "engine": "google_ai_mode"
          }
        }
      }
    },
    {
      "name": "Google AI Overview",
      "value": "google_ai_overview",
      "action": "Search Google AI Overview",
      "routing": {
        "request": {
          "qs": {
            "engine": "google_ai_overview"
          }
        }
      }
    },
    {
      "name": "Google Autocomplete",
      "value": "google_autocomplete",
      "action": "Search Google Autocomplete",
      "routing": {
        "request": {
          "qs": {
            "engine": "google_autocomplete"
          }
        }
      }
    },
    {
      "name": "Google Finance",
      "value": "google_finance",
      "action": "Search Google Finance",
      "routing": {
        "request": {
          "qs": {
            "engine": "google_finance"
          }
        }
      }
    },
    {
      "name": "Google Flights",
      "value": "google_flights",
      "action": "Search Google Flights",
      "routing": {
        "request": {
          "qs": {
            "engine": "google_flights"
          }
        }
      }
    },
    {
      "name": "Google Hotels",
      "value": "google_hotels",
      "action": "Search Google Hotels",
      "routing": {
        "request": {
          "qs": {
            "engine": "google_hotels"
          }
        }
      }
    },
    {
      "name": "Google Images",
      "value": "google_images",
      "action": "Search Google Images",
      "routing": {
        "request": {
          "qs": {
            "engine": "google_images"
          }
        }
      }
    },
    {
      "name": "Google Images Light",
      "value": "google_images_light",
      "action": "Search Google Images Light",
      "routing": {
        "request": {
          "qs": {
            "engine": "google_images_light"
          }
        }
      }
    },
    {
      "name": "Google Immersive Product",
      "value": "google_immersive_product",
      "action": "Search Google Immersive Product",
      "routing": {
        "request": {
          "qs": {
            "engine": "google_immersive_product"
          }
        }
      }
    },
    {
      "name": "Google Jobs",
      "value": "google_jobs",
      "action": "Search Google Jobs",
      "routing": {
        "request": {
          "qs": {
            "engine": "google_jobs"
          }
        }
      }
    },
    {
      "name": "Google Lens",
      "value": "google_lens",
      "action": "Search Google Lens",
      "routing": {
        "request": {
          "qs": {
            "engine": "google_lens"
          }
        }
      }
    },
    {
      "name": "Google Light",
      "value": "google_light",
      "action": "Search Google Light",
      "routing": {
        "request": {
          "qs": {
            "engine": "google_light"
          }
        }
      }
    },
    {
      "name": "Google Local",
      "value": "google_local",
      "action": "Search Google Local",
      "routing": {
        "request": {
          "qs": {
            "engine": "google_local"
          }
        }
      }
    },
    {
      "name": "Google Maps",
      "value": "google_maps",
      "action": "Search Google Maps",
      "routing": {
        "request": {
          "qs": {
            "engine": "google_maps"
          }
        }
      }
    },
    {
      "name": "Google Maps Directions",
      "value": "google_maps_directions",
      "action": "Search Google Maps Directions",
      "routing": {
        "request": {
          "qs": {
            "engine": "google_maps_directions"
          }
        }
      }
    },
    {
      "name": "Google Maps Reviews",
      "value": "google_maps_reviews",
      "action": "Search Google Maps Reviews",
      "routing": {
        "request": {
          "qs": {
            "engine": "google_maps_reviews"
          }
        }
      }
    },
    {
      "name": "Google News",
      "value": "google_news",
      "action": "Search Google News",
      "routing": {
        "request": {
          "qs": {
            "engine": "google_news"
          }
        }
      }
    },
    {
      "name": "Google News Light",
      "value": "google_news_light",
      "action": "Search Google News Light",
      "routing": {
        "request": {
          "qs": {
            "engine": "google_news_light"
          }
        }
      }
    },
    {
      "name": "Google Play Games",
      "value": "google_play_games",
      "action": "Search Google Play Games",
      "routing": {
        "request": {
          "qs": {
            "engine": "google_play_games"
          }
        }
      }
    },
    {
      "name": "Google Play Product",
      "value": "google_play_product",
      "action": "Search Google Play Product",
      "routing": {
        "request": {
          "qs": {
            "engine": "google_play_product"
          }
        }
      }
    },
    {
      "name": "Google Play Store",
      "value": "google_play",
      "action": "Search Google Play Store",
      "routing": {
        "request": {
          "qs": {
            "engine": "google_play"
          }
        }
      }
    },
    {
      "name": "Google Product",
      "value": "google_product",
      "action": "Search Google Product",
      "routing": {
        "request": {
          "qs": {
            "engine": "google_product"
          }
        }
      }
    },
    {
      "name": "Google Scholar",
      "value": "google_scholar",
      "action": "Search Google Scholar",
      "routing": {
        "request": {
          "qs": {
            "engine": "google_scholar"
          }
        }
      }
    },
    {
      "name": "Google Search",
      "value": "google",
      "action": "Search Google",
      "routing": {
        "request": {
          "qs": {
            "engine": "google"
          }
        }
      }
    },
    {
      "name": "Google Shopping",
      "value": "google_shopping",
      "action": "Search Google Shopping",
      "routing": {
        "request": {
          "qs": {
            "engine": "google_shopping"
          }
        }
      }
    },
    {
      "name": "Google Trends",
      "value": "google_trends",
      "action": "Search Google Trends",
      "routing": {
        "request": {
          "qs": {
            "engine": "google_trends"
          }
        }
      }
    },
    {
      "name": "Google Trends Trending Now",
      "value": "google_trends_trending_now",
      "action": "Search Google Trends Trending Now",
      "routing": {
        "request": {
          "qs": {
            "engine": "google_trends_trending_now"
          }
        }
      }
    },
    {
      "name": "Google Videos",
      "value": "google_videos",
      "action": "Search Google Videos",
      "routing": {
        "request": {
          "qs": {
            "engine": "google_videos"
          }
        }
      }
    },
    {
      "name": "YouTube Search",
      "value": "youtube",
      "action": "Search YouTube",
      "routing": {
        "request": {
          "qs": {
            "engine": "youtube"
          }
        }
      }
    }
  ]

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

  # n8n-nodes-serpapi

  This repo contains SerpApi's community node for n8n.

  ## Installation

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

  ## Credentials

  You must have a SerpApi API key to use this node. You can register for a free account to get an API key here:

  https://serpapi.com/users/sign_up

  Once registered, you can find your API key here:

  https://serpapi.com/manage-api-key

  Then you'll need to create a credential in n8n for SerpApi.

  ![Add Credentials](images/add-credentials.png)

  ## Usage

  Add SerpApi to a workflow.

  ![Add SerpApi to Workflow](images/workflow.png)

  Configure a basic query and hit "Test step" to try a search.

  ![Test a Google Search through SerpApi](images/test-google-search.png)

  ## API Resources / Search Engines

  This node currently only supports the most popular SerpApi APIs. If there's an API missing that you would like to use, please let us know at contact@serpapi.com

  In the meantime, you can also use the [generic HTTP Request node](https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.httprequest/) to construct your search.

  ## Related Resources

  SerpApi's complete API documentation is available here:

  https://serpapi.com/search-api

  You can also find n8n related tutorials on our blog here:

  https://serpapi.com/blog/tag/n8n/

  ## License

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

ai_documentation_summary:
  {"purpose":"The SerpApi Official node retrieves live Google Search results and other search data using SerpApi's search engine APIs, enabling users to integrate real-time search functionality into n8n workflows.","capabilities":["Perform Google search queries","Access live search results including organic results, images, videos, and more","Supports popular SerpApi search endpoints via configuration"],"authentication":"API key required; users must register for a free account at serpapi.com and obtain an API key from the dashboard","commonUseCases":["Fetching current search rankings for keywords","Monitoring competitor websites via search results","Building SEO analysis workflows","Automating content discovery based on search trends"],"limitations":["Only supports the most popular SerpApi APIs; custom or less common APIs are not available","No built-in support for advanced or premium SerpApi features beyond the core search endpoints"],"relatedNodes":["n8n-nodes-base.httpRequest"]}


node_type: n8n-nodes-mallabe-images.mallabeImages
package_name: n8n-nodes-mallabe-images
display_name: Mallabe Images
category: Images
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-01-07 20:08:15
author_name: dinbrca
author_github_url: https://github.com/mallabe/
npm_package_name: n8n-nodes-mallabe-images
npm_version: 0.1.7
community_fetched_at: 2026-01-07T20:08:15.959Z
ai_summary_generated_at: 2026-01-08 10:45:32
description:
  Mallabe Images is an automation toolchain that allows you to process images, resize, crop and apply other manipulations on images on the fly.

properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "image",
      "options": [
        {
          "name": "Image",
          "value": "image"
        },
        {
          "name": "Custom API Call",
          "value": "__CUSTOM_API_CALL__"
        }
      ],
      "required": true,
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "resize",
      "options": [
        {
          "name": "Blur Image",
          "value": "blur",
          "action": "Blur image",
          "description": "Blur images and send the new image to another integration"
        },
        {
          "name": "Compress Image",
          "value": "compress",
          "action": "Compress image",
          "description": "Compress images and drive the new image to another integration.Note: if a given URL isn't an image file (png, jpg/jpeg, etc..) - the file will not convert. Note: some Zapier integrations give URLs that are protected - these can't be used & compressed."
        },
        {
          "name": "Crop Image",
          "value": "crop",
          "action": "Crop image",
          "description": "Crop images and send the new image to another integration. Note: If a given URL isn't an image file (e.g., png, jpg/jpeg, gif), the file will not convert. Also, some Zapier integrations provide protected URLs that cannot be cropped."
        },
        {
          "name": "Extract Image Metadata",
          "value": "metadata",
          "action": "Extract image metadata",
          "description": "Extract image metadata. Note: some integrations give URLs that are protected - these can't be used & resized."
        },
        {
          "name": "Flip Image",
          "value": "flip",
          "action": "Flip image",
          "description": "Flip images and send the new image to another integration"
        },
        {
          "name": "Greyscale Image",
          "value": "greyscale",
          "action": "Greyscale image",
          "description": "Greyscale images and send the new image to another integration"
        },
        {
          "name": "Join/Combine Images",
          "value": "join",
          "action": "Join combine images",
          "description": "Join images into one image and send the new image to another integration"
        },
        {
          "name": "Resize Image",
          "value": "resize",
          "action": "Resize image",
          "description": "Resize or Scale images and drive the new image to another integration. Note: if a given URL isn't an image file (png, jpg/jpeg, gif, etc..) - the file will not convert.Note: some Zapier integrations give URLs that are protected - these can't be used & resized."
        },
        {
          "name": "Rotate Image",
          "value": "rotate",
          "action": "Rotate image",
          "description": "Rotate images and send the new image to another integration"
        },
        {
          "name": "Custom API Call",
          "value": "__CUSTOM_API_CALL__"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "image"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Blur Image",
      "value": "blur",
      "action": "Blur image",
      "description": "Blur images and send the new image to another integration"
    },
    {
      "name": "Compress Image",
      "value": "compress",
      "action": "Compress image",
      "description": "Compress images and drive the new image to another integration.Note: if a given URL isn't an image file (png, jpg/jpeg, etc..) - the file will not convert. Note: some Zapier integrations give URLs that are protected - these can't be used & compressed."
    },
    {
      "name": "Crop Image",
      "value": "crop",
      "action": "Crop image",
      "description": "Crop images and send the new image to another integration. Note: If a given URL isn't an image file (e.g., png, jpg/jpeg, gif), the file will not convert. Also, some Zapier integrations provide protected URLs that cannot be cropped."
    },
    {
      "name": "Extract Image Metadata",
      "value": "metadata",
      "action": "Extract image metadata",
      "description": "Extract image metadata. Note: some integrations give URLs that are protected - these can't be used & resized."
    },
    {
      "name": "Flip Image",
      "value": "flip",
      "action": "Flip image",
      "description": "Flip images and send the new image to another integration"
    },
    {
      "name": "Greyscale Image",
      "value": "greyscale",
      "action": "Greyscale image",
      "description": "Greyscale images and send the new image to another integration"
    },
    {
      "name": "Join/Combine Images",
      "value": "join",
      "action": "Join combine images",
      "description": "Join images into one image and send the new image to another integration"
    },
    {
      "name": "Resize Image",
      "value": "resize",
      "action": "Resize image",
      "description": "Resize or Scale images and drive the new image to another integration. Note: if a given URL isn't an image file (png, jpg/jpeg, gif, etc..) - the file will not convert.Note: some Zapier integrations give URLs that are protected - these can't be used & resized."
    },
    {
      "name": "Rotate Image",
      "value": "rotate",
      "action": "Rotate image",
      "description": "Rotate images and send the new image to another integration"
    },
    {
      "name": "Custom API Call",
      "value": "__CUSTOM_API_CALL__"
    }
  ]

npm_readme:
  ![Mallabe Logo](/docs/mallabe-logo.png)

  # n8n-nodes-mallabe-images

  This is an n8n community node for [Mallabe Images](https://www.mallabe.com/).

  It allows you to manipulate images using different operations.

  For more information, refer to the [Mallabe website](https://www.mallabe.com/).

  Current supported operations:
  - Resize Image
  - Compress Image
  - Get Image Metadata
  - Crop Image
  - Rotate Image
  - Flip / Flop Image
  - Greyscale Image
  - Join 2 Images

  ## License

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

  ## Development
  ### Running Locally (Summary)
  1. Install n8n globally using https://docs.n8n.io/integrations/creating-nodes/test/run-node-locally/
  2. Run `nvm use` to use the correct node version in the node folder.
  3. Run `pnpm install` in the node folder.
  4. Run `pnpm link --global` to register as package.
  5. Run `pnpm run build` whenever you make changes to the node.
  6. Run `cd ~/.n8n`
  7. Stop n8n if it was already running.
  8. Run `pnpm link --global n8n-nodes-mallabe-images` in n8n `custom` folder.
  9. Run `n8n start`

  Note: if you like to watch the development instead of rebuilding every time, use `npm run dev`.

ai_documentation_summary:
  {"purpose":"The Mallabe Images node enables users to manipulate images within n8n workflows by performing operations such as resizing, compressing, cropping, rotating, flipping, greyscaling, and joining two images.","capabilities":["Resize Image","Compress Image","Get Image Metadata","Crop Image","Rotate Image","Flip / Flop Image","Greyscale Image","Join 2 Images"],"authentication":"No authentication details specified in the README; likely requires no credentials or uses public API access.","commonUseCases":["Resizing images for social media posts","Compressing images to reduce file size before upload","Extracting image metadata for data logging","Automating image preprocessing in content pipelines","Creating thumbnails or cropped versions of images"],"limitations":[],"relatedNodes":["Image manipulation nodes","Media processing nodes","Automation nodes with file handling"]}


node_type: n8n-nodes-extruct.extruct
package_name: n8n-nodes-extruct
display_name: Extruct AI
description: Add companies to Extruct tables and run enrichment
category: Community
development_style: declarative
version: 3
properties_schema: []
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-01-07 20:08:15
author_name: zodackwand
author_github_url: https://github.com/extruct-ai/
npm_package_name: n8n-nodes-extruct
npm_version: 2.1.0
community_fetched_at: 2026-01-07T20:08:15.960Z
ai_summary_generated_at: 2026-01-08 10:45:32
npm_readme:
  # n8n-nodes-extruct

  ![Extruct AI Banner](icons/banner.png)

  **n8n community node for Extruct AI**

  This node lets you enrich and fetch company data from Extruct AI, right inside your n8n workflows.
  Define your own table structure, add any custom columns, and get exactly the data you need.

  ### Instant preview

  Suppose you want to enrich a company by website and get its funding, team size, recent news headline, patent count, and head of HR LinkedIn profile.


  ```json
  {
    "company_name": {
      "value": {
        "answer": "Stripe",
        "source": [
          "https://en.wikipedia.org/wiki/Stripe,_Inc."
        ],
        "explanation": "Full company name as listed on the Stripe Wikipedia page."
      }
    },
    "company_website": {
      "value": {
        "answer": "https://stripe.com/",
        "source": [
          "https://en.wikipedia.org/wiki/Stripe,_Inc.",
          "https://stripe.com"
        ],
        "explanation": "Canonical homepage confirmed on Wikipedia and the stripe.com domain."
      }
    },
    "recent_news_headline": {
      "value": {
        "answer": "Stripe’s first employee, the founder of fintech Increase, sort of bought a bank",
        "source": [
          "https://techcrunch.com/2025/07/03/stripes-first-employee-the-founder-of-fintech-increase-sort-of-bought-a-bank"
        ],
        "explanation": "Headline from a TechCrunch article published July 3, 2025, as the latest news about Stripe."
      }
    },
    "team_size": {
      "value": {
        "answer": "8550",
        "source": [
          "https://techcrunch.com/2025/01/21/stripe-is-laying-off-300-people-but-says-it-still-plans-to-hire-in-2025"
        ],
        "explanation": "About 8,550 employees after a January 2025 layoff of 300 people, per TechCrunch."
      }
    },
    "patent_count": {
      "value": {
        "answer": "247",
        "source": [
          "https://insights.greyb.com/stripe-patents"
        ],
        "explanation": "Total of 247 patents held globally by Stripe, according to GreyB Insights."
      }
    },
    "funding_amount": {
      "value": {
        "answer": "$9.81B",
        "source": [
          "https://tracxn.com/d/companies/stripe/__uahG_IGnVgsUsOG-f8otYHLkOkliWg7YFhJ5ZkNIkpI/funding-and-investors",
          "https://www.crunchbase.com/organization/stripe/company_financials"
        ],
        "explanation": "Raised $9.81 B over 24 rounds, including a $6.87 B round in March 2023, per Tracxn and Crunchbase."
      }
    },
    "head_of_hr_linkedin": {
      "value": {
        "answer": "https://www.linkedin.com/in/maiaj",
        "source": [
          "https://www.comparably.com/companies/stripe/maia-josebachvili",
          "https://www.linkedin.com/in/maiaj"
        ],
        "explanation": "Confirmed as Head of People at Stripe via Comparably and LinkedIn."
      }
    }
  }
  ```



  ## What is Extruct AI?

  **Extruct AI** is a data enrichment platform that lets you create custom tables with any columns you want, and then enrich them with company data from the web and public sources.  

  - **Any info you want:** Define your own columns — get emails, social links, funding, tech stack, or anything else.
  - **No limits:** Works for any company, in any country, any industry.
  - **Built for automation:** Integrate with CRMs, lead gen, analytics, and more.



  ## Features

  - Add a company to your Extruct table and trigger enrichment
  - Poll for enrichment completion automatically
  - Instantly fetch the enriched row with all your custom columns
  - Use in any n8n workflow



  ## Installation

  Follow the [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/) for installing custom nodes.



  ## Usage

  1. **Create an Extruct table:**
     - You can start from a template table or create your own from scratch at [Extruct AI](https://extruct.ai).
     - Add any custom columns you need — you have full control over the table structure and fields.
  2. **Get your Table ID:**
     - After creating the table, copy its Table ID from the Extruct dashboard, or simply grab it from the table page URL.
  3. **Use in n8n:**
     - In the Extruct node, paste your Table ID.
     - Enter the company name or website you want to enrich:
       - You can type it manually in the node field,
       - Or pass it dynamically from a Form Trigger,
       - Or from any other node in your workflow — just connect it to the Extruct node.
     - Run the workflow — the node will add the company, trigger enrichment, and return the enriched data for your custom columns.

  ## Quick Demo

  ![n8n node demo](https://github.com/zodackwand/extruct_screenshots/blob/main/demo.gif?raw=true)


  ## Operations

  ### Enrich Company Info

  - **Input:**  
    - Table ID (your Extruct table)
    - Company Input (website or name)
  - **Output:**  
    - Returns a fully enriched row with all your custom columns as clean JSON, ready to use in your n8n workflow.

  **How it works:**  
  1. Adds a company to your Extruct table  
  2. Triggers enrichment  
  3. Waits for completion  
  4. Returns the enriched row (with all your custom fields)



  ## Output
  The node returns clean JSON with all enriched fields for the company, matching your custom table columns.



  ## Extruct Table Templates
  Use these ready-to-go table templates for your n8n workflows:

  - [Sales and Business Development](https://app.extruct.ai/tables/shared/jlcBdFwKXrC8uw21)  
    *Track leads, enrich company profiles, and automate sales research.*

  - [Complete Startup Overview](https://app.extruct.ai/tables/shared/gQlqQK4pQgPDmk81)  
    *Get a 360° view of startups with funding, team, and product data.*

  - [Social Enrichment](https://app.extruct.ai/tables/shared/VfGemEC1BujAIJx8)  
    *Enrich companies with social profiles, Twitter, LinkedIn, and more.*

  Open a template, get the Table ID, and use it in your node.



  ## Credentials

  - **Extruct API Token**  
    - Sign up at [extruct.ai](https://extruct.ai)
    - Get your API token from the dashboard
    - Add it as a credential in n8n



  ## Resources

  - [Extruct AI website](https://extruct.ai)
  - [n8n Community Nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [Extruct AI API Docs](https://www.extruct.ai/docs/extruct-ai/product)



  ## Compatibility

  - **n8n:** Tested with n8n v1.100.0

ai_documentation_summary:
  {"purpose":"The Extruct AI node enriches company data from public sources by adding companies to a custom Extruct table and retrieving detailed, structured information such as funding, team size, news, patents, and social links, all within n8n workflows.","capabilities":["Add companies to an Extruct table and trigger enrichment","Poll for enrichment completion automatically","Fetch enriched data with custom columns as clean JSON","Support for any company, industry, or country","Use of predefined table templates for common use cases"],"authentication":"Extruct API Token required; obtained from the Extruct AI dashboard","commonUseCases":["Enriching company profiles for sales and business development","Automating startup research with funding, team, and product data","Adding social media and LinkedIn profile data to CRM pipelines","Tracking company news and recent developments","Integrating with lead generation and analytics tools"],"limitations":[],"relatedNodes":["Form Trigger","HTTP Request","Database","CRM nodes"]}


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

updated_at: 2026-01-07 20:08:15
author_name: quintenkamphuis
author_github_url: https://github.com/quinten-kamphuis/
npm_package_name: n8n-nodes-reachkit
npm_version: 0.1.2
community_fetched_at: 2026-01-07T20:08:15.961Z
ai_summary_generated_at: 2026-01-08 10:45:32
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "campaign",
      "options": [
        {
          "name": "Blocklist",
          "value": "blocklist"
        },
        {
          "name": "Campaign",
          "value": "campaign"
        },
        {
          "name": "Conversation",
          "value": "conversation"
        },
        {
          "name": "Inbox",
          "value": "inbox"
        },
        {
          "name": "Lead",
          "value": "lead"
        },
        {
          "name": "Sequence",
          "value": "sequence"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Add",
          "value": "add",
          "action": "Add to blocklist",
          "routing": {
            "request": {
              "url": "/blocklist",
              "method": "POST"
            }
          },
          "description": "Add an email to the blocklist"
        },
        {
          "name": "Check",
          "value": "check",
          "action": "Check if email is blocked",
          "routing": {
            "request": {
              "url": "/blocklist/check",
              "method": "GET"
            }
          },
          "description": "Check if an email is in the blocklist"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Remove from blocklist",
          "routing": {
            "request": {
              "url": "=/blocklist/{{$parameter.entryId}}",
              "method": "DELETE"
            }
          },
          "description": "Remove an email from the blocklist"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get blocklist entries",
          "routing": {
            "request": {
              "url": "/blocklist",
              "method": "GET"
            }
          },
          "description": "Get many blocklist entries"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "blocklist"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get a campaign",
          "routing": {
            "request": {
              "url": "=/campaigns/{{$parameter.campaignId}}",
              "method": "GET"
            }
          },
          "description": "Get details of a specific campaign"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get campaigns",
          "routing": {
            "request": {
              "url": "/campaigns",
              "method": "GET"
            }
          },
          "description": "Get many campaigns"
        },
        {
          "name": "Get Analytics",
          "value": "getAnalytics",
          "action": "Get campaign analytics",
          "routing": {
            "request": {
              "url": "=/campaigns/{{$parameter.campaignId}}/analytics",
              "method": "GET"
            }
          },
          "description": "Get analytics data for a campaign"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a campaign",
          "routing": {
            "request": {
              "url": "=/campaigns/{{$parameter.campaignId}}",
              "method": "PATCH"
            }
          },
          "description": "Update a campaign status"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "campaign"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get a conversation",
          "routing": {
            "request": {
              "url": "=/unibox/conversations/{{$parameter.conversationId}}",
              "method": "GET"
            }
          },
          "description": "Get details of a specific conversation"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get conversations",
          "routing": {
            "request": {
              "url": "/unibox/conversations",
              "method": "GET"
            }
          },
          "description": "Get many conversations"
        },
        {
          "name": "Reply",
          "value": "reply",
          "action": "Reply to a conversation",
          "routing": {
            "request": {
              "url": "=/unibox/conversations/{{$parameter.conversationId}}/reply",
              "method": "POST"
            }
          },
          "description": "Send a reply in a conversation"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "conversation"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get an inbox",
          "routing": {
            "request": {
              "url": "=/inboxes/{{$parameter.inboxId}}",
              "method": "GET"
            }
          },
          "description": "Get details of a specific inbox"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get inboxes",
          "routing": {
            "request": {
              "url": "/inboxes",
              "method": "GET"
            }
          },
          "description": "Get many inboxes"
        },
        {
          "name": "Get Warmup Stats",
          "value": "getWarmupStats",
          "action": "Get warmup statistics",
          "routing": {
            "request": {
              "url": "=/inboxes/{{$parameter.inboxId}}/warmup/stats",
              "method": "GET"
            }
          },
          "description": "Get warmup statistics for an inbox"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "inbox"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a lead",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "=/campaigns/{{$parameter.campaignId}}/leads",
              "method": "POST"
            }
          },
          "description": "Create a new lead in a campaign"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a lead",
          "routing": {
            "request": {
              "url": "=/campaigns/{{$parameter.campaignId}}/leads/{{$parameter.leadId}}",
              "method": "DELETE"
            }
          },
          "description": "Delete a lead from a campaign"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a lead",
          "routing": {
            "request": {
              "url": "=/campaigns/{{$parameter.campaignId}}/leads/{{$parameter.leadId}}",
              "method": "GET"
            }
          },
          "description": "Get details of a specific lead"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get leads",
          "routing": {
            "request": {
              "url": "=/campaigns/{{$parameter.campaignId}}/leads",
              "method": "GET"
            }
          },
          "description": "Get many leads from a campaign"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "lead"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get sequences",
          "routing": {
            "request": {
              "url": "=/campaigns/{{$parameter.campaignId}}/sequences",
              "method": "GET"
            }
          },
          "description": "Get many sequences for a campaign"
        },
        {
          "name": "Update Variant",
          "value": "updateVariant",
          "action": "Update a sequence variant",
          "routing": {
            "request": {
              "url": "=/campaigns/{{$parameter.campaignId}}/variants/{{$parameter.variantId}}",
              "method": "PATCH"
            }
          },
          "description": "Update the enabled status of a sequence variant"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "sequence"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Add",
      "value": "add",
      "action": "Add to blocklist",
      "routing": {
        "request": {
          "url": "/blocklist",
          "method": "POST"
        }
      },
      "description": "Add an email to the blocklist"
    },
    {
      "name": "Check",
      "value": "check",
      "action": "Check if email is blocked",
      "routing": {
        "request": {
          "url": "/blocklist/check",
          "method": "GET"
        }
      },
      "description": "Check if an email is in the blocklist"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Remove from blocklist",
      "routing": {
        "request": {
          "url": "=/blocklist/{{$parameter.entryId}}",
          "method": "DELETE"
        }
      },
      "description": "Remove an email from the blocklist"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get blocklist entries",
      "routing": {
        "request": {
          "url": "/blocklist",
          "method": "GET"
        }
      },
      "description": "Get many blocklist entries"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a campaign",
      "routing": {
        "request": {
          "url": "=/campaigns/{{$parameter.campaignId}}",
          "method": "GET"
        }
      },
      "description": "Get details of a specific campaign"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get campaigns",
      "routing": {
        "request": {
          "url": "/campaigns",
          "method": "GET"
        }
      },
      "description": "Get many campaigns"
    },
    {
      "name": "Get Analytics",
      "value": "getAnalytics",
      "action": "Get campaign analytics",
      "routing": {
        "request": {
          "url": "=/campaigns/{{$parameter.campaignId}}/analytics",
          "method": "GET"
        }
      },
      "description": "Get analytics data for a campaign"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a campaign",
      "routing": {
        "request": {
          "url": "=/campaigns/{{$parameter.campaignId}}",
          "method": "PATCH"
        }
      },
      "description": "Update a campaign status"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a conversation",
      "routing": {
        "request": {
          "url": "=/unibox/conversations/{{$parameter.conversationId}}",
          "method": "GET"
        }
      },
      "description": "Get details of a specific conversation"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get conversations",
      "routing": {
        "request": {
          "url": "/unibox/conversations",
          "method": "GET"
        }
      },
      "description": "Get many conversations"
    },
    {
      "name": "Reply",
      "value": "reply",
      "action": "Reply to a conversation",
      "routing": {
        "request": {
          "url": "=/unibox/conversations/{{$parameter.conversationId}}/reply",
          "method": "POST"
        }
      },
      "description": "Send a reply in a conversation"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get an inbox",
      "routing": {
        "request": {
          "url": "=/inboxes/{{$parameter.inboxId}}",
          "method": "GET"
        }
      },
      "description": "Get details of a specific inbox"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get inboxes",
      "routing": {
        "request": {
          "url": "/inboxes",
          "method": "GET"
        }
      },
      "description": "Get many inboxes"
    },
    {
      "name": "Get Warmup Stats",
      "value": "getWarmupStats",
      "action": "Get warmup statistics",
      "routing": {
        "request": {
          "url": "=/inboxes/{{$parameter.inboxId}}/warmup/stats",
          "method": "GET"
        }
      },
      "description": "Get warmup statistics for an inbox"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a lead",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "=/campaigns/{{$parameter.campaignId}}/leads",
          "method": "POST"
        }
      },
      "description": "Create a new lead in a campaign"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a lead",
      "routing": {
        "request": {
          "url": "=/campaigns/{{$parameter.campaignId}}/leads/{{$parameter.leadId}}",
          "method": "DELETE"
        }
      },
      "description": "Delete a lead from a campaign"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a lead",
      "routing": {
        "request": {
          "url": "=/campaigns/{{$parameter.campaignId}}/leads/{{$parameter.leadId}}",
          "method": "GET"
        }
      },
      "description": "Get details of a specific lead"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get leads",
      "routing": {
        "request": {
          "url": "=/campaigns/{{$parameter.campaignId}}/leads",
          "method": "GET"
        }
      },
      "description": "Get many leads from a campaign"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get sequences",
      "routing": {
        "request": {
          "url": "=/campaigns/{{$parameter.campaignId}}/sequences",
          "method": "GET"
        }
      },
      "description": "Get many sequences for a campaign"
    },
    {
      "name": "Update Variant",
      "value": "updateVariant",
      "action": "Update a sequence variant",
      "routing": {
        "request": {
          "url": "=/campaigns/{{$parameter.campaignId}}/variants/{{$parameter.variantId}}",
          "method": "PATCH"
        }
      },
      "description": "Update the enabled status of a sequence variant"
    }
  ]

npm_readme:
  # n8n-nodes-reachkit

  This is an n8n community node that lets you use [Reachkit](https://reachkit.ai) in your n8n workflows.

  Reachkit is a cold email outreach platform that helps you manage campaigns, leads, inboxes, and conversations.

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

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

  ## Installation

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

  ## Operations

  This node supports the following resources and operations:

  ### Blocklist

  - **Add**: Add an email to the blocklist
  - **Check**: Check if an email is in the blocklist
  - **Delete**: Remove an email from the blocklist
  - **Get Many**: Get all blocklist entries with pagination and search

  ### Campaign

  - **Get**: Get details of a specific campaign
  - **Get Many**: List all campaigns with pagination and search
  - **Get Analytics**: Get analytics data for a campaign including daily stats and sequence performance
  - **Update**: Update a campaign status (active/paused)

  ### Conversation

  - **Get**: Get details of a specific conversation with all messages
  - **Get Many**: List all conversations with pagination and filtering by folder
  - **Reply**: Send a reply in a conversation

  ### Inbox

  - **Get**: Get details of a specific inbox
  - **Get Many**: List all inboxes with pagination and search
  - **Get Warmup Stats**: Get warmup statistics for an inbox over the last 7 days

  ### Lead

  - **Create**: Create a new lead in a campaign with custom variables
  - **Delete**: Delete a lead from a campaign
  - **Get**: Get details of a specific lead
  - **Get Many**: List all leads in a campaign with pagination and search

  ### Sequence

  - **Get Many**: List all sequences for a campaign with their variants
  - **Update Variant**: Update the enabled status of a sequence variant

  ## Credentials

  To use this node, you need a Reachkit API key.

  ### Getting your API key:

  1. Log in to your Reachkit account
  2. Navigate to **Settings → Integrations**
  3. Click **Add API Key**
  4. Enter a name for the key
  5. Copy the API key (it will only be shown once)

  ### Authentication

  The node uses Bearer token authentication. Simply paste your API key in the credentials configuration.

  **Note**: API access is available exclusively for users on the Professional and Agency plans.

  ## Compatibility

  Tested with n8n version 1.x.

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [Reachkit n8n Documentation](https://reachkit.ai/help/articles/n8n-integration)
  - [Reachkit API Documentation](https://reachkit.ai/help/articles/api-documentation)
  - [Reachkit Webhooks Documentation](https://reachkit.ai/help/articles/webhooks)

  ## Usage Examples

  ### Create leads from a spreadsheet

  1. Use the **Spreadsheet File** node to read your leads
  2. Connect to **Reachkit** node
  3. Select **Lead** resource and **Create** operation
  4. Map the email, first name, last name fields
  5. Set custom variables for personalization

  ### Get campaign analytics

  1. Use the **Reachkit** node
  2. Select **Campaign** resource and **Get Analytics** operation
  3. Enter the campaign ID
  4. Process the daily stats and sequence performance data

  ### Reply to new conversations

  1. Use the **Reachkit** node with **Conversation** → **Get Many**
  2. Filter by folder (primary/others)
  3. Process unread conversations
  4. Use **Conversation** → **Reply** to send responses

  ### Manage blocklist

  1. Add emails to blocklist from bounced leads
  2. Check if an email is blocked before adding to campaign
  3. Clean up your blocklist periodically

  ## Version History

  ### 0.1.0

  - Initial release
  - Support for all major Reachkit API endpoints
  - Full CRUD operations for leads, campaigns, conversations
  - Blocklist management
  - Inbox and warmup stats
  - Sequence variant management

  ## License

  [MIT](LICENSE.md)

ai_documentation_summary:
  {"purpose":"The Reachkit node enables integration with the Reachkit platform to manage cold email campaigns, leads, conversations, inboxes, and blocklists through n8n workflows.","capabilities":["Add and remove emails from blocklist","Check if an email is in the blocklist","Get and list campaigns with analytics and status updates","Create, retrieve, delete, and search leads","Get and manage conversations with message replies","List and retrieve inboxes with warmup statistics","List and update sequence variants","Retrieve campaign performance data"],"authentication":"Bearer token authentication using a Reachkit API key obtained from the Settings → Integrations page","commonUseCases":["Creating leads from spreadsheets with personalization","Fetching campaign analytics for performance tracking","Automatically replying to new conversations","Managing email blocklists to prevent bounces","Monitoring inbox warmup statistics"],"limitations":["API access is restricted to users on Professional and Agency plans","Only tested with n8n version 1.x"],"relatedNodes":["Spreadsheet File","Webhook"]}


node_type: n8n-nodes-velatir.velatir
package_name: n8n-nodes-velatir
display_name: Velatir
description: Human approval gate with decision routing - routes workflow based on approval decision
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
outputs:
  [
  "main",
  "main",
  "main"
  ]

updated_at: 2026-01-07 20:08:15
author_name: velatir
author_github_url: https://github.com/velatir/
npm_package_name: n8n-nodes-velatir
npm_version: 2.0.1
community_fetched_at: 2026-01-07T20:08:15.961Z
ai_summary_generated_at: 2026-01-08 10:45:32
npm_readme:
  # n8n-nodes-velatir

  ![Velatir](https://img.shields.io/badge/Velatir-Human--Approval--Gate-blue?style=flat-square)
  ![n8n-community-node-package](https://img.shields.io/badge/n8n-community--node-ff6d5a?style=flat-square)
  ![npm version](https://img.shields.io/npm/v/n8n-nodes-velatir?style=flat-square)
  ![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg?style=flat-square)

  **Human approval gate for n8n workflows with decision routing.** This community node integrates [Velatir](https://velatir.com) to pause your workflow until a human makes a decision, then routes the data to different outputs based on that decision.

  ## What does it do?

  The Velatir node provides **smart decision routing**:

  1. **Data flows in** → Gets sent to Velatir for human review
  2. **Workflow pauses** → Waits for human decision
  3. **Routes to different outputs** based on approval decision:
     - **Output 1**: Approved requests
     - **Output 2**: Declined requests
     - **Output 3**: Change requests with feedback

  This gives you maximum flexibility to handle each decision type differently in your workflow.

  ## Installation

  ### Option 1: Community Nodes Panel (Recommended)
  1. Go to **Settings > Community Nodes** in n8n
  2. Select **Install**
  3. Enter `n8n-nodes-velatir`
  4. Select **Install**

  ### Option 2: Manual Installation
  ```bash
  npm install n8n-nodes-velatir
  ```

  ## Setup

  ### 1. Get your Velatir API Key
  - Sign up at [velatir.com](https://velatir.com)
  - Get your API key from the dashboard

  ### 2. Add Credentials in n8n
  - Go to **Settings > Credentials**
  - Create new **Velatir API** credential
  - Enter your API key
  - Save

  ## Usage

  ### Basic Usage
  Drag the **Velatir** node into your workflow and connect nodes to the outputs you need:

  ```
  Trigger → [Your Data] → **Velatir** → [Approved: Process Data]
                                    → [Declined: Send Rejection Email]  
                                    → [Change Requested: Request More Info]
  ```

  **The node will:**
  - Automatically use your input data as the approval context
  - Show the node name and description to approvers  
  - Route data to different outputs based on the approval decision
  - Include decision metadata in all outputs

  ### Simple Example
  If you only care about approved requests, just connect the first output:

  ```
  Trigger → [Your Data] → **Velatir** → [Process Approved Data]
  ```

  ### Configuration Options

  | Field | Description | Default |
  |-------|-------------|---------|
  | **Function Name** | Name shown to approvers | Node name |
  | **Description** | What this step does | Empty |
  | **Polling Interval** | Check frequency (seconds) | 5 |
  | **Timeout** | Max wait time (minutes) | 10 |
  | **LLM Explanation** | AI context for approval decision | Empty |

  ## Examples

  ### Example 1: Content Review Workflow
  ```
  Webhook → **Velatir** → [Approved: Publish Content]
                        → [Declined: Archive Content]
                        → [Changes Requested: Send to Editor]
  ```

  ### Example 2: User Registration with Feedback  
  ```
  Form Submit → **Velatir** → [Approved: Create Account + Welcome Email]
                            → [Declined: Send Rejection Email]
                            → [Changes Requested: Request Additional Info]
  ```

  ### Example 3: Invoice Processing
  ```
  New Invoice → **Velatir** → [Approved: Auto-Pay Invoice]
                            → [Declined: Mark as Disputed]  
                            → [Changes Requested: Request Clarification]
  ```

  ### Example 4: Simple Approval Gate
  If you only need to process approved requests:
  ```
  Manual Trigger → Set (Campaign Data) → **Velatir** → [Send Email]
  ```
  Just connect the first output and leave the others unconnected.

  ## What Approvers See

  When a request needs approval, your team will see:

  - **Function Name**: "Send Email Campaign" (or whatever you set)
  - **Description**: "Send marketing email to 1,500 customers" 
  - **Arguments**: All the input data from your workflow
  - **LLM Explanation**: AI context about why approval is needed (if provided)
  - **Metadata**: Workflow context (ID, execution, behavior mode, etc.)

  ## Data Output

  All outputs include the original data plus `_velatir` metadata:

  ```json
  {
    "originalData": "your workflow data",
    "_velatir": {
      "reviewTaskId": "uuid-of-review-task",
      "state": "approved|declined|change_requested",
      "requestedChange": "feedback from approver (if any)"
    }
  }
  ```

  ## Best Practices

  ### ✅ Do:
  - Use descriptive node names (they become the function name)
  - Add helpful descriptions for complex operations
  - Place approval gates before critical/irreversible actions
  - Set appropriate timeouts for your team's response time
  - Provide LLM explanations for better approval context
  - Connect the outputs you need (you don't have to use all three)
  - Use the change requested output to implement feedback loops

  ### ❌ Don't:
  - Put approval gates in loops (can create many approval requests)
  - Set very short timeouts for non-urgent operations
  - Forget that unconnected outputs will lose their data
  - Ignore the `_velatir` metadata when processing decisions

  ## Error Handling

  The node uses **decision routing** for all scenarios:

  - **If approved**: Data flows to "Approved" output (Output 1)
  - **If declined**: Data flows to "Declined" output (Output 2)  
  - **If changes requested**: Data flows to "Change Requested" output (Output 3) with feedback
  - **If timeout**: Workflow stops after the configured timeout
  - **If API error**: With "Continue on Fail" enabled, errors flow to "Declined" output
  - **If API error**: With "Continue on Fail" disabled, workflow stops with error message

  ## Workflow Patterns

  ### Pattern 1: Simple Approval
  ```
  Data → **Velatir** → [Approved: Process Data]
  ```
  Only connect the approved output for basic approval gates.

  ### Pattern 2: Full Decision Handling
  ```
  Data → **Velatir** → [Approved: Process Data]
                     → [Declined: Log Rejection]
                     → [Changes: Request Info]
  ```
  Handle all three decision types differently.

  ### Pattern 3: Feedback Loop
  ```
  Data → **Velatir** → [Approved: Process]
                     → [Declined: Archive]
                     → [Changes: Edit] → **Velatir** (New Review)
  ```
  Use change requests to improve and resubmit.

  ### Pattern 4: Escalation Workflow
  ```
  Data → **Velatir** → [Approved: Execute]
                     → [Declined: End]
                     → [Changes: Escalate] → Senior **Velatir** → Execute
  ```
  Escalate change requests to higher approval levels.

  ### Pattern 5: Conditional Approval
  ```
  Data → IF (high_value?) → **Velatir** → [Process]
                          → Direct Process
  ```
  Only require approval for certain conditions.

  ## Troubleshooting

  | Issue | Solution |
  |-------|----------|
  | "Request timeout" | Increase timeout or check if approvers are available |
  | "API key invalid" | Verify credential configuration in n8n |
  | "Request declined" | Data flows to declined output - check approver feedback |
  | Node doesn't appear | Restart n8n after installation |
  | "Unexpected state" | Update to latest node version (API may have changed) |
  | Data not flowing to expected output | Check the `_velatir.state` field in your data |
  | Missing data on outputs | Connect only the outputs you need, unconnected outputs lose data |

  ## Minimal Examples

  ### Simple Approval
  1. **Manual Trigger** 
  2. **Set** node with: `{"message": "Hello World"}`
  3. **Velatir** node (default settings)
  4. **No Op** node connected to "Approved" output

  When you run this:
  - Your approver sees: Function "Velatir" needs approval with args `{"message": "Hello World"}`
  - If approved: Data flows to No Op with `_velatir` metadata
  - If declined/changed: Data flows to unconnected outputs (lost)

  ### Full Decision Routing
  1. **Manual Trigger**
  2. **Set** node with: `{"message": "Hello World"}`
  3. **Velatir** node 
  4. **No Op** node connected to "Approved" output
  5. **Set** node connected to "Declined" output with message "Request declined"
  6. **Set** node connected to "Change Requested" output with message "Changes needed"

  When you run this, the workflow routes to different paths based on the approval decision, and you can handle each case appropriately.

  ## Support

  - 📖 [Velatir Documentation](https://www.velatir.com/docs)
  - 💬 [n8n Community Forum](https://community.n8n.io)
  - 🐛 [Report Issues](https://github.com/velatir/n8n-nodes-velatir/issues)
  - 📧 [Contact Support](mailto:hello@velatir.com)

  ## License

  [MIT](LICENSE)

ai_documentation_summary:
  {"purpose":"The Velatir node provides a human approval gate that pauses a workflow until a human makes a decision, then routes the data to different outputs based on the decision (approved, declined, or change requested).","capabilities":["Pauses workflow for human approval","Routes data to three outputs: approved, declined, or change requested","Includes decision metadata in all outputs","Supports LLM-generated explanations for approval context","Configurable polling interval and timeout settings","Displays function name and description to approvers","Handles errors with configurable fail behavior"],"authentication":"API key required (obtained from Velatir dashboard)","commonUseCases":["Content review and publishing workflows","User registration with feedback loops","Invoice processing and approval","Marketing campaign approvals","Requesting changes with feedback in data workflows"],"limitations":["Does not support custom decision logic beyond predefined routes","Approval gates cannot be used in loops without risk of infinite requests","Unconnected outputs lose data","No built-in escalation or notification features beyond Velatir's platform"],"relatedNodes":["Approval nodes","Human-in-the-loop workflows","Decision routing nodes","Workflow pausing nodes"]}


node_type: n8n-nodes-scrape-creators.scrapeCreators
package_name: n8n-nodes-scrape-creators
display_name: Scrape Creators
description: Get real time social media data
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-01-07 20:08:15
author_name: adrianhorning08
author_github_url: https://github.com/adrianhorning08/
npm_package_name: n8n-nodes-scrape-creators
npm_version: 0.1.9
community_fetched_at: 2026-01-07T20:08:15.962Z
ai_summary_generated_at: 2026-01-08 10:45:32
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "instagram",
      "options": [
        {
          "name": "Facebook",
          "value": "facebook"
        },
        {
          "name": "Facebook Ad Library",
          "value": "facebookAdLibrary"
        },
        {
          "name": "Google Ad Library",
          "value": "googleAdLibrary"
        },
        {
          "name": "Google Search",
          "value": "googleSearch"
        },
        {
          "name": "Instagram",
          "value": "instagram"
        },
        {
          "name": "LinkedIn",
          "value": "linkedin"
        },
        {
          "name": "LinkedIn Ad Library",
          "value": "linkedinAdLibrary"
        },
        {
          "name": "Pinterest",
          "value": "pinterest"
        },
        {
          "name": "Reddit",
          "value": "reddit"
        },
        {
          "name": "Thread",
          "value": "threads"
        },
        {
          "name": "TikTok",
          "value": "tiktok"
        },
        {
          "name": "Truth Social",
          "value": "truthsocial"
        },
        {
          "name": "Twitter (X)",
          "value": "twitter"
        },
        {
          "name": "YouTube",
          "value": "youtube"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getInstagramProfile",
      "options": [
        {
          "name": "Get Profile",
          "value": "getInstagramProfile",
          "action": "Get instagram profile",
          "routing": {
            "request": {
              "qs": {
                "trim": true,
                "handle": "={{$parameter.handle}}"
              },
              "url": "v1/instagram/profile",
              "method": "GET"
            }
          },
          "description": "Get an Instagram profile"
        },
        {
          "name": "Get User's Posts",
          "value": "getInstagramUserPosts",
          "action": "Get an instagram user s posts",
          "routing": {
            "send": {
              "paginate": true
            },
            "request": {
              "qs": {
                "trim": true,
                "handle": "={{$parameter.handle}}"
              },
              "url": "v2/instagram/user/posts",
              "method": "GET"
            },
            "operations": {}
          },
          "description": "Get an Instagram user's posts"
        },
        {
          "name": "Get Post",
          "value": "getInstagramPost",
          "action": "Get an instagram post",
          "routing": {
            "request": {
              "qs": {
                "url": "={{$parameter.url}}",
                "trim": true
              },
              "url": "v1/instagram/post",
              "method": "GET"
            }
          },
          "description": "Get an Instagram post or reel"
        },
        {
          "name": "Get Post Transcript",
          "value": "getInstagramPostTranscript",
          "action": "Get an instagram post transcript",
          "routing": {
            "output": {
              "postReceive": [
                null
              ]
            },
            "request": {
              "qs": {
                "url": "={{$parameter.url}}"
              },
              "url": "v2/instagram/media/transcript",
              "method": "GET"
            }
          },
          "description": "Get an Instagram post transcript"
        },
        {
          "name": "Get User's Reels",
          "value": "getInstagramUserReels",
          "action": "Get an instagram user s reels",
          "routing": {
            "send": {
              "paginate": true
            },
            "request": {
              "qs": {
                "trim": true,
                "handle": "={{$parameter.handle}}"
              },
              "url": "v1/instagram/user/reels",
              "method": "GET"
            },
            "operations": {}
          },
          "description": "Get an Instagram user's reels"
        },
        {
          "name": "Get User's Story Highlights",
          "value": "getInstagramUserStoryHighlights",
          "action": "Get an instagram user s story highlights",
          "routing": {
            "request": {
              "qs": {
                "handle": "={{$parameter.handle}}"
              },
              "url": "v1/instagram/user/highlights",
              "method": "GET"
            }
          },
          "description": "Get an Instagram user's story highlights"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "instagram"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getTikTokProfile",
      "options": [
        {
          "name": "Get Profile",
          "value": "getTikTokProfile",
          "action": "Get tik tok profile",
          "routing": {
            "request": {
              "qs": {
                "handle": "={{$parameter.handle}}"
              },
              "url": "v1/tiktok/profile",
              "method": "GET"
            }
          },
          "description": "Get a TikTok profile"
        },
        {
          "name": "Get Profile's Videos",
          "value": "getTikTokProfileVideos",
          "action": "Get a tik tok profile s videos",
          "routing": {
            "send": {
              "paginate": true
            },
            "request": {
              "qs": {
                "trim": true,
                "handle": "={{$parameter.handle}}"
              },
              "url": "v3/tiktok/profile/videos",
              "method": "GET"
            },
            "operations": {}
          },
          "description": "Get a TikTok profile's videos"
        },
        {
          "name": "Get TikTok Video",
          "value": "getTikTokVideo",
          "action": "Get a tik tok video",
          "routing": {
            "request": {
              "qs": {
                "url": "={{$parameter.url}}",
                "trim": true
              },
              "url": "v2/tiktok/video",
              "method": "GET"
            }
          },
          "description": "Get a TikTok video"
        },
        {
          "name": "Get TikTok Video Transcript",
          "value": "getTikTokVideoTranscript",
          "action": "Get a tik tok video transcript",
          "routing": {
            "request": {
              "qs": {
                "url": "={{$parameter.url}}"
              },
              "url": "v1/tiktok/video/transcript",
              "method": "GET"
            }
          },
          "description": "Get a TikTok video transcript"
        },
        {
          "name": "Get TikTok Video Comments",
          "value": "getTikTokVideoComments",
          "action": "Get a tik tok video comments",
          "routing": {
            "send": {
              "paginate": true
            },
            "request": {
              "qs": {
                "url": "={{$parameter.url}}",
                "trim": true
              },
              "url": "v1/tiktok/video/comments",
              "method": "GET"
            },
            "operations": {}
          },
          "description": "Get a TikTok video comments"
        },
        {
          "name": "Get TikTok Following",
          "value": "getTikTokFollowing",
          "action": "Get a tik tok following",
          "routing": {
            "send": {
              "paginate": true
            },
            "request": {
              "qs": {
                "trim": true,
                "handle": "={{$parameter.handle}}"
              },
              "url": "v1/tiktok/user/following",
              "method": "GET"
            },
            "operations": {}
          },
          "description": "Get a TikTok following"
        },
        {
          "name": "Get TikTok Followers",
          "value": "getTikTokFollowers",
          "action": "Get a tik tok followers",
          "routing": {
            "send": {
              "paginate": true
            },
            "request": {
              "qs": {
                "trim": true,
                "handle": "={{$parameter.handle}}"
              },
              "url": "v1/tiktok/user/followers",
              "method": "GET"
            },
            "operations": {}
          },
          "description": "Get a TikTok followers"
        },
        {
          "name": "Search TikTok Users",
          "value": "searchTikTokUsers",
          "action": "Search tik tok users",
          "routing": {
            "send": {
              "paginate": true
            },
            "request": {
              "qs": {
                "trim": true,
                "query": "={{$parameter.query}}"
              },
              "url": "v1/tiktok/search/users",
              "method": "GET"
            },
            "operations": {}
          }
        },
        {
          "name": "Search TikTok's by Hashtag",
          "value": "searchTikTokByHashtag",
          "action": "Search tik tok by hashtag",
          "routing": {
            "send": {
              "paginate": true
            },
            "request": {
              "qs": {
                "trim": true,
                "hashtag": "={{$parameter.hashtag}}"
              },
              "url": "v1/tiktok/search/hashtag",
              "method": "GET"
            },
            "operations": {}
          },
          "description": "Search TikTok by hashtag"
        },
        {
          "name": "Search TikTok's by Keyword",
          "value": "searchTikTokByKeyword",
          "action": "Search tik tok by keyword",
          "routing": {
            "send": {
              "paginate": true
            },
            "request": {
              "qs": {
                "trim": true,
                "query": "={{$parameter.query}}"
              },
              "url": "v1/tiktok/search/keyword",
              "method": "GET"
            },
            "operations": {}
          },
          "description": "Search TikTok by keyword"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "tiktok"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getYouTubeChannelDetails",
      "options": [
        {
          "name": "Get YouTube Channel Details",
          "value": "getYouTubeChannelDetails",
          "action": "Get a you tube channel details",
          "routing": {
            "request": {
              "qs": {
                "handle": "={{$parameter.handle}}",
                "channelId": "={{$parameter.channelId}}"
              },
              "url": "v1/youtube/channel",
              "method": "GET"
            }
          },
          "description": "Get a YouTube channel details"
        },
        {
          "name": "Get YouTube Channel Videos",
          "value": "getYouTubeChannelVideos",
          "action": "Get a you tube channel videos",
          "routing": {
            "send": {
              "paginate": true
            },
            "request": {
              "qs": {
                "sort": "={{$parameter.additionalFields.sort}}",
                "handle": "={{$parameter.handle}}",
                "channelId": "={{$parameter.channelId}}"
              },
              "url": "v1/youtube/channel-videos",
              "method": "GET"
            },
            "operations": {}
          },
          "description": "Get a YouTube channel videos"
        },
        {
          "name": "Get YouTube Channel Shorts",
          "value": "getYouTubeChannelShorts",
          "action": "Get a you tube channel shorts",
          "routing": {
            "send": {
              "paginate": true
            },
            "request": {
              "qs": {
                "sort": "={{$parameter.additionalFields.sort}}",
                "handle": "={{$parameter.handle}}",
                "channelId": "={{$parameter.channelId}}"
              },
              "url": "v1/youtube/channel/shorts",
              "method": "GET"
            },
            "operations": {}
          },
          "description": "Get a YouTube channel shorts"
        },
        {
          "name": "Get YouTube Video Details",
          "value": "getYouTubeVideoDetails",
          "action": "Get a you tube video details",
          "routing": {
            "request": {
              "qs": {
                "url": "={{$parameter.url}}"
              },
              "url": "v1/youtube/video",
              "method": "GET"
            }
          },
          "description": "Get a YouTube video details"
        },
        {
          "name": "Get YouTube Video Transcript",
          "value": "getYouTubeVideoTranscript",
          "action": "Get a you tube video transcript",
          "routing": {
            "request": {
              "qs": {
                "url": "={{$parameter.url}}"
              },
              "url": "v1/youtube/video/transcript",
              "method": "GET"
            }
          },
          "description": "Get a YouTube video transcript"
        },
        {
          "name": "Search YouTube Videos by Keyword",
          "value": "searchYouTubeVideosByKeyword",
          "action": "Search you tube videos",
          "routing": {
            "send": {
              "paginate": true
            },
            "request": {
              "qs": {
                "query": "={{$parameter.query}}"
              },
              "url": "v1/youtube/search",
              "method": "GET"
            },
            "operations": {}
          },
          "description": "Search YouTube videos"
        },
        {
          "name": "Search YouTube Videos by Hashtag",
          "value": "searchYouTubeVideosByHashtag",
          "action": "Search you tube videos by hashtag",
          "routing": {
            "send": {
              "paginate": true
            },
            "request": {
              "qs": {
                "hashtag": "={{$parameter.hashtag}}"
              },
              "url": "v1/youtube/search/hashtag",
              "method": "GET"
            },
            "operations": {}
          }
        },
        {
          "name": "Get Comments",
          "value": "getComments",
          "action": "Get comments",
          "routing": {
            "send": {
              "paginate": true
            },
            "request": {
              "qs": {
                "url": "={{$parameter.url}}"
              },
              "url": "v1/youtube/video/comments",
              "method": "GET"
            },
            "operations": {}
          }
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "youtube"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getLinkedinProfile",
      "options": [
        {
          "name": "Get LinkedIn Profile",
          "value": "getLinkedinProfile",
          "action": "Get a linked in profile",
          "routing": {
            "request": {
              "qs": {
                "url": "={{$parameter.url}}"
              },
              "url": "v1/linkedin/profile",
              "method": "GET"
            }
          },
          "description": "Get a LinkedIn profile"
        },
        {
          "name": "Get LinkedIn Company Page",
          "value": "getLinkedinCompanyPage",
          "action": "Get a linked in company page",
          "routing": {
            "request": {
              "qs": {
                "url": "={{$parameter.url}}"
              },
              "url": "v1/linkedin/company",
              "method": "GET"
            }
          },
          "description": "Get a LinkedIn company page"
        },
        {
          "name": "Get LinkedIn Post",
          "value": "getLinkedinPost",
          "action": "Get a linked in post",
          "routing": {
            "request": {
              "qs": {
                "url": "={{$parameter.url}}"
              },
              "url": "v1/linkedin/post",
              "method": "GET"
            }
          },
          "description": "Get a LinkedIn post"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "linkedin"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getFacebookProfile",
      "options": [
        {
          "name": "Get Facebook Profile",
          "value": "getFacebookProfile",
          "action": "Get a facebook profile",
          "routing": {
            "request": {
              "qs": {
                "url": "={{$parameter.url}}"
              },
              "url": "v1/facebook/profile",
              "method": "GET"
            }
          },
          "description": "Get a Facebook profile"
        },
        {
          "name": "Get Facebook Profile Posts",
          "value": "getFacebookProfilePosts",
          "action": "Get a facebook profile posts",
          "routing": {
            "send": {
              "paginate": true
            },
            "request": {
              "qs": {
                "url": "={{$parameter.url}}"
              },
              "url": "v1/facebook/profile/posts",
              "method": "GET"
            },
            "operations": {}
          },
          "description": "Get a Facebook profile posts"
        },
        {
          "name": "Get Facebook Group Posts",
          "value": "getFacebookGroupPosts",
          "action": "Get a facebook group posts",
          "routing": {
            "send": {
              "paginate": true
            },
            "request": {
              "qs": {
                "url": "={{$parameter.url}}"
              },
              "url": "v1/facebook/group/posts",
              "method": "GET"
            },
            "operations": {}
          },
          "description": "Get a Facebook group posts"
        },
        {
          "name": "Get Reel",
          "value": "getReel",
          "action": "Get a facebook reel",
          "routing": {
            "request": {
              "qs": {
                "url": "={{$parameter.url}}"
              },
              "url": "v1/facebook/user/reel",
              "method": "GET"
            }
          },
          "description": "Get a Facebook reel"
        },
        {
          "name": "Get Facebook Post",
          "value": "getFacebookPost",
          "action": "Get a facebook post",
          "routing": {
            "request": {
              "qs": {
                "url": "={{$parameter.url}}"
              },
              "url": "v1/facebook/user/post",
              "method": "GET"
            }
          },
          "description": "Get a Facebook post"
        },
        {
          "name": "Get Transcript",
          "value": "getTranscript",
          "action": "Get a facebook transcript",
          "routing": {
            "request": {
              "qs": {
                "url": "={{$parameter.url}}"
              },
              "url": "v1/facebook/post/transcript",
              "method": "GET"
            }
          },
          "description": "Get the transcript of a post or reel"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "facebook"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getFacebookLibraryAd",
      "options": [
        {
          "name": "Get Ad",
          "value": "getFacebookLibraryAd",
          "action": "Get a facebook ad library ad",
          "routing": {
            "request": {
              "qs": {
                "id": "={{$parameter.id}}",
                "trim": true
              },
              "url": "v1/facebook/adLibrary/ad",
              "method": "GET"
            }
          },
          "description": "Get a Facebook ad library ad"
        },
        {
          "name": "Search Ads",
          "value": "searchAds",
          "action": "Search for ads",
          "routing": {
            "send": {
              "paginate": true
            },
            "request": {
              "qs": {
                "trim": true,
                "query": "={{$parameter.query}}",
                "status": "={{$parameter.additionalFields.status}}",
                "ad_type": "={{$parameter.additionalFields.ad_type}}",
                "country": "={{$parameter.additionalFields.country}}",
                "end_date": "={{$parameter.additionalFields.end_date}}",
                "media_type": "={{$parameter.additionalFields.media_type}}",
                "start_date": "={{$parameter.additionalFields.start_date}}",
                "search_type": "={{$parameter.additionalFields.search_type}}"
              },
              "url": "v1/facebook/adLibrary/search/ads",
              "method": "GET"
            },
            "operations": {}
          },
          "description": "Search for ads"
        },
        {
          "name": "Get A Company's Ads",
          "value": "getCompanyAds",
          "action": "Get a company s ads",
          "routing": {
            "send": {
              "paginate": true
            },
            "request": {
              "qs": {
                "trim": true,
                "pageId": "={{$parameter.pageId}}",
                "status": "={{$parameter.additionalFields.status}}",
                "country": "={{$parameter.additionalFields.country}}",
                "media_type": "={{$parameter.additionalFields.media_type}}"
              },
              "url": "v1/facebook/adLibrary/company/ads",
              "method": "GET"
            },
            "operations": {}
          }
        },
        {
          "name": "Search Companies",
          "value": "searchCompanies",
          "action": "Search for companies",
          "routing": {
            "request": {
              "qs": {
                "trim": true,
                "query": "={{$parameter.query}}"
              },
              "url": "v1/facebook/adLibrary/search/companies",
              "method": "GET"
            }
          },
          "description": "Search for companies"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "facebookAdLibrary"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getCompanyGoogleAds",
      "options": [
        {
          "name": "Get A Company's Google Ads",
          "value": "getCompanyGoogleAds",
          "action": "Get a company s google ads",
          "routing": {
            "send": {
              "paginate": true
            },
            "request": {
              "qs": {
                "topic": "={{$parameter.additionalFields.topic}}",
                "domain": "={{$parameter.domain}}",
                "region": "={{$parameter.additionalFields.region}}",
                "advertiser_id": "={{$parameter.additionalFields.advertiser_id}}"
              },
              "url": "v1/google/company/ads",
              "method": "GET"
            },
            "operations": {}
          }
        },
        {
          "name": "Get Ad Details",
          "value": "getAdDetails",
          "action": "Get ad details",
          "routing": {
            "request": {
              "qs": {
                "url": "={{$parameter.url}}"
              },
              "url": "v1/google/ad",
              "method": "GET"
            }
          },
          "description": "Get the details of a specific Google ad"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "googleAdLibrary"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getLinkedinAdDetails",
      "options": [
        {
          "name": "Search Ads",
          "value": "searchLinkedinAds",
          "action": "Search for ads",
          "routing": {
            "send": {
              "paginate": true
            },
            "request": {
              "qs": {
                "company": "={{$parameter.additionalFields.company}}",
                "endDate": "={{$parameter.additionalFields.endDate}}",
                "keyword": "={{$parameter.keyword}}",
                "countries": "={{$parameter.additionalFields.countries}}",
                "startDate": "={{$parameter.additionalFields.startDate}}"
              },
              "url": "v1/linkedin/ads/search",
              "method": "GET"
            },
            "operations": {}
          },
          "description": "Search the LinkedIn Ad Library for ads"
        },
        {
          "name": "Get Ad Details",
          "value": "getLinkedinAdDetails",
          "action": "Get ad details",
          "routing": {
            "request": {
              "qs": {
                "url": "={{$parameter.url}}"
              },
              "url": "v1/linkedin/ad",
              "method": "GET"
            }
          },
          "description": "Get the details of a specific LinkedIn ad"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "linkedinAdLibrary"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getTwitterProfile",
      "options": [
        {
          "name": "Get Twitter Profile",
          "value": "getTwitterProfile",
          "action": "Get a twitter profile",
          "routing": {
            "request": {
              "qs": {
                "handle": "={{$parameter.handle}}"
              },
              "url": "v1/twitter/profile",
              "method": "GET"
            }
          },
          "description": "Get a Twitter profile"
        },
        {
          "name": "Get User Tweets",
          "value": "getUserTweets",
          "action": "Get a user s tweets",
          "routing": {
            "request": {
              "qs": {
                "trim": true,
                "handle": "={{$parameter.handle}}"
              },
              "url": "v1/twitter/user-tweets",
              "method": "GET"
            }
          },
          "description": "Get a user's tweets. This won't be their latest tweets, but will be 100 of their most popular tweets."
        },
        {
          "name": "Get Tweet Details",
          "value": "getTweetDetails",
          "action": "Get a tweet s details",
          "routing": {
            "request": {
              "qs": {
                "url": "={{$parameter.url}}",
                "trim": true
              },
              "url": "v1/twitter/tweet",
              "method": "GET"
            }
          },
          "description": "Get a tweet's details"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "twitter"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getSubredditPosts",
      "options": [
        {
          "name": "Get Subreddit Posts",
          "value": "getSubredditPosts",
          "action": "Get a subreddit s posts",
          "routing": {
            "send": {
              "paginate": true
            },
            "request": {
              "qs": {
                "sort": "={{$parameter.additionalFields.sort}}",
                "trim": true,
                "subreddit": "={{$parameter.subreddit}}",
                "timeframe": "={{$parameter.additionalFields.timeframe}}"
              },
              "url": "v1/reddit/subreddit",
              "method": "GET"
            },
            "operations": {}
          },
          "description": "Get a subreddit's posts"
        },
        {
          "name": "Get Post Comments",
          "value": "getRedditPostComments",
          "action": "Get a post s comments",
          "routing": {
            "send": {
              "paginate": true
            },
            "request": {
              "qs": {
                "url": "={{$parameter.url}}",
                "trim": true
              },
              "url": "v1/reddit/post/comments",
              "method": "GET"
            },
            "operations": {}
          },
          "description": "Get a post's comments"
        },
        {
          "name": "Search Reddit",
          "value": "searchReddit",
          "action": "Search reddit",
          "routing": {
            "send": {
              "paginate": true
            },
            "request": {
              "qs": {
                "sort": "={{$parameter.additionalFields.sort}}",
                "trim": true,
                "query": "={{$parameter.query}}",
                "timeframe": "={{$parameter.additionalFields.timeframe}}"
              },
              "url": "v1/reddit/search",
              "method": "GET"
            },
            "operations": {}
          },
          "description": "Search Reddit for posts"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "reddit"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getThreadsProfile",
      "options": [
        {
          "name": "Get Threads Profile",
          "value": "getThreadsProfile",
          "action": "Get threads profile",
          "routing": {
            "request": {
              "qs": {
                "handle": "={{$parameter.handle}}"
              },
              "url": "v1/threads/profile",
              "method": "GET"
            }
          }
        },
        {
          "name": "Get Threads User Posts",
          "value": "getThreadsUserPosts",
          "action": "Get threads user posts",
          "routing": {
            "request": {
              "qs": {
                "trim": true,
                "handle": "={{$parameter.handle}}"
              },
              "url": "v1/threads/user/posts",
              "method": "GET"
            }
          }
        },
        {
          "name": "Get Threads Post",
          "value": "getThreadsPost",
          "action": "Get threads post",
          "routing": {
            "request": {
              "qs": {
                "url": "={{$parameter.url}}",
                "trim": true
              },
              "url": "v1/threads/post",
              "method": "GET"
            }
          }
        },
        {
          "name": "Search Threads",
          "value": "searchThreads",
          "action": "Search threads",
          "routing": {
            "request": {
              "qs": {
                "trim": true,
                "query": "={{$parameter.query}}"
              },
              "url": "v1/threads/search",
              "method": "GET"
            }
          }
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "threads"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getTruthSocialProfile",
      "options": [
        {
          "name": "Get TruthSocial Profile",
          "value": "getTruthSocialProfile",
          "action": "Get truth social profile",
          "routing": {
            "request": {
              "qs": {
                "handle": "={{$parameter.handle}}"
              },
              "url": "v1/truthsocial/profile",
              "method": "GET"
            }
          },
          "description": "Get truth social profile"
        },
        {
          "name": "Get TruthSocial User Posts",
          "value": "getTruthSocialUserPosts",
          "action": "Get truth social user posts",
          "routing": {
            "request": {
              "qs": {
                "trim": true,
                "handle": "={{$parameter.handle}}"
              },
              "url": "v1/truthsocial/user/posts",
              "method": "GET"
            }
          },
          "description": "Get truth social user posts"
        },
        {
          "name": "Get TruthSocial Post",
          "value": "getTruthSocialPost",
          "action": "Get the details of a truth social post",
          "routing": {
            "request": {
              "qs": {
                "url": "={{$parameter.url}}"
              },
              "url": "v1/truthsocial/post",
              "method": "GET"
            }
          },
          "description": "Get the details of a truth social post"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "truthsocial"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "searchPinterest",
      "options": [
        {
          "name": "Search Pinterest",
          "value": "searchPinterest",
          "action": "Search pinterest",
          "routing": {
            "send": {
              "paginate": true
            },
            "request": {
              "qs": {
                "trim": true,
                "query": "={{$parameter.query}}"
              },
              "url": "v1/pinterest/search",
              "method": "GET"
            },
            "operations": {}
          }
        },
        {
          "name": "Get Pinterest Pin",
          "value": "getPinterestPin",
          "action": "Get pinterest pin",
          "routing": {
            "request": {
              "qs": {
                "url": "={{$parameter.url}}",
                "trim": true
              },
              "url": "v1/pinterest/pin",
              "method": "GET"
            }
          }
        },
        {
          "name": "Get Pinterest User Boards",
          "value": "getPinterestUserBoards",
          "action": "Get a user s boards",
          "routing": {
            "request": {
              "qs": {
                "trim": true,
                "handle": "={{$parameter.handle}}"
              },
              "url": "v1/pinterest/user/boards",
              "method": "GET"
            }
          },
          "description": "Get a user's boards"
        },
        {
          "name": "Get Pinterest Board Pins",
          "value": "getPinterestBoardPins",
          "action": "Get a board s pins",
          "routing": {
            "send": {
              "paginate": true
            },
            "request": {
              "qs": {
                "url": "={{$parameter.url}}",
                "trim": true
              },
              "url": "v1/pinterest/board",
              "method": "GET"
            },
            "operations": {}
          },
          "description": "Get a board's pins"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "pinterest"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "searchGoogle",
      "options": [
        {
          "name": "Search Google",
          "value": "searchGoogle",
          "action": "Search google",
          "routing": {
            "request": {
              "qs": {
                "query": "={{$parameter.query}}"
              },
              "url": "v1/google/search",
              "method": "GET"
            }
          }
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "googleSearch"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get Profile",
      "value": "getInstagramProfile",
      "action": "Get instagram profile",
      "routing": {
        "request": {
          "qs": {
            "trim": true,
            "handle": "={{$parameter.handle}}"
          },
          "url": "v1/instagram/profile",
          "method": "GET"
        }
      },
      "description": "Get an Instagram profile"
    },
    {
      "name": "Get User's Posts",
      "value": "getInstagramUserPosts",
      "action": "Get an instagram user s posts",
      "routing": {
        "send": {
          "paginate": true
        },
        "request": {
          "qs": {
            "trim": true,
            "handle": "={{$parameter.handle}}"
          },
          "url": "v2/instagram/user/posts",
          "method": "GET"
        },
        "operations": {}
      },
      "description": "Get an Instagram user's posts"
    },
    {
      "name": "Get Post",
      "value": "getInstagramPost",
      "action": "Get an instagram post",
      "routing": {
        "request": {
          "qs": {
            "url": "={{$parameter.url}}",
            "trim": true
          },
          "url": "v1/instagram/post",
          "method": "GET"
        }
      },
      "description": "Get an Instagram post or reel"
    },
    {
      "name": "Get Post Transcript",
      "value": "getInstagramPostTranscript",
      "action": "Get an instagram post transcript",
      "routing": {
        "output": {
          "postReceive": [
            null
          ]
        },
        "request": {
          "qs": {
            "url": "={{$parameter.url}}"
          },
          "url": "v2/instagram/media/transcript",
          "method": "GET"
        }
      },
      "description": "Get an Instagram post transcript"
    },
    {
      "name": "Get User's Reels",
      "value": "getInstagramUserReels",
      "action": "Get an instagram user s reels",
      "routing": {
        "send": {
          "paginate": true
        },
        "request": {
          "qs": {
            "trim": true,
            "handle": "={{$parameter.handle}}"
          },
          "url": "v1/instagram/user/reels",
          "method": "GET"
        },
        "operations": {}
      },
      "description": "Get an Instagram user's reels"
    },
    {
      "name": "Get User's Story Highlights",
      "value": "getInstagramUserStoryHighlights",
      "action": "Get an instagram user s story highlights",
      "routing": {
        "request": {
          "qs": {
            "handle": "={{$parameter.handle}}"
          },
          "url": "v1/instagram/user/highlights",
          "method": "GET"
        }
      },
      "description": "Get an Instagram user's story highlights"
    },
    {
      "name": "Get Profile",
      "value": "getTikTokProfile",
      "action": "Get tik tok profile",
      "routing": {
        "request": {
          "qs": {
            "handle": "={{$parameter.handle}}"
          },
          "url": "v1/tiktok/profile",
          "method": "GET"
        }
      },
      "description": "Get a TikTok profile"
    },
    {
      "name": "Get Profile's Videos",
      "value": "getTikTokProfileVideos",
      "action": "Get a tik tok profile s videos",
      "routing": {
        "send": {
          "paginate": true
        },
        "request": {
          "qs": {
            "trim": true,
            "handle": "={{$parameter.handle}}"
          },
          "url": "v3/tiktok/profile/videos",
          "method": "GET"
        },
        "operations": {}
      },
      "description": "Get a TikTok profile's videos"
    },
    {
      "name": "Get TikTok Video",
      "value": "getTikTokVideo",
      "action": "Get a tik tok video",
      "routing": {
        "request": {
          "qs": {
            "url": "={{$parameter.url}}",
            "trim": true
          },
          "url": "v2/tiktok/video",
          "method": "GET"
        }
      },
      "description": "Get a TikTok video"
    },
    {
      "name": "Get TikTok Video Transcript",
      "value": "getTikTokVideoTranscript",
      "action": "Get a tik tok video transcript",
      "routing": {
        "request": {
          "qs": {
            "url": "={{$parameter.url}}"
          },
          "url": "v1/tiktok/video/transcript",
          "method": "GET"
        }
      },
      "description": "Get a TikTok video transcript"
    },
    {
      "name": "Get TikTok Video Comments",
      "value": "getTikTokVideoComments",
      "action": "Get a tik tok video comments",
      "routing": {
        "send": {
          "paginate": true
        },
        "request": {
          "qs": {
            "url": "={{$parameter.url}}",
            "trim": true
          },
          "url": "v1/tiktok/video/comments",
          "method": "GET"
        },
        "operations": {}
      },
      "description": "Get a TikTok video comments"
    },
    {
      "name": "Get TikTok Following",
      "value": "getTikTokFollowing",
      "action": "Get a tik tok following",
      "routing": {
        "send": {
          "paginate": true
        },
        "request": {
          "qs": {
            "trim": true,
            "handle": "={{$parameter.handle}}"
          },
          "url": "v1/tiktok/user/following",
          "method": "GET"
        },
        "operations": {}
      },
      "description": "Get a TikTok following"
    },
    {
      "name": "Get TikTok Followers",
      "value": "getTikTokFollowers",
      "action": "Get a tik tok followers",
      "routing": {
        "send": {
          "paginate": true
        },
        "request": {
          "qs": {
            "trim": true,
            "handle": "={{$parameter.handle}}"
          },
          "url": "v1/tiktok/user/followers",
          "method": "GET"
        },
        "operations": {}
      },
      "description": "Get a TikTok followers"
    },
    {
      "name": "Search TikTok Users",
      "value": "searchTikTokUsers",
      "action": "Search tik tok users",
      "routing": {
        "send": {
          "paginate": true
        },
        "request": {
          "qs": {
            "trim": true,
            "query": "={{$parameter.query}}"
          },
          "url": "v1/tiktok/search/users",
          "method": "GET"
        },
        "operations": {}
      }
    },
    {
      "name": "Search TikTok's by Hashtag",
      "value": "searchTikTokByHashtag",
      "action": "Search tik tok by hashtag",
      "routing": {
        "send": {
          "paginate": true
        },
        "request": {
          "qs": {
            "trim": true,
            "hashtag": "={{$parameter.hashtag}}"
          },
          "url": "v1/tiktok/search/hashtag",
          "method": "GET"
        },
        "operations": {}
      },
      "description": "Search TikTok by hashtag"
    },
    {
      "name": "Search TikTok's by Keyword",
      "value": "searchTikTokByKeyword",
      "action": "Search tik tok by keyword",
      "routing": {
        "send": {
          "paginate": true
        },
        "request": {
          "qs": {
            "trim": true,
            "query": "={{$parameter.query}}"
          },
          "url": "v1/tiktok/search/keyword",
          "method": "GET"
        },
        "operations": {}
      },
      "description": "Search TikTok by keyword"
    },
    {
      "name": "Get YouTube Channel Details",
      "value": "getYouTubeChannelDetails",
      "action": "Get a you tube channel details",
      "routing": {
        "request": {
          "qs": {
            "handle": "={{$parameter.handle}}",
            "channelId": "={{$parameter.channelId}}"
          },
          "url": "v1/youtube/channel",
          "method": "GET"
        }
      },
      "description": "Get a YouTube channel details"
    },
    {
      "name": "Get YouTube Channel Videos",
      "value": "getYouTubeChannelVideos",
      "action": "Get a you tube channel videos",
      "routing": {
        "send": {
          "paginate": true
        },
        "request": {
          "qs": {
            "sort": "={{$parameter.additionalFields.sort}}",
            "handle": "={{$parameter.handle}}",
            "channelId": "={{$parameter.channelId}}"
          },
          "url": "v1/youtube/channel-videos",
          "method": "GET"
        },
        "operations": {}
      },
      "description": "Get a YouTube channel videos"
    },
    {
      "name": "Get YouTube Channel Shorts",
      "value": "getYouTubeChannelShorts",
      "action": "Get a you tube channel shorts",
      "routing": {
        "send": {
          "paginate": true
        },
        "request": {
          "qs": {
            "sort": "={{$parameter.additionalFields.sort}}",
            "handle": "={{$parameter.handle}}",
            "channelId": "={{$parameter.channelId}}"
          },
          "url": "v1/youtube/channel/shorts",
          "method": "GET"
        },
        "operations": {}
      },
      "description": "Get a YouTube channel shorts"
    },
    {
      "name": "Get YouTube Video Details",
      "value": "getYouTubeVideoDetails",
      "action": "Get a you tube video details",
      "routing": {
        "request": {
          "qs": {
            "url": "={{$parameter.url}}"
          },
          "url": "v1/youtube/video",
          "method": "GET"
        }
      },
      "description": "Get a YouTube video details"
    },
    {
      "name": "Get YouTube Video Transcript",
      "value": "getYouTubeVideoTranscript",
      "action": "Get a you tube video transcript",
      "routing": {
        "request": {
          "qs": {
            "url": "={{$parameter.url}}"
          },
          "url": "v1/youtube/video/transcript",
          "method": "GET"
        }
      },
      "description": "Get a YouTube video transcript"
    },
    {
      "name": "Search YouTube Videos by Keyword",
      "value": "searchYouTubeVideosByKeyword",
      "action": "Search you tube videos",
      "routing": {
        "send": {
          "paginate": true
        },
        "request": {
          "qs": {
            "query": "={{$parameter.query}}"
          },
          "url": "v1/youtube/search",
          "method": "GET"
        },
        "operations": {}
      },
      "description": "Search YouTube videos"
    },
    {
      "name": "Search YouTube Videos by Hashtag",
      "value": "searchYouTubeVideosByHashtag",
      "action": "Search you tube videos by hashtag",
      "routing": {
        "send": {
          "paginate": true
        },
        "request": {
          "qs": {
            "hashtag": "={{$parameter.hashtag}}"
          },
          "url": "v1/youtube/search/hashtag",
          "method": "GET"
        },
        "operations": {}
      }
    },
    {
      "name": "Get Comments",
      "value": "getComments",
      "action": "Get comments",
      "routing": {
        "send": {
          "paginate": true
        },
        "request": {
          "qs": {
            "url": "={{$parameter.url}}"
          },
          "url": "v1/youtube/video/comments",
          "method": "GET"
        },
        "operations": {}
      }
    },
    {
      "name": "Get LinkedIn Profile",
      "value": "getLinkedinProfile",
      "action": "Get a linked in profile",
      "routing": {
        "request": {
          "qs": {
            "url": "={{$parameter.url}}"
          },
          "url": "v1/linkedin/profile",
          "method": "GET"
        }
      },
      "description": "Get a LinkedIn profile"
    },
    {
      "name": "Get LinkedIn Company Page",
      "value": "getLinkedinCompanyPage",
      "action": "Get a linked in company page",
      "routing": {
        "request": {
          "qs": {
            "url": "={{$parameter.url}}"
          },
          "url": "v1/linkedin/company",
          "method": "GET"
        }
      },
      "description": "Get a LinkedIn company page"
    },
    {
      "name": "Get LinkedIn Post",
      "value": "getLinkedinPost",
      "action": "Get a linked in post",
      "routing": {
        "request": {
          "qs": {
            "url": "={{$parameter.url}}"
          },
          "url": "v1/linkedin/post",
          "method": "GET"
        }
      },
      "description": "Get a LinkedIn post"
    },
    {
      "name": "Get Facebook Profile",
      "value": "getFacebookProfile",
      "action": "Get a facebook profile",
      "routing": {
        "request": {
          "qs": {
            "url": "={{$parameter.url}}"
          },
          "url": "v1/facebook/profile",
          "method": "GET"
        }
      },
      "description": "Get a Facebook profile"
    },
    {
      "name": "Get Facebook Profile Posts",
      "value": "getFacebookProfilePosts",
      "action": "Get a facebook profile posts",
      "routing": {
        "send": {
          "paginate": true
        },
        "request": {
          "qs": {
            "url": "={{$parameter.url}}"
          },
          "url": "v1/facebook/profile/posts",
          "method": "GET"
        },
        "operations": {}
      },
      "description": "Get a Facebook profile posts"
    },
    {
      "name": "Get Facebook Group Posts",
      "value": "getFacebookGroupPosts",
      "action": "Get a facebook group posts",
      "routing": {
        "send": {
          "paginate": true
        },
        "request": {
          "qs": {
            "url": "={{$parameter.url}}"
          },
          "url": "v1/facebook/group/posts",
          "method": "GET"
        },
        "operations": {}
      },
      "description": "Get a Facebook group posts"
    },
    {
      "name": "Get Reel",
      "value": "getReel",
      "action": "Get a facebook reel",
      "routing": {
        "request": {
          "qs": {
            "url": "={{$parameter.url}}"
          },
          "url": "v1/facebook/user/reel",
          "method": "GET"
        }
      },
      "description": "Get a Facebook reel"
    },
    {
      "name": "Get Facebook Post",
      "value": "getFacebookPost",
      "action": "Get a facebook post",
      "routing": {
        "request": {
          "qs": {
            "url": "={{$parameter.url}}"
          },
          "url": "v1/facebook/user/post",
          "method": "GET"
        }
      },
      "description": "Get a Facebook post"
    },
    {
      "name": "Get Transcript",
      "value": "getTranscript",
      "action": "Get a facebook transcript",
      "routing": {
        "request": {
          "qs": {
            "url": "={{$parameter.url}}"
          },
          "url": "v1/facebook/post/transcript",
          "method": "GET"
        }
      },
      "description": "Get the transcript of a post or reel"
    },
    {
      "name": "Get Ad",
      "value": "getFacebookLibraryAd",
      "action": "Get a facebook ad library ad",
      "routing": {
        "request": {
          "qs": {
            "id": "={{$parameter.id}}",
            "trim": true
          },
          "url": "v1/facebook/adLibrary/ad",
          "method": "GET"
        }
      },
      "description": "Get a Facebook ad library ad"
    },
    {
      "name": "Search Ads",
      "value": "searchAds",
      "action": "Search for ads",
      "routing": {
        "send": {
          "paginate": true
        },
        "request": {
          "qs": {
            "trim": true,
            "query": "={{$parameter.query}}",
            "status": "={{$parameter.additionalFields.status}}",
            "ad_type": "={{$parameter.additionalFields.ad_type}}",
            "country": "={{$parameter.additionalFields.country}}",
            "end_date": "={{$parameter.additionalFields.end_date}}",
            "media_type": "={{$parameter.additionalFields.media_type}}",
            "start_date": "={{$parameter.additionalFields.start_date}}",
            "search_type": "={{$parameter.additionalFields.search_type}}"
          },
          "url": "v1/facebook/adLibrary/search/ads",
          "method": "GET"
        },
        "operations": {}
      },
      "description": "Search for ads"
    },
    {
      "name": "Get A Company's Ads",
      "value": "getCompanyAds",
      "action": "Get a company s ads",
      "routing": {
        "send": {
          "paginate": true
        },
        "request": {
          "qs": {
            "trim": true,
            "pageId": "={{$parameter.pageId}}",
            "status": "={{$parameter.additionalFields.status}}",
            "country": "={{$parameter.additionalFields.country}}",
            "media_type": "={{$parameter.additionalFields.media_type}}"
          },
          "url": "v1/facebook/adLibrary/company/ads",
          "method": "GET"
        },
        "operations": {}
      }
    },
    {
      "name": "Search Companies",
      "value": "searchCompanies",
      "action": "Search for companies",
      "routing": {
        "request": {
          "qs": {
            "trim": true,
            "query": "={{$parameter.query}}"
          },
          "url": "v1/facebook/adLibrary/search/companies",
          "method": "GET"
        }
      },
      "description": "Search for companies"
    },
    {
      "name": "Get A Company's Google Ads",
      "value": "getCompanyGoogleAds",
      "action": "Get a company s google ads",
      "routing": {
        "send": {
          "paginate": true
        },
        "request": {
          "qs": {
            "topic": "={{$parameter.additionalFields.topic}}",
            "domain": "={{$parameter.domain}}",
            "region": "={{$parameter.additionalFields.region}}",
            "advertiser_id": "={{$parameter.additionalFields.advertiser_id}}"
          },
          "url": "v1/google/company/ads",
          "method": "GET"
        },
        "operations": {}
      }
    },
    {
      "name": "Get Ad Details",
      "value": "getAdDetails",
      "action": "Get ad details",
      "routing": {
        "request": {
          "qs": {
            "url": "={{$parameter.url}}"
          },
          "url": "v1/google/ad",
          "method": "GET"
        }
      },
      "description": "Get the details of a specific Google ad"
    },
    {
      "name": "Search Ads",
      "value": "searchLinkedinAds",
      "action": "Search for ads",
      "routing": {
        "send": {
          "paginate": true
        },
        "request": {
          "qs": {
            "company": "={{$parameter.additionalFields.company}}",
            "endDate": "={{$parameter.additionalFields.endDate}}",
            "keyword": "={{$parameter.keyword}}",
            "countries": "={{$parameter.additionalFields.countries}}",
            "startDate": "={{$parameter.additionalFields.startDate}}"
          },
          "url": "v1/linkedin/ads/search",
          "method": "GET"
        },
        "operations": {}
      },
      "description": "Search the LinkedIn Ad Library for ads"
    },
    {
      "name": "Get Ad Details",
      "value": "getLinkedinAdDetails",
      "action": "Get ad details",
      "routing": {
        "request": {
          "qs": {
            "url": "={{$parameter.url}}"
          },
          "url": "v1/linkedin/ad",
          "method": "GET"
        }
      },
      "description": "Get the details of a specific LinkedIn ad"
    },
    {
      "name": "Get Twitter Profile",
      "value": "getTwitterProfile",
      "action": "Get a twitter profile",
      "routing": {
        "request": {
          "qs": {
            "handle": "={{$parameter.handle}}"
          },
          "url": "v1/twitter/profile",
          "method": "GET"
        }
      },
      "description": "Get a Twitter profile"
    },
    {
      "name": "Get User Tweets",
      "value": "getUserTweets",
      "action": "Get a user s tweets",
      "routing": {
        "request": {
          "qs": {
            "trim": true,
            "handle": "={{$parameter.handle}}"
          },
          "url": "v1/twitter/user-tweets",
          "method": "GET"
        }
      },
      "description": "Get a user's tweets. This won't be their latest tweets, but will be 100 of their most popular tweets."
    },
    {
      "name": "Get Tweet Details",
      "value": "getTweetDetails",
      "action": "Get a tweet s details",
      "routing": {
        "request": {
          "qs": {
            "url": "={{$parameter.url}}",
            "trim": true
          },
          "url": "v1/twitter/tweet",
          "method": "GET"
        }
      },
      "description": "Get a tweet's details"
    },
    {
      "name": "Get Subreddit Posts",
      "value": "getSubredditPosts",
      "action": "Get a subreddit s posts",
      "routing": {
        "send": {
          "paginate": true
        },
        "request": {
          "qs": {
            "sort": "={{$parameter.additionalFields.sort}}",
            "trim": true,
            "subreddit": "={{$parameter.subreddit}}",
            "timeframe": "={{$parameter.additionalFields.timeframe}}"
          },
          "url": "v1/reddit/subreddit",
          "method": "GET"
        },
        "operations": {}
      },
      "description": "Get a subreddit's posts"
    },
    {
      "name": "Get Post Comments",
      "value": "getRedditPostComments",
      "action": "Get a post s comments",
      "routing": {
        "send": {
          "paginate": true
        },
        "request": {
          "qs": {
            "url": "={{$parameter.url}}",
            "trim": true
          },
          "url": "v1/reddit/post/comments",
          "method": "GET"
        },
        "operations": {}
      },
      "description": "Get a post's comments"
    },
    {
      "name": "Search Reddit",
      "value": "searchReddit",
      "action": "Search reddit",
      "routing": {
        "send": {
          "paginate": true
        },
        "request": {
          "qs": {
            "sort": "={{$parameter.additionalFields.sort}}",
            "trim": true,
            "query": "={{$parameter.query}}",
            "timeframe": "={{$parameter.additionalFields.timeframe}}"
          },
          "url": "v1/reddit/search",
          "method": "GET"
        },
        "operations": {}
      },
      "description": "Search Reddit for posts"
    },
    {
      "name": "Get Threads Profile",
      "value": "getThreadsProfile",
      "action": "Get threads profile",
      "routing": {
        "request": {
          "qs": {
            "handle": "={{$parameter.handle}}"
          },
          "url": "v1/threads/profile",
          "method": "GET"
        }
      }
    },
    {
      "name": "Get Threads User Posts",
      "value": "getThreadsUserPosts",
      "action": "Get threads user posts",
      "routing": {
        "request": {
          "qs": {
            "trim": true,
            "handle": "={{$parameter.handle}}"
          },
          "url": "v1/threads/user/posts",
          "method": "GET"
        }
      }
    },
    {
      "name": "Get Threads Post",
      "value": "getThreadsPost",
      "action": "Get threads post",
      "routing": {
        "request": {
          "qs": {
            "url": "={{$parameter.url}}",
            "trim": true
          },
          "url": "v1/threads/post",
          "method": "GET"
        }
      }
    },
    {
      "name": "Search Threads",
      "value": "searchThreads",
      "action": "Search threads",
      "routing": {
        "request": {
          "qs": {
            "trim": true,
            "query": "={{$parameter.query}}"
          },
          "url": "v1/threads/search",
          "method": "GET"
        }
      }
    },
    {
      "name": "Get TruthSocial Profile",
      "value": "getTruthSocialProfile",
      "action": "Get truth social profile",
      "routing": {
        "request": {
          "qs": {
            "handle": "={{$parameter.handle}}"
          },
          "url": "v1/truthsocial/profile",
          "method": "GET"
        }
      },
      "description": "Get truth social profile"
    },
    {
      "name": "Get TruthSocial User Posts",
      "value": "getTruthSocialUserPosts",
      "action": "Get truth social user posts",
      "routing": {
        "request": {
          "qs": {
            "trim": true,
            "handle": "={{$parameter.handle}}"
          },
          "url": "v1/truthsocial/user/posts",
          "method": "GET"
        }
      },
      "description": "Get truth social user posts"
    },
    {
      "name": "Get TruthSocial Post",
      "value": "getTruthSocialPost",
      "action": "Get the details of a truth social post",
      "routing": {
        "request": {
          "qs": {
            "url": "={{$parameter.url}}"
          },
          "url": "v1/truthsocial/post",
          "method": "GET"
        }
      },
      "description": "Get the details of a truth social post"
    },
    {
      "name": "Search Pinterest",
      "value": "searchPinterest",
      "action": "Search pinterest",
      "routing": {
        "send": {
          "paginate": true
        },
        "request": {
          "qs": {
            "trim": true,
            "query": "={{$parameter.query}}"
          },
          "url": "v1/pinterest/search",
          "method": "GET"
        },
        "operations": {}
      }
    },
    {
      "name": "Get Pinterest Pin",
      "value": "getPinterestPin",
      "action": "Get pinterest pin",
      "routing": {
        "request": {
          "qs": {
            "url": "={{$parameter.url}}",
            "trim": true
          },
          "url": "v1/pinterest/pin",
          "method": "GET"
        }
      }
    },
    {
      "name": "Get Pinterest User Boards",
      "value": "getPinterestUserBoards",
      "action": "Get a user s boards",
      "routing": {
        "request": {
          "qs": {
            "trim": true,
            "handle": "={{$parameter.handle}}"
          },
          "url": "v1/pinterest/user/boards",
          "method": "GET"
        }
      },
      "description": "Get a user's boards"
    },
    {
      "name": "Get Pinterest Board Pins",
      "value": "getPinterestBoardPins",
      "action": "Get a board s pins",
      "routing": {
        "send": {
          "paginate": true
        },
        "request": {
          "qs": {
            "url": "={{$parameter.url}}",
            "trim": true
          },
          "url": "v1/pinterest/board",
          "method": "GET"
        },
        "operations": {}
      },
      "description": "Get a board's pins"
    },
    {
      "name": "Search Google",
      "value": "searchGoogle",
      "action": "Search google",
      "routing": {
        "request": {
          "qs": {
            "query": "={{$parameter.query}}"
          },
          "url": "v1/google/search",
          "method": "GET"
        }
      }
    }
  ]

npm_readme:
  # n8n-nodes-scrape-creators

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

  This is an n8n community node. It lets you get real time social media data with [ScrapeCreators](https://scrapecreators.com/)

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

  ## How to install

  ### Community Nodes

  For n8n version 0.187 and later, you can install this node through the Community Nodes panel:

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

  ## Credentials

  To use this node, you will need to authenticate with the Scrape Creators API.

  1. Sign up for a [Scrape Creators account](https://app.scrapecreators.com/)
  2. Copy API Token

  3. Create new credential in n8n

     - Use the Scrape Creators node
     - Under Credential to connect with, click Create New Credential
     - Paste API Key

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [Scrape Creators Documentation](https://docs.scrapecreators.com/)
  - [Sign up for a Scrape Creators API key](https://app.scrapecreators.com/)
  - Email me if you have any problems: adrian@thewebscrapingguy.com

  ## Version history

  0.1.5 - Initial Release

ai_documentation_summary:
  {"purpose":"The Scrape Creators node retrieves real-time social media data using the Scrape Creators API, enabling users to integrate live social media insights into n8n workflows.","capabilities":["Fetch real-time social media data","Authenticate via API key","Connect to Scrape Creators platform"],"authentication":"API key required (obtained from Scrape Creators account)","commonUseCases":["Monitor social media activity in real time","Track brand mentions or user engagement","Gather competitor social media insights"],"limitations":[],"relatedNodes":["Social media monitoring nodes","Real-time data ingestion nodes"]}


node_type: @klardaten/n8n-nodes-datevconnect.masterData
package_name: @klardaten/n8n-nodes-datevconnect
display_name: Klardaten DATEVconnect: Master Data
description: Interact with master data resources
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-01-07 20:08:15
author_name: johannespfeiffer
author_github_url: https://github.com/Klardaten/n8n-nodes-datevconnect.git
npm_package_name: @klardaten/n8n-nodes-datevconnect
npm_version: 1.0.7
community_fetched_at: 2026-01-07T20:08:15.963Z
ai_summary_generated_at: 2026-01-08 10:45:32
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "client",
      "options": [
        {
          "name": "Addressee",
          "value": "addressee"
        },
        {
          "name": "Area of Responsibility",
          "value": "areaOfResponsibility"
        },
        {
          "name": "Bank",
          "value": "bank"
        },
        {
          "name": "Client",
          "value": "client"
        },
        {
          "name": "Client Category Type",
          "value": "clientCategoryType"
        },
        {
          "name": "Client Group Type",
          "value": "clientGroupType"
        },
        {
          "name": "Corporate Structure",
          "value": "corporateStructure"
        },
        {
          "name": "Country Code",
          "value": "countryCode"
        },
        {
          "name": "Employee",
          "value": "employee"
        },
        {
          "name": "Legal Form",
          "value": "legalForm"
        },
        {
          "name": "Relationship",
          "value": "relationship"
        },
        {
          "name": "Tax Authority",
          "value": "taxAuthority"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a client",
          "description": "Create a new client"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a client",
          "description": "Retrieve a specific client"
        },
        {
          "name": "Get Categories",
          "value": "getClientCategories",
          "action": "Get client categories",
          "description": "Retrieve client categories"
        },
        {
          "name": "Get Deletion Log",
          "value": "getDeletionLog",
          "action": "Get client deletion log",
          "description": "Retrieve deleted clients"
        },
        {
          "name": "Get Groups",
          "value": "getClientGroups",
          "action": "Get client groups",
          "description": "Retrieve client groups"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many clients",
          "description": "Retrieve a list of clients"
        },
        {
          "name": "Get Next Free Number",
          "value": "getNextFreeNumber",
          "action": "Get next free client number",
          "description": "Retrieve the next available client number"
        },
        {
          "name": "Get Responsibilities",
          "value": "getResponsibilities",
          "action": "Get client responsibilities",
          "description": "Retrieve responsibilities for a client"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a client",
          "description": "Update a specific client"
        },
        {
          "name": "Update Categories",
          "value": "updateClientCategories",
          "action": "Update client categories",
          "description": "Replace a client's category assignments"
        },
        {
          "name": "Update Groups",
          "value": "updateClientGroups",
          "action": "Update client groups",
          "description": "Replace a client's group assignments"
        },
        {
          "name": "Update Responsibilities",
          "value": "updateResponsibilities",
          "action": "Update client responsibilities",
          "description": "Replace a client's responsibilities"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "client"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many tax authorities",
          "description": "Retrieve a list of tax authorities"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "taxAuthority"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many relationships",
          "description": "Retrieve a list of relationships"
        },
        {
          "name": "Get Types",
          "value": "getTypes",
          "action": "Get relationship types",
          "description": "Retrieve a list of relationship types"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "relationship"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many legal forms",
          "description": "Retrieve a list of legal forms"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "legalForm"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many corporate structures",
          "description": "Retrieve a list of corporate structures"
        },
        {
          "name": "Get Organization",
          "value": "get",
          "action": "Get an organization",
          "description": "Retrieve a specific organization"
        },
        {
          "name": "Get Establishment",
          "value": "getEstablishment",
          "action": "Get an establishment",
          "description": "Retrieve a specific establishment"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "corporateStructure"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many employees",
          "description": "Retrieve a list of employees"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get an employee",
          "description": "Retrieve a specific employee"
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create an employee",
          "description": "Create a new employee"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update an employee",
          "description": "Update a specific employee"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "employee"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many countries",
          "description": "Retrieve a list of countries"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "countryCode"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many client group types",
          "description": "Retrieve a list of client group types"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a client group type",
          "description": "Retrieve a specific client group type"
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create a client group type",
          "description": "Create a new client group type"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a client group type",
          "description": "Update a specific client group type"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "clientGroupType"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many client category types",
          "description": "Retrieve a list of client category types"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a client category type",
          "description": "Retrieve a specific client category type"
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create a client category type",
          "description": "Create a new client category type"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a client category type",
          "description": "Update a specific client category type"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "clientCategoryType"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many banks",
          "description": "Retrieve a list of banks"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "bank"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many areas of responsibility",
          "description": "Retrieve a list of areas of responsibility"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "areaOfResponsibility"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create an addressee",
          "description": "Create a new addressee"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get an addressee",
          "description": "Retrieve a specific addressee"
        },
        {
          "name": "Get Deletion Log",
          "value": "getDeletionLog",
          "action": "Get addressee deletion log",
          "description": "Retrieve a list of deleted addressees"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many addressees",
          "description": "Retrieve a list of addressees"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update an addressee",
          "description": "Update a specific addressee"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "addressee"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create",
      "value": "create",
      "action": "Create a client",
      "description": "Create a new client"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a client",
      "description": "Retrieve a specific client"
    },
    {
      "name": "Get Categories",
      "value": "getClientCategories",
      "action": "Get client categories",
      "description": "Retrieve client categories"
    },
    {
      "name": "Get Deletion Log",
      "value": "getDeletionLog",
      "action": "Get client deletion log",
      "description": "Retrieve deleted clients"
    },
    {
      "name": "Get Groups",
      "value": "getClientGroups",
      "action": "Get client groups",
      "description": "Retrieve client groups"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many clients",
      "description": "Retrieve a list of clients"
    },
    {
      "name": "Get Next Free Number",
      "value": "getNextFreeNumber",
      "action": "Get next free client number",
      "description": "Retrieve the next available client number"
    },
    {
      "name": "Get Responsibilities",
      "value": "getResponsibilities",
      "action": "Get client responsibilities",
      "description": "Retrieve responsibilities for a client"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a client",
      "description": "Update a specific client"
    },
    {
      "name": "Update Categories",
      "value": "updateClientCategories",
      "action": "Update client categories",
      "description": "Replace a client's category assignments"
    },
    {
      "name": "Update Groups",
      "value": "updateClientGroups",
      "action": "Update client groups",
      "description": "Replace a client's group assignments"
    },
    {
      "name": "Update Responsibilities",
      "value": "updateResponsibilities",
      "action": "Update client responsibilities",
      "description": "Replace a client's responsibilities"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many tax authorities",
      "description": "Retrieve a list of tax authorities"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many relationships",
      "description": "Retrieve a list of relationships"
    },
    {
      "name": "Get Types",
      "value": "getTypes",
      "action": "Get relationship types",
      "description": "Retrieve a list of relationship types"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many legal forms",
      "description": "Retrieve a list of legal forms"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many corporate structures",
      "description": "Retrieve a list of corporate structures"
    },
    {
      "name": "Get Organization",
      "value": "get",
      "action": "Get an organization",
      "description": "Retrieve a specific organization"
    },
    {
      "name": "Get Establishment",
      "value": "getEstablishment",
      "action": "Get an establishment",
      "description": "Retrieve a specific establishment"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many employees",
      "description": "Retrieve a list of employees"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get an employee",
      "description": "Retrieve a specific employee"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create an employee",
      "description": "Create a new employee"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update an employee",
      "description": "Update a specific employee"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many countries",
      "description": "Retrieve a list of countries"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many client group types",
      "description": "Retrieve a list of client group types"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a client group type",
      "description": "Retrieve a specific client group type"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a client group type",
      "description": "Create a new client group type"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a client group type",
      "description": "Update a specific client group type"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many client category types",
      "description": "Retrieve a list of client category types"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a client category type",
      "description": "Retrieve a specific client category type"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a client category type",
      "description": "Create a new client category type"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a client category type",
      "description": "Update a specific client category type"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many banks",
      "description": "Retrieve a list of banks"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many areas of responsibility",
      "description": "Retrieve a list of areas of responsibility"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create an addressee",
      "description": "Create a new addressee"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get an addressee",
      "description": "Retrieve a specific addressee"
    },
    {
      "name": "Get Deletion Log",
      "value": "getDeletionLog",
      "action": "Get addressee deletion log",
      "description": "Retrieve a list of deleted addressees"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many addressees",
      "description": "Retrieve a list of addressees"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update an addressee",
      "description": "Update a specific addressee"
    }
  ]

npm_readme:
  # n8n DATEVConnect

  This repository provides custom n8n nodes for integrating with the DATEVconnect APIs. It requires the [Klardaten DATEVconnect Gateway](https://klardaten.com/products/datevconnect-gateway) to be set up.

  ## Available Nodes

  | Node                           | Description                                                                                                             |
  | ------------------------------ | ----------------------------------------------------------------------------------------------------------------------- |
  | `Accounting`                   | Access DATEV Accounting API for clients, fiscal years, accounts receivable, account postings, and accounting sequences. |
  | `MasterData`                   | Fetches master data entities from DATEV using the configured credentials.                                               |
  | `Document Management`          | Access DATEV Document Management or DMS for documents, structure items, property templates.                             |
  | `Order Management`             | Read and manage orders, suborders, invoices, fees, and related employee data.                                           |
  | `Identity & Access Management` | Manage SCIM-based DATEV IAM resources such as service configuration, schemas, users, and groups.                        |

  Refer to the node descriptions inside the n8n editor for input parameters and output structure.

  ## Installation

  ### Through the n8n UI

  1. Navigate to **Settings → Community Nodes → Install** inside your n8n instance.
  2. Enter `@klardaten/n8n-nodes-datevconnect` as the package name.
  3. Confirm the warning prompt and restart n8n so the nodes are registered.

  ### Manual (filesystem) installation

  ```bash
  cd ~/.n8n
  npm install @klardaten/n8n-nodes-datevconnect
  ```

  Copy or symlink the contents of the installed `node_modules/@klardaten/n8n-nodes-datevconnect/dist/{nodes,credentials}` directories into your `~/.n8n/custom/` folder if you prefer the legacy custom-nodes workflow, then restart n8n.

  ## Development

  1. **Install dependencies**
     ```bash
     npm install
     ```
  2. **Build** (optional during development; n8n compiles on the fly)
     ```bash
     npm run dev
     ```

  ## Required Credentials

  You need a Klardaten account and an instance id (of the DATEV instance you want to access).

  - `email`
  - `password`
  - `clientInstanceId`

  ## Running Tests

  Use the npm test runner to execute the automated tests:

  ```bash
  npm test
  ```

  ## Usage in n8n

  1. Create a new workflow in n8n.
  2. Add the **Klardaten DATEVconnect: Master Data** or **Accounting** etc. node and choose the credential you configured.
  3. Select the desired operation (e.g., list client entries) and configure any filters.
  4. Execute the workflow or schedule it as part of a larger automation.

  All nodes authenticate using the stored credentials and interact with their respective DATEVconnect APIs.

  ## Additional Notes

  DATEV provides endpoint reference details under

  - [Accounting](https://developer.datev.de/en/product-detail/accounting/1.7.4/reference)
  - [Client Master Data](https://developer.datev.de/en/product-detail/client-master-data/1.7.0/reference).
  - [Document Management](https://developer.datev.de/en/product-detail/document-management/2.3.0/reference)
  - [Order Management](https://developer.datev.de/en/product-detail/order-management/1.4.7/reference)
  - [Identity & Access Management – User Administration](https://developer.datev.de/en/product-detail/identity-and-access-management-user-administration/1.1.2/reference)

ai_documentation_summary:
  {"purpose":"The Klardaten DATEVconnect: Master Data node retrieves master data entities from DATEVconnect using configured credentials, enabling integration with client, account, and other master data resources.","capabilities":["Fetch master data entities from DATEVconnect","Access client-related master data","Integrate with DATEV's master data APIs via configured credentials"],"authentication":"API authentication via stored credentials: email, password, and clientInstanceId","commonUseCases":["Retrieving client master data for business operations","Populating master data in n8n workflows for downstream processing","Syncing master data with ERP or CRM systems"],"limitations":[],"relatedNodes":["Klardaten DATEVconnect: Accounting","Klardaten DATEVconnect: Document Management","Klardaten DATEVconnect: Order Management","Klardaten DATEVconnect: Identity & Access Management"]}


node_type: n8n-nodes-scraping-dog.scrapingDog
package_name: n8n-nodes-scraping-dog
display_name: ScrapingDog
description: Get data from ScrapingDog API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-01-07 20:08:15
author_name: darshan_sd12
author_github_url: https://github.com/Darshan972/scrappingDog.git
npm_package_name: n8n-nodes-scraping-dog
npm_version: 0.4.2
community_fetched_at: 2026-01-07T20:08:15.963Z
ai_summary_generated_at: 2026-01-08 10:45:32
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "",
      "options": [
        {
          "name": "Scrape URL",
          "value": "scrapeUrl"
        },
        {
          "name": "Google Search",
          "value": "googleSearch"
        },
        {
          "name": "Google Images",
          "value": "googleImages"
        },
        {
          "name": "Google News",
          "value": "googleNews"
        },
        {
          "name": "Bing Search",
          "value": "bingSearch"
        },
        {
          "name": "Amazon Search",
          "value": "amazonSearch"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Scrape URL",
          "description": "Scrape a URL"
        }
      ],
      "routing": {
        "request": {
          "qs": {
            "url": "={{$parameter[\"url\"]}}",
            "wait": "={{$parameter[\"dynamic\"] === true && $parameter[\"wait\"] ? $parameter[\"wait\"] : undefined}}",
            "image": "={{$parameter[\"image\"] === true ? \"true\" : \"false\"}}",
            "api_key": "={{$credentials.apiKey}}",
            "country": "={{$parameter[\"premium\"] === true && $parameter[\"country\"] ? $parameter[\"country\"] : undefined}}",
            "dynamic": "={{$parameter[\"dynamic\"] === true ? \"true\" : \"false\"}}",
            "premium": "={{$parameter[\"premium\"] === true ? \"true\" : \"false\"}}",
            "ai_query": "={{$parameter[\"additionalFields\"] && $parameter[\"additionalFields\"][\"aiQuery\"] ? $parameter[\"additionalFields\"][\"aiQuery\"] : undefined}}",
            "markdown": "={{$parameter[\"markdown\"] === true ? \"true\" : \"false\"}}",
            "super_proxy": "={{$parameter[\"superProxy\"] === true ? \"true\" : \"false\"}}",
            "custom_headers": "={{$parameter[\"customHeaders\"] === true ? \"true\" : undefined}}",
            "session_number": "={{$parameter[\"sessionNumber\"] || undefined}}",
            "ai_extract_rules": "={{$parameter[\"additionalFields\"] && $parameter[\"additionalFields\"][\"aiExtractRules\"] ? $parameter[\"additionalFields\"][\"aiExtractRules\"] : undefined}}"
          },
          "url": "scrape",
          "method": "GET",
          "returnFullResponse": true
        },
        "returnFullResponse": true
      },
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "scrapeUrl"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "",
      "options": [
        {
          "name": "Search",
          "value": "search",
          "action": "Google search",
          "description": "Perform a Google Search"
        }
      ],
      "routing": {
        "request": {
          "qs": {
            "page": "={{$parameter[\"page\"]}}",
            "query": "={{$parameter[\"query\"]}}",
            "api_key": "={{$credentials.apiKey}}",
            "country": "={{$parameter[\"location\"]}}",
            "results": "={{$parameter[\"results\"]}}",
            "advance_search": "={{$parameter[\"advance\"]}}"
          },
          "url": "google",
          "method": "GET"
        }
      },
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "googleSearch"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "",
      "options": [
        {
          "name": "Search",
          "value": "search",
          "action": "Search Google Images",
          "description": "Search Google Images"
        }
      ],
      "routing": {
        "request": {
          "qs": {
            "tbs": "={{$parameter[\"timePeriod\"] || undefined}}",
            "imgsz": "={{$parameter[\"imageSize\"] || undefined}}",
            "query": "={{$parameter[\"query\"]}}",
            "api_key": "={{$credentials.apiKey}}",
            "country": "={{$parameter[\"country\"] || undefined}}",
            "results": "={{$parameter[\"results\"]}}",
            "language": "={{$parameter[\"language\"] || undefined}}",
            "licenses": "={{$parameter[\"usageRights\"] || undefined}}",
            "image_type": "={{$parameter[\"imageType\"] || undefined}}",
            "image_color": "={{$parameter[\"imageColor\"] || undefined}}",
            "safe_search": "={{$parameter[\"safeSearch\"] || undefined}}"
          },
          "url": "google_images",
          "method": "GET"
        }
      },
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "googleImages"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "",
      "options": [
        {
          "name": "Search",
          "value": "search",
          "action": "Search Google News",
          "description": "Search Google News"
        }
      ],
      "routing": {
        "request": {
          "qs": {
            "lr": "={{$parameter[\"additionalFields\"] && $parameter[\"additionalFields\"][\"lr\"] || undefined}}",
            "tbs": "={{$parameter[\"additionalFields\"] && $parameter[\"additionalFields\"][\"tbs\"] || undefined}}",
            "nfpr": "={{$parameter[\"additionalFields\"] && $parameter[\"additionalFields\"][\"nfpr\"] === true ? \"1\" : \"0\"}}",
            "page": "={{$parameter[\"additionalFields\"] && $parameter[\"additionalFields\"][\"page\"] || undefined}}",
            "safe": "={{$parameter[\"additionalFields\"] && $parameter[\"additionalFields\"][\"safe\"] || undefined}}",
            "uule": "={{$parameter[\"additionalFields\"] && $parameter[\"additionalFields\"][\"uule\"] || undefined}}",
            "query": "={{$parameter[\"query\"]}}",
            "domain": "={{$parameter[\"additionalFields\"] && $parameter[\"additionalFields\"][\"domain\"] || undefined}}",
            "api_key": "={{$credentials.apiKey}}",
            "country": "={{$parameter[\"additionalFields\"] && $parameter[\"additionalFields\"][\"country\"] === \"custom\" ? $parameter[\"additionalFields\"][\"customCountry\"] : $parameter[\"additionalFields\"][\"country\"] || undefined}}",
            "results": "={{$parameter[\"results\"]}}",
            "language": "={{$parameter[\"additionalFields\"] && $parameter[\"additionalFields\"][\"language\"] || undefined}}"
          },
          "url": "google_news",
          "method": "GET"
        }
      },
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "googleNews"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "",
      "options": [
        {
          "name": "Search",
          "value": "search",
          "action": "Bing search",
          "description": "Perform a Bing Search"
        }
      ],
      "routing": {
        "request": {
          "qs": {
            "page": "={{$parameter[\"page\"]}}",
            "query": "={{$parameter[\"query\"]}}",
            "api_key": "={{$credentials.apiKey}}",
            "country": "={{$parameter[\"country\"]}}",
            "filters": "={{$parameter[\"filters\"]}}",
            "results": "={{$parameter[\"results\"]}}"
          },
          "url": "bing/search",
          "method": "GET"
        }
      },
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "bingSearch"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "",
      "options": [
        {
          "name": "Search",
          "value": "search",
          "action": "Amazon search",
          "description": "Perform a Amazon Search"
        }
      ],
      "routing": {
        "request": {
          "qs": {
            "page": "={{$parameter[\"page\"]}}",
            "query": "={{$parameter[\"query\"]}}",
            "domain": "={{$parameter[\"domain\"]}}",
            "api_key": "={{$credentials.apiKey}}",
            "country": "={{$parameter[\"country\"]}}",
            "postal_code": "={{$parameter[\"postal_code\"]}}"
          },
          "url": "amazon/search",
          "method": "GET"
        }
      },
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "amazonSearch"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get",
      "value": "get",
      "action": "Scrape URL",
      "description": "Scrape a URL"
    },
    {
      "name": "Search",
      "value": "search",
      "action": "Google search",
      "description": "Perform a Google Search"
    },
    {
      "name": "Search",
      "value": "search",
      "action": "Search Google Images",
      "description": "Search Google Images"
    },
    {
      "name": "Search",
      "value": "search",
      "action": "Search Google News",
      "description": "Search Google News"
    },
    {
      "name": "Search",
      "value": "search",
      "action": "Bing search",
      "description": "Perform a Bing Search"
    },
    {
      "name": "Search",
      "value": "search",
      "action": "Amazon search",
      "description": "Perform a Amazon Search"
    }
  ]

npm_readme:
  # ScrapingDog Node for n8n

  This is a custom n8n node that integrates with the ScrapingDog API, providing web scraping and search capabilities. The node has been converted to use n8n's declarative style for better maintainability and reliability.

  ## Key Highlights

  - ✅ **6 Different APIs**: URL Scraping, Google Search, Google Images, Google News, Bing Search, and Amazon Search
  - ✅ **Declarative Style**: Modern n8n node implementation for better performance
  - ✅ **Comprehensive Filtering**: Advanced search options for all supported APIs
  - ✅ **Multi-language Support**: Support for multiple languages and regions
  - ✅ **Rate Limit Handling**: Built-in error handling for API limitations
  - ✅ **TypeScript**: Fully typed for better development experience

  ## Features

  - 🌐 **URL Scraping**: Extract content from any webpage
  - 🔍 **Google Search**: Perform Google searches with advanced options
  - 🖼️ **Google Images**: Search Google Images with advanced filtering options
  - 📰 **Google News**: Search Google News with time-based and geographic filtering
  - 🔎 **Bing Search**: Search Bing with customizable filters
  - 🛍️ **Amazon Search**: Search products on Amazon

  ## Directory Structure

  ```
  nodes/ScrapingDog/
  ├── ScrapingDog.node.ts      # Main node implementation (Declarative Style)
  ├── ScrapingDog.node.json    # Node metadata
  ├── scrappingDog.svg         # Node icon
  ├── types/
  │   └── index.ts             # TypeScript interfaces and types
  ├── resources/
  │   ├── index.ts             # Resource exports
  │   ├── scrapeUrl.ts         # Scrape URL resource
  │   ├── googleSearch.ts      # Google Search resource
  │   ├── googleImages.ts      # Google Images resource
  │   ├── googleNews.ts        # Google News resource
  │   ├── bingSearch.ts        # Bing Search resource
  │   ├── amazonSearch.ts      # Amazon Search resource
  │   └── staticResource.ts    # Static data (countries, etc.)
  ```

  ## Recent Updates

  ### Version 0.4.2 - LinkedIn API Removal & Documentation Updates
  - 🗑️ **REMOVED: LinkedIn Profile and Jobs APIs** - Removed LinkedIn Profile and LinkedIn Jobs functionality
  - **Simplified Interface**: Streamlined resource options for better focus on core web scraping features
  - **Reduced Dependencies**: Cleaner codebase with fewer external integrations
  - **Enhanced Documentation**: Added comprehensive parameter documentation for all remaining APIs
  - **Updated Examples**: Improved usage examples and API response documentation

  ### Version 0.4.1 - Google News API Integration
  - 📰 **NEW: Google News Search** - Added comprehensive Google News API support
  - **Time-Based Filtering**: Filter news by hour, day, week, month, or year
  - **Geographic Targeting**: Country-specific news results with custom domain support
  - **Language Support**: 18 different languages for news results
  - **Advanced Filtering**: Geographic location (UULE), language restrictions, safe search
  - **Auto-Correct Control**: Option to exclude auto-corrected query results

  ### Version 0.4.0 - Google Images API Integration
  - 🖼️ **NEW: Google Images Search** - Added comprehensive Google Images API support
  - **Advanced Image Filtering**: Size, type, color, usage rights, time period filters
  - **Multi-language Support**: 13 different languages for search results
  - **Safe Search Controls**: Strict, moderate, or off filtering options
  - **Geographic Targeting**: Country-specific image search results

  ### Previous Updates
  1. **Converted to Declarative Style**
     - Removed manual HTTP request handling
     - Added routing configuration for each resource
     - Improved error handling
     - Better parameter validation

  2. **Resource Improvements**
     - Added proper parameter descriptions
     - Fixed boolean parameter descriptions to start with "Whether"
     - Sorted option lists alphabetically
     - Improved type safety

  3. **API Integration**
     - Fixed API key handling in requests
     - Proper HTML content handling for scraping
     - Improved response processing

  ## Usage Examples

  ### 1. Scrape URL
  ```javascript
  {
      "resource": "scrapeUrl",
      "operation": "get",
      "parameters": {
          "url": "https://example.com",
          "dynamic": false,
          "markdown": false,
          "premium": false,
          "superProxy": false,
          "additionalFields": {
              "aiQuery": "Extract all product names",
              "aiExtractRules": "Find prices and descriptions"
          }
      }
  }
  ```

  ### 2. Google Search
  ```javascript
  {
      "resource": "googleSearch",
      "operation": "search",
      "parameters": {
          "query": "n8n automation",
          "advance": true,
          "page": "1",
          "location": "US",
          "results": "10"
      }
  }
  ```

  ### 3. Google Images
  ```javascript
  {
      "resource": "googleImages",
      "operation": "search",
      "parameters": {
          "query": "sunset landscape",
          "results": "20",
          "country": "US",
          "language": "en",
          "imgsz": "l",
          "imageType": "photo",
          "imageColor": "bw",
          "licenses": "f",
          "tbs": "qdr:d",
          "safe": "1"
      }
  }
  ```

  ### 4. Google News
  ```javascript
  {
      "resource": "googleNews",
      "operation": "search",
      "parameters": {
          "query": "artificial intelligence technology",
          "results": "50",
          "additionalFields": {
              "country": "us",
              "page": 0,
              "domain": "google.com",
              "language": "en",
              "tbs": "qdr:d",
              "safe": "active",
              "nfpr": false
          }
      }
  }
  ```

  ### 5. Bing Search
  ```javascript
  {
      "resource": "bingSearch",
      "operation": "search",
      "parameters": {
          "query": "web scraping tools",
          "page": 1,
          "country": "US",
          "results": 20,
          "filters": "ex1:'answerType:CalculatorPageType'"
      }
  }
  ```

  ### 6. Amazon Search
  ```javascript
  {
      "resource": "amazonSearch",
      "operation": "search",
      "parameters": {
          "query": "wireless headphones",
          "country": "US",
          "page": 1,
          "domain": "amazon.com",
          "postal_code": "10001"
      }
  }
  ```

  ## Resource Parameters

  ### Scrape URL
  - `url` (Required): Target webpage URL
  - `dynamic`: Whether to enable JavaScript rendering
  - `premium`: Whether to use premium proxy
  - `superProxy`: Whether to enable super proxy
  - `markdown`: Whether to get response in markdown format
  - `wait`: Wait time for dynamic rendering (ms)
  - `country`: Geolocation for the request
  - `aiQuery`: AI-powered data extraction query
  - `aiExtractRules`: Custom extraction rules

  ### Google Search
  - `query` (Required): Search keyword
  - `advance`: Whether to enable advanced features
  - `page`: Result page number (1-10)
  - `location`: Search location/country
  - `results`: Number of results (10-100)

  ### Google Images
  - `query` (Required): Search keyword for images
  - `results`: Number of results (10-100)
  - `country`: Country for geotargeting (US, UK, CA, etc.)
  - `language`: Search language (en, es, fr, de, etc.)
  - `imgsz`: Filter by size (any, large, medium, icon)
  - `imageType`: Filter by type (any, face, photo, clipart, lineart, animated)
  - `imageColor`: Filter by color (any, color, gray, trans, red, orange, yellow, green, teal, blue, purple, pink, white, black, brown)
  - `licenses`: Filter by usage rights (any, labeled-for-reuse, labeled-for-reuse-with-modification, etc.)
  - `tbs`: Filter by time (any, hour, day, week, month, year)
  - `safe`: Safe search level (strict, moderate, off)

  ### Google News
  - `query` (Required): Search keyword for news articles
  - `results`: Number of results (1-100)
  - `country`: Country for geotargeting (us, uk, in, ca, au, de, fr, jp, br, etc.)
  - `page`: Page number (0 for first page, 1 for second page, etc.)
  - `domain`: Google domain for local results (e.g., google.co.uk for UK)
  - `language`: Search language (en, es, fr, de, it, pt, ru, ja, zh-cn, ko, ar, hi, etc.)
  - `lr`: Language restriction in format lang_{language_code} (e.g., lang_en)
  - `uule`: Geographic location parameter for tailored results
  - `tbs`: Time-based search filter (qdr:h for past hour, qdr:d for past day, qdr:w for past week, qdr:m for past month, qdr:y for past year)
  - `safe`: Safe search filter (active/off)
  - `nfpr`: Exclude auto-corrected queries (true to exclude, false to include)

  ### Bing Search
  - `query` (Required): Search keyword
  - `page`: Page number for pagination
  - `country`: Country for geotargeting
  - `filters`: Custom search filters
  - `results`: Number of results to return

  ### Amazon Search
  - `query` (Required): Product search keyword
  - `country`: Country for Amazon marketplace (e.g., US, UK, CA, DE, FR, etc.)
  - `page`: Page number for pagination
  - `domain`: Amazon domain (e.g., amazon.com, amazon.co.uk)
  - `postal_code`: Postal code for location-based results

  ## API Response Examples

  ### Google Images Response
  ```json
  {
    "time_taken": 685.692823,
    "ads": [],
    "images_results": [
      {
        "title": "Beautiful Sunset Landscape",
        "image": "https://encrypted-tbn0.gstatic.com/images?q=tbn:...",
        "source": "example.com",
        "original": "https://example.com/images/sunset.jpg",
        "link": "https://example.com/sunset-photography",
        "original_height": 1080,
        "original_width": 1920,
        "original_size": "245KB",
        "know_more_link": "https://www.google.com/search/about-this-image?...",
        "is_product": false,
        "rank": 1
      }
    ]
  }
  ```

  ### Google News Response
  ```json
  {
    "time_taken": 542.123456,
    "ads": [],
    "news_results": [
      {
        "rank": 1,
        "title": "Breakthrough in Artificial Intelligence Technology",
        "link": "https://example-news.com/ai-breakthrough-2024",
        "source": "TechNews",
        "published_date": "3 hours ago",
        "snippet": "Researchers have developed a new AI system that can understand complex human emotions and respond appropriately, marking a significant milestone in artificial intelligence development.",
        "thumbnail": "https://encrypted-tbn0.gstatic.com/images?q=tbn:...",
        "rank_page": 1
      },
      {
        "rank": 2,
        "title": "AI Companies Announce Major Partnership",
        "link": "https://business-news.com/ai-partnership",
        "source": "Business Daily",
        "published_date": "5 hours ago",
        "snippet": "Leading technology companies have formed a strategic alliance to accelerate AI research and development, focusing on ethical AI implementation.",
        "thumbnail": "https://encrypted-tbn0.gstatic.com/images?q=tbn:...",
        "rank_page": 1
      }
    ]
  }
  ```

  ## Installation

  ### For n8n Users

  1. Install the package in your n8n instance:
  ```bash
  npm install n8n-nodes-scraping-dog
  ```

  2. Restart your n8n instance to load the new node.

  3. The ScrapingDog node will appear in the node palette under the "Transform" category.

  ### Credentials Setup

  1. Create a ScrapingDog API account at [ScrapingDog.com](https://scrapingdog.com)
  2. Get your API key from the dashboard
  3. In n8n, create new credentials of type "ScrapingDog API"
  4. Enter your API key in the credentials configuration

  ## Development

  1. Install dependencies:
  ```bash
  npm install
  ```

  2. Build the node:
  ```bash
  npm run build
  ```

  3. Run with Docker:
  ```bash
  make rebuild-and-logs
  ```

  ## Testing

  The node includes proper error handling for:
  - Invalid API key
  - Rate limiting
  - Invalid parameters
  - Network errors
  - Blocked requests

  ## License

  MIT License - see LICENSE file for details 

ai_documentation_summary:
  {"purpose":"The ScrapingDog node integrates with the ScrapingDog API to perform web scraping and search operations, including URL scraping, Google and Bing searches, Google Images, Google News, and Amazon product searches.","capabilities":["URL scraping with customizable fields and AI extraction rules","Google Search with location, results, and advanced filtering","Google Images search with size, color, type, and safety filters","Google News search with time-based, geographic, and language filtering","Bing Search with location, results, and custom filters","Amazon product search with filtering options","Multi-language support across all APIs","Rate limit handling and error management","Advanced filtering and parameter validation"],"authentication":"API key required (not explicitly detailed in README, but implied by API integration)","commonUseCases":["Extracting content from websites","Performing competitive research via search queries","Finding product listings on Amazon","Searching for images or news with specific criteria","Automating data collection for market analysis"],"limitations":["LinkedIn Profile and Jobs APIs have been removed","No support for dynamic or real-time scraping beyond configured parameters","Limited to ScrapingDog's available APIs and rate limits"],"relatedNodes":["Web Scraper","Search Node","Data Extractor","API Connector"]}


node_type: n8n-nodes-pdfco.PDFco Api
package_name: n8n-nodes-pdfco
display_name: PDF.co Api
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-01-07 20:08:15
author_name: artifex-dev
author_github_url: https://github.com/pdfdotco/
npm_package_name: n8n-nodes-pdfco
npm_version: 1.0.6
community_fetched_at: 2026-01-07T20:08:15.964Z
ai_summary_generated_at: 2026-01-08 10:45:32
description:
  Generate PDF, extract data from PDF, split PDF, merge PDF, convert PDF. Fill PDF forms, add text and images to pdf and much more with pdf.co!

properties_schema:
  [
    {
      "name": "operation",
      "type": "options",
      "default": "AI Invoice Parser",
      "options": [
        {
          "name": "AI Invoice Parser",
          "value": "AI Invoice Parser",
          "action": "AI Invoice Parser",
          "description": "Transform your invoice processing with our advanced AI. Enjoy quick, accurate data extraction that eliminates manual effort and saves you valuable time."
        },
        {
          "name": "URL/HTML to PDF",
          "value": "URL/HTML to PDF",
          "action": "URL/HTML to PDF",
          "description": "Convert HTML or URL to PDF with advanced options (e.g. layout, orientation). Supports HTML templates (Handlebar and Mustache)."
        },
        {
          "name": "Merge PDF",
          "value": "Merge PDF",
          "action": "Merge PDF",
          "description": "Combine multiple document formats into a single PDF. Supported formats include PDF, DOC, DOCX, XLS, JPG, PNG, and more."
        },
        {
          "name": "Split PDF",
          "value": "Split PDF",
          "action": "Split PDF",
          "description": "PDF Splitter that takes PDF file and splits into multiple PDF files using page index, page range, text search or barcode search"
        },
        {
          "name": "Convert To PDF",
          "value": "Convert to PDF",
          "action": "Convert to PDF",
          "description": "Convert a variety of formats such as URLs, HTML code, documents, spreadsheets, presentations, images, and more into PDF"
        },
        {
          "name": "Convert From PDF",
          "value": "Convert from PDF",
          "action": "Convert from PDF",
          "description": "Convert PDF pages to structured CSV, XML, JSON, Plain Text, Convert PDF to JPG, PDF to PNG, PDF to TIFF, and more"
        },
        {
          "name": "Add Text/Images to PDF",
          "value": "Add Text/Images to PDF",
          "action": "Add Text/Images to PDF",
          "description": "Add text, images, and annotations to PDF documents with precise positioning and styling options"
        },
        {
          "name": "Fill a PDF Form",
          "value": "Fill a PDF Form",
          "action": "Fill a PDF Form",
          "description": "Fill interactive PDF forms with text, checkboxes, and other form elements"
        },
        {
          "name": "PDF Information & Form Fields",
          "value": "PDF Information & Form Fields",
          "action": "PDF Information & Form Fields",
          "description": "Extract metadata and form field information from PDF documents"
        },
        {
          "name": "Compress PDF",
          "value": "Compress PDF",
          "action": "Compress PDF",
          "description": "Reduce PDF file size while maintaining quality"
        },
        {
          "name": "PDF Security",
          "value": "PDF Security",
          "action": "PDF Security",
          "description": "Add or remove password protection and security features from PDF documents"
        },
        {
          "name": "Rotate PDF Pages",
          "value": "Rotate PDF Pages",
          "action": "Rotate PDF Pages",
          "description": "Rotate PDF pages manually or automatically detect and fix rotation based on text analysis"
        },
        {
          "name": "Delete PDF Pages",
          "value": "Delete PDF Pages",
          "action": "Delete PDF Pages",
          "description": "Remove specific pages from a PDF document"
        },
        {
          "name": "Search in PDF",
          "value": "Search in PDF",
          "action": "Search in PDF",
          "description": "Search for specific text within PDF documents or scanned images"
        },
        {
          "name": "Search & Replace Text or Delete",
          "value": "Search & Replace Text or Delete",
          "description": "Search and delete text, replace text, or replace text with images in PDF documents"
        },
        {
          "name": "Barcode Reader",
          "value": "Barcode Reader",
          "description": "Decode barcodes from images or PDF documents swiftly and accurately"
        },
        {
          "name": "Barcode Generator",
          "value": "Barcode Generator",
          "description": "Generate various types of barcodes including QR codes, Code 128, Code 39, and more"
        },
        {
          "name": "Make PDF Searchable or Unsearchable",
          "value": "Make PDF Searchable or Unsearchable",
          "description": "Convert scanned PDF or image files into text-searchable PDFs using OCR or make them unsearchable/scanned"
        },
        {
          "name": "Upload File",
          "value": "Upload File to PDF.co",
          "action": "Upload File to PDF.co",
          "description": "Upload a file to PDF.co and get a URL"
        }
      ],
      "displayName": "Action",
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "AI Invoice Parser",
      "value": "AI Invoice Parser",
      "action": "AI Invoice Parser",
      "description": "Transform your invoice processing with our advanced AI. Enjoy quick, accurate data extraction that eliminates manual effort and saves you valuable time."
    },
    {
      "name": "URL/HTML to PDF",
      "value": "URL/HTML to PDF",
      "action": "URL/HTML to PDF",
      "description": "Convert HTML or URL to PDF with advanced options (e.g. layout, orientation). Supports HTML templates (Handlebar and Mustache)."
    },
    {
      "name": "Merge PDF",
      "value": "Merge PDF",
      "action": "Merge PDF",
      "description": "Combine multiple document formats into a single PDF. Supported formats include PDF, DOC, DOCX, XLS, JPG, PNG, and more."
    },
    {
      "name": "Split PDF",
      "value": "Split PDF",
      "action": "Split PDF",
      "description": "PDF Splitter that takes PDF file and splits into multiple PDF files using page index, page range, text search or barcode search"
    },
    {
      "name": "Convert To PDF",
      "value": "Convert to PDF",
      "action": "Convert to PDF",
      "description": "Convert a variety of formats such as URLs, HTML code, documents, spreadsheets, presentations, images, and more into PDF"
    },
    {
      "name": "Convert From PDF",
      "value": "Convert from PDF",
      "action": "Convert from PDF",
      "description": "Convert PDF pages to structured CSV, XML, JSON, Plain Text, Convert PDF to JPG, PDF to PNG, PDF to TIFF, and more"
    },
    {
      "name": "Add Text/Images to PDF",
      "value": "Add Text/Images to PDF",
      "action": "Add Text/Images to PDF",
      "description": "Add text, images, and annotations to PDF documents with precise positioning and styling options"
    },
    {
      "name": "Fill a PDF Form",
      "value": "Fill a PDF Form",
      "action": "Fill a PDF Form",
      "description": "Fill interactive PDF forms with text, checkboxes, and other form elements"
    },
    {
      "name": "PDF Information & Form Fields",
      "value": "PDF Information & Form Fields",
      "action": "PDF Information & Form Fields",
      "description": "Extract metadata and form field information from PDF documents"
    },
    {
      "name": "Compress PDF",
      "value": "Compress PDF",
      "action": "Compress PDF",
      "description": "Reduce PDF file size while maintaining quality"
    },
    {
      "name": "PDF Security",
      "value": "PDF Security",
      "action": "PDF Security",
      "description": "Add or remove password protection and security features from PDF documents"
    },
    {
      "name": "Rotate PDF Pages",
      "value": "Rotate PDF Pages",
      "action": "Rotate PDF Pages",
      "description": "Rotate PDF pages manually or automatically detect and fix rotation based on text analysis"
    },
    {
      "name": "Delete PDF Pages",
      "value": "Delete PDF Pages",
      "action": "Delete PDF Pages",
      "description": "Remove specific pages from a PDF document"
    },
    {
      "name": "Search in PDF",
      "value": "Search in PDF",
      "action": "Search in PDF",
      "description": "Search for specific text within PDF documents or scanned images"
    },
    {
      "name": "Search & Replace Text or Delete",
      "value": "Search & Replace Text or Delete",
      "description": "Search and delete text, replace text, or replace text with images in PDF documents"
    },
    {
      "name": "Barcode Reader",
      "value": "Barcode Reader",
      "description": "Decode barcodes from images or PDF documents swiftly and accurately"
    },
    {
      "name": "Barcode Generator",
      "value": "Barcode Generator",
      "description": "Generate various types of barcodes including QR codes, Code 128, Code 39, and more"
    },
    {
      "name": "Make PDF Searchable or Unsearchable",
      "value": "Make PDF Searchable or Unsearchable",
      "description": "Convert scanned PDF or image files into text-searchable PDFs using OCR or make them unsearchable/scanned"
    },
    {
      "name": "Upload File",
      "value": "Upload File to PDF.co",
      "action": "Upload File to PDF.co",
      "description": "Upload a file to PDF.co and get a URL"
    }
  ]

npm_readme:
  # n8n-nodes-pdfco

  This is an n8n community node that enables you to integrate PDF.co's powerful PDF processing capabilities into your n8n workflows. PDF.co is a comprehensive PDF processing API that allows you to convert, merge, split, and manipulate PDF documents programmatically.

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

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

  ## Installation
  ### Community Nodes (Recommended)
  For users on n8n v0.187+, you can install this node directly from the n8n Community Nodes panel in the n8n editor:

  1. Open your n8n editor
  2. Go to Settings > Community Nodes
  3. Search for "n8n-nodes-pdfco"
  4. Click Install
  5. Reload the editor

  ### Manual Installation
  You can also install this node manually:

  1. Navigate to your n8n installation directory
  2. Run the following command:
  ```bash
  npm install n8n-nodes-pdfco
  ```
  3. Restart your n8n server


  ## Operations

  This node provides comprehensive PDF processing capabilities through PDF.co's API. Here are the available features:

  ### 1. AI-Powered Document Processing
  - AI Invoice Parser: Extract data from invoices using AI-powered parsing

  ### 2. URL/HTML to PDF Conversion
  - URL to PDF
  - HTML to PDF
  - HTML Template to PDF

  ### 3. PDF Merging
  - Merge multiple PDFs into one
  - Support for merging from different file formats (merge2)

  ### 4. PDF Splitting
  - Split by page number
  - Split by search text
  - Split by barcode

  ### 5. Document to PDF Conversion
  - Document to PDF (RTF, DOC, DOCX, TXT)
  - Spreadsheet to PDF (CSV, XLS, XLSX, TXT Spreadsheet)
  - Image to PDF (JPG, PNG, TIFF)
  - Email to PDF (MSG or EML)

  ### 6. PDF to Other Formats
  - PDF to CSV
  - PDF to HTML
  - PDF to Images (JPG, PNG, TIFF, WEBP)
  - PDF to JSON
  - PDF to Text
  - PDF to Excel (XLS/XLSX)
  - PDF to XML

  ### 7. PDF Modification
  - Add text annotations
  - Add images to PDF documents
  - Fill interactive PDF forms with data
  - Extract PDF metadata
  - Get form field information

  ### 8. PDF Optimization
  - Compress PDF files
  - Optimize PDF for web or storage
  - Remove password protection
  - Add password protection
  - Rotate pages in PDF documents
  - Remove specific pages from PDF

  ### 9. PDF Search and Text Operations
  - Search for text within PDF documents
  - Search and delete text
  - Search and replace text
  - Search and replace with image

  ### 10. Barcode Operations
  - Extract barcode data from PDFs
  - Generate barcodes in PDFs

  ### 11. PDF OCR and Searchability
  - Make scanned PDF searchable (OCR)
  - Make searchable PDF unsearchable

  ### 12. File Management
  - Standard file upload
  - Create file URL from input text/content
  - Upload from Base64 encoded data

  ## Credentials

  To use this node, you need a PDF.co API key. Here's how to get started:

  1. Sign up for a PDF.co account at [https://pdf.co](https://pdf.co)
  2. Navigate to your dashboard and obtain your API key
  3. In n8n, add your PDF.co credentials by providing your API key

  ## Usage

  This node allows you to automate PDF processing tasks in your n8n workflows. Here are some common use cases:

  - Process invoices using AI-powered parsing
  - Automatically convert HTML reports to PDF
  - Merge multiple PDF documents into a single file
  - Extract text from PDF documents for data processing
  - Add watermarks to PDF documents
  - Compress PDF files to reduce size
  - Secure PDFs with password protection
  - Convert various document formats to PDF
  - Extract data from PDFs to other formats
  - Manage and modify PDF documents programmatically

  For detailed examples and workflow templates, visit our [documentation](https://docs.pdf.co).

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  * [PDF.co API Documentation](https://docs.pdf.co)
  * [PDF.co Pricing](https://app.pdf.co/subscriptions)

  ## Version history

  ### 1.0.0
  - Initial release with comprehensive PDF processing capabilities
  - Full integration with PDF.co API services
  - Support for all core PDF operations including conversion, merging, and modification

  ### 1.0.1
  - Enhanced documentation with improved installation and usage instructions

  ### 1.0.2
  - Improved code stability and performance
  - Enhanced error handling and response management

  ### 1.0.3
  - Improved code stability and performance

  ### 1.0.4
  - AI Invoice Parser: Added support for custom field extraction, enabling more flexible and tailored data parsing. 
  - Added user-friendly descriptions for all PDF.co modules to help users better understand each feature's capabilities

  ### 1.0.5
  - Search PDF/Convert From PDF: Added support for the Inline option, enabling direct file output
  - Barcode Generator: Resolved an issue affecting barcode generation functionality.
  - Updated description links to point to new dedicated documentation

  ### 1.0.6
  - AI Invoice Parser: Clearer field descriptions and helpful usage hints

ai_documentation_summary:
  {"purpose":"The PDF.co API node enables automation of various PDF processing tasks such as conversion, merging, splitting, form filling, OCR, and AI-powered data extraction using PDF.co's API services.","capabilities":["AI Invoice Parser for extracting data from invoices","Convert URLs and HTML to PDF","Merge multiple PDFs (including from different formats)","Split PDFs by page, text, or barcode","Convert documents (RTF, DOC, CSV, images, emails) to PDF","Convert PDF to CSV, HTML, images, JSON, text, Excel, XML","Add text, images, and annotations to PDFs","Fill interactive PDF forms with data","Extract PDF metadata and form field information","Compress, optimize, rotate, or remove pages from PDFs"],"authentication":"API key required; obtain from https://pdf.co and configure in n8n credentials","commonUseCases":["Automatically extract invoice data using AI parsing","Convert HTML reports or web pages to PDF","Merge multiple documents into a single PDF","Extract text or data from PDFs for further processing","Add watermarks or images to PDFs"],"limitations":[],"relatedNodes":["n8n-nodes-base64","n8n-nodes-web","n8n-nodes-httpRequest"]}


