# Map Your Show Exhibitor Scraper (`maximedupre/map-your-show-exhibitor-scraper`) Actor

Scrape public Map Your Show exhibitor directories. Export company names, profile URLs, booths, descriptions, logos, categories, websites, addresses, phone numbers, and social links.

- **URL**: https://apify.com/maximedupre/map-your-show-exhibitor-scraper.md
- **Developed by:** [Maxime Dupré](https://apify.com/maximedupre) (community)
- **Categories:** Lead generation, Automation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.60 / 1,000 map your show exhibitors

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

### 🗺️ Map Your Show exhibitor scraper

Map Your Show Exhibitor Scraper turns public [Map Your Show](https://www.mapyourshow.com/) exhibitor directories into a clean dataset for trade show research, B2B lead generation, event networking, and sales prep. Add an exhibitor gallery URL, an event home URL, or an exhibitor detail URL, then export company names, profile URLs, booth locations, descriptions, logos, product categories, websites, addresses, phone numbers, and social links when the event page shows them.

Use it when you need exhibitor list data without opening every profile by hand. The Actor saves one row per exhibitor, keeps the original event and profile URLs attached, and works with Apify exports, API, schedules, webhooks, and integrations.

For a small first run, keep the prefilled CES exhibitor gallery and set `Maximum exhibitors` to `25` or lower.

### ✅ What this Actor does

- Scrapes public Map Your Show exhibitor galleries and exhibitor detail pages.
- Accepts gallery URLs, event home URLs, and exhibitor detail URLs.
- Saves one dataset row per accepted exhibitor.
- Extracts source identifiers, company names, booth data, descriptions, logos, categories, websites, addresses, phone numbers, and social links when available.
- Visits detail pages by default so company information is included when the public event site exposes it.
- Skips unsupported or empty targets without creating placeholder rows.
- Charges only for saved exhibitor rows.

This Actor is focused on Map Your Show events. It does not scrape every trade show platform, private planner data, attendee lists, logged-in content, email-gated contact forms, or external enrichment databases.

### 📦 What data you get

Each saved exhibitor can include:

- `eventUrl` and `eventDomain`
- `exhibitorId`
- `exhibitorName`
- `exhibitorProfileUrl`
- `sourceGalleryUrl`
- `sourceIndex`
- `description`
- `logoUrl`
- `website`
- `phone`
- `address` with parsed address parts and a formatted address
- `booths` with booth label, hall, number, and raw booth text
- `categories`
- `brands`
- `contacts`
- `socials` for Facebook, Instagram, LinkedIn, X/Twitter, YouTube, and TikTok when shown
- `status`, `missingFields`, and `scrapedAt`

Field availability depends on what the public Map Your Show event and exhibitor profile expose. Some exhibitors only publish a name, booth, description, and profile URL. Others publish website, address, categories, and social links.

### 🎯 Common use cases

- Build trade show exhibitor lists before an event.
- Prepare booth visit plans and account lists.
- Collect company websites and addresses for CRM enrichment.
- Research sponsors, vendors, product categories, and market segments.
- Create event intelligence datasets for sales, partnerships, recruiting, or competitive research.
- Monitor public exhibitor directories as an event date gets closer.

### ▶️ How to run it

1. Open the Actor in Apify Console.
2. Paste one or more Map Your Show URLs into `Map Your Show URLs`.
3. Set `Maximum exhibitors` to keep the first run small.
4. Keep `Company details` enabled if you want categories, address, website, phone, and social links.
5. Start the run and export the dataset as JSON, CSV, Excel, XML, RSS, or through the Apify API.

The easiest URL is usually the event's exhibitor gallery, for example:

```text
https://exhibitors.ces.tech/8_0/explore/exhibitor-gallery.cfm?featured=false
````

You can also submit a single exhibitor detail URL when you only need one company profile.

### ⚙️ Input

```json
{
	"startUrls": [
		{
			"url": "https://exhibitors.ces.tech/8_0/explore/exhibitor-gallery.cfm?featured=false"
		}
	],
	"maxItems": 50,
	"includeDetails": true
}
```

#### 🔗 `startUrls`

Map Your Show gallery, event home, or exhibitor detail URLs. Add the public event URLs you want to scrape.

#### 🔢 `maxItems`

Maximum number of exhibitors to save across the run. Use a small number for a quick sample, then increase it when the output matches what you need.

#### 🏢 `includeDetails`

When enabled, the Actor visits each exhibitor detail page and adds public company details such as product categories, website, address, phone, and social links. Turn it off only when you want a faster, lighter list with gallery-level data.

### 🧾 Output example

```json
{
	"eventUrl": "https://exhibitors.ces.tech/8_0/explore/exhibitor-gallery.cfm?featured=false",
	"eventDomain": "exhibitors.ces.tech",
	"exhibitorId": "0013A00001TqoG4QAJ",
	"exhibitorName": "Ace Technologies LLC",
	"exhibitorProfileUrl": "https://exhibitors.ces.tech/8_0/exhibitor/exhibitor-details.cfm?exhid=0013A00001TqoG4QAJ",
	"sourceGalleryUrl": "https://exhibitors.ces.tech/8_0/explore/exhibitor-gallery.cfm?featured=false",
	"sourceIndex": 1,
	"description": "Ace is your gateway to success in Turkey, the Middle East, North Africa and beyond.",
	"logoUrl": "https://exhibitors.ces.tech/mys_shared/CES26/logos/0013A00001TqoG4QAJ.jpg",
	"website": "https://www.ace-rep.com",
	"phone": null,
	"address": {
		"address1": "16520 Bake Pkwy Suite 230",
		"address2": null,
		"address3": null,
		"city": "Irvine",
		"state": "CA",
		"zip": "92618",
		"country": "United States",
		"formatted": "16520 Bake Pkwy Suite 230, Irvine CA 92618, United States"
	},
	"booths": [
		{
			"label": "Venetian Expo, Halls A-D — 50759",
			"hall": "Venetian Expo, Halls A-D",
			"number": "50759",
			"raw": "Venetian Expo, Halls A-D — 50759"
		}
	],
	"categories": ["Artificial Intelligence", "Computing", "Cybersecurity"],
	"brands": [],
	"contacts": [],
	"socials": {
		"facebook": null,
		"instagram": "https://www.instagram.com/aceyourrep/",
		"linkedin": "https://www.linkedin.com/company/ace-international-representation/?viewAsMember=true",
		"twitter": null,
		"youtube": null,
		"tiktok": null
	},
	"status": "ok",
	"missingFields": [],
	"scrapedAt": "2026-05-28T00:00:00.000Z"
}
```

### 💳 Pricing

This Actor uses pay-per-event pricing. You are charged for each saved Map Your Show exhibitor. Unsupported URLs, empty directories, skipped inputs, and runs with no saved exhibitors do not create exhibitor charges.

Use `Maximum exhibitors` to control cost before scaling to a full event directory.

### ⚠️ Limits and caveats

- The Actor supports public Map Your Show exhibitor pages.
- Output fields depend on what the event publishes. Missing websites, addresses, phone numbers, categories, or social links are returned as empty values rather than guessed.
- Detail-page scraping is on by default because it provides richer company data.
- The Actor does not log in, use private planner data, submit contact forms, verify emails, or enrich results from outside databases.
- Very large events may take longer because each exhibitor detail page can be visited when `Company details` is enabled.

### ❓ FAQ

#### 🌐 Can I scrape any Map Your Show event?

Use public Map Your Show event URLs that expose an exhibitor gallery or exhibitor detail pages. If an event is private, removed, or uses a different platform, the Actor may return no exhibitors.

#### 🔐 Does it require cookies or a Map Your Show account?

No. The Actor is built for public exhibitor data and does not ask for Map Your Show cookies, user accounts, or private planner access.

#### 🧩 Why are some fields empty?

Map Your Show events do not publish the same fields for every exhibitor. The Actor returns visible public data and leaves unavailable fields empty instead of inventing values.

#### 🔌 Can I run this through the Apify API?

Yes. You can run it from Apify Console, API, schedules, webhooks, and integrations, then export the dataset in common Apify formats.

### 📝 Changelog

- 0.1: Initial release.

### 🆘 Support

For issues, questions, or feature requests, [file a ticket](https://console.apify.com/actors/maximedupre~map-your-show-exhibitor-scraper/issues) and I'll fix or implement it in less than 24h 🫡

### 🔗 Other actors

- [Business Address Scraper ↗](https://apify.com/maximedupre/business-address-scraper) - Find public business addresses on company websites.
- [Website Emails Scraper ↗](https://apify.com/maximedupre/website-emails-scraper) - Extract public contact emails from websites.
- [LinkedIn Company Scraper ↗](https://apify.com/maximedupre/linkedin-company-scraper) - Export public LinkedIn company profile data.
- [LinkedIn Company People Scraper ↗](https://apify.com/maximedupre/linkedin-company-people-scraper) - Build company people lists from LinkedIn People pages.
- [Website URL Crawler ↗](https://apify.com/maximedupre/website-url-crawler) - Crawl public websites and export source-linked URLs.

**Made with ❤️ by Maxime Dupré**

# Actor input Schema

## `startUrls` (type: `array`):

Add public Map Your Show exhibitor gallery URLs, event home URLs, or exhibitor detail URLs.

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

Maximum number of exhibitor rows to save across all submitted URLs. Use a small limit for a quick first sample.

## `includeDetails` (type: `boolean`):

Visit exhibitor detail pages to include public company information such as categories, address, website, phone, and social links.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://exhibitors.ces.tech/8_0/explore/exhibitor-gallery.cfm?featured=false"
    }
  ],
  "maxItems": 50,
  "includeDetails": true
}
```

# Actor output Schema

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

Open the dataset to view scraped Map Your Show exhibitors.

# 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 = {
    "startUrls": [
        {
            "url": "https://exhibitors.ces.tech/8_0/explore/exhibitor-gallery.cfm?featured=false"
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("maximedupre/map-your-show-exhibitor-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 = { "startUrls": [{ "url": "https://exhibitors.ces.tech/8_0/explore/exhibitor-gallery.cfm?featured=false" }] }

# Run the Actor and wait for it to finish
run = client.actor("maximedupre/map-your-show-exhibitor-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 '{
  "startUrls": [
    {
      "url": "https://exhibitors.ces.tech/8_0/explore/exhibitor-gallery.cfm?featured=false"
    }
  ]
}' |
apify call maximedupre/map-your-show-exhibitor-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=maximedupre/map-your-show-exhibitor-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Map Your Show Exhibitor Scraper",
        "description": "Scrape public Map Your Show exhibitor directories. Export company names, profile URLs, booths, descriptions, logos, categories, websites, addresses, phone numbers, and social links.",
        "version": "0.1",
        "x-build-id": "z8qIFN9rvQPN91Ffc"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/maximedupre~map-your-show-exhibitor-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-maximedupre-map-your-show-exhibitor-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/maximedupre~map-your-show-exhibitor-scraper/runs": {
            "post": {
                "operationId": "runs-sync-maximedupre-map-your-show-exhibitor-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/maximedupre~map-your-show-exhibitor-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-maximedupre-map-your-show-exhibitor-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",
                "required": [
                    "startUrls"
                ],
                "properties": {
                    "startUrls": {
                        "title": "Map Your Show URLs",
                        "minItems": 1,
                        "maxItems": 20,
                        "type": "array",
                        "description": "Add public Map Your Show exhibitor gallery URLs, event home URLs, or exhibitor detail URLs.",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL",
                                    "description": "Public Map Your Show gallery, event home, or exhibitor detail URL.",
                                    "minLength": 1
                                }
                            }
                        }
                    },
                    "maxItems": {
                        "title": "Maximum exhibitors",
                        "minimum": 1,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "Maximum number of exhibitor rows to save across all submitted URLs. Use a small limit for a quick first sample.",
                        "default": 50
                    },
                    "includeDetails": {
                        "title": "Company details",
                        "type": "boolean",
                        "description": "Visit exhibitor detail pages to include public company information such as categories, address, website, phone, and social links.",
                        "default": true
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
