npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

n8n-nodes-vendemail

v1.0.3

Published

n8n community node for the Vend Email API — supports Domains, Forwarders, Safe/Unsafe Senders, and Tags with smart pagination and search

Downloads

421

Readme

n8n-nodes-vendemail

Vend Email n8n License Version

n8n community node for the Vend Email API — supports Domains, Forwarders, Safe/Unsafe Senders, and Tags with advanced pagination control.

n8n is a fair-code licensed workflow automation platform.

✨ New in v1.0.2

  • Smart Pagination for Get All operations
  • Page Control - Fetch specific pages (30 items per page)
  • Max Pages Limiter - Avoid rate limits with configurable max pages
  • Tested with 3000+ forwarders - Reliable bulk data fetching

✅ Verified Authentication

This node uses Bearer Token authentication, tested and verified with Vend Email API:

curl -X GET "https://www.vend.email/api/v1/domains" \
  -H "Authorization: Bearer ve_token_YOUR_API_KEY" \
  -H "Content-Type: application/json"

Installation

Community Nodes (Recommended)

  1. Go to Settings > Community Nodes in your n8n instance
  2. Select Install
  3. Enter n8n-nodes-vendemail in the Enter npm package name field
  4. Agree to the risks and click Install

After installation, restart n8n to see the Vend Email node in your node palette.

Manual Installation

cd ~/.n8n/custom
npm install n8n-nodes-vendemail

Then restart n8n:

n8n start

Credentials

You need a Vend Email API Key to use this node:

  1. Log in to your Vend Email account
  2. Navigate to Account Settings > API Keys
  3. Generate a new API key (format: ve_token_...)
  4. Copy the API key to use in n8n credentials

Setting up credentials in n8n:

  1. Go to Credentials > New
  2. Search for Vend Email API
  3. Enter your API Key (starting with ve_token_)
  4. (Optional) Change the API URL if using a custom endpoint
  5. Click Save

Supported Resources & Operations

🏛️ Domain

  • Get All: Retrieve all domains in your account
    • Return All: Fetch all domains across multiple pages
    • Page: Get a specific page (30 items per page)
    • Max Pages: Limit total pages when using Return All
  • Get: Get a specific domain by ID

Pagination Example:

// Get page 5 only
{
  "resource": "domain",
  "operation": "getAll",
  "returnAll": false,
  "page": 5
}

// Get all domains (max 100 pages = 3000 items)
{
  "resource": "domain",
  "operation": "getAll",
  "returnAll": true,
  "maxPages": 100
}

📨 Forwarder

  • Create: Create a new email forwarder
  • Get All: List all forwarders with pagination control
    • Return All: Auto-fetch all pages until completion
    • Page: Fetch specific page number
    • Max Pages: Safety limit for bulk fetching (default: 100, max: 500)
  • Get: Get a specific forwarder by ID
  • Update: Update an existing forwarder
  • Delete: Delete a forwarder

Pagination Features:

  • Each page returns 30 items
  • Last page returns < 30 items
  • Tested with 3000+ forwarders

Create Example:

{
  "local_part": "sales",
  "domain_id": 1,
  "recipients": "[email protected], [email protected]",
  "name": "Sales Team",
  "title": "Sales Inquiries",
  "description": "Forwards all sales emails to the team"
}

Pagination Examples:

// Get page 26 (useful for testing last page)
{
  "resource": "forwarder",
  "operation": "getAll",
  "returnAll": false,
  "page": 26
}

// Get all forwarders (max 200 pages = 6000 items)
{
  "resource": "forwarder",
  "operation": "getAll",
  "returnAll": true,
  "maxPages": 200
}

✅ Safe Sender (Whitelist)

  • Create: Add an email to the whitelist
  • Get All: List all safe senders with pagination
  • Get: Get a specific safe sender by ID
  • Delete: Remove an email from the whitelist

Use Case: Ensure important emails from trusted partners always get through.

⛔ Unsafe Sender (Blacklist)

  • Create: Add an email to the blacklist
  • Get All: List all unsafe senders with pagination
  • Get: Get a specific unsafe sender by ID
  • Delete: Remove an email from the blacklist

Use Case: Block spam or unwanted senders permanently.

🏷️ Tag

  • Create: Create a new tag
  • Get All: List all tags with pagination
  • Get: Get a specific tag by ID
  • Update: Update an existing tag
  • Delete: Delete a tag

Use Case: Organize and categorize your forwarders.

Pagination Guide

Understanding API Pagination

Vend Email API returns 30 items per page:

  • Page 1: Items 1-30 (URL: /api/v1/forwarders)
  • Page 2: Items 31-60 (URL: /api/v1/forwarders?page=2)
  • Last page: < 30 items (automatically detected)

Use Cases

1. Fetch Specific Page

When you need a specific range of items:

{
  "returnAll": false,
  "page": 10
}
// Returns: Items 271-300

2. Get All Items (Small Dataset)

For accounts with < 3000 items:

{
  "returnAll": true,
  "maxPages": 100
}
// Returns: All items (stops automatically at last page)

3. Get All Items (Large Dataset)

For accounts with 3000+ items:

{
  "returnAll": true,
  "maxPages": 500
}
// Returns: Up to 15,000 items (500 × 30)

4. Safe Bulk Fetching

Avoid rate limits with conservative settings:

{
  "returnAll": true,
  "maxPages": 50
}
// Returns: Up to 1,500 items safely

Performance Tips

  • Default Max Pages: 100 (covers most use cases)
  • Recommended Max: 200 for large accounts
  • Rate Limit Safe: Set Max Pages to 50-100
  • Processing Time: ~0.5s per page (estimate 50s for 100 pages)

Example Workflows

1. Create Email Forwarder for Support Team

