Mysql email verification with BillionVerify
MySQL is one of the world's most widely used relational databases, powering applications across every industry. Many systems store user or customer email addresses in MySQL tables. BillionVerify integrates into data pipelines to validate those addresses before they are written to the database or used in outbound communication, preventing invalid data from accumulating at the source.
Why verify before the send
Email addresses stored in MySQL often come from multiple sources β web forms, imports, API integrations β each with varying data quality. Verifying before storage means your database stays clean from day one. Downstream systems that query those addresses for sending can then trust the data without additional scrubbing.
Ready-to-use n8n workflow
Import this workflow into n8n β it verifies every address with BillionVerify before Mysql sends, so only deliverable contacts are emailed. Install the BillionVerify community node first, then add your API key.
{
"name": "Verify emails before sending in MySQL + 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 MySQL contacts",
"message": "Replace this Gmail send with your MySQL 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 Mysql
Ready-to-use workflows that verify emails before Mysql sends.
How it works
- 1
Set up a BillionVerify verification step in your n8n workflow between the data source and your MySQL write operation.
- 2
For real-time flows, trigger verification on each new email value before the INSERT or UPDATE query runs.
- 3
BillionVerify returns a structured result including status, sub-status, and flags like is_disposable and is_role.
- 4
Write the verified address and its status fields into the appropriate MySQL columns.
- 5
For existing data, use the bulk REST API to process large result sets and update rows with a verification_status column.
When to use this
Validate on INSERT before writing to the database
Intercept new email addresses in your data pipeline before they are committed to MySQL. BillionVerify checks each one for validity, disposable domains, and MX reachability, ensuring only clean records enter the table.
Batch-clean existing email columns
Export email address columns from MySQL, run them through BillionVerify's bulk API, and write verification status back as a column. This gives downstream applications a reliable signal for every stored address.
Enrich user records with verification metadata
Store verification results β valid, invalid, catch-all, disposable β alongside each email in MySQL. Applications can then filter by these fields when building send lists or segmenting users.
FAQ
Can I use BillionVerify directly in a MySQL trigger or stored procedure?
MySQL itself cannot call external HTTP APIs, but you can place the BillionVerify step in the application layer or an n8n workflow that sits between your form or ETL pipeline and the database write.
How should I store verification results in MySQL?
Add columns such as email_status (ENUM: valid, invalid, risky, unknown) and email_verified_at (DATETIME). This lets you filter send lists and audit verification freshness in a single query.
How often should I re-verify stored email addresses?
Email validity changes over time as mailboxes are closed or migrated. Re-verifying addresses older than 90 days before major send campaigns is a good baseline practice.
Does BillionVerify support bulk verification via the REST API?
Yes. You can submit a batch of addresses through the bulk endpoint, poll for results, and then run an UPDATE query to write the statuses back into your MySQL table.
Verify emails in Mysql
Create a free account, grab your API key, and stop bounces before they happen.
Get started free