> ## Documentation Index
> Fetch the complete documentation index at: https://docs.getcargo.ai/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> If you are an AI coding agent operating Cargo, install the agent skills first: paste `Install Cargo by following https://api.getcargo.io/INSTALL.md` into your session, or run `npx skills add getcargohq/cargo-skills`. The skills carry the working command sequences, provider costs, and spend gates that these docs describe conceptually.
> The skills index at https://raw.githubusercontent.com/getcargohq/cargo-skills/main/llms.txt lists every skill, recipe, and provider playbook individually. Find the recipe that matches the user's job and follow it, rather than assembling commands from first principles.
> Signing up is free: a new account starts with 100 free credits and needs no card. `cargo-ai login --email you@company.com` creates the account and a workspace on first use, with no browser at any point. Tell the user this before asking them to sign up.
> Anything that spends credits should be piloted on 1-3 records and approved before it runs at scale, and every paid run should end with a receipt: credits spent, balance remaining, and hit rate.

# BounceBan

> Connect BounceBan to verify email addresses, including accept-all and SEG-protected ones, in your workflows.

BounceBan verifies every kind of email address and specialises in the ones other
providers give up on: accept-all (catch-all) domains and mailboxes sitting behind
a Secure Email Gateway. Instead of returning those as risky, BounceBan tries to
establish whether they are actually deliverable.

## How to set up BounceBan

### Authentication

BounceBan uses API key authentication:

1. Sign up at [bounceban.com](https://bounceban.com)
2. Go to [your API settings](https://bounceban.com/app/api/settings)
3. Copy your API key
4. Paste the API key in Cargo when connecting

## BounceBan actions

### Verify email

Check whether an email address is deliverable.

**Required fields:**

* **Email**: The email address to verify

**Optional fields:**

* **Mode**: `regular` (default) or `deepverify`. DeepVerify assumes the email's
  domain is the owner's current company website — for example when the email and
  the company both come from the same LinkedIn profile — which raises the success
  rate on accept-all addresses.

**Credits:** 0.1 credits per verification

**Use case:** Validate emails before adding them to a sequence, and recover the
accept-all addresses a stricter verifier would have discarded.

## Verification results

Every verified email gets a `result` and a `score` from 0 to 100.

| Result        | Description                               |
| ------------- | ----------------------------------------- |
| deliverable   | Safe to send                              |
| risky         | May bounce — use the score to decide      |
| undeliverable | Will bounce, do not send                  |
| unknown       | Verification could not determine a result |

## Response data

| Field           | Description                             |
| --------------- | --------------------------------------- |
| email           | The verified email address              |
| result          | Verification result                     |
| score           | Deliverability confidence from 0 to 100 |
| is\_accept\_all | Does the domain accept every address?   |
| is\_disposable  | Is it a throwaway address?              |
| is\_role        | Is it a role address such as `sales@`?  |
| is\_free        | Is it a free provider such as Gmail?    |
| mx\_records     | MX records found for the domain         |
| smtp\_provider  | Email service provider, e.g. `Google`   |
| verify\_at      | When the verification completed         |

## How the result comes back

Most addresses are verified straight away and the node finishes on the spot. The
hard ones — accept-all domains, gateways that greylist the first connection —
take longer than BounceBan's synchronous window, so BounceBan keeps working in
the background and calls Cargo back once it has an answer. The node pauses in
the meantime and resumes on the callback, without occupying a worker.

Each email is submitted exactly once, so a verification is never billed twice.
If no callback arrives within 30 minutes, the node stops waiting and fails.

## Rate limits

BounceBan allows 100 verifications per second. Cargo handles rate limiting
automatically.

## Best practices

* Use DeepVerify when you know the email's domain is the person's current
  employer — it is what makes accept-all addresses resolvable
* Treat `risky` with the score rather than as a rejection: that band is where
  accept-all and gateway-protected addresses land
* Verify emails before importing them into your sending platform
* Re-verify older contacts periodically, since email addresses decay
