Real-time competitive intel for every market you operate in, plus AI-recommended rates per night per listing — applied with one call, synced to every channel.
Every market you operate in, derived automatically from your listings. Median ADR, occupancy, RevPAN, supply trends, demand index, and your position relative to the comp set — all returned in a single call. Browse new markets to expand into, sorted by yield.
const markets = await repull.markets.list()
// {
// markets: [
// {
// city: 'lisbon-pt',
// myListings: 4,
// marketAvgAdr: 187,
// priceDiffPct: 12.4,
// occupancy: 0.78,
// revpan: 146,
// },
// ...
// ]
// }Pre-computed nightly recommendations out 365 days, with the factors that drove each one — demand, comp set, occupancy pacing, lead time, day of week, local events. Apply with one call and the rate fans out to every connected channel. Decline and it's recorded for the audit trail.
const recs = await repull.pricing
.recommendations(listingId)
await repull.pricing.apply(listingId, {
dates: ['2026-06-12', '2026-06-13'],
})
// → fans out to Airbnb, Booking.com,
// Vrbo, Plum Guide automaticallyDay-by-day demand curves per city, with curated local-event chips for concerts, sports, and conferences. If a Bad Bunny show lands in your market, you'll see the attendance forecast and demand uplift right on the date — so your pricing reacts before the city does.
const cal = await repull.markets
.calendar('austin-tx', {
from: '2026-06-01',
to: '2026-08-31',
})
// cal.days[].demand // 0..1
// cal.days[].events[] // [{ kind, label, uplift }]Also included
The supporting capabilities that turn a recommendation into a workflow.
See the exact set of competitor listings that drove each recommendation. Filter by bedroom count, amenities, proximity. Tune the set and the price recomputes.
Apply recommendations across a date range, a portfolio segment, or every listing in a market. One call, idempotent, with per-listing diffs returned in the response.
Every applied, declined, and overridden recommendation logged with a timestamp, the factors at the time, and the resulting channel push. Full trail for any night.
Powered by
Real-time market data powered by Atlas.
How it's billed
No separate contract, no separate invoice. Markets + AI Pricing is part of Repull and bills with the rest of your usage.
Basic market KPIs for the markets you operate in. ADR, occupancy, and your position vs comp. Enough to get a feel for the data.
Full market depth, calendar overlay with events, and AI pricing recommendations for every listing on your account. Apply across channels included.
Custom for portfolios over 250 listings, plus additional markets and historical depth on request. Talk to us.
repull-revenue is the open-source companion — same API, self-hostable on your own data. Fork it, deploy it, push pricing back to every channel through Repull.
Why now
Operators have lived with the trade-off for a decade: best-in-class market data lives in one app, AI pricing in another, and the channel manager in a third. By the time a recommendation reaches a calendar, the demand signal is two days old. We collapsed the three into one API and one screen — every night, every listing, with the supporting data right there. The recommendation, the comp set that drove it, the events on that date, and the apply call all live in the same surface.
An API key in 30 seconds. Connect a property and see the recommendations on day one.