---
type: "firecrawl-provider"
description: "Verify one email address, including catch-all and gateway-protected mailboxes."
use_when: "Verify one email address, including catch-all and gateway-protected mailboxes."
categories: "People"
capabilities: 1
credits_per_call: 2
---
# BounceBan on Firecrawl Alexandria

Verify one email address, including catch-all and gateway-protected mailboxes.

- Categories: People
- Category index: [People category](https://alexandria.firecrawl.dev/agents/categories/people)
- Provider key: `bounceban`
- Access: Firecrawl credits
- Cost: 2 credits per call

## More

- [Human guide](https://www.firecrawl.dev/app/alexandria/bounceban)
- [OpenAPI spec](https://alexandria.firecrawl.dev/agents/providers/bounceban/openapi.json)

## 1. Choose this provider when

Verify one email address, including catch-all and gateway-protected mailboxes.

## 2. Minimal request

Call `POST https://api.firecrawl.dev/v2/scrape` with `{ alexandria: { provider, capability, options } }`. For a batch, send `{ alexandria: [...] }` with up to 10 calls.

```json
{
  "provider": "bounceban",
  "capability": "people/email-verify",
  "options": {
    "email": "<email>"
  }
}
```

## 3. Add provider options

Use only the options needed for the task:

- `email` (string, required): The address to verify. Example: `<email>`
- `mode` (string): regular (default) or deepverify. deepverify assumes the domain is the person's current employer's, which helps with accept-all domains. Example: `regular`

## 4. Request through your preferred interface

### JavaScript

```javascript
const result = await firecrawl.scrape({
  alexandria: {
    provider: "bounceban",
    capability: "people/email-verify",
    options: {
      email: "<email>",
    },
  },
});
```

### Python

```python
result = firecrawl.scrape_alexandria({
  "provider": "bounceban",
  "capability": "people/email-verify",
  "options": {
    "email": "<email>"
  }
})
```

### cURL

```sh
curl https://api.firecrawl.dev/v2/scrape \
  -H "Authorization: Bearer $FIRECRAWL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "alexandria": {
    "provider": "bounceban",
    "capability": "people/email-verify",
    "options": {
      "email": "<email>"
    }
  }
}'
```

### CLI

```sh
firecrawl scrape 'bounceban/people/email-verify' \
  --options '{"email":"<email>"}'
```


### MCP

Call the FCX MCP retrieve tool with this object:

```json
{
  "provider": "bounceban",
  "capability": "people/email-verify",
  "options": {
    "email": "<email>"
  }
}
```

Ask for only the returned fields needed by the task.

## 5. Full request shape

```json
{
  "provider": "bounceban",
  "capability": "people/email-verify",
  "options": {
    "email": "<email>"
  }
}
```

## 6. Response data

The response includes `success`, `provider`, `capability`, `creditsCost` and `data`. This example shows the provider payload in `data`:

```json
{
  "id": "<id>",
  "status": "<status>",
  "email": "<email>",
  "result": "<result>",
  "score": 0,
  "is_disposable": false,
  "is_accept_all": false,
  "is_role": false,
  "is_free": false,
  "mx_records": [],
  "smtp_provider": "<smtp_provider>",
  "mode": "<mode>",
  "verify_at": "<verify_at>",
  "credits_consumed": 0
}
```

## API reference-derived contract

The following capability contract is generated from the same normalized Alexandria API reference exposed in the API spec.

### Email verifier

- Capability: `people/email-verify`
- Description: One verification. status is success with a result, or verifying with only id when BounceBan needs more than 15 seconds. result is deliverable, risky, undeliverable, or unknown.
- Instructions: Check whether one email address is deliverable, including catch-all and gateway-protected mailboxes. 5 Firecrawl credits per call. Answers within about 15 seconds; a slower check comes back as status verifying with an id and is still charged. A retry for the final result is a new, charged call.
- Cost: 2 credits per call
- Capability file: [Email verifier](https://alexandria.firecrawl.dev/agents/providers/bounceban/people/email-verify)

Accepted options:
- `email` (string, required): The address to verify. Example: `<email>`
- `mode` (string): regular (default) or deepverify. deepverify assumes the domain is the person's current employer's, which helps with accept-all domains. Example: `regular`

Response schema example:
```json
{
  "id": "<id>",
  "status": "<status>",
  "email": "<email>",
  "result": "<result>",
  "score": 0,
  "is_disposable": false,
  "is_accept_all": false,
  "is_role": false,
  "is_free": false,
  "mx_records": [],
  "smtp_provider": "<smtp_provider>",
  "mode": "<mode>",
  "verify_at": "<verify_at>",
  "credits_consumed": 0
}
```
