MWC Barcelona APImwcbarcelona.com ↗
Access MWC Barcelona exhibitor listings, agenda sessions, speakers, pavilions, and news via a structured API with 13 endpoints covering the full event directory.
What is the MWC Barcelona API?
The MWC Barcelona API exposes 13 endpoints covering the full event directory at mwcbarcelona.com, including exhibitor search, filtering, and detail retrieval. The get_exhibitor_detail endpoint returns name, stand locations, description, and the exhibitor's external website URL. Other endpoints cover conference agenda sessions, speakers, pavilions grouped by country, and news articles from both the MWC editorial feed and a press release source.
curl -X GET 'https://api.parse.bot/scraper/62ac8fa5-40f1-4abf-95c5-a6fcc506c793/get_exhibitors_page?page=0&hits_per_page=10' \ -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 mwcbarcelona-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.
"""MWC Barcelona SDK — browse exhibitors, sessions, speakers, pavilions, and news."""
from parse_apis.MWC_Barcelona_API import (
MWCBarcelona, ExhibitorType, Building, NewsSource, UpstreamError
)
client = MWCBarcelona()
# List exhibitors in Hall 3 — limit= caps total items fetched.
for exhibitor in client.exhibitors.by_building(building=Building.HALL_3, limit=3):
print(exhibitor.name, exhibitor.country, exhibitor.stands)
# Search for a company by keyword, take the first result.
result = client.exhibitors.search(query="Samsung", limit=1).first()
if result:
print(result.name, result.building, result.interests)
# Fetch exhibitor detail (website URL, description) for a known exhibitor.
detail = client.exhibitors.get_detail(id="33994", slug="ericsson")
print(detail.name, detail.website_url, detail.detail_url)
# Filter by type badge using the enum.
for ex in client.exhibitors.by_type(type=ExhibitorType.FEATURED, limit=3):
print(ex.name, ex.featured, ex.letter)
# Browse agenda sessions.
session = client.sessions.list(limit=1).first()
if session:
print(session.title, session.stage, session.date, session.speakers)
# Typed error handling around a detail lookup.
try:
website = client.exhibitors.get_website(id="99999", slug="nonexistent")
print(website.website_url)
except UpstreamError as exc:
print(f"Upstream error: {exc}")
# Fetch recent news articles from the default algolia source.
for article in client.articles.list(source=NewsSource.ALGOLIA, limit=3):
print(article.title, article.url)
print("Exercised: exhibitors.by_building / exhibitors.search / exhibitors.get_detail / exhibitors.by_type / sessions.list / exhibitors.get_website / articles.list")
Fetch a paginated page of exhibitors from the MWC Barcelona exhibitor list. Returns exhibitor records with name, stands, interests, country, and building information. Each page contains up to hits_per_page results. Use page parameter to iterate through results.
| Param | Type | Description |
|---|---|---|
| page | integer | Page index (0-based). |
| hits_per_page | integer | Number of results per page. |
{
"type": "object",
"fields": {
"hits": "array of exhibitor objects with name, stands, interests, country, building, objectID",
"page": "integer, current page index",
"nbHits": "integer, total number of matching exhibitors",
"nbPages": "integer, total number of pages",
"hitsPerPage": "integer, results per page"
},
"sample": {
"data": {
"hits": [
{
"name": "Call.io",
"type": "Exhibitor",
"letter": "C",
"stands": [
"Hall 6 Stand 6E71"
],
"country": "PORTUGAL",
"building": [
"Hall 6"
],
"objectID": "33712",
"interests": [
"ARTIFICIAL INTELLIGENCE"
],
"attributes": [
"Featured"
],
"externalId": 33712
}
],
"page": 0,
"nbHits": 2924,
"nbPages": 293,
"hitsPerPage": 10
},
"status": "success"
}
}About the MWC Barcelona API
Exhibitor Data
The exhibitor endpoints let you page through the full list, search by keyword, or filter by building, type badge, product category, or alphabetical index. get_exhibitors_page returns hits arrays with name, stands, interests, country, building, and objectID fields per record. filter_exhibitors_by_building accepts verified hall names such as 'Hall 2' or 'Hall 8.1 - 4YFN', while filter_exhibitors_by_type accepts 'Featured', 'Startup', or 'GSMA Member'. filter_exhibitors_by_product_category matches against the interests field using uppercase strings like 'ARTIFICIAL INTELLIGENCE' or '5G / 6G'.
Exhibitor Detail and Bulk Fetch
get_exhibitor_detail requires both an id (numeric string) and a slug and returns a richer record that adds description and website_url fields not present in the list endpoints. get_all_exhibitors iterates pages automatically and accepts a max_pages parameter to cap the fetch; each page holds up to 100 records. The response includes total, exhibitors, and pages_fetched so callers can confirm how much of the directory was retrieved.
Agenda, Speakers, and Pavilions
get_agenda_sessions returns session objects with title, date, speakers, companies, stage, and description, paginated with nbHits and nbPages. get_speakers and get_pavilions follow the same pagination pattern. Pavilion records include name, country, stands, and building, making it possible to map national pavilion groupings across the venue.
News
get_news_articles supports two sources via the source parameter. Setting source to 'algolia' returns paginated hits with title, content, image, and published date fields. Setting it to 'vporoom' returns a release array of press release objects with headline, summary, and url. The two sources return different response schemas, so callers should branch on the value passed.
The MWC Barcelona API is a managed, monitored endpoint for mwcbarcelona.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when mwcbarcelona.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 mwcbarcelona.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 an interactive exhibitor directory filtered by hall or product category for conference attendees.
- Aggregate exhibitor website URLs using
get_exhibitor_detailto enrich a CRM or lead list. - Map the show floor by grouping exhibitors via the
buildingfield returned byfilter_exhibitors_by_building. - Track which companies are presenting at specific agenda sessions using
get_agenda_sessionscompaniesandstagefields. - Compile a speaker list with associated sessions for a conference guide app.
- Monitor MWC press releases in real time by polling
get_news_articleswithsource='vporoom'. - Identify startup and GSMA member exhibitors for targeted outreach using
filter_exhibitors_by_type.
| 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 MWC Barcelona have an official developer API?+
What does `get_exhibitor_detail` return that the list endpoints do not?+
get_exhibitor_detail adds description and website_url fields to the base record. The paginated list endpoints (get_exhibitors_page, get_all_exhibitors) return name, stands, interests, country, building, and objectID but do not include the exhibitor's description or external website link.How does `get_all_exhibitors` handle large directories without timing out?+
max_pages integer parameter that caps how many pages are fetched. Each page holds up to 100 exhibitor records. The response includes pages_fetched so you can tell whether the full directory was retrieved or the cap was hit.Can I retrieve individual exhibitor contact details such as email addresses or phone numbers?+
get_exhibitor_detail, which returns name, stands, description, and website_url. Contact details are not exposed. You can fork this API on Parse and revise it to add an endpoint that extracts contact information if it appears on the detail page.