<!-- BusyBot node reference — https://busybot.net/tools/mailcheck/ -->

> Node: Mailcheck (`mailcheck`) · Action · v1
> Category: Marketing · Credentials: Mailcheck API (`mailcheckApi`)
> Updated: 2026-08-16

# Mailcheck

> Verify email address deliverability and trust score.

## Overview

Mailcheck is an email verification service that checks the deliverability, trust score and quality of an email address. This tool calls the Mailcheck.co API to validate one email address per input item and returns what the service knows about it: a trust rating, whether the address belongs to a disposable provider, whether the domain has MX records, whether the SMTP server accepts the address, whether the domain is catch-all, and any accounts associated with the address.

**Category:** Marketing  
**Tool Name:** `mailcheck`  
**Version:** 1

**Appearance:** Icon: `lucide-MailCheck` | Color: `#4CAF50`

## Node Type

**Action** — processes input items and produces output

## Input / Output

| Direction | Port(s) |
|-----------|--------|
| Input | `Input` |
| Output | `Output`, `Error` |

## Credentials

This tool requires **Mailcheck API** credentials.
See the [Credentials Guide](https://busybot.net/credentials/mailcheck-api/) for setup instructions.

### Resources

| Resource | Value |
|----------|-------|
| Email | `email` |

### Operations

| Operation | Value | Description |
|-----------|-------|-------------|
| Check | `check` | Check the deliverability and trust score of an email address. |

### Parameters

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Email | `string` | Yes | — | The email address to verify. Supports expressions like {{ $json.email }}. |
| Max Concurrency | `number` | No | `10` | Maximum number of items to process concurrently. |

## Output Data

One output item per input item. The verification result is **merged onto the input item JSON** — the fields the API returns are added at the top level of the item alongside everything that was already there, so upstream fields survive. Binary data on the input item is forwarded unchanged. No operation on this node fans out into multiple items.

The merged fields come from the Mailcheck.co response and cover:

- the **trust rating** for the address,
- whether the address is **disposable** (a throwaway provider),
- whether the domain publishes **MX records**,
- whether the **SMTP server** accepts mail for the address,
- whether the domain is **catch-all**,
- any **associated accounts** the service has seen for the address.

Because the response is merged rather than nested, reference the fields directly downstream — for example `{{ $json.trust }}` — using the field names shown when you run the node once with a real address.

## Usage Examples

- Verify an email address for deliverability
- Check if an email is from a disposable email provider
- Get the trust score for an email address
- Check if an email has associated GitHub or Microsoft accounts

## Example Configuration

Verify a fixed address:

```json
{
  "type": "mailcheck",
  "parameters": {
    "resource": "email",
    "operation": "check",
    "email": "user@example.com"
  }
}
```

Verify the address carried on each incoming item:

```json
{
  "type": "mailcheck",
  "parameters": {
    "resource": "email",
    "operation": "check",
    "email": "{{ $json.email }}"
  }
}
```

Verify a large list, with concurrency turned down to stay inside your API rate limit:

```json
{
  "type": "mailcheck",
  "parameters": {
    "resource": "email",
    "operation": "check",
    "email": "{{ $json.contact.emailAddress }}",
    "maxConcurrency": 5
  }
}
```

### Error Handling

| Mode | Behavior |
|------|----------|
| **stop** | Halts workflow on first error |
| **continue** | Skips failed items, passes successful ones through |
| **errorPort** | Routes failed items to Error output port |

## Tips

Verify an email address for deliverability, disposable status, and trust score using the Mailcheck.co API.

- One API call is made per input item, so a list of 500 addresses costs 500 calls. Use **Max Concurrency** to keep the request rate within your plan's limit.
- An address that fails verification is not an error — the node still returns a result describing why. A failed item on the `Error` port means the API call itself failed (bad credentials, rate limit, network), not that the address is invalid.
- Filter on the returned trust and disposable fields with a Switch or Filter node to split good addresses from the rest before sending mail.