IFA Berlin APIifa-berlin.com ↗
Access the IFA Berlin exhibitor directory and programme events via API. Get company details, hall/stand info, show areas, social links, and IFA Moments.
What is the IFA Berlin API?
The IFA Berlin API provides 4 endpoints covering the full exhibitor directory and programme events for IFA Berlin. Use list_exhibitors to page through thousands of exhibitors with filters for hall, country, show area, and keyword search, or call get_exhibitor_detail with a company slug to retrieve stand location, description, social links, and associated IFA Moments events tied to that exhibitor.
curl -X GET 'https://api.parse.bot/scraper/44b63059-a710-4fd4-8766-90e6518a59fa/list_exhibitors?page=1&search=Bosch' \ -H 'X-API-Key: $PARSE_API_KEY'
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 ifa-berlin-com-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.
"""Walkthrough: IFA Berlin API — browse exhibitors, drill into details, list events."""
from parse_apis.ifa_berlin_api import IFABerlin, ExhibitorNotFound
client = IFABerlin()
# List exhibitors with search filter, capped at 5 total items.
for exhibitor in client.exhibitorsummaries.list(search="Samsung", limit=5):
print(exhibitor.name, exhibitor.hall, exhibitor.stand)
# Drill into the first exhibitor's full detail via .detail().
item = client.exhibitorsummaries.list(limit=1).first()
if item:
detail = item.detail()
print(detail.name, detail.description, detail.country)
for moment in detail.ifa_moments:
print(moment.title, moment.date, moment.location)
# List IFA Moments programme events.
for event in client.events.list(limit=3):
print(event.title, event.brand, event.location)
# Typed error handling: catch a missing exhibitor.
try:
bad = client.exhibitorsummaries.list(search="nonexistent-xyz-9999", limit=1).first()
if bad:
bad.detail()
except ExhibitorNotFound as exc:
print(f"Not found: {exc.slug}")
print("exercised: exhibitorsummaries.list / .detail / events.list / ExhibitorNotFound")List exhibitors from the IFA Berlin directory with pagination and optional filters. Returns 20 exhibitors per page. Supports free-text search, hall, country, and show-area filtering. Paginated by integer page number.
| Param | Type | Description |
|---|---|---|
| hall | string | Hall filter ID to restrict results to a specific hall (e.g. 'H4.1', 'H23'). |
| page | integer | Page number for pagination (1-based). |
| search | string | Free-text search query to filter exhibitors by name or keyword. |
| country | string | Country filter ID to restrict results to exhibitors from a specific country. |
| show_area | string | Show area filter ID to restrict results to a specific exhibition area. |
{
"type": "object",
"fields": {
"exhibitors": "array of exhibitor summary objects with slug, url, name, logo_url, tags, hall, stand, and country",
"total_pages": "integer, total number of pages available",
"current_page": "integer, current page number",
"results_summary": "string, summary of results count (e.g. '20 / 1157')"
},
"sample": {
"data": {
"exhibitors": [
{
"url": "https://www.ifa-berlin.com/exhibitors/acer-inc",
"hall": null,
"name": "Acer Inc.",
"slug": "acer-inc",
"tags": [],
"stand": null,
"country": null,
"logo_url": "https://drive.ifa-berlin.com/drive/2025/08/_cache/72aad2af2d5343fb5cf7dcc901a72711_be9652563a6d97b4cdecbd807dbf53e3.png.webp"
}
],
"total_pages": 58,
"current_page": 1,
"results_summary": "20 / 1157"
},
"status": "success"
}
}About the IFA Berlin API
Exhibitor Directory
list_exhibitors returns 20 exhibitor summary objects per page, each carrying slug, url, name, logo_url, tags, hall, stand, and country. Four optional filters — hall, country, show_area, and search — can be combined to narrow results. The pagination object in every response includes total_pages, current_page, and a results_summary string so you can walk the full directory systematically.
Bulk and Detail Retrieval
When you need a large slice of the directory in one call, get_all_exhibitors_paginated accepts a limit_pages integer and aggregates results across all requested pages, returning the full exhibitor array alongside a total_fetched count. For a single company, get_exhibitor_detail takes the slug from any listing result and returns the extended record: description, show_areas array, social_links (each with platform and url), and an ifa_moments array of associated programme events with title, date, location, and url.
IFA Moments Programme
list_ifa_moments surfaces the programme event schedule independently of any exhibitor. Each event object includes title, brand, brand_logo_url, date, location, and url. The optional days parameter accepts a date string in YYYY-MM-DD format to filter events to a specific day, making it straightforward to build a day-by-day schedule view.
The IFA Berlin API is a managed, monitored endpoint for ifa-berlin.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when ifa-berlin.com 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 ifa-berlin.com 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?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a searchable IFA exhibitor directory filtered by country and show area for trade journalists
- Generate a day-by-day schedule of IFA Moments events using the
daysfilter inlist_ifa_moments - Enrich a CRM with IFA exhibitor details including hall, stand, and social media profiles
- Track which brands are presenting at IFA Moments by cross-referencing
brandandbrand_logo_urlfields - Export a full exhibitor list for competitive analysis using
get_all_exhibitors_paginatedwith alimit_pagescap - Map exhibitor locations across halls using
hallandstandfields fromlist_exhibitors - Identify exhibitors from a specific country for targeted outreach using the
countryfilter
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 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.
Does IFA Berlin offer an official developer API?+
What does `get_exhibitor_detail` return that `list_exhibitors` does not?+
get_exhibitor_detail extends the summary fields with a full description text, a show_areas array, a social_links array (each entry has platform and url), and an ifa_moments array listing programme events associated with that exhibitor, including event title, date, location, and url.Can I filter IFA Moments events by category or topic, not just by date?+
list_ifa_moments supports filtering by a specific date via the days parameter but does not expose category or topic filters. You can fork this API on Parse and revise it to add a category filter endpoint.Does the API expose exhibitor contact information such as email addresses or phone numbers?+
social_links, description, hall, and stand, but no direct contact fields like email or phone. You can fork this API on Parse and revise it to add a contact details endpoint if that data becomes available in the directory.How does pagination work across the endpoints?+
list_exhibitors returns 20 results per page; pass the page integer parameter to advance through pages, and check pagination.total_pages in the response to know when you've reached the end. get_all_exhibitors_paginated handles this iteration for you up to the limit_pages value you supply, and returns total_fetched alongside the aggregated array.