← All Email Marketing

Ghost email verification with BillionVerify

Ghost is an open-source publishing platform built for professional creators and newsletters, with built-in membership and email distribution features. BillionVerify helps Ghost publishers maintain high deliverability by filtering invalid, disposable, and undeliverable subscriber emails before they reach your sending queue.

Why verify before the send

A Ghost newsletter is only as effective as its subscriber list. Unverified emails β€” whether from bots, mistyped entries, or disposable addresses β€” inflate your list size while dragging down open rates and deliverability scores. BillionVerify removes these risks so your emails land in real inboxes.

Ready-to-use n8n workflow

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

verify-emails-in-ghost.json
{
  "name": "Verify emails before sending in Ghost + 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 Ghost contacts",
        "message": "Replace this Gmail send with your Ghost 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 Ghost

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

How it works

  1. 1

    Connect BillionVerify to your Ghost workflows using the n8n community node, Integrately's 1-click setup, or the BillionVerify REST API.

  2. 2

    Trigger verification on Ghost member creation events via webhooks.

  3. 3

    BillionVerify checks each email for validity, SMTP deliverability, disposable provider status, role address flags, and catch-all domains.

  4. 4

    Allow only verified subscribers to remain active; flag or remove problematic addresses from your Ghost member database.

  5. 5

    Run scheduled bulk verification passes to catch addresses that have gone stale over time.

When to use this

New Subscriber Email Validation

Whenever someone subscribes to your Ghost publication, immediately verify their email with BillionVerify. Block disposable and invalid addresses from joining your member list, keeping your audience genuine from day one.

Subscriber List Hygiene

Periodically export your Ghost subscriber list and run it through BillionVerify's bulk verification. Remove or suppress members whose addresses have become invalid to protect your email deliverability scores.

Import Verification Before Migration

When migrating an existing audience to Ghost, validate all email addresses with BillionVerify first. Only import contacts with verified, deliverable addresses to start with a clean, high-quality list.

FAQ

Can I verify Ghost subscriber emails in real time at signup?

Yes. Using Ghost webhooks with the BillionVerify n8n node or REST API, you can validate each new subscriber's email the moment they join and take immediate action on invalid addresses.

Will removing invalid subscribers affect my Ghost analytics?

It will reduce raw subscriber counts but improve meaningful metrics like open rate and click rate, which more accurately reflect your engaged audience and support better deliverability.

How does BillionVerify detect disposable email addresses?

BillionVerify maintains a continuously updated database of disposable email providers β€” services that generate temporary inboxes β€” and flags any subscriber using one so you can exclude them.

What is a catch-all address and why should I care?

A catch-all domain accepts every email sent to it regardless of whether the mailbox exists. BillionVerify identifies these so you can choose to treat them with caution rather than assuming they are deliverable.

Verify emails in Ghost

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

Get started free