Skip to content

Query Parameters ​

Intent shortcuts ​

Every FloorPlan intent is addressable straight from the URL: the intent name is the query key, its arguments are the value. The set of keys grows automatically with the SDK's intent schema — these all work today:

DescriptionExample
Select a booth by name or external id.?selectBooth=A-12
Select an exhibitor.?selectExhibitor=Acme
Open whatever a slug names (booth, session, …).?select=biogreen-ag
Select a category.?selectCategory=food
Open a list panel (bookmarks, sessions, …).?showList=bookmarks
Launch a tour by id.?selectTour=t-1
Switch the UI language.?changeLanguage=fr
Enter the route-building mode.?startBuildRoute
Build a route through waypoints, first to last.?selectRoute[0]=A-12&selectRoute[1]=B-30
The same route over accessible segments only.?selectAccessibleRoute[0]=A-12&selectAccessibleRoute[1]=B-30
Show a pathway, highlighting entities along it.?showPathway[0]=p-1&showPathway[1][0]=ext-1
Place the visitor position; true focuses on it.?selectCurrentPosition[0][x]=100&selectCurrentPosition[0][y]=200&selectCurrentPosition[1]=true
Set the map-chrome visibility.?setVisibility[header]=false

Several intents combine in one URL and play in order (?changeLanguage=fr&selectBooth=A-12). Multi-argument intents use the bracketed form (?intents[0][name]=…&intents[0][args][0]=…), which also allows repeating the same intent.

?changeLanguage= reports a language the plan does not ship as an SDK error. Point links at a language the plan actually has, or set disableRuntimeAlerts in the embed options.

camera ​

The initial camera position, in the schema-typed form (numbers are validated; an invalid field is ignored rather than breaking the load):

DescriptionExample
Center in projected "x, y".?camera[x]=13595.17&camera[y]=6878.86
Center in WGS84 "lat, lng".?camera[lat]=52.322&camera[lng]=9.8144
Floor/level name.?camera[floor]=2
Map rotation (0–360 degrees).?camera[bearing]=180
Camera animation duration in ms.?camera[zoomTime]=3000

Fields combine freely in one URL. The same shape is available at runtime as the setCamera intent and the FloorPlan.setCamera() method.

visibility ​

The initial visibility of the map chrome, in the schema-typed form (booleans are validated; an invalid field is ignored rather than breaking the load):

DescriptionExample
Header with logos and the free/demo badge.?visibility[header]=false
Map controls.?visibility[controls]=false
Floor selector.?visibility[levels]=false
Overlay panel — search, lists, etc.?visibility[overlay]=false
Search-filter buttons row.?visibility[searchButtons]=true

searchButtons follows overlay when omitted. An explicit true keeps the buttons while the overlay is hidden — clicking one opens the overlay on demand: ?visibility[overlay]=false&visibility[searchButtons]=true (also combines with the deprecated ?noOverlay=true: ?noOverlay=true&visibility[searchButtons]=true).

Fields combine freely in one URL; every omitted element resets to visible. The same shape is available at runtime as the setVisibility intent and the FloorPlan.setVisibility() method.

?visibility[overlay]=false (NoOverlay) hides:

  • Menu
  • Search results
  • Exhibitor detail view
  • Booth detail view
  • Bookmarks
  • Visited list
  • Language selector
  • Category browser
  • Wayfinding / directions panel
  • Filter panel
  • Sessions (with its filters)
  • Speakers (with its filters)
  • Tours
  • Tour points
  • Route planner
  • Event detail view
  • Speaker detail view

filters ​

The initial search filters, in the schema-typed form (values are plain names, matched case-insensitively; an unknown name is ignored with a console warning):

DescriptionExample
Pre-select categories and open the category filter panel.?filters[categories][0]=food
Pre-select a single POI type (activates its filter button).?filters[poiType]=cafe
Pre-select several POI types.?filters[poiTypes][0]=cafe&filters[poiTypes][1]=wc
Open the exhibitors list.?filters[exhibitors]=true

Categories and POI types are mutually exclusive — when both are given, the categories win. The legacy ?categories=, ?poiType=, ?poiTypes= and ?exhibitors=true keys keep working as aliases and remain the form the floor plan writes back to the URL as the visitor changes filters.

layer ​

Sets the floor shown on load, matched by the floor's short label — the abbreviation shown in the floor selector (case-insensitive).

