---
type: "firecrawl-provider"
description: "Company profiles from a domain or work email, email formats, and attribute search."
use_when: "Company profiles from a domain or work email, email formats, and attribute search."
categories: "Company"
capabilities: 4
pricing: "2 credits per billed unit; see each capability for its unit and maximum."
---
# The Companies API on Firecrawl Alexandria

Company profiles from a domain or work email, email formats, and attribute search.

- Categories: Company
- Category index: [Company category](https://alexandria.firecrawl.dev/agents/categories/company)
- Provider key: `thecompaniesapi`
- Access: Firecrawl credits
- Cost (Company from domain): 2 credits per record
- Cost (Company from email): 2 credits per record
- Cost (Email patterns): 2 credits per record
- Cost (Company search): 2 credits per company returned

## More

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

## Capabilities

- [Company from domain](https://alexandria.firecrawl.dev/agents/providers/thecompaniesapi/companies/enrich): One company profile. An empty object means no company was found, and costs nothing.
- [Company from email](https://alexandria.firecrawl.dev/agents/providers/thecompaniesapi/companies/enrich-by-email): company is the company profile, or null when none matched. email is the parsed address: domain, pattern, and validity flags.
- [Email patterns](https://alexandria.firecrawl.dev/agents/providers/thecompaniesapi/companies/email-patterns): Patterns, most used first. [F] is the first name, [L] the last name, [F1] the first initial.
- [Company search](https://alexandria.firecrawl.dev/agents/providers/thecompaniesapi/companies/search): One page of company profiles, same shape as companies/enrich. meta.total is the match count and meta.lastPage the last page.

## 1. Choose this provider when

Company profiles from a domain or work email, email formats, and attribute search.

## 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": "thecompaniesapi",
  "capability": "companies/enrich",
  "options": {
    "domain": "<domain>"
  }
}
```

## 3. Add provider options

Use only the options needed for the task:

- `domain` (string, required): Company domain without scheme or www, such as stripe.com. Example: `<domain>`

## 4. Request through your preferred interface

### JavaScript

```javascript
const result = await firecrawl.scrape({
  alexandria: {
    provider: "thecompaniesapi",
    capability: "companies/enrich",
    options: {
      domain: "<domain>",
    },
  },
});
```

### Python

```python
result = firecrawl.scrape_alexandria({
  "provider": "thecompaniesapi",
  "capability": "companies/enrich",
  "options": {
    "domain": "<domain>"
  }
})
```

### cURL

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

### CLI

```sh
firecrawl scrape 'thecompaniesapi/companies/enrich' \
  --options '{"domain":"<domain>"}'
```


### MCP

Call the FCX MCP retrieve tool with this object:

```json
{
  "provider": "thecompaniesapi",
  "capability": "companies/enrich",
  "options": {
    "domain": "<domain>"
  }
}
```

Ask for only the returned fields needed by the task.

## 5. Full request shape

```json
{
  "provider": "thecompaniesapi",
  "capability": "companies/enrich",
  "options": {
    "domain": "<domain>"
  }
}
```

## 6. Response data

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

```json
{
  "domain": {},
  "about": {},
  "descriptions": {},
  "finances": {},
  "locations": {},
  "socials": {},
  "technologies": {},
  "analytics": {},
  "meta": {}
}
```

## API reference-derived contract

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

### Company from domain

- Capability: `companies/enrich`
- Description: One company profile. An empty object means no company was found, and costs nothing.
- Instructions: Get a company profile with 80+ datapoints (industry, headcount, revenue band, locations, socials, technologies) from its domain. 5 credits when a company comes back, and nothing when the domain has no company. Use companies/enrich-by-email when you only have a work email.
- Cost: 2 credits per record
- Capability file: [Company from domain](https://alexandria.firecrawl.dev/agents/providers/thecompaniesapi/companies/enrich)

Accepted options:
- `domain` (string, required): Company domain without scheme or www, such as stripe.com. Example: `<domain>`

Response schema example:
```json
{
  "domain": {},
  "about": {},
  "descriptions": {},
  "finances": {},
  "locations": {},
  "socials": {},
  "technologies": {},
  "analytics": {},
  "meta": {}
}
```

### Company from email

- Capability: `companies/enrich-by-email`
- Description: company is the company profile, or null when none matched. email is the parsed address: domain, pattern, and validity flags.
- Instructions: Turn a work email into the employer's company profile. 5 credits when a company comes back. Free-mail addresses such as gmail.com return no company and cost nothing. Use companies/enrich when you already have the domain.
- Cost: 2 credits per record
- Capability file: [Company from email](https://alexandria.firecrawl.dev/agents/providers/thecompaniesapi/companies/enrich-by-email)

Accepted options:
- `email` (string, required): Any address at the company, such as patrick@stripe.com. The domain does the work. Example: `<email>`

Response schema example:
```json
{
  "company": {},
  "email": {},
  "meta": {}
}
```

### Email patterns

- Capability: `companies/email-patterns`
- Description: Patterns, most used first. [F] is the first name, [L] the last name, [F1] the first initial.
- Instructions: Find which work-email formats a company uses, such as [F].[L] or [F1][L], with the share of addresses for each. 5 credits when patterns come back, and nothing when there are none. It gives the format, not a person's address; verify a constructed address with an email verifier.
- Cost: 2 credits per record
- Capability file: [Email patterns](https://alexandria.firecrawl.dev/agents/providers/thecompaniesapi/companies/email-patterns)

Accepted options:
- `domain` (string, required): Company domain without scheme or www, such as stripe.com. Example: `<domain>`
- `emailsCount` (boolean): Include how many addresses back each pattern. Example: `false`
- `precision` (number): Confidence floor for which patterns are returned. Example: `10`

Response schema example:
```json
{
  "patterns": {
    "pattern": "<pattern>",
    "usagePercentage": 0
  }
}
```

### Company search

- Capability: `companies/search`
- Description: One page of company profiles, same shape as companies/enrich. meta.total is the match count and meta.lastPage the last page.
- Instructions: Find companies by industry, size, location, technology, or any other attribute condition. 5 credits per company returned, so set a small size. An empty page costs nothing. Use companies/enrich for one known domain.
- Cost: 2 credits per company returned
- Capability file: [Company search](https://alexandria.firecrawl.dev/agents/providers/thecompaniesapi/companies/search)

Accepted options:
- `query` (string, required): Stringified JSON array of conditions, each {attribute, operator, sign, values}, such as [{"attribute":"about.industries","operator":"or","sign":"equals","values":["fintech"]}]. Example: `<query>`
- `search` (string): Extra free-text match on company name or domain. Example: `<search>`
- `domainsToExclude` (string): Comma-separated domains to drop, such as amazon.com,pearson.com. Example: `<domainsToExclude>`
- `linkedinToExclude` (string): Comma-separated LinkedIn company URLs to drop. Example: `<linkedinToExclude>`
- `page` (number): 1-based page number. Default 1. Example: `10`
- `size` (number): Companies per page, 1 to 100. Default 10. Each company returned costs 5 credits. Example: `10`
- `sortKey` (string): Field to sort by, such as meta.score or about.name. Example: `<sortKey>`
- `sortOrder` (string): asc or desc. Example: `asc`

Response schema example:
```json
{
  "companies": [
    {
      "domain": {},
      "about": {},
      "descriptions": {},
      "finances": {},
      "locations": {},
      "socials": {},
      "technologies": {},
      "analytics": {},
      "meta": {}
    }
  ]
}
```
