Skip to content

Recipe · Hotels API

Rate-parity check with Apify

Identical calls except price_as_seen_from (the REST field is proxy_country), a two-letter code that prices the stay as a shopper in that country would see it. Ask each market more than once: in a controlled run on 2026-08-28, Germany and Japan answered with the same number every time while the US market moved between identical requests. The agent compares the ranges and calls a gap real only when one market’s whole range sits below the other’s.

Pay-per-event on your own Apify account. No monthly plan.

Step 1 · Connect

Run the actor

Pay-per-event through your own Apify account: no monthly plan, and an idle month costs nothing. The input field names and the endpoint values are the actors’ own published input schemas, read from api.apify.com on 2026-09-02. Nothing to subscribe to on RapidAPI for this path.

run the hotels actor
curl -X POST "https://api.apify.com/v2/acts/mtnrabi~booking-real-time-api/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"endpoint":"/search","destination":"Lisbon","checkin_date":"2026-10-09","checkout_date":"2026-10-12","adults":2,"currency":"USD"}'

Billed per event on your own Apify account. No RapidAPI subscription needed for this path.

Step 2 · The job

The job

The job in plain words. In Apify you express it as the configuration below instead of a prompt.

Price the Rixos Sungate in Antalya for Oct 5–10 as seen from Germany and from Japan. Ask each market three times.

Step 3 · Under the hood

The actor input

Paste this into the actor’s Input tab, or send it as the JSON body of a run. Field names come from the actor’s own published input schema.

actor input
// actor: mtnrabi~booking-real-time-api
{
  "endpoint": "/hotel_by_name",
  "hotel_name": "Rixos Sungate Antalya",
  "checkin_date": "2026-10-05",
  "checkout_date": "2026-10-10",
  "currency": "USD",
  "proxy_country": "de"
}

Step 4 · Read the response

Fields your logic reads

The response is flat JSON. These are the fields this recipe branches on, with what each one means.

availableboolean

False means sold out for the dates: the response keeps the same shape with nulls, so parsing never branches on an error format.

price_stringstring

The total rate for the stay as Booking.com displays it: “US$2,434”.

pricenumber

The same rate as a plain number, for comparing quotes across markets or dates.

room_typestring

Which room the rate belongs to: compare like with like across markets.

Questions, answered plainly

Is my key billed to me?
Not to RapidAPI. This path bills pay-per-event through your own Apify account, so an idle month costs nothing. The RapidAPI subscription and the Apify actor are two separate doors to the same data; you need one, not both.
Does this need a server of mine?
No. The actor runs on Apify’s infrastructure, and runs, retries and result storage live in your Apify console alongside your other actors.
What does it cost?
On this path, whatever the actor’s own event table charges for the events a run fires. There is no monthly plan and no minimum. The current rates are on the actor listing, which is the only place they are authoritative. If you would rather have a fixed monthly bill and synchronous HTTP, the RapidAPI plans are the other door: see /pricing.

Get live flight and hotel data

Live Google Flights and Booking.com data as clean JSON. Free tier on RapidAPI, no card to try.

Free tier: 10 requests/month. No card to try.