DescriptionExample
Show the "Level 1" floor on load.?layer=L1

Search text ​

DescriptionExample
Displays matching entities.?abc
Displays entity details.?biogreen-ag

bookmarks ​

DescriptionExample
Open the bookmarks list.?bookmarks

disableBookmarked ​

DescriptionExample
Disables the ability to add to bookmarks.?disableBookmarked=true

language ​

DescriptionExample
Opens the language selector.?language

route ​

Colon-separated list of route points.

  • route:<Entity name>:<Entity name>
DescriptionExample
Displays the route.?route:42-23:101-12
Displays the accessible route.?route:42-23:101-12:true

heatmap ​

Heatmap mode, in the schema-typed form: a non-empty heatmap[…] engages the mode unless heatmap[enabled]=false, so ?heatmap[variant]=yah alone is enough. variant picks the dataset (booths — booth/exhibitor view stats, the default — or yah for "You are here" QR-code scans); kiosk=true narrows the yah variant to kiosk positions. Heatmap mode freezes the page URL for the whole session. The access token t stays a separate parameter.

DescriptionExample
Booth-visit heatmap.?heatmap[enabled]=true&t=TOKEN
Heatmap view for "You are here" QR codes.?heatmap[variant]=yah&t=TOKEN
Heatmap mode for kiosks.?heatmap[variant]=yah&heatmap[kiosk]=true&t=TOKEN

The legacy aliases keep working:

DescriptionExample
Shows the heatmap.?heatmap=true&t=TOKEN
Heatmap view for "You are here" QR codes.?heatmap=true&type=yah&t=TOKEN
Heatmap mode for kiosks.?heatmap=true&type=yah&subtype=kiosk&t=TOKEN

blue-dot ​

  • blue-dot=<X>,<Y>,<Z>
DescriptionExample
Sets the blue-dot coordinates.?blue-dot=8022.44384765625,8423.1962890625,1
DescriptionExample
Applies a granted consent — no prompt, analytics on.?consent=granted
Applies a denied consent — no prompt, analytics off.?consent=denied

Without the parameter the decision is the visitor's (ask): visitors in GDPR regions get the consent prompt.

DescriptionExample
Hides the header logo and the ExpoFP logo.?hideHeaderLogo=true

hideLogoInBooth ​

DescriptionExample
Hides booth logos.?hideLogoInBooth=true

disableFeatured ​

DescriptionExample
Disables the featured view.?disableFeatured=true

disableGps ​

DescriptionExample
Disables GPS.?disableGps=true

monochrome ​

DescriptionExample
Sets the monochrome view.?monochrome=true

kiosk ​

Kiosk mode has two independent inputs: the mode toggle and the anchor (where the device stands and how its camera is framed), in the schema-typed form:

DescriptionExample
Enables kiosk mode.?kiosk=1
Disables kiosk mode.?kiosk=0
Anchor position in plan coordinates.?kiosk[x]=6517.5&kiosk[y]=3826
Anchor floor and heading.?kiosk[z]=1&kiosk[heading]=90
Per-device UI scale and icon size.?kiosk[uiScale]=1.2&kiosk[iconSizePercent]=120

The anchor node is also settable from the manifest or embed options (config.kiosk); a kiosk saved on the device itself (the ?setkiosk flow) wins over it.

A separate, narrower channel carries the anchor position between devices: the QR code a kiosk shows for a route appends kiosk_x, kiosk_y and kiosk_z, so the phone that scans it can resolve the route's starting point. Those three keep working. The other kiosk_* keys are retired — the QR stopped emitting them long ago, and the schema-typed ?kiosk[…] form above is the way to set an anchor.

A scanned route QR leaves the phone in kiosk mode

Opening a link that carries kiosk_x/kiosk_y/kiosk_z puts the receiving device into kiosk mode, and the device remembers it — later visits to the same plan start in kiosk mode too, with no parameter present. To take a phone back out, set localStorage['kiosk'] = '0' on it, or open ?kiosk=0.

TIP

On a device without an address bar, type kiosk=1 or kiosk=0 into the search field and press Enter to toggle the mode.

exhibitors ​

DescriptionExample
List filtered by exhibitor display names (comma-separated).?exhibitors=BioCycle Africa,UrbanQuest Design

Values match by exact display name — every exhibitor bearing a listed name is included. Because the list is comma-separated, a name that itself contains a comma cannot be addressed through this parameter.

