# Informa Markets Exhibitor List Scraper: Gulfood (`getascraper/informa-markets-exhibitor-directory-scraper`) Actor

Scrape the full Gulfood exhibitor list from Informa Markets. Get company names, stands, halls, countries, product categories, websites, and social links. Export to Excel, CSV, or JSON. Fast, no login required.

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

## Pricing

from $3.30 / 1,000 exhibitor records

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
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

## 🏢 Informa Markets exhibitor directory scraper: Gulfood

**Get every exhibitor at Gulfood, with booth locations, categories, websites, and social links, ready for your spreadsheet in minutes.**

Informa Markets exhibitor directory scraper pulls the full exhibitor list from Gulfood, one of the world's largest food trade shows. It runs fast and reliably without needing a browser or any login, so you get clean, structured company data on the first try.

This actor currently supports **Gulfood only**. Informa Markets runs hundreds of trade shows worldwide on several different, unrelated backend systems, and only Gulfood's exhibitor directory has been verified to work with this actor. See the FAQ below for what happened when other Informa shows were checked.

### 🔍 What does Informa Markets exhibitor directory scraper do?

This actor visits the Gulfood exhibitor directory and pulls one row per company: name, stand and hall location, country, description, product categories, website, and social links. Point it at a Gulfood edition slug like `gulfood-2026` and it works through the entire directory automatically.

Run it on demand from the Apify Console, schedule it before the show opens, or call it through the API to feed your own CRM or lead list.

### 🎯 Who uses this scraper?

* **I am an event sponsorship manager** building a target list of exhibitors at Gulfood, so I can pitch add-on sponsorship packages before the floor plan locks in.
* **I am a sales development rep** pulling exhibitor company data from a food industry expo to build a warm outbound list of companies that already spend on trade show marketing.
* **I am a market researcher** tracking which companies exhibit at Gulfood year over year, mapping category coverage and competitive presence on the show floor.
* **I am a booth vendor or logistics supplier** identifying every exhibitor at the show who might need staging, signage, or freight services on site.

### 📋 Input

Fill in the event edition you want to scrape, then adjust the optional fields below. All fields work from the Apify Console form or as JSON.

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `eventSlug` | string | No | The Gulfood edition to scrape, for example `gulfood-2026`. Find it in the show's exhibitor directory URL. Defaults to `gulfood-2026`. |
| `maxItems` | integer | No | Maximum number of exhibitor records to return. Leave at 0 for no limit, which scrapes the entire directory. |
| `proxyConfiguration` | object | No | Proxy settings. The default works out of the box and does not need residential IPs. |

### 📊 Data table

Every dataset row is one exhibitor. Fields with no published data are left out of the row instead of filled with placeholder text.

| Field | Type | Description |
| --- | --- | --- |
| `companyName` | string | The exhibiting company's name, exactly as published in the directory. |
| `stand` | string | Stand or booth number on the show floor. |
| `hall` | string | Hall name the stand is located in. |
| `country` | string | Country listed for the exhibitor. |
| `description` | string | The company's directory profile description. |
| `productCategories` | array of strings | Product and service categories the exhibitor is listed under. |
| `website` | string | Link to the company's official website. |
| `socialMedia` | object | Published Facebook, Instagram, and LinkedIn links, when available. |
| `email` | string | Contact email, only included on the rare exhibitor that publishes one. |
| `phone` | string | Contact phone number, only included on the rare exhibitor that publishes one. |
| `logoUrl` | string | Link to the exhibitor's logo image. |
| `detailUrl` | string | Link back to the exhibitor's live directory page. |
| `scrapedAt` | string | Timestamp of when the row was collected. |

#### Example output

