---
type: "firecrawl-provider"
description: "Find a work email, look up a person from an email, and search contacts and companies."
use_when: "Find a work email or phone, look a person up from an email, or search contacts at a company.\n\nSearch companies by site text, industry, size, location, or domain."
categories: "People"
capabilities: 4
pricing: "0–10 credits per billed unit; see each capability for its unit and maximum."
---
# QuickEnrich on Firecrawl Alexandria

Find a work email, look up a person from an email, and search contacts and companies.

- Categories: People
- Category index: [People category](https://alexandria.firecrawl.dev/agents/categories/people)
- Provider key: `quickenrich`
- Access: Firecrawl credits
- Cost (Email and person enrich): 10 credits per QuickEnrich credit
- Cost (Reverse email lookup): 10 credits per QuickEnrich credit
- Cost (Contact finder): 0 credits per call
- Cost (Company finder): 10 credits per QuickEnrich credit

## More

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

## Capabilities

- [Email and person enrich](https://alexandria.firecrawl.dev/agents/providers/quickenrich/people/email-find): One employee under data, plus meta.credits_used when the account is metered. A miss is data: [] with credits_used 0. N/A is not an email.
- [Reverse email lookup](https://alexandria.firecrawl.dev/agents/providers/quickenrich/people/email-lookup): One employee under data. A miss is data: [] and meta.reason EMAIL_NOT_FOUND.
- [Contact finder](https://alexandria.firecrawl.dev/agents/providers/quickenrich/people/contact-finder): Masked contacts under data. meta.credits_used is 0. meta.next_cursor continues past the first 10,000 rows.
- [Company finder](https://alexandria.firecrawl.dev/agents/providers/quickenrich/companies/finder): Companies under data. meta.credits_used is the vendor charge. An empty page has reason COMPANY_NOT_FOUND. home_page_text is present only when include_full_text is true.

## 1. Choose this provider when

Find a work email or phone, look a person up from an email, or search contacts at a company.

Search companies by site text, industry, size, location, or domain.

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

## 3. Add provider options

Use only the options needed for the task:

- `linkedin_url` (string): LinkedIn profile URL. Provide this, or company_url with first_name and last_name. Sending all of them tries the LinkedIn URL first. Example: `<linkedin_url>`
- `company_url` (string): Company website URL or domain. Normalized by QuickEnrich. Example: `<company_url>`
- `first_name` (string): Employee first name. Required with company_url and last_name when linkedin_url is omitted. Example: `<first_name>`
- `last_name` (string): Employee last name. Required with company_url and first_name when linkedin_url is omitted. Example: `<last_name>`

## 4. Request through your preferred interface

### JavaScript

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

### Python

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

### cURL

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

### CLI

```sh
firecrawl scrape 'quickenrich/people/email-find' \
  --options '{"linkedin_url":"<linkedin_url>"}'
```


### MCP

Call the FCX MCP retrieve tool with this object:

```json
{
  "provider": "quickenrich",
  "capability": "people/email-find",
  "options": {
    "linkedin_url": "<linkedin_url>"
  }
}
```

Ask for only the returned fields needed by the task.

## 5. Full request shape

```json
{
  "provider": "quickenrich",
  "capability": "people/email-find",
  "options": {
    "linkedin_url": "<linkedin_url>"
  }
}
```

## 6. Response data

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

```json
{
  "data": {
    "first_name": "<first_name>",
    "last_name": "<last_name>",
    "title": "<title>",
    "email": "<email>",
    "employee_phone": "<employee_phone>",
    "employee_phone_type": "<employee_phone_type>",
    "employee_linkedin": "<employee_linkedin>",
    "email_verification_date": "<email_verification_date>",
    "company_url": "<company_url>",
    "company_name": "<company_name>",
    "email_domain": "<email_domain>",
    "company_linked": "<company_linked>",
    "industry": "<industry>",
    "revenue": "<revenue>",
    "employee_count": "<employee_count>",
    "city": "<city>",
    "region_code": "<region_code>",
    "country_code": "<country_code>"
  }
}
```

## API reference-derived contract

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

### Email and person enrich

- Capability: `people/email-find`
- Description: One employee under data, plus meta.credits_used when the account is metered. A miss is data: [] with credits_used 0. N/A is not an email.
- Instructions: Find one person's work email from a LinkedIn profile URL, or from a company URL plus first and last name. 10 credits when a real email comes back. An empty result costs nothing. Use people/phone-find for a phone number and people/contact-finder to search without revealing an email.
- Cost: 10 credits per QuickEnrich credit
- Capability file: [Email and person enrich](https://alexandria.firecrawl.dev/agents/providers/quickenrich/people/email-find)

Accepted options:
- `linkedin_url` (string): LinkedIn profile URL. Provide this, or company_url with first_name and last_name. Sending all of them tries the LinkedIn URL first. Example: `<linkedin_url>`
- `company_url` (string): Company website URL or domain. Normalized by QuickEnrich. Example: `<company_url>`
- `first_name` (string): Employee first name. Required with company_url and last_name when linkedin_url is omitted. Example: `<first_name>`
- `last_name` (string): Employee last name. Required with company_url and first_name when linkedin_url is omitted. Example: `<last_name>`

Response schema example:
```json
{
  "data": {
    "first_name": "<first_name>",
    "last_name": "<last_name>",
    "title": "<title>",
    "email": "<email>",
    "employee_phone": "<employee_phone>",
    "employee_phone_type": "<employee_phone_type>",
    "employee_linkedin": "<employee_linkedin>",
    "email_verification_date": "<email_verification_date>",
    "company_url": "<company_url>",
    "company_name": "<company_name>",
    "email_domain": "<email_domain>",
    "company_linked": "<company_linked>",
    "industry": "<industry>",
    "revenue": "<revenue>",
    "employee_count": "<employee_count>",
    "city": "<city>",
    "region_code": "<region_code>",
    "country_code": "<country_code>"
  }
}
```

### Reverse email lookup

- Capability: `people/email-lookup`
- Description: One employee under data. A miss is data: [] and meta.reason EMAIL_NOT_FOUND.
- Instructions: Find the person behind one email address. 10 credits when the record includes a real email. No match costs nothing. Use people/email-find when you have a name or a LinkedIn URL instead of an email.
- Cost: 10 credits per QuickEnrich credit
- Capability file: [Reverse email lookup](https://alexandria.firecrawl.dev/agents/providers/quickenrich/people/email-lookup)

Accepted options:
- `email` (string, required): Email address to look up. Exact match. Example: `<email>`

Response schema example:
```json
{
  "data": {
    "first_name": "<first_name>",
    "last_name": "<last_name>",
    "title": "<title>",
    "email": "<email>",
    "employee_phone": "<employee_phone>",
    "employee_phone_type": "<employee_phone_type>",
    "employee_linkedin": "<employee_linkedin>",
    "email_verification_date": "<email_verification_date>",
    "company_url": "<company_url>",
    "company_name": "<company_name>",
    "email_domain": "<email_domain>",
    "company_linked": "<company_linked>",
    "industry": "<industry>",
    "revenue": "<revenue>",
    "employee_count": "<employee_count>",
    "city": "<city>",
    "region_code": "<region_code>",
    "country_code": "<country_code>"
  }
}
```

### Contact finder

- Capability: `people/contact-finder`
- Description: Masked contacts under data. meta.credits_used is 0. meta.next_cursor continues past the first 10,000 rows.
- Instructions: Search contacts by title, company, location, industry, size, or service. The search is free and does not return email or phone values. has_email and has_phone say whether those exist. Use people/reveal, people/email-find, or people/phone-find with employee_linkedin to unlock a row. An empty page is also free.
- Cost: 0 credits per call
- Capability file: [Contact finder](https://alexandria.firecrawl.dev/agents/providers/quickenrich/people/contact-finder)

Accepted options:
- `title` (object): Job title. include and exclude are lists of open text. Example: `{}`
- `locality` (object): Employee locality. Open text. Example: `{}`
- `company_name` (object): Company name. Open text. Example: `{}`
- `company_url` (object): Company website or domain. Open text. Example: `{}`
- `city` (object): Company city. Open text. Example: `{}`
- `country_code` (object): Company country. Exact ISO codes from GET /api/lookups/country-codes. Example: `{}`
- `region_code` (object): Company region. Exact abbreviations from GET /api/lookups/region-codes, not the full state name. Example: `{}`
- `industry_linkedin` (object): Company industry. Exact values from GET /api/lookups/industries. Example: `{}`
- `number_of_employees` (object): Employee-count range. Exact labels from GET /api/lookups/employee-ranges. Example: `{}`
- `revenue` (object): Revenue range. Exact labels from GET /api/lookups/revenue-ranges. Example: `{}`
- `bio_li` (object): Company LinkedIn About text. Open text, up to 500 characters per value. Example: `{}`
- `services` (object): Company service. Exact values from GET /api/lookups/company-services. Example: `{}`
- `has_email` (boolean): When true, only contacts that have an email in the dataset. The address itself is not returned. Example: `false`
- `has_phone` (boolean): When true, only contacts that have a phone in the dataset. The number itself is not returned. Example: `false`
- `page` (number): Page number. The default is 1. Ignored when cursor is set. Offset pages stop at 10,000 rows. Example: `10`
- `per_page` (number): Rows per page, from 1 to 100. The default is 10. Search does not charge per row. Example: `10`
- `cursor` (string): meta.next_cursor from the previous page. Echo it unchanged. When set, page is ignored. Example: `<cursor>`

Response schema example:
```json
{
  "data": [
    {
      "emp_id": 0,
      "first_name": "<first_name>",
      "last_name": "<last_name>",
      "title": "<title>",
      "employee_linkedin": "<employee_linkedin>",
      "has_email": false,
      "has_phone": false,
      "company_url": "<company_url>",
      "company_name": "<company_name>",
      "city": "<city>",
      "region_code": "<region_code>",
      "country_code": "<country_code>"
    }
  ]
}
```

### Company finder

- Capability: `companies/finder`
- Description: Companies under data. meta.credits_used is the vendor charge. An empty page has reason COMPANY_NOT_FOUND. home_page_text is present only when include_full_text is true.
- Instructions: Search companies by homepage text, LinkedIn description, services, industry, size, revenue, location, or one domain. Each returned company is billed from $0.004, so a default page of 10 quotes 40 credits and a full page quotes 100. An empty page costs nothing when credits_used is 0 or absent. A positive credits_used is still billed. Use people/dataset-search or people/contact-finder to list people at a company you find.
- Cost: 10 credits per QuickEnrich credit
- Capability file: [Company finder](https://alexandria.firecrawl.dev/agents/providers/quickenrich/companies/finder)

Accepted options:
- `home_page_text` (object): Website copy. include and exclude are lists of open text. Example: `{}`
- `bio_li` (object): Company LinkedIn About text. Example: `{}`
- `services` (object): Exact service names from GET /api/lookups/company-services. Example: `{}`
- `industry` (object): Exact industries from GET /api/lookups/industries. Example: `{}`
- `number_of_employees` (object): Exact employee ranges from GET /api/lookups/employee-ranges. Example: `{}`
- `revenue` (object): Exact revenue ranges from GET /api/lookups/revenue-ranges. Example: `{}`
- `country_code` (object): Exact ISO country codes from GET /api/lookups/country-codes. Example: `{}`
- `region_code` (object): Exact region abbreviations from GET /api/lookups/region-codes. Example: `{}`
- `city` (object): Company city. Open text. Example: `{}`
- `company_name` (object): Company name. Open text. Example: `{}`
- `company_url` (string): One domain or URL, such as acme.com. Matches url, email_domain, and final_email_domain. This is a string, not an include/exclude list. Example: `<company_url>`
- `include_full_text` (boolean): When true, each company also includes home_page_text. The default is a snippet only. Example: `false`
- `page` (number): Page number. The default is 1. Ignored when cursor is set. Offset pages stop at 10,000 rows. Example: `10`
- `per_page` (number): Companies per page, from 1 to 100. The default is 10. Each returned company is one vendor credit. The Firecrawl quote is capped at 100. Example: `10`
- `cursor` (string): meta.next_cursor from the previous page. Echo it unchanged. Example: `<cursor>`

Response schema example:
```json
{
  "data": [
    {
      "company_name": "<company_name>",
      "url": "<url>",
      "email_domain": "<email_domain>",
      "final_email_domain": "<final_email_domain>",
      "phone": "<phone>",
      "linkedin_url": "<linkedin_url>",
      "city": "<city>",
      "region_code": "<region_code>",
      "country_code": "<country_code>",
      "industry": "<industry>",
      "employee_count": "<employee_count>",
      "revenue": "<revenue>",
      "services": [],
      "home_page_text_snippet": "<home_page_text_snippet>",
      "bio_li_snippet": "<bio_li_snippet>"
    }
  ]
}
```
