---
type: "firecrawl-provider"
description: "Person and company enrichment with separate tier and contact products."
use_when: "Person enrichment.\n\nCompany enrichment."
categories: "People"
capabilities: 6
pricing: "10–80 credits per billed unit; see each capability for its unit and maximum."
---
# Data Legion on Firecrawl Alexandria

Person and company enrichment with separate tier and contact products.

- Categories: People
- Category index: [People category](https://firecrawl.dev/alexandria/agents/categories/people)
- Provider key: `datalegion`
- Access: Firecrawl credits
- Cost (Person enrichment (base-no-contact)): 10 credits per successful enrichment call
- Cost (Person enrichment (base-with-contact)): 50 credits per successful enrichment call
- Cost (Person enrichment (premium-no-contact)): 40 credits per successful enrichment call
- Cost (Person enrichment (premium-with-contact)): 80 credits per successful enrichment call
- Cost (Company enrichment (base)): 10 credits per successful enrichment call
- Cost (Company enrichment (premium)): 40 credits per successful enrichment call

## More

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

## Capabilities

- [Person enrichment (base-no-contact)](https://firecrawl.dev/alexandria/agents/providers/datalegion/people/enrich-base-no-contact): Matches contain a nested person record. Optional fields depend on entitlement and field selection. The outer total reports matches found.
- [Person enrichment (base-with-contact)](https://firecrawl.dev/alexandria/agents/providers/datalegion/people/enrich-base-with-contact): Matches contain a nested person record. Optional fields depend on entitlement and field selection. The outer total reports matches found.
- [Person enrichment (premium-no-contact)](https://firecrawl.dev/alexandria/agents/providers/datalegion/people/enrich-premium-no-contact): Matches contain a nested person record. Optional fields depend on entitlement and field selection. The outer total reports matches found.
- [Person enrichment (premium-with-contact)](https://firecrawl.dev/alexandria/agents/providers/datalegion/people/enrich-premium-with-contact): Matches contain a nested person record. Optional fields depend on entitlement and field selection. The outer total reports matches found.
- [Company enrichment (base)](https://firecrawl.dev/alexandria/agents/providers/datalegion/companies/enrich-base): Matches contain a nested company record. Optional fields depend on entitlement and field selection. The outer total reports matches found.
- [Company enrichment (premium)](https://firecrawl.dev/alexandria/agents/providers/datalegion/companies/enrich-premium): Matches contain a nested company record. Optional fields depend on entitlement and field selection. The outer total reports matches found.

## 1. Choose this provider when

Person enrichment.

Company enrichment.

## 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": "datalegion",
  "capability": "people/enrich-base-no-contact",
  "options": {
    "social_url": "https://www.linkedin.com/in/janedoe",
    "limit": 1
  }
}
```

## 3. Add provider options

Use only the options needed for the task:

- `email` (string): Email address (will be normalized) Example: `<email>`
- `email_hash` (string): SHA-256 (64 chars), SHA-1 (40 chars), or MD5 (32 chars) hash of normalized email address (for privacy) Example: `<email_hash>`
- `phone` (string): Phone number (will be normalized to E.164) Example: `<phone>`
- `linkedin_id` (string): LinkedIn numeric ID Example: `<linkedin_id>`
- `social_url` (string): Social profile URL (LinkedIn, Twitter/X, GitHub, Facebook - will be normalized and detected) Example: `<social_url>`
- `legion_id` (string): Legion ID (exact match) Example: `<legion_id>`
- `full_name` (string): Full name (will be normalized) Example: `<full_name>`
- `first_name` (string): First name (will be normalized) Example: `<first_name>`
- `last_name` (string): Last name (will be normalized) Example: `<last_name>`
- `address` (string): Full address string (will be parsed to extract city, state, postal_code, and country) Example: `<address>`
- `city` (string): City name Example: `<city>`
- `state` (string): State name or code Example: `<state>`
- `country` (string): Country name or code Example: `<country>`
- `postal_code` (string): Postal/ZIP code Example: `<postal_code>`
- `job_title` (string): Job title Example: `<job_title>`
- `company` (string): Company name, website, or social URL Example: `<company>`
- `school` (string): School name, website, or social URL Example: `<school>`
- `birth_date` (string): Birth date for matching or narrowing name-based results (YYYY-MM-DD, YYYY-MM, or YYYY). Can be used as name + birth_date lookup or as a qualifier on other name-based combos. Example: `<birth_date>`
- `min_confidence` (string): Minimum match confidence level to include in results: 'high', 'moderate', or 'low'. Matches below this threshold will be filtered out. Example: `high`
- `titlecase` (boolean): If true, format text fields in title case (names, job titles, company names, locations, skills, headlines). Raw fields, IDs, URLs, codes, and confidence fields are excluded. Example: `false`
- `required_fields` (string): Comma-separated list of fields that must be present, else the match is filtered out. Supports top-level fields ('work_email,phones'), a non-empty list subfield ('emails.type'), or a subfield equal to a value ('emails.type:personal', 'phones.type:mobile', 'socials.network:linkedin'). Unknown field names or out-of-range enum values return HTTP 400. Example: `<required_fields>`
- `include_fields` (string): Comma-separated list of fields to include in response. If omitted, all fields are returned. Example: `<include_fields>`
- `exclude_fields` (string): Comma-separated list of fields to exclude from response. Applied after include_fields filter. Example: `<exclude_fields>`
- `pretty_print` (boolean): If true, pretty-print JSON response with indentation. Example: `false`

## 4. Request through your preferred interface

### JavaScript

```javascript
const result = await firecrawl.scrape({
  alexandria: {
    provider: "datalegion",
    capability: "people/enrich-base-no-contact",
    options: {
      social_url: "https://www.linkedin.com/in/janedoe",
      limit: 1,
    },
  },
});
```

### Python

```python
result = firecrawl.scrape_alexandria({
  "provider": "datalegion",
  "capability": "people/enrich-base-no-contact",
  "options": {
    "social_url": "https://www.linkedin.com/in/janedoe",
    "limit": 1
  }
})
```

### cURL

```sh
curl https://api.firecrawl.dev/v2/scrape \
  -H "Authorization: Bearer $FIRECRAWL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "alexandria": {
    "provider": "datalegion",
    "capability": "people/enrich-base-no-contact",
    "options": {
      "social_url": "https://www.linkedin.com/in/janedoe",
      "limit": 1
    }
  }
}'
```

### CLI

```sh
firecrawl scrape 'datalegion/people/enrich-base-no-contact' \
  --options '{"social_url":"https://www.linkedin.com/in/janedoe","limit":1}'
```


### MCP

Call the FCX MCP retrieve tool with this object:

```json
{
  "provider": "datalegion",
  "capability": "people/enrich-base-no-contact",
  "options": {
    "social_url": "https://www.linkedin.com/in/janedoe",
    "limit": 1
  }
}
```

Ask for only the returned fields needed by the task.

## 5. Full request shape

```json
{
  "provider": "datalegion",
  "capability": "people/enrich-base-no-contact",
  "options": {
    "social_url": "https://www.linkedin.com/in/janedoe",
    "limit": 1
  }
}
```

## 6. Response data

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

```json
{
  "matches": [
    {
      "person": {
        "legion_id": "fdd85569-f0f0-53a9-bc60-089507193c28",
        "full_name": "jane marie doe",
        "first_name": "jane",
        "last_name": "doe",
        "linkedin_url": "https://www.linkedin.com/in/janedoe",
        "linkedin_id": "123456789",
        "city": "san francisco",
        "state": "california",
        "state_code": "US-CA",
        "country": "united states",
        "country_code": "US",
        "job_title": "senior product manager",
        "company_name": "tech company",
        "company_domain": "techcompany.com",
        "company_industry": "technology, information and internet",
        "company_size": "1001-5000",
        "seniority_level": "senior",
        "job_function": "product",
        "years_of_experience": 12,
        "highest_degree_level": "masters",
        "headline": {
          "cleaned": "senior product manager at tech company",
          "raw": [
            "Senior Product Manager at Tech Company"
          ]
        },
        "experience": [
          {
            "title": {
              "cleaned": "senior product manager",
              "raw": [
                "Senior Product Manager"
              ]
            },
            "seniority_level": "senior",
            "job_function": "product",
            "organization": {
              "name": {
                "cleaned": "tech company inc",
                "raw": [
                  "Tech Company Inc"
                ]
              },
              "website": "techcompany.com",
              "linkedin_url": "https://www.linkedin.com/company/tech-company-inc",
              "industry": "technology, information and internet",
              "size": "1001-5000"
            },
            "start_date": "2020-06-01",
            "end_date": null,
            "current": true,
            "tenure_months": 67
          }
        ],
        "education": [
          {
            "organization": {
              "name": {
                "cleaned": "stanford university",
                "raw": [
                  "Stanford University"
                ]
              },
              "website": "stanford.edu"
            },
            "degree": {
              "cleaned": "master of business administration",
              "raw": [
                "Master of Business Administration"
              ]
            },
            "degree_level": "masters",
            "field_of_study": {
              "cleaned": "business administration",
              "raw": [
                "Business Administration"
              ]
            },
            "start_date": "2015",
            "end_date": "2017",
            "current": false
          }
        ],
        "socials": [
          {
            "network": "linkedin",
            "url": "https://www.linkedin.com/in/janedoe",
            "username": "janedoe",
            "current": true,
            "confidence": "high"
          },
          {
            "network": "github",
            "url": "https://github.com/janedoe",
            "username": "janedoe",
            "current": true,
            "confidence": "moderate"
          }
        ],
        "skills": [
          {
            "cleaned": "project management",
            "raw": [
              "Project Management"
            ]
          },
          {
            "cleaned": "data analysis",
            "raw": [
              "Data Analysis"
            ]
          }
        ],
        "languages": [
          {
            "cleaned": "english",
            "raw": [
              "English"
            ],
            "proficiency": "native"
          }
        ],
        "num_sources": 3,
        "last_seen": "2026-01-20"
      },
      "match_metadata": {
        "matched_on": [
          "social_url"
        ],
        "match_type": "exact",
        "match_confidence": "high"
      }
    }
  ],
  "total": 1
}
```

## API reference-derived contract

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

### Person enrichment (base-no-contact)

- Capability: `people/enrich-base-no-contact`
- Description: Matches contain a nested person record. Optional fields depend on entitlement and field selection. The outer total reports matches found.
- Instructions: Match a known person using identifiers with the base-no-contact product. Contact entitlement comes from the dedicated credential, never from field projection.
- Cost: 10 credits per successful enrichment call
- Capability file: [Person enrichment (base-no-contact)](https://firecrawl.dev/alexandria/agents/providers/datalegion/people/enrich-base-no-contact)

Accepted options:
- `email` (string): Email address (will be normalized) Example: `<email>`
- `email_hash` (string): SHA-256 (64 chars), SHA-1 (40 chars), or MD5 (32 chars) hash of normalized email address (for privacy) Example: `<email_hash>`
- `phone` (string): Phone number (will be normalized to E.164) Example: `<phone>`
- `linkedin_id` (string): LinkedIn numeric ID Example: `<linkedin_id>`
- `social_url` (string): Social profile URL (LinkedIn, Twitter/X, GitHub, Facebook - will be normalized and detected) Example: `<social_url>`
- `legion_id` (string): Legion ID (exact match) Example: `<legion_id>`
- `full_name` (string): Full name (will be normalized) Example: `<full_name>`
- `first_name` (string): First name (will be normalized) Example: `<first_name>`
- `last_name` (string): Last name (will be normalized) Example: `<last_name>`
- `address` (string): Full address string (will be parsed to extract city, state, postal_code, and country) Example: `<address>`
- `city` (string): City name Example: `<city>`
- `state` (string): State name or code Example: `<state>`
- `country` (string): Country name or code Example: `<country>`
- `postal_code` (string): Postal/ZIP code Example: `<postal_code>`
- `job_title` (string): Job title Example: `<job_title>`
- `company` (string): Company name, website, or social URL Example: `<company>`
- `school` (string): School name, website, or social URL Example: `<school>`
- `birth_date` (string): Birth date for matching or narrowing name-based results (YYYY-MM-DD, YYYY-MM, or YYYY). Can be used as name + birth_date lookup or as a qualifier on other name-based combos. Example: `<birth_date>`
- `min_confidence` (string): Minimum match confidence level to include in results: 'high', 'moderate', or 'low'. Matches below this threshold will be filtered out. Example: `high`
- `titlecase` (boolean): If true, format text fields in title case (names, job titles, company names, locations, skills, headlines). Raw fields, IDs, URLs, codes, and confidence fields are excluded. Example: `false`
- `required_fields` (string): Comma-separated list of fields that must be present, else the match is filtered out. Supports top-level fields ('work_email,phones'), a non-empty list subfield ('emails.type'), or a subfield equal to a value ('emails.type:personal', 'phones.type:mobile', 'socials.network:linkedin'). Unknown field names or out-of-range enum values return HTTP 400. Example: `<required_fields>`
- `include_fields` (string): Comma-separated list of fields to include in response. If omitted, all fields are returned. Example: `<include_fields>`
- `exclude_fields` (string): Comma-separated list of fields to exclude from response. Applied after include_fields filter. Example: `<exclude_fields>`
- `pretty_print` (boolean): If true, pretty-print JSON response with indentation. Example: `false`

Response schema example:
```json
{
  "matches": [
    {
      "person": {
        "legion_id": "fdd85569-f0f0-53a9-bc60-089507193c28",
        "full_name": "jane marie doe",
        "first_name": "jane",
        "last_name": "doe",
        "linkedin_url": "https://www.linkedin.com/in/janedoe",
        "linkedin_id": "123456789",
        "city": "san francisco",
        "state": "california",
        "state_code": "US-CA",
        "country": "united states",
        "country_code": "US",
        "job_title": "senior product manager",
        "company_name": "tech company",
        "company_domain": "techcompany.com",
        "company_industry": "technology, information and internet",
        "company_size": "1001-5000",
        "seniority_level": "senior",
        "job_function": "product",
        "years_of_experience": 12,
        "highest_degree_level": "masters",
        "headline": {
          "cleaned": "senior product manager at tech company",
          "raw": [
            "Senior Product Manager at Tech Company"
          ]
        },
        "experience": [
          {
            "title": {
              "cleaned": "senior product manager",
              "raw": [
                "Senior Product Manager"
              ]
            },
            "seniority_level": "senior",
            "job_function": "product",
            "organization": {
              "name": {
                "cleaned": "tech company inc",
                "raw": [
                  "Tech Company Inc"
                ]
              },
              "website": "techcompany.com",
              "linkedin_url": "https://www.linkedin.com/company/tech-company-inc",
              "industry": "technology, information and internet",
              "size": "1001-5000"
            },
            "start_date": "2020-06-01",
            "end_date": null,
            "current": true,
            "tenure_months": 67
          }
        ],
        "education": [
          {
            "organization": {
              "name": {
                "cleaned": "stanford university",
                "raw": [
                  "Stanford University"
                ]
              },
              "website": "stanford.edu"
            },
            "degree": {
              "cleaned": "master of business administration",
              "raw": [
                "Master of Business Administration"
              ]
            },
            "degree_level": "masters",
            "field_of_study": {
              "cleaned": "business administration",
              "raw": [
                "Business Administration"
              ]
            },
            "start_date": "2015",
            "end_date": "2017",
            "current": false
          }
        ],
        "socials": [
          {
            "network": "linkedin",
            "url": "https://www.linkedin.com/in/janedoe",
            "username": "janedoe",
            "current": true,
            "confidence": "high"
          },
          {
            "network": "github",
            "url": "https://github.com/janedoe",
            "username": "janedoe",
            "current": true,
            "confidence": "moderate"
          }
        ],
        "skills": [
          {
            "cleaned": "project management",
            "raw": [
              "Project Management"
            ]
          },
          {
            "cleaned": "data analysis",
            "raw": [
              "Data Analysis"
            ]
          }
        ],
        "languages": [
          {
            "cleaned": "english",
            "raw": [
              "English"
            ],
            "proficiency": "native"
          }
        ],
        "num_sources": 3,
        "last_seen": "2026-01-20"
      },
      "match_metadata": {
        "matched_on": [
          "social_url"
        ],
        "match_type": "exact",
        "match_confidence": "high"
      }
    }
  ],
  "total": 1
}
```

### Person enrichment (base-with-contact)

- Capability: `people/enrich-base-with-contact`
- Description: Matches contain a nested person record. Optional fields depend on entitlement and field selection. The outer total reports matches found.
- Instructions: Match a known person using identifiers with the base-with-contact product. Contact entitlement comes from the dedicated credential, never from field projection.
- Cost: 50 credits per successful enrichment call
- Capability file: [Person enrichment (base-with-contact)](https://firecrawl.dev/alexandria/agents/providers/datalegion/people/enrich-base-with-contact)

Accepted options:
- `email` (string): Email address (will be normalized) Example: `<email>`
- `email_hash` (string): SHA-256 (64 chars), SHA-1 (40 chars), or MD5 (32 chars) hash of normalized email address (for privacy) Example: `<email_hash>`
- `phone` (string): Phone number (will be normalized to E.164) Example: `<phone>`
- `linkedin_id` (string): LinkedIn numeric ID Example: `<linkedin_id>`
- `social_url` (string): Social profile URL (LinkedIn, Twitter/X, GitHub, Facebook - will be normalized and detected) Example: `<social_url>`
- `legion_id` (string): Legion ID (exact match) Example: `<legion_id>`
- `full_name` (string): Full name (will be normalized) Example: `<full_name>`
- `first_name` (string): First name (will be normalized) Example: `<first_name>`
- `last_name` (string): Last name (will be normalized) Example: `<last_name>`
- `address` (string): Full address string (will be parsed to extract city, state, postal_code, and country) Example: `<address>`
- `city` (string): City name Example: `<city>`
- `state` (string): State name or code Example: `<state>`
- `country` (string): Country name or code Example: `<country>`
- `postal_code` (string): Postal/ZIP code Example: `<postal_code>`
- `job_title` (string): Job title Example: `<job_title>`
- `company` (string): Company name, website, or social URL Example: `<company>`
- `school` (string): School name, website, or social URL Example: `<school>`
- `birth_date` (string): Birth date for matching or narrowing name-based results (YYYY-MM-DD, YYYY-MM, or YYYY). Can be used as name + birth_date lookup or as a qualifier on other name-based combos. Example: `<birth_date>`
- `min_confidence` (string): Minimum match confidence level to include in results: 'high', 'moderate', or 'low'. Matches below this threshold will be filtered out. Example: `high`
- `titlecase` (boolean): If true, format text fields in title case (names, job titles, company names, locations, skills, headlines). Raw fields, IDs, URLs, codes, and confidence fields are excluded. Example: `false`
- `required_fields` (string): Comma-separated list of fields that must be present, else the match is filtered out. Supports top-level fields ('work_email,phones'), a non-empty list subfield ('emails.type'), or a subfield equal to a value ('emails.type:personal', 'phones.type:mobile', 'socials.network:linkedin'). Unknown field names or out-of-range enum values return HTTP 400. Example: `<required_fields>`
- `include_fields` (string): Comma-separated list of fields to include in response. If omitted, all fields are returned. Example: `<include_fields>`
- `exclude_fields` (string): Comma-separated list of fields to exclude from response. Applied after include_fields filter. Example: `<exclude_fields>`
- `pretty_print` (boolean): If true, pretty-print JSON response with indentation. Example: `false`

Response schema example:
```json
{
  "matches": [
    {
      "person": {
        "legion_id": "fdd85569-f0f0-53a9-bc60-089507193c28",
        "full_name": "jane marie doe",
        "first_name": "jane",
        "last_name": "doe",
        "linkedin_url": "https://www.linkedin.com/in/janedoe",
        "linkedin_id": "123456789",
        "city": "san francisco",
        "state": "california",
        "state_code": "US-CA",
        "country": "united states",
        "country_code": "US",
        "job_title": "senior product manager",
        "company_name": "tech company",
        "company_domain": "techcompany.com",
        "company_industry": "technology, information and internet",
        "company_size": "1001-5000",
        "seniority_level": "senior",
        "job_function": "product",
        "years_of_experience": 12,
        "highest_degree_level": "masters",
        "headline": {
          "cleaned": "senior product manager at tech company",
          "raw": [
            "Senior Product Manager at Tech Company"
          ]
        },
        "experience": [
          {
            "title": {
              "cleaned": "senior product manager",
              "raw": [
                "Senior Product Manager"
              ]
            },
            "seniority_level": "senior",
            "job_function": "product",
            "organization": {
              "name": {
                "cleaned": "tech company inc",
                "raw": [
                  "Tech Company Inc"
                ]
              },
              "website": "techcompany.com",
              "linkedin_url": "https://www.linkedin.com/company/tech-company-inc",
              "industry": "technology, information and internet",
              "size": "1001-5000"
            },
            "start_date": "2020-06-01",
            "end_date": null,
            "current": true,
            "tenure_months": 67
          }
        ],
        "education": [
          {
            "organization": {
              "name": {
                "cleaned": "stanford university",
                "raw": [
                  "Stanford University"
                ]
              },
              "website": "stanford.edu"
            },
            "degree": {
              "cleaned": "master of business administration",
              "raw": [
                "Master of Business Administration"
              ]
            },
            "degree_level": "masters",
            "field_of_study": {
              "cleaned": "business administration",
              "raw": [
                "Business Administration"
              ]
            },
            "start_date": "2015",
            "end_date": "2017",
            "current": false
          }
        ],
        "socials": [
          {
            "network": "linkedin",
            "url": "https://www.linkedin.com/in/janedoe",
            "username": "janedoe",
            "current": true,
            "confidence": "high"
          },
          {
            "network": "github",
            "url": "https://github.com/janedoe",
            "username": "janedoe",
            "current": true,
            "confidence": "moderate"
          }
        ],
        "skills": [
          {
            "cleaned": "project management",
            "raw": [
              "Project Management"
            ]
          },
          {
            "cleaned": "data analysis",
            "raw": [
              "Data Analysis"
            ]
          }
        ],
        "languages": [
          {
            "cleaned": "english",
            "raw": [
              "English"
            ],
            "proficiency": "native"
          }
        ],
        "num_sources": 3,
        "last_seen": "2026-01-20",
        "work_email": "jane.doe@techcompany.com",
        "mobile_phone": "+15551234567",
        "emails": [
          {
            "address": "jane.doe@techcompany.com",
            "type": "professional",
            "current": true,
            "validated": true,
            "confidence": "high",
            "last_seen": "2026-01-20"
          }
        ],
        "phones": [
          {
            "type": "mobile",
            "number": "+15551234567",
            "current": true,
            "confidence": "high",
            "last_seen": "2026-01-15"
          }
        ]
      },
      "match_metadata": {
        "matched_on": [
          "social_url"
        ],
        "match_type": "exact",
        "match_confidence": "high"
      }
    }
  ],
  "total": 1
}
```

### Person enrichment (premium-no-contact)

- Capability: `people/enrich-premium-no-contact`
- Description: Matches contain a nested person record. Optional fields depend on entitlement and field selection. The outer total reports matches found.
- Instructions: Match a known person using identifiers with the premium-no-contact product. Contact entitlement comes from the dedicated credential, never from field projection.
- Cost: 40 credits per successful enrichment call
- Capability file: [Person enrichment (premium-no-contact)](https://firecrawl.dev/alexandria/agents/providers/datalegion/people/enrich-premium-no-contact)

Accepted options:
- `email` (string): Email address (will be normalized) Example: `<email>`
- `email_hash` (string): SHA-256 (64 chars), SHA-1 (40 chars), or MD5 (32 chars) hash of normalized email address (for privacy) Example: `<email_hash>`
- `phone` (string): Phone number (will be normalized to E.164) Example: `<phone>`
- `linkedin_id` (string): LinkedIn numeric ID Example: `<linkedin_id>`
- `social_url` (string): Social profile URL (LinkedIn, Twitter/X, GitHub, Facebook - will be normalized and detected) Example: `<social_url>`
- `legion_id` (string): Legion ID (exact match) Example: `<legion_id>`
- `full_name` (string): Full name (will be normalized) Example: `<full_name>`
- `first_name` (string): First name (will be normalized) Example: `<first_name>`
- `last_name` (string): Last name (will be normalized) Example: `<last_name>`
- `address` (string): Full address string (will be parsed to extract city, state, postal_code, and country) Example: `<address>`
- `city` (string): City name Example: `<city>`
- `state` (string): State name or code Example: `<state>`
- `country` (string): Country name or code Example: `<country>`
- `postal_code` (string): Postal/ZIP code Example: `<postal_code>`
- `job_title` (string): Job title Example: `<job_title>`
- `company` (string): Company name, website, or social URL Example: `<company>`
- `school` (string): School name, website, or social URL Example: `<school>`
- `birth_date` (string): Birth date for matching or narrowing name-based results (YYYY-MM-DD, YYYY-MM, or YYYY). Can be used as name + birth_date lookup or as a qualifier on other name-based combos. Example: `<birth_date>`
- `min_confidence` (string): Minimum match confidence level to include in results: 'high', 'moderate', or 'low'. Matches below this threshold will be filtered out. Example: `high`
- `titlecase` (boolean): If true, format text fields in title case (names, job titles, company names, locations, skills, headlines). Raw fields, IDs, URLs, codes, and confidence fields are excluded. Example: `false`
- `required_fields` (string): Comma-separated list of fields that must be present, else the match is filtered out. Supports top-level fields ('work_email,phones'), a non-empty list subfield ('emails.type'), or a subfield equal to a value ('emails.type:personal', 'phones.type:mobile', 'socials.network:linkedin'). Unknown field names or out-of-range enum values return HTTP 400. Example: `<required_fields>`
- `include_fields` (string): Comma-separated list of fields to include in response. If omitted, all fields are returned. Example: `<include_fields>`
- `exclude_fields` (string): Comma-separated list of fields to exclude from response. Applied after include_fields filter. Example: `<exclude_fields>`
- `pretty_print` (boolean): If true, pretty-print JSON response with indentation. Example: `false`

Response schema example:
```json
{
  "matches": [
    {
      "person": {
        "legion_id": "fdd85569-f0f0-53a9-bc60-089507193c28",
        "full_name": "jane marie doe",
        "first_name": "jane",
        "last_name": "doe",
        "linkedin_url": "https://www.linkedin.com/in/janedoe",
        "linkedin_id": "123456789",
        "city": "san francisco",
        "state": "california",
        "state_code": "US-CA",
        "country": "united states",
        "country_code": "US",
        "job_title": "senior product manager",
        "company_name": "tech company",
        "company_domain": "techcompany.com",
        "company_industry": "technology, information and internet",
        "company_size": "1001-5000",
        "seniority_level": "senior",
        "job_function": "product",
        "years_of_experience": 12,
        "highest_degree_level": "masters",
        "headline": {
          "cleaned": "senior product manager at tech company",
          "raw": [
            "Senior Product Manager at Tech Company"
          ]
        },
        "experience": [
          {
            "title": {
              "cleaned": "senior product manager",
              "raw": [
                "Senior Product Manager"
              ]
            },
            "seniority_level": "senior",
            "job_function": "product",
            "organization": {
              "name": {
                "cleaned": "tech company inc",
                "raw": [
                  "Tech Company Inc"
                ]
              },
              "website": "techcompany.com",
              "linkedin_url": "https://www.linkedin.com/company/tech-company-inc",
              "industry": "technology, information and internet",
              "size": "1001-5000"
            },
            "start_date": "2020-06-01",
            "end_date": null,
            "current": true,
            "tenure_months": 67
          }
        ],
        "education": [
          {
            "organization": {
              "name": {
                "cleaned": "stanford university",
                "raw": [
                  "Stanford University"
                ]
              },
              "website": "stanford.edu"
            },
            "degree": {
              "cleaned": "master of business administration",
              "raw": [
                "Master of Business Administration"
              ]
            },
            "degree_level": "masters",
            "field_of_study": {
              "cleaned": "business administration",
              "raw": [
                "Business Administration"
              ]
            },
            "start_date": "2015",
            "end_date": "2017",
            "current": false
          }
        ],
        "socials": [
          {
            "network": "linkedin",
            "url": "https://www.linkedin.com/in/janedoe",
            "username": "janedoe",
            "current": true,
            "confidence": "high"
          },
          {
            "network": "github",
            "url": "https://github.com/janedoe",
            "username": "janedoe",
            "current": true,
            "confidence": "moderate"
          }
        ],
        "skills": [
          {
            "cleaned": "project management",
            "raw": [
              "Project Management"
            ]
          },
          {
            "cleaned": "data analysis",
            "raw": [
              "Data Analysis"
            ]
          }
        ],
        "languages": [
          {
            "cleaned": "english",
            "raw": [
              "English"
            ],
            "proficiency": "native"
          }
        ],
        "num_sources": 3,
        "last_seen": "2026-01-20"
      },
      "match_metadata": {
        "matched_on": [
          "social_url"
        ],
        "match_type": "exact",
        "match_confidence": "high"
      }
    }
  ],
  "total": 1
}
```

### Person enrichment (premium-with-contact)

- Capability: `people/enrich-premium-with-contact`
- Description: Matches contain a nested person record. Optional fields depend on entitlement and field selection. The outer total reports matches found.
- Instructions: Match a known person using identifiers with the premium-with-contact product. Contact entitlement comes from the dedicated credential, never from field projection.
- Cost: 80 credits per successful enrichment call
- Capability file: [Person enrichment (premium-with-contact)](https://firecrawl.dev/alexandria/agents/providers/datalegion/people/enrich-premium-with-contact)

Accepted options:
- `email` (string): Email address (will be normalized) Example: `<email>`
- `email_hash` (string): SHA-256 (64 chars), SHA-1 (40 chars), or MD5 (32 chars) hash of normalized email address (for privacy) Example: `<email_hash>`
- `phone` (string): Phone number (will be normalized to E.164) Example: `<phone>`
- `linkedin_id` (string): LinkedIn numeric ID Example: `<linkedin_id>`
- `social_url` (string): Social profile URL (LinkedIn, Twitter/X, GitHub, Facebook - will be normalized and detected) Example: `<social_url>`
- `legion_id` (string): Legion ID (exact match) Example: `<legion_id>`
- `full_name` (string): Full name (will be normalized) Example: `<full_name>`
- `first_name` (string): First name (will be normalized) Example: `<first_name>`
- `last_name` (string): Last name (will be normalized) Example: `<last_name>`
- `address` (string): Full address string (will be parsed to extract city, state, postal_code, and country) Example: `<address>`
- `city` (string): City name Example: `<city>`
- `state` (string): State name or code Example: `<state>`
- `country` (string): Country name or code Example: `<country>`
- `postal_code` (string): Postal/ZIP code Example: `<postal_code>`
- `job_title` (string): Job title Example: `<job_title>`
- `company` (string): Company name, website, or social URL Example: `<company>`
- `school` (string): School name, website, or social URL Example: `<school>`
- `birth_date` (string): Birth date for matching or narrowing name-based results (YYYY-MM-DD, YYYY-MM, or YYYY). Can be used as name + birth_date lookup or as a qualifier on other name-based combos. Example: `<birth_date>`
- `min_confidence` (string): Minimum match confidence level to include in results: 'high', 'moderate', or 'low'. Matches below this threshold will be filtered out. Example: `high`
- `titlecase` (boolean): If true, format text fields in title case (names, job titles, company names, locations, skills, headlines). Raw fields, IDs, URLs, codes, and confidence fields are excluded. Example: `false`
- `required_fields` (string): Comma-separated list of fields that must be present, else the match is filtered out. Supports top-level fields ('work_email,phones'), a non-empty list subfield ('emails.type'), or a subfield equal to a value ('emails.type:personal', 'phones.type:mobile', 'socials.network:linkedin'). Unknown field names or out-of-range enum values return HTTP 400. Example: `<required_fields>`
- `include_fields` (string): Comma-separated list of fields to include in response. If omitted, all fields are returned. Example: `<include_fields>`
- `exclude_fields` (string): Comma-separated list of fields to exclude from response. Applied after include_fields filter. Example: `<exclude_fields>`
- `pretty_print` (boolean): If true, pretty-print JSON response with indentation. Example: `false`

Response schema example:
```json
{
  "matches": [
    {
      "person": {
        "legion_id": "fdd85569-f0f0-53a9-bc60-089507193c28",
        "full_name": "jane marie doe",
        "first_name": "jane",
        "last_name": "doe",
        "linkedin_url": "https://www.linkedin.com/in/janedoe",
        "linkedin_id": "123456789",
        "city": "san francisco",
        "state": "california",
        "state_code": "US-CA",
        "country": "united states",
        "country_code": "US",
        "job_title": "senior product manager",
        "company_name": "tech company",
        "company_domain": "techcompany.com",
        "company_industry": "technology, information and internet",
        "company_size": "1001-5000",
        "seniority_level": "senior",
        "job_function": "product",
        "years_of_experience": 12,
        "highest_degree_level": "masters",
        "headline": {
          "cleaned": "senior product manager at tech company",
          "raw": [
            "Senior Product Manager at Tech Company"
          ]
        },
        "experience": [
          {
            "title": {
              "cleaned": "senior product manager",
              "raw": [
                "Senior Product Manager"
              ]
            },
            "seniority_level": "senior",
            "job_function": "product",
            "organization": {
              "name": {
                "cleaned": "tech company inc",
                "raw": [
                  "Tech Company Inc"
                ]
              },
              "website": "techcompany.com",
              "linkedin_url": "https://www.linkedin.com/company/tech-company-inc",
              "industry": "technology, information and internet",
              "size": "1001-5000"
            },
            "start_date": "2020-06-01",
            "end_date": null,
            "current": true,
            "tenure_months": 67
          }
        ],
        "education": [
          {
            "organization": {
              "name": {
                "cleaned": "stanford university",
                "raw": [
                  "Stanford University"
                ]
              },
              "website": "stanford.edu"
            },
            "degree": {
              "cleaned": "master of business administration",
              "raw": [
                "Master of Business Administration"
              ]
            },
            "degree_level": "masters",
            "field_of_study": {
              "cleaned": "business administration",
              "raw": [
                "Business Administration"
              ]
            },
            "start_date": "2015",
            "end_date": "2017",
            "current": false
          }
        ],
        "socials": [
          {
            "network": "linkedin",
            "url": "https://www.linkedin.com/in/janedoe",
            "username": "janedoe",
            "current": true,
            "confidence": "high"
          },
          {
            "network": "github",
            "url": "https://github.com/janedoe",
            "username": "janedoe",
            "current": true,
            "confidence": "moderate"
          }
        ],
        "skills": [
          {
            "cleaned": "project management",
            "raw": [
              "Project Management"
            ]
          },
          {
            "cleaned": "data analysis",
            "raw": [
              "Data Analysis"
            ]
          }
        ],
        "languages": [
          {
            "cleaned": "english",
            "raw": [
              "English"
            ],
            "proficiency": "native"
          }
        ],
        "num_sources": 3,
        "last_seen": "2026-01-20",
        "work_email": "jane.doe@techcompany.com",
        "mobile_phone": "+15551234567",
        "emails": [
          {
            "address": "jane.doe@techcompany.com",
            "type": "professional",
            "current": true,
            "validated": true,
            "confidence": "high",
            "last_seen": "2026-01-20"
          }
        ],
        "phones": [
          {
            "type": "mobile",
            "number": "+15551234567",
            "current": true,
            "confidence": "high",
            "last_seen": "2026-01-15"
          }
        ]
      },
      "match_metadata": {
        "matched_on": [
          "social_url"
        ],
        "match_type": "exact",
        "match_confidence": "high"
      }
    }
  ],
  "total": 1
}
```

### Company enrichment (base)

- Capability: `companies/enrich-base`
- Description: Matches contain a nested company record. Optional fields depend on entitlement and field selection. The outer total reports matches found.
- Instructions: Match a known company using identifiers with the base product. Contact entitlement comes from the dedicated credential, never from field projection.
- Cost: 10 credits per successful enrichment call
- Capability file: [Company enrichment (base)](https://firecrawl.dev/alexandria/agents/providers/datalegion/companies/enrich-base)

Accepted options:
- `legion_id` (string): Company Legion ID (exact match) Example: `<legion_id>`
- `domain` (string): Company website domain (e.g., google.com) Example: `<domain>`
- `name` (string): Company name (fuzzy matching) Example: `<name>`
- `linkedin_id` (string): LinkedIn company numeric ID Example: `<linkedin_id>`
- `social_url` (string): Social profile URL (LinkedIn, Facebook, Crunchbase, X/Twitter, GitHub - will be normalized and detected) Example: `<social_url>`
- `ticker_symbol` (string): Stock ticker symbol (e.g., GOOGL) Example: `<ticker_symbol>`
- `industry` (string): Industry filter (used with name matching for better accuracy) Example: `<industry>`
- `min_confidence` (string): Minimum match confidence: 'high', 'moderate', or 'low' Example: `high`
- `titlecase` (boolean): If true, format text fields in title case (names, company names, locations). Raw fields, IDs, URLs, codes, and confidence fields are excluded. Example: `false`
- `required_fields` (string): Comma-separated list of fields that must be present, else the match is filtered out. Supports top-level fields ('domain,socials'), a non-empty list subfield ('socials.network'), or a subfield equal to a value ('type:public', 'socials.network:linkedin'). Unknown field names or out-of-range enum values return HTTP 400. Example: `<required_fields>`
- `include_fields` (string): Comma-separated list of fields to include in response. If omitted, all fields are returned. Example: `<include_fields>`
- `exclude_fields` (string): Comma-separated list of fields to exclude from response. Applied after include_fields filter. Example: `<exclude_fields>`
- `pretty_print` (boolean): If true, pretty-print JSON response with indentation. Example: `false`

Response schema example:
```json
{
  "matches": [
    {
      "company": {
        "legion_id": "c8a1b2c3-d4e5-6f7a-8b9c-0d1e2f3a4b5c",
        "name": {
          "cleaned": "tech company inc",
          "display": "Tech Company",
          "raw": [
            "Tech Company, Inc.",
            "Tech Company"
          ]
        },
        "headline": {
          "cleaned": "enterprise platform for product teams",
          "raw": [
            "Enterprise platform for product teams"
          ]
        },
        "domain": "techcompany.com",
        "linkedin_url": "https://www.linkedin.com/company/tech-company-inc",
        "linkedin_id": "12345678",
        "linkedin_followers": 125000,
        "linkedin_employee_count": 3200,
        "industry": "technology, information and internet",
        "type": "private",
        "size": "1001-5000",
        "founded": 2012,
        "legion_employee_count": 3350,
        "legion_average_tenure": 28.4,
        "legion_new_hire_count": {
          "1m": 35,
          "3m": 95,
          "6m": 170,
          "12m": 310
        },
        "legion_attrition_count": {
          "1m": 14,
          "3m": 40,
          "6m": 72,
          "12m": 130
        },
        "legion_employee_growth_rate": {
          "1m": 0.012,
          "3m": 0.035,
          "6m": 0.068,
          "12m": 0.125
        },
        "legion_seniority_distribution": {
          "c_level": 6,
          "vp": 30,
          "director": 120,
          "manager": 430,
          "senior": 1100,
          "junior": 1260
        },
        "legion_job_function_distribution": {
          "engineering": 1350,
          "sales": 480,
          "operations": 320,
          "marketing": 240,
          "product": 180
        },
        "tickers": [],
        "socials": [
          {
            "network": "x",
            "url": "https://www.x.com/techcompany",
            "username": "techcompany"
          },
          {
            "network": "github",
            "url": "https://github.com/techcompany",
            "username": "techcompany"
          }
        ],
        "domains": [
          {
            "domain": "techcompany.com"
          },
          {
            "domain": "techcompany.dev"
          }
        ],
        "legion_employee_count_by_month": [
          {
            "month": "2026-01",
            "count": 3350,
            "net_change": 20,
            "growth_rate": 0.006,
            "hires": 48,
            "departures": 28
          },
          {
            "month": "2025-12",
            "count": 3330,
            "net_change": 26,
            "growth_rate": 0.008,
            "hires": 54,
            "departures": 28
          }
        ],
        "num_sources": 5,
        "last_seen": "2026-01"
      },
      "match_metadata": {
        "matched_on": [
          "domain"
        ],
        "match_type": "exact",
        "match_confidence": "high"
      }
    }
  ],
  "total": 1
}
```

### Company enrichment (premium)

- Capability: `companies/enrich-premium`
- Description: Matches contain a nested company record. Optional fields depend on entitlement and field selection. The outer total reports matches found.
- Instructions: Match a known company using identifiers with the premium product. Contact entitlement comes from the dedicated credential, never from field projection.
- Cost: 40 credits per successful enrichment call
- Capability file: [Company enrichment (premium)](https://firecrawl.dev/alexandria/agents/providers/datalegion/companies/enrich-premium)

Accepted options:
- `legion_id` (string): Company Legion ID (exact match) Example: `<legion_id>`
- `domain` (string): Company website domain (e.g., google.com) Example: `<domain>`
- `name` (string): Company name (fuzzy matching) Example: `<name>`
- `linkedin_id` (string): LinkedIn company numeric ID Example: `<linkedin_id>`
- `social_url` (string): Social profile URL (LinkedIn, Facebook, Crunchbase, X/Twitter, GitHub - will be normalized and detected) Example: `<social_url>`
- `ticker_symbol` (string): Stock ticker symbol (e.g., GOOGL) Example: `<ticker_symbol>`
- `industry` (string): Industry filter (used with name matching for better accuracy) Example: `<industry>`
- `min_confidence` (string): Minimum match confidence: 'high', 'moderate', or 'low' Example: `high`
- `titlecase` (boolean): If true, format text fields in title case (names, company names, locations). Raw fields, IDs, URLs, codes, and confidence fields are excluded. Example: `false`
- `required_fields` (string): Comma-separated list of fields that must be present, else the match is filtered out. Supports top-level fields ('domain,socials'), a non-empty list subfield ('socials.network'), or a subfield equal to a value ('type:public', 'socials.network:linkedin'). Unknown field names or out-of-range enum values return HTTP 400. Example: `<required_fields>`
- `include_fields` (string): Comma-separated list of fields to include in response. If omitted, all fields are returned. Example: `<include_fields>`
- `exclude_fields` (string): Comma-separated list of fields to exclude from response. Applied after include_fields filter. Example: `<exclude_fields>`
- `pretty_print` (boolean): If true, pretty-print JSON response with indentation. Example: `false`

Response schema example:
```json
{
  "matches": [
    {
      "company": {
        "legion_id": "c8a1b2c3-d4e5-6f7a-8b9c-0d1e2f3a4b5c",
        "name": {
          "cleaned": "tech company inc",
          "display": "Tech Company",
          "raw": [
            "Tech Company, Inc.",
            "Tech Company"
          ]
        },
        "headline": {
          "cleaned": "enterprise platform for product teams",
          "raw": [
            "Enterprise platform for product teams"
          ]
        },
        "domain": "techcompany.com",
        "linkedin_url": "https://www.linkedin.com/company/tech-company-inc",
        "linkedin_id": "12345678",
        "linkedin_followers": 125000,
        "linkedin_employee_count": 3200,
        "industry": "technology, information and internet",
        "type": "private",
        "size": "1001-5000",
        "founded": 2012,
        "legion_employee_count": 3350,
        "legion_average_tenure": 28.4,
        "legion_new_hire_count": {
          "1m": 35,
          "3m": 95,
          "6m": 170,
          "12m": 310
        },
        "legion_attrition_count": {
          "1m": 14,
          "3m": 40,
          "6m": 72,
          "12m": 130
        },
        "legion_employee_growth_rate": {
          "1m": 0.012,
          "3m": 0.035,
          "6m": 0.068,
          "12m": 0.125
        },
        "legion_seniority_distribution": {
          "c_level": 6,
          "vp": 30,
          "director": 120,
          "manager": 430,
          "senior": 1100,
          "junior": 1260
        },
        "legion_job_function_distribution": {
          "engineering": 1350,
          "sales": 480,
          "operations": 320,
          "marketing": 240,
          "product": 180
        },
        "tickers": [],
        "socials": [
          {
            "network": "x",
            "url": "https://www.x.com/techcompany",
            "username": "techcompany"
          },
          {
            "network": "github",
            "url": "https://github.com/techcompany",
            "username": "techcompany"
          }
        ],
        "domains": [
          {
            "domain": "techcompany.com"
          },
          {
            "domain": "techcompany.dev"
          }
        ],
        "legion_employee_count_by_month": [
          {
            "month": "2026-01",
            "count": 3350,
            "net_change": 20,
            "growth_rate": 0.006,
            "hires": 48,
            "departures": 28
          },
          {
            "month": "2025-12",
            "count": 3330,
            "net_change": 26,
            "growth_rate": 0.008,
            "hires": 54,
            "departures": 28
          }
        ],
        "num_sources": 5,
        "last_seen": "2026-01"
      },
      "match_metadata": {
        "matched_on": [
          "domain"
        ],
        "match_type": "exact",
        "match_confidence": "high"
      }
    }
  ],
  "total": 1
}
```
