Jalan.net Area Rates Scraper (じゃらん) avatar

Jalan.net Area Rates Scraper (じゃらん)

Pricing

from $1.05 / 1,000 hotel-day-listeds

Go to Apify Store
Jalan.net Area Rates Scraper (じゃらん)

Jalan.net Area Rates Scraper (じゃらん)

Scrape Jalan (じゃらん) prices and rooms left for every available hotel in an area, a whole prefecture or a hotel list. Just add destinations or hotel IDs and a date or date range and get the lowest total, per-night and per-person price, rooms left, offer count and every bookable plan per date.

Pricing

from $1.05 / 1,000 hotel-day-listeds

Rating

0.0

(0)

Developer

BonCross API

BonCross API

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Categories

Share

What is Jalan.net Area Rates Scraper (じゃらん)?

Ask for Hokkaido on one date and Jalan.net Area Rates Scraper hands you 34,902 bookable offers in 68 seconds. It prices a whole Jalan.net (じゃらん) area, a whole prefecture or a list of hotels, for one check-in date or for each date in a range up to a year ahead. A row is one hotel on one date with its lowest price and rooms left, or, if you prefer, one offer (plan and room type) on one date.

Built for watching a market by date:

  • One run covers a prefecture across a week. Kyoto, the whole prefecture, over 7 check-in dates gave 4,715 hotel-days in 55 seconds.
  • You see supply as well as price. Each row has the rooms left at the hotel that date and how many offers it still has.
  • Offer rows are cheap: $0.30 per 1,000 on the Free plan. Their plan and room type IDs are the ones Jalan.net Room Rates Scraper returns, so the two datasets join.
  • A hotel you list by ID gets a row on the dates it's full too, marked sold out, and you aren't charged for that row.
  • $1.50 per 1,000 hotel-days on the Free plan and $1.05 on Business. No proxy to set up and no proxy charge.

BonCross Verified means we tested this actor against the live site before release and kept the record:

  • 35 of 35 live checks on its inputs and filters passed on 7 October 2026
  • 3 areas run the same day on 3 dates each: 400 hotel-days, none empty
  • Charges matched the rows
  • An unknown destination or hotel number gets a row saying so

What you can do with it:

  • Price a whole prefecture, a Jalan area or sub-area, or a list of hotels by ID
  • Cover each check-in date in a range, up to a year ahead
  • Get the lowest total for the stay, the first-night price for one room and the price per adult
  • See how many rooms are left at each hotel, and how many bookable offers it has that date
  • Pull each offer with its own prices and rooms left
  • Add plan and room names when you need them
  • Filter by property type, meals, 37 facility and room-type filters and a nightly price range
  • Schedule it as a daily price monitor

Is this the Jalan scraper you need?

Jalan has three kinds of rate data, and we split them on purpose.

Use this one when the question is about dates: how prices move across an area ahead of a holiday, which nights are cheapest next month, when a prefecture starts filling up, how your hotel sits against its competitors through a season. Revenue teams feed the offers and rooms left into their models. Analysts build a dated price index from it.

It doesn't return meals, access notes, review counts, points, payment options or Jalan's own result ordering. If you want hotel cards with those, use Jalan.net Hotel Search Scraper. If you want one hotel's full list of plans with cancellation terms, that's the Room Rates Scraper.

What rate data do you get?

Field
🏨Hotel ID, name, Jalan page link, catchphrase and main photo
⭐Guest rating on Jalan's 5-point scale
📍Prefecture code and area code
📅Check-in and check-out date, nights, adults, children and rooms
💴Lowest total for the stay (all rooms, all nights, tax included)
🌙First-night price for one room
👤Price per adult
🚪Rooms left at the hotel that date
Number of bookable offers
Plan ID and room type ID of the cheapest offer, or of every offer
Plan name and room name (optional)
Sale and promotion labels on an offer
Available or sold out (for hotels you list by ID)
Currency (JPY) and whether the price includes tax

How to scrape Jalan.net area rates

  1. Create a free Apify account.
  2. Open Jalan.net Area Rates Scraper.
  3. Add destinations (Kyoto, Tokyo / Shinjuku, an area code) or hotel IDs.
  4. Pick a check-in date or a range of dates, then the nights and the guests.
  5. Choose one row per hotel per date, or one row per offer, and click Start.
  6. Download your rows as CSV, Excel or JSON, or connect them to your tools.

⬇️ Input

You can give destinations, hotels, or both.

A destination is a prefecture on its own (Kyoto, 北海道), a Prefecture / Area pair in English or Japanese (Kyoto / Kyoto Station, 京都府 / 祇園・東山・北白川周辺), a Jalan area code (260000 prefecture, 260500 area, 260502 sub-area) or a pasted jalan.net area URL. Hotels are Jalan hotel numbers (301552) or hotel URLs.

