Apify Toolkits

What each mode bills

Mode to charge event for all ten Booking.com scraper modes, what one unit is, and which events are not priced yet. No figures - the Pricing tab is generated.

Describes build 1.0.173 of rl1987/booking-api-scraper, deployed 2026-10-29. The column set last changed 2026-10-29. Earlier builds can return a different one.

Charging happens on delivery, not on request: a surface that fails or comes back empty is free. Every surface costing a separate API request is its own event, so you pay for what you asked for and nothing else.

No prices here on purpose - they are plan-tiered and generated, so read them on the Actor’s Pricing tab. This page says which events a mode fires and what one unit is.

The matrix

modeevents it firesplus, if you switch them on
searchsearch-resultincludeRooms, includeDetails, includeReviews, includeReviewScores, includeSurroundings
roomsroom-detailsincludeDetails, includeReviews, includeReviewScores, includeSurroundings
ratesrate-check or room-details - see below-
reviewsreview, review-scores-
reviewScoresreview-scores-
surroundingssurroundings-
detailshotel-details-
attractionsattraction-row-
attractionDetailsattraction-detail-
attractionAvailabilityattraction-availability-

What one unit is

eventcharged percoverspriced
search-resultaccommodation returnedthe property result with live pricinglive
hotel-detailspropertytwo requests - property page + static content - deliberately billed as onelive
room-detailsroom option returnedthe per-rate products list comes from the same request and is not charged againlive
reviewreview returnedthe paginated review listlive
surroundingspropertyone request per propertylive
review-scorespropertyone request regardless of review countlive
rate-checkproduct id checkedincluding rates that have sold out, which cost the same requestfrom 2026-11-08
attraction-rowattraction returnedthe catalogue row with its pricefrom 2026-11-08
attraction-detailattractionthe full product recordfrom 2026-11-08
attraction-availabilityattraction, across the date window asked forone row per attraction, not per datefrom 2026-11-08

The four events marked with a date are charged by the code today and priced in no live entry, so those rows deliver unbilled until it starts. The same run, unchanged and with no new build, is billed differently on either side of that date - which is the one thing to know before reconciling invoices across it.

The toggles are where a search run’s bill comes from

toggleadds the eventper
includeRoomsroom-detailsroom option returned
includeDetailshotel-detailsproperty
includeReviewsreviewreview returned
includeReviewScoresreview-scoresproperty
includeSurroundingssurroundingsproperty

Measured on one property (2026-10-22)

One property, one stay, per enrichment mode. Requests are proxied calls - they count toward platform usage, not toward a per-item event - so the two columns deliberately disagree: you are charged per unit DELIVERED, not per request made.

moderequests madeevents charged
rooms3room-details=5
reviews3 (2 if you pass ufi)review=3, review-scores=1
reviewScores1review-scores=1
surroundings1surroundings=1
details2hotel-details=1

search-result=0 in all five: an enrichment row carries one surface and no property summary, so there is no search result to bill. Re-measured 2026-10-22, when rooms and details each gained the cot-and-extra-bed lookup and rooms also started paying the one-field slug query behind its url - the charges did not move, because those are requests and not events.

Modes with something else to know

rates - No unconditional event. _resolve_rate_event reads the live pricing each run and charges rate-check where it is priced, room-details where it is not. Today that means room-details; from 2026-11-08 it means rate-check, with no new build.

reviews - Also bills review-scores, one per property, whether or not you asked for it: include_review_scores = enrich_mode in ("reviewScores", "reviews") in src/main.py. It is a separate request, so it is a separate charge - but the README said it was includeReviewScores only, which was wrong. Measured 2026-10-28: a 5-review run on one property charged review=5 and review-scores=1.

attractions - Delivers unbilled until 2026-11-08: attraction-row is charged in code but priced in no live entry. Measured 2026-10-28: a 100-row run charged nothing.