# nodes

node_type: n8n-nodes-unstract.llmWhisperer
package_name: n8n-nodes-unstract
display_name: LLMWhisperer
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-01-07 20:08:15
author_name: arun-unstract
author_github_url: https://github.com/Zipstack/n8n-nodes.git
npm_package_name: n8n-nodes-unstract
npm_version: 0.5.6
community_fetched_at: 2026-01-07T20:08:15.905Z
ai_summary_generated_at: 2026-01-08 10:45:32
description:
  Extract text from PDFs, images, and scanned documents using OCR. Preserves layout and formatting for accurate text extraction from any document type

properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "document",
      "options": [
        {
          "name": "Document",
          "value": "document"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "extractText",
      "options": [
        {
          "name": "Extract Text",
          "value": "extractText",
          "action": "Extract text from document",
          "description": "Extract text from PDFs and images using OCR"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "document"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Extract Text",
      "value": "extractText",
      "action": "Extract text from document",
      "description": "Extract text from PDFs and images using OCR"
    }
  ]

npm_readme:
  # n8n-nodes-unstract
  <div align="center">

  ![n8n-node-codechat-wapi](https://img.shields.io/npm/v/n8n-nodes-unstract?label=n8n-nodes-unstract&logo=unstract)
  ![License](https://img.shields.io/npm/l/n8n-nodes-unstract)
  [![n8n](https://img.shields.io/badge/n8n-community-F94B72)](https://community.n8n.io/)
  ![dt](https://img.shields.io/npm/dt/n8n-nodes-unstract)
  ![dw](https://img.shields.io/npm/dw/n8n-nodes-unstract)

  </div>
  This is an n8n community node package that provides integrations with Unstract services, including LLMWhisperer and the Unstract API. These nodes enable seamless document processing and text extraction workflows within your n8n automations.

  ## What is Unstract?

  [Unstract](https://unstract.com) is a platform that helps extract structured data from unstructured documents using AI. It provides powerful APIs for document processing, including:

  - **LLMWhisperer**: Convert documents to layout-preserved plain text
  - **Unstract API**: Extract structured data from documents using custom workflows

  ## Features

  This package includes following main nodes:

  ### 🔤 LLMWhisperer Node
  - Convert documents (PDF, images, etc.) to layout-preserved plain text
  - Maintain document structure and formatting
  - Support for various document formats
  - Configurable processing modes

  ### 🤖 Unstract Node
  - Process documents using Unstract's AI-powered extraction
  - Extract structured data from unstructured documents
  - Support for custom API deployments
  - Seamless integration with Unstract workflows

  ### 📤 Unstract HITL Push Node
  - Push documents to Human-in-the-Loop (HITL) processing queues
  - Configure timeout, metrics, metadata, and queue targeting
  - Support for various document types and queue configurations
  - Error handling for upload and processing issues

  ### 📥 Unstract HITL Fetch Node
  - Retrieve approved results from HITL processing queues
  - Poll for completed processing with configurable intervals
  - Optional queue name parameter for targeted fetching
  - Proper error handling for "No approved items available" responses

  ## Installation

  ### Community Nodes (Recommended)

  1. Go to **Settings > Community Nodes** in your n8n instance
  2. Select **Install a community node**
  3. Enter the npm package name: `n8n-nodes-unstract`
  4. Click **Install**

  ### Manual Installation

  You can install this node package in your n8n instance using npm:

  ```bash
  npm install n8n-nodes-unstract
  ```

  For Docker installations, add the package to your n8n container:

  ```bash
  # Replace <your-path-to-n8n-custom-nodes> with the path to n8n
  N8N_CUSTOM_EXTENSIONS="<your-path-to-n8n-custom-nodes>" npx n8n start
  ```

  ## Configuration

  ### Prerequisites

  Before using these nodes, you'll need:

  1. **API Credentials**: Get your API keys from:
     - [LLMWhisperer API - Follow the doc](https://docs.unstract.com/llmwhisperer/llm_whisperer/getting_started/llm_whisperer_registering/)
     - [Unstract Platform - Follow the doc](https://docs.unstract.com/unstract/unstract_platform/api_deployment/unstract_api_deployment_intro/)

  2. **Node.js**: Version 20 or above is required

  ### Setting up Credentials

  1. **LLMWhisperer API Credentials**:
     - Go to your n8n credentials settings
     - Create new credentials of type "LLMWhisperer API"
     - Enter your LLMWhisperer API key

  2. **Unstract API Credentials**:
     - Go to your n8n credentials settings
     - Create new credentials of type "Unstract API"
     - Enter your Unstract API key and endpoint details

  3. **Unstract HITL Credentials**:
     - Go to your n8n credentials settings
     - Create new credentials of type "Unstract HITL"
     - Enter your HITL API key for Human-in-the-Loop processing

  ## Usage Examples

  ### LLMWhisperer Node

  Use the LLMWhisperer node to convert documents to text while preserving layout:

  1. Add the LLMWhisperer node to your workflow
  2. Configure your API credentials
  3. Set the input file (binary data)
  4. Choose processing mode and options
  5. Execute to get layout-preserved text output

  ### Unstract Node

  Use the Unstract node to extract structured data:

  1. Add the Unstract node to your workflow
  2. Configure your API credentials and deployment
  3. Set the input document (binary data)
  4. Specify your API deployment name
  5. Execute to get structured data output

  ### Unstract HITL Push Node

  Use the HITL Push node to send documents for human review:

  1. Add the Unstract HITL Push node to your workflow
  2. Configure your HITL API credentials
  3. Set the input document (binary data)
  4. Configure queue name, timeout, and metadata options
  5. Execute to push document to HITL processing queue

  ### Unstract HITL Fetch Node

  Use the HITL Fetch node to retrieve approved results:

  1. Add the Unstract HITL Fetch node to your workflow
  2. Configure your HITL API credentials
  3. Optionally specify a queue name to target specific queues
  4. Configure polling interval and retry settings
  5. Execute to fetch approved results from HITL queue

  ## Screenshots

  ### Node Integration Examples

  Visual guides for integrating Unstract nodes in your n8n workflows:

  #### LLMWhisperer Node Configuration
  ![LLMWhisperer node setup and configuration](screenshots/llmwhisperer-node-config.png)

  #### Unstract Node Configuration  
  ![Unstract API node setup and configuration](screenshots/unstract-node-config.png)

  #### HITL Push Node Configuration
  ![HITL Push node setup with queue configuration and document upload](screenshots/hitl-push-node-config.png)

  #### HITL Fetch Node Configuration
  ![HITL Fetch node setup with polling configuration](screenshots/hitl-fetch-node-config.png)

  These screenshots help developers understand the visual setup and configuration of each node type for seamless integration into n8n workflows.

  ## API Documentation

  For detailed API documentation and advanced configuration options:

  - [LLMWhisperer Documentation](https://docs.unstract.com/llm_whisperer/)
  - [Unstract Platform Documentation](https://docs.unstract.com/unstract/)

  ## Development

  ### Prerequisites

  - Node.js 20 or above
  - npm or yarn

  ### Setup

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

  # Install dependencies
  npm install

  # Build the project
  npm run build

  # Run linting
  npm run lint
  ```

  ### Running n8n with Custom Nodes

  For development and testing:

  ```bash
  # Set the custom extensions path and start n8n
  N8N_CUSTOM_EXTENSIONS="/path/to/n8n-nodes" npx n8n start
  ```

  ## Support

  - **Documentation**: [docs.unstract.com](https://docs.unstract.com)
  - **Issues**: [GitHub Issues](https://github.com/Zipstack/n8n-nodes/issues)
  - **Community**: [Join our community discussions](https://join.slack.com/t/unstract/shared_invite/zt-372jed537-bYz99iZnfXnhqyjbU8lPLg)
  - **Email**: support@unstract.com

  ## License

  This project is licensed under the MIT License - see the package.json file for details.

  ## Contributing

  We welcome contributions! Please feel free to submit issues, feature requests, or pull requests.

  ---

  **Made with ❤️ by the Unstract team**

ai_documentation_summary:
  {"purpose":"The LLMWhisperer node extracts text from PDFs, images, and scanned documents using OCR while preserving the original layout and formatting, enabling accurate text extraction from unstructured documents.","capabilities":["Convert documents (PDF, images, scanned documents) to layout-preserved plain text","Maintain document structure and formatting during text extraction","Support for various document formats","Configurable processing modes"],"authentication":"API key required (LLMWhisperer API key must be configured in n8n credentials)","commonUseCases":["Extracting text from scanned invoices or forms while preserving structure","Converting image-based documents to searchable text with layout accuracy","Preparing unstructured documents for downstream AI or data processing workflows"],"limitations":[],"relatedNodes":["Unstract API Node","Unstract HITL Push Node","Unstract HITL Fetch Node"]}


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

updated_at: 2026-01-07 20:08:15
author_name: robfigroam
author_github_url: https://github.com/WonderInventions/
npm_package_name: n8n-nodes-roam
npm_version: 0.1.8
community_fetched_at: 2026-01-07T20:08:15.906Z
ai_summary_generated_at: 2026-01-08 10:45:32
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "message",
      "options": [
        {
          "name": "Meeting",
          "value": "meeting"
        },
        {
          "name": "Message",
          "value": "message"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "send",
      "options": [
        {
          "name": "Send Message",
          "value": "send",
          "action": "Send a message",
          "description": "Send a message to a Roam group"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create Meeting Link",
          "value": "create",
          "action": "Create a meeting link",
          "description": "Create a meeting link"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "meeting"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Send Message",
      "value": "send",
      "action": "Send a message",
      "description": "Send a message to a Roam group"
    },
    {
      "name": "Create Meeting Link",
      "value": "create",
      "action": "Create a meeting link",
      "description": "Create a meeting link"
    }
  ]

npm_readme:
  # n8n-nodes-roam

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

  Roam is a video conferencing and messaging platform that enables teams to connect, collaborate, and communicate effectively through video meetings, messaging, and integrations.

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

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

  ## Installation

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

  ## Operations

  ### Roam Node
  - **Send Message**: Send messages to Roam groups
  - **Create Meeting Link**: Create new video meeting links

  ### Roam Trigger Node
  - **Webhook Events**: Trigger workflows when webhook events are received from Roam

  ## Credentials

  To use this node, you need to authenticate with Roam's API using OAuth2.

  1. Go to your Roam developer account at [developer.ro.am](https://developer.ro.am)
  2. Create an API Key application
  3. Enable permissions corresponding to what you want it to do: 
    - Actions
      - Send chat message: `chat:send_message`, `groups:read`
      - Create meeting link: `meetinglink:write`
    - Webhooks: `webhook:write`
      - New Recording: `recordings:read`
      - New Transcript: `transcript:read`
  3. In n8n, create a new credential of type "Roam API Key"
  4. Fill in your secret key

  ## Compatibility

  - n8n version: 1.0.0+
  - Node.js version: 18.0.0+
  - Tested with n8n versions: 1.0.x, 1.1.x

  ## Usage

  ### Basic Setup
  1. Install the community node
  2. Set up your Roam OAuth2 credentials
  3. Use the Roam node to send messages or create meetings
  4. Use the Roam Trigger node to respond to webhook events

  ### Example Workflow
  1. **Trigger**: HTTP Request (when a form is submitted)
  2. **Action**: Roam - Send Message (notify team about the submission)
  3. **Action**: Roam - Create Meeting Link (schedule a follow-up meeting)

  ## Development

  To run n8n locally: 

  - Run `ngrok http 5678` to support incoming webhooks. Set `WEBHOOK_URL` to the ngrok URL.
  - Run `npm run dev`

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  * [Roam API Documentation](https://developer.ro.am/)
  * [Roam Developer Portal](https://developer.ro.am)

  ## Version history

  ### 0.1.1
  - Initial release
  - Roam node with meeting and messaging operations
  - Roam Trigger node for webhook events
  - Basic transport layer for API communication
  - OAuth2 authentication

ai_documentation_summary:
  {"purpose":"The Roam node enables integration with Roam's messaging and video meeting features, allowing users to send messages to groups, create meeting links, and trigger workflows via webhook events.","capabilities":["Send messages to Roam groups","Create video meeting links","Trigger workflows on webhook events (e.g., new recordings, new transcripts)"],"authentication":"OAuth2 via API Key application created in the Roam Developer Portal (developer.ro.am)","commonUseCases":["Notify team members of form submissions via message","Automatically schedule follow-up meetings after events","Respond to real-time events like new recordings or transcripts via webhooks"],"limitations":[],"relatedNodes":["HTTP Request","Webhook Trigger"]}


node_type: @mendable/n8n-nodes-firecrawl.firecrawl
package_name: @mendable/n8n-nodes-firecrawl
display_name: Firecrawl
description: Get data from Firecrawl API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs: "={{[\"main\"]}}"
updated_at: 2026-01-07 20:08:15
author_name: cpeffer
author_github_url: https://github.com/mendableai/n8n-nodes-firecrawl.git
npm_package_name: @mendable/n8n-nodes-firecrawl
npm_version: 1.0.6
community_fetched_at: 2026-01-07T20:08:15.907Z
ai_summary_generated_at: 2026-01-08 10:45:31
properties_schema:
  [
    {
      "name": "resource",
      "type": "hidden",
      "default": "Default",
      "options": [
        {
          "name": "Default",
          "value": "Default"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "map",
      "options": [
        {
          "name": "Search and optionally scrape search results",
          "value": "search",
          "action": "Search and optionally scrape search results",
          "routing": {
            "request": {
              "url": "=/search",
              "method": "POST"
            }
          }
        },
        {
          "name": "Map a website and get urls",
          "value": "map",
          "action": "Map a website and get urls",
          "routing": {
            "request": {
              "url": "=/map",
              "method": "POST"
            }
          }
        },
        {
          "name": "Scrape a url and get its content",
          "value": "scrape",
          "action": "Scrape a url and get its content",
          "routing": {
            "request": {
              "url": "=/scrape",
              "method": "POST"
            }
          }
        },
        {
          "name": "Crawl a website",
          "value": "crawl",
          "action": "Crawl a website",
          "routing": {
            "request": {
              "url": "=/crawl",
              "method": "POST"
            }
          }
        },
        {
          "name": "Batch scrape multiple URLs",
          "value": "batchScrape",
          "action": "Batch scrape multiple URLs",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "setKeyValue",
                  "properties": {
                    "data": "={{$response.body}}"
                  }
                }
              ]
            },
            "request": {
              "url": "/batch/scrape",
              "method": "POST"
            }
          }
        },
        {
          "name": "Get batch scrape status",
          "value": "batchScrapeStatus",
          "action": "Get batch scrape status",
          "routing": {
            "request": {
              "method": "GET"
            }
          }
        },
        {
          "name": "Get batch scrape errors",
          "value": "batchScrapeErrors",
          "action": "Get batch scrape errors",
          "routing": {
            "request": {
              "method": "GET"
            }
          }
        },
        {
          "name": "List active crawls",
          "value": "crawlActive",
          "action": "List active crawls",
          "routing": {
            "request": {
              "url": "=/crawl/active",
              "method": "GET"
            }
          }
        },
        {
          "name": "Preview crawl params from prompt",
          "value": "crawlParamsPreview",
          "action": "Preview crawl params from prompt",
          "routing": {
            "request": {
              "url": "=/crawl/params-preview"
            }
          }
        },
        {
          "name": "Cancel a crawl job",
          "value": "cancelCrawl",
          "action": "Cancel a crawl job",
          "routing": {
            "request": {
              "method": "DELETE"
            }
          }
        },
        {
          "name": "Get crawl errors",
          "value": "getCrawlErrors",
          "action": "Get crawl errors",
          "routing": {
            "request": {
              "method": "GET"
            }
          }
        },
        {
          "name": "Cancel batch scrape job",
          "value": "cancelBatchScrape",
          "action": "Cancel batch scrape job",
          "routing": {
            "request": {
              "method": "DELETE"
            }
          }
        },
        {
          "name": "Get crawl status",
          "value": "getCrawlStatus",
          "action": "Get crawl status",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "setKeyValue",
                  "properties": {
                    "data": "={{$response.body}}"
                  }
                }
              ]
            },
            "request": {
              "method": "GET"
            }
          }
        },
        {
          "name": "Extract Data",
          "value": "extract",
          "action": "Extract Data",
          "routing": {
            "request": {
              "url": "=/extract",
              "method": "POST"
            }
          }
        },
        {
          "name": "Get Extract Status",
          "value": "getExtractStatus",
          "action": "Get Extract Status",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "setKeyValue",
                  "properties": {
                    "data": "={{$response.body}}"
                  }
                }
              ]
            },
            "request": {
              "method": "GET"
            }
          }
        },
        {
          "name": "Get team token usage",
          "value": "teamTokenUsage",
          "action": "Get team token usage",
          "routing": {
            "request": {
              "url": "=/team/token-usage",
              "method": "GET"
            }
          }
        },
        {
          "name": "Get team credit usage",
          "value": "teamCreditUsage",
          "action": "Get team credit usage",
          "routing": {
            "request": {
              "url": "=/team/credit-usage",
              "method": "GET"
            }
          }
        },
        {
          "name": "Get historical token usage",
          "value": "teamTokenUsageHistorical",
          "action": "Get historical token usage",
          "routing": {
            "request": {
              "url": "=/team/token-usage/historical",
              "method": "GET"
            }
          }
        },
        {
          "name": "Get team queue status",
          "value": "teamQueueStatus",
          "action": "Get team queue status",
          "routing": {
            "request": {
              "url": "=/team/queue-status",
              "method": "GET"
            }
          }
        },
        {
          "name": "Get historical credit usage",
          "value": "creditUsageHistorical",
          "action": "Get historical credit usage",
          "routing": {
            "request": {
              "url": "=/team/credit-usage/historical",
              "method": "GET"
            }
          }
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "Default"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "POST /search",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "Default"
          ],
          "operation": [
            "search"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "POST /map",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "Default"
          ],
          "operation": [
            "map"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "POST /scrape",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "Default"
          ],
          "operation": [
            "scrape"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "POST /crawl",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "Default"
          ],
          "operation": [
            "crawl"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "POST /batchScrape",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "Default"
          ],
          "operation": [
            "batchScrape"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /batchScrapeStatus",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "Default"
          ],
          "operation": [
            "batchScrapeStatus"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /batchScrapeErrors",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "Default"
          ],
          "operation": [
            "batchScrapeErrors"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /crawlActive",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "Default"
          ],
          "operation": [
            "crawlActive"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "POST /crawlParamsPreview",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "Default"
          ],
          "operation": [
            "crawlParamsPreview"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "DELETE /cancelCrawl",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "Default"
          ],
          "operation": [
            "cancelCrawl"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /getCrawlErrors",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "Default"
          ],
          "operation": [
            "getCrawlErrors"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "DELETE /cancelBatchScrape",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "Default"
          ],
          "operation": [
            "cancelBatchScrape"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /getCrawlStatus",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "Default"
          ],
          "operation": [
            "getCrawlStatus"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "POST /extract",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "Default"
          ],
          "operation": [
            "extract"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /getExtractStatus",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "Default"
          ],
          "operation": [
            "getExtractStatus"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /teamTokenUsage",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "Default"
          ],
          "operation": [
            "teamTokenUsage"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /teamCreditUsage",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "Default"
          ],
          "operation": [
            "teamCreditUsage"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /teamTokenUsageHistorical",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "Default"
          ],
          "operation": [
            "teamTokenUsageHistorical"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /teamQueueStatus",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "Default"
          ],
          "operation": [
            "teamQueueStatus"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /creditUsageHistorical",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "Default"
          ],
          "operation": [
            "creditUsageHistorical"
          ]
        }
      }
    }
  ]

operations:
  [
    {
      "name": "Search and optionally scrape search results",
      "value": "search",
      "action": "Search and optionally scrape search results",
      "routing": {
        "request": {
          "url": "=/search",
          "method": "POST"
        }
      }
    },
    {
      "name": "Map a website and get urls",
      "value": "map",
      "action": "Map a website and get urls",
      "routing": {
        "request": {
          "url": "=/map",
          "method": "POST"
        }
      }
    },
    {
      "name": "Scrape a url and get its content",
      "value": "scrape",
      "action": "Scrape a url and get its content",
      "routing": {
        "request": {
          "url": "=/scrape",
          "method": "POST"
        }
      }
    },
    {
      "name": "Crawl a website",
      "value": "crawl",
      "action": "Crawl a website",
      "routing": {
        "request": {
          "url": "=/crawl",
          "method": "POST"
        }
      }
    },
    {
      "name": "Batch scrape multiple URLs",
      "value": "batchScrape",
      "action": "Batch scrape multiple URLs",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "setKeyValue",
              "properties": {
                "data": "={{$response.body}}"
              }
            }
          ]
        },
        "request": {
          "url": "/batch/scrape",
          "method": "POST"
        }
      }
    },
    {
      "name": "Get batch scrape status",
      "value": "batchScrapeStatus",
      "action": "Get batch scrape status",
      "routing": {
        "request": {
          "method": "GET"
        }
      }
    },
    {
      "name": "Get batch scrape errors",
      "value": "batchScrapeErrors",
      "action": "Get batch scrape errors",
      "routing": {
        "request": {
          "method": "GET"
        }
      }
    },
    {
      "name": "List active crawls",
      "value": "crawlActive",
      "action": "List active crawls",
      "routing": {
        "request": {
          "url": "=/crawl/active",
          "method": "GET"
        }
      }
    },
    {
      "name": "Preview crawl params from prompt",
      "value": "crawlParamsPreview",
      "action": "Preview crawl params from prompt",
      "routing": {
        "request": {
          "url": "=/crawl/params-preview"
        }
      }
    },
    {
      "name": "Cancel a crawl job",
      "value": "cancelCrawl",
      "action": "Cancel a crawl job",
      "routing": {
        "request": {
          "method": "DELETE"
        }
      }
    },
    {
      "name": "Get crawl errors",
      "value": "getCrawlErrors",
      "action": "Get crawl errors",
      "routing": {
        "request": {
          "method": "GET"
        }
      }
    },
    {
      "name": "Cancel batch scrape job",
      "value": "cancelBatchScrape",
      "action": "Cancel batch scrape job",
      "routing": {
        "request": {
          "method": "DELETE"
        }
      }
    },
    {
      "name": "Get crawl status",
      "value": "getCrawlStatus",
      "action": "Get crawl status",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "setKeyValue",
              "properties": {
                "data": "={{$response.body}}"
              }
            }
          ]
        },
        "request": {
          "method": "GET"
        }
      }
    },
    {
      "name": "Extract Data",
      "value": "extract",
      "action": "Extract Data",
      "routing": {
        "request": {
          "url": "=/extract",
          "method": "POST"
        }
      }
    },
    {
      "name": "Get Extract Status",
      "value": "getExtractStatus",
      "action": "Get Extract Status",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "setKeyValue",
              "properties": {
                "data": "={{$response.body}}"
              }
            }
          ]
        },
        "request": {
          "method": "GET"
        }
      }
    },
    {
      "name": "Get team token usage",
      "value": "teamTokenUsage",
      "action": "Get team token usage",
      "routing": {
        "request": {
          "url": "=/team/token-usage",
          "method": "GET"
        }
      }
    },
    {
      "name": "Get team credit usage",
      "value": "teamCreditUsage",
      "action": "Get team credit usage",
      "routing": {
        "request": {
          "url": "=/team/credit-usage",
          "method": "GET"
        }
      }
    },
    {
      "name": "Get historical token usage",
      "value": "teamTokenUsageHistorical",
      "action": "Get historical token usage",
      "routing": {
        "request": {
          "url": "=/team/token-usage/historical",
          "method": "GET"
        }
      }
    },
    {
      "name": "Get team queue status",
      "value": "teamQueueStatus",
      "action": "Get team queue status",
      "routing": {
        "request": {
          "url": "=/team/queue-status",
          "method": "GET"
        }
      }
    },
    {
      "name": "Get historical credit usage",
      "value": "creditUsageHistorical",
      "action": "Get historical credit usage",
      "routing": {
        "request": {
          "url": "=/team/credit-usage/historical",
          "method": "GET"
        }
      }
    }
  ]

npm_readme:
  # n8n-nodes-firecrawl 🔥

  This is an n8n community node. It lets you use **[Firecrawl](https://firecrawl.dev)** in your n8n workflows.

  > 🔥 Turn entire websites into LLM-ready markdown or structured data. Scrape, crawl and extract with a single API.

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

  [Installation](#installation)
  [Operations](#operations)
  [AI Agent Tool Usage](#ai-agent-tool-usage)
  [Credentials](#credentials)
  [Compatibility](#compatibility)
  [Resources](#resources)
  [Version history](#version-history)  

  ## Installation

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

  ## Operations

  The **Firecrawl** node supports the following operations:

  ### Search
  - Search and optionally scrape search results

  ### Map
  - Input a website and get all the website urls

  ### Scrape
  - Scrapes a URL and get its content in LLM-ready format (markdown, structured data via LLM Extract, screenshot, html)

  ### Crawl
  - Scrapes all the URLs of a web page and return content in LLM-ready format

  ### Batch Scrape
  - Start a batch job to scrape multiple URLs at once

  ### Batch Scrape Status
  - Get the status/result of a batch scrape job by ID

  ### Batch Scrape Errors
  - Retrieve errors for a batch scrape job by ID

  ### Crawl Active
  - List all currently active crawl jobs for your team

  ### Crawl Params Preview
  - Preview crawl parameters generated from a natural-language prompt

  ### Cancel Crawl
  - Cancel a running crawl job by ID

  ### Get Crawl Errors
  - Retrieve errors for a crawl job by ID

  ### Get Crawl Status
  - Check the current status of a crawl job

  ### Extract Data
  - Get structured data from single page, multiple pages or entire websites with AI

  ### Get Extract Status
  - Get the current status of an extraction job

  ### Team Token Usage
  - Get remaining and plan tokens for the authenticated team

  ### Team Credit Usage
  - Get remaining and plan credits for the authenticated team

  ### Historical Credit Usage
  - Get historical credit usage for your team

  ### Historical Token Usage
  - Get historical token usage for your team

  ### Team Queue Status
  - Get your team's current queue load (waiting, active, max concurrency)

  ## AI Agent Tool Usage

  This node can be used as a tool with n8n's AI Agent node, allowing AI agents to scrape, crawl, and extract data from websites dynamically.

  ### Requirements

  - **n8n version 1.79.0 or higher** is required for AI tool support
  - Set the environment variable `N8N_COMMUNITY_PACKAGES_ALLOW_TOOL_USAGE=true` to enable community nodes as AI tools

  ### Docker Configuration

  ```yaml
  version: '3'
  services:
    n8n:
      image: n8nio/n8n
      environment:
        - N8N_COMMUNITY_PACKAGES_ALLOW_TOOL_USAGE=true
      ports:
        - "5678:5678"
      volumes:
        - ~/.n8n:/home/node/.n8n
  ```

  ### Using with AI Agents

  1. Add the **AI Agent** node to your workflow
  2. Connect the **Firecrawl** node as a tool input to the AI Agent
  3. The AI agent can now dynamically decide when and how to use Firecrawl operations

  ### Dynamic Parameters with $fromAI()

  When using Firecrawl as an AI tool, you can let the AI agent decide parameter values dynamically using the `$fromAI()` function. Click the "Let the model define this parameter" button next to any field to enable this feature.

  Example expressions:
  ```javascript
  // Let AI decide the URL to scrape
  {{ $fromAI("url", "The URL to scrape", "string") }}

  // Let AI decide the search query
  {{ $fromAI("query", "Search query for finding relevant pages", "string") }}

  // Let AI decide whether to include subdomains
  {{ $fromAI("includeSubdomains", "Whether to include subdomains", "boolean", false) }}
  ```

  ### Best Practices for AI Tool Usage

  1. **Use clear operation names**: The AI agent uses operation descriptions to decide when to use each tool
  2. **Provide context in prompts**: When using the Extract operation, provide clear prompts to guide data extraction
  3. **Set reasonable limits**: Configure default limits to prevent excessive API usage
  4. **Use the Map operation first**: For unknown sites, use Map to discover URLs before scraping

  ## Credentials

  To use the Firecrawl node, you need to:

  1. Sign up for a Firecrawl account at [https://firecrawl.dev](https://firecrawl.dev)
  2. Get your API key from the Firecrawl dashboard
  3. In n8n, add your Firecrawl API key to the node's credentials

  > [!CAUTION]  
  > The API key should be kept secure and never shared publicly

  ## Compatibility

  - **Minimum n8n version: 1.79.0** (required for AI tool support)
  - Tested against n8n versions: 1.79.0+
  - Node.js version: 18 or higher

  > **Note**: If you don't need AI tool support, earlier versions of n8n may work, but 1.79.0+ is recommended.

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  * [Firecrawl Documentation](https://firecrawl.dev/docs)
  * [Firecrawl API Reference](https://docs.firecrawl.dev/api-reference/introduction)

  ## Version history

  ### 1.1.0
  - **AI Agent Tool Support**: Node can now be used as a tool with n8n's AI Agent node
    - Added `usableAsTool: true` to enable tool mode
    - Enhanced all field descriptions for better AI context understanding
    - Supports `$fromAI()` function for dynamic parameter values
  - Updated minimum n8n version requirement to 1.79.0
  - Improved operation descriptions for clearer AI agent decision making

  ### 1.0.6
  - Add support for additional Firecrawl endpoints:
    - Batch Scrape (start/status/errors)
    - Crawl Active
    - Crawl Params Preview
    - Cancel Crawl 
    - Get Crawl Errors
    - Team Token Usage
    - Team Credit Usage
    - Historical Credit Usage
    - Historical Token Usage
    - Team Queue Status
  - Wire new operations into the node and align with Firecrawl API v2

  ### 1.0.5
  - API version updated to [/v2](https://docs.firecrawl.dev/migrate-to-v2)
  - Unified sitemap configuration parameters in Map operation
  - Replaced `ignoreSitemap` and `sitemapOnly` with unified `sitemap` parameter
  - `sitemap` parameter now accepts: "include" (default), "only", or "skip"

  ### 1.0.4
  - Add additional fields property for custom data in Firecrawl API nodes

  ### 1.0.2
  - Add integration parameter in all endpoint calls

  ### 1.0.1
  - Support for Search operation

  ### 1.0.0
  - Initial release
  - Support for all basic Firecrawl operations:
    - Map URLs
    - Scrape URL
    - Crawl Website
    - Get Crawl Status
    - Extract Data
    - Get Extract Status
  - Basic error handling and response processing
  - Support for custom body options

  ## More information

  Refer to our [documentation on creating nodes](https://docs.n8n.io/integrations/creating-nodes/) for detailed information on building your own nodes.

  ## License

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

ai_documentation_summary:
  {"purpose":"The Firecrawl node enables n8n users to scrape, crawl, and extract data from websites using the Firecrawl API, providing LLM-ready markdown or structured data through various operations like search, scrape, crawl, and AI-powered extraction.","capabilities":["Search and scrape search results","Map a website to discover all URLs","Scrape a single URL with content in markdown or structured format","Crawl a website to extract content from all linked pages","Batch scrape multiple URLs simultaneously","Monitor batch scrape job status and errors","Manage active crawl jobs and cancel running ones","Preview crawl parameters from natural language prompts","Extract structured data from single or multiple pages/websites using AI","Track team token and credit usage, historical usage, and queue status"],"authentication":"API key required; obtained from the Firecrawl dashboard at https://firecrawl.dev","commonUseCases":["Extracting website content for use in AI models or knowledge bases","Automating data collection from public websites","Dynamic website crawling and content extraction via AI agents","Monitoring team resource usage (tokens and credits)","Batch processing multiple URLs for structured data output"],"limitations":["Requires n8n version 1.79.0 or higher for AI agent tool support","AI tool functionality depends on environment variable `N8N_COMMUNITY_PACKAGES_ALLOW_TOOL_USAGE=true`","No support for custom headers or advanced scraping configurations beyond Firecrawl's API capabilities","Limited to websites accessible via Firecrawl's supported domains and policies"],"relatedNodes":["AI Agent","Webhook","HTTP Request"]}


node_type: n8n-nodes-octagon.octagonAgents
package_name: n8n-nodes-octagon
display_name: Octagon
description: Financial AI agents
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-01-07 20:08:15
author_name: octagonai
author_github_url: https://github.com/OctagonAI/
npm_package_name: n8n-nodes-octagon
npm_version: 1.0.8
community_fetched_at: 2026-01-07T20:08:15.908Z
ai_summary_generated_at: 2026-01-08 10:45:32
npm_readme:
  # Octagon for n8n

  A professional n8n node that integrates with [Octagon's AI Agents API](https://docs.octagonagents.com/) for financial and market research. This node provides access to Octagon's specialized AI agents for analyzing SEC filings, earnings transcripts, stock data, private market intelligence, and more.

  ## Features

  - **🔄 Smart Router Agent**: Octagon Agent automatically routes queries to the most appropriate specialized agent
  - **15 Specialized Agents**: Access to all Octagon's AI agents for different research domains
  - **🔒 Secure Authentication**: Built-in credential management for API keys
  - **📊 Rich Output**: Returns analysis with source citations and metadata
  - **⚡ Simplified Interface**: Clean, professional UI with essential options only
  - **🛡️ Error Handling**: Graceful error handling with detailed error messages

  ## Available Agents

  ### 🔄 **Smart Router (Default)**

  - **Octagon Agent** (`octagon-agent`) - Intelligent router that automatically selects the best specialized agent for your query

  ### 📈 **Public Market Agents**

  - **SEC Filings Agent** (`octagon-sec-agent`) - Analyzes SEC filings data
  - **Transcripts Agent** (`octagon-transcripts-agent`) - Analyzes earnings call transcripts
  - **Stock Data Agent** (`octagon-stock-data-agent`) - Analyzes stock market data
  - **Financials Agent** (`octagon-financials-agent`) - Analyzes financial statements
  - **Holdings Agent** (`octagon-holdings-agent`) - Analyzes institutional ownership and holdings
  - **Crypto Agent** (`octagon-crypto-agent`) - Analyzes cryptocurrency market data

  ### 🏢 **Private Market Agents**

  - **Companies Agent** (`octagon-companies-agent`) - Provides private company information
  - **Funding Agent** (`octagon-funding-agent`) - Analyzes private company funding data
  - **Funds Agent** (`octagon-funds-agent`) - Analyzes private funds
  - **Deals Agent** (`octagon-deals-agent`) - Analyzes M&A and IPO data
  - **Investors Agent** (`octagon-investors-agent`) - Provides investor information
  - **Debts Agent** (`octagon-debts-agent`) - Analyzes private debts, borrowers, and lenders

  ### 🔍 **Research Agents**

  - **Scraper Agent** (`octagon-scraper-agent`) - Extracts data from websites
  - **Deep Research Agent** (`octagon-deep-research-agent`) - Conducts in-depth research

  ## Installation

  ### Prerequisites

  1. **Octagon API Key**: Get your free API key from [Octagon](https://octagonagents.com)
     - Sign up for an account
     - Go to Settings → API Keys
     - Create a new API key

  2. **n8n Installation**: This node requires n8n v0.198.0 or higher

  ### Install in n8n Cloud

  > **Note**: Only the n8n instance owner can install and manage community nodes. The instance owner is the person who sets up and manages user management. All members of an n8n instance can use already installed community nodes in their workflows.

  #### Install a verified community node

  To install the Octagon community node:

  1. **Access the nodes panel**: Go to the Canvas and open the nodes panel (either by selecting '+' or pressing Tab).

  2. **Search for Octagon**: Search for "Octagon" in the node search. If there is a matching verified community node, you will see a **More from the community** section at the bottom of the nodes panel.

  3. **Select the node**: Select the Octagon node you want to install. This takes you to a detailed view of the node, showing all the supported actions.

  4. **Install**: Select **Install**. This will install the node for your instance and enable all members to use it in their workflows.

  5. **Start using**: You can now add the Octagon node to your workflows.

  #### Alternative installation method

  If the node doesn't appear in the Canvas search:

  1. **Go to Settings**: Navigate to **Settings** → **Community nodes**.
  2. **Install a community node**: Click **Install a community node**.
  3. **Enter package name**: Enter the npm package name: `n8n-nodes-octagon`
  4. **Install**: Click **Install** and wait for the installation to complete.
  5. **Verify**: Go to your workflow editor and search for "Octagon" in the nodes panel.

  > **Important**: Community nodes in n8n Cloud are sandboxed and reviewed for security. Installation may take a few minutes to complete.

  #### Uninstall a community node

  To uninstall the Octagon community node:

  1. **Go to Settings**: Navigate to **Settings** → **Community nodes**.
  2. **Find the node**: Locate the Octagon node in your installed community nodes.
  3. **Open options**: Select **Options** (three dots menu) on the node.
  4. **Uninstall**: Select **Uninstall package**.
  5. **Confirm**: Select **Uninstall Package** in the confirmation modal.

  ## Usage

  ### Quick Start

  1. **Add Node**: Search for "Octagon" in n8n workflow
  2. **Configure**:
     - **Add Credentials**: Go to Credentials → "Octagon API"
     - **Agent**: Use "Octagon Agent (Router)" for automatic routing (default)
     - **Query**: Enter your financial research question
  3. **Execute**: Run the workflow to get AI-powered analysis with citations

  ### Node Configuration

  The node interface is clean and simple:

  - **🎯 Agent**: Select from router or 14 specialized agents
  - **💬 Query**: Your research question (supports complex queries)
  - **⚙️ Additional Options**:
    - Include Token Usage (optional)

  ### Example Queries

  #### Universal Queries (using Octagon Agent Router)

  ```
  Tell me about Apple's latest earnings performance
  What's happening with Tesla's stock price?
  Analyze SpaceX's latest funding round
  Compare Microsoft vs Google revenue growth
  ```

  #### Specialized Agent Queries

  ```
  # SEC Filings Agent
  What were Apple's revenue numbers in Q3 2023?
  Analyze Tesla's latest 10-K filing for risk factors

  # Transcripts Agent
  What did Apple's CEO say about iPhone sales in the latest earnings call?
  Analyze management guidance from Tesla's Q4 2023 earnings call

  # Stock Data Agent
  What's the 52-week high and low for AAPL?
  Compare Tesla's stock performance to the S&P 500 this year

  # Companies Agent (Private Market)
  Tell me about Stripe's latest funding round
  What is the current valuation of SpaceX?
  ```

  ### Output Format

  The node returns a JSON object with the following structure:

  ```json
  {
  	"agent": "octagon-agent",
  	"query": "Tell me about Apple's latest earnings",
  	"analysis": "Apple reported strong Q4 2023 results with revenue of $89.5 billion...",
  	"sources": [
  		{
  			"order": 1,
  			"name": "Apple Inc. (10-Q) - 2023-Q4, Page: 10",
  			"url": "https://octagon-sec-filings.s3.amazonaws.com/..."
  		}
  	],
  	"metadata": {
  		"apiType": "responses",
  		"timestamp": "2024-01-15T10:30:00.000Z"
  	},
  	"usage": {
  		"prompt_tokens": 150,
  		"completion_tokens": 800,
  		"total_tokens": 950
  	}
  }
  ```

  ## Best Practices

  1. **🎯 Use the Router**: Start with "Octagon Agent (Router)" - it automatically selects the best specialized agent
  2. **📝 Be Specific**: The more specific your query, the more accurate the response
  3. **🔄 One Task Per Query**: Focus each query on a single analytical task for best results
  4. **📅 Provide Context**: Include relevant context like time periods, specific metrics, or companies
  5. **🔗 Follow Citations**: Always check the source citations for verification

  ## Error Handling

  The node includes comprehensive error handling:

  - **🔑 Authentication Errors**: Invalid API keys, expired tokens
  - **🌐 Network Errors**: Connection issues, timeouts, rate limits
  - **📝 Query Errors**: Malformed or empty queries
  - **🤖 Agent Errors**: Agent-specific errors or limitations

  Errors are returned in a structured format:

  ```json
  {
  	"error": true,
  	"message": "Authentication failed. Please check your API key.",
  	"query": "Your original query",
  	"agent": "octagon-agent",
  	"timestamp": "2024-01-15T10:30:00.000Z"
  }
  ```

  ## Troubleshooting

  ### Common Issues

  1. **Node not appearing**: Restart n8n after installation
  2. **Icon not loading**: Clear browser cache
  3. **Authentication errors**: Verify API key in credentials
  4. **Rate limiting**: Check your Octagon plan limits

  ### Support Channels

  - **📚 Documentation**: [Octagon API Documentation](https://docs.octagonagents.com/)
  - **🐛 Issues**: [GitHub Issues](https://github.com/octagon/octagon-n8n-node/issues)
  - **💬 Support**: Contact Octagon support for API-related questions
  - **📧 Email**: support@octagonagents.com

  ## License

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

  ## Contributing

  Contributions are welcome! Please read our [Contributing Guidelines](CONTRIBUTING.md) before submitting pull requests.

  ## Changelog

  See [CHANGELOG.md](CHANGELOG.md) for release history.

  ---

  **⚠️ Note**: This node requires an active Octagon API subscription. Some agents may have usage limits or require premium access. Get started with a free API key at [octagonagents.com](https://octagonagents.com).

ai_documentation_summary:
  {"purpose":"The Octagon node integrates with Octagon's AI Agents API to perform financial and market research, enabling users to analyze SEC filings, earnings transcripts, stock data, private market intelligence, and more using specialized AI agents.","capabilities":["Routes queries to the most appropriate specialized agent via Smart Router Agent","Access to 15 specialized agents including SEC filings, earnings transcripts, stock data, private market intelligence, and deep research","Returns analysis with source citations and metadata","Secure API key authentication with built-in credential management","Supports complex natural language queries for financial and market research","Includes error handling with detailed messages"],"authentication":"API key required (obtained from Octagon dashboard under Settings → API Keys)","commonUseCases":["Analyzing SEC filings for financial risk and performance","Extracting insights from earnings call transcripts","Monitoring stock performance and market trends","Researching private company funding and M&A deals","Comparing financial metrics across companies"],"limitations":[],"relatedNodes":["n8n-nodes-base","n8n-nodes-webhooks","n8n-nodes-database"]}


node_type: n8n-nodes-blooio.blooioMessaging
package_name: n8n-nodes-blooio
display_name: Blooio Messaging
description: Send messages via the Blooio API (v3)
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-01-07 20:08:15
author_name: dave_xt
author_github_url: https://github.com/blooio/
npm_package_name: n8n-nodes-blooio
npm_version: 0.1.2
community_fetched_at: 2026-01-07T20:08:15.910Z
ai_summary_generated_at: 2026-01-08 10:45:32
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "message",
      "options": [
        {
          "name": "Message",
          "value": "message"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "send",
      "options": [
        {
          "name": "Send",
          "value": "send",
          "action": "Send a message",
          "routing": {
            "request": {
              "url": "=/v1/api/messages",
              "method": "POST",
              "headers": {
                "Idempotency-Key": "={{$parameter[\"idempotencyKey\"]}}"
              }
            }
          },
          "description": "Send a single text or attachment message"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Send",
      "value": "send",
      "action": "Send a message",
      "routing": {
        "request": {
          "url": "=/v1/api/messages",
          "method": "POST",
          "headers": {
            "Idempotency-Key": "={{$parameter[\"idempotencyKey\"]}}"
          }
        }
      },
      "description": "Send a single text or attachment message"
    }
  ]

npm_readme:
  # n8n-nodes-blooio

  This is an n8n community node for [Blooio](https://blooio.com). It lets you send and receive iMessages, RCS, SMS, and more through the Blooio API in your n8n workflows.

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

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

  ## Installation

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

  ## Operations

  ### Messages

  - **Send Message** - Send text messages and attachments via iMessage/SMS/RCS
  - **Get Message** - Retrieve complete message details including delivery status
  - **Get Message Status** - Check the delivery status of a message
  - **Cancel Message** - Cancel a queued or scheduled message

  ### Contacts

  - **Check Capabilities** - Check if a phone number or email supports iMessage, SMS, or RCS

  ### Webhooks

  - **Get Webhook** - Get the currently configured webhook URL
  - **Set Webhook** - Configure webhook URL for receiving inbound messages and delivery notifications

  ## Credentials

  ### API Key Authentication

  1. Sign up for a Blooio account at [https://blooio.com](https://blooio.com)
  2. Navigate to your Dashboard
  3. Go to Settings > API Keys
  4. Create a new API key or copy an existing one
  5. In n8n, create a new Blooio credential:
     - Select "API Key" as the authentication method
     - Paste your API key
     - Save the credential

  ## Compatibility

  Compatible with n8n@1.60.0 or later

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  - [Blooio API Documentation](https://docs.blooio.com)
  - [Blooio Dashboard](https://dashboard.blooio.com)
  - [Support](mailto:support@blooio.com)

ai_documentation_summary:
  {"purpose":"The Blooio Messaging node enables integration with the Blooio API (v3) to send and receive iMessages, RCS, and SMS messages, as well as manage contacts and webhooks within n8n workflows.","capabilities":["Send messages via iMessage, SMS, or RCS with attachments","Retrieve message details and delivery status","Check message delivery status","Cancel queued or scheduled messages","Check if a phone number or email supports iMessage, SMS, or RCS","Configure inbound webhooks for receiving messages and delivery notifications"],"authentication":"API key required","commonUseCases":["Automated customer communication via SMS, iMessage, or RCS","Tracking message delivery status in real-time","Validating recipient capabilities (e.g., iMessage support)","Setting up webhook-based message receipt and notifications","Canceling messages that were incorrectly sent"],"limitations":[],"relatedNodes":["n8n-nodes-base.webhook","n8n-nodes-base.httpRequest"]}


node_type: @lnkbio/n8n-nodes-lnkbio.lnkBio
package_name: @lnkbio/n8n-nodes-lnkbio
display_name: Lnk.Bio
description: Create and manage links on Lnk.Bio
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-01-07 20:08:15
author_name: lnkbiodevs
author_github_url: https://github.com/gimucco/n8n-nodes-lnkbio.git
npm_package_name: @lnkbio/n8n-nodes-lnkbio
npm_version: 0.2.2
community_fetched_at: 2026-01-07T20:08:15.911Z
ai_summary_generated_at: 2026-01-08 10:45:32
properties_schema:
  [
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create Link",
          "value": "create",
          "action": "Create a new link",
          "description": "Create a new Lnk"
        },
        {
          "name": "Delete Link",
          "value": "delete",
          "action": "Delete an existing link",
          "description": "Delete an existing Lnk"
        }
      ],
      "displayName": "Operation",
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create Link",
      "value": "create",
      "action": "Create a new link",
      "description": "Create a new Lnk"
    },
    {
      "name": "Delete Link",
      "value": "delete",
      "action": "Delete an existing link",
      "description": "Delete an existing Lnk"
    }
  ]

npm_readme:
  # n8n-nodes-lnkbio

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

  Lnk.Bio is a linkinbio service used by more than 1.5M creators to manage their social media links.

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

  [Installation](#installation)  
  [Operations](#operations)  
  [Credentials](#credentials)  
  [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

  Lnk.Bio only support 2 Actions: Create a Lnk, and Delete a Lnk.

  There are no triggers, as Lnk.Bio is considered output-only when it comes to automation services.

  ## Credentials

  You need a Client ID and Client Secret from Lnk.Bio to correctly authenticate your API calls.

  1. Register a free account from https://lnk.bio/signup
  2. Verify your email
  3. Navigate to Tools => Developers/API
  4. Create a new Public App to retrieve the Client ID and Client Secret.

  Do note that if you're only looking to automate your own Lnk.Bio account, you won't need to go through app review.

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  * [Lnk.Bio help site](https://help.lnk.bio)
  * [Lnk.Bio API specs](https://api.lnk.bio)

  ## Version history

  * 0.2.2 - Added scheduled_from and scheduled_to parameters to align with the latest version of the Lnk.Bio APIs. The new parameters allow users to schedule links in advance and/or set an expiration date.

  * 0.1.9 - Add pairedItem to response handling in LnkBio node

  * 0.1.7 - Updated deprecated requestOAuth2 to httpRequestWithAuthentication; Implemented continueOnFail(); Removed includeCredentialsOnAuthorization and bodyFormat;

  * 0.1.5 - Credentials fix

  * 0.1.3 - Credentials fix

  * 0.1.2 - Lint Fixes

  * 0.1.0 - initial version

ai_documentation_summary:
  {"purpose":"The Lnk.Bio node allows users to create and delete links on Lnk.Bio, a platform used by creators to manage their social media links in automated workflows.","capabilities":["Create a Lnk","Delete a Lnk","Schedule links with start and end dates using scheduled_from and scheduled_to parameters"],"authentication":"API key authentication via Client ID and Client Secret obtained from Lnk.Bio's Developer API after registering a Public App.","commonUseCases":["Automating the creation of social media links for content creators","Scheduling links to go live at specific times or expire after a set period","Managing multiple links in bulk through n8n workflows"],"limitations":["No triggers available; the service is output-only and cannot be used to listen for events or updates.","Requires manual app registration and approval for API access (though public apps bypass review)."],"relatedNodes":["n8n core nodes for data transformation","nodes that handle API authentication or workflow scheduling"]}


node_type: n8n-nodes-ticktick.tickTick
package_name: n8n-nodes-ticktick
display_name: TickTick
description: Interact with TickTick tasks and projects
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-01-07 20:08:15
author_name: hansdoe
author_github_url: https://github.com/hansdoebel/
npm_package_name: n8n-nodes-ticktick
npm_version: 1.3.0
community_fetched_at: 2026-01-07T20:08:15.911Z
ai_summary_generated_at: 2026-01-08 10:45:32
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "task",
      "options": [
        {
          "name": "Task",
          "value": "task"
        },
        {
          "name": "Project",
          "value": "project"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Complete",
          "value": "complete",
          "action": "Complete a task"
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create a task"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a task"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a task"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a task"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "task"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a project"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a project"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a project"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a project"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "project"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Complete",
      "value": "complete",
      "action": "Complete a task"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a task"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a task"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a task"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a task"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a project"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a project"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a project"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a project"
    }
  ]

npm_readme:
  # n8n-nodes-ticktick

  n8n community node for integrating TickTick with your workflows. Manage tasks, projects, and productivity seamlessly.

  ## Table of Contents

  - [Installation](#installation)  
  - [Credentials](#credentials)  
  - [Task Operations](#task-operations)  
  - [Project Operations](#project-operations)  
  - [Compatibility](#compatibility)  
  - [Known Issues](#known-issues)  
  - [Resources](#resources)  
  - [Version History](#version-history)

  ## Installation

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

  1. Go to **Settings** > **Community Nodes.**
  2. Select **Install.**
  3. Type `n8n-nodes-ticktick` (and version number if required) into **npm Package Name** field
  5. Agree to the risks of using community nodes: select I understand the risks of installing unverified code from a public source.
  6. Select Install. n8n installs the node, and returns to the Community Nodes list in Settings.

  ## Credentials

  ### TickTick Session API (V2) - Email/Password

  For access to V2 API features (sync, tags, etc.):

  1. In n8n: Create new credential → **TickTick Session API**
  2. Enter your TickTick **email** and **password**
  3. Save

  **Note**: This authentication method provides access to TickTick's undocumented V2 API, which offers more features than the official V1 API.

  ### TickTick API Token (V1) - Recommended for V1 API

  1. In TickTick: Account Settings → API Token → "Manage"
  2. Copy token
  3. In n8n: Create new credential → **TickTick API Token** → Paste token → Save

  ### TickTick OAuth2 (V1)

  1. Visit [TickTick Developer](https://developer.ticktick.com/) → Manage Apps → New App
  2. Copy **Client ID** & **Client Secret**
  3. In n8n: Create new credential → **TickTick OAuth2 API** → Paste credentials → Connect

  ---

  ## TickTick V1 API (Official)

  The following operations use the official TickTick Open API (V1) and work with **API Token** or **OAuth2** credentials.

  ### Task Operations (V1)

  | Operation | Required Parameters | Optional/Additional Fields |
  |-----------|-------------------|--------------------------|
  | **Create** | Title | Project, All Day, Content, Description, Due Date, Priority, Reminders, Start Date, Status, Items (Subtasks) |
  | **Get** | Task ID, Project ID | — |
  | **Update** | Task ID | Project ID, Title, Content, Description, Due Date, Priority, Reminders, Start Date, Status, Items, All Day |
  | **Complete** | Task ID, Project ID | — |
  | **Delete** | Task ID, Project ID | — |

  ### Project Operations (V1)

  | Operation | Mode/Type | Required Parameters | Optional Fields |
  |-----------|-----------|-------------------|-----------------|
  | **Create** | — | Project Name | Color, Kind, Sort Order, View Mode |
  | **Get** | All Projects | — | — |
  | **Get** | Specific Project | Project ID | — |
  | **Get** | With Tasks & Columns | Project ID | — |
  | **Update** | — | Project ID | Name, Color, Kind, Sort Order, View Mode |
  | **Delete** | — | Project ID | — |

  ---

  ## TickTick V2 API (Undocumented Session API)

  The following operations require **TickTick Session API** (Email/Password) credentials and provide access to advanced features not available in the V1 API.

  > **Note**: V2 authentication also supports all V1 task operations (Create, Get, Update, Complete, Delete) and all V1 project operations (Create, Get, Update, Delete). The operations listed below are **additional V2-only features** not available with V1 API Token or OAuth2 credentials.

  ### Task Operations (V2 Only)

  | Operation | Description | Required Parameters | Optional/Additional Fields |
  |-----------|-------------|-------------------|--------------------------|
  | **List All** | List all tasks across projects | — | Limit, Project Filter, Status Filter (All/Active/Completed), Include Deleted |
  | **List Completed** | Get completed tasks in date range | — | Limit, Date Range (From/To) |
  | **List Deleted** | Get deleted/trashed tasks | — | Limit |
  | **Move** | Move task to different project | Task, To Project | — |



  ### Sync Operations (V2)

  | Operation | Description | Returns |
  |-----------|-------------|---------|
  | **Sync All** | Get all data from sync endpoint | Tasks, Projects, Tags, Habits, Project Groups, Column Data, User Info |

  ### Tag Operations (V2)

  | Operation | Description | Required Parameters | Optional Fields |
  |-----------|-------------|-------------------|-----------------|
  | **Create** | Create a new tag | Tag Name | Label, Sort Order, Color, Parent Tag |
  | **Update** | Update existing tag | Tag | Name, Label, Sort Order, Color, Parent Tag |
  | **Delete** | Delete a tag | Tag | — |
  | **List** | List all tags | — | — |

  ---

  ## Compatibility

  Tested successfully on 2026-01-06 with:

  - n8n Version: 2.2.3
  - Node Version: 22.11.0
  - pnpm Version: 10.27.0
  - No extra packages required (Luxon is bundled)

  ## Known Issues

  ### V1 API (Official)
  - **Inbox Handling**: The "Default Inbox" is handled internally as the "inbox" ID. It supports fetching data (tasks) but does not support "Get Specific Project" details as it is not a standard project.
  - **Empty Responses**: Operations like delete or complete often return `200 OK` with no body. This node generates a success message for these cases.

  ### V2 API (Undocumented)
  - **Undocumented API**: The V2 Session API is not officially documented by TickTick. Endpoints and behaviors were discovered through reverse engineering and may change without notice.
  - **Rate Limits Unknown**: Rate limiting behavior for the V2 API is undocumented and unknown. Use responsibly to avoid potential account issues.
  - **No Official Support**: TickTick does not provide official support for the V2 Session API. Use at your own risk.
  - **Authentication Security**: Session API requires email/password credentials. These are stored securely by n8n but consider the security implications for your use case.
  - **Breaking Changes**: Since the API is undocumented, TickTick may change endpoints or behavior at any time without warning.

  ### General
  - **Unofficial Node**: Community-maintained node. Not affiliated with or endorsed by TickTick or n8n.

  ## Resources

  - [n8n Website](https://n8n.io/)
  - [n8n Community Nodes Documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [n8n Documentation for LLMs](https://docs.n8n.io/llms.txt)
  - [TickTick Website](https://www.ticktick.com/)
  - [TickTick Open API](https://developer.ticktick.com/docs#/openapi)
  - [GitHub Repository](https://github.com/hansdoebel/n8n-nodes-ticktick)
  - [dev-mirzabicer/ticktick-sdk](https://github.com/dev-mirzabicer/ticktick-sdk)
  - [lazeroffmichael/ticktick-py](https://github.com/lazeroffmichael/ticktick-py/)
  - [@n8n/node-cli README](https://raw.githubusercontent.com/n8n-io/n8n/refs/heads/master/packages/%40n8n/node-cli/README.md)


  ## Version History

  - `2.0.0` – **V2 API Support**: Added TickTick Session API (email/password) authentication with support for undocumented V2 endpoints. New resources: Tags, Sync. New V2-only task operations: List All, List Completed, List Deleted, Move. All V1 operations now support both V1 and V2 authentication methods.
  - `1.3.0` – Major refactor: Fixed API request context, added Inbox support, expanded Task/Project fields, added Subtask support, improved Project Get modes.
  - `1.2.2` – Documentation and metadata update only
  - `1.2.1` – Inbox support, API Token credential, improved task/project operations, success messages
  - `1.1.1` – Added Luxon for date formatting (thank you [mrozekadam](https://github.com/mrozekadam))
  - `1.0.0` – Initial release

ai_documentation_summary:
  {"purpose":"The TickTick node enables integration with TickTick's task and project management system, allowing users to create, update, retrieve, and manage tasks and projects via both the official V1 API and the advanced, undocumented V2 Session API (with email/password authentication).","capabilities":["Create, read, update, and delete tasks","Create, read, update, and delete projects","List all tasks, completed tasks, and deleted tasks (V2 only)","Move tasks between projects (V2 only)","Create, update, and delete tags (V2 only)","Sync all data including tasks, projects, tags, habits, and user info (V2 only)","Access inbox tasks (V1 only, handled internally as 'inbox' ID)"],"authentication":"Three authentication methods supported: (1) TickTick Session API (V2) using email and password (for full V2 features), (2) TickTick API Token (V1) via API token from settings (recommended for V1), (3) TickTick OAuth2 (V1) using Client ID and Client Secret from developer portal.","commonUseCases":["Automatically create or update tasks based on triggers from other apps","Sync tasks between n8n and TickTick for productivity workflows","Fetch completed or deleted tasks for reporting or cleanup","Manage project structures and tags for better organization","Integrate with calendars or email to create tasks on action"],"limitations":["V1 API does not support 'Get Specific Project' for the Default Inbox (treated as a special case)","V1 API operations return empty bodies on success (e.g., delete or complete) — no data payload","V2 API features (tags, sync, deleted tasks) require email/password login and are not available via API token or OAuth2","No support for advanced filters or sorting beyond what's defined in the API"],"relatedNodes":["n8n-nodes-base","n8n-nodes-webhook","n8n-nodes-database"]}


node_type: @apaleo/n8n-nodes-apaleo-official.apaleo
package_name: @apaleo/n8n-nodes-apaleo-official
display_name: Apaleo Official
description: Interact with Apaleo API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-01-07 20:08:15
author_name: pgrm
author_github_url: https://github.com/apaleo/n8n-nodes-apaleo.git
npm_package_name: @apaleo/n8n-nodes-apaleo-official
npm_version: 1.0.26
community_fetched_at: 2026-01-07T20:08:15.912Z
ai_summary_generated_at: 2026-01-08 10:45:32
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "Availability",
      "options": [
        {
          "name": "Availability",
          "value": "Availability"
        },
        {
          "name": "ReservationAvailability",
          "value": "ReservationAvailability"
        }
      ],
      "displayName": "Resource",
      "displayOptions": {
        "show": {
          "group": [
            "availability-v1"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "resource",
      "type": "options",
      "default": "Block",
      "options": [
        {
          "name": "Block",
          "value": "Block"
        },
        {
          "name": "BlockAction",
          "value": "BlockActions"
        },
        {
          "name": "Booking",
          "value": "Booking"
        },
        {
          "name": "Group",
          "value": "Group"
        },
        {
          "name": "Offer",
          "value": "Offer"
        },
        {
          "name": "Reservation",
          "value": "Reservation"
        },
        {
          "name": "ReservationAction",
          "value": "ReservationActions"
        },
        {
          "name": "Type",
          "value": "Types"
        }
      ],
      "displayName": "Resource",
      "displayOptions": {
        "show": {
          "group": [
            "booking-v1"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "resource",
      "type": "options",
      "default": "Folio",
      "options": [
        {
          "name": "Folio",
          "value": "Folio"
        },
        {
          "name": "FolioAction",
          "value": "FolioActions"
        },
        {
          "name": "FolioPayment",
          "value": "FolioPayments"
        },
        {
          "name": "Invoice",
          "value": "Invoice"
        },
        {
          "name": "InvoiceAction",
          "value": "InvoiceAction"
        },
        {
          "name": "SubLedger",
          "value": "SubLedger"
        },
        {
          "name": "Type",
          "value": "Types"
        }
      ],
      "displayName": "Resource",
      "displayOptions": {
        "show": {
          "group": [
            "finance-v1"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "resource",
      "type": "options",
      "default": "Property",
      "options": [
        {
          "name": "Property",
          "value": "Property"
        },
        {
          "name": "Unit",
          "value": "Unit"
        },
        {
          "name": "UnitAttribute",
          "value": "UnitAttribute"
        },
        {
          "name": "UnitGroup",
          "value": "UnitGroup"
        }
      ],
      "displayName": "Resource",
      "displayOptions": {
        "show": {
          "group": [
            "inventory-v1"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "resource",
      "type": "options",
      "default": "BookingLogs",
      "options": [
        {
          "name": "BookingLog",
          "value": "BookingLogs"
        },
        {
          "name": "FinanceLog",
          "value": "FinanceLogs"
        }
      ],
      "displayName": "Resource",
      "displayOptions": {
        "show": {
          "group": [
            "logs-v1"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "resource",
      "type": "options",
      "default": "Maintenance",
      "options": [
        {
          "name": "Maintenance",
          "value": "Maintenance"
        },
        {
          "name": "Operation",
          "value": "Operations"
        }
      ],
      "displayName": "Resource",
      "displayOptions": {
        "show": {
          "group": [
            "operations-v1"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "resource",
      "type": "options",
      "default": "AgeCategory",
      "options": [
        {
          "name": "AgeCategory",
          "value": "AgeCategory"
        },
        {
          "name": "CancellationPolicy",
          "value": "CancellationPolicy"
        },
        {
          "name": "Company",
          "value": "Company"
        },
        {
          "name": "CorporateCode",
          "value": "CorporateCodes"
        },
        {
          "name": "NoShowPolicy",
          "value": "NoShowPolicy"
        },
        {
          "name": "PromoCode",
          "value": "PromoCodes"
        },
        {
          "name": "Rate",
          "value": "Rate"
        },
        {
          "name": "RatePlan",
          "value": "RatePlan"
        },
        {
          "name": "Service",
          "value": "Service"
        }
      ],
      "displayName": "Resource",
      "displayOptions": {
        "show": {
          "group": [
            "rateplan-v1"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "resource",
      "type": "options",
      "default": "Reports",
      "options": [
        {
          "name": "Report",
          "value": "Reports"
        }
      ],
      "displayName": "Resource",
      "displayOptions": {
        "show": {
          "group": [
            "reports-v1"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "resource",
      "type": "options",
      "default": "CapturePolicies",
      "options": [
        {
          "name": "CapturePolicy",
          "value": "CapturePolicies"
        },
        {
          "name": "CityTax",
          "value": "CityTax"
        },
        {
          "name": "CustomSubAccount",
          "value": "CustomSubAccounts"
        },
        {
          "name": "FeatureSetting",
          "value": "FeatureSettings"
        },
        {
          "name": "InvoiceAddress",
          "value": "InvoiceAddress"
        },
        {
          "name": "Language",
          "value": "Languages"
        },
        {
          "name": "MarketSegment",
          "value": "MarketSegment"
        },
        {
          "name": "PropertySetting",
          "value": "PropertySettings"
        },
        {
          "name": "TimeSliceDefinition",
          "value": "TimeSliceDefinitions"
        }
      ],
      "displayName": "Resource",
      "displayOptions": {
        "show": {
          "group": [
            "settings-v1"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "resource",
      "type": "options",
      "default": "HealthCheck",
      "options": [
        {
          "name": "HealthCheck",
          "value": "HealthCheck"
        },
        {
          "name": "Subscription",
          "value": "Subscriptions"
        }
      ],
      "displayName": "Resource",
      "displayOptions": {
        "show": {
          "group": [
            "webhook-v1"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "AvailabilityUnit-groupsByIdPatch",
      "options": [
        {
          "name": "Allows to Modify the Unit Group Availability",
          "value": "AvailabilityUnit-groupsByIdPatch",
          "action": "Allows to modify the unit group availability"
        },
        {
          "name": "Get a List of All Available Services in a Property",
          "value": "AvailabilityServicesGet",
          "action": "Get a list of all available services in a property"
        },
        {
          "name": "Get a List of All Available Unit Groups in a Property",
          "value": "AvailabilityUnit-groupsGet",
          "action": "Get a list of all available unit groups in a property"
        },
        {
          "name": "Get a List of All Available Units in a Property",
          "value": "AvailabilityUnitsGet",
          "action": "Get a list of all available units in a property"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "group": [
            "availability-v1"
          ],
          "resource": [
            "Availability"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "AvailabilityReservationsByIdUnitsGet",
      "options": [
        {
          "name": "Get a List of All Available Units for a Reservation",
          "value": "AvailabilityReservationsByIdUnitsGet",
          "action": "Get a list of all available units for a reservation"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "group": [
            "availability-v1"
          ],
          "resource": [
            "ReservationAvailability"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "BookingBlocksPost",
      "options": [
        {
          "name": "Creates a Block",
          "value": "BookingBlocksPost",
          "action": "Creates a block"
        },
        {
          "name": "Returns a List of Blocks",
          "value": "BookingBlocksGet",
          "action": "Returns a list of blocks"
        },
        {
          "name": "Returns a Specific Block.",
          "value": "BookingBlocksByIdGet",
          "action": "Returns a specific block"
        },
        {
          "name": "Returns Number of Blocks",
          "value": "BookingBlocks$countGet",
          "action": "Returns number of blocks"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "group": [
            "booking-v1"
          ],
          "resource": [
            "Block"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "BookingBlock-actionsByIdAmendPut",
      "options": [
        {
          "name": "Allow to Modify a Block",
          "value": "BookingBlock-actionsByIdAmendPut",
          "action": "Allow to modify a block"
        },
        {
          "name": "Cancel a Block.",
          "value": "BookingBlock-actionsByIdCancelPut",
          "action": "Cancel a block"
        },
        {
          "name": "Confirm a Block.",
          "value": "BookingBlock-actionsByIdConfirmPut",
          "action": "Confirm a block"
        },
        {
          "name": "Release a Block.",
          "value": "BookingBlock-actionsByIdReleasePut",
          "action": "Release a block"
        },
        {
          "name": "Wash a Block.",
          "value": "BookingBlock-actionsByIdWashPut",
          "action": "Wash a block"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "group": [
            "booking-v1"
          ],
          "resource": [
            "BlockActions"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "BookingBookingsByIdReservations$forcePost",
      "options": [
        {
          "name": "Add One or Multiple Reservations to an Existing Booking Regardless of Availability or Restrictions.",
          "value": "BookingBookingsByIdReservations$forcePost",
          "action": "Add one or multiple reservations to an existing booking regardless of availability or restrictions"
        },
        {
          "name": "Add One or Multiple Reservations to an Existing Booking.",
          "value": "BookingBookingsByIdReservationsPost",
          "action": "Add one or multiple reservations to an existing booking"
        },
        {
          "name": "Allows to Modify Certain Booking Properties",
          "value": "BookingBookingsByIdPatch",
          "action": "Allows to modify certain booking properties"
        },
        {
          "name": "Creates a Booking for One or More Reservations Regardless of Availability or Restrictions.",
          "value": "BookingBookings$forcePost",
          "action": "Creates a booking for one or more reservations regardless of availability or restrictions"
        },
        {
          "name": "Creates a Booking for One or More Reservations.",
          "value": "BookingBookingsPost",
          "action": "Creates a booking for one or more reservations"
        },
        {
          "name": "Returns a List of All Bookings, Filtered by the Specified Parameters.",
          "value": "BookingBookingsGet",
          "action": "Returns a list of all bookings filtered by the specified parameters"
        },
        {
          "name": "Returns a Specific Booking.",
          "value": "BookingBookingsByIdGet",
          "action": "Returns a specific booking"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "group": [
            "booking-v1"
          ],
          "resource": [
            "Booking"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "BookingGroupsByIdReservationsPost",
      "options": [
        {
          "name": "Add One or Multiple Reservations to an Existing Group Booking Using Blocked Inventory.",
          "value": "BookingGroupsByIdReservationsPost",
          "action": "Add one or multiple reservations to an existing group booking using blocked inventory"
        },
        {
          "name": "Allows to Modify Certain Group Booking Properties",
          "value": "BookingGroupsByIdPatch",
          "action": "Allows to modify certain group booking properties"
        },
        {
          "name": "Creates a Group Booking.",
          "value": "BookingGroupsPost",
          "action": "Creates a group booking"
        },
        {
          "name": "Returns a List of All Group Bookings, Filtered by the Specified Parameters.",
          "value": "BookingGroupsGet",
          "action": "Returns a list of all group bookings filtered by the specified parameters"
        },
        {
          "name": "Returns a Specific Group Booking.",
          "value": "BookingGroupsByIdGet",
          "action": "Returns a specific group booking"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "group": [
            "booking-v1"
          ],
          "resource": [
            "Group"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "BookingRate-plan-offersGet",
      "options": [
        {
          "name": "Returns Offers for a Specific Rate Plan.",
          "value": "BookingRate-plan-offersGet",
          "action": "Returns offers for a specific rate plan"
        },
        {
          "name": "Returns Offers for One Specific Stay.",
          "value": "BookingOffersGet",
          "action": "Returns offers for one specific stay"
        },
        {
          "name": "Returns Offers with Rates and Availabilities for the Specified Range.",
          "value": "BookingOffer-indexGet",
          "action": "Returns offers with rates and availabilities for the specified range"
        },
        {
          "name": "Returns Service Offers for One Specific Stay.",
          "value": "BookingService-offersGet",
          "action": "Returns service offers for one specific stay"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "group": [
            "booking-v1"
          ],
          "resource": [
            "Offer"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "BookingReservationsByIdPatch",
      "options": [
        {
          "name": "Allows to Modify Certain Reservation Properties",
          "value": "BookingReservationsByIdPatch",
          "action": "Allows to modify certain reservation properties"
        },
        {
          "name": "Removes a Service From a Reservation.",
          "value": "BookingReservationsByIdServicesDelete",
          "action": "Removes a service from a reservation"
        },
        {
          "name": "Returns a List of All Reservations, Filtered by the Specified Parameters.",
          "value": "BookingReservationsGet",
          "action": "Returns a list of all reservations filtered by the specified parameters"
        },
        {
          "name": "Returns a Specific Reservation.",
          "value": "BookingReservationsByIdGet",
          "action": "Returns a specific reservation"
        },
        {
          "name": "Returns Offers for One Specific Reservation.",
          "value": "BookingReservationsByIdOffersGet",
          "action": "Returns offers for one specific reservation"
        },
        {
          "name": "Returns Service Offers for One Specific Reservation.",
          "value": "BookingReservationsByIdService-offersGet",
          "action": "Returns service offers for one specific reservation"
        },
        {
          "name": "Returns the Number of Reservations Fulfilling the Criteria Specified in the Parameters.",
          "value": "BookingReservations$countGet",
          "action": "Returns the number of reservations fulfilling the criteria specified in the parameters"
        },
        {
          "name": "Returns the Services Booked for a Specific Reservation.",
          "value": "BookingReservationsByIdServicesGet",
          "action": "Returns the services booked for a specific reservation"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "group": [
            "booking-v1"
          ],
          "resource": [
            "Reservation"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "BookingReservation-actionsByIdAdd-city-taxPut",
      "options": [
        {
          "name": "Adds the City Tax to a Reservation.",
          "value": "BookingReservation-actionsByIdAdd-city-taxPut",
          "action": "Adds the city tax to a reservation"
        },
        {
          "name": "Allows You to Amend the Stay Details of a Reservation",
          "value": "BookingReservation-actionsByIdAmendPut",
          "action": "Allows you to amend the stay details of a reservation"
        },
        {
          "name": "Allows You to Amend the Stay Details of a Reservation Regardless of Availability or Restrictions.",
          "value": "BookingReservation-actionsByIdAmend$forcePut",
          "action": "Allows you to amend the stay details of a reservation regardless of availability or restrictions"
        },
        {
          "name": "Assign a Specific Unit to a Reservation.",
          "value": "BookingReservation-actionsByIdAssign-unitByUnitIdPut",
          "action": "Assign a specific unit to a reservation"
        },
        {
          "name": "Assign a Unit to a Reservation.",
          "value": "BookingReservation-actionsByIdAssign-unitPut",
          "action": "Assign a unit to a reservation"
        },
        {
          "name": "Book the Service for a Specific Reservation Regardless of Availability.",
          "value": "BookingReservation-actionsByIdBook-service$forcePut",
          "action": "Book the service for a specific reservation regardless of availability"
        },
        {
          "name": "Book the Service for a Specific Reservation.",
          "value": "BookingReservation-actionsByIdBook-servicePut",
          "action": "Book the service for a specific reservation"
        },
        {
          "name": "Cancel a Reservation.",
          "value": "BookingReservation-actionsByIdCancelPut",
          "action": "Cancel a reservation"
        },
        {
          "name": "Check-in of a Reservation.",
          "value": "BookingReservation-actionsByIdCheckinPut",
          "action": "Check in of a reservation"
        },
        {
          "name": "Check-Out of a Reservation.",
          "value": "BookingReservation-actionsByIdCheckoutPut",
          "action": "Check out of a reservation"
        },
        {
          "name": "Removes the City Tax From a Reservation.",
          "value": "BookingReservation-actionsByIdRemove-city-taxPut",
          "action": "Removes the city tax from a reservation"
        },
        {
          "name": "Reverses the Check-in of a Reservation.",
          "value": "BookingReservation-actionsByIdRevert-checkinPut",
          "action": "Reverses the check in of a reservation"
        },
        {
          "name": "Set a Reservation to No-Show.",
          "value": "BookingReservation-actionsByIdNoshowPut",
          "action": "Set a reservation to no show"
        },
        {
          "name": "Unassign Units From a Reservation.",
          "value": "BookingReservation-actionsByIdUnassign-unitsPut",
          "action": "Unassign units from a reservation"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "group": [
            "booking-v1"
          ],
          "resource": [
            "ReservationActions"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "BookingTypesSourcesGet",
      "options": [
        {
          "name": "Returns a List of Supported Sources.",
          "value": "BookingTypesSourcesGet",
          "action": "Returns a list of supported sources"
        },
        {
          "name": "Returns a List of Values that a Field of the Specified Type Can Take in the Specified Country.",
          "value": "BookingTypesByTypeAllowed-valuesGet",
          "action": "Returns a list of values that a field of the specified type can take in the specified country"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "group": [
            "booking-v1"
          ],
          "resource": [
            "Types"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "FinanceFoliosByIdPatch",
      "options": [
        {
          "name": "Allows to Modify Certain Properties of a Folio",
          "value": "FinanceFoliosByIdPatch",
          "action": "Allows to modify certain properties of a folio"
        },
        {
          "name": "Check if the Folio Exists.",
          "value": "FinanceFoliosByIdHead",
          "action": "Check if the folio exists"
        },
        {
          "name": "Create Additional Folios for a Reservation, or New External Folios",
          "value": "FinanceFoliosPost",
          "action": "Create additional folios for a reservation or new external folios"
        },
        {
          "name": "Returns a List of All Folios.",
          "value": "FinanceFoliosGet",
          "action": "Returns a list of all folios"
        },
        {
          "name": "Returns Number of Folios.",
          "value": "FinanceFolios$countGet",
          "action": "Returns number of folios"
        },
        {
          "name": "Returns One Folio.",
          "value": "FinanceFoliosByIdGet",
          "action": "Returns one folio"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "group": [
            "finance-v1"
          ],
          "resource": [
            "Folio"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "FinanceFolio-actionsByFolioIdCancellation-feePost",
      "options": [
        {
          "name": "Adds and Directly Posts a Cancellation Fee to the Folio. If There Are Any Fees Configured for the Property, an Additional Charge for Each Configured Fee Will Be Added. If a Routing Instruction Is Defined for the Cancellation Fee Service Type, the Fee Will Be Moved to the Destination Folio.",
          "value": "FinanceFolio-actionsByFolioIdCancellation-feePost",
          "action": "Adds and directly posts a cancellation fee to the folio if there are any fees configured for the property an additional charge for each configured fee will be added if a routing instruction is defined for the cancellation fee service type the fee will be moved to the destination folio"
        },
        {
          "name": "Adds and Directly Posts a Charge to the Folio. If There Are Any Fees Configured for the Property, an Additional Charge for Each Configured Fee Will Be Added.",
          "value": "FinanceFolio-actionsByFolioIdChargesPost",
          "action": "Adds and directly posts a charge to the folio if there are any fees configured for the property an additional charge for each configured fee will be added"
        },
        {
          "name": "Adds and Directly Posts a No-Show Fee to the Folio. If There Are Any Fees Configured for the Property, an Additional Charge for Each Configured Fee Will Be Added. If a Routing Instruction Is Defined for the No-Show Fee Service Type, the Fee Will Be Moved to the Destination Folio.",
          "value": "FinanceFolio-actionsByFolioIdNo-show-feePost",
          "action": "Adds and directly posts a no show fee to the folio if there are any fees configured for the property an additional charge for each configured fee will be added if a routing instruction is defined for the no show fee service type the fee will be moved to the destination folio"
        },
        {
          "name": "Adds and Directly Posts a Transitory Charge to the Folio. If There Are Any Fees Configured for the Property, an Additional Charge for Each Configured Fee Will Be Added.",
          "value": "FinanceFolio-actionsByFolioIdTransitory-chargesPost",
          "action": "Adds and directly posts a transitory charge to the folio if there are any fees configured for the property an additional charge for each configured fee will be added"
        },
        {
          "name": "Closes a Folio.",
          "value": "FinanceFolio-actionsByFolioIdClosePut",
          "action": "Closes a folio"
        },
        {
          "name": "Corrects a Folio by Moving some Charges. This Operation Creates a New Folio with the Charges From the Request. The Payment, Equal to the Sum of Charges, Is Also Split to This New Folio so that Both Folios Will Have 0 Balance.",
          "value": "FinanceFolio-actionsByFolioIdCorrectPost",
          "action": "Corrects a folio by moving some charges this operation creates a new folio with the charges from the request the payment equal to the sum of charges is also split to this new folio so that both folios will have 0 balance"
        },
        {
          "name": "Move All Charges and Transitory Charges From One Folio to Another.",
          "value": "FinanceFolio-actionsByFolioIdMove-all-chargesPut",
          "action": "Move all charges and transitory charges from one folio to another"
        },
        {
          "name": "Move Multiple Charges From One Folio to Another. Multiple Source Folios and Multiple Target Folios Can Be Specified.",
          "value": "FinanceFolio-actionsBulk-movePut",
          "action": "Move multiple charges from one folio to another multiple source folios and multiple target folios can be specified"
        },
        {
          "name": "Move Multiple Charges, Allowances and Transitory Charges From One Folio to Another.",
          "value": "FinanceFolio-actionsByFolioIdMove-chargesPut",
          "action": "Move multiple charges allowances and transitory charges from one folio to another"
        },
        {
          "name": "Move Multiple Payments From One Guest/booking Folio to Another.",
          "value": "FinanceFolio-actionsByFolioIdMove-paymentsPut",
          "action": "Move multiple payments from one guest booking folio to another"
        },
        {
          "name": "Posts All Unposted Charges for the Whole Length of Stay.",
          "value": "FinanceFolio-actionsByFolioIdPost-chargesPut",
          "action": "Posts all unposted charges for the whole length of stay"
        },
        {
          "name": "Posts Allowances for a Folio",
          "value": "FinanceFolio-actionsByFolioIdBulk-allowancesPost",
          "action": "Posts allowances for a folio"
        },
        {
          "name": "Posts an Allowance for a Charge",
          "value": "FinanceFolio-actionsByFolioIdChargesByChargeIdAllowancesPost",
          "action": "Posts an allowance for a charge"
        },
        {
          "name": "Posts an Allowance for a Folio",
          "value": "FinanceFolio-actionsByFolioIdAllowancesPost",
          "action": "Posts an allowance for a folio"
        },
        {
          "name": "Reopens a Folio.",
          "value": "FinanceFolio-actionsByFolioIdReopenPut",
          "action": "Reopens a folio"
        },
        {
          "name": "Splits a Charge Into Two Using the Percent or Amount Provided Creates an Allowance and Two New Charges.",
          "value": "FinanceFolio-actionsByFolioIdChargesByChargeIdSplitPost",
          "action": "Splits a charge into two using the percent or amount provided creates an allowance and two new charges"
        },
        {
          "name": "Splits a Payment Into Two Using the Percent or Amount Provided Creates a Refund and Two New Payments.",
          "value": "FinanceFolio-actionsByFolioIdPaymentsByPaymentIdSplitPost",
          "action": "Splits a payment into two using the percent or amount provided creates a refund and two new payments"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "group": [
            "finance-v1"
          ],
          "resource": [
            "FolioActions"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "FinanceFoliosByFolioIdPaymentsByPaymentIdCancelPut",
      "options": [
        {
          "name": "Cancels a Pending Payment Link.",
          "value": "FinanceFoliosByFolioIdPaymentsByPaymentIdCancelPut",
          "action": "Cancels a pending payment link"
        },
        {
          "name": "Captures a Specific Amount From a Pre-Authorization and Posts It to the Folio.",
          "value": "FinanceFoliosByFolioIdPaymentsBy-authorizationPost",
          "action": "Captures a specific amount from a pre authorization and posts it to the folio"
        },
        {
          "name": "Creates a Link to a Payment Form Where Guests Can Pay.",
          "value": "FinanceFoliosByFolioIdPaymentsBy-linkPost",
          "action": "Creates a link to a payment form where guests can pay"
        },
        {
          "name": "Get a List of Payments.",
          "value": "FinanceFoliosByFolioIdPaymentsGet",
          "action": "Get a list of payments"
        },
        {
          "name": "Get a List of Refunds.",
          "value": "FinanceFoliosByFolioIdRefundsGet",
          "action": "Get a list of refunds"
        },
        {
          "name": "Get a Payment by ID.",
          "value": "FinanceFoliosByFolioIdPaymentsByPaymentIdGet",
          "action": "Get a payment by ID."
        },
        {
          "name": "Get a Refund by ID.",
          "value": "FinanceFoliosByFolioIdRefundsByRefundIdGet",
          "action": "Get a refund by ID."
        },
        {
          "name": "Trigger a Custom Payment for the Folio.",
          "value": "FinanceFoliosByFolioIdPaymentsPost",
          "action": "Trigger a custom payment for the folio"
        },
        {
          "name": "Trigger a Payment on a Card Terminal for the Folio.",
          "value": "FinanceFoliosByFolioIdPaymentsBy-terminalPost",
          "action": "Trigger a payment on a card terminal for the folio"
        },
        {
          "name": "Trigger a Payment Using the Payment Account Stored on the Reservation.",
          "value": "FinanceFoliosByFolioIdPaymentsBy-payment-accountPost",
          "action": "Trigger a payment using the payment account stored on the reservation"
        },
        {
          "name": "Trigger a Refund for a Specific Payment.",
          "value": "FinanceFoliosByFolioIdPaymentsByPaymentIdRefundsPost",
          "action": "Trigger a refund for a specific payment"
        },
        {
          "name": "Trigger a Refund for the Folio.",
          "value": "FinanceFoliosByFolioIdRefundsPost",
          "action": "Trigger a refund for the folio"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "group": [
            "finance-v1"
          ],
          "resource": [
            "FolioPayments"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "FinanceInvoicesPost",
      "options": [
        {
          "name": "Creates an Invoice for One Specific Folio.",
          "value": "FinanceInvoicesPost",
          "action": "Creates an invoice for one specific folio"
        },
        {
          "name": "Gets a Preview Invoice PDF for One Specific Folio.",
          "value": "FinanceInvoicesPreview-pdfGet",
          "action": "Gets a preview invoice pdf for one specific folio"
        },
        {
          "name": "Gets an Invoice PDF File.",
          "value": "FinanceInvoicesByIdPdfGet",
          "action": "Gets an invoice pdf file"
        },
        {
          "name": "Gets an Invoice Preview for One Specific Folio.",
          "value": "FinanceInvoicesPreviewGet",
          "action": "Gets an invoice preview for one specific folio"
        },
        {
          "name": "Gets Invoice Data.",
          "value": "FinanceInvoicesByIdGet",
          "action": "Gets invoice data"
        },
        {
          "name": "Gets the List of All Invoices (the Metadata only, Not the Files).",
          "value": "FinanceInvoicesGet",
          "action": "Gets the list of all invoices the metadata only not the files"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "group": [
            "finance-v1"
          ],
          "resource": [
            "Invoice"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "FinanceInvoice-actionsByIdCancelPut",
      "options": [
        {
          "name": "Cancels an Invoice",
          "value": "FinanceInvoice-actionsByIdCancelPut",
          "action": "Cancels an invoice"
        },
        {
          "name": "Marks an Invoice as Paid.",
          "value": "FinanceInvoice-actionsByIdPayPut",
          "action": "Marks an invoice as paid"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "group": [
            "finance-v1"
          ],
          "resource": [
            "InvoiceAction"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "FinanceAccountsAggregate-dailyPost",
      "options": [
        {
          "name": "Aggregates Transactions by Date (Business Day) for All Accounts and a Given Period.",
          "value": "FinanceAccountsAggregate-dailyPost",
          "action": "Aggregates transactions by date business day for all accounts and a given period"
        },
        {
          "name": "Aggregates Transactions by Timestamp for All Accounts and a Given Period.",
          "value": "FinanceAccountsAggregatePost",
          "action": "Aggregates transactions by timestamp for all accounts and a given period"
        },
        {
          "name": "Aggregates Transactions Pairs by Date (Business Day) for All Accounts and a Given Period.",
          "value": "FinanceAccountsAggregate-pairs-dailyPost",
          "action": "Aggregates transactions pairs by date business day for all accounts and a given period"
        },
        {
          "name": "Returns a List of Child Accounts for a Specified Parent Account.",
          "value": "FinanceAccountsChild-accountsGet",
          "action": "Returns a list of child accounts for a specified parent account"
        },
        {
          "name": "Returns a List of External Accounts.",
          "value": "FinanceExternal-accountsGet",
          "action": "Returns a list of external accounts"
        },
        {
          "name": "Returns a List of Global Accounts.",
          "value": "FinanceGlobal-accountsGet",
          "action": "Returns a list of global accounts"
        },
        {
          "name": "Returns a List of Guest Accounts.",
          "value": "FinanceGuest-accountsGet",
          "action": "Returns a list of guest accounts"
        },
        {
          "name": "Returns Gross Transactions Filtered by Date (Business Day) for a Property for a Given Period.",
          "value": "FinanceAccountsExport-gross-dailyPost",
          "action": "Returns gross transactions filtered by date business day for a property for a given period"
        },
        {
          "name": "Returns One Account.",
          "value": "FinanceAccountsByNumberGet",
          "action": "Returns one account"
        },
        {
          "name": "Returns the Chart of Accounts of the Subledger.",
          "value": "FinanceAccountsSchemaGet",
          "action": "Returns the chart of accounts of the subledger"
        },
        {
          "name": "Returns Transactions Filtered by Date (Business Day) for a Property for a Given Period.",
          "value": "FinanceAccountsExport-dailyPost",
          "action": "Returns transactions filtered by date business day for a property for a given period"
        },
        {
          "name": "Returns Transactions Filtered by Timestamp for a Property for a Given Period.",
          "value": "FinanceAccountsExportPost",
          "action": "Returns transactions filtered by timestamp for a property for a given period"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "group": [
            "finance-v1"
          ],
          "resource": [
            "SubLedger"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "FinanceTypesCurrenciesGet",
      "options": [
        {
          "name": "Returns a List of All Currencies.",
          "value": "FinanceTypesCurrenciesGet",
          "action": "Returns a list of all currencies"
        },
        {
          "name": "Returns a List of All Supported Payment Methods.",
          "value": "FinanceTypesPayment-methodsGet",
          "action": "Returns a list of all supported payment methods"
        },
        {
          "name": "Returns a List of All Supported Service Types.",
          "value": "FinanceTypesService-typesGet",
          "action": "Returns a list of all supported service types"
        },
        {
          "name": "Returns a List of All VAT Types.",
          "value": "FinanceTypesVatGet",
          "action": "Returns a list of all vat types"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "group": [
            "finance-v1"
          ],
          "resource": [
            "Types"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "InventoryPropertiesByIdPatch",
      "options": [
        {
          "name": "Allows to Modify Property",
          "value": "InventoryPropertiesByIdPatch",
          "action": "Allows to modify property"
        },
        {
          "name": "Creates a Property",
          "value": "InventoryPropertiesPost",
          "action": "Creates a property"
        },
        {
          "name": "Get a Properties List",
          "value": "InventoryPropertiesGet",
          "action": "Get a properties list"
        },
        {
          "name": "Get a Property",
          "value": "InventoryPropertiesByIdGet",
          "action": "Get a property"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "group": [
            "inventory-v1"
          ],
          "resource": [
            "Property"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "InventoryUnitsPatch",
      "options": [
        {
          "name": "Allows to Patch One or More Units",
          "value": "InventoryUnitsPatch",
          "action": "Allows to patch one or more units"
        },
        {
          "name": "Allows to Patch Unit",
          "value": "InventoryUnitsByIdPatch",
          "action": "Allows to patch unit"
        },
        {
          "name": "Check if a Unit Exists",
          "value": "InventoryUnitsByIdHead",
          "action": "Check if a unit exists"
        },
        {
          "name": "Create a Unit",
          "value": "InventoryUnitsPost",
          "action": "Create a unit"
        },
        {
          "name": "Create Multiple Units",
          "value": "InventoryUnitsBulkPost",
          "action": "Create multiple units"
        },
        {
          "name": "Delete a Unit",
          "value": "InventoryUnitsByIdDelete",
          "action": "Delete a unit"
        },
        {
          "name": "Get a Unit",
          "value": "InventoryUnitsByIdGet",
          "action": "Get a unit"
        },
        {
          "name": "Get a Units List",
          "value": "InventoryUnitsGet",
          "action": "Get a units list"
        },
        {
          "name": "Returns Number of Units",
          "value": "InventoryUnits$countGet",
          "action": "Returns number of units"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "group": [
            "inventory-v1"
          ],
          "resource": [
            "Unit"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "InventoryUnit-attributesByIdPatch",
      "options": [
        {
          "name": "Allows to Modify Unit Attribute",
          "value": "InventoryUnit-attributesByIdPatch",
          "action": "Allows to modify unit attribute"
        },
        {
          "name": "Check if a Unit Attribute Exists",
          "value": "InventoryUnit-attributesByIdHead",
          "action": "Check if a unit attribute exists"
        },
        {
          "name": "Create a Unit Attribute",
          "value": "InventoryUnit-attributesPost",
          "action": "Create a unit attribute"
        },
        {
          "name": "Get Unit Attribute by ID",
          "value": "InventoryUnit-attributesByIdGet",
          "action": "Get unit attribute by id"
        },
        {
          "name": "Get Unit Attribute List",
          "value": "InventoryUnit-attributesGet",
          "action": "Get unit attribute list"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "group": [
            "inventory-v1"
          ],
          "resource": [
            "UnitAttribute"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "InventoryUnit-groupsByIdHead",
      "options": [
        {
          "name": "Check if a Unit Group Exists",
          "value": "InventoryUnit-groupsByIdHead",
          "action": "Check if a unit group exists"
        },
        {
          "name": "Create a Unit Group",
          "value": "InventoryUnit-groupsPost",
          "action": "Create a unit group"
        },
        {
          "name": "Get a Unit Group",
          "value": "InventoryUnit-groupsByIdGet",
          "action": "Get a unit group"
        },
        {
          "name": "Get All Unit Groups, or All Unit Groups for a Property",
          "value": "InventoryUnit-groupsGet",
          "action": "Get all unit groups or all unit groups for a property"
        },
        {
          "name": "Replace a Unit Group",
          "value": "InventoryUnit-groupsByIdPut",
          "action": "Replace a unit group"
        },
        {
          "name": "Returns Number of Unit Groups",
          "value": "InventoryUnit-groups$countGet",
          "action": "Returns number of unit groups"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "group": [
            "inventory-v1"
          ],
          "resource": [
            "UnitGroup"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "LogsBookingReservationGet",
      "options": [
        {
          "name": "Returns Reservation Change Log Entries Sorted by the Timestamp",
          "value": "LogsBookingReservationGet",
          "action": "Returns reservation change log entries sorted by the timestamp"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "group": [
            "logs-v1"
          ],
          "resource": [
            "BookingLogs"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "LogsFinanceFolioGet",
      "options": [
        {
          "name": "Returns Folio Change Log Entries Sorted by the Timestamp.",
          "value": "LogsFinanceFolioGet",
          "action": "Returns folio change log entries sorted by the timestamp"
        },
        {
          "name": "Returns the Audit Log for All Accounting Exports that Have Been Done.",
          "value": "LogsFinanceTransactions-exportGet",
          "action": "Returns the audit log for all accounting exports that have been done"
        },
        {
          "name": "Returns the Night Audit Logs.",
          "value": "LogsFinanceNight-auditGet",
          "action": "Returns the night audit logs"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "group": [
            "logs-v1"
          ],
          "resource": [
            "FinanceLogs"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "OperationsMaintenancesByIdHead",
      "options": [
        {
          "name": "Check if a Maintenance Exists",
          "value": "OperationsMaintenancesByIdHead",
          "action": "Check if a maintenance exists"
        },
        {
          "name": "Create a New Maintenance Window",
          "value": "OperationsMaintenancesPost",
          "action": "Create a new maintenance window"
        },
        {
          "name": "Create Multiple Maintenances",
          "value": "OperationsMaintenancesBulkPost",
          "action": "Create multiple maintenances"
        },
        {
          "name": "Delete a Maintenance",
          "value": "OperationsMaintenancesByIdDelete",
          "action": "Delete a maintenance"
        },
        {
          "name": "Get a Specific Maintenance",
          "value": "OperationsMaintenancesByIdGet",
          "action": "Get a specific maintenance"
        },
        {
          "name": "Get List of Maintenances",
          "value": "OperationsMaintenancesGet",
          "action": "Get list of maintenances"
        },
        {
          "name": "Modify a Maintenance",
          "value": "OperationsMaintenancesByIdPatch",
          "action": "Modify a maintenance"
        },
        {
          "name": "Returns Number of Maintenances",
          "value": "OperationsMaintenances$countGet",
          "action": "Returns number of maintenances"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "group": [
            "operations-v1"
          ],
          "resource": [
            "Maintenance"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "OperationsUnits-conditionPut",
      "options": [
        {
          "name": "Change the Condition of a Unit",
          "value": "OperationsUnits-conditionPut",
          "action": "Change the condition of a unit"
        },
        {
          "name": "Performs the Night Audit for One Property.",
          "value": "OperationsNight-auditPut",
          "action": "Performs the night audit for one property"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "group": [
            "operations-v1"
          ],
          "resource": [
            "Operations"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "SettingsAge-categoriesByIdPatch",
      "options": [
        {
          "name": "Allows to Modify Properties of an Age Category",
          "value": "SettingsAge-categoriesByIdPatch",
          "action": "Allows to modify properties of an age category"
        },
        {
          "name": "Create an Age Category",
          "value": "SettingsAge-categoriesPost",
          "action": "Create an age category"
        },
        {
          "name": "Get an Age Category",
          "value": "SettingsAge-categoriesByIdGet",
          "action": "Get an age category"
        },
        {
          "name": "Get an Age Category List",
          "value": "SettingsAge-categoriesGet",
          "action": "Get an age category list"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "group": [
            "rateplan-v1"
          ],
          "resource": [
            "AgeCategory"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "RateplanCancellation-policiesByIdPatch",
      "options": [
        {
          "name": "Allows to Modify Properties of a Cancellation Policy",
          "value": "RateplanCancellation-policiesByIdPatch",
          "action": "Allows to modify properties of a cancellation policy"
        },
        {
          "name": "Create a Cancellation Policy.",
          "value": "RateplanCancellation-policiesPost",
          "action": "Create a cancellation policy"
        },
        {
          "name": "Get a Specific Cancellation Policy.",
          "value": "RateplanCancellation-policiesByIdGet",
          "action": "Get a specific cancellation policy"
        },
        {
          "name": "Get All Cancellation Policies.",
          "value": "RateplanCancellation-policiesGet",
          "action": "Get all cancellation policies"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "group": [
            "rateplan-v1"
          ],
          "resource": [
            "CancellationPolicy"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "RateplanCompaniesPost",
      "options": [
        {
          "name": "Create a Company",
          "value": "RateplanCompaniesPost",
          "action": "Create a company"
        },
        {
          "name": "Get a Company",
          "value": "RateplanCompaniesByIdGet",
          "action": "Get a company"
        },
        {
          "name": "Get a List of Companies",
          "value": "RateplanCompaniesGet",
          "action": "Get a list of companies"
        },
        {
          "name": "Modify a Company",
          "value": "RateplanCompaniesByIdPatch",
          "action": "Modify a company"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "group": [
            "rateplan-v1"
          ],
          "resource": [
            "Company"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "RateplanCorporate-codesCodesGet",
      "options": [
        {
          "name": "Returns a List of Corporate Codes.",
          "value": "RateplanCorporate-codesCodesGet",
          "action": "Returns a list of corporate codes"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "group": [
            "rateplan-v1"
          ],
          "resource": [
            "CorporateCodes"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "RateplanNo-show-policiesByIdPatch",
      "options": [
        {
          "name": "Allows to Modify Properties of a No-Show Policy",
          "value": "RateplanNo-show-policiesByIdPatch",
          "action": "Allows to modify properties of a no show policy"
        },
        {
          "name": "Create a No-Show Policy.",
          "value": "RateplanNo-show-policiesPost",
          "action": "Create a no show policy"
        },
        {
          "name": "Get a Specific No-Show Policy.",
          "value": "RateplanNo-show-policiesByIdGet",
          "action": "Get a specific no show policy"
        },
        {
          "name": "Get All No-Show Policies.",
          "value": "RateplanNo-show-policiesGet",
          "action": "Get all no show policies"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "group": [
            "rateplan-v1"
          ],
          "resource": [
            "NoShowPolicy"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "RateplanPromo-codesCodesGet",
      "options": [
        {
          "name": "Returns a List of Promo Codes.",
          "value": "RateplanPromo-codesCodesGet",
          "action": "Returns a list of promo codes"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "group": [
            "rateplan-v1"
          ],
          "resource": [
            "PromoCodes"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "RateplanRatesPatch",
      "options": [
        {
          "name": "Allows to Patch the Rates of Multiple Rate Plans.",
          "value": "RateplanRatesPatch",
          "action": "Allows to patch the rates of multiple rate plans"
        },
        {
          "name": "Initializes and Changes the Rates for the Rate Plan.",
          "value": "RateplanRate-plansByIdRatesPut",
          "action": "Initializes and changes the rates for the rate plan"
        },
        {
          "name": "Returns a List of Rates.",
          "value": "RateplanRate-plansByIdRatesGet",
          "action": "Returns a list of rates"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "group": [
            "rateplan-v1"
          ],
          "resource": [
            "Rate"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "RateplanRate-plansPatch",
      "options": [
        {
          "name": "Allows to Patch One or More Rate Plans",
          "value": "RateplanRate-plansPatch",
          "action": "Allows to patch one or more rate plans"
        },
        {
          "name": "Create a Rate Plan",
          "value": "RateplanRate-plansPost",
          "action": "Create a rate plan"
        },
        {
          "name": "Get a Rate Plan",
          "value": "RateplanRate-plansByIdGet",
          "action": "Get a rate plan"
        },
        {
          "name": "Get a Rate Plan List",
          "value": "RateplanRate-plansGet",
          "action": "Get a rate plan list"
        },
        {
          "name": "Replace a Rate Plan",
          "value": "RateplanRate-plansByIdPut",
          "action": "Replace a rate plan"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "group": [
            "rateplan-v1"
          ],
          "resource": [
            "RatePlan"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "RateplanServicesPost",
      "options": [
        {
          "name": "Create a Service.",
          "value": "RateplanServicesPost",
          "action": "Create a service"
        },
        {
          "name": "Get a Specific Service.",
          "value": "RateplanServicesByIdGet",
          "action": "Get a specific service"
        },
        {
          "name": "Get All Services.",
          "value": "RateplanServicesGet",
          "action": "Get all services"
        },
        {
          "name": "Modify a Service.",
          "value": "RateplanServicesByIdPatch",
          "action": "Modify a service"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "group": [
            "rateplan-v1"
          ],
          "resource": [
            "Service"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "ReportsReportsOrdered-servicesGet",
      "options": [
        {
          "name": "List of Ordered Services",
          "value": "ReportsReportsOrdered-servicesGet",
          "action": "List of ordered services"
        },
        {
          "name": "Returns the List of Company Invoices with Information on the Company and the VAT Breakdown",
          "value": "ReportsReportsCompany-invoices-vatGet",
          "action": "Returns the list of company invoices with information on the company and the VAT breakdown"
        },
        {
          "name": "Returns the Number of Arrivals in a Month for a Property",
          "value": "ReportsReportsArrivalsGet",
          "action": "Returns the number of arrivals in a month for a property"
        },
        {
          "name": "Returns the Property Performance Report Which Includes the ADR and the RevPAR for Each Business Day.",
          "value": "ReportsReportsProperty-performanceGet",
          "action": "Returns the property performance report which includes the adr and the rev par for each business day"
        },
        {
          "name": "Returns the Revenues Report for a Property",
          "value": "ReportsReportsRevenuesGet",
          "action": "Returns the revenues report for a property"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "group": [
            "reports-v1"
          ],
          "resource": [
            "Reports"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "SettingsCapture-policiesByIdPatch",
      "options": [
        {
          "name": "Allows to Modify Properties of a Capture Policy.",
          "value": "SettingsCapture-policiesByIdPatch",
          "action": "Allows to modify properties of a capture policy"
        },
        {
          "name": "Get a Specific Capture Policy.",
          "value": "SettingsCapture-policiesByIdGet",
          "action": "Get a specific capture policy"
        },
        {
          "name": "Get All Capture Policies.",
          "value": "SettingsCapture-policiesGet",
          "action": "Get all capture policies"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "group": [
            "settings-v1"
          ],
          "resource": [
            "CapturePolicies"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "SettingsCity-taxByIdPatch",
      "options": [
        {
          "name": "Allows to Modify City Tax",
          "value": "SettingsCity-taxByIdPatch",
          "action": "Allows to modify city tax"
        },
        {
          "name": "Create a City Tax.",
          "value": "SettingsCity-taxPost",
          "action": "Create a city tax"
        },
        {
          "name": "Get a Specific City Tax.",
          "value": "SettingsCity-taxByIdGet",
          "action": "Get a specific city tax"
        },
        {
          "name": "Get All City Taxes.",
          "value": "SettingsCity-taxGet",
          "action": "Get all city taxes"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "group": [
            "settings-v1"
          ],
          "resource": [
            "CityTax"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "SettingsSub-accountsByIdPatch",
      "options": [
        {
          "name": "Allows to Modify the Name of the Sub-Account.",
          "value": "SettingsSub-accountsByIdPatch",
          "action": "Allows to modify the name of the sub account"
        },
        {
          "name": "Check if the Sub-Account Exists.",
          "value": "SettingsSub-accountsByIdHead",
          "action": "Check if the sub account exists"
        },
        {
          "name": "Create a Sub-Account.",
          "value": "SettingsSub-accountsPost",
          "action": "Create a sub account"
        },
        {
          "name": "Returns a List of All Sub-Accounts.",
          "value": "SettingsSub-accountsGet",
          "action": "Returns a list of all sub accounts"
        },
        {
          "name": "Returns Number of Sub-Accounts.",
          "value": "SettingsSub-accounts$countGet",
          "action": "Returns number of sub accounts"
        },
        {
          "name": "Returns One Sub-Account.",
          "value": "SettingsSub-accountsByIdGet",
          "action": "Returns one sub account"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "group": [
            "settings-v1"
          ],
          "resource": [
            "CustomSubAccounts"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "SettingsFeaturesByPropertyIdPatch",
      "options": [
        {
          "name": "Allows to Modify Feature Settings",
          "value": "SettingsFeaturesByPropertyIdPatch",
          "action": "Allows to modify feature settings"
        },
        {
          "name": "Get Feature Settings for a Property.",
          "value": "SettingsFeaturesByPropertyIdGet",
          "action": "Get feature settings for a property"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "group": [
            "settings-v1"
          ],
          "resource": [
            "FeatureSettings"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "SettingsInvoice-addressPatch",
      "options": [
        {
          "name": "Change Fields in the Invoice Address of One or More Properties.",
          "value": "SettingsInvoice-addressPatch",
          "action": "Change fields in the invoice address of one or more properties"
        },
        {
          "name": "Create or Update Invoice Addresses for One or More Properties.",
          "value": "SettingsInvoice-addressPut",
          "action": "Create or update invoice addresses for one or more properties"
        },
        {
          "name": "Get Invoice Addresses",
          "value": "SettingsInvoice-addressGet",
          "action": "Get invoice addresses"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "group": [
            "settings-v1"
          ],
          "resource": [
            "InvoiceAddress"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "SettingsLanguagesGet",
      "options": [
        {
          "name": "Get the Language Settings for the Account",
          "value": "SettingsLanguagesGet",
          "action": "Get the language settings for the account"
        },
        {
          "name": "Replaces the Language Settings for the Account",
          "value": "SettingsLanguagesPut",
          "action": "Replaces the language settings for the account"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "group": [
            "settings-v1"
          ],
          "resource": [
            "Languages"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "SettingsMarket-segmentsByIdPatch",
      "options": [
        {
          "name": "Allows to Modify Market Segment.",
          "value": "SettingsMarket-segmentsByIdPatch",
          "action": "Allows to modify market segment"
        },
        {
          "name": "Check if a Market Segment Exists.",
          "value": "SettingsMarket-segmentsByIdHead",
          "action": "Check if a market segment exists"
        },
        {
          "name": "Create a Market Segment",
          "value": "SettingsMarket-segmentsPost",
          "action": "Create a market segment"
        },
        {
          "name": "Get a Market Segment.",
          "value": "SettingsMarket-segmentsByIdGet",
          "action": "Get a market segment"
        },
        {
          "name": "Returns a List of All Market Segments, Filtered by the Specified Parameters.",
          "value": "SettingsMarket-segmentsGet",
          "action": "Returns a list of all market segments filtered by the specified parameters"
        },
        {
          "name": "Returns Number of Market Segments.",
          "value": "SettingsMarket-segments$countGet",
          "action": "Returns number of market segments"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "group": [
            "settings-v1"
          ],
          "resource": [
            "MarketSegment"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "SettingsPropertiesByIdGet",
      "options": [
        {
          "name": "Get Property Settings",
          "value": "SettingsPropertiesByIdGet",
          "action": "Get property settings"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "group": [
            "settings-v1"
          ],
          "resource": [
            "PropertySettings"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "SettingsPropertiesByPropertyIdTime-slice-definitionsPost",
      "options": [
        {
          "name": "Creates a Time Slice Definition",
          "value": "SettingsPropertiesByPropertyIdTime-slice-definitionsPost",
          "action": "Creates a time slice definition"
        },
        {
          "name": "Get a Specific Time Slice Definition",
          "value": "SettingsPropertiesByPropertyIdTime-slice-definitionsByIdGet",
          "action": "Get a specific time slice definition"
        },
        {
          "name": "Get Time Slice Definitions",
          "value": "SettingsPropertiesByPropertyIdTime-slice-definitionsGet",
          "action": "Get time slice definitions"
        },
        {
          "name": "Modifies a Specific Time Slice Definition for the Property",
          "value": "SettingsPropertiesByPropertyIdTime-slice-definitionsByIdPatch",
          "action": "Modifies a specific time slice definition for the property"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "group": [
            "settings-v1"
          ],
          "resource": [
            "TimeSliceDefinitions"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "PingerPost",
      "options": [
        {
          "name": "PingerPost",
          "value": "PingerPost",
          "action": "Pinger post"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "group": [
            "webhook-v1"
          ],
          "resource": [
            "HealthCheck"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "SubscriptionsPost",
      "options": [
        {
          "name": "Creates Subscription",
          "value": "SubscriptionsPost",
          "action": "Creates subscription"
        },
        {
          "name": "Deletes Subscription.",
          "value": "SubscriptionsByIdDelete",
          "action": "Deletes subscription"
        },
        {
          "name": "Get All Subscriptions Created for the Current Account and Client",
          "value": "SubscriptionsGet",
          "action": "Get all subscriptions created for the current account and client"
        },
        {
          "name": "SubscriptionsByIdGet",
          "value": "SubscriptionsByIdGet",
          "action": "Subscriptions by id get"
        },
        {
          "name": "Updates Subscription",
          "value": "SubscriptionsByIdPut",
          "action": "Updates subscription"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "group": [
            "webhook-v1"
          ],
          "resource": [
            "Subscriptions"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Allows to Modify the Unit Group Availability",
      "value": "AvailabilityUnit-groupsByIdPatch",
      "action": "Allows to modify the unit group availability"
    },
    {
      "name": "Get a List of All Available Services in a Property",
      "value": "AvailabilityServicesGet",
      "action": "Get a list of all available services in a property"
    },
    {
      "name": "Get a List of All Available Unit Groups in a Property",
      "value": "AvailabilityUnit-groupsGet",
      "action": "Get a list of all available unit groups in a property"
    },
    {
      "name": "Get a List of All Available Units in a Property",
      "value": "AvailabilityUnitsGet",
      "action": "Get a list of all available units in a property"
    },
    {
      "name": "Get a List of All Available Units for a Reservation",
      "value": "AvailabilityReservationsByIdUnitsGet",
      "action": "Get a list of all available units for a reservation"
    },
    {
      "name": "Creates a Block",
      "value": "BookingBlocksPost",
      "action": "Creates a block"
    },
    {
      "name": "Returns a List of Blocks",
      "value": "BookingBlocksGet",
      "action": "Returns a list of blocks"
    },
    {
      "name": "Returns a Specific Block.",
      "value": "BookingBlocksByIdGet",
      "action": "Returns a specific block"
    },
    {
      "name": "Returns Number of Blocks",
      "value": "BookingBlocks$countGet",
      "action": "Returns number of blocks"
    },
    {
      "name": "Allow to Modify a Block",
      "value": "BookingBlock-actionsByIdAmendPut",
      "action": "Allow to modify a block"
    },
    {
      "name": "Cancel a Block.",
      "value": "BookingBlock-actionsByIdCancelPut",
      "action": "Cancel a block"
    },
    {
      "name": "Confirm a Block.",
      "value": "BookingBlock-actionsByIdConfirmPut",
      "action": "Confirm a block"
    },
    {
      "name": "Release a Block.",
      "value": "BookingBlock-actionsByIdReleasePut",
      "action": "Release a block"
    },
    {
      "name": "Wash a Block.",
      "value": "BookingBlock-actionsByIdWashPut",
      "action": "Wash a block"
    },
    {
      "name": "Add One or Multiple Reservations to an Existing Booking Regardless of Availability or Restrictions.",
      "value": "BookingBookingsByIdReservations$forcePost",
      "action": "Add one or multiple reservations to an existing booking regardless of availability or restrictions"
    },
    {
      "name": "Add One or Multiple Reservations to an Existing Booking.",
      "value": "BookingBookingsByIdReservationsPost",
      "action": "Add one or multiple reservations to an existing booking"
    },
    {
      "name": "Allows to Modify Certain Booking Properties",
      "value": "BookingBookingsByIdPatch",
      "action": "Allows to modify certain booking properties"
    },
    {
      "name": "Creates a Booking for One or More Reservations Regardless of Availability or Restrictions.",
      "value": "BookingBookings$forcePost",
      "action": "Creates a booking for one or more reservations regardless of availability or restrictions"
    },
    {
      "name": "Creates a Booking for One or More Reservations.",
      "value": "BookingBookingsPost",
      "action": "Creates a booking for one or more reservations"
    },
    {
      "name": "Returns a List of All Bookings, Filtered by the Specified Parameters.",
      "value": "BookingBookingsGet",
      "action": "Returns a list of all bookings filtered by the specified parameters"
    },
    {
      "name": "Returns a Specific Booking.",
      "value": "BookingBookingsByIdGet",
      "action": "Returns a specific booking"
    },
    {
      "name": "Add One or Multiple Reservations to an Existing Group Booking Using Blocked Inventory.",
      "value": "BookingGroupsByIdReservationsPost",
      "action": "Add one or multiple reservations to an existing group booking using blocked inventory"
    },
    {
      "name": "Allows to Modify Certain Group Booking Properties",
      "value": "BookingGroupsByIdPatch",
      "action": "Allows to modify certain group booking properties"
    },
    {
      "name": "Creates a Group Booking.",
      "value": "BookingGroupsPost",
      "action": "Creates a group booking"
    },
    {
      "name": "Returns a List of All Group Bookings, Filtered by the Specified Parameters.",
      "value": "BookingGroupsGet",
      "action": "Returns a list of all group bookings filtered by the specified parameters"
    },
    {
      "name": "Returns a Specific Group Booking.",
      "value": "BookingGroupsByIdGet",
      "action": "Returns a specific group booking"
    },
    {
      "name": "Returns Offers for a Specific Rate Plan.",
      "value": "BookingRate-plan-offersGet",
      "action": "Returns offers for a specific rate plan"
    },
    {
      "name": "Returns Offers for One Specific Stay.",
      "value": "BookingOffersGet",
      "action": "Returns offers for one specific stay"
    },
    {
      "name": "Returns Offers with Rates and Availabilities for the Specified Range.",
      "value": "BookingOffer-indexGet",
      "action": "Returns offers with rates and availabilities for the specified range"
    },
    {
      "name": "Returns Service Offers for One Specific Stay.",
      "value": "BookingService-offersGet",
      "action": "Returns service offers for one specific stay"
    },
    {
      "name": "Allows to Modify Certain Reservation Properties",
      "value": "BookingReservationsByIdPatch",
      "action": "Allows to modify certain reservation properties"
    },
    {
      "name": "Removes a Service From a Reservation.",
      "value": "BookingReservationsByIdServicesDelete",
      "action": "Removes a service from a reservation"
    },
    {
      "name": "Returns a List of All Reservations, Filtered by the Specified Parameters.",
      "value": "BookingReservationsGet",
      "action": "Returns a list of all reservations filtered by the specified parameters"
    },
    {
      "name": "Returns a Specific Reservation.",
      "value": "BookingReservationsByIdGet",
      "action": "Returns a specific reservation"
    },
    {
      "name": "Returns Offers for One Specific Reservation.",
      "value": "BookingReservationsByIdOffersGet",
      "action": "Returns offers for one specific reservation"
    },
    {
      "name": "Returns Service Offers for One Specific Reservation.",
      "value": "BookingReservationsByIdService-offersGet",
      "action": "Returns service offers for one specific reservation"
    },
    {
      "name": "Returns the Number of Reservations Fulfilling the Criteria Specified in the Parameters.",
      "value": "BookingReservations$countGet",
      "action": "Returns the number of reservations fulfilling the criteria specified in the parameters"
    },
    {
      "name": "Returns the Services Booked for a Specific Reservation.",
      "value": "BookingReservationsByIdServicesGet",
      "action": "Returns the services booked for a specific reservation"
    },
    {
      "name": "Adds the City Tax to a Reservation.",
      "value": "BookingReservation-actionsByIdAdd-city-taxPut",
      "action": "Adds the city tax to a reservation"
    },
    {
      "name": "Allows You to Amend the Stay Details of a Reservation",
      "value": "BookingReservation-actionsByIdAmendPut",
      "action": "Allows you to amend the stay details of a reservation"
    },
    {
      "name": "Allows You to Amend the Stay Details of a Reservation Regardless of Availability or Restrictions.",
      "value": "BookingReservation-actionsByIdAmend$forcePut",
      "action": "Allows you to amend the stay details of a reservation regardless of availability or restrictions"
    },
    {
      "name": "Assign a Specific Unit to a Reservation.",
      "value": "BookingReservation-actionsByIdAssign-unitByUnitIdPut",
      "action": "Assign a specific unit to a reservation"
    },
    {
      "name": "Assign a Unit to a Reservation.",
      "value": "BookingReservation-actionsByIdAssign-unitPut",
      "action": "Assign a unit to a reservation"
    },
    {
      "name": "Book the Service for a Specific Reservation Regardless of Availability.",
      "value": "BookingReservation-actionsByIdBook-service$forcePut",
      "action": "Book the service for a specific reservation regardless of availability"
    },
    {
      "name": "Book the Service for a Specific Reservation.",
      "value": "BookingReservation-actionsByIdBook-servicePut",
      "action": "Book the service for a specific reservation"
    },
    {
      "name": "Cancel a Reservation.",
      "value": "BookingReservation-actionsByIdCancelPut",
      "action": "Cancel a reservation"
    },
    {
      "name": "Check-in of a Reservation.",
      "value": "BookingReservation-actionsByIdCheckinPut",
      "action": "Check in of a reservation"
    },
    {
      "name": "Check-Out of a Reservation.",
      "value": "BookingReservation-actionsByIdCheckoutPut",
      "action": "Check out of a reservation"
    },
    {
      "name": "Removes the City Tax From a Reservation.",
      "value": "BookingReservation-actionsByIdRemove-city-taxPut",
      "action": "Removes the city tax from a reservation"
    },
    {
      "name": "Reverses the Check-in of a Reservation.",
      "value": "BookingReservation-actionsByIdRevert-checkinPut",
      "action": "Reverses the check in of a reservation"
    },
    {
      "name": "Set a Reservation to No-Show.",
      "value": "BookingReservation-actionsByIdNoshowPut",
      "action": "Set a reservation to no show"
    },
    {
      "name": "Unassign Units From a Reservation.",
      "value": "BookingReservation-actionsByIdUnassign-unitsPut",
      "action": "Unassign units from a reservation"
    },
    {
      "name": "Returns a List of Supported Sources.",
      "value": "BookingTypesSourcesGet",
      "action": "Returns a list of supported sources"
    },
    {
      "name": "Returns a List of Values that a Field of the Specified Type Can Take in the Specified Country.",
      "value": "BookingTypesByTypeAllowed-valuesGet",
      "action": "Returns a list of values that a field of the specified type can take in the specified country"
    },
    {
      "name": "Allows to Modify Certain Properties of a Folio",
      "value": "FinanceFoliosByIdPatch",
      "action": "Allows to modify certain properties of a folio"
    },
    {
      "name": "Check if the Folio Exists.",
      "value": "FinanceFoliosByIdHead",
      "action": "Check if the folio exists"
    },
    {
      "name": "Create Additional Folios for a Reservation, or New External Folios",
      "value": "FinanceFoliosPost",
      "action": "Create additional folios for a reservation or new external folios"
    },
    {
      "name": "Returns a List of All Folios.",
      "value": "FinanceFoliosGet",
      "action": "Returns a list of all folios"
    },
    {
      "name": "Returns Number of Folios.",
      "value": "FinanceFolios$countGet",
      "action": "Returns number of folios"
    },
    {
      "name": "Returns One Folio.",
      "value": "FinanceFoliosByIdGet",
      "action": "Returns one folio"
    },
    {
      "name": "Adds and Directly Posts a Cancellation Fee to the Folio. If There Are Any Fees Configured for the Property, an Additional Charge for Each Configured Fee Will Be Added. If a Routing Instruction Is Defined for the Cancellation Fee Service Type, the Fee Will Be Moved to the Destination Folio.",
      "value": "FinanceFolio-actionsByFolioIdCancellation-feePost",
      "action": "Adds and directly posts a cancellation fee to the folio if there are any fees configured for the property an additional charge for each configured fee will be added if a routing instruction is defined for the cancellation fee service type the fee will be moved to the destination folio"
    },
    {
      "name": "Adds and Directly Posts a Charge to the Folio. If There Are Any Fees Configured for the Property, an Additional Charge for Each Configured Fee Will Be Added.",
      "value": "FinanceFolio-actionsByFolioIdChargesPost",
      "action": "Adds and directly posts a charge to the folio if there are any fees configured for the property an additional charge for each configured fee will be added"
    },
    {
      "name": "Adds and Directly Posts a No-Show Fee to the Folio. If There Are Any Fees Configured for the Property, an Additional Charge for Each Configured Fee Will Be Added. If a Routing Instruction Is Defined for the No-Show Fee Service Type, the Fee Will Be Moved to the Destination Folio.",
      "value": "FinanceFolio-actionsByFolioIdNo-show-feePost",
      "action": "Adds and directly posts a no show fee to the folio if there are any fees configured for the property an additional charge for each configured fee will be added if a routing instruction is defined for the no show fee service type the fee will be moved to the destination folio"
    },
    {
      "name": "Adds and Directly Posts a Transitory Charge to the Folio. If There Are Any Fees Configured for the Property, an Additional Charge for Each Configured Fee Will Be Added.",
      "value": "FinanceFolio-actionsByFolioIdTransitory-chargesPost",
      "action": "Adds and directly posts a transitory charge to the folio if there are any fees configured for the property an additional charge for each configured fee will be added"
    },
    {
      "name": "Closes a Folio.",
      "value": "FinanceFolio-actionsByFolioIdClosePut",
      "action": "Closes a folio"
    },
    {
      "name": "Corrects a Folio by Moving some Charges. This Operation Creates a New Folio with the Charges From the Request. The Payment, Equal to the Sum of Charges, Is Also Split to This New Folio so that Both Folios Will Have 0 Balance.",
      "value": "FinanceFolio-actionsByFolioIdCorrectPost",
      "action": "Corrects a folio by moving some charges this operation creates a new folio with the charges from the request the payment equal to the sum of charges is also split to this new folio so that both folios will have 0 balance"
    },
    {
      "name": "Move All Charges and Transitory Charges From One Folio to Another.",
      "value": "FinanceFolio-actionsByFolioIdMove-all-chargesPut",
      "action": "Move all charges and transitory charges from one folio to another"
    },
    {
      "name": "Move Multiple Charges From One Folio to Another. Multiple Source Folios and Multiple Target Folios Can Be Specified.",
      "value": "FinanceFolio-actionsBulk-movePut",
      "action": "Move multiple charges from one folio to another multiple source folios and multiple target folios can be specified"
    },
    {
      "name": "Move Multiple Charges, Allowances and Transitory Charges From One Folio to Another.",
      "value": "FinanceFolio-actionsByFolioIdMove-chargesPut",
      "action": "Move multiple charges allowances and transitory charges from one folio to another"
    },
    {
      "name": "Move Multiple Payments From One Guest/booking Folio to Another.",
      "value": "FinanceFolio-actionsByFolioIdMove-paymentsPut",
      "action": "Move multiple payments from one guest booking folio to another"
    },
    {
      "name": "Posts All Unposted Charges for the Whole Length of Stay.",
      "value": "FinanceFolio-actionsByFolioIdPost-chargesPut",
      "action": "Posts all unposted charges for the whole length of stay"
    },
    {
      "name": "Posts Allowances for a Folio",
      "value": "FinanceFolio-actionsByFolioIdBulk-allowancesPost",
      "action": "Posts allowances for a folio"
    },
    {
      "name": "Posts an Allowance for a Charge",
      "value": "FinanceFolio-actionsByFolioIdChargesByChargeIdAllowancesPost",
      "action": "Posts an allowance for a charge"
    },
    {
      "name": "Posts an Allowance for a Folio",
      "value": "FinanceFolio-actionsByFolioIdAllowancesPost",
      "action": "Posts an allowance for a folio"
    },
    {
      "name": "Reopens a Folio.",
      "value": "FinanceFolio-actionsByFolioIdReopenPut",
      "action": "Reopens a folio"
    },
    {
      "name": "Splits a Charge Into Two Using the Percent or Amount Provided Creates an Allowance and Two New Charges.",
      "value": "FinanceFolio-actionsByFolioIdChargesByChargeIdSplitPost",
      "action": "Splits a charge into two using the percent or amount provided creates an allowance and two new charges"
    },
    {
      "name": "Splits a Payment Into Two Using the Percent or Amount Provided Creates a Refund and Two New Payments.",
      "value": "FinanceFolio-actionsByFolioIdPaymentsByPaymentIdSplitPost",
      "action": "Splits a payment into two using the percent or amount provided creates a refund and two new payments"
    },
    {
      "name": "Cancels a Pending Payment Link.",
      "value": "FinanceFoliosByFolioIdPaymentsByPaymentIdCancelPut",
      "action": "Cancels a pending payment link"
    },
    {
      "name": "Captures a Specific Amount From a Pre-Authorization and Posts It to the Folio.",
      "value": "FinanceFoliosByFolioIdPaymentsBy-authorizationPost",
      "action": "Captures a specific amount from a pre authorization and posts it to the folio"
    },
    {
      "name": "Creates a Link to a Payment Form Where Guests Can Pay.",
      "value": "FinanceFoliosByFolioIdPaymentsBy-linkPost",
      "action": "Creates a link to a payment form where guests can pay"
    },
    {
      "name": "Get a List of Payments.",
      "value": "FinanceFoliosByFolioIdPaymentsGet",
      "action": "Get a list of payments"
    },
    {
      "name": "Get a List of Refunds.",
      "value": "FinanceFoliosByFolioIdRefundsGet",
      "action": "Get a list of refunds"
    },
    {
      "name": "Get a Payment by ID.",
      "value": "FinanceFoliosByFolioIdPaymentsByPaymentIdGet",
      "action": "Get a payment by ID."
    },
    {
      "name": "Get a Refund by ID.",
      "value": "FinanceFoliosByFolioIdRefundsByRefundIdGet",
      "action": "Get a refund by ID."
    },
    {
      "name": "Trigger a Custom Payment for the Folio.",
      "value": "FinanceFoliosByFolioIdPaymentsPost",
      "action": "Trigger a custom payment for the folio"
    },
    {
      "name": "Trigger a Payment on a Card Terminal for the Folio.",
      "value": "FinanceFoliosByFolioIdPaymentsBy-terminalPost",
      "action": "Trigger a payment on a card terminal for the folio"
    },
    {
      "name": "Trigger a Payment Using the Payment Account Stored on the Reservation.",
      "value": "FinanceFoliosByFolioIdPaymentsBy-payment-accountPost",
      "action": "Trigger a payment using the payment account stored on the reservation"
    },
    {
      "name": "Trigger a Refund for a Specific Payment.",
      "value": "FinanceFoliosByFolioIdPaymentsByPaymentIdRefundsPost",
      "action": "Trigger a refund for a specific payment"
    },
    {
      "name": "Trigger a Refund for the Folio.",
      "value": "FinanceFoliosByFolioIdRefundsPost",
      "action": "Trigger a refund for the folio"
    },
    {
      "name": "Creates an Invoice for One Specific Folio.",
      "value": "FinanceInvoicesPost",
      "action": "Creates an invoice for one specific folio"
    },
    {
      "name": "Gets a Preview Invoice PDF for One Specific Folio.",
      "value": "FinanceInvoicesPreview-pdfGet",
      "action": "Gets a preview invoice pdf for one specific folio"
    },
    {
      "name": "Gets an Invoice PDF File.",
      "value": "FinanceInvoicesByIdPdfGet",
      "action": "Gets an invoice pdf file"
    },
    {
      "name": "Gets an Invoice Preview for One Specific Folio.",
      "value": "FinanceInvoicesPreviewGet",
      "action": "Gets an invoice preview for one specific folio"
    },
    {
      "name": "Gets Invoice Data.",
      "value": "FinanceInvoicesByIdGet",
      "action": "Gets invoice data"
    },
    {
      "name": "Gets the List of All Invoices (the Metadata only, Not the Files).",
      "value": "FinanceInvoicesGet",
      "action": "Gets the list of all invoices the metadata only not the files"
    },
    {
      "name": "Cancels an Invoice",
      "value": "FinanceInvoice-actionsByIdCancelPut",
      "action": "Cancels an invoice"
    },
    {
      "name": "Marks an Invoice as Paid.",
      "value": "FinanceInvoice-actionsByIdPayPut",
      "action": "Marks an invoice as paid"
    },
    {
      "name": "Aggregates Transactions by Date (Business Day) for All Accounts and a Given Period.",
      "value": "FinanceAccountsAggregate-dailyPost",
      "action": "Aggregates transactions by date business day for all accounts and a given period"
    },
    {
      "name": "Aggregates Transactions by Timestamp for All Accounts and a Given Period.",
      "value": "FinanceAccountsAggregatePost",
      "action": "Aggregates transactions by timestamp for all accounts and a given period"
    },
    {
      "name": "Aggregates Transactions Pairs by Date (Business Day) for All Accounts and a Given Period.",
      "value": "FinanceAccountsAggregate-pairs-dailyPost",
      "action": "Aggregates transactions pairs by date business day for all accounts and a given period"
    },
    {
      "name": "Returns a List of Child Accounts for a Specified Parent Account.",
      "value": "FinanceAccountsChild-accountsGet",
      "action": "Returns a list of child accounts for a specified parent account"
    },
    {
      "name": "Returns a List of External Accounts.",
      "value": "FinanceExternal-accountsGet",
      "action": "Returns a list of external accounts"
    },
    {
      "name": "Returns a List of Global Accounts.",
      "value": "FinanceGlobal-accountsGet",
      "action": "Returns a list of global accounts"
    },
    {
      "name": "Returns a List of Guest Accounts.",
      "value": "FinanceGuest-accountsGet",
      "action": "Returns a list of guest accounts"
    },
    {
      "name": "Returns Gross Transactions Filtered by Date (Business Day) for a Property for a Given Period.",
      "value": "FinanceAccountsExport-gross-dailyPost",
      "action": "Returns gross transactions filtered by date business day for a property for a given period"
    },
    {
      "name": "Returns One Account.",
      "value": "FinanceAccountsByNumberGet",
      "action": "Returns one account"
    },
    {
      "name": "Returns the Chart of Accounts of the Subledger.",
      "value": "FinanceAccountsSchemaGet",
      "action": "Returns the chart of accounts of the subledger"
    },
    {
      "name": "Returns Transactions Filtered by Date (Business Day) for a Property for a Given Period.",
      "value": "FinanceAccountsExport-dailyPost",
      "action": "Returns transactions filtered by date business day for a property for a given period"
    },
    {
      "name": "Returns Transactions Filtered by Timestamp for a Property for a Given Period.",
      "value": "FinanceAccountsExportPost",
      "action": "Returns transactions filtered by timestamp for a property for a given period"
    },
    {
      "name": "Returns a List of All Currencies.",
      "value": "FinanceTypesCurrenciesGet",
      "action": "Returns a list of all currencies"
    },
    {
      "name": "Returns a List of All Supported Payment Methods.",
      "value": "FinanceTypesPayment-methodsGet",
      "action": "Returns a list of all supported payment methods"
    },
    {
      "name": "Returns a List of All Supported Service Types.",
      "value": "FinanceTypesService-typesGet",
      "action": "Returns a list of all supported service types"
    },
    {
      "name": "Returns a List of All VAT Types.",
      "value": "FinanceTypesVatGet",
      "action": "Returns a list of all vat types"
    },
    {
      "name": "Allows to Modify Property",
      "value": "InventoryPropertiesByIdPatch",
      "action": "Allows to modify property"
    },
    {
      "name": "Creates a Property",
      "value": "InventoryPropertiesPost",
      "action": "Creates a property"
    },
    {
      "name": "Get a Properties List",
      "value": "InventoryPropertiesGet",
      "action": "Get a properties list"
    },
    {
      "name": "Get a Property",
      "value": "InventoryPropertiesByIdGet",
      "action": "Get a property"
    },
    {
      "name": "Allows to Patch One or More Units",
      "value": "InventoryUnitsPatch",
      "action": "Allows to patch one or more units"
    },
    {
      "name": "Allows to Patch Unit",
      "value": "InventoryUnitsByIdPatch",
      "action": "Allows to patch unit"
    },
    {
      "name": "Check if a Unit Exists",
      "value": "InventoryUnitsByIdHead",
      "action": "Check if a unit exists"
    },
    {
      "name": "Create a Unit",
      "value": "InventoryUnitsPost",
      "action": "Create a unit"
    },
    {
      "name": "Create Multiple Units",
      "value": "InventoryUnitsBulkPost",
      "action": "Create multiple units"
    },
    {
      "name": "Delete a Unit",
      "value": "InventoryUnitsByIdDelete",
      "action": "Delete a unit"
    },
    {
      "name": "Get a Unit",
      "value": "InventoryUnitsByIdGet",
      "action": "Get a unit"
    },
    {
      "name": "Get a Units List",
      "value": "InventoryUnitsGet",
      "action": "Get a units list"
    },
    {
      "name": "Returns Number of Units",
      "value": "InventoryUnits$countGet",
      "action": "Returns number of units"
    },
    {
      "name": "Allows to Modify Unit Attribute",
      "value": "InventoryUnit-attributesByIdPatch",
      "action": "Allows to modify unit attribute"
    },
    {
      "name": "Check if a Unit Attribute Exists",
      "value": "InventoryUnit-attributesByIdHead",
      "action": "Check if a unit attribute exists"
    },
    {
      "name": "Create a Unit Attribute",
      "value": "InventoryUnit-attributesPost",
      "action": "Create a unit attribute"
    },
    {
      "name": "Get Unit Attribute by ID",
      "value": "InventoryUnit-attributesByIdGet",
      "action": "Get unit attribute by id"
    },
    {
      "name": "Get Unit Attribute List",
      "value": "InventoryUnit-attributesGet",
      "action": "Get unit attribute list"
    },
    {
      "name": "Check if a Unit Group Exists",
      "value": "InventoryUnit-groupsByIdHead",
      "action": "Check if a unit group exists"
    },
    {
      "name": "Create a Unit Group",
      "value": "InventoryUnit-groupsPost",
      "action": "Create a unit group"
    },
    {
      "name": "Get a Unit Group",
      "value": "InventoryUnit-groupsByIdGet",
      "action": "Get a unit group"
    },
    {
      "name": "Get All Unit Groups, or All Unit Groups for a Property",
      "value": "InventoryUnit-groupsGet",
      "action": "Get all unit groups or all unit groups for a property"
    },
    {
      "name": "Replace a Unit Group",
      "value": "InventoryUnit-groupsByIdPut",
      "action": "Replace a unit group"
    },
    {
      "name": "Returns Number of Unit Groups",
      "value": "InventoryUnit-groups$countGet",
      "action": "Returns number of unit groups"
    },
    {
      "name": "Returns Reservation Change Log Entries Sorted by the Timestamp",
      "value": "LogsBookingReservationGet",
      "action": "Returns reservation change log entries sorted by the timestamp"
    },
    {
      "name": "Returns Folio Change Log Entries Sorted by the Timestamp.",
      "value": "LogsFinanceFolioGet",
      "action": "Returns folio change log entries sorted by the timestamp"
    },
    {
      "name": "Returns the Audit Log for All Accounting Exports that Have Been Done.",
      "value": "LogsFinanceTransactions-exportGet",
      "action": "Returns the audit log for all accounting exports that have been done"
    },
    {
      "name": "Returns the Night Audit Logs.",
      "value": "LogsFinanceNight-auditGet",
      "action": "Returns the night audit logs"
    },
    {
      "name": "Check if a Maintenance Exists",
      "value": "OperationsMaintenancesByIdHead",
      "action": "Check if a maintenance exists"
    },
    {
      "name": "Create a New Maintenance Window",
      "value": "OperationsMaintenancesPost",
      "action": "Create a new maintenance window"
    },
    {
      "name": "Create Multiple Maintenances",
      "value": "OperationsMaintenancesBulkPost",
      "action": "Create multiple maintenances"
    },
    {
      "name": "Delete a Maintenance",
      "value": "OperationsMaintenancesByIdDelete",
      "action": "Delete a maintenance"
    },
    {
      "name": "Get a Specific Maintenance",
      "value": "OperationsMaintenancesByIdGet",
      "action": "Get a specific maintenance"
    },
    {
      "name": "Get List of Maintenances",
      "value": "OperationsMaintenancesGet",
      "action": "Get list of maintenances"
    },
    {
      "name": "Modify a Maintenance",
      "value": "OperationsMaintenancesByIdPatch",
      "action": "Modify a maintenance"
    },
    {
      "name": "Returns Number of Maintenances",
      "value": "OperationsMaintenances$countGet",
      "action": "Returns number of maintenances"
    },
    {
      "name": "Change the Condition of a Unit",
      "value": "OperationsUnits-conditionPut",
      "action": "Change the condition of a unit"
    },
    {
      "name": "Performs the Night Audit for One Property.",
      "value": "OperationsNight-auditPut",
      "action": "Performs the night audit for one property"
    },
    {
      "name": "Allows to Modify Properties of an Age Category",
      "value": "SettingsAge-categoriesByIdPatch",
      "action": "Allows to modify properties of an age category"
    },
    {
      "name": "Create an Age Category",
      "value": "SettingsAge-categoriesPost",
      "action": "Create an age category"
    },
    {
      "name": "Get an Age Category",
      "value": "SettingsAge-categoriesByIdGet",
      "action": "Get an age category"
    },
    {
      "name": "Get an Age Category List",
      "value": "SettingsAge-categoriesGet",
      "action": "Get an age category list"
    },
    {
      "name": "Allows to Modify Properties of a Cancellation Policy",
      "value": "RateplanCancellation-policiesByIdPatch",
      "action": "Allows to modify properties of a cancellation policy"
    },
    {
      "name": "Create a Cancellation Policy.",
      "value": "RateplanCancellation-policiesPost",
      "action": "Create a cancellation policy"
    },
    {
      "name": "Get a Specific Cancellation Policy.",
      "value": "RateplanCancellation-policiesByIdGet",
      "action": "Get a specific cancellation policy"
    },
    {
      "name": "Get All Cancellation Policies.",
      "value": "RateplanCancellation-policiesGet",
      "action": "Get all cancellation policies"
    },
    {
      "name": "Create a Company",
      "value": "RateplanCompaniesPost",
      "action": "Create a company"
    },
    {
      "name": "Get a Company",
      "value": "RateplanCompaniesByIdGet",
      "action": "Get a company"
    },
    {
      "name": "Get a List of Companies",
      "value": "RateplanCompaniesGet",
      "action": "Get a list of companies"
    },
    {
      "name": "Modify a Company",
      "value": "RateplanCompaniesByIdPatch",
      "action": "Modify a company"
    },
    {
      "name": "Returns a List of Corporate Codes.",
      "value": "RateplanCorporate-codesCodesGet",
      "action": "Returns a list of corporate codes"
    },
    {
      "name": "Allows to Modify Properties of a No-Show Policy",
      "value": "RateplanNo-show-policiesByIdPatch",
      "action": "Allows to modify properties of a no show policy"
    },
    {
      "name": "Create a No-Show Policy.",
      "value": "RateplanNo-show-policiesPost",
      "action": "Create a no show policy"
    },
    {
      "name": "Get a Specific No-Show Policy.",
      "value": "RateplanNo-show-policiesByIdGet",
      "action": "Get a specific no show policy"
    },
    {
      "name": "Get All No-Show Policies.",
      "value": "RateplanNo-show-policiesGet",
      "action": "Get all no show policies"
    },
    {
      "name": "Returns a List of Promo Codes.",
      "value": "RateplanPromo-codesCodesGet",
      "action": "Returns a list of promo codes"
    },
    {
      "name": "Allows to Patch the Rates of Multiple Rate Plans.",
      "value": "RateplanRatesPatch",
      "action": "Allows to patch the rates of multiple rate plans"
    },
    {
      "name": "Initializes and Changes the Rates for the Rate Plan.",
      "value": "RateplanRate-plansByIdRatesPut",
      "action": "Initializes and changes the rates for the rate plan"
    },
    {
      "name": "Returns a List of Rates.",
      "value": "RateplanRate-plansByIdRatesGet",
      "action": "Returns a list of rates"
    },
    {
      "name": "Allows to Patch One or More Rate Plans",
      "value": "RateplanRate-plansPatch",
      "action": "Allows to patch one or more rate plans"
    },
    {
      "name": "Create a Rate Plan",
      "value": "RateplanRate-plansPost",
      "action": "Create a rate plan"
    },
    {
      "name": "Get a Rate Plan",
      "value": "RateplanRate-plansByIdGet",
      "action": "Get a rate plan"
    },
    {
      "name": "Get a Rate Plan List",
      "value": "RateplanRate-plansGet",
      "action": "Get a rate plan list"
    },
    {
      "name": "Replace a Rate Plan",
      "value": "RateplanRate-plansByIdPut",
      "action": "Replace a rate plan"
    },
    {
      "name": "Create a Service.",
      "value": "RateplanServicesPost",
      "action": "Create a service"
    },
    {
      "name": "Get a Specific Service.",
      "value": "RateplanServicesByIdGet",
      "action": "Get a specific service"
    },
    {
      "name": "Get All Services.",
      "value": "RateplanServicesGet",
      "action": "Get all services"
    },
    {
      "name": "Modify a Service.",
      "value": "RateplanServicesByIdPatch",
      "action": "Modify a service"
    },
    {
      "name": "List of Ordered Services",
      "value": "ReportsReportsOrdered-servicesGet",
      "action": "List of ordered services"
    },
    {
      "name": "Returns the List of Company Invoices with Information on the Company and the VAT Breakdown",
      "value": "ReportsReportsCompany-invoices-vatGet",
      "action": "Returns the list of company invoices with information on the company and the VAT breakdown"
    },
    {
      "name": "Returns the Number of Arrivals in a Month for a Property",
      "value": "ReportsReportsArrivalsGet",
      "action": "Returns the number of arrivals in a month for a property"
    },
    {
      "name": "Returns the Property Performance Report Which Includes the ADR and the RevPAR for Each Business Day.",
      "value": "ReportsReportsProperty-performanceGet",
      "action": "Returns the property performance report which includes the adr and the rev par for each business day"
    },
    {
      "name": "Returns the Revenues Report for a Property",
      "value": "ReportsReportsRevenuesGet",
      "action": "Returns the revenues report for a property"
    },
    {
      "name": "Allows to Modify Properties of a Capture Policy.",
      "value": "SettingsCapture-policiesByIdPatch",
      "action": "Allows to modify properties of a capture policy"
    },
    {
      "name": "Get a Specific Capture Policy.",
      "value": "SettingsCapture-policiesByIdGet",
      "action": "Get a specific capture policy"
    },
    {
      "name": "Get All Capture Policies.",
      "value": "SettingsCapture-policiesGet",
      "action": "Get all capture policies"
    },
    {
      "name": "Allows to Modify City Tax",
      "value": "SettingsCity-taxByIdPatch",
      "action": "Allows to modify city tax"
    },
    {
      "name": "Create a City Tax.",
      "value": "SettingsCity-taxPost",
      "action": "Create a city tax"
    },
    {
      "name": "Get a Specific City Tax.",
      "value": "SettingsCity-taxByIdGet",
      "action": "Get a specific city tax"
    },
    {
      "name": "Get All City Taxes.",
      "value": "SettingsCity-taxGet",
      "action": "Get all city taxes"
    },
    {
      "name": "Allows to Modify the Name of the Sub-Account.",
      "value": "SettingsSub-accountsByIdPatch",
      "action": "Allows to modify the name of the sub account"
    },
    {
      "name": "Check if the Sub-Account Exists.",
      "value": "SettingsSub-accountsByIdHead",
      "action": "Check if the sub account exists"
    },
    {
      "name": "Create a Sub-Account.",
      "value": "SettingsSub-accountsPost",
      "action": "Create a sub account"
    },
    {
      "name": "Returns a List of All Sub-Accounts.",
      "value": "SettingsSub-accountsGet",
      "action": "Returns a list of all sub accounts"
    },
    {
      "name": "Returns Number of Sub-Accounts.",
      "value": "SettingsSub-accounts$countGet",
      "action": "Returns number of sub accounts"
    },
    {
      "name": "Returns One Sub-Account.",
      "value": "SettingsSub-accountsByIdGet",
      "action": "Returns one sub account"
    },
    {
      "name": "Allows to Modify Feature Settings",
      "value": "SettingsFeaturesByPropertyIdPatch",
      "action": "Allows to modify feature settings"
    },
    {
      "name": "Get Feature Settings for a Property.",
      "value": "SettingsFeaturesByPropertyIdGet",
      "action": "Get feature settings for a property"
    },
    {
      "name": "Change Fields in the Invoice Address of One or More Properties.",
      "value": "SettingsInvoice-addressPatch",
      "action": "Change fields in the invoice address of one or more properties"
    },
    {
      "name": "Create or Update Invoice Addresses for One or More Properties.",
      "value": "SettingsInvoice-addressPut",
      "action": "Create or update invoice addresses for one or more properties"
    },
    {
      "name": "Get Invoice Addresses",
      "value": "SettingsInvoice-addressGet",
      "action": "Get invoice addresses"
    },
    {
      "name": "Get the Language Settings for the Account",
      "value": "SettingsLanguagesGet",
      "action": "Get the language settings for the account"
    },
    {
      "name": "Replaces the Language Settings for the Account",
      "value": "SettingsLanguagesPut",
      "action": "Replaces the language settings for the account"
    },
    {
      "name": "Allows to Modify Market Segment.",
      "value": "SettingsMarket-segmentsByIdPatch",
      "action": "Allows to modify market segment"
    },
    {
      "name": "Check if a Market Segment Exists.",
      "value": "SettingsMarket-segmentsByIdHead",
      "action": "Check if a market segment exists"
    },
    {
      "name": "Create a Market Segment",
      "value": "SettingsMarket-segmentsPost",
      "action": "Create a market segment"
    },
    {
      "name": "Get a Market Segment.",
      "value": "SettingsMarket-segmentsByIdGet",
      "action": "Get a market segment"
    },
    {
      "name": "Returns a List of All Market Segments, Filtered by the Specified Parameters.",
      "value": "SettingsMarket-segmentsGet",
      "action": "Returns a list of all market segments filtered by the specified parameters"
    },
    {
      "name": "Returns Number of Market Segments.",
      "value": "SettingsMarket-segments$countGet",
      "action": "Returns number of market segments"
    },
    {
      "name": "Get Property Settings",
      "value": "SettingsPropertiesByIdGet",
      "action": "Get property settings"
    },
    {
      "name": "Creates a Time Slice Definition",
      "value": "SettingsPropertiesByPropertyIdTime-slice-definitionsPost",
      "action": "Creates a time slice definition"
    },
    {
      "name": "Get a Specific Time Slice Definition",
      "value": "SettingsPropertiesByPropertyIdTime-slice-definitionsByIdGet",
      "action": "Get a specific time slice definition"
    },
    {
      "name": "Get Time Slice Definitions",
      "value": "SettingsPropertiesByPropertyIdTime-slice-definitionsGet",
      "action": "Get time slice definitions"
    },
    {
      "name": "Modifies a Specific Time Slice Definition for the Property",
      "value": "SettingsPropertiesByPropertyIdTime-slice-definitionsByIdPatch",
      "action": "Modifies a specific time slice definition for the property"
    },
    {
      "name": "PingerPost",
      "value": "PingerPost",
      "action": "Pinger post"
    },
    {
      "name": "Creates Subscription",
      "value": "SubscriptionsPost",
      "action": "Creates subscription"
    },
    {
      "name": "Deletes Subscription.",
      "value": "SubscriptionsByIdDelete",
      "action": "Deletes subscription"
    },
    {
      "name": "Get All Subscriptions Created for the Current Account and Client",
      "value": "SubscriptionsGet",
      "action": "Get all subscriptions created for the current account and client"
    },
    {
      "name": "SubscriptionsByIdGet",
      "value": "SubscriptionsByIdGet",
      "action": "Subscriptions by id get"
    },
    {
      "name": "Updates Subscription",
      "value": "SubscriptionsByIdPut",
      "action": "Updates subscription"
    }
  ]

npm_readme:
  # n8n-nodes-apaleo

  ![Apaleo Logo](nodes/Apaleo/apaleo.svg)

  This package provides n8n nodes to interact with the [Apaleo API](https://docs.apaleo.com/), allowing you to automate workflows with Apaleo's property management system.

  ## Features

  This integration provides two nodes:

  - **Apaleo**: Perform operations on over 40 Apaleo resources including accounts, reservations, properties, and more
  - **Apaleo Trigger**: Receive webhook events from Apaleo to trigger workflows

  ## Prerequisites

  - [n8n](https://n8n.io/) (version 1.0.0 or later)
  - Apaleo account with API credentials (Client ID and Client Secret)
  - Node.js (version 20.15 or later)

  ## Installation

  ### In n8n Desktop / Self-hosted

  1. Go to **Settings > Community Nodes**
  2. Click on **Install**
  3. Enter `n8n-nodes-apaleo` in the **Enter npm package name** field
  4. Click on **Install**

  ### Manual Installation

  1. Clone this repository:
     ```
     git clone https://github.com/apaleo/n8n-nodes-apaleo.git
     ```
  2. Navigate to the project directory:
     ```
     cd n8n-nodes-apaleo
     ```
  3. Install dependencies:
     ```
     npm install
     ```
  4. Build the package:
     ```
     npm run build
     ```
  5. Link to your n8n installation:
     ```
     npm link
     ```
  6. In your n8n installation directory:
     ```
     npm link n8n-nodes-apaleo
     ```

  ## Credentials

  To use the Apaleo nodes, you need to set up credentials:

  1. In n8n, go to **Credentials**
  2. Click on **Create New**
  3. Search for "Apaleo OAuth2 API"
  4. Enter your Apaleo Client ID and Client Secret
  5. Save the credentials

  ## Usage

  ### Apaleo Node

  The Apaleo node allows you to interact with the following resources:

  #### Property Management
  - **Property**: Manage hotel properties, including details, settings, and configurations
  - **Unit**: Handle individual room/unit operations and information
  - **UnitGroup**: Manage groups of units with similar characteristics
  - **UnitAttribute**: Work with attributes that define unit features and amenities
  - **PropertySettings**: Configure property-specific settings and preferences
  - **PropertyActions**: Perform specific actions on properties

  #### Reservation Management
  - **Reservation**: Create, retrieve, and manage guest reservations
  - **ReservationActions**: Execute specific actions on reservations (check-in, check-out, etc.)
  - **ReservationAvailability**: Check availability for specific reservation scenarios
  - **Block**: Manage room blocks for groups and events
  - **BlockActions**: Perform actions on blocks (create, modify, cancel)
  - **Booking**: Handle booking operations across the system
  - **Group**: Manage group reservations and associated data

  #### Financial Operations
  - **Folio**: Access and manage guest folios containing charges and payments
  - **FolioActions**: Perform specific actions on folios
  - **FolioPayments**: Handle payment operations within folios
  - **Invoice**: Create, retrieve, and manage invoices
  - **InvoiceAction**: Execute specific actions on invoices
  - **SubLedger**: Access financial sub-ledger information
  - **CapturePolicies**: Manage payment capture policies
  - **CustomSubAccounts**: Work with custom financial sub-accounts

  #### Rate and Pricing
  - **Rate**: Manage rate information and pricing
  - **RatePlan**: Configure and manage rate plans
  - **Offer**: Handle special offers and promotions
  - **PromoCodes**: Manage promotional codes for special rates
  - **CorporateCodes**: Handle corporate rate codes and agreements
  - **CancellationPolicy**: Configure and manage cancellation policies
  - **NoShowPolicy**: Set up and manage no-show policies

  #### Account Management
  - **Account**: Manage account information and settings
  - **AccountActions**: Perform specific actions on accounts
  - **Company**: Handle company account information and relationships

  #### Reporting and Logs
  - **Reports**: Access various system reports
  - **BookingLogs**: View logs of booking-related activities
  - **FinanceLogs**: Access logs of financial transactions and changes
  - **Operations**: Perform operational tasks and reporting

  #### Additional Resources
  - **Availability**: Check general availability across properties
  - **Types**: Access system type definitions
  - **UiIntegrations**: Manage UI integration settings
  - **Maintenance**: Handle maintenance-related operations
  - **AgeCategory**: Manage age categories for guests
  - **CityTax**: Configure and manage city tax settings
  - **FeatureSettings**: Adjust feature-specific settings
  - **InvoiceAddress**: Manage invoice address information
  - **Languages**: Configure language settings
  - **MarketSegment**: Manage market segment definitions
  - **TimeSliceDefinitions**: Configure time slice settings
  - **HealthCheck**: Verify system health and connectivity
  - **Subscriptions**: Manage API event subscriptions

  For each resource, you can select from available operations like GET, POST, PUT, DELETE, etc. based on the Apaleo API capabilities.

  ### Apaleo Trigger Node

  Use this node to start workflows when specific events occur in Apaleo, such as:

  - Reservation created, modified, or canceled
  - Check-in or check-out completed
  - Payment processed or refunded
  - Folio or invoice created or updated
  - Property settings changed
  - Rate plan or availability updates
  - And many more events from the Apaleo system

  The trigger node works by subscribing to Apaleo's webhook events, allowing your n8n workflows to react in real-time to changes in your Apaleo environment.

  ## Development

  If you want to contribute or modify the nodes:

  1. Clone the repository
  2. Install dependencies:
     ```
     npm install
     ```
  3. Start development mode:
     ```
     npm run dev
     ```
  4. Make your changes
  5. Build the package:
     ```
     npm run build
     ```
  6. Test your changes locally

  ## License

  [MIT](LICENSE.md)

  ## About Apaleo

  [Apaleo](https://apaleo.com/) is a cloud-based property management system (PMS) that provides APIs for the hospitality industry, allowing seamless integration with various hotel systems and services.

ai_documentation_summary:
  {"purpose":"The Apaleo Official node enables automation of property management, reservation, financial, and operational tasks by integrating with the Apaleo API, offering both action-based operations and real-time event triggers via webhooks.","capabilities":["Manage properties, units, unit groups, and property settings","Create, modify, and manage reservations, blocks, groups, and bookings","Handle folios, invoices, payments, and financial sub-accounts","Configure rates, rate plans, offers, promotions, and policies","Access reporting, logs, and system settings","Receive real-time webhook events (e.g., reservation changes, payments, availability updates)","Perform CRUD operations (GET, POST, PUT, DELETE) on over 40 Apaleo resources"],"authentication":"OAuth2 API with Client ID and Client Secret required","commonUseCases":["Automate reservation creation and updates from external systems","Trigger workflows on payment or check-in events","Sync property configurations and rate plans across systems","Generate invoices or process payments automatically","Monitor and respond to real-time property or booking changes"],"limitations":[],"relatedNodes":["Webhook Trigger","API Action Nodes","Reservation Management Nodes","Financial Integration Nodes"]}


node_type: n8n-nodes-cronlytic.cronlyticTrigger
package_name: n8n-nodes-cronlytic
display_name: Cronlytic Trigger
description: Trigger workflows using Cronlytic advanced cron scheduling
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

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

  An n8n community node for integrating with [Cronlytic](https://cronlytic.com), providing advanced cron scheduling capabilities for n8n workflows through webhook triggers.

  ![n8n](https://img.shields.io/badge/n8n-community%20node-FF6D5A)
  ![npm](https://img.shields.io/npm/v/n8n-nodes-cronlytic)
  ![License](https://img.shields.io/npm/l/n8n-nodes-cronlytic)

  ## What is Cronlytic?

  Cronlytic is an advanced cron scheduling service that provides:
  - Robust, reliable cron job execution
  - Detailed execution logs and monitoring
  - Advanced scheduling features beyond basic cron
  - API-based job management
  - Webhook-based triggers for external systems

  ## Features

  This n8n node provides:

  - **Cronlytic Trigger**: Create scheduled workflows using Cronlytic's advanced cron scheduler
  - **Webhook Integration**: Automatically sets up webhooks between Cronlytic and n8n
  - **Advanced Scheduling**: Support for complex cron expressions
  - **Automatic Job Management**: Creates, updates, and deletes Cronlytic jobs as needed
  - **Custom Headers & Payloads**: Configure webhook requests with custom data

  ## Installation

  ### Community Nodes (Recommended)

  1. Go to **Settings > Community Nodes** in your n8n instance
  2. Click **Install**
  3. Enter `n8n-nodes-cronlytic`
  4. Click **Install**

  ### Manual Installation

  ```bash
  # In your n8n installation directory
  npm install n8n-nodes-cronlytic

  # Restart your n8n instance
  ```

  ## Setup

  ### 1. Get Cronlytic API Credentials

  1. Sign up for a [Cronlytic account](https://cronlytic.com)
  2. Navigate to **API Keys** in your dashboard
  3. Click **Generate New API Key**
  4. Copy your **API Key** and **User ID**

  ### 2. Configure Credentials in n8n

  1. In n8n, go to **Credentials**
  2. Click **Create New Credential**
  3. Search for and select **Cronlytic API**
  4. Enter your **API Key** and **User ID**
  5. Test the connection and save

  ## Usage

  ### Cronlytic Trigger Node

  The Cronlytic Trigger node creates scheduled jobs on Cronlytic that trigger your n8n workflows via webhooks.

  #### Configuration Options:

  - **Job Name**: Unique identifier for the cron job (alphanumeric, hyphens, underscores only)
  - **Cron Expression**: 5-field cron expression (minute hour day month day-of-week)
  - **Webhook Body**: Optional JSON payload to send with the webhook
  - **Additional Headers**: Custom headers for webhook requests

  #### Example Cron Expressions:

  - `*/5 * * * *` - Every 5 minutes
  - `0 9 * * 1-5` - 9 AM on weekdays
  - `0 0 1 * *` - First day of every month
  - `30 14 * * 0` - 2:30 PM every Sunday

  ### Example Workflow

  1. Add a **Cronlytic Trigger** node to your workflow
  2. Configure credentials
  3. Set job name: `daily-report-generator`
  4. Set cron expression: `0 9 * * *` (daily at 9 AM)
  5. Add webhook body: `{"source": "cronlytic", "type": "daily_report"}`
  6. Connect to your processing nodes
  7. Activate the workflow

  When activated, this creates a job on Cronlytic that will trigger your workflow daily at 9 AM.

  ## Advanced Features

  ### Custom Webhook Payloads

  Include dynamic data in your webhook triggers:

  ```json
  {
    "trigger_time": "{{timestamp}}",
    "source": "cronlytic",
    "workflow_id": "daily-backup",
    "environment": "production"
  }
  ```

  ### Error Handling

  The node includes built-in error handling:
  - API connection retries with exponential backoff
  - Automatic lambda warming for reliable execution
  - Detailed error messages for troubleshooting

  ### Job Management

  Jobs are automatically managed by n8n:
  - **Created** when workflow is activated
  - **Updated** when node configuration changes
  - **Deleted** when workflow is deactivated or node is removed

  ## API Reference

  This node uses the [Cronlytic Programmatic API](https://api.cronlytic.com/prog/). For advanced usage, refer to the complete API documentation.

  ## Troubleshooting

  ### Common Issues

  1. **Authentication Failed**
     - Verify API Key and User ID are correct
     - Check that credentials are properly configured in n8n

  2. **Invalid Cron Expression**
     - Use 5-field format: `minute hour day month day-of-week`

  3. **Webhook Not Triggering**
     - Ensure workflow is activated
     - Check Cronlytic dashboard for job status and logs
     - Verify webhook URL is accessible

  4. **Job Limit Exceeded**
     - Check your Cronlytic plan limits
     - Delete unused jobs or upgrade your plan

  ### Support

  - **Node Issues**: [GitHub Issues](https://github.com/Cronlytic/n8n-nodes-cronlytic)
  - **Cronlytic API**: saleh@cronlytic.com
  - **n8n Community**: [n8n Community Forum](https://community.n8n.io/)

  ## Development

  ### Requirements

  - Node.js ≥ 20.15
  - n8n development environment

  ### Setup

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

  # Install dependencies
  npm install

  # Build the node
  npm run build

  # Link for local testing
  npm link
  n8n start
  ```

  ### Scripts

  - `npm run build` - Build the node
  - `npm run dev` - Build in watch mode
  - `npm run lint` - Run linter
  - `npm run format` - Format code

  ## Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests if applicable
  5. Run linting and formatting
  6. Submit a pull request

  ## License

  [MIT](LICENSE.md)

  ## Author

  **Saleh Alsaihati**
  - GitHub: [@Cronlytic](https://github.com/Cronlytic/n8n-nodes-cronlytic)
  - Email: saleh@cronlytic.com

  ---

  *Built with ❤️ for the n8n community*

ai_documentation_summary:
  {"purpose":"The Cronlytic Trigger node enables n8n workflows to be scheduled using advanced cron expressions via Cronlytic's scheduling service, triggering workflows through webhooks with customizable payloads and headers.","capabilities":["Create scheduled workflows using complex cron expressions (5-field format)","Set up automatic webhooks between Cronlytic and n8n","Configure custom webhook payloads and headers","Automatically manage Cronlytic jobs (create, update, delete)","Support for detailed error handling and retry mechanisms"],"authentication":"API key and User ID required from Cronlytic dashboard","commonUseCases":["Scheduling daily reports at specific times","Automating weekly data backups","Triggering ETL processes on specific weekdays","Running maintenance tasks at fixed intervals"],"limitations":["Cron expressions must follow the 5-field format (minute, hour, day, month, day-of-week)","Job limits depend on Cronlytic plan; exceeding limits may require plan upgrade","No built-in support for timezone configuration in the node UI"],"relatedNodes":["Webhook nodes","Schedule nodes","Data processing nodes"]}


node_type: n8n-nodes-signifycrm.signifyCrm
package_name: n8n-nodes-signifycrm
display_name: SignifyCRM
description: Consume SignifyCRM API
category: Communication
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-01-07 20:08:15
author_name: signifycrm
author_github_url: https://github.com/serveradmin-git/
npm_package_name: n8n-nodes-signifycrm
npm_version: 0.1.3
community_fetched_at: 2026-01-07T20:08:15.915Z
ai_summary_generated_at: 2026-01-08 10:45:32
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "contact",
      "options": [
        {
          "name": "Account",
          "value": "account"
        },
        {
          "name": "Case",
          "value": "case"
        },
        {
          "name": "Contact",
          "value": "contact"
        },
        {
          "name": "Lead",
          "value": "lead"
        },
        {
          "name": "Opportunity",
          "value": "opportunity"
        },
        {
          "name": "Task",
          "value": "task"
        },
        {
          "name": "Custom API Call",
          "value": "__CUSTOM_API_CALL__"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a contact",
          "description": "Create a contact"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a contact",
          "description": "Delete a contact"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a contact",
          "description": "Get a contact"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many contacts",
          "description": "Get many contacts"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a contact",
          "description": "Update a contact"
        },
        {
          "name": "Custom API Call",
          "value": "__CUSTOM_API_CALL__"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "contact"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create an account",
          "description": "Create an account"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete an account",
          "description": "Delete an account"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get an account",
          "description": "Get an account"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many accounts",
          "description": "Get many accounts"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update an account",
          "description": "Update an account"
        },
        {
          "name": "Custom API Call",
          "value": "__CUSTOM_API_CALL__"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "account"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a lead",
          "description": "Create a lead"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a lead",
          "description": "Delete a lead"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a lead",
          "description": "Get a lead"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many leads",
          "description": "Get many leads"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a lead",
          "description": "Update a lead"
        },
        {
          "name": "Custom API Call",
          "value": "__CUSTOM_API_CALL__"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "lead"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a opportunity",
          "description": "Create a opportunity"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a opportunity",
          "description": "Delete a opportunity"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a opportunity",
          "description": "Get a opportunity"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many opportunities",
          "description": "Get many opportunities"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a opportunity",
          "description": "Update a opportunity"
        },
        {
          "name": "Custom API Call",
          "value": "__CUSTOM_API_CALL__"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "opportunity"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a case",
          "description": "Create a case"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a case",
          "description": "Delete a case"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a case",
          "description": "Get a case"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many cases",
          "description": "Get many cases"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a case",
          "description": "Update a case"
        },
        {
          "name": "Custom API Call",
          "value": "__CUSTOM_API_CALL__"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "case"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a task",
          "description": "Create a task"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a task",
          "description": "Delete a task"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a task",
          "description": "Get a task"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many tasks",
          "description": "Get many tasks"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a task",
          "description": "Update a task"
        },
        {
          "name": "Custom API Call",
          "value": "__CUSTOM_API_CALL__"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "task"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create",
      "value": "create",
      "action": "Create a contact",
      "description": "Create a contact"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a contact",
      "description": "Delete a contact"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a contact",
      "description": "Get a contact"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many contacts",
      "description": "Get many contacts"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a contact",
      "description": "Update a contact"
    },
    {
      "name": "Custom API Call",
      "value": "__CUSTOM_API_CALL__"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create an account",
      "description": "Create an account"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete an account",
      "description": "Delete an account"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get an account",
      "description": "Get an account"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many accounts",
      "description": "Get many accounts"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update an account",
      "description": "Update an account"
    },
    {
      "name": "Custom API Call",
      "value": "__CUSTOM_API_CALL__"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a lead",
      "description": "Create a lead"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a lead",
      "description": "Delete a lead"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a lead",
      "description": "Get a lead"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many leads",
      "description": "Get many leads"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a lead",
      "description": "Update a lead"
    },
    {
      "name": "Custom API Call",
      "value": "__CUSTOM_API_CALL__"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a opportunity",
      "description": "Create a opportunity"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a opportunity",
      "description": "Delete a opportunity"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a opportunity",
      "description": "Get a opportunity"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many opportunities",
      "description": "Get many opportunities"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a opportunity",
      "description": "Update a opportunity"
    },
    {
      "name": "Custom API Call",
      "value": "__CUSTOM_API_CALL__"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a case",
      "description": "Create a case"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a case",
      "description": "Delete a case"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a case",
      "description": "Get a case"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many cases",
      "description": "Get many cases"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a case",
      "description": "Update a case"
    },
    {
      "name": "Custom API Call",
      "value": "__CUSTOM_API_CALL__"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a task",
      "description": "Create a task"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a task",
      "description": "Delete a task"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a task",
      "description": "Get a task"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many tasks",
      "description": "Get many tasks"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a task",
      "description": "Update a task"
    },
    {
      "name": "Custom API Call",
      "value": "__CUSTOM_API_CALL__"
    }
  ]

npm_readme:
  # n8n-nodes-signifycrm

  This is an n8n community node. It lets you use [SignifyCRM](https://www.signifycrm.com/) in your n8n workflows.

  SignifyCRM is a powerful CRM platform serving APAC businesses since 2006, helping teams automate sales pipelines, manage marketing campaigns, and streamline customer support.

  [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-signifycrm
  ```

  ## Operations

  The SignifyCRM node supports the following **resources** and **operations**:

  ### Account
  - **create**: Create a new Account record  
  - **get**: Retrieve an Account by ID  
  - **getAll**: Retrieve multiple Accounts
  - **update**: Update an existing Account  
  - **delete**: Soft-delete an Account  

  ### Contact
  - **create**: Create a new Contact record  
  - **get**: Retrieve a Contact by ID  
  - **getAll**: Retrieve multiple Contacts  
  - **update**: Update an existing Contact  
  - **delete**: Soft-delete a Contact  

  ### Lead
  - **create**: Create a new Lead record  
  - **get**: Retrieve a Lead by ID  
  - **getAll**: Retrieve multiple Leads  
  - **update**: Update an existing Lead  
  - **delete**: Soft-delete a Lead  

  ### Opportunity
  - **create**: Create a new Opportunity record  
  - **get**: Retrieve an Opportunity by ID  
  - **getAll**: Retrieve multiple Opportunities  
  - **update**: Update an existing Opportunity  
  - **delete**: Soft-delete an Opportunity  

  ### Case
  - **create**: Create a new Case record  
  - **get**: Retrieve a Case by ID  
  - **getAll**: Retrieve multiple Cases  
  - **update**: Update an existing Case  
  - **delete**: Soft-delete a Case  

  ### Task
  - **create**: Create a new Task record  
  - **get**: Retrieve a Task by ID  
  - **getAll**: Retrieve multiple Tasks  
  - **update**: Update an existing Task  
  - **delete**: Soft-delete a Task  

  ## Credentials

  To connect your workflows to SignifyCRM, you must create a **SignifyCRM API** credential in n8n.

  ### Prerequisites
  - An active SignifyCRM account (contact your administrator if you don’t have one).  
  - Your SignifyCRM instance URL (e.g. `https://example.signifycrm.com`).  
  - A valid **API Key** issued by your SignifyCRM administrator.  
  - Your SignifyCRM **Username** and **Password**.

  ### Authentication Method
  This node uses SignifyCRM’s REST-API login endpoint (`POST /rest_api/v1/rest/login`) to authenticate on every request. Your API key is sent in the request body along with your login credentials.

  ### How to set up in n8n
  1. In n8n, go to **Settings → Credentials**.  
  2. Click **New Credential** and choose **SignifyCRM API**.  
  3. Enter the following fields:  
     - **Site URL**  
       - The full base URL of your SignifyCRM instance (e.g. `https://example.signifycrm.com`).  
     - **API Key**  
       - Your SignifyCRM API key.  
     - **Username**  
       - Your SignifyCRM username.  
     - **Password**  
       - Your SignifyCRM login password.  
  4. Click **Save**.  
  5. n8n will automatically send a test request to `/rest_api/v1/rest/login`. If the test succeeds, your credential is ready to use.

  For more details on SignifyCRM authentication, refer to the [SignifyCRM API docs](https://support.signifycrm.net/service/api_v1/docs/).

  ## Compatibility

  This node was developed and tested with latest stable n8n release and SignifyCRM API v1.

  ## Usage

  If you’re new to n8n, check out the [Try it out guide](https://docs.n8n.io/try-it-out/) first.

  1. **Add the node**  
     On your workflow canvas click the “+” button and search for **SignifyCRM**.

  2. **Select your credential**  
     In the node’s **Credentials** dropdown, pick the **SignifyCRM API** you created.

  3. **Choose a resource & operation**  
     - **Resource**: e.g. Account, Contact, Lead, Opportunity, Case, or Task  
     - **Operation**: e.g. create, get, getAll, update, delete  

  4. **Fill in the parameters**  
     - Required fields will be marked in red  
     - You can expand **Additional Fields** to set any optional properties  

  5. **Connect to other nodes**  
     - Use an **HTTP Request**, **Set**, or **Function** node before/after to pass data in or handle results  

  6. **Execute the workflow**  
     - Click **Execute Node** (or run the whole workflow) to test  
     - Inspect the output in the node’s **Output** panel

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  * [SignifyCRM API v1 documentation](https://support.signifycrm.net/service/api_v1/docs/)  
  * [GitHub repository & README](https://github.com/serveradmin-git/n8n-nodes-signifycrm#readme)  

  ## Version history

  - **1.0.0**
    - Initial release  
    - Resources: Account, Contact, Lead, Opportunity, Case, Task  
    - Operations: create · get · getAll · update · delete  
    - Built and tested against n8n latest and SignifyCRM API v1

  ## License

  This project is licensed under the [MIT License](LICENSE.md).

ai_documentation_summary:
  {"purpose":"The SignifyCRM node enables integration with the SignifyCRM API to perform CRUD operations on core CRM entities such as Accounts, Contacts, Leads, Opportunities, Cases, and Tasks within n8n workflows.","capabilities":["Create, retrieve, update, and soft-delete Account records","Create, retrieve, update, and soft-delete Contact records","Create, retrieve, update, and soft-delete Lead records","Create, retrieve, update, and soft-delete Opportunity records","Create, retrieve, update, and soft-delete Case records","Create, retrieve, update, and soft-delete Task records"],"authentication":"API key required; authentication is performed via a login endpoint using username, password, and API key in the request body (POST /rest_api/v1/rest/login)","commonUseCases":["Automate lead capture and conversion into opportunities","Sync customer data between n8n and SignifyCRM","Update or create contact records based on incoming data","Trigger sales pipeline updates via workflow automation"],"limitations":[],"relatedNodes":["HTTP Request","Set","Function"]}


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

updated_at: 2026-01-07 20:08:15
author_name: web.waboo
author_github_url: https://github.com/webwaboo/n8n-yourtextguru-api.git
npm_package_name: n8n-nodes-yourtextguru
npm_version: 0.2.0
community_fetched_at: 2026-01-07T20:08:15.916Z
ai_summary_generated_at: 2026-01-08 10:45:32
description:
  Yourtext.Guru is an advanced SEO content optimization tool designed to help writers and marketers create high-performing content.

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

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

npm_readme:
  # n8n-nodes-yourtextguru

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

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

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

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

  ## Installation

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

  ## Operations

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

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

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

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

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

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


  ## Credentials

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

  ```
  Authorization: Bearer YOUR_API_KEY
  ```

  Replace `YOUR_API_KEY` with your actual API key.

  ## Compatibility

  Tested on n8n Version: 1.100.1

  ## Resources

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


  ## Version history

  version: 0.1.0

ai_documentation_summary:
  {"purpose":"The Yourtext.Guru node enables integration of SEO content optimization tools into n8n workflows, allowing users to manage SEO projects, groups, guides, and generate topical meshes and related content insights.","capabilities":["Check API status and consumption metrics","Create, retrieve, update, and delete projects","Manage groups within projects including creation, updating, and deletion","Add or remove guides from groups","Generate topical meshes and retrieve associated word clouds and 'People Also Ask' questions","List guides with filtering by project, group, language, or API-only status"],"authentication":"API key required (not explicitly detailed in README, but implied by standard API usage)","commonUseCases":["Creating and organizing SEO content projects by domain or topic","Generating topical content strategies using topical meshes","Analyzing content performance with word clouds and PAA questions","Automating guide management and content categorization"],"limitations":["README is truncated; full feature set and advanced capabilities may be missing","No details on content generation or AI-based writing capabilities (only analysis and structure)","No information on rate limits, error handling, or response formats"],"relatedNodes":["n8n-nodes-webhook","n8n-nodes-http-request","n8n-nodes-database"]}


node_type: n8n-nodes-postfast.postFast
package_name: n8n-nodes-postfast
display_name: PostFast - Social Media Management
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-01-07 20:08:15
author_name: peturgeorgievv
author_github_url: https://github.com/peturgeorgievv/
npm_package_name: n8n-nodes-postfast
npm_version: 0.1.11
community_fetched_at: 2026-01-07T20:08:15.917Z
ai_summary_generated_at: 2026-01-08 10:45:32
description:
  Schedule and manage social media posts across Facebook, Instagram, TikTok, Twitter/X, LinkedIn, YouTube, and Pinterest

properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "socialPost",
      "options": [
        {
          "name": "File",
          "value": "file",
          "description": "Manage file uploads"
        },
        {
          "name": "Social Account",
          "value": "socialAccount",
          "description": "Manage social media accounts"
        },
        {
          "name": "Social Post",
          "value": "socialPost",
          "description": "Create and manage social media posts"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getUploadUrl",
      "options": [
        {
          "name": "Get Upload URL",
          "value": "getUploadUrl",
          "action": "Get upload URL",
          "description": "Generate pre-signed URLs for uploading media files"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get All",
          "value": "getAll",
          "action": "Get all social accounts",
          "description": "Get all connected social media accounts"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "socialAccount"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create social posts",
          "description": "Create and schedule one or more social media posts"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete social post",
          "description": "Delete a scheduled or failed post"
        },
        {
          "name": "Get Many",
          "value": "getMany",
          "action": "Get many social posts",
          "description": "Query and paginate social posts"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "socialPost"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get Upload URL",
      "value": "getUploadUrl",
      "action": "Get upload URL",
      "description": "Generate pre-signed URLs for uploading media files"
    },
    {
      "name": "Get All",
      "value": "getAll",
      "action": "Get all social accounts",
      "description": "Get all connected social media accounts"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create social posts",
      "description": "Create and schedule one or more social media posts"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete social post",
      "description": "Delete a scheduled or failed post"
    },
    {
      "name": "Get Many",
      "value": "getMany",
      "action": "Get many social posts",
      "description": "Query and paginate social posts"
    }
  ]

npm_readme:
  # n8n-nodes-postfast

  This is an n8n community node for [PostFast](https://postfa.st) - a comprehensive social media management and scheduling platform. It allows you to create, manage, and schedule posts across multiple social media channels directly from your n8n workflows.

  **Node Name in n8n:** PostFast - Social Media Management

  ## Features

  - 🚀 **Multi-Platform Support**: Facebook, Instagram, TikTok, Twitter/X, LinkedIn, YouTube, Pinterest
  - 📸 **Media Management**: Upload images and videos with pre-signed S3 URLs
  - 📅 **Advanced Scheduling**: Schedule posts using UTC timestamps (ISO 8601 format)
  - 🎯 **Platform-Specific Controls**: Reels, Stories, Shorts, Carousels, Drafts
  - 🔍 **Smart Filtering**: Query posts by platform, status, and date ranges
  - 📊 **Pagination Support**: Handle large datasets efficiently
  - 🔐 **Secure Authentication**: API key-based authentication

  ## Installation

  ### In n8n (Recommended)

  1. Go to **Settings** > **Community Nodes**
  2. Search for `n8n-nodes-postfast`
  3. Click **Install**

  ### Manual Installation

  ```bash
  npm install n8n-nodes-postfast
  ```

  ## Authentication

  To use this node, you'll need:

  1. **PostFast API Key**:
     - Log in to your PostFast account
     - Navigate to Settings → API Keys
     - Create a new API key
     - Copy the key (you won't be able to see it again)

  2. **Add Credentials in n8n**:
     - In n8n, go to Credentials
     - Create new "PostFast API" credentials
     - Enter your API key

  ## Resources & Operations

  ### 📁 File Resource

  #### Get Upload URL
  Generate pre-signed S3 URLs for uploading media files.

  **Parameters:**
  - **Content Type**: MIME type (image/jpeg, image/png, image/gif, video/mp4, video/quicktime)
  - **Count**: Number of URLs to generate (1-10)

  **Limits:**
  - Max file size: 250 MB (video), 10 MB (image)
  - Rate limit: 150 requests per day

  **Usage Example:**
  1. Use this operation to get S3 upload URLs
  2. Upload your files directly to S3 using the signed URLs
  3. Use the returned `key` in your social posts

  ---

  ### 👥 Social Account Resource

  #### Get All
  Retrieve all connected social media accounts for your workspace.

  **Returns:**
  - Account IDs (needed for posting)
  - Platform types
  - Account names and handles
  - Connection status

  **Rate limit:** 90 requests per hour

  ---

  ### 📝 Social Post Resource

  #### Create Post
  Create and schedule posts with platform-specific features.

  **Core Parameters:**
  - **Platform**: Facebook, Instagram, TikTok, Twitter/X, LinkedIn, YouTube, Pinterest
  - **Social Media Account ID**: From Social Account > Get All
  - **Content**: Post text with emoji support
  - **Scheduled At**: ISO 8601 datetime
  - **Media Items**: Images/videos with S3 keys

  **Platform-Specific Controls:**

  **Facebook:**
  - Content Types: Post, Reel, Story
  - Multi-image support
  - Video thumbnails

  **Instagram:**
  - Publish Types: Timeline, Story, Reel
  - Grid posting option
  - Carousel support (up to 10 items)

  **TikTok:**
  - Privacy: Public, Friends, Private
  - Allow Comments/Duet/Stitch
  - Draft mode
  - Carousel posts (2-35 images)
  - Video covers

  **YouTube:**
  - Shorts support
  - Video thumbnails

  **LinkedIn:**
  - Visibility: Anyone, Connections
  - Professional content

  **Pinterest:**
  - Board selection
  - Rich pins

  #### Get Many Posts
  Query and filter your scheduled posts with advanced options.

  **Filter Options:**
  - **Platforms**: Filter by one or more platforms
  - **Statuses**: DRAFT, SCHEDULED, PUBLISHED, FAILED
  - **Date Range**: From/To dates (ISO 8601)
  - **Pagination**: Page-based navigation

  **Return Options:**
  - Return all results (auto-pagination)
  - Limit results (1-50 per page)

  **Response Includes:**
  - Post content and media
  - Scheduling information
  - Publishing status
  - Error messages (for failed posts)
  - Platform-specific metadata

  #### Delete Post
  Remove scheduled or failed posts.

  **Parameters:**
  - **Post ID**: Unique identifier of the post

  **Rate limit:** 160 requests per hour

  ## Workflow Examples

  ### 1. Content Calendar Automation
  ```
  Notion Database → PostFast (Create) → Multiple Platforms
  ```
  Pull content from Notion and schedule across all platforms.

  ### 2. Media Processing Pipeline
  ```
  Dropbox → Image Processing → PostFast (Get Upload URL) → S3 Upload → PostFast (Create)
  ```
  Process images and videos before posting.

  ### 3. Failed Post Recovery
  ```
  Schedule Trigger → PostFast (Get Many: status=FAILED) → Error Handler → Retry/Notify
  ```
  Monitor and handle failed posts automatically.

  ### 4. Cross-Platform Campaign
  ```
  RSS Feed → AI Content Generator → PostFast (Create: Multiple Platforms)
  ```
  Generate and distribute content across all channels.

  ## Rate Limits

  **Global Limits (per API key):**
  - 60 requests per minute
  - 150 requests per 5 minutes
  - 300 requests per hour
  - 1000 requests per day

  **Endpoint-Specific:**
  - File uploads: 150/day
  - Post creation: 75/day
  - Post queries: 90/hour
  - Post deletion: 160/hour

  ## Error Handling

  The node provides detailed error messages for common scenarios:

  - `401`: Invalid API key
  - `404`: Resource not found (check IDs)
  - `429`: Rate limit exceeded
  - `400`: Invalid parameters

  ## Platform Requirements

  - **Node.js**: v18.0.0 or higher
  - **n8n**: v1.0.0 or higher
  - **API Key**: PostFast workspace API key

  ## Advanced Features

  ### Batch Operations
  Process multiple items in a single workflow execution for efficiency.

  ### Error Recovery
  Built-in error handling with detailed messages for debugging.

  ### Pagination Handling
  Automatic pagination when fetching all results.

  ### Media Validation
  Automatic MIME type detection and size validation.

  ## Development

  ### Setup
  ```bash
  git clone https://github.com/peturgeorgievv/n8n-nodes-postfast.git
  cd n8n-nodes-postfast
  npm install
  ```

  ### Testing
  ```bash
  npm run dev     # Start development server
  npm run build   # Build for production
  npm run lint    # Check code quality
  ```

  ### Publishing
  ```bash
  npm login
  npm publish --access public
  ```

  ## Support

  - **Documentation**: [PostFast API Docs](https://api.postfa.st/docs)
  - **Issues**: [GitHub Issues](https://github.com/peturgeorgievv/n8n-nodes-postfast/issues)
  - **Community**: [n8n Community Forum](https://community.n8n.io)
  - **Developer Support**: [me@peturgeorgievv.com](mailto:me@peturgeorgievv.com)

  ## License

  [MIT](LICENSE)

  ## Contributing

  Contributions are welcome! Please feel free to submit a Pull Request.

  ## Changelog

  ### v0.1.0
  - Initial release with full PostFast API support
  - Multi-platform posting capabilities
  - Advanced filtering and pagination
  - Media upload management
  - Platform-specific controls for all major social networks

ai_documentation_summary:
  {"purpose":"The PostFast node enables users to schedule and manage social media posts across Facebook, Instagram, TikTok, Twitter/X, LinkedIn, YouTube, and Pinterest directly within n8n workflows, supporting media uploads, platform-specific post types, and advanced filtering and scheduling.","capabilities":["Create and schedule posts across multiple platforms with platform-specific controls (e.g., Reels, Stories, Carousels)","Upload media via pre-signed S3 URLs with content type and size validation","Query posts by platform, status, date range, and pagination","Delete scheduled or failed posts","Support for batch operations and error recovery","Automatic pagination for large datasets"],"authentication":"API key-based authentication; users must generate a PostFast API key from their account settings and add it in n8n under credentials","commonUseCases":["Automating content calendars from Notion or databases","Processing media files (e.g., from Dropbox) and uploading to S3 before posting","Monitoring and recovering failed posts automatically","Distributing AI-generated content across multiple social platforms"],"limitations":["Rate limits apply per endpoint (e.g., 150 file uploads/day, 75 post creations/day)","Max file size is 250 MB for videos and 10 MB for images","Platform-specific features (e.g., video thumbnails, visibility settings) require correct configuration","No built-in content generation or AI features; relies on external tools for content creation"],"relatedNodes":["Notion","Dropbox","Image Processing","AI Content Generator","S3 Storage"]}


node_type: n8n-nodes-lavatop.lavatop
package_name: n8n-nodes-lavatop
display_name: LavaTop
description: Sends data to LavaTop
category: Payments
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-01-07 20:08:15
author_name: zdadco
author_github_url: https://github.com/zdadco/
npm_package_name: n8n-nodes-lavatop
npm_version: 1.0.2
community_fetched_at: 2026-01-07T20:08:15.918Z
ai_summary_generated_at: 2026-01-08 10:45:32
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "product",
      "options": [
        {
          "name": "Product",
          "value": "product"
        },
        {
          "name": "Invoice",
          "value": "invoice"
        },
        {
          "name": "Report",
          "value": "report"
        },
        {
          "name": "Subscription",
          "value": "subscription"
        },
        {
          "name": "Donate",
          "value": "donate"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Products",
          "value": "getAll",
          "action": "Get products",
          "description": "Get all products"
        },
        {
          "name": "Update Product",
          "value": "update",
          "action": "Update product",
          "description": "Update product by ID"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "product"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get invoices",
          "description": "Get all invoices"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get invoice",
          "description": "Get invoice by ID"
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create invoice",
          "description": "Create invoice"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "invoice"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAllSales",
      "options": [
        {
          "name": "Get All Sales",
          "value": "getAllSales",
          "action": "Get sales"
        },
        {
          "name": "Get Sales by Product",
          "value": "getAllSalesByProduct",
          "action": "Get sales by product",
          "description": "Get sales by product ID"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "report"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "delete",
      "options": [
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a subscription",
          "description": "Delete a subscription"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "subscription"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get a donation link",
          "description": "Get link for donation"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "donate"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get Products",
      "value": "getAll",
      "action": "Get products",
      "description": "Get all products"
    },
    {
      "name": "Update Product",
      "value": "update",
      "action": "Update product",
      "description": "Update product by ID"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get invoices",
      "description": "Get all invoices"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get invoice",
      "description": "Get invoice by ID"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create invoice",
      "description": "Create invoice"
    },
    {
      "name": "Get All Sales",
      "value": "getAllSales",
      "action": "Get sales"
    },
    {
      "name": "Get Sales by Product",
      "value": "getAllSalesByProduct",
      "action": "Get sales by product",
      "description": "Get sales by product ID"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a subscription",
      "description": "Delete a subscription"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a donation link",
      "description": "Get link for donation"
    }
  ]

npm_readme:
  [![npm](https://img.shields.io/npm/dm/n8n-nodes-lavatop?color=blue&label=downloads)](https://www.npmjs.com/package/n8n-nodes-lavatop)
  [![npm version](https://img.shields.io/npm/v/n8n-nodes-lavatop)](https://www.npmjs.com/package/n8n-nodes-lavatop)
  [![license](https://img.shields.io/npm/l/n8n-nodes-lavatop)](https://github.com/zdadco/n8n-nodes-lavatop/blob/main/LICENSE)
  [![GitHub stars](https://img.shields.io/github/stars/zdadco/n8n-nodes-lavatop)](https://github.com/zdadco/n8n-nodes-lavatop/stargazers)

  # n8n-nodes-lavatop

  This is a n8n community node that provides integration with LavaTop platform for digital product sales and subscriptions.

  [LavaTop](https://app.lava.top/) is a platform for creators to sell digital products, courses, and subscriptions with built-in payment processing and analytics.

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


  ## Installation

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

  ## Operations

  ### Invoice Operations
  - **Create Invoice:** Generate new payment invoices
  - **Get Invoice:** Retrieve invoice details by ID 
  - **Get All Invoices:** List all invoices with filtering options

  ### Product Operations
  - **Get Products:** List available products
  - **Update Product:** Modify product details and pricing

  ### Report Operations
  - **Get All Sales:** Retrieve complete sales reports
  - **Get Sales by Product:** Get sales data for specific products

  ### Subscription Operations
  - **Delete Subscription:** Cancel existing subscriptions

  ### Donate Operations
  - **Get Donate Link:** Generate donation links for creators

  ## Credentials

  To use this node, you need to configure API credentials:
  1. Go to your LavaTop Account Settings 
  2. Generate a new API key 
  3. In n8n:
     1. Add LavaTop credentials 
     2. Enter your API key

  ## Compatibility

  n8n version - 1.86.1

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)

  ## Version history

  ### 1.0.0
  - Basic operations for invoices, products, and subscriptions
  - Support for all LavaTop payment methods

  ### 1.0.2
  - Refactoring logs
  - Change credentials 'apiKey' display name

ai_documentation_summary:
  {"purpose":"The LavaTop node enables n8n users to automate interactions with the LavaTop platform, facilitating operations such as creating and managing invoices, handling products and subscriptions, generating sales reports, and creating donation links for digital product sales and subscriptions.","capabilities":["Create Invoice","Get Invoice","Get All Invoices","Get Products","Update Product","Get All Sales","Get Sales by Product","Delete Subscription","Get Donate Link"],"authentication":"API key required","commonUseCases":["Automate invoice generation for digital product sales","Sync product listings and pricing updates","Track sales performance and generate reports","Cancel subscriptions programmatically","Generate donation links for creators"],"limitations":[],"relatedNodes":["n8n-nodes-base","n8n-nodes-webhook"]}


node_type: n8n-nodes-dumplingai.dumplingAi
package_name: n8n-nodes-dumplingai
display_name: Dumpling AI
description: Interact with Dumpling AI APIs (data, web scraping, document conversion, AI, etc.)
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-01-07 20:08:15
author_name: dumplingai
author_github_url: https://github.com/dumplingai/
npm_package_name: n8n-nodes-dumplingai
npm_version: 0.1.1
community_fetched_at: 2026-01-07T20:08:15.919Z
ai_summary_generated_at: 2026-01-08 10:45:32
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "dataApi",
      "options": [
        {
          "name": "Data API",
          "value": "dataApi"
        },
        {
          "name": "Web Scraping",
          "value": "webScraping"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getYouTubeTranscript",
      "options": [
        {
          "name": "Get Google Reviews",
          "value": "getGoogleReviews",
          "action": "Get Google Reviews",
          "routing": {
            "request": {
              "url": "/get-google-reviews",
              "body": {
                "cid": "={{ $parameter.inputType === \"cid\" ? $parameter.cid : undefined }}",
                "sortBy": "={{ $parameter.sortBy }}",
                "keyword": "={{ $parameter.inputType === \"keyword\" ? $parameter.keyword : undefined }}",
                "placeId": "={{ $parameter.inputType === \"placeId\" ? $parameter.placeId : undefined }}",
                "reviews": "={{ $parameter.reviews }}",
                "language": "={{ $parameter.language }}",
                "location": "={{ $parameter.location || undefined }}"
              },
              "method": "POST"
            }
          },
          "description": "Get Google Reviews for a place or business"
        },
        {
          "name": "Get TikTok Transcript",
          "value": "getTikTokTranscript",
          "action": "Get TikTok Transcript",
          "routing": {
            "request": {
              "url": "/get-tiktok-transcript",
              "body": {
                "videoUrl": "={{ $parameter.videoUrl }}",
                "preferredLanguage": "={{ $parameter.preferredLanguage }}"
              },
              "method": "POST"
            }
          },
          "description": "Retrieve the transcript from a TikTok video"
        },
        {
          "name": "Get YouTube Transcript",
          "value": "getYouTubeTranscript",
          "action": "Get YouTube Transcript",
          "routing": {
            "request": {
              "url": "/get-youtube-transcript",
              "body": {
                "videoUrl": "={{ $parameter.videoUrl }}",
                "includeTimestamps": "={{ $parameter.includeTimestamps }}",
                "preferredLanguage": "={{ $parameter.preferredLanguage }}",
                "timestampsToCombine": "={{ $parameter.timestampsToCombine }}"
              },
              "method": "POST"
            }
          },
          "description": "Extract the transcript from a specified YouTube video URL"
        },
        {
          "name": "Search",
          "value": "search",
          "action": "Search Google",
          "routing": {
            "request": {
              "url": "/search",
              "body": {
                "page": "={{ $parameter.page }}",
                "query": "={{ $parameter.query }}",
                "country": "={{ $parameter.country }}",
                "language": "={{ $parameter.language }}",
                "location": "={{ $parameter.location }}",
                "dateRange": "={{ $parameter.dateRange }}",
                "scrapeOptions": {
                  "format": "={{ $parameter.scrapeFormat }}",
                  "cleaned": "={{ $parameter.scrapeCleaned }}"
                },
                "scrapeResults": "={{ $parameter.scrapeResults }}",
                "numResultsToScrape": "={{ $parameter.numResultsToScrape }}"
              },
              "method": "POST"
            }
          },
          "description": "Perform a Google web search with optional content scraping"
        },
        {
          "name": "Search News",
          "value": "searchNews",
          "action": "Search News",
          "routing": {
            "request": {
              "url": "/search-news",
              "body": {
                "page": "={{ $parameter.page }}",
                "query": "={{ $parameter.query }}",
                "country": "={{ $parameter.country }}",
                "language": "={{ $parameter.language }}",
                "location": "={{ $parameter.location }}",
                "dateRange": "={{ $parameter.dateRange }}"
              },
              "method": "POST"
            }
          },
          "description": "Search Google News for articles"
        },
        {
          "name": "Search Places",
          "value": "searchPlaces",
          "action": "Search Places",
          "routing": {
            "request": {
              "url": "/search-places",
              "body": {
                "page": "={{ $parameter.page }}",
                "query": "={{ $parameter.query }}",
                "country": "={{ $parameter.country }}",
                "language": "={{ $parameter.language }}",
                "location": "={{ $parameter.location }}"
              },
              "method": "POST"
            }
          },
          "description": "Search Google Places for businesses and locations"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "dataApi"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "scrapeUrl",
      "options": [
        {
          "name": "Scrape URL",
          "value": "scrapeUrl",
          "action": "Scrape URL",
          "routing": {
            "request": {
              "url": "/scrape",
              "body": {
                "url": "={{ $parameter.url }}",
                "format": "={{ $parameter.format }}",
                "cleaned": "={{ $parameter.cleaned }}",
                "renderJs": "={{ $parameter.renderJs }}"
              },
              "method": "POST"
            }
          },
          "description": "Scrape data from a specified URL with formatting options"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "webScraping"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get Google Reviews",
      "value": "getGoogleReviews",
      "action": "Get Google Reviews",
      "routing": {
        "request": {
          "url": "/get-google-reviews",
          "body": {
            "cid": "={{ $parameter.inputType === \"cid\" ? $parameter.cid : undefined }}",
            "sortBy": "={{ $parameter.sortBy }}",
            "keyword": "={{ $parameter.inputType === \"keyword\" ? $parameter.keyword : undefined }}",
            "placeId": "={{ $parameter.inputType === \"placeId\" ? $parameter.placeId : undefined }}",
            "reviews": "={{ $parameter.reviews }}",
            "language": "={{ $parameter.language }}",
            "location": "={{ $parameter.location || undefined }}"
          },
          "method": "POST"
        }
      },
      "description": "Get Google Reviews for a place or business"
    },
    {
      "name": "Get TikTok Transcript",
      "value": "getTikTokTranscript",
      "action": "Get TikTok Transcript",
      "routing": {
        "request": {
          "url": "/get-tiktok-transcript",
          "body": {
            "videoUrl": "={{ $parameter.videoUrl }}",
            "preferredLanguage": "={{ $parameter.preferredLanguage }}"
          },
          "method": "POST"
        }
      },
      "description": "Retrieve the transcript from a TikTok video"
    },
    {
      "name": "Get YouTube Transcript",
      "value": "getYouTubeTranscript",
      "action": "Get YouTube Transcript",
      "routing": {
        "request": {
          "url": "/get-youtube-transcript",
          "body": {
            "videoUrl": "={{ $parameter.videoUrl }}",
            "includeTimestamps": "={{ $parameter.includeTimestamps }}",
            "preferredLanguage": "={{ $parameter.preferredLanguage }}",
            "timestampsToCombine": "={{ $parameter.timestampsToCombine }}"
          },
          "method": "POST"
        }
      },
      "description": "Extract the transcript from a specified YouTube video URL"
    },
    {
      "name": "Search",
      "value": "search",
      "action": "Search Google",
      "routing": {
        "request": {
          "url": "/search",
          "body": {
            "page": "={{ $parameter.page }}",
            "query": "={{ $parameter.query }}",
            "country": "={{ $parameter.country }}",
            "language": "={{ $parameter.language }}",
            "location": "={{ $parameter.location }}",
            "dateRange": "={{ $parameter.dateRange }}",
            "scrapeOptions": {
              "format": "={{ $parameter.scrapeFormat }}",
              "cleaned": "={{ $parameter.scrapeCleaned }}"
            },
            "scrapeResults": "={{ $parameter.scrapeResults }}",
            "numResultsToScrape": "={{ $parameter.numResultsToScrape }}"
          },
          "method": "POST"
        }
      },
      "description": "Perform a Google web search with optional content scraping"
    },
    {
      "name": "Search News",
      "value": "searchNews",
      "action": "Search News",
      "routing": {
        "request": {
          "url": "/search-news",
          "body": {
            "page": "={{ $parameter.page }}",
            "query": "={{ $parameter.query }}",
            "country": "={{ $parameter.country }}",
            "language": "={{ $parameter.language }}",
            "location": "={{ $parameter.location }}",
            "dateRange": "={{ $parameter.dateRange }}"
          },
          "method": "POST"
        }
      },
      "description": "Search Google News for articles"
    },
    {
      "name": "Search Places",
      "value": "searchPlaces",
      "action": "Search Places",
      "routing": {
        "request": {
          "url": "/search-places",
          "body": {
            "page": "={{ $parameter.page }}",
            "query": "={{ $parameter.query }}",
            "country": "={{ $parameter.country }}",
            "language": "={{ $parameter.language }}",
            "location": "={{ $parameter.location }}"
          },
          "method": "POST"
        }
      },
      "description": "Search Google Places for businesses and locations"
    },
    {
      "name": "Scrape URL",
      "value": "scrapeUrl",
      "action": "Scrape URL",
      "routing": {
        "request": {
          "url": "/scrape",
          "body": {
            "url": "={{ $parameter.url }}",
            "format": "={{ $parameter.format }}",
            "cleaned": "={{ $parameter.cleaned }}",
            "renderJs": "={{ $parameter.renderJs }}"
          },
          "method": "POST"
        }
      },
      "description": "Scrape data from a specified URL with formatting options"
    }
  ]

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

  # n8n-nodes-dumplingai

  This is an n8n community node that provides integration with [Dumpling AI](https://dumplingai.com) APIs for data extraction, web scraping, document conversion, and AI-powered operations.

  [Dumpling AI](https://dumplingai.com) is a comprehensive API platform that provides various data extraction and AI services including YouTube transcript extraction, TikTok data scraping, web scraping, document conversion, and more.

  ## Installation

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

  ## Credentials

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

  https://app.dumplingai.com/register

  Once registered, you can find your API key here:

  https://app.dumplingai.com/api-keys

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

  ## Usage

  Add Dumpling AI to a workflow and configure your operation.

  ### Available Operations

  This node currently supports:

  #### Data API Operations
  - **Get YouTube Transcript** - Extract transcripts from YouTube videos with timestamps and language options
  - **Get TikTok Transcript** - Extract transcripts/captions from TikTok videos
  - **Search (Google Web)** - Perform Google web searches with optional content scraping
  - **Search Places** - Search Google Places for businesses and locations
  - **Search News** - Search Google News for articles
  - **Get Google Reviews** - Extract Google Reviews for businesses using keywords, CID, or Place ID

  #### Web Scraping Operations
  - **Scrape URL** - Extract content from web pages with formatting options

  Additional operations will be added in future releases.

  #### Get YouTube Transcript

  Extract transcripts from YouTube videos with optional timestamps and language preferences.

  ```json
  {
    "videoUrl": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
    "includeTimestamps": true,
    "timestampsToCombine": 5,
    "preferredLanguage": "en"
  }
  ```

  #### Get TikTok Transcript

  Extract transcripts/captions from TikTok videos with language preferences.

  ```json
  {
    "videoUrl": "https://www.tiktok.com/@username/video/1234567890",
    "preferredLanguage": "en"
  }
  ```

  #### Search (Google Web)

  Perform Google web searches with optional content scraping of results.

  ```json
  {
    "query": "artificial intelligence trends 2024",
    "country": "US",
    "language": "en",
    "scrapeResults": true,
    "numResultsToScrape": 3,
    "scrapeFormat": "markdown"
  }
  ```

  #### Search Places

  Search Google Places for businesses and locations.

  ```json
  {
    "query": "coffee shops near me",
    "location": "New York, NY",
    "language": "en"
  }
  ```

  #### Search News

  Search Google News for articles and news content.

  ```json
  {
    "query": "climate change",
    "dateRange": "past_week",
    "language": "en"
  }
  ```

  #### Get Google Reviews

  Extract Google Reviews for businesses using different identification methods.

  ```json
  {
    "inputType": "keyword",
    "keyword": "Starbucks Times Square",
    "reviews": 20,
    "sortBy": "newest"
  }
  ```

  #### Scrape URL

  Extract content from web pages with customizable formatting and processing options.

  ```json
  {
    "url": "https://example.com",
    "format": "markdown",
    "cleaned": true,
    "renderJs": true
  }
  ```

  **Output Formats:**
  - **HTML** - Raw HTML content
  - **Markdown** - Clean markdown format  
  - **Screenshot** - Screenshot of the page

  ## API Resources

  This node currently supports the most popular Dumpling AI APIs. If there's an API missing that you would like to use, please let us know at admin@dumplingai.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 requests.

  ### Coming Soon

  - Document Conversion (PDF, Word, Excel, etc.)
  - AI Operations (Agent completions, Knowledge base search, Image generation)
  - Developer Tools (JavaScript/Python code execution)
  - Additional Data APIs (Social media profiles, advanced scraping)

  ## Related Resources

  Dumpling AI's complete API documentation is available here:

  https://docs.dumplingai.com/api-reference/introduction

  You can also find additional tutorials and resources here:

  https://docs.dumplingai.com/guides

  ## Development

  ### Release Flow

  After merging PRs into main, follow these steps to publish a new version:

  ```bash
  # Switch to main branch and ensure it's up to date
  git checkout main
  git pull origin main

  # Bump version (patch, minor, or major)
  npm version patch         # or minor / major

  # Push changes and tags
  git push origin main
  git push origin v$(node -p "require('./package.json').version")
  ```

  The tag push will automatically trigger the GitHub Actions workflow, which will:
  1. Build the package
  2. Check if the version already exists on npm
  3. Publish to npm if it's a new version

  You'll see a ✅ job in the Actions tab and the new version will appear on npm within a minute.

  ## License

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

ai_documentation_summary:
  {"purpose":"The Dumpling AI node enables n8n users to interact with Dumpling AI's APIs for data extraction, web scraping, document conversion, and AI-powered operations such as extracting YouTube and TikTok transcripts, performing Google searches, scraping web pages, and retrieving Google reviews.","capabilities":["Extract YouTube transcripts with timestamps and language preferences","Extract TikTok transcripts with language preferences","Perform Google web searches with optional result scraping","Search Google Places for businesses and locations","Search Google News for articles with date range filtering","Extract Google Reviews using keywords, CID, or Place ID","Scrape web pages with customizable output formats (HTML, Markdown, Screenshot)","Support for future AI operations and document conversion"],"authentication":"API key required. Users must register at https://app.dumplingai.com/register to obtain an API key, which is then stored as a credential in n8n.","commonUseCases":["Extracting video transcripts from YouTube and TikTok for content analysis","Conducting competitive research via Google web and news searches","Gathering local business information using Google Places search","Collecting customer reviews for brand monitoring","Automating web content extraction for content aggregation or monitoring"],"limitations":["Document conversion (PDF, Word, Excel) and AI operations (e.g., agent completions, image generation) are not yet available","Additional APIs (e.g., social media profiles, advanced scraping) are in development","No built-in support for real-time or streaming data","Relies on external API limits and rate restrictions from Dumpling AI"],"relatedNodes":["n8n-nodes-base.httpRequest"]}


node_type: n8n-nodes-assemblyai.assemblyAi
package_name: n8n-nodes-assemblyai
display_name: AssemblyAI
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-01-07 20:08:15
author_name: gsharp-assemblyai
author_github_url: https://github.com/gsharp-aai/
npm_package_name: n8n-nodes-assemblyai
npm_version: 0.1.6
community_fetched_at: 2026-01-07T20:08:15.920Z
ai_summary_generated_at: 2026-01-08 10:45:32
description:
  Transcribe audio and video files using AssemblyAI's speech-to-text and speech understanding AI models.

properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "transcript",
      "options": [
        {
          "name": "File",
          "value": "file"
        },
        {
          "name": "Transcript",
          "value": "transcript"
        },
        {
          "name": "LeMUR",
          "value": "lemur"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "upload",
      "options": [
        {
          "name": "Upload",
          "value": "upload",
          "action": "Upload a file",
          "description": "Upload a media file to AssemblyAI"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a transcription",
          "description": "Create a new transcription"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a transcription",
          "description": "Delete a transcription"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a transcription",
          "description": "Get a transcription by ID"
        },
        {
          "name": "Get Paragraphs",
          "value": "getParagraphs",
          "action": "Get paragraphs",
          "description": "Get paragraphs from transcription"
        },
        {
          "name": "Get Redacted Audio",
          "value": "getRedactedAudio",
          "action": "Get redacted audio",
          "description": "Get redacted audio URL"
        },
        {
          "name": "Get Sentences",
          "value": "getSentences",
          "action": "Get sentences",
          "description": "Get sentences from transcription"
        },
        {
          "name": "Get Subtitles",
          "value": "getSubtitles",
          "action": "Get subtitles",
          "description": "Get subtitles for a transcription"
        },
        {
          "name": "List",
          "value": "list",
          "action": "List transcriptions",
          "description": "List all transcriptions"
        },
        {
          "name": "Word Search",
          "value": "wordSearch",
          "action": "Search words",
          "description": "Search for words in transcript"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "transcript"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "summary",
      "options": [
        {
          "name": "Custom Task",
          "value": "task",
          "action": "Run custom task",
          "description": "Run a custom LeMUR task"
        },
        {
          "name": "Get Response",
          "value": "getResponse",
          "action": "Get LeMUR response",
          "description": "Get a LeMUR response by ID"
        },
        {
          "name": "Purge Data",
          "value": "purgeData",
          "action": "Purge LeMUR data",
          "description": "Delete LeMUR request data"
        },
        {
          "name": "Question & Answer",
          "value": "questionAnswer",
          "action": "Question and answer",
          "description": "Ask questions about your transcript"
        },
        {
          "name": "Summary",
          "value": "summary",
          "action": "Generate summary",
          "description": "Generate a summary using LeMUR"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "lemur"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Upload",
      "value": "upload",
      "action": "Upload a file",
      "description": "Upload a media file to AssemblyAI"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a transcription",
      "description": "Create a new transcription"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a transcription",
      "description": "Delete a transcription"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a transcription",
      "description": "Get a transcription by ID"
    },
    {
      "name": "Get Paragraphs",
      "value": "getParagraphs",
      "action": "Get paragraphs",
      "description": "Get paragraphs from transcription"
    },
    {
      "name": "Get Redacted Audio",
      "value": "getRedactedAudio",
      "action": "Get redacted audio",
      "description": "Get redacted audio URL"
    },
    {
      "name": "Get Sentences",
      "value": "getSentences",
      "action": "Get sentences",
      "description": "Get sentences from transcription"
    },
    {
      "name": "Get Subtitles",
      "value": "getSubtitles",
      "action": "Get subtitles",
      "description": "Get subtitles for a transcription"
    },
    {
      "name": "List",
      "value": "list",
      "action": "List transcriptions",
      "description": "List all transcriptions"
    },
    {
      "name": "Word Search",
      "value": "wordSearch",
      "action": "Search words",
      "description": "Search for words in transcript"
    },
    {
      "name": "Custom Task",
      "value": "task",
      "action": "Run custom task",
      "description": "Run a custom LeMUR task"
    },
    {
      "name": "Get Response",
      "value": "getResponse",
      "action": "Get LeMUR response",
      "description": "Get a LeMUR response by ID"
    },
    {
      "name": "Purge Data",
      "value": "purgeData",
      "action": "Purge LeMUR data",
      "description": "Delete LeMUR request data"
    },
    {
      "name": "Question & Answer",
      "value": "questionAnswer",
      "action": "Question and answer",
      "description": "Ask questions about your transcript"
    },
    {
      "name": "Summary",
      "value": "summary",
      "action": "Generate summary",
      "description": "Generate a summary using LeMUR"
    }
  ]

npm_readme:
  # n8n-nodes-assemblyai
  <p align="center">
    <picture>
      <source media="(prefers-color-scheme: dark)" srcset="./images/AAI_Dark_Mode.svg">
      <source media="(prefers-color-scheme: light)" srcset="./images/AAI_Light_Mode.svg">
      <img src="./images/AAI_Light_Mode.svg" alt="AssemblyAI Logo">
    </picture>
  </p>
  <div align="center">

  [![npm version](https://badge.fury.io/js/n8n-nodes-assemblyai.svg)](https://www.npmjs.com/package/n8n-nodes-assemblyai)
  [![npm downloads](https://img.shields.io/npm/dm/n8n-nodes-assemblyai.svg)](https://www.npmjs.com/package/n8n-nodes-assemblyai)

  </div>

  This is an n8n community node. It lets you use [AssemblyAI](https://www.assemblyai.com/) in your n8n workflows.

  [AssemblyAI](https://www.assemblyai.com/) develops industry-leading Speech AI models for transcription and audio understanding, accessible through their API. It provides features like speaker diarization, sentiment analysis, entity detection, PII redaction, and LLM Gateway capabilities for processing transcripts with AI.

  ## Resources
  - [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [AssemblyAI API reference](https://www.assemblyai.com/docs/api-reference)
  - [AssemblyAI API documentation](https://www.assemblyai.com/docs)
    - [AssemblyAI Speech-to-Text guide](https://www.assemblyai.com/docs/getting-started/transcribe-an-audio-file)
    - [AssemblyAI LLM Gateway guide](https://www.assemblyai.com/docs/llm-gateway/apply-llms-to-audio-files)
    - [AssemblyAI LeMUR guide](https://www.assemblyai.com/docs/lemur) - ⚠️ **Deprecated**: LeMUR is deprecated. Please use LLM Gateway instead.

  ## Quick links
  - [Installation](#installation)
  - [Credentials](#credentials)
  - [Operations](#operations)
  - [Development](#development)
  - [Support & Feedback](#support--feedback)

  ## Installation

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

  ## Credentials

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

  ### Prerequisites

  1. Sign up for a free account at [AssemblyAI](https://www.assemblyai.com/) and receive $50 in free credits.
  2. Navigate to your [API Keys page](https://www.assemblyai.com/dashboard/api-keys) in the dashboard.

  ### Setup in n8n

  1. In n8n, go to **Credentials** → **New**
  2. Search for **AssemblyAI API** and select it
  3. Enter your API key from the AssemblyAI dashboard
  4. Click **Save**

  Learn more about API keys in the [AssemblyAI documentation](https://www.assemblyai.com/docs/deployment/account-management#api-keys).

  ## Operations

  ### File ([API Reference](https://www.assemblyai.com/docs/api-reference/files/upload))

  - **Upload**: Upload a media file to AssemblyAI for transcription

  ### Transcript ([API Reference](https://www.assemblyai.com/docs/api-reference/transcripts/submit))

  - **Create**: Start a new transcription job with support for:
    - Language detection
    - Speaker diarization
    - PII redaction and profanity filtering
    - **Speech Understanding**:
      - Enable translation, speaker identification, and/or custom formatting during transcription
      - Keyterm prompting, punctuation, disfluencies, formatting, sentiment analysis, entity detection, chapterization, etc.
  - **Get**: Retrieve a transcription by ID
  - **Delete**: Delete a transcription
  - **List**: List all your transcriptions
  - **Get Sentences**: Get transcript broken into sentences
  - **Get Paragraphs**: Get transcript broken into paragraphs
  - **Get Subtitles**: Export subtitles in SRT or VTT format
  - **Get Redacted Audio**: Get redacted audio URL
  - **Word Search**: Search for specific words in the transcript

  ### LLM Gateway ([API Reference](https://www.assemblyai.com/docs/api-reference/llm-gateway/create-chat-completion))

  - **Chat Completion**: Send chat completion requests to LLMs (Claude, GPT, Gemini models). See [available models](https://www.assemblyai.com/docs/llm-gateway/overview#available-models).
  - **Speech Understanding**: Process speech understanding tasks on existing transcripts:
    - **Translation**: Translate transcripts into multiple languages
    - **Speaker Identification**: Identify speakers by name or role
    - **Custom Formatting**: Apply custom formatting to dates, phone numbers, and emails

  ### LeMUR

  ⚠️ **Deprecated**: LeMUR is deprecated. Please use LLM Gateway instead.

  - **Summary**: Generate AI summaries of transcripts
  - **Question & Answer**: Ask questions about your transcripts
  - **Custom Task**: Run custom AI tasks on transcripts
  - **Get Response**: Retrieve a LeMUR response by ID
  - **Purge Data**: Delete LeMUR request data

  ## Development

  To work on this node locally, clone the repository and install dependencies:

  ```bash
  git clone https://github.com/gsharp-aai/n8n-nodes-assemblyai.git
  cd n8n-nodes-assemblyai
  npm install
  ```

  Build and run with linting:

  ```bash
  npm run dev:fresh
  ```

  The node will be available in n8n at http://localhost:5678

  ## Support & Feedback

  Need help or have feedback? Reach out to [support@assemblyai.com](mailto:support@assemblyai.com).

  Stay up to date with the latest features and improvements:
  - [AssemblyAI Product Changelog](https://www.assemblyai.com/changelog)
  - [AssemblyAI Product Roadmap](https://assemblyai.com/roadmap)

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

  ## License

  [MIT](LICENSE.md)

ai_documentation_summary:
  {"purpose":"The AssemblyAI node enables users to transcribe audio and video files using AssemblyAI's speech-to-text and speech understanding AI models, supporting features like speaker diarization, sentiment analysis, entity detection, PII redaction, and integration with LLMs via the LLM Gateway.","capabilities":["Upload media files for transcription","Create transcription jobs with language detection, speaker diarization, PII redaction, and speech understanding features","Retrieve transcriptions, sentences, paragraphs, subtitles, and redacted audio","Perform word search in transcripts","Use LLM Gateway to translate transcripts, identify speakers, and apply custom formatting","Process transcripts with AI models like Claude, GPT, and Gemini"],"authentication":"API key required","commonUseCases":["Transcribing meetings or interviews","Automating customer support call analysis","Extracting key information from audio files with entity detection","Generating summaries or answering questions from audio transcripts using LLMs","Detecting sentiment and speaker identities in voice recordings"],"limitations":["LeMUR is deprecated; users must use LLM Gateway instead","No support for real-time transcription or streaming"],"relatedNodes":["n8n-nodes-base.transcription","n8n-nodes-base.llm"]}


node_type: n8n-nodes-referral-factory.referralFactory
package_name: n8n-nodes-referral-factory
display_name: Referral Factory
description: Get data from Referral Factory API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-01-07 20:08:15
author_name: referral-factory
author_github_url: https://github.com/referralfactory/
npm_package_name: n8n-nodes-referral-factory
npm_version: 0.2.14
community_fetched_at: 2026-01-07T20:08:15.920Z
ai_summary_generated_at: 2026-01-08 10:45:32
properties_schema:
  [
    {
      "name": "operation",
      "type": "options",
      "default": "create_user",
      "options": [
        {
          "name": "Add New User",
          "value": "create_user",
          "action": "Add new user",
          "routing": {
            "request": {
              "url": "/users",
              "body": {
                "email": "={{$parameter[\"email\"]}}",
                "first_name": "={{$parameter[\"first_name\"]}}",
                "campaign_id": "={{$parameter[\"campaign_id\"]}}"
              },
              "method": "POST"
            }
          },
          "description": "Add new user in Referral Factory"
        },
        {
          "name": "Qualify a User",
          "value": "qualify_user",
          "action": "Qualify a user",
          "description": "Qualify a user in Referral Factory"
        }
      ],
      "displayName": "Action",
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Add New User",
      "value": "create_user",
      "action": "Add new user",
      "routing": {
        "request": {
          "url": "/users",
          "body": {
            "email": "={{$parameter[\"email\"]}}",
            "first_name": "={{$parameter[\"first_name\"]}}",
            "campaign_id": "={{$parameter[\"campaign_id\"]}}"
          },
          "method": "POST"
        }
      },
      "description": "Add new user in Referral Factory"
    },
    {
      "name": "Qualify a User",
      "value": "qualify_user",
      "action": "Qualify a user",
      "description": "Qualify a user in Referral Factory"
    }
  ]

npm_readme:
  # n8n-nodes-referral-factory

  🔗 A community-built [n8n](https://n8n.io) integration for [Referral Factory](https://referral-factory.com), enabling automation of your referral marketing campaigns.

  This package provides both **trigger** and **action** nodes to interact with the Referral Factory API—ideal for managing users, issuing rewards, and reacting to referral events like user joins or conversions.

  ---

  ## ✨ Features

  - 🧠 Trigger workflows from Referral Factory events (e.g., user joined, reward issued)
  - 🧾 Create new users or qualify referred users
  - 📡 Webhook-based event handling
  - 🔐 API Key authentication

  ---

  ## 📦 Installation

  ### In self-hosted n8n

  ```bash
  npm install n8n-nodes-referral-factory

ai_documentation_summary:
  {"purpose":"The Referral Factory node enables automation of referral marketing campaigns by integrating with the Referral Factory API, allowing workflows to be triggered by events like user joins or reward issuances, and to manage user creation and qualification.","capabilities":["Trigger workflows from Referral Factory events (e.g., user joined, reward issued)","Create new users or qualify referred users","Handle webhook-based event notifications"],"authentication":"API Key authentication","commonUseCases":["Automatically respond to new user sign-ups via referral","Issue rewards when referral conversions are detected","Track and qualify referred users in marketing campaigns"],"limitations":[],"relatedNodes":["n8n-nodes-base.trigger","n8n-nodes-base.action"]}


node_type: n8n-nodes-pdfvector.pdfVector
package_name: n8n-nodes-pdfvector
display_name: PDF Vector
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-01-07 20:08:15
author_name: phuctm97
author_github_url: https://github.com/phuctm97/
npm_package_name: n8n-nodes-pdfvector
npm_version: 0.8.4
community_fetched_at: 2026-01-07T20:08:15.921Z
ai_summary_generated_at: 2026-01-08 10:45:32
description:
  Convert PDFs, Word, Excel documents, and images to clean markdown, extract structured data with AI, process invoices with specialized parsing, and search millions of academic papers across PubMed, ArXiv, Google Scholar, and more.

properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "academic",
      "options": [
        {
          "name": "Academic",
          "value": "academic"
        },
        {
          "name": "Document",
          "value": "document"
        },
        {
          "name": "Identity Document",
          "value": "identityDocument"
        },
        {
          "name": "Invoice",
          "value": "invoice"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "search",
      "options": [
        {
          "name": "Search",
          "value": "search",
          "action": "Search academic publications",
          "description": "Search across PubMed, ArXiv, Google Scholar, and more"
        },
        {
          "name": "Fetch",
          "value": "fetch",
          "action": "Fetch a specific publication",
          "description": "Fetch publications by DOI, PubMed ID, ArXiv ID, etc"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "academic"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "parse",
      "options": [
        {
          "name": "Parse",
          "value": "parse",
          "action": "Parse a document",
          "description": "Convert PDFs, Word, Excel, or images to markdown"
        },
        {
          "name": "Ask",
          "value": "ask",
          "action": "Ask questions about a document",
          "description": "Ask questions about PDF, Word, Excel, or image"
        },
        {
          "name": "Extract",
          "value": "extract",
          "action": "Extract structured data from a document",
          "description": "Extract structured data from PDF, Word, Excel, or image using JSON Schema"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "document"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "parse",
      "options": [
        {
          "name": "Parse",
          "value": "parse",
          "action": "Parse an invoice",
          "description": "Parse invoice, expense, bank statement or financial document"
        },
        {
          "name": "Ask",
          "value": "ask",
          "action": "Ask questions about an invoice",
          "description": "Ask questions about invoice, expense, bank statement or financial document"
        },
        {
          "name": "Extract",
          "value": "extract",
          "action": "Extract structured data from an invoice",
          "description": "Extract invoice, expense, bank statement or financial document structured data"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "invoice"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "parse",
      "options": [
        {
          "name": "Parse",
          "value": "parse",
          "action": "Parse an identity document",
          "description": "Parse identity documents (passports, driver licenses, ID cards, national IDs) to markdown"
        },
        {
          "name": "Ask",
          "value": "ask",
          "action": "Ask questions about an identity document",
          "description": "Ask questions about identity document content"
        },
        {
          "name": "Extract",
          "value": "extract",
          "action": "Extract structured data from an identity document",
          "description": "Extract structured data from identity documents using JSON Schema"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "identityDocument"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Search",
      "value": "search",
      "action": "Search academic publications",
      "description": "Search across PubMed, ArXiv, Google Scholar, and more"
    },
    {
      "name": "Fetch",
      "value": "fetch",
      "action": "Fetch a specific publication",
      "description": "Fetch publications by DOI, PubMed ID, ArXiv ID, etc"
    },
    {
      "name": "Parse",
      "value": "parse",
      "action": "Parse a document",
      "description": "Convert PDFs, Word, Excel, or images to markdown"
    },
    {
      "name": "Ask",
      "value": "ask",
      "action": "Ask questions about a document",
      "description": "Ask questions about PDF, Word, Excel, or image"
    },
    {
      "name": "Extract",
      "value": "extract",
      "action": "Extract structured data from a document",
      "description": "Extract structured data from PDF, Word, Excel, or image using JSON Schema"
    },
    {
      "name": "Parse",
      "value": "parse",
      "action": "Parse an invoice",
      "description": "Parse invoice, expense, bank statement or financial document"
    },
    {
      "name": "Ask",
      "value": "ask",
      "action": "Ask questions about an invoice",
      "description": "Ask questions about invoice, expense, bank statement or financial document"
    },
    {
      "name": "Extract",
      "value": "extract",
      "action": "Extract structured data from an invoice",
      "description": "Extract invoice, expense, bank statement or financial document structured data"
    },
    {
      "name": "Parse",
      "value": "parse",
      "action": "Parse an identity document",
      "description": "Parse identity documents (passports, driver licenses, ID cards, national IDs) to markdown"
    },
    {
      "name": "Ask",
      "value": "ask",
      "action": "Ask questions about an identity document",
      "description": "Ask questions about identity document content"
    },
    {
      "name": "Extract",
      "value": "extract",
      "action": "Extract structured data from an identity document",
      "description": "Extract structured data from identity documents using JSON Schema"
    }
  ]

npm_readme:
  # n8n-nodes-pdfvector

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

  PDF Vector is a powerful document processing and academic research API service. It enables you to parse PDFs and Word documents into clean Markdown, extract structured data, and search across millions of academic publications from multiple databases.

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

  ## Table of Contents

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

  ## Installation

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

  1. Go to `Settings` > `Community Nodes`.
  2. Select `Install`.
  3. Enter `n8n-nodes-pdfvector` in `Enter npm package name`.
  4. Agree to the risks of using community nodes.
  5. Select `Install`.

  ![Install](assets/install.png)

  ## Operations

  ### Document Resource

  #### Parse Document

  Extract content from PDF/Word documents and convert to clean Markdown format.

  **Parameters:**

  - **Document URL**: Direct URL to the PDF or Word document
  - **Use LLM**:
    - `auto` (default) - System decides if LLM parsing is needed
    - `never` - Basic parsing only (1 credit per page)
    - `always` - Force LLM parsing (2 credits per page)

  **Supported Formats:**

  - PDF files
  - Word documents (.doc, .docx)

  **Credit Usage**: 1-2 credits per page depending on LLM usage

  #### Ask Document

  Ask questions about PDF/Word documents using AI analysis to get intelligent answers.

  **Parameters:**

  - **Document URL**: Direct URL to the PDF or Word document
  - **Prompt**: Your question about the document (1-2000 characters)

  **Example Questions:**
  - "What are the key findings in this research paper?"
  - "Summarize the methodology section"
  - "What conclusions does the author draw?"
  - "Extract all statistical results mentioned"

  **Credit Usage**: 3 credits per page

  ### Academic Resource

  #### Search Publications

  Search for academic publications across multiple databases with intelligent ranking.

  **Parameters:**

  - **Query**: Search query string
  - **Providers**: Select which academic databases to search (PubMed, Semantic Scholar, Google Scholar, ArXiv, ERIC)
  - **Limit**: Maximum results per provider (1-100, default: 50)
  - **Offset**: Skip this many results per provider
  - **Year From/To**: Filter by publication year range
  - **Fields**: Choose which fields to include in the response

  **Credit Usage**: 2 credit per search request

  #### Fetch Publications

  Retrieve specific academic publications by their identifiers with automatic provider detection.

  **Parameters:**

  - **IDs**: Comma-separated list of publication IDs (DOI, PubMed ID, ArXiv ID, etc.)
  - **Fields**: Choose which fields to include in the response

  **Supported ID Types:**

  - DOI (e.g., `10.1038/nature12373`)
  - PubMed ID (e.g., `12345678`)
  - ArXiv ID (e.g., `2301.12345`)
  - Semantic Scholar ID (e.g., `85128297772`)
  - ERIC ID (e.g., `ED123456`)

  **Credit Usage**: 2 credit per fetch request

  ## Credentials

  To use this node, you'll need a PDF Vector API key. Here's how to get one:

  1. Sign up for a [PDF Vector account](https://www.pdfvector.com/sign-up)
  2. Navigate to your [Dashboard](https://www.pdfvector.com/dashboard)
  3. Generate a new API key (it will start with `pdfvector_`)
  4. In n8n:
     - Go to **Credentials** → **Add Credential**
     - Select **PDF Vector API** from the list
     - Enter your API key
     - Click **Save**

  ![Credentials](assets/credentials.png)

  ## Compatibility

  - **n8n version:** 0.202.0 or later
  - **Node.js version:** 20.15 or later

  ## Usage

  ### Example: Ask Questions About a Document

  This workflow shows how to use the Ask operation to get AI-powered answers about a document:

  ```json
  {
    "nodes": [
      {
        "name": "Ask Document",
        "type": "n8n-nodes-pdfvector.pdfVector",
        "position": [250, 300],
        "parameters": {
          "resource": "document",
          "operation": "ask",
          "url": "https://example.com/research-paper.pdf",
          "prompt": "What are the main findings and conclusions of this research?"
        }
      }
    ]
  }
  ```

  The response will include:
  - `markdown`: AI-generated answer to your question
  - `pageCount`: Number of pages processed
  - `creditCount`: Credits consumed

  ### Example: Parse a PDF and Search Related Papers

  This workflow demonstrates how to:

  1. Parse a PDF document to extract its content
  2. Use the extracted content to search for related academic papers

  ```json
  {
    "nodes": [
      {
        "name": "Parse PDF",
        "type": "n8n-nodes-pdfvector.pdfVector",
        "position": [250, 300],
        "parameters": {
          "resource": "document",
          "operation": "parse",
          "url": "https://example.com/paper.pdf",
          "useLLM": "auto"
        }
      },
      {
        "name": "Search Related Papers",
        "type": "n8n-nodes-pdfvector.pdfVector",
        "position": [450, 300],
        "parameters": {
          "resource": "academic",
          "operation": "search",
          "query": "={{ $json.markdown.substring(0, 200) }}",
          "providers": ["semantic-scholar", "pubmed"],
          "limit": 10,
          "offset": 0
        }
      }
    ]
  }
  ```

  ### Example: Batch Fetch Publications

  Fetch multiple publications by their DOIs:

  ```json
  {
    "parameters": {
      "resource": "academic",
      "operation": "fetch",
      "ids": "10.1038/nature12373,10.1126/science.1234567,PMC123456"
    }
  }
  ```

  ### Response Handling

  All operations return structured JSON responses. Handle errors gracefully:

  ```javascript
  // In a Function node after PDF Vector
  if ($json.error) {
    throw new Error($json.error.message);
  }

  // For academic search - check for partial errors
  if ($json.errors && $json.errors.length > 0) {
    console.warn("Some providers failed:", $json.errors);
  }

  return $json.results;
  ```

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [PDF Vector API Documentation](https://www.pdfvector.com/v1/api/scalar)
  - [PDF Vector Dashboard](https://www.pdfvector.com/dashboard)
  - [PDF Vector Pricing](https://www.pdfvector.com/#pricing)


  ## Version history

  - 0.1.0 - Initial release of the PDF Vector node for n8n.

  ## Development

  Check out [documentation on creating nodes](https://docs.n8n.io/integrations/creating-nodes/) for detailed information on building and developing the node.

  0. Install dependencies:

  ```bash
  npm install
  ```

  1. Build the node

  ```bash
  npm run build
  ```

  2. Link the node to n8n from the node directory

  ```bash
  npm link
  ```

  3. In your `~/.n8n/nodes` directory, link the node:

  ```bash
  npm link n8n-nodes-pdfvector
  ```

  4. Run n8n:

  ```bash
  n8n start
  ```

  Once the node is linked, you need to only rebuild and restart n8n to see the changes.

  ## License

  This project is licensed [under the MIT License](LICENSE.md).

ai_documentation_summary:
  {"purpose":"The PDF Vector node enables users to parse PDF and Word documents into clean Markdown, extract structured data using AI, and search academic publications across multiple databases like PubMed, Google Scholar, and ArXiv.","capabilities":["Parse PDF and Word documents into clean Markdown","Extract structured data using AI-powered analysis","Ask questions about documents with intelligent AI responses","Search academic publications across PubMed, Semantic Scholar, Google Scholar, ArXiv, and ERIC","Fetch specific publications by DOI, PubMed ID, ArXiv ID, or other identifiers"],"authentication":"API key required (generated from https://www.pdfvector.com)","commonUseCases":["Extracting key findings from research papers","Summarizing document content using AI","Searching for related academic papers based on document content","Batch fetching publications by DOI or ID","Automating data extraction from invoices or reports"],"limitations":["Credit-based usage model (1-3 credits per operation; costs accumulate)","Limited to direct URLs for document input (no file uploads)","No support for Excel or image files in parsing or searching","Search results depend on provider availability and indexing"],"relatedNodes":["Document parsing nodes","AI/LLM-based question-answering nodes","Academic research integration nodes","Data extraction and transformation nodes"]}


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

updated_at: 2026-01-07 20:08:15
author_name: kaushik_vdb
author_github_url: https://github.com/video-db/n8n-nodes-videodb.git
npm_package_name: @videodb/n8n-nodes-videodb
npm_version: 1.0.8
community_fetched_at: 2026-01-07T20:08:15.922Z
properties_schema:
  [
    {
      "name": "operation",
      "type": "options",
      "default": "fetchVideos",
      "options": [
        {
          "name": "Index Spoken Words",
          "value": "indexSpokenWords",
          "action": "Index spoken words",
          "description": "Perform semantic indexing on the spoken words in a video"
        },
        {
          "name": "Get Transcript",
          "value": "getTranscript",
          "action": "Get Transcript",
          "description": "Get transcript for a video"
        },
        {
          "name": "Search in a Video",
          "value": "searchInVideo",
          "action": "Search in a Video",
          "description": "Search for a query within a video"
        },
        {
          "name": "Generate Stream",
          "value": "generateStream",
          "action": "Generate a video stream",
          "description": "Generates a stream URL for the video"
        },
        {
          "name": "Index Scenes",
          "value": "indexScenes",
          "action": "Index scenes",
          "description": "Indexes the scenes of the video"
        },
        {
          "name": "List Scene Indexes",
          "value": "listSceneIndexes",
          "action": "List scene indexes",
          "description": "Lists all the scene indexes for the video"
        },
        {
          "name": "Get Scene Index",
          "value": "getSceneIndex",
          "action": "Get scene index",
          "description": "Retrieves a specific scene index"
        },
        {
          "name": "Delete Scene Index",
          "value": "deleteSceneIndex",
          "action": "Delete scene index",
          "description": "Deletes a specific scene index"
        },
        {
          "name": "Add Subtitle",
          "value": "addSubtitle",
          "action": "Add subtitles",
          "description": "Adds subtitles to the video"
        },
        {
          "name": "Generate Audio URL",
          "value": "generateAudioUrl",
          "action": "Generate Audio URL",
          "description": "Generates a temporary, signed URL to access the audio file"
        },
        {
          "name": "Generate Image URL",
          "value": "generateImageUrl",
          "action": "Generate Image URL",
          "description": "Generates a temporary, signed URL to access the image file"
        },
        {
          "name": "Create Collection",
          "value": "createCollection",
          "action": "Create Collection",
          "description": "Creates a new collection"
        },
        {
          "name": "Download",
          "value": "download",
          "action": "Download",
          "description": "Requests a download URL for a given stream link"
        },
        {
          "name": "Get Collection",
          "value": "getCollection",
          "action": "Get Collection",
          "description": "Fetches a single collection by its ID"
        },
        {
          "name": "Get Collections",
          "value": "getCollections",
          "action": "Get Collections",
          "description": "Fetches all collections for the user"
        },
        {
          "name": "Update Collection",
          "value": "updateCollection",
          "action": "Update Collection",
          "description": "Updates a collection's name or description"
        },
        {
          "name": "YouTube Search",
          "value": "youtubeSearch",
          "action": "YouTube Search",
          "description": "Performs a YouTube search within a collection"
        },
        {
          "name": "Delete Audio",
          "value": "deleteAudio",
          "action": "Delete Audio",
          "description": "Deletes a specific audio asset by its ID from a collection"
        },
        {
          "name": "Delete Image",
          "value": "deleteImage",
          "action": "Delete Image",
          "description": "Deletes a specific image by its ID from a collection"
        },
        {
          "name": "Delete Video",
          "value": "deleteVideo",
          "action": "Delete Video",
          "description": "Deletes a specific video by its ID from a collection"
        },
        {
          "name": "Delete Collection",
          "value": "deleteCollection",
          "action": "Delete Collection",
          "description": "Deletes a collection and all its assets"
        },
        {
          "name": "Dub Video",
          "value": "dubVideo",
          "action": "Dub Video",
          "description": "Dubs a video into a different language"
        },
        {
          "name": "Generate Image",
          "value": "generateImage",
          "action": "Generate Image",
          "description": "Generates an image from a text prompt"
        },
        {
          "name": "Generate Music",
          "value": "generateMusic",
          "action": "Generate Music",
          "description": "Generates music from a text prompt"
        },
        {
          "name": "Generate Sound Effect",
          "value": "generateSoundEffect",
          "action": "Generate Sound Effect",
          "description": "Generates a sound effect from a text prompt"
        },
        {
          "name": "Generate Voice",
          "value": "generateVoice",
          "action": "Generate Voice",
          "description": "Generates voice from text"
        },
        {
          "name": "Generate Video",
          "value": "generateVideo",
          "action": "Generate Video",
          "description": "Generates a video from a text prompt"
        },
        {
          "name": "Generate Text",
          "value": "generateText",
          "action": "Generate Text",
          "description": "Generates text from a prompt using AI models"
        },
        {
          "name": "Get Audio",
          "value": "getAudio",
          "action": "Get Audio",
          "description": "Retrieves a specific audio asset by its ID from a collection"
        },
        {
          "name": "Get Audios",
          "value": "getAudios",
          "action": "Get Audios",
          "description": "Retrieves a list of all audio assets within a collection"
        },
        {
          "name": "Get Image",
          "value": "getImage",
          "action": "Get Image",
          "description": "Retrieves a specific image by its ID from a collection"
        },
        {
          "name": "Get Images",
          "value": "getImages",
          "action": "Get Images",
          "description": "Retrieves a list of all images within a collection"
        },
        {
          "name": "Get Video",
          "value": "getVideo",
          "action": "Get Video",
          "description": "Retrieves a specific video by its ID from a collection"
        },
        {
          "name": "Get Videos",
          "value": "getVideos",
          "action": "Get Videos",
          "description": "Retrieves a list of all videos within a collection"
        },
        {
          "name": "Search in a Collection",
          "value": "search",
          "action": "Search in a Collection",
          "description": "Performs a search query across the collection"
        },
        {
          "name": "Upload",
          "value": "upload",
          "action": "Upload",
          "description": "Uploads a media file (video, audio, or image) from a URL"
        },
        {
          "name": "Record Meeting",
          "value": "recordMeeting",
          "action": "Record Meeting",
          "description": "Records a meeting using a bot and saves it to the collection"
        },
        {
          "name": "Get Meeting",
          "value": "getMeeting",
          "action": "Get Meeting",
          "description": "Retrieves a specific meeting recording by its ID from a collection"
        },
        {
          "name": "Compile Timeline (VideoDB's Video Editor)",
          "value": "compileTimeline",
          "action": "Compile Timeline (VideoDB's Video Editor)",
          "description": "VideoDB's Video Editor - Build a multi-track timeline (video + overlays) and get a stream/player URL"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Index Spoken Words",
      "value": "indexSpokenWords",
      "action": "Index spoken words",
      "description": "Perform semantic indexing on the spoken words in a video"
    },
    {
      "name": "Get Transcript",
      "value": "getTranscript",
      "action": "Get Transcript",
      "description": "Get transcript for a video"
    },
    {
      "name": "Search in a Video",
      "value": "searchInVideo",
      "action": "Search in a Video",
      "description": "Search for a query within a video"
    },
    {
      "name": "Generate Stream",
      "value": "generateStream",
      "action": "Generate a video stream",
      "description": "Generates a stream URL for the video"
    },
    {
      "name": "Index Scenes",
      "value": "indexScenes",
      "action": "Index scenes",
      "description": "Indexes the scenes of the video"
    },
    {
      "name": "List Scene Indexes",
      "value": "listSceneIndexes",
      "action": "List scene indexes",
      "description": "Lists all the scene indexes for the video"
    },
    {
      "name": "Get Scene Index",
      "value": "getSceneIndex",
      "action": "Get scene index",
      "description": "Retrieves a specific scene index"
    },
    {
      "name": "Delete Scene Index",
      "value": "deleteSceneIndex",
      "action": "Delete scene index",
      "description": "Deletes a specific scene index"
    },
    {
      "name": "Add Subtitle",
      "value": "addSubtitle",
      "action": "Add subtitles",
      "description": "Adds subtitles to the video"
    },
    {
      "name": "Generate Audio URL",
      "value": "generateAudioUrl",
      "action": "Generate Audio URL",
      "description": "Generates a temporary, signed URL to access the audio file"
    },
    {
      "name": "Generate Image URL",
      "value": "generateImageUrl",
      "action": "Generate Image URL",
      "description": "Generates a temporary, signed URL to access the image file"
    },
    {
      "name": "Create Collection",
      "value": "createCollection",
      "action": "Create Collection",
      "description": "Creates a new collection"
    },
    {
      "name": "Download",
      "value": "download",
      "action": "Download",
      "description": "Requests a download URL for a given stream link"
    },
    {
      "name": "Get Collection",
      "value": "getCollection",
      "action": "Get Collection",
      "description": "Fetches a single collection by its ID"
    },
    {
      "name": "Get Collections",
      "value": "getCollections",
      "action": "Get Collections",
      "description": "Fetches all collections for the user"
    },
    {
      "name": "Update Collection",
      "value": "updateCollection",
      "action": "Update Collection",
      "description": "Updates a collection's name or description"
    },
    {
      "name": "YouTube Search",
      "value": "youtubeSearch",
      "action": "YouTube Search",
      "description": "Performs a YouTube search within a collection"
    },
    {
      "name": "Delete Audio",
      "value": "deleteAudio",
      "action": "Delete Audio",
      "description": "Deletes a specific audio asset by its ID from a collection"
    },
    {
      "name": "Delete Image",
      "value": "deleteImage",
      "action": "Delete Image",
      "description": "Deletes a specific image by its ID from a collection"
    },
    {
      "name": "Delete Video",
      "value": "deleteVideo",
      "action": "Delete Video",
      "description": "Deletes a specific video by its ID from a collection"
    },
    {
      "name": "Delete Collection",
      "value": "deleteCollection",
      "action": "Delete Collection",
      "description": "Deletes a collection and all its assets"
    },
    {
      "name": "Dub Video",
      "value": "dubVideo",
      "action": "Dub Video",
      "description": "Dubs a video into a different language"
    },
    {
      "name": "Generate Image",
      "value": "generateImage",
      "action": "Generate Image",
      "description": "Generates an image from a text prompt"
    },
    {
      "name": "Generate Music",
      "value": "generateMusic",
      "action": "Generate Music",
      "description": "Generates music from a text prompt"
    },
    {
      "name": "Generate Sound Effect",
      "value": "generateSoundEffect",
      "action": "Generate Sound Effect",
      "description": "Generates a sound effect from a text prompt"
    },
    {
      "name": "Generate Voice",
      "value": "generateVoice",
      "action": "Generate Voice",
      "description": "Generates voice from text"
    },
    {
      "name": "Generate Video",
      "value": "generateVideo",
      "action": "Generate Video",
      "description": "Generates a video from a text prompt"
    },
    {
      "name": "Generate Text",
      "value": "generateText",
      "action": "Generate Text",
      "description": "Generates text from a prompt using AI models"
    },
    {
      "name": "Get Audio",
      "value": "getAudio",
      "action": "Get Audio",
      "description": "Retrieves a specific audio asset by its ID from a collection"
    },
    {
      "name": "Get Audios",
      "value": "getAudios",
      "action": "Get Audios",
      "description": "Retrieves a list of all audio assets within a collection"
    },
    {
      "name": "Get Image",
      "value": "getImage",
      "action": "Get Image",
      "description": "Retrieves a specific image by its ID from a collection"
    },
    {
      "name": "Get Images",
      "value": "getImages",
      "action": "Get Images",
      "description": "Retrieves a list of all images within a collection"
    },
    {
      "name": "Get Video",
      "value": "getVideo",
      "action": "Get Video",
      "description": "Retrieves a specific video by its ID from a collection"
    },
    {
      "name": "Get Videos",
      "value": "getVideos",
      "action": "Get Videos",
      "description": "Retrieves a list of all videos within a collection"
    },
    {
      "name": "Search in a Collection",
      "value": "search",
      "action": "Search in a Collection",
      "description": "Performs a search query across the collection"
    },
    {
      "name": "Upload",
      "value": "upload",
      "action": "Upload",
      "description": "Uploads a media file (video, audio, or image) from a URL"
    },
    {
      "name": "Record Meeting",
      "value": "recordMeeting",
      "action": "Record Meeting",
      "description": "Records a meeting using a bot and saves it to the collection"
    },
    {
      "name": "Get Meeting",
      "value": "getMeeting",
      "action": "Get Meeting",
      "description": "Retrieves a specific meeting recording by its ID from a collection"
    },
    {
      "name": "Compile Timeline (VideoDB's Video Editor)",
      "value": "compileTimeline",
      "action": "Compile Timeline (VideoDB's Video Editor)",
      "description": "VideoDB's Video Editor - Build a multi-track timeline (video + overlays) and get a stream/player URL"
    }
  ]


node_type: n8n-nodes-nele-ai.neleAi
package_name: n8n-nodes-nele-ai
display_name: nele.ai
description: Search for results in your nele.ai knowledge database
category: Miscellaneous
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-01-07 20:08:15
author_name: gal.digital.npm
author_github_url: https://github.com/gal-digital-gmbh/
npm_package_name: n8n-nodes-nele-ai
npm_version: 1.0.4
community_fetched_at: 2026-01-07T20:08:15.923Z
ai_summary_generated_at: 2026-01-08 10:45:32
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "",
      "options": [
        {
          "name": "Chat",
          "value": "chat",
          "description": "Generate text responses via a conversational model"
        },
        {
          "name": "Knowledge Database",
          "value": "documentCollection",
          "description": "Manage and search your knowledge databases (aka document collections)"
        },
        {
          "name": "Image",
          "value": "image",
          "description": "Generate and retrieve images based on text prompts"
        },
        {
          "name": "Audio",
          "value": "audio",
          "description": "Transcribe and retrieve audio files as text"
        },
        {
          "name": "Model",
          "value": "model",
          "description": "Retrieve available models"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "completionSync",
      "options": [
        {
          "name": "Completion",
          "value": "completionSync",
          "action": "Generate a text response",
          "description": "Creates a response for a given chat message history"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "chat"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "search",
      "options": [
        {
          "name": "Search",
          "value": "search",
          "action": "Search knowledge database",
          "description": "Returns relevant results for a given search query"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "documentCollection"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "generate",
      "options": [
        {
          "name": "Generate",
          "value": "generate",
          "action": "Generate an image",
          "description": "Creates an image from a text prompt"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "image"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "transcribe",
      "options": [
        {
          "name": "Transcribe",
          "value": "transcribe",
          "action": "Transcribe an audio file",
          "description": "Creates a text transcription from an audio file"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "audio"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "load",
      "options": [
        {
          "name": "List Models",
          "value": "load",
          "action": "List AI models",
          "description": "Lists all available AI models"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "model"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Completion",
      "value": "completionSync",
      "action": "Generate a text response",
      "description": "Creates a response for a given chat message history"
    },
    {
      "name": "Search",
      "value": "search",
      "action": "Search knowledge database",
      "description": "Returns relevant results for a given search query"
    },
    {
      "name": "Generate",
      "value": "generate",
      "action": "Generate an image",
      "description": "Creates an image from a text prompt"
    },
    {
      "name": "Transcribe",
      "value": "transcribe",
      "action": "Transcribe an audio file",
      "description": "Creates a text transcription from an audio file"
    },
    {
      "name": "List Models",
      "value": "load",
      "action": "List AI models",
      "description": "Lists all available AI models"
    }
  ]

npm_readme:
  # nele.ai n8n community node

  This is an n8n community node that lets you use [nele.ai](https://www.nele.ai) AI tools, chat completions, image generators, and knowledge database operations in your n8n workflows.

  [nele.ai](https://www.nele.ai) provides a unified API for a variety of AI models and tools, including chat, image generation, audio transcription, and document collection search.

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

  ## 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 operations:

  - **Chat**: Generate text responses via conversational AI models.
  - **Image**: Generate and retrieve images based on text prompts.
  - **Audio**: Transcribe audio files to text.
  - **Knowledge Database**: Search and manage your knowledge databases (document collections).
  - **Model**: List available AI models.

  ## Credentials

  You need a nele.ai API key use this node.

  1. Sign up at [nele.ai](https://www.nele.ai) and obtain your API key.
  2. In n8n, add new credentials for "nele.ai API" and enter your API key.

  For more details, see the [nele.ai manual](https://www.nele.ai/en/functions/information-for-users/program-settings/api-key).

  ## Compatibility

  - Requires n8n version 1.109.1 or higher.
  - Requires node.js version 22.19.0 or higher.

  ## Usage

  After installing the node and configuring your credentials, you can add the "nele.ai" node to your workflows and select the desired resource and operation.

  - Use **Chat** for conversational AI.
  - Use **Image** to generate images from prompts.
  - Use **Audio** to transcribe audio files.
  - Use **Knowledge Database** to search your document collections.

  Refer to the in-app parameter descriptions for guidance on each operation.

  ## Resources

  - [nele.ai homepage](https://www.nele.ai)
  - [nele.ai manual](https://www.nele.ai/en/functions)
  - [nele.ai API documentation](https://api.aieva.io/docs)
  - [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)

ai_documentation_summary:
  {"purpose":"The nele.ai n8n community node enables integration with nele.ai's AI tools, allowing users to perform chat completions, generate images, transcribe audio, and search within knowledge databases using a unified API within n8n workflows.","capabilities":["Chat completions for conversational AI","Image generation from text prompts","Audio transcription from files","Search in knowledge databases (document collections)","List available AI models"],"authentication":"API key required","commonUseCases":["Searching documents in a private knowledge base","Generating images from text descriptions","Transcribing audio files into text","Engaging in AI-powered conversations","Selecting and using specific AI models"],"limitations":[],"relatedNodes":["n8n nodes for AI and automation","document search nodes","image generation nodes","audio processing nodes"]}


node_type: n8n-nodes-screenshotbase.screenshotBase
package_name: n8n-nodes-screenshotbase
display_name: ScreenshotBase
description: Capture screenshots via ScreenshotBase API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-01-07 20:08:15
author_name: everapi-user
author_github_url: https://github.com/everapihq/
npm_package_name: n8n-nodes-screenshotbase
npm_version: 0.1.3
community_fetched_at: 2026-01-07T20:08:15.924Z
ai_summary_generated_at: 2026-01-08 10:45:32
properties_schema:
  [
    {
      "name": "operation",
      "type": "options",
      "default": "getScreenshot",
      "options": [
        {
          "name": "Get Screenshot",
          "value": "getScreenshot",
          "action": "Fetch website screenshot",
          "routing": {
            "request": {
              "qs": {
                "url": "={{$parameter[\"url\"]}}"
              },
              "url": "/take",
              "method": "GET"
            }
          },
          "description": "Capture a screenshot from a given URL"
        }
      ],
      "displayName": "Operation",
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get Screenshot",
      "value": "getScreenshot",
      "action": "Fetch website screenshot",
      "routing": {
        "request": {
          "qs": {
            "url": "={{$parameter[\"url\"]}}"
          },
          "url": "/take",
          "method": "GET"
        }
      },
      "description": "Capture a screenshot from a given URL"
    }
  ]

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

  # n8n-nodes-friendgrid

  This repo contains FriendGrid community nodes for [n8n](https://n8n.io), including a [ScreenshotBase](https://screenshotbase.com) node.

  To make your custom node available to the community, you must create it as an npm package, and [submit it to the npm registry](https://docs.npmjs.com/packages-and-modules/contributing-packages-to-the-registry).

  If you would like your node to be available on n8n cloud you can also [submit your node for verification](https://docs.n8n.io/integrations/creating-nodes/deploy/submit-community-nodes/).

  ## Prerequisites

  You need the following installed on your development machine:

  * [git](https://git-scm.com/downloads)
  * Node.js and npm. Minimum version Node 20. You can find instructions on how to install both using nvm (Node Version Manager) for Linux, Mac, and WSL [here](https://github.com/nvm-sh/nvm). For Windows users, refer to Microsoft's guide to [Install NodeJS on Windows](https://docs.microsoft.com/en-us/windows/dev-environment/javascript/nodejs-on-windows).
  * Install n8n with:
    ```
    npm install n8n -g
    ```
  * Recommended: follow n8n's guide to [set up your development environment](https://docs.n8n.io/integrations/creating-nodes/build/node-development-environment/).

  ## Using this starter

  These are the basic steps for working with the starter. For detailed guidance on creating and publishing nodes, refer to the [documentation](https://docs.n8n.io/integrations/creating-nodes/).

  1. [Generate a new repository](https://github.com/n8n-io/n8n-nodes-starter/generate) from this template repository.
  2. Clone your new repo:
     ```
     git clone https://github.com/<your organization>/<your-repo-name>.git
     ```
  3. Run `npm i` to install dependencies.
  4. Open the project in your editor.
  5. Browse the examples in `/nodes` and `/credentials`. Modify the examples, or replace them with your own nodes.
  6. Update the `package.json` to match your details.
  7. Run `npm run lint` to check for errors or `npm run lintfix` to automatically fix errors when possible.
  8. Test your node locally. Refer to [Run your node locally](https://docs.n8n.io/integrations/creating-nodes/test/run-node-locally/) for guidance.
  9. Replace this README with documentation for your node. Use the [README_TEMPLATE](README_TEMPLATE.md) to get started. See below for ScreenshotBase usage.
  10. Update the LICENSE file to use your details.
  11. [Publish](https://docs.npmjs.com/packages-and-modules/contributing-packages-to-the-registry) your package to npm.

  ## More information

  Refer to our [documentation on creating nodes](https://docs.n8n.io/integrations/creating-nodes/) for detailed information on building your own nodes.

  ## ScreenshotBase Node

  Capture website screenshots using the ScreenshotBase API.

  ### Credentials

  - Create credentials of type `ScreenshotBase API` and enter your API key (`https://app.screenshotbase.com/register`)).
  - Base URL defaults to `https://app.screenshotbase.com/v1`.

  ### Operation

  - Get Screenshot
    - URL (required)
    - File Name (optional)
    - Advanced: width, height, format (png/jpeg/webp), fullpage

  ### Notes

  - The node performs a GET to `/take` with your key injected by credentials.
  - Output is the HTTP response. Add a downstream node to persist the image as needed.

  ## License

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

ai_documentation_summary:
  {"purpose":"The ScreenshotBase node captures website screenshots using the ScreenshotBase API, allowing users to retrieve images of web pages with customizable parameters such as size, format, and full-page rendering.","capabilities":["Capture screenshots of websites","Set custom file names","Adjust image dimensions (width, height)","Choose image format (PNG, JPEG, WEBP)","Enable full-page rendering"],"authentication":"API key required via a 'ScreenshotBase API' credential with the API key obtained from https://app.screenshotbase.com/register","commonUseCases":["Automated web page screenshotting for documentation or monitoring","Creating visual records of website changes over time","Integrating with workflows that require visual data from websites"],"limitations":["Output is raw HTTP response; downstream nodes are required to save or process the image","No built-in image processing or storage functionality","Limited to public URLs; private or authenticated pages may not be accessible"],"relatedNodes":["HTTP Request","File Save","Webhook"]}


node_type: n8n-nodes-postiz.postiz
package_name: n8n-nodes-postiz
display_name: Postiz
description: Consume Postiz API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-01-07 20:08:15
author_name: nevodavid10
author_github_url: https://github.com/gitroomhq/postiz-n8n.git
npm_package_name: n8n-nodes-postiz
npm_version: 0.2.17
community_fetched_at: 2026-01-07T20:08:15.925Z
ai_summary_generated_at: 2026-01-08 10:45:32
properties_schema:
  [
    {
      "name": "operation",
      "type": "options",
      "default": "createPost",
      "options": [
        {
          "name": "Create Post",
          "value": "createPost",
          "action": "Schedule a post to postiz",
          "description": "Schedule a post to Postiz"
        },
        {
          "name": "Delete Post",
          "value": "deletePost",
          "action": "Delete a post by id",
          "description": "Delete a post by ID"
        },
        {
          "name": "Generate Video",
          "value": "generateVideo",
          "action": "Generate videos with AI",
          "description": "Generate videos with AI"
        },
        {
          "name": "Get Channels",
          "value": "getIntegrations",
          "action": "Get a list of connected channels",
          "description": "Get a list of connected channels"
        },
        {
          "name": "Get Posts",
          "value": "getPosts",
          "action": "Get a list of posts",
          "description": "Get a list of posts"
        },
        {
          "name": "Upload File",
          "value": "uploadFile",
          "action": "Upload a file to postiz",
          "description": "Upload a file to Postiz"
        },
        {
          "name": "Video Function",
          "value": "videoFunction",
          "action": "Execute video related functions",
          "description": "Execute video-related functions like loading voices"
        }
      ],
      "displayName": "Operation",
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create Post",
      "value": "createPost",
      "action": "Schedule a post to postiz",
      "description": "Schedule a post to Postiz"
    },
    {
      "name": "Delete Post",
      "value": "deletePost",
      "action": "Delete a post by id",
      "description": "Delete a post by ID"
    },
    {
      "name": "Generate Video",
      "value": "generateVideo",
      "action": "Generate videos with AI",
      "description": "Generate videos with AI"
    },
    {
      "name": "Get Channels",
      "value": "getIntegrations",
      "action": "Get a list of connected channels",
      "description": "Get a list of connected channels"
    },
    {
      "name": "Get Posts",
      "value": "getPosts",
      "action": "Get a list of posts",
      "description": "Get a list of posts"
    },
    {
      "name": "Upload File",
      "value": "uploadFile",
      "action": "Upload a file to postiz",
      "description": "Upload a file to Postiz"
    },
    {
      "name": "Video Function",
      "value": "videoFunction",
      "action": "Execute video related functions",
      "description": "Execute video-related functions like loading voices"
    }
  ]

npm_readme:
  # Introduction
  [Postiz](https://postiz.com) is a powerful social media scheduling tool that allows you to manage your social media accounts efficiently.

  You can use n8n to automate your workflow and post to multiple social media platforms at once.

  You can [self-host](https://docs.postiz.com/introduction) Postiz or use our [cloud version](https://platform.postiz.com).
  For example: Load news from Reddit >> Make it a video with AI >> Post it to your social media accounts.

  Postiz supports: X, LinkedIn, BlueSky, Instagram, Facebook, TikTok, YouTube, Pinterest, Dribbble, Telegram, Discord, Slack, Threads, Lemmy, Reddit, Mastodon, Warpcast, Nostr and VK.

  You can learn how to use Postiz + n8n after installation here:
  https://youtu.be/c50u3K3xsCI

  ---

  > Note
  > If you are self-hosting Postiz on port 5000 (reverse proxy),
  > Your host must end with /api for example:
  > http://yourdomain.com/api

  Alternatively, you can use the SDK with curl, check the [Postiz API documentation](https://docs.postiz.com/public-api) for more information.

  ---

  ## Installation (quick installation)

  - Click on settings
  - Click on Community Nodes
  - Click on Install
  - Add "n8n-nodes-postiz" to "npm Package Name"
  - Click on Install

  ![community-node.png](community-node.png)

  ---

  ## Installation (non-docker - manual installation)
  Go to your n8n installation usually located at `~/.n8n`.
  Check if you have the `custom` folder, if not create it and create a new package.json file inside.
  ```bash
  mkdir -p ~/.n8n/custom
  npm init -y
  ```

  Then install the Postiz node package:
  ```
  npm install n8n-nodes-postiz
  ```

  ## For docker users (manual installation)
  Create a new folder on your host machine, for example `~/n8n-custom-nodes`, and create a new package.json file inside:
  ```bash
  mkdir -p ~/n8n-custom-nodes
  npm init -y
  ```

  install the Postiz node package:
  ```bash
  npm install n8n-nodes-postiz
  ```

  When you run the n8n docker container, mount the custom nodes folder to the container:
  Add the following environment variable to your docker run command:
  ```
  N8N_CUSTOM_EXTENSIONS="~/n8n-custom-nodes"
  ```

ai_documentation_summary:
  {"purpose":"The Postiz node allows users to automate social media posting by integrating with the Postiz API to schedule and publish content across multiple platforms including X, LinkedIn, Instagram, Facebook, TikTok, YouTube, and others.","capabilities":["Post to multiple social media platforms including X, LinkedIn, Instagram, Facebook, TikTok, YouTube, Pinterest, Dribbble, Telegram, Discord, Slack, Threads, Lemmy, Reddit, Mastodon, Warpcast, Nostr, and VK","Integrate with n8n workflows to automate content publishing","Support for both self-hosted and cloud versions of Postiz"],"authentication":"API key required (via Postiz API authentication; self-hosted instances require access via /api endpoint)","commonUseCases":["Automate posting of AI-generated content (e.g., video from Reddit) to social media","Schedule content from various sources to multiple platforms in a single workflow","Integrate with external tools (e.g., AI video generators) to create and publish content"],"limitations":[],"relatedNodes":["n8n-nodes-base","n8n-nodes-webhook","n8n-nodes-ai"]}


node_type: n8n-nodes-digital-ocean.digitalOcean
package_name: n8n-nodes-digital-ocean
display_name: Digital Ocean
description: Digital Ocean
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-01-07 20:08:15
author_name: joff
author_github_url: https://github.com/joffcom/
npm_package_name: n8n-nodes-digital-ocean
npm_version: 0.4.1
community_fetched_at: 2026-01-07T20:08:15.925Z
ai_summary_generated_at: 2026-01-08 10:45:32
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "account",
      "options": [
        {
          "name": "Account",
          "value": "account"
        },
        {
          "name": "Domain",
          "value": "domain"
        },
        {
          "name": "Droplet",
          "value": "droplet"
        },
        {
          "name": "Event",
          "value": "event"
        },
        {
          "name": "Custom API Call",
          "value": "__CUSTOM_API_CALL__"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get account information",
          "description": "Get account information"
        },
        {
          "name": "Custom API Call",
          "value": "__CUSTOM_API_CALL__"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "account"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get event information",
          "description": "Get event information"
        },
        {
          "name": "Get Many",
          "value": "getMany",
          "action": "Get information about many events",
          "description": "Get information about many events"
        },
        {
          "name": "Custom API Call",
          "value": "__CUSTOM_API_CALL__"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "event"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a domain",
          "description": "Create a domain"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get domain information",
          "description": "Get domain information"
        },
        {
          "name": "Get Many",
          "value": "getMany",
          "action": "Get information about many domains",
          "description": "Get information about many domains"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a domain",
          "description": "Delete a domain"
        },
        {
          "name": "Custom API Call",
          "value": "__CUSTOM_API_CALL__"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "domain"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getMany",
      "options": [
        {
          "name": "Action",
          "value": "action",
          "action": "Perform an action on a droplet",
          "description": "Perform an action on a droplet"
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create a new droplet",
          "description": "Create a new droplet"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a droplet",
          "description": "Delete a droplet"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get information about a droplet",
          "description": "Get information about a droplet"
        },
        {
          "name": "Get Backups",
          "value": "getBackups",
          "action": "Get all backups for a droplet",
          "description": "Get all backups for a droplet"
        },
        {
          "name": "Get Many",
          "value": "getMany",
          "action": "Get information about all droplets",
          "description": "Get information about many droplets"
        },
        {
          "name": "Get Snapshots",
          "value": "getSnapshots",
          "action": "Get all snapshots for a droplet",
          "description": "Get all snapshots for a droplet"
        },
        {
          "name": "Custom API Call",
          "value": "__CUSTOM_API_CALL__"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "droplet"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get",
      "value": "get",
      "action": "Get account information",
      "description": "Get account information"
    },
    {
      "name": "Custom API Call",
      "value": "__CUSTOM_API_CALL__"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get event information",
      "description": "Get event information"
    },
    {
      "name": "Get Many",
      "value": "getMany",
      "action": "Get information about many events",
      "description": "Get information about many events"
    },
    {
      "name": "Custom API Call",
      "value": "__CUSTOM_API_CALL__"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a domain",
      "description": "Create a domain"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get domain information",
      "description": "Get domain information"
    },
    {
      "name": "Get Many",
      "value": "getMany",
      "action": "Get information about many domains",
      "description": "Get information about many domains"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a domain",
      "description": "Delete a domain"
    },
    {
      "name": "Custom API Call",
      "value": "__CUSTOM_API_CALL__"
    },
    {
      "name": "Action",
      "value": "action",
      "action": "Perform an action on a droplet",
      "description": "Perform an action on a droplet"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a new droplet",
      "description": "Create a new droplet"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a droplet",
      "description": "Delete a droplet"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get information about a droplet",
      "description": "Get information about a droplet"
    },
    {
      "name": "Get Backups",
      "value": "getBackups",
      "action": "Get all backups for a droplet",
      "description": "Get all backups for a droplet"
    },
    {
      "name": "Get Many",
      "value": "getMany",
      "action": "Get information about all droplets",
      "description": "Get information about many droplets"
    },
    {
      "name": "Get Snapshots",
      "value": "getSnapshots",
      "action": "Get all snapshots for a droplet",
      "description": "Get all snapshots for a droplet"
    },
    {
      "name": "Custom API Call",
      "value": "__CUSTOM_API_CALL__"
    }
  ]

npm_readme:
  # n8n-nodes-digital-ocean

  This is an n8n community node for connecting to Digital Oceans API to manage your droplets.

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

  [Installation](#installation)  
  [Operations](#operations)  
  [Credentials](#credentials)  <!-- delete if no auth needed -->  
  [Compatibility](#compatibility)  
  [Usage](#usage)  <!-- delete if not using this section -->  
  [Resources](#resources)  
  [Version history](#version-history)  <!-- delete if not using this section -->  

  ## Installation

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

  ## Operations
  - Account
  	- Get
  - Domain
  	- Create
  	- Get
  	- Get Many
  	- Delete
  - Droplet
  	- Get
  	- Get Many
  	- Create
  	- Delete
  - Event 
  	- Get
  	- Get Many

  ## Credentials

  This node supports both OAuth2 and Access Key.

  [OAuth 2](https://docs.digitalocean.com/reference/api/oauth/)
  [Access Key](https://docs.digitalocean.com/reference/api/create-personal-access-token/)

  ## Compatibility

  This node will work with any version of n8n after `1.62.1`

  ## Usage

  ### Authentication
  1. Create new credentials in n8n and select "Digital Ocean API"
  2. Choose either OAuth2 or Access Key authentication:
     - For OAuth2: Click the "Connect" button and authorize n8n
     - For Access Key: Generate a [personal access token](https://cloud.digitalocean.com/account/api/tokens) and paste it in

  ### Working with Droplets
  - To get information about a specific droplet:
    1. Add the Digital Ocean node
    2. Select "Droplet" as Resource
    3. Choose "Get" as Operation
    4. Enter the Droplet ID

  - To create a new droplet:
    1. Add the Digital Ocean node
    2. Select "Droplet" as Resource
    3. Choose "Create" as Operation
    4. Configure required fields:
       - Name
       - Region
       - Size
       - Image

  ### Managing Domains
  - To create a new domain:
    1. Add the Digital Ocean node
    2. Select "Domain" as Resource
    3. Choose "Create" as Operation
    4. Enter the domain name
    5. Optionally configure IP address

  ### Monitoring Events
  - To track operations on your account:
    1. Add the Digital Ocean node
    2. Select "Event" as Resource
    3. Choose "Get Many" as Operation
    4. Optionally filter by event type

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)

  ## Version history

  **0.4.1** \
  Fix descriptions

  **0.4.0** \
  Add support for AI tools
  Update documentation

  **0.3.0** \
  Prevent node from loading n8n again

  **0.2.0** \
  Add support for Application images  
  Add support for Actions as Events  
  Add support for Domains  
  Add support for Droplet actions  
  Add option to get Droplet Snapshots and Backups  

  **0.1.0** \
  Initial Release

ai_documentation_summary:
  {"purpose":"The Digital Ocean node allows users to manage Digital Ocean resources such as droplets, domains, and events through the Digital Ocean API, enabling automation of cloud infrastructure tasks within n8n workflows.","capabilities":["Get account information","Create and manage domains","Get, create, delete, and list droplets","Retrieve droplet snapshots and backups","Monitor account events (e.g., droplet creation, changes)","Support for both OAuth2 and personal access tokens (Access Key)"],"authentication":"API key (Personal Access Token) or OAuth2 authentication required","commonUseCases":["Automating droplet provisioning based on triggers","Managing domain records for dynamic DNS or website hosting","Monitoring infrastructure events for alerts or logging","Creating backups or snapshots of droplets on schedule"],"limitations":[],"relatedNodes":["n8n-nodes-digital-ocean.digitalOcean"]}


node_type: @droidrun/n8n-nodes-droidrun.droidrun
package_name: @droidrun/n8n-nodes-droidrun
display_name: Droidrun Tasks
description: Access the Droidrun Cloud Api
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-01-07 20:08:15
author_name: lukas-droidrun
author_github_url: https://github.com/droidrun/n8n-nodes-droidrun.git
npm_package_name: @droidrun/n8n-nodes-droidrun
npm_version: 1.0.5
community_fetched_at: 2026-01-07T20:08:15.926Z
ai_summary_generated_at: 2026-01-08 10:45:32
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "inspectTask",
      "options": [
        {
          "name": "Inspect Task",
          "value": "inspectTask"
        },
        {
          "name": "Manage Task",
          "value": "manageTask"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "listTasks",
      "options": [
        {
          "name": "Get Task",
          "value": "getTask",
          "action": "Get task",
          "routing": {
            "request": {
              "url": "={{ \"/tasks/\" + $parameter.taskId }}",
              "method": "GET"
            }
          },
          "description": "Get a task"
        },
        {
          "name": "Get Task Gif",
          "value": "getTaskGif",
          "action": "Get task gif",
          "routing": {
            "request": {
              "url": "={{ \"/tasks/\" + $parameter.taskId + \"/gif\" }}",
              "method": "GET"
            }
          },
          "description": "Get a screenshot of a task"
        },
        {
          "name": "Get Task Screenshot",
          "value": "getTaskScreenshot",
          "action": "Get task screenshot",
          "routing": {
            "request": {
              "url": "={{ \"/tasks/\" + $parameter.taskId + \"/screenshot\" }}",
              "method": "GET"
            }
          },
          "description": "Get a screenshot of a task"
        },
        {
          "name": "Get Task Screenshots",
          "value": "getTaskScreenshots",
          "action": "Get task screenshots",
          "routing": {
            "request": {
              "url": "={{ \"/tasks/\" + $parameter.taskId + \"/screenshots\" }}",
              "method": "GET"
            }
          },
          "description": "Get a list of screenshots of a task"
        },
        {
          "name": "Get Task Status",
          "value": "getTaskStatus",
          "action": "Get task status",
          "routing": {
            "request": {
              "url": "={{ \"/tasks/\" + $parameter.taskId + \"/status\" }}",
              "method": "GET"
            }
          },
          "description": "Get the status of a task. If device is provided, return the status of the specific device."
        },
        {
          "name": "List Tasks",
          "value": "listTasks",
          "action": "List tasks",
          "routing": {
            "request": {
              "url": "/tasks/",
              "method": "GET"
            }
          },
          "description": "List all tasks you’ve created so far"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "inspectTask"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "runTask",
      "options": [
        {
          "name": "Stop Task",
          "value": "stopTask",
          "action": "Stop task",
          "routing": {
            "request": {
              "url": "={{ \"/tasks/\" + $parameter.taskId + \"/cancel\" }}",
              "method": "POST"
            }
          },
          "description": "Stops a task"
        },
        {
          "name": "Run Task",
          "value": "runTask",
          "action": "Run task",
          "routing": {
            "request": {
              "url": "/tasks/",
              "body": {
                "task": "={{ $parameter.task }}",
                "files": "={{ $parameter.files }}",
                "vision": "={{ $parameter.vision }}",
                "timeout": "={{ $parameter.timeout }}",
                "llmModel": "={{ $parameter.llmModel }}",
                "maxSteps": "={{ $parameter.maxSteps }}",
                "reasoning": "={{ $parameter.reasoning }}",
                "reflection": "={{ $parameter.reflection }}",
                "libraryApps": "={{ $parameter.libraryApps }}",
                "temperature": "={{ $parameter.temperature }}",
                "uploadedApps": "={{ $parameter.uploadedApps }}"
              },
              "method": "POST"
            }
          },
          "description": "Run a task"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "manageTask"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get Task",
      "value": "getTask",
      "action": "Get task",
      "routing": {
        "request": {
          "url": "={{ \"/tasks/\" + $parameter.taskId }}",
          "method": "GET"
        }
      },
      "description": "Get a task"
    },
    {
      "name": "Get Task Gif",
      "value": "getTaskGif",
      "action": "Get task gif",
      "routing": {
        "request": {
          "url": "={{ \"/tasks/\" + $parameter.taskId + \"/gif\" }}",
          "method": "GET"
        }
      },
      "description": "Get a screenshot of a task"
    },
    {
      "name": "Get Task Screenshot",
      "value": "getTaskScreenshot",
      "action": "Get task screenshot",
      "routing": {
        "request": {
          "url": "={{ \"/tasks/\" + $parameter.taskId + \"/screenshot\" }}",
          "method": "GET"
        }
      },
      "description": "Get a screenshot of a task"
    },
    {
      "name": "Get Task Screenshots",
      "value": "getTaskScreenshots",
      "action": "Get task screenshots",
      "routing": {
        "request": {
          "url": "={{ \"/tasks/\" + $parameter.taskId + \"/screenshots\" }}",
          "method": "GET"
        }
      },
      "description": "Get a list of screenshots of a task"
    },
    {
      "name": "Get Task Status",
      "value": "getTaskStatus",
      "action": "Get task status",
      "routing": {
        "request": {
          "url": "={{ \"/tasks/\" + $parameter.taskId + \"/status\" }}",
          "method": "GET"
        }
      },
      "description": "Get the status of a task. If device is provided, return the status of the specific device."
    },
    {
      "name": "List Tasks",
      "value": "listTasks",
      "action": "List tasks",
      "routing": {
        "request": {
          "url": "/tasks/",
          "method": "GET"
        }
      },
      "description": "List all tasks you’ve created so far"
    },
    {
      "name": "Stop Task",
      "value": "stopTask",
      "action": "Stop task",
      "routing": {
        "request": {
          "url": "={{ \"/tasks/\" + $parameter.taskId + \"/cancel\" }}",
          "method": "POST"
        }
      },
      "description": "Stops a task"
    },
    {
      "name": "Run Task",
      "value": "runTask",
      "action": "Run task",
      "routing": {
        "request": {
          "url": "/tasks/",
          "body": {
            "task": "={{ $parameter.task }}",
            "files": "={{ $parameter.files }}",
            "vision": "={{ $parameter.vision }}",
            "timeout": "={{ $parameter.timeout }}",
            "llmModel": "={{ $parameter.llmModel }}",
            "maxSteps": "={{ $parameter.maxSteps }}",
            "reasoning": "={{ $parameter.reasoning }}",
            "reflection": "={{ $parameter.reflection }}",
            "libraryApps": "={{ $parameter.libraryApps }}",
            "temperature": "={{ $parameter.temperature }}",
            "uploadedApps": "={{ $parameter.uploadedApps }}"
          },
          "method": "POST"
        }
      },
      "description": "Run a task"
    }
  ]

npm_readme:
  # n8n-nodes-droidrun

  This is an n8n community node that lets you use Droidrun AI in your n8n workflows to automate tasks on Android devices via the Droidrun Cloud API.

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

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

  ## Installation

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

  ## Operations

  This node exposes the following resources and operations:

  - Inspect Task
    - Get Task
    - Get Task Gif
    - Get Task Screenshot
    - Get Task Screenshots
    - Get Task Status
    - List Tasks

  - Manage Task
    - Run Task
      - Supports LLM model selection (fetched from LiteLLM endpoint)
      - Optional device selection (fetched from API or manual entry)
      - Apps selection (fetched from API for dropdown)
      - Structured output support via JSON schema
      - Optional file attachments
    - Stop Task

  ## Credentials

  This node requires a Droidrun API Token.

  - Create a Droidrun account and obtain an API key from your dashboard.
  - In n8n, create new credentials of type `Droidrun API` and paste your token.
  - The token will be sent as `Authorization: Bearer <token>` to the Droidrun API.

  Reference: `https://docs.mobilerun.ai/api-reference/`

  ## Compatibility

  - Built for the n8n Nodes API v1.
  - Developed with Node.js >= 20.15.

  ## Usage

  1. Add the `Droidrun` node to your workflow.
  2. Select the `Resource` (Inspect Task or Manage Task) and choose an `Operation`.
  3. Provide required parameters (for example, `Task ID` for inspect operations or `Task` and model settings for `Run Task`).
  4. Execute the workflow.

  ## Resources

  - n8n community nodes docs: `https://docs.n8n.io/integrations/#community-nodes`
  - Droidrun API reference: `https://docs.mobilerun.ai/api-reference/`
  - Droidrun website: `https://droidrun.ai/`

  ## Version history

  - 1.0.3: Initial public release of the Droidrun Tasks node

ai_documentation_summary:
  {"purpose":"The Droidrun Tasks node enables automation of Android device tasks using the Droidrun Cloud API, allowing users to inspect and manage tasks such as running AI-powered operations, retrieving task status, and capturing screenshots or gifs via n8n workflows.","capabilities":["Inspect tasks: Get task details, status, screenshots, and GIFs","Manage tasks: Run tasks with LLM model selection, device and app selection, file attachments, and structured JSON output","Stop running tasks","List all available tasks"],"authentication":"API key required; token must be provided in the 'Droidrun API' credentials and sent as 'Authorization: Bearer <token>'","commonUseCases":["Automating AI-driven interactions with Android apps","Monitoring task execution status in real-time","Capturing screenshots or GIFs of app interactions for reporting or debugging","Running structured AI tasks with predefined JSON schema outputs"],"limitations":[],"relatedNodes":["n8n core workflow nodes","LLM integration nodes","Device automation nodes"]}


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

updated_at: 2026-01-07 20:08:15
author_name: netgsm
author_github_url: https://github.com/netgsm/n8n-nodes-netgsm.git
npm_package_name: @netgsm/n8n-nodes-netgsm
npm_version: 0.1.40
community_fetched_at: 2026-01-07T20:08:15.927Z
ai_summary_generated_at: 2026-01-08 10:45:32
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "sms",
      "options": [
        {
          "name": "SMS",
          "value": "sms"
        },
        {
          "name": "ILETI YONETIM SISTEMI",
          "value": "iys"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "smsSend",
      "options": [
        {
          "name": "SMS Send",
          "value": "smsSend",
          "action": "Send a text message",
          "routing": {
            "send": {
              "type": "body",
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "/sms/rest/v2/send",
              "json": true,
              "encoding": "json",
              "returnFullResponse": true
            }
          },
          "description": "Send a text message to a phone number"
        },
        {
          "name": "SMS Status Query",
          "value": "smsStatusQuery",
          "action": "Check SMS status",
          "routing": {
            "send": {
              "type": "body",
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "/sms/rest/v2/report",
              "json": true,
              "encoding": "json",
              "returnFullResponse": true
            }
          },
          "description": "Check delivery status of a sent SMS using Job ID"
        },
        {
          "name": "SMS Inbox Query",
          "value": "smsInboxQuery",
          "action": "Get inbox messages",
          "routing": {
            "request": {
              "url": "/sms/rest/v2/inbox",
              "method": "GET",
              "returnFullResponse": true
            }
          },
          "description": "Retrieve received SMS messages from inbox"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "sms"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "iysAdd",
      "options": [
        {
          "name": "Add IYS Address",
          "value": "iysAdd",
          "action": "Add phone number or email",
          "routing": {
            "send": {
              "type": "body",
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "/iys/add",
              "json": true,
              "encoding": "json",
              "returnFullResponse": true
            }
          },
          "description": "This service is used to add a phone number or email address to IYS"
        },
        {
          "name": "Query IYS Address",
          "value": "iysQuery",
          "action": "Query phone number or email",
          "routing": {
            "send": {
              "type": "body",
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "/iys/search",
              "json": true,
              "encoding": "json",
              "returnFullResponse": true
            }
          },
          "description": "This service is used to add a phone number or email address to IYS"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "iys"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "SMS Send",
      "value": "smsSend",
      "action": "Send a text message",
      "routing": {
        "send": {
          "type": "body",
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "/sms/rest/v2/send",
          "json": true,
          "encoding": "json",
          "returnFullResponse": true
        }
      },
      "description": "Send a text message to a phone number"
    },
    {
      "name": "SMS Status Query",
      "value": "smsStatusQuery",
      "action": "Check SMS status",
      "routing": {
        "send": {
          "type": "body",
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "/sms/rest/v2/report",
          "json": true,
          "encoding": "json",
          "returnFullResponse": true
        }
      },
      "description": "Check delivery status of a sent SMS using Job ID"
    },
    {
      "name": "SMS Inbox Query",
      "value": "smsInboxQuery",
      "action": "Get inbox messages",
      "routing": {
        "request": {
          "url": "/sms/rest/v2/inbox",
          "method": "GET",
          "returnFullResponse": true
        }
      },
      "description": "Retrieve received SMS messages from inbox"
    },
    {
      "name": "Add IYS Address",
      "value": "iysAdd",
      "action": "Add phone number or email",
      "routing": {
        "send": {
          "type": "body",
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "/iys/add",
          "json": true,
          "encoding": "json",
          "returnFullResponse": true
        }
      },
      "description": "This service is used to add a phone number or email address to IYS"
    },
    {
      "name": "Query IYS Address",
      "value": "iysQuery",
      "action": "Query phone number or email",
      "routing": {
        "send": {
          "type": "body",
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "/iys/search",
          "json": true,
          "encoding": "json",
          "returnFullResponse": true
        }
      },
      "description": "This service is used to add a phone number or email address to IYS"
    }
  ]

npm_readme:
  # n8n-nodes-netgsm

  This is the official Netgsm n8n community node. This node integrates with the SMS Gateway to send messages directly from n8n workflows.

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

  [Installation](#installation)  
  [Operations](#operations)  
  [Credentials](#credentials)  <!-- delete if no auth needed -->  
  [Compatibility](#compatibility)  
  [Usage](#usage)  <!-- delete if not using this section -->  
  [Resources](#resources)  
  [Version history](#version-history)  <!-- delete if not using this section -->  

  ## Installation

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

  ## Operations

  ### SMS
  - SMS Send
  - SMS Status Query
  - List SMS Inbox

  ## Credentials

  This node requires an API Username and Password from Netgsm, You can generate one by going to your [Dashboard](https://portal.netgsm.com.tr/webportal/abonelikislemleri/yetkilendirme/set).

  ## Compatibility

  This node has been tested with n8n 1.94.0

  ## Usage

  [To be completed]

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  * [Netgsm Documentation](https://www.netgsm.com.tr/dokuman)

  ## Version history

  ### 0.1.0
  - Initial version of the project

ai_documentation_summary:
  {"purpose":"The Netgsm node allows users to interact with the Netgsm SMS Gateway API to send SMS messages, query SMS status, and list incoming SMS messages within n8n workflows.","capabilities":["Send SMS messages","Query SMS status","List SMS inbox"],"authentication":"API Username and Password required, which can be generated from the Netgsm Dashboard (https://portal.netgsm.com.tr/webportal/abonelikislemleri/yetkilendirme/set)","commonUseCases":["Sending automated SMS notifications","Tracking SMS delivery status","Monitoring incoming SMS messages"],"limitations":[],"relatedNodes":["SMS nodes","API integration nodes"]}


