No-code recipes

Zapier, Make, n8n and Google Sheets can all call the API through their HTTP request steps. The recipe is the same everywhere: POST to https://api.email-validation.org/v1/validate with a JSON body, the API key in the Authorization header, and the JSON answer mapped into later steps. Never paste the key into a URL or a query parameter: such requests are refused.

SettingValue
MethodPOST
URLhttps://api.email-validation.org/v1/validate
HeaderAuthorization: Bearer ev_live_…
HeaderContent-Type: application/json
Body (JSON){"email": "<the address from an earlier step>"}
Fields to usestatus, reason, action, did_you_mean, credits_used

Use a dedicated API key for each tool, with a daily credit cap, so a looping automation cannot spend more than you expect. Test with accepted@sandbox.email-validation.org and the other test addresses: they are free.

Zapier

  1. Add an action step with the Webhooks by Zapier app and choose Custom Request (or POST).
  2. Method POST, URL https://api.email-validation.org/v1/validate.
  3. Data: {"email": "…"}, inserting the email field from your trigger.
  4. Headers: Authorization = Bearer ev_live_… and Content-Type = application/json.
  5. Test the step, then use the returned status and action in a Filter or Paths step, for example "only continue when status is deliverable".

Make

  1. Add the HTTP app's Make a request module.
  2. URL https://api.email-validation.org/v1/validate, method POST.
  3. Headers: Authorization = Bearer ev_live_….
  4. Body type Raw, content type JSON (application/json), request content {"email": "…"} with the address mapped in.
  5. Turn on Parse response so status, reason and action can be mapped in later modules or a router filter.

n8n

  1. Add an HTTP Request node with method POST and URL https://api.email-validation.org/v1/validate.
  2. Authentication: Generic Credential Type → Header Auth, with name Authorization and value Bearer ev_live_…. Storing the key as a credential keeps it out of the workflow itself.
  3. Send Body: JSON, with a field email set to an expression such as {{ $json.email }}.
  4. Follow with an If or Switch node on status or action.

Google Sheets

Spreadsheet formulas cannot send an Authorization header, so use a small Apps Script that runs from a menu and writes the results next to your addresses.

  1. In your sheet, open Extensions → Apps Script and paste the script below.
  2. Under Project Settings → Script properties, add EV_API_KEY with your key. It stays out of the sheet.
  3. Reload the sheet, select the cells with addresses, and choose Email validation → Validate selected cells. Status, reason and action appear in the three columns to the right.
const API_URL = 'https://api.email-validation.org/v1/validate';

function onOpen() {
  SpreadsheetApp.getUi()
    .createMenu('Email validation')
    .addItem('Validate selected cells', 'validateSelection')
    .addToUi();
}

function validateSelection() {
  const key = PropertiesService.getScriptProperties().getProperty('EV_API_KEY');
  if (!key) throw new Error('Add EV_API_KEY under Project Settings > Script properties.');
  const range = SpreadsheetApp.getActiveRange();
  const rows = range.getValues().map(([email]) => {
    if (!email) return ['', '', ''];
    const res = UrlFetchApp.fetch(API_URL, {
      method: 'post',
      contentType: 'application/json',
      headers: { Authorization: 'Bearer ' + key },
      payload: JSON.stringify({ email: String(email).trim() }),
      muteHttpExceptions: true,
    });
    const body = JSON.parse(res.getContentText());
    if (res.getResponseCode() !== 200) return ['error', body.error.code, ''];
    return [body.status, body.reason, body.action];
  });
  range.offset(0, 1, rows.length, 3).setValues(rows);
}

Run it from the menu rather than as a cell formula: formulas recalculate often, and each recalculation would check (and pay for) the addresses again. Apps Script also limits how long a run may take and how many requests a day it may send, so for long lists upload the file as a bulk job instead.

Bulk lists from automations

For lists, send one request to POST https://api.email-validation.org/v1/bulk with {"emails": [...]} (up to 100,000 addresses), then poll GET https://api.email-validation.org/v1/bulk/{id} or receive a webhook when the job is done. See the bulk jobs API.

Updated · Maintained by the email-validation.org team