---
type: "firecrawl-provider"
description: "People and company search, profile lookups, firmographics, and verified contact data."
use_when: "Find people by role, employer, location, skills, or work history. Look up a known person from a LinkedIn identifier or a full name plus employer.\n\nFind companies by industry, size, location, or technologies. Look up a known company from its domain or LinkedIn identifier.\n\nFind a known person's verified work email, mobile number, or personal email, or identify the person behind an email address. Priced per data type found; nothing found costs nothing."
categories: "People"
capabilities: 10
credits_per_record: "5-175"
---
# FullEnrich on Firecrawl Alexandria

People and company search, profile lookups, firmographics, and verified contact data.

- Categories: People
- Category index: [People category](https://firecrawl.dev/alexandria/agents/categories/people)
- Provider key: `fullenrich`
- Access: Firecrawl credits
- Cost (Person match): 5 credits per record
- Cost (People search): 5 credits per record
- Cost (Person lookup): 5 credits per record
- Cost (Company match): 5 credits per record
- Cost (Company search): 5 credits per record
- Cost (Company lookup): 5 credits per record
- Cost (Work email): 20 credits per record
- Cost (Mobile number): 175 credits per record
- Cost (Personal email): 55 credits per record
- Cost (Reverse email lookup): 20 credits per record

## More

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

## Capabilities

- [Person match](https://firecrawl.dev/alexandria/agents/providers/fullenrich/people/match): At most one matching profile in the people array. An empty array costs no credits.
- [People search](https://firecrawl.dev/alexandria/agents/providers/fullenrich/people/search): People in the people array. Search also returns metadata.total, metadata.offset, and metadata.search_after. An empty array costs no credits. Email and phone enrichment is a separate operation.
- [Person lookup](https://firecrawl.dev/alexandria/agents/providers/fullenrich/people/lookup): The best matching person in the people array, or an empty array when no match is found. No-match costs no credits.
- [Company match](https://firecrawl.dev/alexandria/agents/providers/fullenrich/companies/match): At most one matching company in the companies array. An empty array costs no credits.
- [Company search](https://firecrawl.dev/alexandria/agents/providers/fullenrich/companies/search): Company records in the companies array. Search also returns metadata.total, metadata.offset, and metadata.search_after. An empty array costs no credits.
- [Company lookup](https://firecrawl.dev/alexandria/agents/providers/fullenrich/companies/lookup): The best matching company in the companies array, or an empty array when no match is found. No-match costs no credits.
- [Work email](https://firecrawl.dev/alexandria/agents/providers/fullenrich/contacts/work-email): One record in results when a deliverable, high-probability, or catch-all work email was found, an empty array when not. An empty array costs nothing. contact_info carries most_probable_work_email and the work_emails candidates; profile is present when linkedin_url was given.
- [Mobile number](https://firecrawl.dev/alexandria/agents/providers/fullenrich/contacts/mobile): One record in results when a mobile number was found, an empty array when not. An empty array costs nothing. contact_info carries most_probable_phone and the phones candidates; profile is present when linkedin_url was given.
- [Personal email](https://firecrawl.dev/alexandria/agents/providers/fullenrich/contacts/personal-email): One record in results when a valid personal email was found, an empty array when not. An empty array costs nothing. contact_info carries most_probable_personal_email and the personal_emails candidates; profile is present when linkedin_url was given.
- [Reverse email lookup](https://firecrawl.dev/alexandria/agents/providers/fullenrich/contacts/reverse-email): One record in results when the person behind the email was found, an empty array when not. An empty array costs nothing. profile carries the person and their employer.

## 1. Choose this provider when

Find people by role, employer, location, skills, or work history. Look up a known person from a LinkedIn identifier or a full name plus employer.

Find companies by industry, size, location, or technologies. Look up a known company from its domain or LinkedIn identifier.

Find a known person's verified work email, mobile number, or personal email, or identify the person behind an email address. Priced per data type found; nothing found costs nothing.

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

## 3. Add provider options

Use only the options needed for the task:

- `linkedin_url` (string, required): Canonical LinkedIn profile URL, such as https://www.linkedin.com/in/jane-doe. Matched exactly. Example: `<linkedin_url>`

## 4. Request through your preferred interface

### JavaScript

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

### Python

```python
result = firecrawl.scrape_alexandria({
  "provider": "fullenrich",
  "capability": "people/match",
  "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": "fullenrich",
    "capability": "people/match",
    "options": {
      "linkedin_url": "<linkedin_url>"
    }
  }
}'
```

### CLI

```sh
firecrawl scrape 'fullenrich/people/match' \
  --options '{"linkedin_url":"<linkedin_url>"}'
```


### MCP

Call the FCX MCP retrieve tool with this object:

```json
{
  "provider": "fullenrich",
  "capability": "people/match",
  "options": {
    "linkedin_url": "<linkedin_url>"
  }
}
```

Ask for only the returned fields needed by the task.

## 5. Full request shape

```json
{
  "provider": "fullenrich",
  "capability": "people/match",
  "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
{
  "people": [
    {
      "id": "<id>",
      "full_name": "<full_name>",
      "first_name": "<first_name>",
      "last_name": "<last_name>",
      "headline": "<headline>",
      "description": "<description>",
      "location": {},
      "social_profiles": {},
      "employment": {},
      "educations": [],
      "languages": [],
      "skills": []
    }
  ]
}
```

## API reference-derived contract

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

### Person match

- Capability: `people/match`
- Description: At most one matching profile in the people array. An empty array costs no credits.
- Instructions: Match an exact LinkedIn profile URL. Use people/lookup for additional identifiers, or people/search to build a shortlist.
- Cost: 5 credits per record
- Capability file: [Person match](https://firecrawl.dev/alexandria/agents/providers/fullenrich/people/match)

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

Response schema example:
```json
{
  "people": [
    {
      "id": "<id>",
      "full_name": "<full_name>",
      "first_name": "<first_name>",
      "last_name": "<last_name>",
      "headline": "<headline>",
      "description": "<description>",
      "location": {},
      "social_profiles": {},
      "employment": {},
      "educations": [],
      "languages": [],
      "skills": []
    }
  ]
}
```

### People search

- Capability: `people/search`
- Description: People in the people array. Search also returns metadata.total, metadata.offset, and metadata.search_after. An empty array costs no credits. Email and phone enrichment is a separate operation.
- Instructions: Find people by role, employer, location, skills, or work history. Combine filters and page through the results. Use people/lookup when you already know a person's identifiers; contact enrichment retrieves emails and phones separately.
- Cost: 5 credits per record
- Capability file: [People search](https://firecrawl.dev/alexandria/agents/providers/fullenrich/people/search)

Accepted options:
- `limit` (number): Records per page, up to 6. Each returned record costs 5 credits. Use pagination for more. Example: `2`
- `offset` (number): Records to skip. Use search_after beyond 10,000. Example: `10`
- `search_after` (string): Cursor from the previous response's metadata.search_after. Keep the same filters. Example: `<search_after>`
- `person_names` (object[]): Person names. Entries: { value: string, exclude?: boolean, exact_match?: boolean }. Example: `[]`
- `person_ids` (object[]): FullEnrich person IDs. Entries: { value: string, exclude?: boolean, exact_match?: boolean }. Example: `[]`
- `person_professional_network_urls` (object[]): LinkedIn profile URLs. Entries: { value: string, exclude?: boolean, exact_match?: boolean }. Example: `[]`
- `person_professional_network_ids` (object[]): LinkedIn profile IDs. Entries: { value: number, exclude?: boolean, exact_match?: boolean }. Example: `[]`
- `person_locations` (object[]): Cities, regions, or countries. Entries: { value: string, exclude?: boolean, exact_match?: boolean }. Example: `[]`
- `person_languages` (object[]): Languages spoken. Entries: { value: string, exclude?: boolean, exact_match?: boolean }. Example: `[]`
- `person_skills` (object[]): Professional skills. Entries: { value: string, exclude?: boolean, exact_match?: boolean }. Example: `[]`
- `person_universities` (object[]): Universities attended. Entries: { value: string, exclude?: boolean, exact_match?: boolean }. Example: `[]`
- `current_position_titles` (object[]): Current job titles. Entries: { value: string, exclude?: boolean, exact_match?: boolean }. Example: `[]`
- `past_position_titles` (object[]): Previous job titles. Entries: { value: string, exclude?: boolean, exact_match?: boolean }. Example: `[]`
- `current_position_seniority_level` (object[]): Seniority levels, such as Founder, VP, or Manager. Entries: { value: string, exclude?: boolean, exact_match?: boolean }. Example: `[]`
- `current_position_job_functions` (object[]): Current job functions. Entries: { value: string, exclude?: boolean, exact_match?: boolean }. Example: `[]`
- `current_position_sub_functions` (object[]): Current job subfunctions. Entries: { value: string, exclude?: boolean, exact_match?: boolean }. Example: `[]`
- `current_position_years_in` (object[]): Years in the current position. Entries: { min?, max?, exclude? }; at least one inclusive bound. Example: `[]`
- `current_company_names` (object[]): Current employer names. Entries: { value: string, exclude?: boolean, exact_match?: boolean }. Example: `[]`
- `current_company_domains` (object[]): Current employer domains. Exact matching recommended. Entries: { value: string, exclude?: boolean, exact_match?: boolean }. Example: `[]`
- `current_company_ids` (object[]): Current employer FullEnrich IDs. Entries: { value: string, exclude?: boolean, exact_match?: boolean }. Example: `[]`
- `current_company_professional_network_urls` (object[]): Current employer LinkedIn URLs. Entries: { value: string, exclude?: boolean, exact_match?: boolean }. Example: `[]`
- `current_company_professional_network_ids` (object[]): Current employer LinkedIn IDs. Entries: { value: number, exclude?: boolean, exact_match?: boolean }. Example: `[]`
- `current_company_specialties` (object[]): Current employer specialties. Entries: { value: string, exclude?: boolean, exact_match?: boolean }. Example: `[]`
- `current_company_industries` (object[]): Current employer industries. Entries: { value: string, exclude?: boolean, exact_match?: boolean }. Example: `[]`
- `current_company_technologies` (object[]): Technologies used by the current employer. Entries: { value: string, exclude?: boolean, exact_match?: boolean }. Example: `[]`
- `current_company_types` (object[]): Company types, such as Public Company or Nonprofit. Entries: { value: string, exclude?: boolean, exact_match?: boolean }. Example: `[]`
- `current_company_headquarters` (object[]): Current employer headquarters locations. Entries: { value: string, exclude?: boolean, exact_match?: boolean }. Example: `[]`
- `current_company_headcounts` (object[]): Current employer employee counts. Entries: { min?, max?, exclude? }; at least one inclusive bound. Example: `[]`
- `current_company_founded_years` (object[]): Current employer founding years. Entries: { min?, max?, exclude? }; at least one inclusive bound. Example: `[]`
- `current_company_years_at` (object[]): Years at the current employer. Entries: { min?, max?, exclude? }; at least one inclusive bound. Example: `[]`
- `current_company_days_since_last_job_change` (object[]): Days since the last job change. Entries: { min?, max?, exclude? }; at least one inclusive bound. Example: `[]`
- `past_company_names` (object[]): Previous employer names. Entries: { value: string, exclude?: boolean, exact_match?: boolean }. Example: `[]`
- `past_company_domains` (object[]): Previous employer domains. Entries: { value: string, exclude?: boolean, exact_match?: boolean }. Example: `[]`

Response schema example:
```json
{
  "people": [
    {
      "id": "<id>",
      "full_name": "<full_name>",
      "first_name": "<first_name>",
      "last_name": "<last_name>",
      "headline": "<headline>",
      "description": "<description>",
      "location": {},
      "social_profiles": {},
      "employment": {},
      "educations": [],
      "languages": [],
      "skills": []
    }
  ]
}
```

### Person lookup

- Capability: `people/lookup`
- Description: The best matching person in the people array, or an empty array when no match is found. No-match costs no credits.
- Instructions: Resolve a person from a LinkedIn URL or ID, or a full name combined with a company domain, LinkedIn URL, or ID. Returns a profile, not verified email addresses or phone numbers.
- Cost: 5 credits per record
- Capability file: [Person lookup](https://firecrawl.dev/alexandria/agents/providers/fullenrich/people/lookup)

Accepted options:
- `person_name` (string): Full name. Combine with a company identifier. Example: `<person_name>`
- `person_professional_network_url` (string): LinkedIn profile URL. Example: `<person_professional_network_url>`
- `person_professional_network_id` (number): LinkedIn profile ID. Example: `10`
- `company_domain` (string): Employer domain, such as fullenrich.com. Example: `<company_domain>`
- `company_professional_network_url` (string): Employer LinkedIn URL. Example: `<company_professional_network_url>`
- `company_professional_network_id` (number): Employer LinkedIn ID. Example: `10`

Response schema example:
```json
{
  "people": [
    {
      "id": "<id>",
      "full_name": "<full_name>",
      "first_name": "<first_name>",
      "last_name": "<last_name>",
      "headline": "<headline>",
      "description": "<description>",
      "location": {},
      "social_profiles": {},
      "employment": {},
      "educations": [],
      "languages": [],
      "skills": []
    }
  ]
}
```

### Company match

- Capability: `companies/match`
- Description: At most one matching company in the companies array. An empty array costs no credits.
- Instructions: Match an exact LinkedIn company URL. Use companies/lookup to resolve a domain, or companies/search to build a shortlist.
- Cost: 5 credits per record
- Capability file: [Company match](https://firecrawl.dev/alexandria/agents/providers/fullenrich/companies/match)

Accepted options:
- `linkedin_url` (string, required): Canonical LinkedIn company URL, such as https://www.linkedin.com/company/fullenrich. Matched exactly. Example: `<linkedin_url>`

Response schema example:
```json
{
  "companies": [
    {
      "id": "<id>",
      "name": "<name>",
      "domain": "<domain>",
      "website": "<website>",
      "description": "<description>",
      "year_founded": 0,
      "headcount": 0,
      "headcount_range": "<headcount_range>",
      "company_type": "<company_type>",
      "locations": {},
      "social_profiles": {},
      "specialties": [],
      "technologies": [],
      "industry": {},
      "logo_url": "<logo_url>"
    }
  ]
}
```

### Company search

- Capability: `companies/search`
- Description: Company records in the companies array. Search also returns metadata.total, metadata.offset, and metadata.search_after. An empty array costs no credits.
- Instructions: Find companies by industry, size, location, technologies, or founding year. Combine filters and page through the results. Use companies/lookup when you already have a domain or LinkedIn identifier.
- Cost: 5 credits per record
- Capability file: [Company search](https://firecrawl.dev/alexandria/agents/providers/fullenrich/companies/search)

Accepted options:
- `limit` (number): Records per page, up to 6. Each returned record costs 5 credits. Use pagination for more. Example: `2`
- `offset` (number): Records to skip. Use search_after beyond 10,000. Example: `10`
- `search_after` (string): Cursor from the previous response's metadata.search_after. Keep the same filters. Example: `<search_after>`
- `names` (object[]): Company names. Entries: { value: string, exclude?: boolean, exact_match?: boolean }. Example: `[]`
- `domains` (object[]): Company domains. Exact matching recommended. Entries: { value: string, exclude?: boolean, exact_match?: boolean }. Example: `[]`
- `company_ids` (object[]): FullEnrich company IDs. Entries: { value: string, exclude?: boolean, exact_match?: boolean }. Example: `[]`
- `professional_network_urls` (object[]): LinkedIn company URLs. Entries: { value: string, exclude?: boolean, exact_match?: boolean }. Example: `[]`
- `professional_network_ids` (object[]): LinkedIn company IDs. Entries: { value: number, exclude?: boolean, exact_match?: boolean }. Example: `[]`
- `keywords` (object[]): Keywords in company descriptions. Entries: { value: string, exclude?: boolean, exact_match?: boolean }. Example: `[]`
- `specialties` (object[]): Company specialties. Entries: { value: string, exclude?: boolean, exact_match?: boolean }. Example: `[]`
- `technologies` (object[]): Technologies used by the company. Entries: { value: string, exclude?: boolean, exact_match?: boolean }. Example: `[]`
- `industries` (object[]): Company industries. Entries: { value: string, exclude?: boolean, exact_match?: boolean }. Example: `[]`
- `types` (object[]): Company types, such as Public Company or Nonprofit. Entries: { value: string, exclude?: boolean, exact_match?: boolean }. Example: `[]`
- `headquarters_locations` (object[]): Headquarters cities, regions, or countries. Entries: { value: string, exclude?: boolean, exact_match?: boolean }. Example: `[]`
- `founded_years` (object[]): Founding years. Entries: { min?, max?, exclude? }; at least one inclusive bound. Example: `[]`
- `headcounts` (object[]): Employee counts. Entries: { min?, max?, exclude? }; at least one inclusive bound. Example: `[]`

Response schema example:
```json
{
  "companies": [
    {
      "id": "<id>",
      "name": "<name>",
      "domain": "<domain>",
      "website": "<website>",
      "description": "<description>",
      "year_founded": 0,
      "headcount": 0,
      "headcount_range": "<headcount_range>",
      "company_type": "<company_type>",
      "locations": {},
      "social_profiles": {},
      "specialties": [],
      "technologies": [],
      "industry": {},
      "logo_url": "<logo_url>"
    }
  ]
}
```

### Company lookup

- Capability: `companies/lookup`
- Description: The best matching company in the companies array, or an empty array when no match is found. No-match costs no credits.
- Instructions: Resolve one company from its domain, LinkedIn company URL, or LinkedIn company ID. Returns firmographics, technologies, social profiles, and locations.
- Cost: 5 credits per record
- Capability file: [Company lookup](https://firecrawl.dev/alexandria/agents/providers/fullenrich/companies/lookup)

Accepted options:
- `domain` (string): Company domain, such as fullenrich.com. Example: `<domain>`
- `professional_network_url` (string): LinkedIn company URL. Example: `<professional_network_url>`
- `professional_network_id` (number): LinkedIn company ID. Example: `10`

Response schema example:
```json
{
  "companies": [
    {
      "id": "<id>",
      "name": "<name>",
      "domain": "<domain>",
      "website": "<website>",
      "description": "<description>",
      "year_founded": 0,
      "headcount": 0,
      "headcount_range": "<headcount_range>",
      "company_type": "<company_type>",
      "locations": {},
      "social_profiles": {},
      "specialties": [],
      "technologies": [],
      "industry": {},
      "logo_url": "<logo_url>"
    }
  ]
}
```

### Work email

- Capability: `contacts/work-email`
- Description: One record in results when a deliverable, high-probability, or catch-all work email was found, an empty array when not. An empty array costs nothing. contact_info carries most_probable_work_email and the work_emails candidates; profile is present when linkedin_url was given.
- Instructions: Find a person's verified work email from a LinkedIn URL, or from their name and employer. Use contacts/mobile for a phone number and people/lookup when only the profile is needed. To enrich multiple contacts, send up to 10 separate calls in the Firecrawl /v2/scrape alexandria array, each with its own provider, capability and options. Each call accepts one contact, runs as a separate upstream job and is billed only for a result found. Inspect each call for errors; this is not a single bulk job. Concurrent enrichments share poll capacity and can hit rate limits; spread large batches out. Do not pass a contacts array in options.
- Cost: 20 credits per record
- Capability file: [Work email](https://firecrawl.dev/alexandria/agents/providers/fullenrich/contacts/work-email)

Accepted options:
- `first_name` (string): Given name. With last_name and a company, an alternative to linkedin_url. Example: `<first_name>`
- `last_name` (string): Family name. Example: `<last_name>`
- `domain` (string): Employer domain, such as fullenrich.com. Either this or company_name identifies the company. Example: `<domain>`
- `company_name` (string): Employer name, when the domain is not known. Example: `<company_name>`
- `linkedin_url` (string): LinkedIn profile URL, standard or Sales Navigator. Enough on its own, improves match rates when added to a name, and returns the professional profile alongside the contact data. Example: `<linkedin_url>`

Response schema example:
```json
{
  "results": [
    {
      "input": {},
      "contact_info": {},
      "profile": {}
    }
  ]
}
```

### Mobile number

- Capability: `contacts/mobile`
- Description: One record in results when a mobile number was found, an empty array when not. An empty array costs nothing. contact_info carries most_probable_phone and the phones candidates; profile is present when linkedin_url was given.
- Instructions: Find a person's mobile phone number from a LinkedIn URL, or from their name and employer. The most expensive line by far: ask for it only when a phone is what the task needs. To enrich multiple contacts, send up to 10 separate calls in the Firecrawl /v2/scrape alexandria array, each with its own provider, capability and options. Each call accepts one contact, runs as a separate upstream job and is billed only for a result found. Inspect each call for errors; this is not a single bulk job. Concurrent enrichments share poll capacity and can hit rate limits; spread large batches out. Do not pass a contacts array in options.
- Cost: 175 credits per record
- Capability file: [Mobile number](https://firecrawl.dev/alexandria/agents/providers/fullenrich/contacts/mobile)

Accepted options:
- `first_name` (string): Given name. With last_name and a company, an alternative to linkedin_url. Example: `<first_name>`
- `last_name` (string): Family name. Example: `<last_name>`
- `domain` (string): Employer domain, such as fullenrich.com. Either this or company_name identifies the company. Example: `<domain>`
- `company_name` (string): Employer name, when the domain is not known. Example: `<company_name>`
- `linkedin_url` (string): LinkedIn profile URL, standard or Sales Navigator. Enough on its own, improves match rates when added to a name, and returns the professional profile alongside the contact data. Example: `<linkedin_url>`

Response schema example:
```json
{
  "results": [
    {
      "input": {},
      "contact_info": {},
      "profile": {}
    }
  ]
}
```

### Personal email

- Capability: `contacts/personal-email`
- Description: One record in results when a valid personal email was found, an empty array when not. An empty array costs nothing. contact_info carries most_probable_personal_email and the personal_emails candidates; profile is present when linkedin_url was given.
- Instructions: Find a person's personal email from a LinkedIn URL, or from their name and employer. Schedule A bars marketing to personal addresses; use contacts/work-email for outreach. To enrich multiple contacts, send up to 10 separate calls in the Firecrawl /v2/scrape alexandria array, each with its own provider, capability and options. Each call accepts one contact, runs as a separate upstream job and is billed only for a result found. Inspect each call for errors; this is not a single bulk job. Concurrent enrichments share poll capacity and can hit rate limits; spread large batches out. Do not pass a contacts array in options.
- Cost: 55 credits per record
- Capability file: [Personal email](https://firecrawl.dev/alexandria/agents/providers/fullenrich/contacts/personal-email)

Accepted options:
- `first_name` (string): Given name. With last_name and a company, an alternative to linkedin_url. Example: `<first_name>`
- `last_name` (string): Family name. Example: `<last_name>`
- `domain` (string): Employer domain, such as fullenrich.com. Either this or company_name identifies the company. Example: `<domain>`
- `company_name` (string): Employer name, when the domain is not known. Example: `<company_name>`
- `linkedin_url` (string): LinkedIn profile URL, standard or Sales Navigator. Enough on its own, improves match rates when added to a name, and returns the professional profile alongside the contact data. Example: `<linkedin_url>`

Response schema example:
```json
{
  "results": [
    {
      "input": {},
      "contact_info": {},
      "profile": {}
    }
  ]
}
```

### Reverse email lookup

- Capability: `contacts/reverse-email`
- Description: One record in results when the person behind the email was found, an empty array when not. An empty array costs nothing. profile carries the person and their employer.
- Instructions: Identify the person and company behind a work or personal email address. Returns a professional profile; use people/lookup when a name or LinkedIn URL is already known. To enrich multiple contacts, send up to 10 separate calls in the Firecrawl /v2/scrape alexandria array, each with its own provider, capability and options. Each call accepts one contact, runs as a separate upstream job and is billed only for a result found. Inspect each call for errors; this is not a single bulk job. Concurrent enrichments share poll capacity and can hit rate limits; spread large batches out. Do not pass a contacts array in options.
- Cost: 20 credits per record
- Capability file: [Reverse email lookup](https://firecrawl.dev/alexandria/agents/providers/fullenrich/contacts/reverse-email)

Accepted options:
- `email` (string, required): The work or personal email address to identify. Example: `<email>`

Response schema example:
```json
{
  "results": [
    {
      "input": {},
      "profile": {}
    }
  ]
}
```
