Grid URL Parameters
The /embed/grid endpoint renders an EventsGrid component that displays places or events in a filterable grid layout.
Base URL
/embed/grid?slug=<boundary-slug>
Required Parameters
| Parameter | Type | Description |
|---|---|---|
slug OR boundary | string | Location boundary slug (e.g., "austin", "sf", "denver") |
list | string | Alternative: List slug that provides configuration from Lists API |
Note: Either slug/boundary OR list must be provided. When using list, if the list has an associated organization, that organization's boundary will be used automatically.
Content & Data Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
type | string | "places" | Content type: "places" or "events" |
vibes | string | - | Comma-separated vibe filters (e.g., "chill,artsy") |
categories | string | - | Comma-separated category filters |
tags | string | - | Comma-separated tag filters |
editorial_categories | string | - | Editorial category filters (always applied server-side) |
dist / radius | number | - | Radius in meters for proximity search |
search / searchTerm | string | - | Initial search term |
hideNoImageItems | boolean | false | Hide items without images |
ordering / sort | string | "-score_combined" | Sort order for results (see below) |
Sort Order (ordering / sort)
Controls how places are sorted in the grid.
| Value | Description |
|---|---|
name | Alphabetical by place name (A-Z) |
-score_combined | Default. By relevance/popularity score (highest first) |
-vibe_count | By number of vibes (most vibes first) |
Filter Behavior Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
strictFilter | boolean | false | When true, taxonomy filters are applied server-side (AND logic). When false, filters are client-side (OR logic). |
filterBehavior | string | "trapped" | Only applies when strictFilter=true. Controls how users can navigate taxonomy filters: |
Filter Behavior Options:
"trapped"- User is locked within the passed taxonomy values and their children"selected"- Passed filter values are pre-selected, but user can deselect and explore other options"open"- All taxonomies shown, passed values are not pre-selected
Grid Display Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
gridColumns | number | 3 | Number of columns in the grid |
shownAtStart | number | 100 | Number of items shown initially (before "Load More") |
Filter UI Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
showSearchFilter | boolean | true | Show the search input |
showVibeFilter | boolean | true | Show the vibes filter |
showCategoryFilter | boolean | auto | Show the category filter (auto-enabled for places) |
showTagFilter | boolean | true | Show the tags filter |
showItemCountOnFilters | boolean | true | Show item counts on filter chips |
filterViewMode | string | "horizontal" | Filter layout: "horizontal" or "tabbed" |
filterSelectionMode | string | "auto" | Selection mode: "single", "multiple", or "auto" |
multiSelectTaxonomies | array | [] | Taxonomy slugs that allow multi-select (e.g., ["vibes","tags"]) |
taxonomySortOrder | string | "count" | Sort order for taxonomy chips (see below) |
Taxonomy Sort Order (taxonomySortOrder)
Controls how filter chips are sorted. Default is count (most items first).
Format: "taxonomy:order,taxonomy:order"
Values:
| Value | Description |
|---|---|
count | Default. Sort by item count (most items first), then alphabetically |
alpha | Alphabetical sorting (theme order → color → A-Z) |
Example: taxonomySortOrder=vibes:alpha,categories:alpha,tags:alpha for all alphabetical.
Date Filter Parameters (Events Only)
| Parameter | Type | Default | Description |
|---|---|---|---|
showDateRangeSelector | boolean | true | Show date range selector (only for type=events) |
dateFilterOptions | array | ["upcoming","today","weekend","next_week","month"] | Available date filter options |
groupRecurringEvents | boolean | false | Group recurring events to show only next occurrence |
recurringBadgeLinkTo | string | "grid-filter" | Where recurring badge click navigates: "grid-filter" (filter in place) or "event-series-page" (navigate to series page) |
Card Display Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
showVibesOnCards | boolean | true | Show vibes on cards |
showTagsOnCards | boolean | false | Show tags on cards |
showAddressOnCards | boolean | true | Show address on cards |
subtitleSource | string | "none" | Source for card subtitle: "none", "category", "address", etc. |
subtitlePosition | string | "above-title" | Subtitle position: "above-title" or "below-title" |
showRating | boolean | false | Show ratings on cards |
showBookmark | boolean | false | Show bookmark button on cards |
Updates Display
| Parameter | Type | Default | Description |
|---|---|---|---|
showUpdates | boolean | false | Enable updates display on cards |
updatesDisplayMode | string | "badge" | Display mode: "badge", "text", or "both" |
updatesFilterTypes | string | - | Comma-separated types: Update,Offer,Clue,Sponsor,Special |
Theme Parameter
| Parameter | Type | Default | Description |
|---|---|---|---|
theme / themeName | string | "default" | Theme slug for styling |
Example URLs
Basic Places Grid
/embed/grid?slug=austin&type=places
Events with Date Filters
/embed/grid?slug=dc&type=events&showDateRangeSelector=true
Grid with Custom Columns
/embed/grid?slug=la&gridColumns=4&shownAtStart=20
List-Based Grid
/embed/grid?list=my-curated-list&gridColumns=3
Filtered by Vibes (Client-Side)
/embed/grid?slug=sf&vibes=chill,artsy&showVibeFilter=true
Strict Filtering (Server-Side)
/embed/grid?slug=sf&strictFilter=true&categories=food&vibes=chill
Trapped Filter Behavior
/embed/grid?slug=austin&strictFilter=true&filterBehavior=trapped&categories=food
Custom Theme and Display Options
/embed/grid?slug=denver&theme=dark&showVibesOnCards=true&showAddressOnCards=true
Full Featured Example
/embed/grid?slug=nyc&type=events&gridColumns=3&shownAtStart=50&showVibesOnCards=true&showDateRangeSelector=true&filterViewMode=horizontal&theme=default
PostMessage Events
The embed communicates with the parent window via postMessage:
| Event Type | Description | Data |
|---|---|---|
"card-clicked" | User clicked a card | { embedId: "grid", data: <item> } |
Example Parent Window Handler
window.addEventListener("message", (event) => {
if (event.data.embedId === "grid") {
switch (event.data.type) {
case "card-clicked":
console.log("Card clicked:", event.data.data);
break;
}
}
});
Embedding
Basic iframe Embed
<iframe
src="https://vibemap.com/embed/grid?slug=austin&type=places"
width="100%"
height="600"
frameborder="0"
style="border: none;"
></iframe>
Responsive Embed
<div style="position: relative; width: 100%; padding-bottom: 75%;">
<iframe
src="https://vibemap.com/embed/grid?slug=austin"
style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: none;"
></iframe>
</div>