For dates you have three choices. Set "Check-in date" for a single date. Set "First check-in date" and "Last check-in date" to price each date between them, up to a year ahead. Or leave all three empty, and the run checks in 30 days from today (change that with "Check-in days ahead"), which is what you want on a schedule. Each stay lasts "Nights" (1 to 9, default 1).

"Adults per room" defaults to 2 and "Rooms" to 1, and totals cover all the rooms. "Children ages" takes ages 0 to 12, and the children go in the first room.

"Rows" decides the shape: one row per hotel per date (the default), or one row per offer. "Maximum results for the whole run" caps the rows of the run, whichever kind they are.

Filters. "Property types", "Meals" and "Facilities and room types" are Jalan's own filters, and a hotel has to match each facility you choose. "Min price per room per night" and "Max price per room per night" (JPY) keep the offers whose first-night price for one room falls inside the band. 0 means no floor, or no limit.

Extras. "Include every offer on hotel rows" adds an offers list to each hotel row, with each bookable plan and room type, its prices and rooms left. "Include plan and room names" fills planName and roomName. It makes a run slower, about 30 seconds for 200 hotels.

One area, one date, one row per hotel

{
"destinations": ["Kyoto / Kyoto Station"],
"checkIn": "2026-11-20",
"nights": 1,
"adults": 2
}

A whole prefecture over a week

{
"destinations": ["Kyoto"],
"checkInFrom": "2026-11-16",
"checkInTo": "2026-11-22",
"outputMode": "hotelDay"
}

Every offer at a few hotels for a month, with plan names

{
"hotelIds": ["301552", "https://www.jalan.net/yad338112/"],
"checkInFrom": "2026-11-01",
"checkInTo": "2026-11-30",
"outputMode": "offers",
"includePlanNames": true
}

Ryokan with dinner and breakfast and an onsen, under 40,000 yen a night

{
"destinations": ["Kanagawa / Hakone"],
"checkInDaysAhead": 30,
"propertyTypes": ["ryokan"],
"mealType": "both",
"facilities": ["onsen"],
"maxPricePerNight": 40000
}

For developers

  • maxItems is the only row cap, and it counts hotel-days or offers, whichever outputMode returns. Sold-out rows and rows for an input that couldn't be resolved aren't counted. The date range sets how many dates each destination covers.
  • checkInTo defaults to checkInFrom. With no date at all, checkInDaysAhead (default 30, 0 to 365) is counted from today in Japan time.
  • area-searched is billed once per area, prefecture or hotel group for one window of dates. A long range is split into several windows.
  • maxConcurrency (Parallel searches, default 4, 1 to 16) is how many searches run at once. A whole prefecture is always searched one date at a time.
  • includePlanNames adds one lookup per hotel per run. A plan that lookup doesn't list keeps a null name.
  • planId and roomTypeId match the codes in jalan-room-rates rows.

⬆️ Output

The dataset has two views, "Hotel per date" and "Offers". One row per hotel per date looks like this (trimmed):

{
"id": "300267-2026-11-10-1",
"input": "Kyoto / Kawaramachi",
"destination": "京都府 > 河原町・烏丸・大宮周辺",
"hotelId": 300267,
"hotelName": "三井ガーデンホテル京都四条",
"url": "https://www.jalan.net/yad300267/",
"rating": 4.3,
"ratingScale": 5,
"prefectureCode": "260000",
"areaCode": "260200",
"checkIn": "2026-11-10",
"checkOut": "2026-11-11",
"nights": 1,
"adults": 2,
"childrenAges": [],
"rooms": 1,
"isAvailable": true,
"isSoldOut": false,
"lowestTotal": 26922,
"lowestPerNight": 26922,
"lowestPerPerson": 13461,
"roomsLeftTotal": 14,
"offerCount": 20,
"cheapestPlanId": "04420200",
"cheapestRoomTypeId": "0575479",
"cheapestPlanName": "【タイムセール】シンプルステイ<素泊り>",
"cheapestRoomName": "本館スタンダードダブル(禁煙)",
"currency": "JPY",
"pricesIncludeTax": true,
"scrapedAt": "2026-10-04T08:31:12.402Z"
}

Each row also has catchPhrase (the hotel's own one-line headline on Jalan, in Japanese) and imageUrl (the hotel's lead photo). Either is null when Jalan has none.

With outputMode: "offers" each row is one bookable offer. It has planId, roomTypeId, planName, roomName, saleLabel, promotionPlanLabel, pricePerPerson, pricePerNight (first night, one room), priceTotal (the whole booking) and roomsLeft. includeOffers puts the same list inside each hotel row as offers.

You can export the dataset as JSON, CSV, Excel, XML or HTML, or read it through the API.

How much of Japan can you price, and how fast?

You get each hotel Jalan has a room to sell for the date and guests you asked for. These are whole runs on Apify, measured in October 2026:

