Stayingapi price drop watcher
Skill stayingapi/travel-skills/skills/stayingapi-price-drop-watcher
Watch a specific stay and get alerted the moment its total price falls to or below your threshold. Powered by the StayingAPI REST API / MCP server.From its SKILL.md
npx -y skills add stayingapi/travel-skills --skill stayingapi-price-drop-watcherAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its file declares
Copied from the file, not written here
The file declares its own license as Proprietary — see https://stayingapi.com/terms. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
4.4 KB, ~1.1k tokens by cl100k_base, as published. Nobody here has run it
Price-drop watcher
Track a known listing for specific dates on a schedule and alert when its total price falls to or below a threshold you set. It calls GET /v1/price, compares the returned totalPrice to your priceBelow threshold, and — tracking the last-alerted price in static data — fires only on a NEW drop (first time below, or a further drop since the last alert) with the new price and a booking link. This is the automation twin of the App’s price-drop saved search.
- Base URL:
https://api.stayingapi.com/v1(REST) · MCP:https://mcp.stayingapi.com/mcp - Auth:
Authorization: Bearer stay_live_…(free sandbox:stay_test_…). - Get a free key (no card): https://stayingapi.com/signup · Full machine contract: https://api.stayingapi.com/openapi.json
Steps
- Pick the stay and set a threshold — Set the platform, listing id, check-in / check-out dates and occupancy, plus the total-price threshold you want to be alerted below.
- Re-price on a schedule — Every few hours the workflow calls GET /v1/price for the listing and dates, returning a real numeric total for that stay.
- Compare to the threshold and de-dup — A Code node checks the total against your threshold and against the last-alerted price (stored in n8n static data), so it fires only on a genuinely new drop — never twice for the same price.
- Send the price-drop alert — When the price drops, a message with the new total, the threshold, the per-night rate and a booking link is posted to Slack — swap for email, Telegram or Discord.
When to use this
The user wants to be told when a specific stay gets cheaper — "watch this listing and ping me if it
drops below X." Reach for price (one listing) or price-compare (a property’s cheapest cross-OTA
rate).
How to do it
- Take
platform+listingId(or aurl), thecheckIn/checkOutdates and occupancy, plus a threshold total. - Call
GET /v1/price(or the@stayingapi/sdkprice()method). - Compare
data.totalPriceto the threshold. Track the last price you alerted on and fire only on a NEW drop (first time at/below, or a further drop) so you never notify twice for the same price.
Cross-OTA variant
To watch a whole property’s cheapest rate, call GET /v1/price-compare and threshold on
data.min instead.
Reliability
A no-price result throws a typed error and is free — treat it as "no reading this run", not a drop.
Honour retries with backoff on upstream_unavailable/upstream_timeout.
Example — REST
curl -sS "https://api.stayingapi.com/v1/price?platform=booking&listingId=abramovic2&checkIn=2026-07-13&checkOut=2026-07-20&adults=2¤cy=EUR" \
-H "Authorization: Bearer $STAYINGAPI_KEY"
Example — @stayingapi/sdk
import { StayingApiClient } from '@stayingapi/sdk';
const scout = new StayingApiClient({ apiKey: process.env.STAYINGAPI_KEY });
const threshold = 2000; // alert at/below this total
const { data } = await scout.price({
platform: 'booking',
listingId: 'abramovic2',
checkIn: '2026-07-13',
checkOut: '2026-07-20',
adults: 2,
currency: 'EUR',
});
if (data.totalPrice <= threshold) {
console.log('DROP:', data.totalPrice, data.currency, '→', data.url);
}
Async & partial failures
A live call that has to scrape returns 202 + a jobId; poll GET /v1/jobs/{jobId} (free)
until data.status is completed, then read data.result. The @stayingapi/sdk auto-polls.
On a fan-out, check meta.partial and meta.platformResults[] — report what succeeded and note
any meta.warnings[].
Credit awareness
Costs are per-endpoint and metered by result (v3). Failed, empty and blocked calls are never
billed, and sandbox (stay_test_) calls are always free. The exact, current costs live only in
https://stayingapi.com/pricing and the machine-readable https://api.stayingapi.com/openapi.json — read them there, don't assume.
Get your free key → https://stayingapi.com/signup · Docs: https://stayingapi.com/docs · Workflow: https://stayingapi.com/workflows/price-drop-watcher
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.