Bulk Data Extraction — Guide for Data Lake Teams

Bulk Data Extraction — Guide for Data Lake Teams

This guide is intended for data engineering and data lake teams who need to extract event data from ExpoPlatform in bulk — for example, to feed a data warehouse, BI tool, or analytics pipeline.

This guide covers read-only operations only. All endpoints listed here use the HTTP GET method. No data is written to the platform.

Authentication

All requests require a valid API key passed in the Authorization header:

Authorization: Bearer your_api_key_here

Please confirm your API key and event_id with your assigned ExpoPlatform API Manager before starting.

Available bulk endpoints

Endpoint

Data

Pagination

Incremental sync (timestamp)

GET /api/v2/participants/{eventId}/list

All participants with full profile data

Yes — page + per_page

Yes — timestamp

GET /api/v2/participants/{eventId}/deletedList

Deleted/detached participants

Yes — page + per_page

Yes — timestamp

GET /api/v2/exhibitors/{eventId}/list

All exhibitors with full profile data

Yes — page + limit

Yes — timestamp

GET /api/v2/exhibitor/getList

Lightweight exhibitor ID map with owner and member account IDs

No — full map in one response

No

GET /api/v2/meetings/export

Meeting records with status, participants, timestamps

Yes — page + per_page

Yes — last_modified_from / last_modified_to

GET /api/v2/categories/get

Product category catalogue

No — full list in one response

Yes — timestamp

GET /api/v2/floorplan/getHalls

All halls for the event

No

No

GET /api/v2/floorplan/getStands

All stands for a given hall

No

No

Pagination

Shape 1 — page / last_page (participants, exhibitors)

Iterate by incrementing page from 1 until page equals last_page.

Shape 2 — current / next / last (meetings)

Iterate by incrementing page until next is null.

Endpoint

Parameter

Maximum

Recommended

participants list

per_page

500

200–500

exhibitors list

limit

300

300

meetings export

per_page

500

200–500

Incremental sync

All major list endpoints support a timestamp (or equivalent) parameter that filters results to records updated after a given Unix timestamp.

  1. Initial load: Full extract without a timestamp filter

  2. Store the sync time: Record the Unix timestamp at which the sync started

  3. Subsequent runs: Pass the stored timestamp as the filter parameter

  4. Update your store: Upsert returned records by their id field

  5. Repeat: Update the stored timestamp and repeat from step 3

Use the timestamp at which your sync job started (not ended) to avoid missing records updated during the run.

Timestamp parameters per endpoint

Endpoint

Parameter

Format

participants/{eventId}/list

timestamp

Unix timestamp (integer seconds)

exhibitors/{eventId}/list

timestamp

Unix timestamp (integer seconds)

meetings/export

last_modified_from / last_modified_to

Unix timestamp (integer seconds)

categories/get

timestamp

Unix timestamp (integer seconds)

Handling deletions

Incremental sync only returns updated records — not deleted ones. Use the dedicated deleted list endpoints.

Deleted participants

Bash
GET /api/v2/participants/{eventId}/deletedList?timestamp=1700000000&page=1&per_page=500

There is no equivalent deleted endpoint for exhibitors in V2. Detect exhibitor deletions by comparing the set of IDs returned by GET /api/v2/exhibitor/getList between runs.

Reference data

Fetch once per event setup and cache locally:

Endpoint

Data

GET /api/v2/categories/get?event_id={id}

Product category hierarchy

GET /api/v2/account/getCategories?event_id={id}

Participant category list

GET /api/v2/floorplan/getHalls?event_id={id}

Hall list with IDs and names

GET /api/v2/location/countries

Full country list with ISO codes

To ensure foreign key relationships can be resolved:

  1. Reference data first: categories, participant categories, countries, halls

  2. Exhibitors: GET /api/v2/exhibitors/{eventId}/list

  3. Participants: GET /api/v2/participants/{eventId}/list

  4. Meetings: GET /api/v2/meetings/export

  5. Deletions: GET /api/v2/participants/{eventId}/deletedList