Airbnb Listing Monitor - Ratings & Public Profile Changes avatar

Airbnb Listing Monitor - Ratings & Public Profile Changes

Pricing

from $1.80 / 1,000 saved observations

Go to Apify Store
Airbnb Listing Monitor - Ratings & Public Profile Changes

Airbnb Listing Monitor - Ratings & Public Profile Changes

Track public Airbnb listing titles, descriptions, photos, capacity and review totals. Monitor known rooms or a bounded curated city page with saved changes, source links and clear coverage.

Pricing

from $1.80 / 1,000 saved observations

Rating

0.0

(0)

Developer

Brandt May

Brandt May

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Categories

Features

Limited permissions

Share

Airbnb Listing Monitor

See when a rental's public profile or review totals change. Paste Airbnb room URLs and receive structured listing observations with source links, timestamps and optional saved comparisons. A curated city directory can supply a small discovery set when you do not yet have a watchlist.

Built for rental managers, hosts and travel research teams following known comparable properties. The output keeps listing identity and source facts together, so your spreadsheet or AI workflow can explain what changed and where it was observed.

Start with one room

{"roomUrls":["https://www.airbnb.com/rooms/905399"],"maxResults":1}

Click Start, then open the Dataset for the listing row. Coverage and diagnostics explains what was reached. Readable run report gives a compact result and any incomplete-source details. No Airbnb account, API key or proxy is needed. Empty input uses this independently operated public example; it can change over time.

What you receive

QuestionSource-backed fields
Has the listing's positioning changed?title, plain-text description, photoUrls, photoCount
Has public feedback increased?ratingAverage, ratingCount, literal count and average deltas
What place does the page describe?locality, optional region/country, public approximate coordinates and structured-data occupancy
What changed since our last complete observation?comparisonStatus, changedFields, previous, previousObservedAt
Can we trace the result?Stable listingId/recordId, canonical sourceUrl, observedAt and coverage

Each row represents one room page. Missing source fields remain null. amenities is returned only if the room's structured data actually supplies it. A city card's amenity summary is not substituted for missing detail-page data.

Three ready-to-run recipes

1. A room's public reputation snapshot

{"roomUrls":["https://www.airbnb.com/rooms/905399"],"maxResults":1}

2. Two comparable public listings

{
"roomUrls": [
"https://www.airbnb.com/rooms/50271268",
"https://www.airbnb.com/rooms/16779078"
],
"maxResults": 2
}

3. A curated city discovery set

{
"roomUrls": [],
"cityUrls": ["https://www.airbnb.com/san-francisco-ca/stays"],
"maxDiscoveredListings": 20,
"maxResults": 20
}

The city recipe reads the public structured directory and then each selected room page. Twelve curated rentals were present when tested. This is not every listing in the city, arbitrary search pagination or a measure of market inventory. The source can change its curated selection. The report records how many listings the directory supplied and how many were selected.

Turn snapshots into a watchlist

{
"roomUrls": [
"https://www.airbnb.com/rooms/905399",
"https://www.airbnb.com/rooms/50271268"
],
"maxResults": 5,
"comparePrevious": true,
"onlyChanges": true,
"snapshotName": "rental-comparables"
}

The first complete run emits new observations and establishes history. Later runs emit changed listings; an unchanged run can correctly save zero rows. Changes-only mode incurs no result event for skipped unchanged listings. Prefer a fixed room watchlist for a stable comparison group.

History belongs to the normalized room and city selections, discovery cap and snapshot name. Changing that selection creates a separate scope. Use one active writer for each scope. A city directory can introduce new rooms; a room disappearing from its curated list does not establish that the room was delisted or booked.

If a source fails, selected rooms remain unread, discovery is truncated, time expires or the spending limit is reached, the run does not advance its comparison history. Useful rows may still be returned with a partial report. Read SUMMARY.status and SUMMARY.incomplete before treating a run as a complete check.

Input reference

FieldDefaultPurpose
roomUrlsSample room when both URL lists are emptyUp to 20 explicit public /rooms/ID URLs
cityUrlsEmptyUp to 2 exact public /city-name/stays directories
maxDiscoveredListings20Total unique discovered rooms, 1–40; truncated selection is partial
maxResults20Maximum saved listing rows, 1–60
comparePreviousfalseCompare against the last complete saved observations
onlyChangesfalseEnable comparison and skip unchanged rows
snapshotNamedefault1–80 letters, numbers, underscores or hyphens
maxRunSeconds90Shared collection budget, 30–120 seconds

Use https://www.airbnb.com URLs. Bare airbnb.com and trailing slashes are normalized. Supported tracking parameters are removed. Booking dates, guest counts, fragments and other functional parameters are rejected so the observation always represents the public listing profile.

Unknown input fields fail before any source request, so a misspelled URL field never silently starts the sample. If Airbnb returns HTTP 401, 403 or 429, the Actor stops further source requests for that run and reports the unread targets; it does not retry the denial or switch access methods.

Interpreting the data

ratingCount and its delta are platform-reported aggregate counts, not bookings. The Actor does not collect individual guest reviews, guest names or contact details. A negative count delta can reflect source corrections; it is preserved rather than hidden.

occupancy comes from the page's structured accommodation data. It may differ from a number written in a marketing title and is not a booking guarantee. Public coordinates are approximate and are not represented as an exact address. The photo list is the source's structured selection, which may be smaller than its interactive gallery.

No date-specific nightly price, booking availability, occupancy rate, revenue estimate or profitability score is produced. Such fields require different source evidence. This Actor does not infer them from review growth or missing listings.

Exports and automation

Download JSON or CSV from the Dataset. JSON preserves nested photos, amenities and previous observations. The free SUMMARY record reports source coverage, rows saved, limits, failures and history updates. RUN_REPORT is an HTML view of the same evidence. Neither creates a listing result charge.

Save your input as an Apify task to use your own schedule or integration. Send changed rows to a spreadsheet, database or property research workflow. An AI agent can use the same input through the Apify API or Apify MCP server. Include the source URL and observation time in any generated report.

Pricing is $0.00005 per Actor start plus $0.003 per saved listing observation ($3 per 1,000). The live Pricing tab is authoritative. Skipped unchanged rows create no result event; platform usage may still apply under your plan. Set a maximum charge in Run options to bound a run.

Source coverage and support

The Actor reads public page structured data, respects robots directives and uses bounded requests. It does not sign in, bypass challenges, access reservation records or retrieve private host/guest information. Unsupported source shapes and unavailable pages are reported rather than converted into invented observations. Public source behavior can change, so successful retained runs are dated evidence, not a guarantee of future availability.

If a page changes, open an Actor issue with the public URL, run ID and expected field. Do not include account credentials. Find related event monitoring, product price monitoring and more workflow ideas at Mayd It Data Tools.