viewermode ​

Seeds a sticky per-browser preference: the choice is stored under the efp-viewerMode localStorage key (a legacy ___viewer_mode value is still honored) and persists across loads. ?viewermode=0 clears the stored preference rather than forcing the mode off — a viewerMode set by the embedding page still applies.

DescriptionExample
Enables viewer mode (true also accepted).?viewermode=1
Clears the stored preference (false also accepted).?viewermode=0

previewMode ​

Preview mode hides booth prices and buy/reserve actions. Like viewermode, the value seeds a sticky per-browser preference — stored under the efp-previewMode localStorage key (a legacy ___preview_mode value is still honored); ?previewMode=false clears it.

DescriptionExample
Enables preview mode.?previewMode=true
Clears the stored preference.?previewMode=false

uiscale ​

Scales the floor plan UI. Accepts 0.8–1.4 (a comma decimal like ?uiscale=1,2 works too); values outside that range are ignored. The value seeds a sticky per-browser preference stored under the efp-uiScale localStorage key (a legacy ___ui-scale value is still honored).

DescriptionExample
Renders the UI at 120%.?uiscale=1.2

resetuiscale ​

DescriptionExample
Clears the stored UI-scale preference.?resetuiscale

debug ​

TIP

Alternatively, you can type debug=1 into the search field to enable it or debug=0 to disable it, and then press Enter.

The choice is stored under the efp-debugMode localStorage key, the parameter is removed from the address bar, and the page reloads once to apply it.

DescriptionExample
Enables debug mode.?debug=1
Disables debug mode.?debug=0

setkiosk ​

DescriptionExample
Kiosk creation and configuration mode.?setkiosk

Deprecated parameters ​

These are accepted but scheduled for removal — migrate your links when convenient. When a link carries both forms, the canonical one wins:

DeprecatedUse instead
?noOverlay=true?visibility[overlay]=false (false → [overlay]=true)
?allowConsent=true?consent=granted (?allowConsent=false → ?consent=denied)
?agenda?showList=sessions

?allowConsent also remains accepted in the event data and in the load() options. ?agenda is the sessions panel's old spelling — the rename to sessions (Oct 2025) left no URL alias, so the key did nothing until this translation; the mobile SDKs emit it. A booth slugged agenda is no longer reachable as ?agenda.

Legacy grammar ​

The compact deep-link forms the plan has always spoken. They are frozen — no new keys or forms are added — and most have a canonical equivalent. Use the canonical form in new links.

They carry no removal date, and for a reason worth knowing: the plan still writes these forms into the address bar as the visitor navigates (open the bookmarks panel and the URL becomes ?bookmarks). They stay the address-bar spelling until the URL writer itself moves over.

LegacyCanonical
?<slug>?select=<slug>
?bookmarks, ?visited, ?sessions, ?exhibitors, ?speakers, ?tours, ?language?showList=<panel>
?tour=<id>?selectTour=<id>
?route:<to>:<from>:false?selectRoute[0]=<from>&selectRoute[1]=<to>
?route:<to>:<from>:true?selectAccessibleRoute[0]=<from>&…[1]=<to>
?planner=a:b?openPlanner[items][0]=a&openPlanner[items][1]=b
?planner&source=bookmarks?openPlanner[fromBookmarks]=true
?categories=, ?poiType=, ?poiTypes=?filters[categories][0]=…

The route form does not translate key for key

  • The order is reversed. Legacy is route:<to>:<from>; selectRoute takes waypoints first to last, so a mechanical swap reverses the route.
  • A route with no FROM (?route:A-12, the start filled in from the kiosk anchor) has no canonical form — selectRoute needs both ends.
  • &title= is lost: selectRoute has no title argument.

No canonical form exists for ?kiosk=1|0 (kiosk mode — ?kiosk[x]/[y] is the anchor, an independent input), ?exhibitors=a,b (multi-select; ?selectExhibitor takes one), the one-shots ?blue-dot=, ?viewermode=, ?previewMode=, ?uiscale=, ?resetuiscale, or the ?debug / ?setkiosk commands.

visibility rebuilds, noOverlay does not

?visibility[…] sets the whole map chrome at once: every element it omits resets to visible. So ?visibility[overlay]=false on a plan that also hides, say, the header brings that header back. List every element you want hidden — ?visibility[overlay]=false&visibility[header]=false — rather than translating ?noOverlay=true key for key.