RunRowsTime
Kyoto, 河原町 area, one date, with plan names175 hotel-days35 s
Kyoto Station area, 30 check-in dates6,655 hotel-days40 s
Tokyo, whole prefecture, one date1,059 hotel-days33 s
Kyoto, whole prefecture, 7 check-in dates4,715 hotel-days55 s
Hokkaido, whole prefecture, one date, every offer34,902 offers68 s
3 hotels, 3 dates, every offer, with plan names369 offers13 s
  • A hotel with nothing left to sell for the date and guests is not listed in an area search. A hotel you list by ID gets a sold-out row instead.
  • Dates run from today to a year ahead, Japan time.
  • Stays of 1 to 9 nights, up to 9 adults per room and up to 10 rooms.
  • Plan and room names add a lookup per hotel, about 30 seconds for 200 hotels.

How much does it cost to price an area?

EventFree planStarterScaleBusiness
actor-start, per run$0.002$0.002$0.002$0.002
area-searched, per area, prefecture or hotel group searched for one window of dates$0.001$0.001$0.001$0.001
hotel-day-listed, per row: one hotel on one date$0.0015$0.00135$0.0012$0.00105
offer-listed, per row: one offer$0.0003$0.00027$0.00024$0.00021

Enterprise plans pay the Business price.

$1.50 per 1,000 hotel-days on the Free plan, $1.05 on Business, or $0.30 per 1,000 offers with outputMode: "offers" ($0.21 on Business). That price includes platform usage, and there's no proxy to set up and no proxy charge.

  • Tokyo, whole prefecture, one date, 1,059 hotel-days: 0.002 + 1 × 0.001 + 1,059 × 0.0015 = $1.5915 ($1.115 on Business)
  • Hokkaido, whole prefecture, one date, every offer, 34,902 offers: 0.002 + 1 × 0.001 + 34,902 × 0.0003 = $10.4736 ($7.3324 on Business)

With the $5 of credits Apify's Free plan gives you each month, you can price Tokyo's whole prefecture on three dates (about 3,200 hotel-days), or pull about 16,000 offers.

Sold-out rows and rows for an input that couldn't be resolved are never charged for. A search that finds nothing still costs its $0.001 area-searched fee.

To run it every morning, leave the dates empty, set "Check-in days ahead" or a range, and add an Apify Schedule. Each day's prices can go straight into a Google Sheet, Slack, or a database behind a webhook, and Zapier, Make, Airbyte and GitHub are available too. From code, the run-sync endpoint starts a run and returns the rows in one call: https://api.apify.com/v2/acts/boncross~jalan-area-rates/run-sync-get-dataset-items?token=<YOUR_TOKEN>, with apify-client packages for JavaScript and Python. An AI agent can ask for prices in a Japanese area by date through the Apify MCP server (https://mcp.apify.com), with the actor added as the tool boncross/jalan-area-rates.

Limitations

  • An area search lists only the hotels with a room to sell for the date and guests you asked for. A full hotel does not appear for that date.
  • Plan and room names come from a separate lookup and are off by default. A plan the lookup does not list keeps its name null.
  • With one adult, the price per adult is the room price for all plans, including plans Jalan sells per room.
  • Rows have no property type or facility list. Those filters are applied by Jalan to the hotels you get.
  • Prices are in yen. Jalan has no other currency.
  • Children are priced as Jalan does: 6 to 12 as primary school children, under 6 as infants with meals and bedding, all in the first room.

FAQ

Why is a hotel missing from an area search on some dates?

It had nothing left to sell for those guests on that date. List it by ID and you get a sold-out row for each such date.

What is the difference between lowestTotal, lowestPerNight and lowestPerPerson?

lowestTotal is the cheapest total for the whole stay: all rooms and all nights, tax included. lowestPerNight is the first-night price for one room of that cheapest offer, and lowestPerPerson its price per adult. On a one-night, one-room stay the total and the nightly price are the same.

What does roomsLeftTotal count?

The rooms the hotel still has for the date and guests you asked for, counting each room type once.

Should I ask for hotel rows or offer rows?

Hotel rows answer "what's the cheapest price here on this date, and how full is it". Offer rows are for when you need each plan and room type separately, and they cost a fifth as much per row. A hotel averages many offers, so an offers run is the bigger dataset: Hokkaido on one date was 34,902 of them.

How do I get the plan name for an offer?

Turn on "Include plan and room names", or join the offer's planId and roomTypeId to Jalan.net Room Rates Scraper rows.

Do I need proxies or a Jalan account?

No account, and no proxy to set up. Both are taken care of in the price.

The actor reads public prices that anyone can see without an account. Check that your use follows Jalan's terms and the law where you are.

More from BonCross

Your feedback

If an area's prices don't match what Jalan shows for the same date and guests, or you need a column that isn't here, tell us on the Issues tab in Apify Console. Say which destination and date, and we'll check it and reply.