# GoShow Exhibitor Scraper: Lists and Maps as JSON (`getascraper/goeshow-exhibitor-directory-scraper`) Actor

Scrape public GoShow exhibitor lists and exhibit maps. Deduplicate companies, filter by country, hall, stand, category, or brand, and export source-linked event records as flat or exploded JSON.

- **URL**: https://apify.com/getascraper/goeshow-exhibitor-directory-scraper.md
- **Developed by:** [GetAScraper](https://apify.com/getascraper) (community)
- **Categories:** Lead generation, Automation, Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.92 / 1,000 exhibitor records

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 web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — 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

## 🏢 GoShow Exhibitor Scraper: Lists and Maps as JSON

<table width="100%" style="display:table;width:100%">
<tr>
<td style="padding:24px 28px;background:#E8F4F4;border:1px solid #B7D9D9;border-top:4px solid #147D7E;border-radius:12px">
<span style="font-size:23px;font-weight:800;color:#1C1917;line-height:1.3">Turn public GoShow exhibitor lists and exhibit maps into research-ready B2B records</span><br>
<span style="font-size:15px;color:#57534E;line-height:1.6">Enter one public GoShow event URL to collect published exhibitor profiles, locations, categories, contacts, and source-backed run statistics.</span>
</td>
</tr>
</table>

<table width="100%" style="display:table;width:100%">
<tr>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #B7D9D9;border-radius:10px 0 0 10px;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#0F5F60">🧭 Public event discovery</span><br>
<span style="font-size:12px;color:#57534E">Start from a public directory or map URL, not a prebuilt event list.</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #B7D9D9;border-left:none;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#0F5F60">🗺️ List and map coverage</span><br>
<span style="font-size:12px;color:#57534E">Bring together directory and exhibit-map listings, then remove duplicates.</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #B7D9D9;border-left:none;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#0F5F60">🎯 Focused research</span><br>
<span style="font-size:12px;color:#57534E">Filter companies by keyword, country, hall or stand, and published category.</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #B7D9D9;border-left:none;border-radius:0 10px 10px 0;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#0F5F60">🧾 Traceable output</span><br>
<span style="font-size:12px;color:#57534E">Keep source links, detail status, and a clear summary of each run.</span>
</td>
</tr>
</table>

Use the public directory and map data that event organizers already publish. The Actor collects only available fields and leaves unpublished values out of each record.

### 🔍 What does GoShow exhibitor directory scraper do?

GoShow powers public exhibitor lists and exhibit maps for trade shows and conferences. This Actor starts with one public GoShow exhibitor-list or exhibit-map URL and discovers that event's published configuration.

It combines the event directory with map-scoped listings, removes duplicate exhibitors, and can enrich the selected parent exhibitors with public profile data. Filter the result by company or keyword, country, hall or stand, and category. Choose flat parent rows or exploded parent and co-exhibitor rows.

Every completed run also saves a source-backed summary. It records the event, source coverage, filtering outcome, saved-record count, detail coverage, and public-source request counts.

### 💡 Why use GoShow exhibitor directory scraper?

- **I am an event researcher** looking to map who is exhibiting, where they are located, and which categories they represent before comparing an event with prior editions.
- **I am on a sales team** looking to build a focused list of companies attending a trade show, then narrow it by country, hall, stand, or category for outreach planning.
- **I am a lead-generation operator** looking to turn published exhibitor profiles into clean, source-linked company records without copying listings by hand.
- **I am on a data team** looking to supply a repeatable event dataset with event details, public profile status, and source coverage for downstream analysis.

### 🚀 How to use it

<table width="100%" style="display:table;width:100%">
<tr>
<td style="padding:16px 14px;width:33%;background:#E8F4F4;border:1px solid #B7D9D9;border-radius:10px 0 0 10px;vertical-align:top">
<span style="font-size:12px;font-weight:800;color:#147D7E;letter-spacing:1px">STEP 1</span><br>
<span style="font-size:14px;font-weight:700;color:#1C1917">Paste a public event URL</span><br>
<span style="font-size:12px;color:#57534E">Use the GoShow exhibitor-list or exhibit-map URL for the event you want to research.</span>
</td>
<td style="padding:16px 14px;width:33%;background:#E8F4F4;border:1px solid #B7D9D9;border-left:none;vertical-align:top">
<span style="font-size:12px;font-weight:800;color:#147D7E;letter-spacing:1px">STEP 2</span><br>
<span style="font-size:14px;font-weight:700;color:#1C1917">Set filters and detail level</span><br>
<span style="font-size:12px;color:#57534E">Choose your company, location, hall, stand, and category filters, then set a parent-exhibitor limit.</span>
</td>
<td style="padding:16px 14px;width:33%;background:#E8F4F4;border:1px solid #B7D9D9;border-left:none;border-radius:0 10px 10px 0;vertical-align:top">
<span style="font-size:12px;font-weight:800;color:#147D7E;letter-spacing:1px">STEP 3</span><br>
<span style="font-size:14px;font-weight:700;color:#1C1917">Run and review the results</span><br>
<span style="font-size:12px;color:#57534E">Download the exhibitor records and review the run summary for coverage and completion details.</span>
</td>
</tr>
</table>

Start with a small parent-exhibitor limit when you want to check an event's published fields before collecting a larger set.

### 📥 Input

#### Sources

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `startUrl` | string | No | Public GoShow exhibitor-list or exhibit-map URL for one event. The supplied example is used when this field is left unchanged. |

#### GoShow exhibitor and search filters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `searchQuery` | string | No | Keeps exhibitors whose published company name, description, category, product, or brand matches your terms. It combines with every other filter. |
| `country` | string | No | Keeps exhibitors whose published country matches your terms. It combines with every other filter. |
| `hallOrStand` | string | No | Keeps exhibitors whose published hall, map, booth, or stand matches your terms. It combines with every other filter. |
| `categoryQuery` | string | No | Keeps exhibitors matching a published category. Detail enrichment must remain enabled for this filter. |

#### Data source and reliability

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `allowPartialResults` | boolean | No | Keep verified directory records when an individual public map or profile cannot be read. Defaults to enabled. |

#### Enrichment

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `fetchDetails` | boolean | No | Collect published profile fields such as contacts, categories, products, and social links. It is enabled by default and required for category filtering. |

#### Output and limits

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `outputFormat` | enum | No | Choose flat rows for parent exhibitors only, or exploded rows that add public co-exhibitors linked to their parent. Defaults to flat. |
| `maxItems` | integer | No | Maximum number of parent exhibitors to process. Defaults to 10; use 0 only when you deliberately want no parent limit. |

#### Advanced

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `maxConcurrency` | integer | No | Number of public requests handled at once. Choose from 1 to 20; the default of 5 suits most events. |
| `proxyConfiguration` | object | No | Optional proxy settings for public GoShow requests. The default uses the included proxy configuration. |

### 📦 Output and run statistics

Each dataset row represents a public exhibitor record. Flat output saves parent exhibitors. Exploded output also adds one row per published stand, category, product, contact, and co-exhibitor, each linked back to its parent through `parentExhibitorId`.

The run statistics record provides the completion status, event identity and source URL, parent cap, matched parent count, saved-record count, list and map coverage, detail results, and public-source request counters. Use it to understand the scope and outcome of a run.

### 📊 Data table

Fields are included only when the public event directory provides them.

| Field | Type | Description |
| --- | --- | --- |
| `platform` | string | Source platform identifier: `goeshow`. |
| `eventId` | string | Published identifier for the event, when available. |
| `eventName` | string | Published event name. |
| `eventEdition` | string | Published event edition or year. |
| `eventUrl` | string | Public GoShow event URL used for the run. |
| `sourceUrl` | string | Public source URL for the record. |
| `scrapedAt` | string | Time when the record was collected. |
| `exhibitorId` | string | Published exhibitor identifier. |
| `companyName` | string | Exhibiting company name. |
| `profileUrl` | string | Published link to the exhibitor profile, when available. |
| `companyDescription` | string | Published exhibitor or company description. |
| `address` | string | Published company address. |
| `country` | string | Published country for the exhibitor. |
| `hall` | string | Published hall or map location. |
| `booth` | string | First published booth or stand value. |
| `stands` | array of strings | All published booth or stand values. |
| `website` | string | Published company website. |
| `email` | string | Published email address. |
| `phone` | string | Published phone number. |
| `socialLinks` | array of strings | Published social profile links. |
| `contacts` | array of objects | Published contact records, when available. |
| `categories` | array of strings | Published exhibitor categories. |
| `categoryPaths` | array of strings | Published category paths. |
| `products` | array of strings | Published products. |
| `brands` | array of strings | Published brands. |
| `coExhibitors` | array of strings | Published co-exhibitor company names. |
| `logoUrl` | string | Published exhibitor or company logo link. |
| `detailStatus` | enum | Whether profile details were fetched, not requested, or unavailable. |
| `recordType` | enum | `exhibitor` for a parent record, or `stand`, `category`, `product`, `contact`, `coExhibitor` for an exploded child record. |
| `parentExhibitorId` | string | Parent exhibitor identifier for an exploded child record. |
| `stand` | object | One published stand value. Present only on an exploded `stand` row. |
| `category` | object | One published category. Present only on an exploded `category` row. |
| `product` | object | One published product. Present only on an exploded `product` row. |
| `contact` | object | One published contact record. Present only on an exploded `contact` row. |
| `coExhibitor` | object | One published co-exhibitor's name and profile link. Present only on an exploded `coExhibitor` row. |

### 💰 Pricing

Pricing is pay per result. You are charged only for records saved to your dataset. Empty runs cost nothing, and there are no subscriptions.

### ⭐ Enjoying GoShow exhibitor directory scraper?

<table width="100%" style="display:table;width:100%">
<tr>
<td style="padding:20px 24px 14px;background:#E8F4F4;border:1px solid #B7D9D9;border-left:5px solid #147D7E;border-radius:10px 10px 0 0">
<span style="font-size:20px;letter-spacing:4px;color:#1C1917">⭐ ⭐ ⭐ ⭐ ⭐</span><br>
<span style="font-size:17px;font-weight:800;color:#1C1917">Made a public event directory easier to research and use?</span><br>
<span style="font-size:14px;color:#57534E">A 5-star rating takes 10 seconds and helps other event researchers, sales teams, and data teams find it. Your feedback also guides future improvements.</span>
</td>
</tr>
<tr>
<td style="padding:0;background:#147D7E;border:1px solid #B7D9D9;border-top:none;border-radius:0 0 10px 10px;text-align:center">
<a href="https://apify.com/getascraper/goeshow-exhibitor-directory-scraper/reviews" style="display:block;padding:13px 16px;color:#FFFFFF;text-decoration:none;font-weight:800;font-size:15px;letter-spacing:0.3px">★&nbsp;&nbsp;Rate this Actor on Apify</a>
</td>
</tr>
</table>

### ❓ FAQ

##### Which GoShow events can I use?

Use a public GoShow exhibitor-list or exhibit-map URL. The Actor processes one event per run and returns only the data that event currently publishes.

##### Does it collect private contact information?

No. It collects only contact details and profile fields published in the event directory. Missing public fields are left out rather than guessed.

##### How current are the exhibitor and map records?

Each run reads the event's public directory and available map listings at run time. Re-run an event when you need its latest published exhibitor list or floor location data.

##### What happens if a profile or map listing is unavailable?

With Allow Partial Results enabled, verified directory records are kept if an individual map or profile is unavailable. Turn it off when you prefer the run to stop instead.

### 🔗 Other actors

- [a2z Events exhibitor directory scraper: contacts, booths & categories](https://apify.com/getascraper/a2z-events-exhibitor-directory-scraper) ↗ - collects published exhibitor contacts, booths, and categories from a2z Events directories.
- [Map Your Show exhibitor directory scraper: all US expos](https://apify.com/getascraper/map-your-show-exhibitor-directory-scraper) ↗ - collects public exhibitor records from Map Your Show event directories.
- [Reed Expo exhibitor directory scraper: compatible RX Global fairs](https://apify.com/getascraper/reed-expo-exhibitor-directory-scraper) ↗ - collects exhibitor directory data from compatible RX Global fairs.
- [Ungerboeck exhibitor directory scraper](https://apify.com/getascraper/ungerboeck-exhibitor-directory-scraper) ↗ - collects published exhibitor listings from Ungerboeck-powered events.
- [Messe Düsseldorf exhibitor directory scraper: 5 fairs, full contacts](https://apify.com/getascraper/messe-duesseldorf-exhibitor-directory-scraper) ↗ - collects exhibitor data from supported Messe Düsseldorf fairs.

# Actor input Schema

## `startUrl` (type: `string`):

A public GoShow exhibitor-list or exhibit-map URL.

## `searchQuery` (type: `string`):

Match company names, descriptions, categories, products, or brands. This combines with every other filter.

## `country` (type: `string`):

Match the country published for the exhibitor.

## `hallOrStand` (type: `string`):

Match a published hall, map, booth, or stand value.

## `categoryQuery` (type: `string`):

Match a public exhibitor category. This requires Fetch Exhibitor Details to remain enabled.

## `allowPartialResults` (type: `boolean`):

Keep verified list records if an individual map or profile request fails.

## `fetchDetails` (type: `boolean`):

Fetch public profile data such as contacts, categories, products, and social links.

## `outputFormat` (type: `string`):

Flat emits one row per exhibitor. Exploded also emits child rows for stands, categories, products, contacts, and co-exhibitors.

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

Maximum number of parent exhibitors. Set 0 only when you deliberately want an unlimited run.

## `maxConcurrency` (type: `integer`):

Number of public API requests made in parallel. Higher values can increase source load.

## `proxyConfiguration` (type: `object`):

Optional Apify Proxy configuration for direct public HTTP requests.

## Actor input object example

```json
{
  "startUrl": "https://maps.goeshow.com/vg/annual/2026/exhibitor_list",
  "searchQuery": "",
  "country": "",
  "hallOrStand": "",
  "categoryQuery": "",
  "allowPartialResults": true,
  "fetchDetails": true,
  "outputFormat": "flat",
  "maxItems": 10,
  "maxConcurrency": 5,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

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

No description

## `runStats` (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 = {
    "startUrl": "https://maps.goeshow.com/vg/annual/2026/exhibitor_list",
    "searchQuery": "",
    "country": "",
    "hallOrStand": "",
    "categoryQuery": "",
    "allowPartialResults": true,
    "fetchDetails": true,
    "outputFormat": "flat",
    "maxItems": 10,
    "maxConcurrency": 5,
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("getascraper/goeshow-exhibitor-directory-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 = {
    "startUrl": "https://maps.goeshow.com/vg/annual/2026/exhibitor_list",
    "searchQuery": "",
    "country": "",
    "hallOrStand": "",
    "categoryQuery": "",
    "allowPartialResults": True,
    "fetchDetails": True,
    "outputFormat": "flat",
    "maxItems": 10,
    "maxConcurrency": 5,
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("getascraper/goeshow-exhibitor-directory-scraper").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "startUrl": "https://maps.goeshow.com/vg/annual/2026/exhibitor_list",
  "searchQuery": "",
  "country": "",
  "hallOrStand": "",
  "categoryQuery": "",
  "allowPartialResults": true,
  "fetchDetails": true,
  "outputFormat": "flat",
  "maxItems": 10,
  "maxConcurrency": 5,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call getascraper/goeshow-exhibitor-directory-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,getascraper/goeshow-exhibitor-directory-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/nHeU4RCjTnL1dpuJJ/builds/K4Ao6jZuqEdt1U23c/openapi.json