Node Configuration:

{
  "resource": "forwarder",
  "operation": "create",
  "localPart": "support",
  "domainId": 1,
  "recipients": "[email protected], [email protected]",
  "additionalFields": {
    "name": "Support Team",
    "title": "Customer Support",
    "description": "All customer support inquiries",
    "tagsString": "support, priority"
  }
}

2. Bulk Export All Forwarders

Node Configuration:

{
  "resource": "forwarder",
  "operation": "getAll",
  "returnAll": true,
  "maxPages": 200
}

Next Step: Connect to Google Sheets or CSV export node.

3. Add Trusted Partner to Whitelist

Node Configuration:

{
  "resource": "safeSender",
  "operation": "create",
  "email": "[email protected]"
}

4. Block Spam Domain

Node Configuration:

{
  "resource": "unsafeSender",
  "operation": "create",
  "email": "[email protected]"
}

5. Monitor Specific Page Range

Loop through pages 1-10:

// Use Loop node with counter 1-10
{
  "resource": "forwarder",
  "operation": "getAll",
  "returnAll": false,
  "page": "{{$json.counter}}"
}

Common Use Cases

🏢 Business Email Management

  • Create department-specific forwarders (sales@, support@, info@)
  • Route emails to multiple team members
  • Tag forwarders by priority or category
  • Bulk export all forwarders for backup

🔒 Email Security

  • Whitelist trusted business partners
  • Blacklist known spam sources
  • Manage sender reputation
  • Audit all safe/unsafe senders

🤖 Automation Workflows

  • Auto-create forwarders when new team members join
  • Sync whitelist/blacklist with CRM
  • Monitor and alert on new domains
  • Scheduled backup of all forwarders

📊 Data Management

  • Export all forwarders to CSV/Google Sheets
  • Fetch specific page ranges for processing
  • Paginated data sync with external systems

API Reference

This node implements the Vend Email API.

Base URL: https://www.vend.email/api/v1

Authentication: Bearer Token in Authorization header

Pagination: Query parameter ?page=N (N starts from 1)

Compatibility

  • ✅ Tested with n8n version 1.x
  • ✅ n8n API version: 1
  • ✅ Node.js 14+
  • ✅ TypeScript 5.3.3
  • ✅ Handles 3000+ items efficiently

Development

Prerequisites

  • Node.js (v14 or higher)
  • npm
  • n8n (installed globally or locally)

Setup

git clone https://github.com/hungtidus/n8n-nodes-vendemail.git
cd n8n-nodes-vendemail
npm install

Build

npm run build

This will:

  1. Compile TypeScript files to JavaScript
  2. Copy icon to dist folder
  3. Generate declaration files

Local Development & Testing

# Link the package
npm link

# Go to n8n custom nodes directory
cd ~/.n8n/custom

# Link the package
npm link n8n-nodes-vendemail

# Start n8n
n8n start

Testing Pagination

Test pagination with curl:

# Get page 1 (default)
curl -X GET "https://www.vend.email/api/v1/forwarders" \
  -H "Authorization: Bearer YOUR_API_KEY"

# Get page 2
curl -X GET "https://www.vend.email/api/v1/forwarders?page=2" \
  -H "Authorization: Bearer YOUR_API_KEY"

# Get last page (example: page 26)
curl -X GET "https://www.vend.email/api/v1/forwarders?page=26" \
  -H "Authorization: Bearer YOUR_API_KEY"

Testing Authentication

Test the API connection with curl:

curl -X GET "https://www.vend.email/api/v1/domains" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -v

Expected response: HTTP 200 with JSON array of domains.

Linting

npm run lint
npm run lint:fix

Format Code

npm run format

Troubleshooting

Authentication Fails (401 Unauthorized)

Problem: API returns 401 error

Solution:

  1. Verify API key starts with ve_token_
  2. Check API key is still valid in Vend Email dashboard
  3. Ensure no extra spaces in the API key field

Pagination Returns 750 Items Instead of All

Problem: Get All only returns 750 items (25 pages)

Solution:

  1. Increase Max Pages to 200 or higher
  2. Check if API has rate limiting
  3. Use Page mode to fetch specific ranges

Node Not Appearing in n8n

Problem: Can't find Vend Email node in palette

Solution:

  1. Restart n8n after installation
  2. Check ~/.n8n/nodes directory contains the package
  3. Verify package.json n8n section is correct

Build Errors

Problem: TypeScript compilation fails

Solution:

# Clean and rebuild
rm -rf dist node_modules package-lock.json
npm install
npm run build

Version History

1.0.2 (2026-03-08)

  • NEW: Smart pagination for Get All operations
  • NEW: Page parameter to fetch specific pages
  • NEW: Max Pages limiter to control bulk fetching
  • FIXED: Pagination now fetches all items correctly (tested with 3000+ forwarders)
  • IMPROVED: Better performance with configurable page limits
  • DOCS: Updated README with pagination guide

1.0.1 (2026-03-08)

  • ✅ Bug fixes and stability improvements

1.0.0 (2026-03-08)

  • ✅ Initial release
  • ✅ Support for Domains, Forwarders, Safe/Unsafe Senders, and Tags
  • ✅ Full CRUD operations for supported resources
  • ✅ Verified Bearer Token authentication
  • ✅ Comprehensive error handling
  • ✅ TypeScript support

Resources

License

MIT

Author

Hung Nguyen

Support

If you encounter any issues or have questions:

  1. Check the GitHub Issues
  2. Create a new issue if your problem isn't already listed
  3. Refer to the Vend Email API documentation
  4. Test authentication with curl commands in this README

Contributing

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

Contribution Guidelines

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Acknowledgments


Made with ❤️ for the n8n community