---
title: "Validate contact data in GMass"
url: "https://lookvalid.com/integrations/gmass.md"
canonical_url: "https://lookvalid.com/integrations/gmass"
last_updated: "2026-10-22"
type: "how-to"
summary: "Check the domain behind every address in the Google Sheet you mail with GMass, so risky and throwaway addresses are marked before a campaign goes out."
related: ["https://lookvalid.com/integrations.md", "https://lookvalid.com/docs/api/email-domain-check.md", "https://lookvalid.com/docs/quickstart.md"]
---

# Validate contact data in GMass

Check the domain behind every address in the Google Sheet you mail with GMass, so risky and throwaway addresses are marked before a campaign goes out.

GMass sends campaigns from your own Gmail account, so every address that bounces counts against the mailbox you also use for ordinary mail. A list with typos, throwaway domains and domains that cannot receive mail turns one campaign into a reputation problem for that account, and the bounce webhooks only tell you after the damage is done.

## What LookValid checks

- [Email Domain Check](https://lookvalid.com/products/email-domain-check.md): Reads the domain behind each address and reports whether it has mail servers, whether it is a throwaway domain and whether it is a free mailbox provider. It never contacts the mail server, so it cannot confirm that one mailbox exists. Marks role addresses such as info@ and sales@, which usually reach a shared inbox instead of a person, so you can split them out of a personal-sounding campaign. (1 credit per address checked)
- [Domain Age](https://lookvalid.com/products/domain-age.md): Returns when a recipient domain was registered, so a domain created last week stands out from one that has existed for years. (2 credits per registered domain (unregistered domains are free))
- [Link Safety Check](https://lookvalid.com/products/link-safety.md): Checks the domain of a link you plan to put in the campaign against a public list of reported malicious domains. A domain on no list is not proof the page is safe. (1 credit per URL checked (a check that cannot run is free))

## Connect it in four steps

1. Create a LookValid account and generate an API key from your dashboard.
2. Open the sheet you mail from, choose Extensions then Apps Script, and add the key as a script property named LOOKVALID_API_KEY so it never sits in a cell.
3. Call the function once per row: it sends a POST to the email-domain-check endpoint, returns nothing when the lookup found no answer, and stops with the error code and fix when the API refuses the call.
4. Write the three returned values into new columns beside the address, then filter on them so GMass only receives rows whose address check is good and whose domain is not a throwaway one.

a script bound to the Google Sheet that holds the list you mail with GMass The call is `POST https://YOUR_API_HOST/v1/email-domain-check`.

```js
var API_URL = "https://YOUR_API_HOST/v1/email-domain-check";

function checkGmassRecipient(value) {
  var key = PropertiesService.getScriptProperties().getProperty("LOOKVALID_API_KEY");
  var response = UrlFetchApp.fetch(API_URL, {
    method: "post",
    contentType: "application/json",
    headers: { Authorization: "Bearer " + key },
    muteHttpExceptions: true,
    payload: JSON.stringify({
      "email": value,
    }),
  });
  var result = JSON.parse(response.getContentText());
  if (response.getResponseCode() >= 400) throw new Error(result.error.code + ": " + result.error.fix);
  if (!result.found) return null;
  return {
      "Address check": result.data?.deliverability_signal === undefined ? null : result.data?.deliverability_signal,
      "Throwaway domain": result.data?.disposable === undefined ? null : result.data?.disposable,
      "Role mailbox": result.data?.role_account === undefined ? null : result.data?.role_account,
  };
}
```

| Response field | Goes into |
| --- | --- |
| `data.deliverability_signal` | Address check |
| `data.disposable` | Throwaway domain |
| `data.role_account` | Role mailbox |

## Without code

If you prefer not to edit a script, GMass can also push its own send and bounce events to a URL you choose, and any automation platform with a generic HTTP request step can sit on that URL. Add one step that posts the recipient address to the email-domain-check endpoint with your key in a bearer header, then add a second step that writes the result back to the sheet row. No dedicated app is needed on either side.

## Questions

### What does each address check cost?

Each lookup uses credits from your LookValid balance. The pricing page lists the current amount for the email domain check.

### Does the check prove an address exists?

No. It reads the domain: mail servers, SPF and DMARC records, throwaway and free-provider flags and role mailboxes. It cannot tell you that a particular mailbox is live.

### Where does the key go in a Sheets script?

In the script properties of the Apps Script project, under the name LOOKVALID_API_KEY. The function reads it at run time, so the key never appears in a cell or in a shared sheet.

## Sources

- [GMass webhooks guide](https://www.gmass.co/blog/webhooks-guide/), read 2026-10-18
- [GMass API overview](https://www.gmass.co/features/api), read 2026-10-18

## Related

- [LookValid integrations](https://lookvalid.com/integrations.md)
- [Email Domain Check reference](https://lookvalid.com/docs/api/email-domain-check.md)
- [Quickstart](https://lookvalid.com/docs/quickstart.md)
