Iframe parameters
Query parameters on the iframe src set everything about an embed. Every parameter is optional except the publishable key: a bare embed renders a default interactive map.
Defaults follow a fixed precedence. The URL value wins. Failing that, your organization's default for the field applies, and failing that, the built-in default below. Boolean parameters take the textual values true or false.
Your organization's safety rules cap the result, whatever the three say. A capability they turn off for embeds, the elevation chart, the profile analysis, an overlay or the overlay time control, stays off whatever the URL or your organization's default asks for. Every rule but the elevation chart's is enforced server-side.
Credentials
publishable_keystring
Your publishable key (pk_…) with the publishing scope. It resolves your organization and authorizes the embed. An embed without a resolvable publishable key renders a loader rather than a map. The page that frames the embed must be on a site your organization lists in its allowed domains, and the iframe must send that page's origin: the snippet's iframe sets referrerpolicy="strict-origin-when-cross-origin", which a page-wide Referrer-Policy: no-referrer does not override. A hand-written iframe keeps it, otherwise the embed answers 401 and stays blank.
session_tokenstring
A short-lived session token (sess_…). Required only when your organization enforces session tokens (require_session_token). It may be left out: the embed then asks the page that frames it for one with mountaya:requestSessionToken, and waits for the answer, for at most 10 seconds, before it reads anything under your key. Whenever it is given, or your organization requires one, a framed embed asks as it loads and again one minute before the expires_at of each answer, and sends the token given here until the page answers, then reads everything again with the answer, the base map included: a token given here that expired before the embed loaded leaves it blank only until that first answer. The snippet's session script answers from your own endpoint. See the quickstart and authentication.
Content selection
itinerary_idstring
The itinerary to display.
collection_idstring
A collection to display: the embed draws the public itineraries and the public zones it holds, each as last published. Pass it alone for a map of the whole collection, or alongside itinerary_id to open that collection focused on one of its itineraries.
Your organization decides whether a collection's itineraries and zones draw, not this URL: its with_collection_itineraries and with_collection_zones settings withhold either layer server-side when off, and no query parameter asks for them. A zone draws only once it is published and public, and no parameter shows a zone on its own.
activitystring
The activity context for the map, as a wire-form slug such as hiking-and-trail. See the activity slugs table.
Display and camera
terrainstring
default: topo
The basemap terrain slug. Defaults to topo when neither the URL nor your organization specifies one.
terrain_variantstring
default: light
The basemap tint, light or dark.
segments_colorstring
One hex color for every itinerary segment, applied to the map lines, the start and end markers, and the elevation profile bands. Waypoint markers keep the colors they were given. Omit it to use your organization's default. Pass it empty (segments_color=) to keep each segment's own color on this embed even when your organization sets one.
overlaystring
A single environmental overlay to show on load, by its slug such as temperature-actual. See the overlay slugs table.
enrichmentsstring[]
Enrichment overlays to stack on the map on load, each by its slug such as hillshade. Pass each value as a repeated query parameter, like with_overlays. See the overlay slugs table.
time_offsetnumber
The forecast time for weather and snow overlays, as a count of minutes from the viewer's current clock. Negative is the past. It is clamped to the studio's forecast window, roughly 71 hours back to 6 days forward, and omitting it means "now". The offset is relative on purpose, so a shared link to "+6 days" means six days from whoever opens it.
viewstring
The initial camera, carried in the URL hash rather than the query string as #view=zoom/lat/lng, optionally with bearing and pitch (#view=zoom/lat/lng/bearing/pitch). The studio writes this hash as the viewer pans and zooms, so copying a live embed URL preserves the camera.
Viewer preferences
The preferred_* parameters set the embed's initial display preferences.
These set the hosted embed iframe's initial display preferences. Each is optional; when omitted, the studio falls back to your organization's defaults and then to a built-in default.
preferred_unit_pace chooses the FORM a travel rate is stated in, not the system it is stated in: per-time renders a speed and per-distance renders its reciprocal, while preferred_unit_length still decides whether that is km/h and min/km or mph and min/mi.
preferred_languagestring
The locale for the studio's interface, one of en, fr, es, it, de, zh, ja. See the languages reference.
UI controls
The with_* parameters toggle which controls and panels appear. Each is a boolean, and the default is the value used when neither the URL nor your organization specifies one.
Map controls
with_navigation_controlboolean
default: true
The zoom and compass buttons. An embed never offers geolocation, whatever this says, because it never asks a visitor for their location. The zoom range a visitor reaches is your organization's zoom_min and zoom_max safety rules.
with_overlays_controlboolean
default: false
The overlay time cursor, letting a visitor move a weather or snow overlay backwards or forwards in time. It governs the time cursor alone: which overlays a visitor may switch on is with_overlays, and which terrains the switcher offers is with_terrains. Capped by the time-control safety rule, which, when off, refuses a tile asked for more than 15 minutes from now, so the visitor sees the present state only.
with_preferences_controlboolean
default: true
The preferences control, letting a visitor change the units (distance, travel rate, slope and temperature) and the interface language for their visit. The theme is not among them: an embed keeps your preferred_theme. Nothing a visitor changes is saved to your organization.
with_download_controlboolean
default: false
The download control, letting a visitor download the itinerary as GPX, FIT, TCX, GeoJSON, KML, KMZ or CSV.
with_directions_controlboolean
default: false
The directions control, opening the turn-by-turn directions of the itinerary's routed segments as they were stored, to read, print or download as a PDF. It computes no route: a visitor never routes between points of their own.
with_streetview_controlboolean
default: false
The street view control.
Elevation and analysis panels
These four are not independent. The profile is one panel: a row of figures with the controls the visitor operates, the elevation chart beneath it, and the analysis bars beneath that. Two of the four are read against the parts around them, so they depend on those parts being there.
The embed wizard enforces this. A control whose dependency is off is unchecked and disabled, with a tooltip naming what to turn on first.
with_profile_elevationboolean
default: true
The elevation profile chart. Turning it off also withdraws the analysis bars and the pace field, which are both read against it. Stays off when your organization's safety rules turn it off for embeds.
with_profile_characteristicsboolean
default: true
The row of key figures above the chart (distance, duration, ascent, and the rest), and the controls beside them. Turning it off also withdraws the pace field, which renders in that row.
with_profile_analysisboolean
default: false
The profile's computed terrain analysis: the surface and way-type bars under the elevation chart, and the surface, way type, trail difficulty, slope and aspect readings of its hover readout. On a pointer device the bars are a hover detail: they reveal while the cursor is over the profile and collapse when it leaves. Needs with_profile_elevation, which is what reveals them. Stays off when your organization's safety rules turn it off for embeds: the rule removes the analysis from what the embed is served.
with_profile_pace_controlboolean
default: true
The pace field, which lets a visitor enter their own travel rate and read the itinerary re-timed for it. It sits in the figures row beside the segment chooser, and a reset beside it returns the visitor to your own pacing.
The override belongs to that visitor's session alone. Nothing is saved, the itinerary's committed speeds are untouched, and clearing the field brings your own figures back. The field is shown in whichever speed or pace unit the visitor reads, following the same two preferences the rest of the studio does.
Needs with_profile_elevation and with_profile_characteristics. With either off, the field is withheld however the embed is configured.
Overlay and terrain allowlists
Two parameters take a list of slugs rather than a single value. Pass each value as a repeated query parameter, for example ?with_overlays=hillshade&with_overlays=steepness.
with_overlaysstring[]
The overlays the viewer may choose from in the layers control. When omitted, your organization's default list applies, and an empty list, or one holding *, offers the whole catalog. Your organization's overlay allowlist caps it: an overlay listed here but not admitted there renders no tiles. See the overlay slugs table.
with_terrainsstring[]
The basemap terrains the viewer may switch between. When omitted, your organization's default allowlist applies.
Activity slugs
The activity parameter takes the kebab-case wire form.
Each routed activity uses a profile tuned to its terrain and movement style. Most activities support turn-by-turn routing, road cycling among them. Backcountry skiing, gravel biking and mountain biking are freehand-line only: no query routes them, and gravel and mountain biking get no surface, way-type or trail-difficulty analysis either. The GraphQL ActivitySlug enum uses the uppercase value; the Map Studio and Tile APIs use the kebab-case wire form, the same value lowercased with each underscore turned into a hyphen.
Overlay slugs
The overlay and enrichments parameters and the with_overlays allowlist take these slugs.
Weather and snow overlays accept a timestamp query parameter to select a forecast step; static overlays (pois, hillshade, steepness, aspectslope) ignore it.