This tool monitors the smyrooms.com search API for price consistency. It automatically makes repeated identical requests to detect if the API returns different prices for the same query.
The 4 search requests use the exact same payload. The prices from all 4 responses are compared by option key. Search #4 runs after the quote phase to detect if prices changed post-quote. If any price differs between the 4 calls, the group is flagged as SEARCH.
After searches #1-#3, each option from the last search response is sent to the valuation endpoint to get a confirmed quote price. If the quote price differs from the search price, or the API returns an error, the group is flagged as QUOTE. Search #4 then verifies if prices remain available after the quote.
Each option is identified by a composite key:
| Component | Example | Description |
|---|---|---|
| Hotel Code | (from Settings) | Hotel identifier |
| Meal Plan | HD / SA | Half Board / Room Only |
| Room Name | Habitación | Room type description |
| Room Code | 6297 | Room type code |
| Package | True/False | RateRule type 4 = package rate |
| NRF | True/False | Non-refundable flag |
Format: hotel|mealplan|room_name|room_code|package|nrf
| OK | All prices consistent across searches and quotes |
| SEARCH | Price difference detected between the 4 search requests |
| QUOTE | Quote price differs from search price, or API returned an error for quote |
| Step | URL | Method |
|---|---|---|
| Search | https://api.smyrooms.com/search | POST |
| Quote (Valuation) | https://api.smyrooms.com/valuation | POST |
| Parameter | Search | Quote |
|---|---|---|
| Hotel | (from Settings) | from AgencyToken |
| Currency | EUR | EUR |
| Market | NL | - |
| Nationality | - | NL |
| Occupancy | 2 adults (age 30) | from AgencyToken |
| Dates | Random, 3-6 months ahead | from AgencyToken |
This feature detects price inconsistencies when searching for multiple hotels at once vs searching for each hotel individually. The API may return different prices or options depending on how many hotels are in the request.
For each hotel, we compare all options returned in the multi-search vs the single-search. Options are matched by key (meal plan + room + package + NRF). We flag two types of problems:
We do NOT flag: options that only exist in single-search (extra availability is OK), or prices that went down (cheaper is OK).
For multi-hotel comparison, the key does NOT include the hotel code (since we already know which hotel):
| Component | Example | Description |
|---|---|---|
| Meal Plan | HD / SA | Half Board / Room Only |
| Room Name | Habitación Doble | Room type description |
| Room Code | M18829 | Room type code |
| Package | True/False | RateRule type 4 = package rate |
| NRF | True/False | Non-refundable flag |
| Currency | EUR / USD | Price currency |
Format: mealplan|room_name|room_code|package|nrf|currency
Important: Package rates are compared with package rates, non-package with non-package. Same for NRF. EUR prices are compared with EUR, USD with USD.
| OK | Option exists in both with same price |
| MISSING | Option exists in multi but NOT in single (disappeared) |
| PRICE DIFF | Option exists in both but prices differ |
| ONLY SINGLE | Option only exists in single-search (not flagged as problem) |
Click on any hotel code in the results table to see a detailed breakdown:
Possible causes for multi vs single inconsistencies: