---
type: "firecrawl-provider"
description: "Find a work email, verify an address, scan a domain, and search people and companies."
use_when: "Find a work email, verify an address, find a profile URL, or search the lead database.\n\nScan a domain for role addresses, enrich a company page, find a company URL, or search companies.\n\nRead one email search, verification, or domain scan after it has been started."
categories: "People"
capabilities: 12
pricing: "0–100 credits per billed unit; see each capability for its unit and maximum."
---
# Icypeas on Firecrawl Alexandria

Find a work email, verify an address, scan a domain, and search people and companies.

- Categories: People
- Category index: [People category](https://alexandria.firecrawl.dev/agents/categories/people)
- Provider key: `icypeas`
- Access: Firecrawl credits
- Cost (Email search): 0 credits per call
- Cost (Email verification): 0 credits per call
- Cost (Find people): 10 credits per returned lead
- Cost (Count people): 0 credits per call
- Cost (Profile URL): 19 credits per record
- Cost (Reverse email lookup): 100 credits per record
- Cost (Domain search): 0 credits per call
- Cost (Find companies): 10 credits per returned lead
- Cost (Count companies): 0 credits per call
- Cost (Company URL): 19 credits per record
- Cost (Company enrichment): 10 credits per record
- Cost (Search result): 19 credits per finished Icypeas search

## More

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

## Capabilities

- [Email search](https://alexandria.firecrawl.dev/agents/providers/icypeas/people/email-search): success is true when the search was accepted. item._id is the id to read. item.status is NONE right after creation. Nothing is billed yet.
- [Email verification](https://alexandria.firecrawl.dev/agents/providers/icypeas/people/email-verify): success is true when the check was accepted. item._id is the id to read. item.status is NONE right after creation.
- [Find people](https://alexandria.firecrawl.dev/agents/providers/icypeas/people/find): leads is the page. total is the match count. pagination.token requests the next page and expires after 15 minutes. An empty leads array costs nothing.
- [Count people](https://alexandria.firecrawl.dev/agents/providers/icypeas/people/count): total is the number of matching people. The call is free.
- [Profile URL](https://alexandria.firecrawl.dev/agents/providers/icypeas/people/profile-url): result is the profile URL when status is FOUND, and an empty string when status is NOT_FOUND. A miss costs nothing.
- [Reverse email lookup](https://alexandria.firecrawl.dev/agents/providers/icypeas/people/reverse-email): The profile URL is in result, or in results when that is the field Icypeas sends. status is FOUND or NOT_FOUND. An empty URL costs nothing.
- [Domain search](https://alexandria.firecrawl.dev/agents/providers/icypeas/companies/domain-search): success is true when the scan was accepted. item._id is the id to read. item.status is NONE right after creation.
- [Find companies](https://alexandria.firecrawl.dev/agents/providers/icypeas/companies/find): leads is the page of companies. total is the match count. pagination.token requests the next page. An empty leads array costs nothing.
- [Count companies](https://alexandria.firecrawl.dev/agents/providers/icypeas/companies/count): total is the number of matching companies. The call is free.
- [Company URL](https://alexandria.firecrawl.dev/agents/providers/icypeas/companies/url): result is the company page URL when status is FOUND, and an empty string when status is NOT_FOUND.
- [Company enrichment](https://alexandria.firecrawl.dev/agents/providers/icypeas/companies/enrich): result is the company when status is FOUND, and null when status is NOT_FOUND. A miss costs nothing.
- [Search result](https://alexandria.firecrawl.dev/agents/providers/icypeas/searches/read): items has the one search. Emails are in items[0].results.emails, each with email, certainty, and mxProvider. status is NONE, SCHEDULED, or IN_PROGRESS while the search is still running.

## 1. Choose this provider when

Find a work email, verify an address, find a profile URL, or search the lead database.

Scan a domain for role addresses, enrich a company page, find a company URL, or search companies.

Read one email search, verification, or domain scan after it has been started.

## 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": "icypeas",
  "capability": "people/email-search",
  "options": {
    "firstname": "<firstname>",
    "lastname": "<lastname>",
    "domainOrCompany": "<domainOrCompany>"
  }
}
```

## 3. Add provider options

Use only the options needed for the task:

- `firstname` (string, required): Given name. May be empty when lastname is set. Example: `<firstname>`
- `lastname` (string, required): Family name. May be empty when firstname is set. Example: `<lastname>`
- `domainOrCompany` (string, required): Company domain, such as icypeas.com, or the company name. A domain is the better match. Example: `<domainOrCompany>`

## 4. Request through your preferred interface

### JavaScript

```javascript
const result = await firecrawl.scrape({
  alexandria: {
    provider: "icypeas",
    capability: "people/email-search",
    options: {
      firstname: "<firstname>",
      lastname: "<lastname>",
      domainOrCompany: "<domainOrCompany>",
    },
  },
});
```

### Python

```python
result = firecrawl.scrape_alexandria({
  "provider": "icypeas",
  "capability": "people/email-search",
  "options": {
    "firstname": "<firstname>",
    "lastname": "<lastname>",
    "domainOrCompany": "<domainOrCompany>"
  }
})
```

### cURL

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

### CLI

```sh
firecrawl scrape 'icypeas/people/email-search' \
  --options '{"firstname":"<firstname>","lastname":"<lastname>","domainOrCompany":"<domainOrCompany>"}'
```


### MCP

Call the FCX MCP retrieve tool with this object:

```json
{
  "provider": "icypeas",
  "capability": "people/email-search",
  "options": {
    "firstname": "<firstname>",
    "lastname": "<lastname>",
    "domainOrCompany": "<domainOrCompany>"
  }
}
```

Ask for only the returned fields needed by the task.

## 5. Full request shape

```json
{
  "provider": "icypeas",
  "capability": "people/email-search",
  "options": {
    "firstname": "<firstname>",
    "lastname": "<lastname>",
    "domainOrCompany": "<domainOrCompany>"
  }
}
```

## 6. Response data

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

```json
{
  "success": false,
  "item": {}
}
```

## API reference-derived contract

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

### Email search

- Capability: `people/email-search`
- Description: success is true when the search was accepted. item._id is the id to read. item.status is NONE right after creation. Nothing is billed yet.
- Instructions: Start a work-email search from a name and a company. The response is a search id, not the address, and this call costs nothing. Read searches/read with task email-search. A found address there costs 19 credits. A miss costs nothing. Use people/email-verify when you already have an address.
- Cost: 0 credits per call
- Capability file: [Email search](https://alexandria.firecrawl.dev/agents/providers/icypeas/people/email-search)

Accepted options:
- `firstname` (string, required): Given name. May be empty when lastname is set. Example: `<firstname>`
- `lastname` (string, required): Family name. May be empty when firstname is set. Example: `<lastname>`
- `domainOrCompany` (string, required): Company domain, such as icypeas.com, or the company name. A domain is the better match. Example: `<domainOrCompany>`

Response schema example:
```json
{
  "success": false,
  "item": {}
}
```

### Email verification

- Capability: `people/email-verify`
- Description: success is true when the check was accepted. item._id is the id to read. item.status is NONE right after creation.
- Instructions: Start a check of one email address. The response is a search id, and this call costs nothing. Read searches/read with task email-verification. A finished check costs 10 credits, including an undeliverable address. A check that is still running costs nothing.
- Cost: 0 credits per call
- Capability file: [Email verification](https://alexandria.firecrawl.dev/agents/providers/icypeas/people/email-verify)

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

Response schema example:
```json
{
  "success": false,
  "item": {}
}
```

### Find people

- Capability: `people/find`
- Description: leads is the page. total is the match count. pagination.token requests the next page and expires after 15 minutes. An empty leads array costs nothing.
- Instructions: Search people by title, company, location, or skills. One returned person costs 10 credits, and 100 people cost 38, because Icypeas bills 0.02 credit per row. An empty page costs nothing. Count matches for free with people/count before fetching. pagination.size is at most 200. Use people/email-search when you need one person's work email.
- Cost: 10 credits per returned lead
- Capability file: [Find people](https://alexandria.firecrawl.dev/agents/providers/icypeas/people/find)

Accepted options:
- `query` (object, required): People filters. Include and exclude lists, ranges, and company filters use Icypeas's names, such as currentJobTitle and currentCompanyWebsite. Example: `{}`
- `pagination` (object): Page token and size. size is 1 to 200. Omit it to receive one person. The token from the previous page is valid for 15 minutes. Example: `{}`

Response schema example:
```json
{
  "leads": [
    {
      "firstname": "<firstname>",
      "lastname": "<lastname>",
      "headline": "<headline>",
      "profileUrl": "<profileUrl>",
      "lastJobTitle": "<lastJobTitle>",
      "lastCompanyName": "<lastCompanyName>",
      "lastCompanyWebsite": "<lastCompanyWebsite>",
      "address": "<address>"
    }
  ]
}
```

### Count people

- Capability: `people/count`
- Description: total is the number of matching people. The call is free.
- Instructions: Count people who match a query. Free. Use people/find to fetch the rows.
- Cost: 0 credits per call
- Capability file: [Count people](https://alexandria.firecrawl.dev/agents/providers/icypeas/people/count)

Accepted options:
- `query` (object, required): The same filters as people/find. Example: `{}`

Response schema example:
```json
{
  "success": false,
  "total": 0
}
```

### Profile URL

- Capability: `people/profile-url`
- Description: result is the profile URL when status is FOUND, and an empty string when status is NOT_FOUND. A miss costs nothing.
- Instructions: Find one person's profile URL from their name plus a company or a job title. 19 credits when a URL comes back. A miss costs nothing. This does not scrape the profile.
- Cost: 19 credits per record
- Capability file: [Profile URL](https://alexandria.firecrawl.dev/agents/providers/icypeas/people/profile-url)

Accepted options:
- `firstname` (string, required): Given name. Example: `<firstname>`
- `lastname` (string, required): Family name. Example: `<lastname>`
- `companyOrDomain` (string): Company name or domain. Required when jobTitle is omitted. Example: `<companyOrDomain>`
- `jobTitle` (string): Job title. Required when companyOrDomain is omitted. Example: `<jobTitle>`

Response schema example:
```json
{
  "success": false,
  "status": "<status>",
  "result": "<result>",
  "searchId": "<searchId>"
}
```

### Reverse email lookup

- Capability: `people/reverse-email`
- Description: The profile URL is in result, or in results when that is the field Icypeas sends. status is FOUND or NOT_FOUND. An empty URL costs nothing.
- Instructions: Find the profile URL behind one professional email. 100 credits when a URL comes back, the per-call cap, because that hit is 10 Icypeas credits ($0.19). A miss costs nothing. This does not scrape the profile.
- Cost: 100 credits per record
- Capability file: [Reverse email lookup](https://alexandria.firecrawl.dev/agents/providers/icypeas/people/reverse-email)

Accepted options:
- `email` (string, required): A professional email address. Example: `<email>`

Response schema example:
```json
{
  "success": false,
  "status": "<status>",
  "result": "<result>",
  "results": "<results>",
  "searchId": "<searchId>"
}
```

### Domain search

- Capability: `companies/domain-search`
- Description: success is true when the scan was accepted. item._id is the id to read. item.status is NONE right after creation.
- Instructions: Start a scan for role addresses such as contact@ or sales@ at one domain. The response is a search id, and this call costs nothing. Read searches/read with task domain-search. A scan that finds an address costs 19 credits. A miss costs nothing.
- Cost: 0 credits per call
- Capability file: [Domain search](https://alexandria.firecrawl.dev/agents/providers/icypeas/companies/domain-search)

Accepted options:
- `domainOrCompany` (string, required): The domain to scan, such as icypeas.com, or the company name. Example: `<domainOrCompany>`

Response schema example:
```json
{
  "success": false,
  "item": {}
}
```

### Find companies

- Capability: `companies/find`
- Description: leads is the page of companies. total is the match count. pagination.token requests the next page. An empty leads array costs nothing.
- Instructions: Search companies by industry, location, headcount, or domain. One returned company costs 10 credits, and 100 companies cost 38. An empty page costs nothing. Count matches for free with companies/count. pagination.size is at most 200.
- Cost: 10 credits per returned lead
- Capability file: [Find companies](https://alexandria.firecrawl.dev/agents/providers/icypeas/companies/find)

Accepted options:
- `query` (object, required): Company filters. Names match the docs, such as industry, headcount, location, and domain. Example: `{}`
- `pagination` (object): Page token and size. size is 1 to 200. Omit it to receive one company. Example: `{}`

Response schema example:
```json
{
  "leads": [
    {
      "name": "<name>",
      "lid": "<lid>",
      "url": "<url>",
      "website": "<website>",
      "industry": "<industry>",
      "numberOfEmployees": 0,
      "address": "<address>",
      "description": "<description>"
    }
  ]
}
```

### Count companies

- Capability: `companies/count`
- Description: total is the number of matching companies. The call is free.
- Instructions: Count companies that match a query. Free. Use companies/find to fetch the rows.
- Cost: 0 credits per call
- Capability file: [Count companies](https://alexandria.firecrawl.dev/agents/providers/icypeas/companies/count)

Accepted options:
- `query` (object, required): The same filters as companies/find. Example: `{}`

Response schema example:
```json
{
  "success": false,
  "total": 0
}
```

### Company URL

- Capability: `companies/url`
- Description: result is the company page URL when status is FOUND, and an empty string when status is NOT_FOUND.
- Instructions: Find one company's page URL from its name or domain. 19 credits when a URL comes back. A miss costs nothing.
- Cost: 19 credits per record
- Capability file: [Company URL](https://alexandria.firecrawl.dev/agents/providers/icypeas/companies/url)

Accepted options:
- `companyOrDomain` (string, required): Company name or domain, such as icypeas.com. Example: `<companyOrDomain>`

Response schema example:
```json
{
  "success": false,
  "status": "<status>",
  "result": "<result>",
  "searchId": "<searchId>"
}
```

### Company enrichment

- Capability: `companies/enrich`
- Description: result is the company when status is FOUND, and null when status is NOT_FOUND. A miss costs nothing.
- Instructions: Enrich one company from its page URL: industry, headcount, location, and website. 10 credits when a company name comes back. A miss costs nothing. A person's profile URL is not this call.
- Cost: 10 credits per record
- Capability file: [Company enrichment](https://alexandria.firecrawl.dev/agents/providers/icypeas/companies/enrich)

Accepted options:
- `url` (string, required): Company page URL, such as https://www.linkedin.com/company/icypeas/. Example: `<url>`

Response schema example:
```json
{
  "success": false,
  "status": "<status>",
  "searchId": "<searchId>",
  "result": {}
}
```

### Search result

- Capability: `searches/read`
- Description: items has the one search. Emails are in items[0].results.emails, each with email, certainty, and mxProvider. status is NONE, SCHEDULED, or IN_PROGRESS while the search is still running.
- Instructions: Read one email search, verification, or domain scan by the id from the start call. Pass the matching task. 19 credits per found email, 10 for a finished verification, and 19 when a domain scan finds any address. A search that is still running, a miss, and a bad input cost nothing. This does not list bulk file rows.
- Cost: 19 credits per finished Icypeas search
- Capability file: [Search result](https://alexandria.firecrawl.dev/agents/providers/icypeas/searches/read)

Accepted options:
- `id` (string, required): The search _id returned when the search was started. Example: `<id>`
- `task` (string, required): Which search this id came from: email-search, email-verification, or domain-search. It selects the price and is not sent to Icypeas. Example: `email-search`

Response schema example:
```json
{
  "success": false,
  "items": [],
  "total": 0
}
```
