# Herman Miller Authorized Dealer Locator Scraper (`jungle_synthesizer/herman-miller-authorized-dealer-locator-scraper`) Actor

Extracts the worldwide directory of Herman Miller authorized dealers, retailers, showrooms, and resellers from the public dealer locator API. Returns name, address, contacts, certification level, product lines, and business categories for every location globally.

- **URL**: https://apify.com/jungle\_synthesizer/herman-miller-authorized-dealer-locator-scraper.md
- **Developed by:** [BowTiedRaccoon](https://apify.com/jungle_synthesizer) (community)
- **Categories:** Lead generation, E-commerce, Business
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per event

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## Herman Miller Authorized Dealer Locator Scraper

Scrape the complete worldwide directory of authorized Herman Miller (MillerKnoll) dealers, retailers, contract showrooms, and online resellers from the official dealer locator. Returns dealer name, full address, GPS coordinates, phone, email, website, certification tier, product categories, MillerKnoll brands carried, and business type for every dealer location globally — typically 700–1,000+ records across retail, contract, showroom, and online channels.

---

### Features

- Extracts **all four dealer channels** in a single run: retail stores, contract/B2B dealers, showrooms, and online retailers
- Covers **every active Herman Miller (MillerKnoll) market worldwide** — North America, Europe, Asia Pacific, Latin America, Middle East & Africa
- Returns **certification tier** (Certified, Accredited Partner, Dealer Partner) to verify dealer authorization status
- Returns **MillerKnoll brand portfolio** per dealer — Herman Miller, Knoll, HAY, Geiger, naughtone, Maharam, and more
- Filter by **dealer type** (retail, contract, showroom, online) or **country**
- Deduplicated by Salesforce Account ID — no duplicates across overlapping coverage zones
- No proxy required — data sourced directly from the public dealer locator API

---

### Who Uses Herman Miller Dealer Data?

- **Pre-purchase buyers** — Verify a dealer is officially authorized before spending $1,500+ on an Aeron or Embody
- **Refurbished furniture resellers** — Cross-check which dealers handle certified pre-owned programs and authorized refurbishers
- **A&D firms and specifiers** — Qualify dealer partners for RFPs before specifying Herman Miller in commercial fit-outs
- **Brand protection teams** — Audit unauthorized resellers by cross-referencing against the official authorized network
- **Sales prospecting** — Build targeted outreach lists of contract/B2B dealers by region, certification tier, or brand mix
- **Market researchers** — Map dealer density, certification distribution, and brand portfolio coverage across geographies

---

### How It Works

1. **Retail dealers** — Fetches the complete global retail dealer list in one API call (~340 records across all markets)
2. **Showrooms** — Fetches all MillerKnoll showrooms worldwide (~20 records)
3. **Online retailers** — Fetches authorized online retailers organized by country
4. **Contract/B2B dealers** — Enumerates proximity-based B2B dealers by seeding major city coordinates across all active markets, then deduplicates by Salesforce Account ID

Results land in your Apify dataset as one row per dealer location.

---

### Input

#### Collect all dealers worldwide (default)

```json
{
  "maxItems": 0
}
````

Setting `maxItems` to `0` or omitting it returns all available records. Typical full runs return 700–1,000+ unique dealer locations.

#### Retail dealers in the United States only

```json
{
  "dealerTypes": ["retail"],
  "countries": ["United States"],
  "maxItems": 100
}
```

#### Contract and showroom dealers in Europe

```json
{
  "dealerTypes": ["contract", "showroom"],
  "countries": ["Germany", "France", "United Kingdom", "Netherlands", "Sweden"],
  "maxItems": 200
}
```

#### Quick test — 15 records from all channels

```json
{
  "maxItems": 15
}
```

***

### Input Reference

| Field | Type | Description |
|-------|------|-------------|
| `maxItems` | Integer | Maximum dealer records to return. Set `0` for all records. Default: `0` (unlimited). |
| `dealerTypes` | Array | Dealer types to include: `retail`, `contract`, `showroom`, `online`. Leave empty for all types. |
| `countries` | Array | Filter to specific countries (e.g. `"United States"`, `"Germany"`). Leave empty for worldwide results. |

***

### Output

Each record contains:

| Field | Description |
|-------|-------------|
| `dealerId` | Salesforce Account ID — unique stable identifier |
| `dealerName` | Full display name of the dealer location |
| `dealerType` | Channel: `retail`, `contract`, `showroom`, or `online` |
| `addressStreet` | Street address |
| `addressCity` | City |
| `addressState` | State or province |
| `addressPostalCode` | ZIP or postal code |
| `addressCountry` | Country |
| `globalRegion` | Macro-region (North America, Europe, Asia Pacific, etc.) |
| `latitude` | Latitude coordinate |
| `longitude` | Longitude coordinate |
| `phone` | Phone number |
| `email` | Contact email |
| `website` | Dealer website URL |
| `certificationLevel` | Authorization tier: Certified, Accredited Partner, Dealer Partner |
| `categories` | Market segments served, pipe-separated (Commercial, Healthcare, Government, etc.) |
| `brands` | MillerKnoll brands carried, pipe-separated (Herman Miller, Knoll, HAY, etc.) |
| `productOffering` | Product specializations, pipe-separated |
| `businessHours` | Operating hours as JSON string (when available) |
| `locale` | Site locale code (e.g. `en_us`, `en_gb`) |
| `locationNotes` | Additional directions or notes |
| `dealerUrl` | Link to dealer profile on hermanmiller.com |
| `scrapedAt` | ISO-8601 timestamp of the scrape |

#### Sample output record

```json
{
  "dealerId": "001i000000IhaGEAAZ",
  "dealerName": "EvensonBest, LLC - New York HQ",
  "dealerType": "contract",
  "addressStreet": "55 5th Avenue",
  "addressCity": "New York",
  "addressState": "New York",
  "addressPostalCode": "10003",
  "addressCountry": "United States",
  "globalRegion": "North America",
  "latitude": 40.7346278,
  "longitude": -73.9942558,
  "phone": "(212) 549-8000",
  "email": "info@evensonbest.com",
  "website": "http://evensonbest.com",
  "certificationLevel": "Certified",
  "categories": "Commercial|Government|Certified|Healthcare",
  "brands": "CBS|Geiger|HAY|Herman Miller|naughtone|Nemschoff|Maharam|Muuto|Knoll",
  "productOffering": "",
  "businessHours": "",
  "locale": "en_us",
  "locationNotes": "",
  "dealerUrl": "https://www.hermanmiller.com/where-to-buy/?dealer=001i000000IhaGEAAZ",
  "scrapedAt": "2026-05-26T18:07:11.221Z"
}
```

# Actor input Schema

## `sp_intended_usage` (type: `string`):

Please describe how you plan to use the data extracted by this crawler.

## `sp_improvement_suggestions` (type: `string`):

Provide any feedback or suggestions for improvements.

## `sp_contact` (type: `string`):

Provide your email address so we can get in touch with you.

## `maxItems` (type: `integer`):

Maximum number of dealer records to return. Set to 0 for all records (full dataset is ~1,000–3,000 worldwide).

## `dealerTypes` (type: `array`):

Dealer types to include. Leave empty to collect all types.

## `countries` (type: `array`):

Filter results to specific countries (e.g. 'United States', 'Germany'). Leave empty for worldwide results.

## Actor input object example

```json
{
  "sp_intended_usage": "Describe your intended use...",
  "sp_improvement_suggestions": "Share your suggestions here...",
  "sp_contact": "Share your email here...",
  "maxItems": 15,
  "dealerTypes": [
    "retail",
    "contract",
    "showroom",
    "online"
  ],
  "countries": []
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "sp_intended_usage": "Describe your intended use...",
    "sp_improvement_suggestions": "Share your suggestions here...",
    "sp_contact": "Share your email here...",
    "maxItems": 15,
    "dealerTypes": [
        "retail",
        "contract",
        "showroom",
        "online"
    ],
    "countries": []
};

// Run the Actor and wait for it to finish
const run = await client.actor("jungle_synthesizer/herman-miller-authorized-dealer-locator-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "sp_intended_usage": "Describe your intended use...",
    "sp_improvement_suggestions": "Share your suggestions here...",
    "sp_contact": "Share your email here...",
    "maxItems": 15,
    "dealerTypes": [
        "retail",
        "contract",
        "showroom",
        "online",
    ],
    "countries": [],
}

# Run the Actor and wait for it to finish
run = client.actor("jungle_synthesizer/herman-miller-authorized-dealer-locator-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "sp_intended_usage": "Describe your intended use...",
  "sp_improvement_suggestions": "Share your suggestions here...",
  "sp_contact": "Share your email here...",
  "maxItems": 15,
  "dealerTypes": [
    "retail",
    "contract",
    "showroom",
    "online"
  ],
  "countries": []
}' |
apify call jungle_synthesizer/herman-miller-authorized-dealer-locator-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=jungle_synthesizer/herman-miller-authorized-dealer-locator-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Herman Miller Authorized Dealer Locator Scraper",
        "description": "Extracts the worldwide directory of Herman Miller authorized dealers, retailers, showrooms, and resellers from the public dealer locator API. Returns name, address, contacts, certification level, product lines, and business categories for every location globally.",
        "version": "0.1",
        "x-build-id": "lwqKXsnKgRIcHZZAr"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/jungle_synthesizer~herman-miller-authorized-dealer-locator-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-jungle_synthesizer-herman-miller-authorized-dealer-locator-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/jungle_synthesizer~herman-miller-authorized-dealer-locator-scraper/runs": {
            "post": {
                "operationId": "runs-sync-jungle_synthesizer-herman-miller-authorized-dealer-locator-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/jungle_synthesizer~herman-miller-authorized-dealer-locator-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-jungle_synthesizer-herman-miller-authorized-dealer-locator-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "sp_intended_usage": {
                        "title": "What is the intended usage of this data?",
                        "minLength": 1,
                        "type": "string",
                        "description": "Please describe how you plan to use the data extracted by this crawler."
                    },
                    "sp_improvement_suggestions": {
                        "title": "How can we improve this crawler for you?",
                        "minLength": 1,
                        "type": "string",
                        "description": "Provide any feedback or suggestions for improvements."
                    },
                    "sp_contact": {
                        "title": "Contact Email",
                        "minLength": 1,
                        "type": "string",
                        "description": "Provide your email address so we can get in touch with you."
                    },
                    "maxItems": {
                        "title": "Max Items",
                        "type": "integer",
                        "description": "Maximum number of dealer records to return. Set to 0 for all records (full dataset is ~1,000–3,000 worldwide).",
                        "default": 0
                    },
                    "dealerTypes": {
                        "title": "Dealer Types",
                        "type": "array",
                        "description": "Dealer types to include. Leave empty to collect all types.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "countries": {
                        "title": "Countries Filter",
                        "type": "array",
                        "description": "Filter results to specific countries (e.g. 'United States', 'Germany'). Leave empty for worldwide results.",
                        "items": {
                            "type": "string"
                        }
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