```json
{
    "companyName": "0 Brand Factory Ltd",
    "stand": "4-69",
    "hall": "South Hall 1",
    "country": "United Kingdom",
    "description": "Brand Factory Ltd. is an award-winning UK-based wholesale export company specializing in the consolidation and global distribution of leading FMCG brands from the UK and Europe.",
    "productCategories": ["Snacks", "Frozen Food", "Beverages", "Dry Goods"],
    "website": "https://www.brandfactory.co.uk/",
    "socialMedia": {
        "facebook": "https://www.facebook.com/p/Brand-Factory-Ltd-100081498542204/",
        "instagram": "https://www.instagram.com/brandfactoryltd_uk/?hl=en",
        "linkedin": "https://uk.linkedin.com/company/brand-factory-ltd"
    },
    "logoUrl": "https://d1l8km4g5s76x5.cloudfront.net/Production/exb_doc/2041/47984/thumb_2041_47984_47096_2386.png/fit-in/200x200",
    "detailUrl": "https://exhibitors.gulfood.com/gulfood-2026/Exhibitors/ExbDetails/0-brand-factory-ltd",
    "scrapedAt": "2026-07-03T22:11:19.804Z"
}
````

You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.

### 💰 Pricing

Pricing is pay per result and billed only for exhibitor rows successfully saved to your dataset. Empty or failed runs cost nothing.

There are no fixed monthly subscriptions, minimum spend, or hidden maintenance fees. You only pay for the exhibitors you actually get back.

### ⭐ Enjoying Informa Markets exhibitor directory scraper?

<table width="100%">
<tr>
<td style="padding:20px 24px 14px;background:#FDF7F0;border:1px solid #FDF7F0;border-left:5px solid #D97706;border-radius:10px 10px 0 0">
<span style="font-size:20px;letter-spacing:4px">⭐ ⭐ ⭐ ⭐ ⭐</span><br>
<span style="font-size:17px;font-weight:800;color:#1C1917">Build a Gulfood sponsorship or outreach list of every exhibitor, booth number, and category in minutes.</span><br>
<span style="font-size:14px;color:#57534E">A 5-star rating takes 10 seconds and helps other event sponsorship managers find it. Your feedback also tells us what to build next.</span>
</td>
</tr>
<tr>
<td style="padding:0;background:#D97706;border:1px solid #FDF7F0;border-top:none;border-radius:0 0 10px 10px;text-align:center">
<a href="https://apify.com/getascraper/informa-markets-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

##### Does it get blocked scraping Gulfood?

No. The scraper connects directly and reliably without needing residential IPs or a browser session, so runs complete quickly and consistently.

##### Does it extract private contact details?

No. It only collects information exhibitors have published in their public directory listing. Email and phone are almost never published in this directory, so those fields are typically left out of the row entirely rather than filled with a placeholder.

##### How fresh is the data?

Every run pulls live from Gulfood's current directory at the moment you run it, so stand assignments and exhibitor lists reflect the latest published state.

##### Which Informa Markets shows are supported?

Only Gulfood is currently supported. Informa Markets operates hundreds of trade shows worldwide, and several were checked before building this actor: Arab Health runs on a different platform that requires a login, World of Concrete runs on the Map Your Show platform (already covered by a separate actor in this collection), and Cityscape Global's exhibitor list is hosted on a thin third-party page with very limited fields. Gulfood was the only show found with a full, public, directly accessible exhibitor directory. Need another Informa show supported? Open a ticket on the Issues tab and we will take a look.

Found an issue or need a custom field added? Open a ticket on the Issues tab and we will take a look.

### 🔗 Other actors

- [Map Your Show exhibitor directory scraper](https://apify.com/getascraper/map-your-show-exhibitor-directory-scraper) ↗ - extracts exhibitor lists from any US expo running on the Map Your Show platform.
- [GSMA MWC exhibitor directory scraper](https://apify.com/getascraper/gsma-mwc-exhibitor-directory-scraper) ↗ - pulls the exhibitor directory for Mobile World Congress Barcelona and Kigali.
- [Reed Expo exhibitor directory scraper](https://apify.com/getascraper/reed-expo-exhibitor-directory-scraper) ↗ - collects full exhibitor contacts from any RX Global trade fair.
- [Messe Berlin exhibitor directory scraper](https://apify.com/getascraper/messe-berlin-exhibitor-directory-scraper) ↗ - extracts IFA Berlin exhibitor listings.
- [Koelnmesse exhibitor directory scraper](https://apify.com/getascraper/koelnmesse-exhibitor-directory-scraper) ↗ - gathers exhibitor contacts, stands, and brands from Koelnmesse trade shows.

# Actor input Schema

## `eventSlug` (type: `string`):

The Gulfood event edition to scrape, e.g. gulfood-2026 for exhibitors.gulfood.com/gulfood-2026/Exhibitors. This is currently the only confirmed-working Informa Markets show for this Actor (see the README for why other Informa shows like Arab Health, World of Concrete and Cityscape are not supported here).

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

Maximum number of exhibitor records to return. Leave at 0 for no limit (scrapes the entire directory).

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

The Gulfood exhibitor directory is publicly accessible and does not require residential IPs. Datacenter proxy (the default) is faster and cheaper, and has been verified to work reliably, even without a User-Agent header.

## Actor input object example

```json
{
  "eventSlug": "gulfood-2026",
  "maxItems": 0,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# 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 = {
    "eventSlug": "gulfood-2026",
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("getascraper/informa-markets-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 = {
    "eventSlug": "gulfood-2026",
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("getascraper/informa-markets-exhibitor-directory-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 '{
  "eventSlug": "gulfood-2026",
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call getascraper/informa-markets-exhibitor-directory-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Informa Markets Exhibitor List Scraper: Gulfood",
        "description": "Scrape the full Gulfood exhibitor list from Informa Markets. Get company names, stands, halls, countries, product categories, websites, and social links. Export to Excel, CSV, or JSON. Fast, no login required.",
        "version": "0.1",
        "x-build-id": "RxbyzGdhopWjoxw4g"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/getascraper~informa-markets-exhibitor-directory-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-getascraper-informa-markets-exhibitor-directory-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/getascraper~informa-markets-exhibitor-directory-scraper/runs": {
            "post": {
                "operationId": "runs-sync-getascraper-informa-markets-exhibitor-directory-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/getascraper~informa-markets-exhibitor-directory-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-getascraper-informa-markets-exhibitor-directory-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": {
                    "eventSlug": {
                        "title": "Event slug",
                        "type": "string",
                        "description": "The Gulfood event edition to scrape, e.g. gulfood-2026 for exhibitors.gulfood.com/gulfood-2026/Exhibitors. This is currently the only confirmed-working Informa Markets show for this Actor (see the README for why other Informa shows like Arab Health, World of Concrete and Cityscape are not supported here).",
                        "default": "gulfood-2026"
                    },
                    "maxItems": {
                        "title": "Max items",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum number of exhibitor records to return. Leave at 0 for no limit (scrapes the entire directory).",
                        "default": 0
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "The Gulfood exhibitor directory is publicly accessible and does not require residential IPs. Datacenter proxy (the default) is faster and cheaper, and has been verified to work reliably, even without a User-Agent header.",
                        "default": {
                            "useApifyProxy": 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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
