---
type: "firecrawl-provider"
description: "Local business search, business records from a website, and brand-level company search."
use_when: "Store-level local business search.\n\nBusiness records from a website or social profile, and brand-level company search."
categories: "Company"
capabilities: 3
pricing: "4 credits per billed unit; see each capability for its unit and maximum."
---
# Openmart on Firecrawl Alexandria

Local business search, business records from a website, and brand-level company search.

- Categories: Company
- Category index: [Company category](https://alexandria.firecrawl.dev/agents/categories/company)
- Provider key: `openmart`
- Access: Firecrawl credits
- Cost (Local business search): 4 credits per record returned
- Cost (Company from website): 4 credits per record returned
- Cost (Brand search): 4 credits per record returned

## More

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

## Capabilities

- [Local business search](https://alexandria.firecrawl.dev/agents/providers/openmart/businesses/search): A bare array of store rows, or {data, total_count} when estimate_total is true. A row with match_score 0 is a fallback, not a match.
- [Company from website](https://alexandria.firecrawl.dev/agents/providers/openmart/companies/enrich): A bare array of store rows, same shape as businesses/search, or {data, total_count} when estimate_total is true.
- [Brand search](https://alexandria.firecrawl.dev/agents/providers/openmart/companies/search): One page of brands under data. encoded_cursor is the next page; total appears when estimate_total is true.

## 1. Choose this provider when

Store-level local business search.

Business records from a website or social profile, and brand-level company 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": "openmart",
  "capability": "businesses/search",
  "options": {
    "query": "<query>",
    "limit": 10
  }
}
```

## 3. Add provider options

Use only the options needed for the task:

- `query` (string, required): Type of business to find, 1 to 500 characters, such as hair salons. Example: `<query>`
- `location` (object[]): Location filters, each with a country, such as [{"country":"USA","state":"CA","city":"San Francisco"}]. Example: `[]`
- `limit` (number): Records per page, 1 to 100. Default 10. Each record returned costs 10 credits. Example: `10`
- `estimate_total` (boolean): Wrap the page as {data, total_count} with an estimated match count. Example: `false`
- `cursor` (string[]): Next page: the last row's cursor from the previous page, a two-item array [match_score (number), store_id (string)], such as [24.26, "store-a"]. match_score must be a JSON number, not a string. Omit for the first page. Example: `[]`

## 4. Request through your preferred interface

### JavaScript

```javascript
const result = await firecrawl.scrape({
  alexandria: {
    provider: "openmart",
    capability: "businesses/search",
    options: {
      query: "<query>",
      limit: 10,
    },
  },
});
```

### Python

```python
result = firecrawl.scrape_alexandria({
  "provider": "openmart",
  "capability": "businesses/search",
  "options": {
    "query": "<query>",
    "limit": 10
  }
})
```

### cURL

```sh
curl https://api.firecrawl.dev/v2/scrape \
  -H "Authorization: Bearer $FIRECRAWL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "alexandria": {
    "provider": "openmart",
    "capability": "businesses/search",
    "options": {
      "query": "<query>",
      "limit": 10
    }
  }
}'
```

### CLI

```sh
firecrawl scrape 'openmart/businesses/search' \
  --options '{"query":"<query>","limit":10}'
```


### MCP

Call the FCX MCP retrieve tool with this object:

```json
{
  "provider": "openmart",
  "capability": "businesses/search",
  "options": {
    "query": "<query>",
    "limit": 10
  }
}
```

Ask for only the returned fields needed by the task.

## 5. Full request shape

```json
{
  "provider": "openmart",
  "capability": "businesses/search",
  "options": {
    "query": "<query>",
    "limit": 10
  }
}
```

## 6. Response data

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

```json
[
  {
    "id": "<id>",
    "content": {},
    "match_score": 0,
    "match_highlights": [],
    "cursor": {}
  }
]
```

## API reference-derived contract

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

### Local business search

- Capability: `businesses/search`
- Description: A bare array of store rows, or {data, total_count} when estimate_total is true. A row with match_score 0 is a fallback, not a match.
- Instructions: Search Openmart's local business database by business type and location, one row per physical store: name, address, website, categories, ratings, and social links. 10 credits per record returned, so set a small limit. Use companies/search for one row per brand.
- Cost: 4 credits per record returned
- Capability file: [Local business search](https://alexandria.firecrawl.dev/agents/providers/openmart/businesses/search)

Accepted options:
- `query` (string, required): Type of business to find, 1 to 500 characters, such as hair salons. Example: `<query>`
- `location` (object[]): Location filters, each with a country, such as [{"country":"USA","state":"CA","city":"San Francisco"}]. Example: `[]`
- `limit` (number): Records per page, 1 to 100. Default 10. Each record returned costs 10 credits. Example: `10`
- `estimate_total` (boolean): Wrap the page as {data, total_count} with an estimated match count. Example: `false`
- `cursor` (string[]): Next page: the last row's cursor from the previous page, a two-item array [match_score (number), store_id (string)], such as [24.26, "store-a"]. match_score must be a JSON number, not a string. Omit for the first page. Example: `[]`

Response schema example:
```json
[
  {
    "id": "<id>",
    "content": {},
    "match_score": 0,
    "match_highlights": [],
    "cursor": {}
  }
]
```

### Company from website

- Capability: `companies/enrich`
- Description: A bare array of store rows, same shape as businesses/search, or {data, total_count} when estimate_total is true.
- Instructions: Find the Openmart business records behind a website or social profile: store name, address, categories, store count, and ownership type. 10 credits per record returned. No match costs nothing. Set limit 1 for the single best match.
- Cost: 4 credits per record returned
- Capability file: [Company from website](https://alexandria.firecrawl.dev/agents/providers/openmart/companies/enrich)

Accepted options:
- `website` (string): Website to look up, with or without https://, such as bluebottlecoffee.com. Example: `<website>`
- `social_media_link` (string): Social profile URL to look up, when there is no website. Example: `<social_media_link>`
- `location` (object[]): Optional location filters, each with a country, such as [{"country":"US"}]. Example: `[]`
- `limit` (number): Records to return, 1 to 50. Default 10. Each record returned costs 10 credits. Example: `10`
- `estimate_total` (boolean): Wrap the page as {data, total_count}. Example: `false`

Response schema example:
```json
[
  {
    "id": "<id>",
    "content": {},
    "match_score": 0,
    "match_highlights": [],
    "cursor": {}
  }
]
```

### Brand search

- Capability: `companies/search`
- Description: One page of brands under data. encoded_cursor is the next page; total appears when estimate_total is true.
- Instructions: Search companies one row per brand, not per store, by search term, location, store count, and ownership type. 10 credits per brand returned, so set a small pagination.limit. An empty page costs nothing. Use businesses/search for store-level rows.
- Cost: 4 credits per record returned
- Capability file: [Brand search](https://alexandria.firecrawl.dev/agents/providers/openmart/companies/search)

Accepted options:
- `search_param` (object, required): Filters: search_term, location (each entry with a country), num_stores, ownership_type, and more, such as {"search_term":"coffee shop","location":[{"country":"US","state":"CA"}]}. Example: `{}`
- `pagination` (object): limit (1 to 100, default 10) and encoded_cursor, copied from the previous page's encoded_cursor. Each brand returned costs 10 credits. Example: `{}`
- `estimate_total` (boolean): Add an approximate total match count as total. Example: `false`

Response schema example:
```json
{
  "data": [
    {
      "brand_id": "<brand_id>",
      "business_name": "<business_name>",
      "domain_ident": "<domain_ident>",
      "num_stores": 0,
      "ownership_type": "<ownership_type>",
      "business_categories": [],
      "social_media_links": {}
    }
  ]
}
```
