Watch your comp set before it shows up in the report
A rate shopper tells you a competitor dropped fifteen euros. It does not tell you that they dropped it because their score fell, or because a congress they were holding rooms for got cancelled. Rates, reputation and rank in the same conversation turn a number into a reason.

What you'll build
A competitive briefing for a date range: where each competitor sits against you in price and in position, who moved and by how much, whether their reputation supports what they charge, and the one or two places where you are leaving money on the table.
Set this up first
RequiredThe endpoints don't take free text — they take your identifiers. This recipe assumes the things below already exist on your account; while one of them is missing the call answers empty, not with an error. Each point links to the recipe that walks it.
- 01
Register the hotel in your dashboard
Veetal resolves the property against Booking.com and assigns it a slug — and that slug, not the hotel name, is what every accommodation endpoint takes.
Guide: Add your hotel and the comp set you price against → - 02
Fill in its comp set
Up to ten competitors on the accommodation detail. Without them this recipe prints your own price list instead of a comparison, and the competitors block comes back empty.
- 03
Run one import on the hotel
A Feed dataset only contains what an import has written. Activate this API on the hotel, launch the first run by hand and read the credit estimate before you press — the cost grows with the comp set and with the OTAs.
Guide: Import a hotel's reputation from Booking →
To see whether an import has already finished, list them:
curl "https://api.veetal.app/v2/account/imports" \
-H "veetal-api-key: YOUR_API_KEY"Feed reads are not billed per request. The credits go on the imports that collect the data, which is why the estimate appears before you launch and not after.
How it works
- 01
Build the comp set in the dashboard
Up to ten competitors per accommodation. Choose the ones a guest would actually compare you against, not the ones with the same star count — the set defines everything downstream.
- 02
Schedule the rate import
Rates are a Feed dataset. Every competitor on every OTA is a listing, and listings are what you are billed for, so check the estimate before you set a daily schedule.
- 03
Ask the comparison, not the table
"Where am I overpriced next weekend?" gets you an answer. "Give me the rates" gets you a spreadsheet you will not read.
The call
The rates feed returns your accommodation and its whole comp set for a date or a month, already normalised across OTAs.
curl "https://api.veetal.app/v2/feed/accommodation/YOUR_SLUG/rates?rate_year=2026&rate_month=10&min_rates=true" \
-H "veetal-api-key: YOUR_API_KEY"Build it with AI
Connect the MCP →Paste this prompt into an assistant with the Veetal MCP connected and it builds the whole app against your data — no front-end work.
Using my Veetal Connect data, brief me on my competitive position for the next
three weekends.
Start by telling me who is in my comp set and whether the rate data for those dates is
actually there — if an import has not run, say so instead of working around it.
For each weekend:
- my rate against each competitor, in money and as a percentage
- who has moved since the previous extraction, and in which direction
- how their review scores compare to mine, and whether the price ordering matches the
reputation ordering — where it does not, one of us is mispriced
- any competitor missing from a date, which usually means they sold out
Finish with the two or three specific moves you would make, each with the number that
justifies it. If the honest answer is "hold", say hold — I do not need a recommendation
for the sake of having one.Questions
How is this different from the rate grid recipe?
That one shows you the grid. This one crosses the grid with reputation and position, so you get why a competitor moved rather than only that they did.
How many competitors should I track?
Fewer than you want to. Each one multiplies the cost of every import, and a set of ten that includes four hotels no guest compares you to is expensive noise.
Does it see their availability?
Not directly. But a competitor whose rate disappears for a date has usually sold out, and that absence is a demand signal worth as much as the price.
Can I run it every morning?
Yes. This is the recipe most worth scheduling — a competitive briefing at 8am, before the day's pricing decisions rather than after them.
Build your own
Start free with 100 API credits. No credit card, no sales call.