---
type: "firecrawl-provider"
description: "Find a verified work email, verify an address, and look up the person behind an email."
use_when: "Find a verified work email, verify an address, or look up the person behind an email.\n\nFind up to 20 verified emails at one company."
categories: "People"
capabilities: 6
pricing: "2–100 credits per billed unit; see each capability for its unit and maximum."
---
# Anymail Finder on Firecrawl Alexandria

Find a verified work email, verify an address, and look up the person behind an email.

- Categories: People
- Category index: [People category](https://alexandria.firecrawl.dev/agents/categories/people)
- Provider key: `anymailfinder`
- Access: Firecrawl credits
- Cost (Email finder): 10 credits per Anymail Finder credit
- Cost (Email from LinkedIn): 2 credits per Anymail Finder credit
- Cost (Decision maker email): 20 credits per Anymail Finder credit
- Cost (Email verifier): 2 credits per Anymail Finder credit
- Cost (Reverse email lookup): 100 credits per Anymail Finder credit
- Cost (Company emails): 10 credits per Anymail Finder credit

## More

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

## Capabilities

- [Email finder](https://alexandria.firecrawl.dev/agents/providers/anymailfinder/people/email-find): One search. email and valid_email are null when email_status is not valid. credits_charged is 1 on a new verified hit and 0 otherwise.
- [Email from LinkedIn](https://alexandria.firecrawl.dev/agents/providers/anymailfinder/people/email-linkedin): One search. person_company_name, person_full_name, and person_job_title are populated on a valid hit. credits_charged is 1 or 0.
- [Decision maker email](https://alexandria.firecrawl.dev/agents/providers/anymailfinder/people/decision-maker): One decision maker. decision_maker_category is the category that matched, or null. credits_charged is 2 on a new verified hit and 0 otherwise.
- [Email verifier](https://alexandria.firecrawl.dev/agents/providers/anymailfinder/people/email-verify): One verification. credits_charged is 0.2 for a new check and 0 for a repeat inside 30 days. risky means the check was inconclusive.
- [Reverse email lookup](https://alexandria.firecrawl.dev/agents/providers/anymailfinder/people/enrich): One person. person_status is found or not_found. Every person_* field is null when not found. credits_charged is 2 on a new hit and 0 otherwise.
- [Company emails](https://alexandria.firecrawl.dev/agents/providers/anymailfinder/companies/emails): One company lookup. emails holds up to 20 addresses. valid_emails is that list when email_status is valid, and empty otherwise. The charge is one vendor credit for the page, not one per address. credits_charged is 0 when nothing valid was found.

## 1. Choose this provider when

Find a verified work email, verify an address, or look up the person behind an email.

Find up to 20 verified emails at one company.

## 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": "anymailfinder",
  "capability": "people/email-find",
  "options": {
    "domain": "<domain>",
    "full_name": "<full_name>"
  }
}
```

## 3. Add provider options

Use only the options needed for the task:

- `domain` (string): Company domain, such as microsoft.com. Preferred over company_name. A company name sent here is resolved to a domain. Example: `<domain>`
- `company_name` (string): Company name, when the domain is unknown. Example: `<company_name>`
- `full_name` (string): Full name. Alternative to first_name and last_name. Example: `<full_name>`
- `first_name` (string): Given name. Send with last_name. Example: `<first_name>`
- `last_name` (string): Family name. Send with first_name. Example: `<last_name>`
- `linkedin_url` (string): LinkedIn profile URL. It can stand alone. With a name and company, it refines the name and is the fallback when that lookup misses. Example: `<linkedin_url>`

## 4. Request through your preferred interface

### JavaScript

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

### Python

```python
result = firecrawl.scrape_alexandria({
  "provider": "anymailfinder",
  "capability": "people/email-find",
  "options": {
    "domain": "<domain>",
    "full_name": "<full_name>"
  }
})
```

### cURL

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

### CLI

```sh
firecrawl scrape 'anymailfinder/people/email-find' \
  --options '{"domain":"<domain>","full_name":"<full_name>"}'
```


### MCP

Call the FCX MCP retrieve tool with this object:

```json
{
  "provider": "anymailfinder",
  "capability": "people/email-find",
  "options": {
    "domain": "<domain>",
    "full_name": "<full_name>"
  }
}
```

Ask for only the returned fields needed by the task.

## 5. Full request shape

```json
{
  "provider": "anymailfinder",
  "capability": "people/email-find",
  "options": {
    "domain": "<domain>",
    "full_name": "<full_name>"
  }
}
```

## 6. Response data

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

```json
{
  "input": {},
  "credits_charged": 0,
  "email": "<email>",
  "email_status": "<email_status>",
  "mx_domain": "<mx_domain>",
  "mx_host": "<mx_host>",
  "person_company_name": "<person_company_name>",
  "person_full_name": "<person_full_name>",
  "person_job_title": "<person_job_title>",
  "valid_email": "<valid_email>"
}
```

## API reference-derived contract

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

### Email finder

- Capability: `people/email-find`
- Description: One search. email and valid_email are null when email_status is not valid. credits_charged is 1 on a new verified hit and 0 otherwise.
- Instructions: Find one verified work email from a name and company, or from a LinkedIn profile URL. 73 credits when Anymail Finder charges the 1-credit hit. A miss, a blacklisted result, and a repeat inside 30 days cost nothing. Use people/email-linkedin when the only input is the profile URL, people/decision-maker for a role, and people/email-verify when the address is already known.
- Cost: 10 credits per Anymail Finder credit
- Capability file: [Email finder](https://alexandria.firecrawl.dev/agents/providers/anymailfinder/people/email-find)

Accepted options:
- `domain` (string): Company domain, such as microsoft.com. Preferred over company_name. A company name sent here is resolved to a domain. Example: `<domain>`
- `company_name` (string): Company name, when the domain is unknown. Example: `<company_name>`
- `full_name` (string): Full name. Alternative to first_name and last_name. Example: `<full_name>`
- `first_name` (string): Given name. Send with last_name. Example: `<first_name>`
- `last_name` (string): Family name. Send with first_name. Example: `<last_name>`
- `linkedin_url` (string): LinkedIn profile URL. It can stand alone. With a name and company, it refines the name and is the fallback when that lookup misses. Example: `<linkedin_url>`

Response schema example:
```json
{
  "input": {},
  "credits_charged": 0,
  "email": "<email>",
  "email_status": "<email_status>",
  "mx_domain": "<mx_domain>",
  "mx_host": "<mx_host>",
  "person_company_name": "<person_company_name>",
  "person_full_name": "<person_full_name>",
  "person_job_title": "<person_job_title>",
  "valid_email": "<valid_email>"
}
```

### Email from LinkedIn

- Capability: `people/email-linkedin`
- Description: One search. person_company_name, person_full_name, and person_job_title are populated on a valid hit. credits_charged is 1 or 0.
- Instructions: Find one verified work email from a LinkedIn profile URL. 73 credits when Anymail Finder charges the 1-credit hit. A miss, a blacklisted result, and a repeat inside 30 days cost nothing. Use people/email-find when the input is a name and company.
- Cost: 2 credits per Anymail Finder credit
- Capability file: [Email from LinkedIn](https://alexandria.firecrawl.dev/agents/providers/anymailfinder/people/email-linkedin)

Accepted options:
- `linkedin_url` (string, required): LinkedIn profile URL, such as https://www.linkedin.com/in/satyanadella/. Example: `<linkedin_url>`

Response schema example:
```json
{
  "input": {},
  "credits_charged": 0,
  "email": "<email>",
  "email_status": "<email_status>",
  "mx_domain": "<mx_domain>",
  "mx_host": "<mx_host>",
  "person_company_name": "<person_company_name>",
  "person_full_name": "<person_full_name>",
  "person_job_title": "<person_job_title>",
  "valid_email": "<valid_email>"
}
```

### Decision maker email

- Capability: `people/decision-maker`
- Description: One decision maker. decision_maker_category is the category that matched, or null. credits_charged is 2 on a new verified hit and 0 otherwise.
- Instructions: Find the verified email of a decision maker in a role at a company, such as ceo or finance. 100 credits when Anymail Finder charges the 2-credit hit, because $0.146 is above the 100-credit cap. A miss, a blacklisted result, and a repeat inside 30 days cost nothing. Use people/email-find when the person's name is known.
- Cost: 20 credits per Anymail Finder credit
- Capability file: [Decision maker email](https://alexandria.firecrawl.dev/agents/providers/anymailfinder/people/decision-maker)

Accepted options:
- `decision_maker_category` (string[], required): 1 to 5 categories, tried in order. Built-in values: ceo, engineering, finance, hr, it, logistics, marketing, operations, buyer, sales. A custom category from the account's search settings is sent as its API value. Example: `[]`
- `domain` (string): Company domain. Preferred over company_name. Example: `<domain>`
- `company_name` (string): Company name, when the domain is unknown. Example: `<company_name>`

Response schema example:
```json
{
  "input": {},
  "credits_charged": 0,
  "decision_maker_category": "<decision_maker_category>",
  "email": "<email>",
  "email_status": "<email_status>",
  "mx_domain": "<mx_domain>",
  "mx_host": "<mx_host>",
  "person_first_name": "<person_first_name>",
  "person_full_name": "<person_full_name>",
  "person_job_title": "<person_job_title>",
  "person_last_name": "<person_last_name>",
  "person_linkedin_url": "<person_linkedin_url>",
  "valid_email": "<valid_email>"
}
```

### Email verifier

- Capability: `people/email-verify`
- Description: One verification. credits_charged is 0.2 for a new check and 0 for a repeat inside 30 days. risky means the check was inconclusive.
- Instructions: Check one email address. email_status is valid, risky, or invalid. 15 credits when Anymail Finder charges the 0.2-credit check, including invalid and risky. A repeat inside 30 days costs nothing. Use people/email-find when the address is not known yet.
- Cost: 2 credits per Anymail Finder credit
- Capability file: [Email verifier](https://alexandria.firecrawl.dev/agents/providers/anymailfinder/people/email-verify)

Accepted options:
- `email` (string, required): The address to validate. Example: `<email>`

Response schema example:
```json
{
  "input": {},
  "credits_charged": 0,
  "email_status": "<email_status>",
  "mx_domain": "<mx_domain>",
  "mx_host": "<mx_host>"
}
```

### Reverse email lookup

- Capability: `people/enrich`
- Description: One person. person_status is found or not_found. Every person_* field is null when not found. credits_charged is 2 on a new hit and 0 otherwise.
- Instructions: Look up the person behind an email: name, job title, company, and LinkedIn profile URL. 100 credits when Anymail Finder charges the 2-credit hit, because $0.146 is above the 100-credit cap. A miss and a repeat inside 30 days cost nothing. The name, title, and company can be null even when the person is found. Use people/email-verify to check the address itself.
- Cost: 100 credits per Anymail Finder credit
- Capability file: [Reverse email lookup](https://alexandria.firecrawl.dev/agents/providers/anymailfinder/people/enrich)

Accepted options:
- `email` (string, required): The email of the person to look up. Example: `<email>`

Response schema example:
```json
{
  "input": {},
  "credits_charged": 0,
  "person_company_name": "<person_company_name>",
  "person_full_name": "<person_full_name>",
  "person_job_title": "<person_job_title>",
  "person_linkedin_url": "<person_linkedin_url>",
  "person_status": "<person_status>"
}
```

### Company emails

- Capability: `companies/emails`
- Description: One company lookup. emails holds up to 20 addresses. valid_emails is that list when email_status is valid, and empty otherwise. The charge is one vendor credit for the page, not one per address. credits_charged is 0 when nothing valid was found.
- Instructions: Find up to 20 verified emails at one company from a domain or company name. 73 credits when Anymail Finder charges the 1-credit hit, whether one address or 20 come back. An empty page, a blacklist, and a repeat inside 30 days cost nothing. Use people/email-find for one named person.
- Cost: 10 credits per Anymail Finder credit
- Capability file: [Company emails](https://alexandria.firecrawl.dev/agents/providers/anymailfinder/companies/emails)

Accepted options:
- `domain` (string): Company domain. Preferred over company_name. Example: `<domain>`
- `company_name` (string): Company name, when the domain is unknown. Example: `<company_name>`
- `email_type` (string): any (the vendor default when omitted), generic role addresses, or personal named addresses. Example: `any`

Response schema example:
```json
{
  "input": {},
  "credits_charged": 0,
  "email_status": "<email_status>",
  "emails": [],
  "mx_domain": "<mx_domain>",
  "mx_host": "<mx_host>",
  "valid_emails": []
}
```
