Discover/Gamescom API
live

Gamescom APIexhibitors.gamescom.global

Access gamescom exhibitor data: company details, booth locations, hall assignments, product groups, and logos via 4 structured endpoints.

Endpoints
4
Updated
2mo ago

What is the Gamescom API?

The gamescom Exhibitors API provides structured access to the official gamescom trade fair exhibitor directory across 4 endpoints. Using list_exhibitors you can page through every participating company and retrieve fields including name, country, booth location, logo URL, and product group associations. Filters for hall, country code, alphabetical letter, and product group let you narrow results without post-processing.

Try it
Filter by hall identifier.
Maximum number of exhibitors to return.
Search keyword to filter exhibitors.
Pagination offset (increments of 10).
Filter by starting letter. Accepted values: A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0-9.
Filter by ISO 3166-1 alpha-2 country code (e.g. 'DE' for Germany, 'US' for United States, 'GB' for United Kingdom, 'FR' for France, 'JP' for Japan).
Filter by product group ID from list_product_groups endpoint.
api.parse.bot/scraper/49abfa19-80cb-4234-b5bf-f7cc93621be9/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/49abfa19-80cb-4234-b5bf-f7cc93621be9/list_exhibitors?limit=5&start=0&letter=G' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace exhibitors-gamescom-global-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""
Gamescom 2025 Exhibitor API Client
Get your API key from: https://parse.bot/settings
"""

import os
import requests
from typing import Optional, Any, Dict, List


class ParseClient:
    """Client for interacting with the Gamescom 2025 Exhibitor API."""
    
    def __init__(self, api_key: Optional[str] = None):
        self.base_url = "https://api.parse.bot"
        self.scraper_id = "49abfa19-80cb-4234-b5bf-f7cc93621be9"
        self.api_key = api_key or os.getenv("PARSE_API_KEY")
        
        if not self.api_key:
            raise ValueError("API key not provided and PARSE_API_KEY environment variable not set")
    
    def _call(self, endpoint: str, method: str = "POST", **params) -> Dict[str, Any]:
        """Make an API call to the Parse bot."""
        url = f"{self.base_url}/scraper/{self.scraper_id}/{endpoint}"
        headers = {
            "X-API-Key": self.api_key,
            "Content-Type": "application/json"
        }
        
        if method.upper() == "GET":
            response = requests.get(url, headers=headers, params=params)
        elif method.upper() == "POST":
            response = requests.post(url, headers=headers, json=params)
        else:
            raise ValueError(f"Unsupported HTTP method: {method}")
        
        response.raise_for_status()
        return response.json()
    
    def list_exhibitors(
        self,
        letter: Optional[str] = None,
        start: int = 0,
        product_group: Optional[str] = None,
        country: Optional[str] = None,
        hall: Optional[str] = None,
        query: Optional[str] = None,
        limit: int = 20
    ) -> Dict[str, Any]:
        """
        Retrieve the full paginated list of exhibitors.
        
        Args:
            letter: Initial letter filter (e.g., 'A')
            start: Starting offset for pagination (default: 0)
            product_group: Product group ID filter
            country: ISO 3166-1 alpha-2 country code (e.g., 'DE')
            hall: Hall filter (e.g., '3.2')
            query: Search keyword
            limit: Max results to return (default: 20)
        
        Returns:
            Dictionary containing exhibitors list and next_start for pagination
        """
        params = {
            "start": start,
            "limit": limit
        }
        if letter:
            params["letter"] = letter
        if product_group:
            params["product_group"] = product_group
        if country:
            params["country"] = country
        if hall:
            params["hall"] = hall
        if query:
            params["query"] = query
        
        return self._call("list_exhibitors", method="GET", **params)
    
    def search_exhibitors(
        self,
        query: str,
        country: Optional[str] = None,
        product_group: Optional[str] = None,
        hall: Optional[str] = None,
        limit: int = 20
    ) -> Dict[str, Any]:
        """
        Search and filter exhibitors using keyword and categories.
        
        Args:
            query: Search keyword (required)
            country: ISO 3166-1 alpha-2 country code filter
            product_group: Product group ID
            hall: Hall filter
            limit: Max results to return (default: 20)
        
        Returns:
            Dictionary containing search results and pagination info
        """
        params = {
            "query": query,
            "limit": limit
        }
        if country:
            params["country"] = country
        if product_group:
            params["product_group"] = product_group
        if hall:
            params["hall"] = hall
        
        return self._call("search_exhibitors", method="GET", **params)
    
    def get_exhibitor_detail(self, slug: str) -> Dict[str, Any]:
        """
        Retrieve full details for a specific exhibitor.
        
        Args:
            slug: Exhibitor slug from list or search endpoints
        
        Returns:
            Dictionary containing exhibitor details including website and address
        """
        return self._call("get_exhibitor_detail", method="GET", slug=slug)
    
    def list_product_groups(self) -> Dict[str, Any]:
        """
        Retrieve the full list of product categories (product groups).
        
        Returns:
            Dictionary containing product_groups array with id, name, and count
        """
        return self._call("list_product_groups", method="GET")


def main():
    """
    Demonstrate a practical workflow using the Gamescom Exhibitor API.
    
    This example shows how to:
    1. Get all product categories
    2. Find a specific category
    3. Search for exhibitors in that category
    4. Fetch detailed information for each result
    5. Present organized information about exhibitors
    """
    
    client = ParseClient()
    
    print("=" * 80)
    print("GAMESCOM 2025 - EXHIBITOR DISCOVERY WORKFLOW")
    print("=" * 80)
    
    # Step 1: Retrieve all product categories
    print("\n[STEP 1] Fetching available product categories...")
    try:
        product_groups_response = client.list_product_groups()
        product_groups = product_groups_response.get("data", {}).get("product_groups", [])
        print(f"✓ Found {len(product_groups)} product categories")
        
        # Display first few categories
        print("\nAvailable categories:")
        for group in product_groups[:5]:
            print(f"  • {group['name']} (ID: {group['id']}, Exhibitors: {group['count']})")
        if len(product_groups) > 5:
            print(f"  ... and {len(product_groups) - 5} more categories")
    except Exception as e:
        print(f"✗ Failed to fetch product groups: {e}")
        return
    
    # Step 2: Search for specific exhibitors
    print("\n[STEP 2] Searching for exhibitors with 'game' keyword...")
    try:
        search_response = client.search_exhibitors(query="game", limit=10)
        exhibitors = search_response.get("data", {}).get("exhibitors", [])
        print(f"✓ Found {len(exhibitors)} exhibitors matching 'game'")
        
        if not exhibitors:
            print("No exhibitors found for this search.")
            return
        
        # Display search results summary
        print("\nSearch results:")
        for idx, exhibitor in enumerate(exhibitors[:3], 1):
            print(f"  {idx}. {exhibitor['name']}")
            print(f"     Country: {exhibitor['country']}")
            print(f"     Booth: {exhibitor['booth_info']}")
    except Exception as e:
        print(f"✗ Failed to search exhibitors: {e}")
        return
    
    # Step 3: Get detailed information for top results
    print("\n[STEP 3] Fetching detailed information for top 3 exhibitors...")
    detailed_results = []
    
    for idx, exhibitor in enumerate(exhibitors[:3], 1):
        slug = exhibitor.get("slug")
        name = exhibitor.get("name", "Unknown")
        
        if not slug:
            print(f"  [{idx}] Skipping {name} - no slug available")
            continue
        
        try:
            print(f"  [{idx}] Fetching details for '{name}'...")
            detail = client.get_exhibitor_detail(slug)
            detailed_results.append(detail.get("data", {}))
            print(f"      ✓ Details retrieved successfully")
        except Exception as e:
            print(f"      ✗ Failed to fetch details: {e}")
    
    # Step 4: Display comprehensive exhibitor information
    if detailed_results:
        print("\n" + "=" * 80)
        print("DETAILED EXHIBITOR INFORMATION")
        print("=" * 80)
        
        for idx, exhibitor in enumerate(detailed_results, 1):
            print(f"\n[{idx}] {exhibitor.get('name', 'N/A')}")
            print("-" * 80)
            
            # Website
            website = exhibitor.get('website', 'N/A')
            if website and website != 'N/A':
                print(f"    Website: {website}")
            
            # Address
            address = exhibitor.get('address', 'N/A')
            if address and address != 'N/A':
                print(f"    Address: {address}")
            
            # Hall and Booth
            hall_booth = exhibitor.get('hall_booth', 'N/A')
            if hall_booth and hall_booth != 'N/A':
                print(f"    Hall & Booth: {hall_booth}")
            
            # Product Groups
            product_groups_list = exhibitor.get('product_groups', [])
            if product_groups_list:
                print(f"    Product Groups:")
                for pg in product_groups_list[:4]:
                    print(f"      • {pg}")
                if len(product_groups_list) > 4:
                    print(f"      ... and {len(product_groups_list) - 4} more")
            
            # Represented At
            represented_at = exhibitor.get('represented_at')
            if represented_at:
                print(f"    Note: {represented_at}")
    
    # Step 5: Browse exhibitors by starting letter
    print("\n[STEP 4] Browsing exhibitors by starting letter 'G'...")
    try:
        list_response = client.list_exhibitors(letter="G", limit=8)
        exhibitors_by_letter = list_response.get("data", {}).get("exhibitors", [])
        print(f"✓ Found {len(exhibitors_by_letter)} exhibitors starting with 'G'")
        
        if exhibitors_by_letter:
            print("\nExhibitors starting with 'G':")
            for idx, exhibitor in enumerate(exhibitors_by_letter[:5], 1):
                print(f"  {idx}. {exhibitor['name']} ({exhibitor['country']})")
                print(f"     Booth: {exhibitor['booth_info']}")
        
        # Check for pagination
        next_start = list_response.get("data", {}).get("next_start")
        if next_start is not None:
            print(f"\n  → More exhibitors available at offset: {next_start}")
    except Exception as e:
        print(f"✗ Failed to list exhibitors: {e}")
    
    # Step 6: Filter by country
    print("\n[STEP 5] Searching for German exhibitors...")
    try:
        country_response = client.list_exhibitors(country="DE", limit=5)
        de_exhibitors = country_response.get("data", {}).get("exhibitors", [])
        print(f"✓ Found {len(de_exhibitors)} exhibitors from Germany")
        
        if de_exhibitors:
            print("\nGerman exhibitors (sample):")
            for exhibitor in de_exhibitors[:3]:
                print(f"  • {exhibitor['name']} - {exhibitor['booth_info']}")
    except Exception as e:
        print(f"✗ Failed to filter by country: {e}")
    
    print("\n" + "=" * 80)
    print("WORKFLOW COMPLETED SUCCESSFULLY")
    print("=" * 80)


if __name__ == "__main__":
    main()
All endpoints · 4 totalmissing one? ·

Retrieve the full paginated list of exhibitors. Use start parameter for pagination (increments of 10). Supports filtering by country code, starting letter, hall, and product group.

Input
ParamTypeDescription
hallstringFilter by hall identifier.
limitintegerMaximum number of exhibitors to return.
querystringSearch keyword to filter exhibitors.
startintegerPagination offset (increments of 10).
letterstringFilter by starting letter. Accepted values: A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0-9.
countrystringFilter by ISO 3166-1 alpha-2 country code (e.g. 'DE' for Germany, 'US' for United States, 'GB' for United Kingdom, 'FR' for France, 'JP' for Japan).
product_groupstringFilter by product group ID from list_product_groups endpoint.
Response
{
  "type": "object",
  "fields": {
    "exhibitors": "array of exhibitor objects with name, slug, detail_url, country, booth_info, and logo_url",
    "next_start": "integer indicating the offset for the next page of results"
  },
  "sample": {
    "data": {
      "exhibitors": [
        {
          "name": "G.B.T. Technology Trading GmbH",
          "slug": "gbt_tec",
          "country": "Germany",
          "logo_url": "",
          "booth_info": "Hall 2.2 | C051a",
          "detail_url": "https://exhibitors.gamescom.global/en/exhibitor/gbt_tec/"
        }
      ],
      "next_start": 10
    },
    "status": "success"
  }
}

About the Gamescom API

Endpoints and Data Coverage

The API exposes four endpoints covering the full exhibitor directory. list_exhibitors returns a paginated array of exhibitor objects — each containing name, slug, detail_url, country, booth_info, and logo_url — and a next_start integer for stepping through results in increments of 10. Filtering is available by hall, letter (A–Z), ISO 3166-1 alpha-2 country code, and product_group ID sourced from list_product_groups.

Search and Detail Retrieval

search_exhibitors accepts a required query keyword and the same optional filters as list_exhibitors (excluding letter), returning the same paginated shape. get_exhibitor_detail takes an exhibitor slug from list or search results and returns the full company record: name, address, website, logo_url, detail_url, hall_booth, a product_groups array of category name strings, and represented_at — a field that identifies the host booth when an exhibitor is not present under their own stand.

Product Group Taxonomy

list_product_groups returns the complete category taxonomy used across the directory. Each entry includes an id, human-readable name, and count of exhibitors assigned to that group. Pass the id value as the product_group parameter in list_exhibitors or search_exhibitors to scope results to a specific category such as hardware, publishing, or esports services.

Pagination and Filtering Notes

Pagination across list_exhibitors and search_exhibitors uses an offset model: the next_start field in each response gives the value to pass as start on the following request. The limit parameter controls page size. Filters are combinable — you can simultaneously filter by hall, country, and product_group to target a precise subset of exhibitors.

Reliability & maintenance

The Gamescom API is a managed, monitored endpoint for exhibitors.gamescom.global — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when exhibitors.gamescom.global changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official exhibitors.gamescom.global API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Build a searchable gamescom exhibitor directory filtered by product group and country for event attendees.
  • Map booth locations by hall using the hall_booth field returned from get_exhibitor_detail.
  • Aggregate a list of all exhibitors from a specific country using the country ISO code filter in list_exhibitors.
  • Identify which product categories have the most exhibitors using the count field from list_product_groups.
  • Fetch company website URLs in bulk from exhibitor detail records for lead generation or B2B prospecting.
  • Track which companies are represented at another exhibitor's booth using the represented_at field.
  • Filter exhibitors alphabetically by starting letter to build an A–Z directory navigation component.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min

One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does gamescom provide an official developer API for the exhibitor directory?+
Gamescom does not publish a documented public developer API for the exhibitor directory at exhibitors.gamescom.global. This API provides structured programmatic access to that data.
What does `get_exhibitor_detail` return that the list endpoints do not?+
get_exhibitor_detail returns the full company record including address, website, hall_booth (precise booth identifier), a product_groups array, and the represented_at field indicating if the exhibitor is hosted at another company's stand. The list and search endpoints return only summary fields: name, slug, country, booth_info summary, and logo URL.
How does pagination work across `list_exhibitors` and `search_exhibitors`?+
Both endpoints return a next_start integer alongside the results array. Pass that value as the start parameter on your next request to fetch the following page. Results advance in increments of 10; use the limit parameter to control how many records are returned per call.
Does the API include exhibitor news, press releases, or product announcements?+
Not currently. The API covers company identity, booth location, address, website, logo, and product group classification. You can fork it on Parse and revise to add an endpoint targeting exhibitor news or announcement content if that data becomes available in the directory.
Are past gamescom editions or historical exhibitor data available?+
The API reflects the current live gamescom exhibitor directory, which covers the active event year. Historical exhibitor data from prior gamescom editions is not included. You can fork it on Parse and revise to target archived edition URLs if those are accessible.
Page content last updated . Spec covers 4 endpoints from exhibitors.gamescom.global.
Related APIs in B2b DirectorySee all →
exhibitors.gitex.com API
Search and browse exhibitors participating in GITEX Global 2025 by company profile, technology sector, country, and category to find the vendors and solutions you're looking for. Instantly access detailed information about thousands of exhibitors including their full profiles and industry classifications to discover relevant partners and technologies.
infocomm26.mapyourshow.com API
Search and discover InfoComm 2026 exhibitors by name, category, or hall location, and access detailed company profiles with booth information. Browse hall layouts, explore featured vendors, and quickly find the products and services you need at the conference.
ifa-berlin.com API
Browse exhibitors and event details from IFA Berlin, including paginated listings and specific company information. Discover IFA moments and explore the complete exhibitor directory for the tech conference.
gulfood.com API
Access the complete Gulfood exhibitor directory, including exhibitor profiles, products, brands, press releases, and exhibition sectors. Filter by country, category, venue, or keyword to find exhibitors and retrieve detailed profiles with stand locations, contact information, and social media links.
exhibitors.cphi.com API
Find and explore pharmaceutical exhibitors at CPHI events by searching company names, accessing detailed contact information, employee counts, and company descriptions. Quickly identify potential partners, suppliers, or competitors with comprehensive exhibitor profiles and directory listings.
10times.com API
Search and discover events from 10times.com, including conferences, trade shows, and exhibitions worldwide. Access detailed event data such as exhibitor lists, schedules, agendas, and venue information.
attend.expowest.com API
Find speaker and exhibitor information from Natural Products Expo West, including names, titles, and company details to research attendees and discover industry contacts. Search and filter through the event directory to identify potential networking opportunities and business partners.
mwcbarcelona.com API
Discover and explore MWC Barcelona 2026 exhibitors, speakers, and sessions by searching, filtering, and browsing by category, location, or type. Access detailed information about pavilions, agenda schedules, news updates, and pass options to plan your conference experience.
Gamescom Exhibitors API | exhibitors.gamescom · Parse