← All Developer Tools

Browserless email verification with BillionVerify

Browserless provides headless browser infrastructure as a service, letting developers run Puppeteer and Playwright scripts in the cloud without managing browsers. When those scripts collect email addresses from the web, BillionVerify adds a verification layer so only valid addresses enter your systems.

Why verify before the send

Headless scraping at scale is efficient but indiscriminate β€” it collects valid addresses alongside typos, defunct domains, and disposable inboxes. BillionVerify gives your Browserless pipeline an automated quality filter, removing bad addresses before they inflate bounce rates or trigger spam filters on your sending domain.

Ready-to-use n8n workflow

Import this workflow into n8n β€” it verifies every address with BillionVerify before Browserless sends, so only deliverable contacts are emailed. Install the BillionVerify community node first, then add your API key.

verify-emails-in-browserless.json
{
  "name": "Verify emails before sending in Browserless + BillionVerify",
  "nodes": [
    {
      "parameters": {},
      "type": "n8n-nodes-base.manualTrigger",
      "typeVersion": 1,
      "position": [
        240,
        300
      ],
      "name": "When clicking β€˜Test workflow’"
    },
    {
      "parameters": {
        "assignments": {
          "assignments": [
            {
              "id": "email-field",
              "name": "email",
              "value": "jane@example.com",
              "type": "string"
            }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [
        460,
        300
      ],
      "name": "Get contacts"
    },
    {
      "parameters": {
        "sendTo": "={{ $json.email }}",
        "subject": "Message for Browserless contacts",
        "message": "Replace this Gmail send with your Browserless node β€” only deliverable, verified contacts reach it.",
        "options": {}
      },
      "type": "n8n-nodes-base.gmail",
      "typeVersion": 2.1,
      "position": [
        900,
        300
      ],
      "name": "Send email",
      "webhookId": "",
      "credentials": {
        "gmailOAuth2": {
          "id": "",
          "name": "Gmail account"
        }
      }
    },
    {
      "parameters": {
        "operation": "verify",
        "email": "={{ $json.email }}",
        "additionalOptions": {}
      },
      "type": "n8n-nodes-billionverify.billionVerify",
      "typeVersion": 1,
      "position": [
        540,
        300
      ],
      "name": "Verify Email (BillionVerify)",
      "credentials": {
        "billionVerifyApi": {
          "id": "",
          "name": "BillionVerify account"
        }
      }
    },
    {
      "parameters": {
        "conditions": {
          "options": {
            "caseSensitive": true,
            "leftValue": "",
            "typeValidation": "loose"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "is-deliverable",
              "leftValue": "={{ $json.is_deliverable }}",
              "rightValue": "",
              "operator": {
                "type": "boolean",
                "operation": "true",
                "singleValue": true
              }
            }
          ]
        }
      },
      "type": "n8n-nodes-base.if",
      "typeVersion": 2,
      "position": [
        720,
        300
      ],
      "name": "IF deliverable"
    }
  ],
  "connections": {
    "When clicking β€˜Test workflow’": {
      "main": [
        [
          {
            "node": "Get contacts",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get contacts": {
      "main": [
        [
          {
            "node": "Verify Email (BillionVerify)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Verify Email (BillionVerify)": {
      "main": [
        [
          {
            "node": "IF deliverable",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "IF deliverable": {
      "main": [
        [
          {
            "node": "Send email",
            "type": "main",
            "index": 0
          }
        ],
        []
      ]
    }
  },
  "settings": {
    "executionOrder": "v1"
  }
}

Workflow templates with Browserless

Ready-to-use workflows that verify emails before Browserless sends.

How it works

  1. 1

    Browserless executes Puppeteer or Playwright scripts that extract email addresses from web pages.

  2. 2

    Collected addresses are passed to BillionVerify via the REST API, n8n community node, or Integrately.

  3. 3

    BillionVerify runs syntax validation, DNS/MX lookup, SMTP probing, and disposable domain detection.

  4. 4

    Each address receives a deliverability classification: valid, invalid, catch-all, disposable, or role.

  5. 5

    Your downstream pipeline stores or acts on valid addresses only, with invalid ones logged for auditing.

When to use this

Filter emails from large-scale scraping jobs

After Browserless scripts harvest contact emails across many pages, submit the collected addresses to BillionVerify in bulk to strip out invalid, expired, and disposable entries before writing to your database.

Validate emails before automated notifications or outreach

When Browserless automations trigger email notifications or outreach based on scraped data, verify each recipient address with BillionVerify first to avoid hard bounces and protect your sending infrastructure.

FAQ

How do I call BillionVerify from a Browserless script?

Make an HTTP request to BillionVerify's REST API from within your Puppeteer or Playwright script, or post-process collected emails through an n8n workflow or Integrately automation after each scraping run.

What is SMTP probing and why does it matter?

SMTP probing connects to the mail server to confirm a specific mailbox accepts messages without actually sending an email. It is the most reliable way to detect non-existent addresses that pass DNS checks.

Can BillionVerify handle the volume that Browserless jobs produce?

Yes. BillionVerify supports high-volume bulk verification through the REST API, making it well suited for the large email lists that headless browser jobs can generate in a single run.

Does BillionVerify detect temporary or throwaway email addresses?

Yes. BillionVerify maintains an up-to-date list of disposable and temporary email domain providers and flags any address on those domains, regardless of whether the mailbox currently exists.

Verify emails in Browserless

Create a free account, grab your API key, and stop bounces before they happen.

Get started free