Google Sheets integration
A spreadsheet formula that verifies email.
No add-on, no export. Paste one Apps Script function into your sheet and verify any column with =VERIFYRE(A2), with results cached so recalculation never re-spends a credit.
What it does
Verifyre and Google Sheets, together.
A custom function
=VERIFYRE(cell) works like any other formula and fills down. Pass a second argument for the reason, the score or a typo suggestion.
Cached for six hours
Each verdict is kept in the script cache, so edits elsewhere in the sheet do not trigger new API calls or new charges.
Whole ranges
=VERIFYRE(A2:A500) returns one verdict per row. For very large sheets, export the column and use a bulk job instead.
Setup guide
Set up Google Sheets in 3 steps.
You will need a Verifyre account (free, 100 credits) and an API key from Settings, then API keys.
Add the script
In your sheet open Extensions, Apps Script, delete the sample code and paste the function below. Save the project (any name).
javascript/** * Verifies an email address with Verifyre. * * @param {string|Array} email An address, or a range of addresses. * @param {string} [field] "status" (default), "reason", "reason_text", "score", "did_you_mean" or "normalized". * @return The verdict for each address. * @customfunction */ function VERIFYRE(email, field) { if (Array.isArray(email)) return email.map(function (row) { return row.map(function (cell) { return VERIFYRE(cell, field); }); }); if (!email) return ""; field = (field || "status").toLowerCase(); var key = PropertiesService.getScriptProperties().getProperty("VERIFYRE_KEY"); if (!key) return "Set VERIFYRE_KEY in Project settings > Script properties"; var cache = CacheService.getScriptCache(); var id = "vfy:" + String(email).trim().toLowerCase(); var data = cache.get(id) ? JSON.parse(cache.get(id)) : null; if (!data) { var res = UrlFetchApp.fetch("https://verifyre.co/api/v1/verify?email=" + encodeURIComponent(String(email).trim()), { headers: { Authorization: "Bearer " + key }, muteHttpExceptions: true, }); if (res.getResponseCode() !== 200) return "error " + res.getResponseCode(); data = JSON.parse(res.getContentText()); cache.put(id, JSON.stringify(data), 21600); // 6 hours, so recalculation never re-spends a credit } var v = data[field]; return v === null || v === undefined ? "" : v; }Store your API key
In the Apps Script editor open Project Settings (the cog), scroll to Script Properties, add a property named VERIFYRE_KEY with your key from verifyre.co, and save. The key never sits in a cell.
Use the formula
Back in the sheet, type the formula next to an address and fill down. The first run asks for permission to connect to an external service; approve it once.
text=VERIFYRE(A2) -> deliverable =VERIFYRE(A2, "score") -> 99 =VERIFYRE(A2, "reason_text") -> The mail server confirmed this mailbox exists and accepts mail. =VERIFYRE(A2:A500) -> one verdict per row, in one call per cell =IF(VERIFYRE(A2)="undeliverable", "remove", "keep")
Write-back
What gets written back to your stack.
Verification only reads. Writing results back is a separate step you trigger after reviewing the counts, and nothing is ever deleted without your say-so.
- Values in your sheet, nothing else: status, reason, reason_text, score, did_you_mean or normalized per cell, depending on the second argument.
- Combine with conditional formatting (undeliverable in red) or FILTER() to build a clean export in one more column.
Google Sheets FAQ