Introduction
Each PMS provider uses its own set of amenity names. For example, one provider might call it “Wireless Internet” while another calls it “WiFi/Wireless” or “Internet Wifi”. Zepl’s amenity mapping system lets you map these provider-specific names to a unified set of amenities in your workspace, so that listings from different providers can be searched and filtered consistently.
How It Works
The mapping flow has three layers:
-
Raw PMS Amenities — When listings are synced from a PMS, the provider’s amenity names are stored as-is on each listing (in the
rawAmenities field).
-
Workspace Amenities — You define a unified set of amenity names and categories for your workspace. Each unified amenity has a
providerNames array that maps one or more PMS amenity names to it.
-
Listing Amenities — Based on the mapping, Zepl automatically matches each listing’s raw amenities to your unified amenities. These are returned in API responses grouped by category.
PMS Provider Your Workspace
───────────── ──────────────
"Wireless Internet" ──┐
"WiFi/Wireless" ──┼──▶ Wifi (Common)
"Internet Wifi" ──┘
"Dishwasher" ──┐
"dish_washer" ──┼──▶ Dishwasher (Kitchen)
"dishwashing_machine"──┘
Setting Up Amenity Mapping
Step 1: Review Available PMS Amenities
First, check which amenities the provider sends. You can find a reference list for each supported provider in the provider-specific pages below. These lists are a starting point — providers may add new amenities over time.
To discover unmapped amenities (amenities that exist on your synced listings but haven’t been mapped yet), use:
GET /api/v1/integration-definition/{provider}/unmapped
This returns all raw amenity names from your listings that don’t match any existing mapping. Run this periodically to catch newly added amenities.
Step 2: Define Your Mapping
Structure your mapping as categories, each containing a list of unified amenities. Each unified amenity specifies which PMS names map to it via the providerNames array.
[
{
"id": "common",
"name": "Common",
"amenities": [
{
"id": "wifi",
"name": "Wifi",
"providerNames": ["Wireless Internet", "WiFi/Wireless", "Internet Wifi", "Free wifi"]
},
{
"id": "air-conditioning",
"name": "Air conditioning",
"providerNames": ["Air conditioning", "Air Conditioning", "AC"]
},
{
"id": "heating",
"name": "Heating",
"providerNames": ["Heating", "Central Heating"]
}
]
},
{
"id": "kitchen",
"name": "Kitchen",
"amenities": [
{
"id": "dishwasher",
"name": "Dishwasher",
"providerNames": ["Dishwasher"]
},
{
"id": "microwave",
"name": "Microwave",
"providerNames": ["Microwave", "Microwave Oven"]
}
]
}
]
Key points:
id values must be unique within their scope (unique category IDs, unique amenity IDs within a category)
providerNames matching is case-sensitive — include the exact names as they appear in the PMS data
- A single PMS amenity name should only appear in one unified amenity’s
providerNames
- Multiple PMS names can map to the same unified amenity (e.g., “Wireless Internet” and “WiFi/Wireless” both map to “Wifi”)
Step 3: Apply the Mapping
Send your mapping to the update endpoint:
PUT /api/v1/integration-definition/{provider}/amenity
{
"amenityCategoryMapping": [
{
"id": "common",
"name": "Common",
"amenities": [
{
"id": "wifi",
"name": "Wifi",
"providerNames": ["Wireless Internet"]
}
]
}
]
}
This replaces the entire mapping for the provider. Include all categories and amenities you want mapped, not just the new ones.
Step 4: Verify
Retrieve the current mapping to verify it was applied:
GET /api/v1/integration-definition/{provider}/amenity
Check for unmapped amenities again to see if anything was missed:
GET /api/v1/integration-definition/{provider}/unmapped
How Mapped Amenities Appear
Once mapped, amenities appear on listing responses grouped by category:
{
"amenities": {
"categories": {
"Common": {
"categoryID": "common",
"values": [
{ "name": "Wifi", "id": "wifi" },
{ "name": "Air conditioning", "id": "air-conditioning" }
]
},
"Kitchen": {
"categoryID": "kitchen",
"values": [
{ "name": "Dishwasher", "id": "dishwasher" },
{ "name": "Microwave", "id": "microwave" }
]
}
}
}
}
Amenity Categories
To see all amenity categories currently defined across your workspace:
GET /api/v1/integration-definition/amenity-categories
Common categories include: Common, Kitchen, Facility, Outdoor, Home Safety, Location, Family, Accessibility.
Using Amenities in Search
Mapped amenities can be used to filter search results. Pass amenity IDs in the amenities query parameter:
GET /api/v1/search?amenities=wifi,dishwasher&checkInDate=2025-07-01&checkOutDate=2025-07-05
Only listings that have all specified amenities will be returned. See the Search guide for more details.
Provider Amenity References
Each provider has its own set of amenity names. Use the pages below as a reference when setting up your mapping:
API Reference