Jalan.net Hotel Search Scraper (じゃらん) avatar

Jalan.net Hotel Search Scraper (じゃらん)

Pricing

from $1.05 / 1,000 property-listeds

Go to Apify Store
Jalan.net Hotel Search Scraper (じゃらん)

Jalan.net Hotel Search Scraper (じゃらん)

Scrape Jalan (じゃらん) hotel search results for any area and your dates. Just add area names in English or Japanese and get cheapest plan total and per-person price, rating, review count, inline plans with rooms left, meals and prepaid flags, with Jalan's own facility filters. $1.50 per 1,000 hotels.

Pricing

from $1.05 / 1,000 property-listeds

Rating

0.0

(0)

Developer

BonCross API

BonCross API

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

What is Jalan.net Hotel Search Scraper (じゃらん)?

Jalan.net (じゃらん) is one of Japan's largest domestic accommodation sites: business hotels, city hotels, ryokan and pensions across the country. Jalan.net Hotel Search Scraper gives you the properties Jalan lists for an area, priced for your dates and party, with the plans on each card and the hotel's address, coordinates and check-in times in the same row. Type Kyoto / Kyoto Station in English or Japanese and press Start.

Why it's worth your run:

  • You can cover the country in seconds. 720 hotels across 12 areas (Shinjuku, Umeda, Sapporo, Naha, Hakone and more) took 6 seconds, all priced.
  • Jalan does the narrowing. All 39 of its facility filters are here, with meal type and property type, and the site applies them before you pay for a row.
  • A row is more than a price. You get up to 3 plans per hotel with the meal, points earned, prepaid flag and rooms left, plus coordinates and accepted card brands.
  • A scheduled price watch returns only the hotels whose price moved. The unchanged ones aren't returned or charged.
  • $1.50 per 1,000 hotels on the Free plan, $1.05 on Business, inline plans included. Proxy usage and platform usage are in that price.

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

  • 43 of 43 live checks on its inputs and filters passed on 7 October 2026
  • 6 destinations run the same day, 3 prefectures and 3 areas: 90 hotels, none empty
  • Charges matched the rows

What you can do with it:

  • Get the cheapest total and per-person price Jalan quotes for your dates, adults and rooms
  • Read the plans shown on each card, with meals, points, prepaid flags and rooms left
  • Search by prefecture, area or sub-area name, a Jalan area code or a Jalan search URL
  • Set a price band, a minimum rating and a minimum review count
  • Keep only the hotels in an area whose name, description or plans mention a keyword
  • Sort by Jalan's recommendation, price or area
  • Flag sponsored cards, or leave them out
  • Search with no dates and see each hotel's lowest catalogue price

People run it to watch nightly rates across an area, to compare their own rates with the Japanese domestic market for the same dates, and to build supply datasets by area, type and price band. It also suits shortlisting properties for a client by facilities, meals or rating, tracking seasonal pricing in Kyoto, Niseko or Hakone, and watching who buys sponsored placement in an area.

What hotel data do you get from Jalan?

🏨 Property name and Jalan number🔗 Property URL
💴 Cheapest stay total, with a tax-included flagPrice per person
Plans on the card: title, room type and labels🍽️ Meal plan on each plan
Jalan points earnedPrepaid and online-card-only flags on each plan
Rooms left, as a number or the site's wording⭐ Guest rating out of 5
Review count and highly rated aspects🗾 Prefecture and area
Catchphrase and description🚉 Access text
📮 Postal address, postcode and city📍 Map coordinates (lat, lng)
🕒 Check-in and check-out times💳 Card brands the hotel accepts
Kana reading of the nameTotal number of plans the hotel sells
Labels and high-class flagSponsored flag
🖼️ Property images📈 Previous price and price change
Property type (hotel, ryokan, pension, public lodging, villa)Jalan's own property label (ホテル, 旅館, 民宿, ユースホステル, コンドミニアム…)

How to scrape Jalan.net search results

You don't need to read Japanese to run it, and there's nothing to code.

  1. Sign up for Apify, which is free, and open Jalan.net Hotel Search Scraper.
  2. Add your destinations as Prefecture or Prefecture / Area. Jalan area codes and pasted Jalan search URLs work too.
  3. Set your dates, adults, children and rooms.
  4. Add filters or a sort if you want them, then click Start.
  5. Download the hotels as Excel or CSV, or as JSON, XML or HTML.

⬇️ Input

Give it one or more destinations. Each can be a prefecture on its own (Osaka), a Prefecture / Area pair (Tokyo / Shinjuku, 京都府 / 祇園・東山・北白川周辺), a Jalan area code or a Jalan search URL. A whole prefecture is expanded into its large areas for you. An area name needs its prefecture in front of it.

You have two limits. "Max hotels per destination" (default 100, up to 3,000) applies to each destination separately: ten destinations at 50 each returns 500. "Maximum results for the whole run" caps the total, and you aren't charged for anything past it.

Dates and guests. Set a check-in and check-out date (YYYY-MM-DD), or leave them empty and use "Check-in days ahead" (default 30) with "Nights" (1 to 9, default 1). "Adults per room" defaults to 2 and "Rooms" to 1. "Children ages" takes one age per child, 0 to 12. Jalan prices primary-school children and infants separately. Switch on "Date undecided" and you search with no dates at all: each hotel then shows its lowest catalogue price in place of dated availability.

Filters and sorting. Jalan applies the sort, the meal type, the facility filters (a hotel must have all the ones you pick) and the property types. "Min price per person" and "Max price per person" set a band in JPY per adult per night, and 0 means no limit. "Min rating", "Min review count", "High class only" (hotels Jalan labels ハイクラス) and "Exclude sponsored" drop hotels from your results at no charge.

Keyword. Keeps only the hotels whose own text contains each term you give: the name, description, access notes and the plans on the card.

What each row includes. "Include inline plans" is on by default and keeps the up to 3 plans shown on each result card, with plan title, room type, per-person and total price and rooms left. "Include hotel details" is on by default too. It adds map coordinates, check-in and check-out times, the kana name, accepted card brands and the total number of plans.

Search an area for fixed dates

{
"destinations": ["Kyoto / Kyoto Station"],
"checkIn": "2026-11-07",
"checkOut": "2026-11-08",
"adults": 2,
"maxResultsPerDestination": 60
}

A whole prefecture, cheapest first, with facilities

{
"destinations": ["Osaka", "Hokkaido / Niseko"],
"checkInDaysAhead": 30,
"nights": 1,
"sort": "price_low_to_high",
"facilities": ["nonSmoking", "onsen"],
"maxResultsPerDestination": 150
}

Rated ryokan with dinner, in a price band

{
"destinations": ["Kyoto"],
"checkInDaysAhead": 45,
"nights": 1,
"mealType": "both",
"minRating": 4,
"minReviewCount": 20,
"maxPricePerPerson": 30000,
"excludeSponsored": true
}

A daily price watch that returns only changes

{
"destinations": ["Kyoto / Kyoto Station", "Tokyo / Shinjuku"],
"checkInDaysAhead": 30,
"nights": 1,
"priceStoreName": "jalan-prices",
"onlyNewOrChanged": true
}

For developers

  • maxResultsPerDestination is the per-destination limit and maxItems the run-wide one. Nothing past maxItems is fetched or charged for. A row that reports a destination the actor couldn't resolve doesn't count toward it.
  • When your filters keep few or none of the hotels, reading a destination stops early: after a run of pages that kept nothing, when 20 or more pages have kept fewer than 0.15 a page, or at about three times the pages maxResultsPerDestination needs.
  • keyword matches against the name, catchphrase, description, access notes, area, labels and inline plans of each hotel, and all terms must be present.
  • checkIn and checkOut win over checkInDaysAhead and nights when both are given.
  • minPricePerPerson and maxPricePerPerson are checked on each row against the hotel's listed price per adult per night.
  • priceStoreName names the storage that remembers each hotel's lowest total per stay. It fills previousPriceTotal, priceChange, priceChangePct and previousScrapedAt on later runs. Add onlyNewOrChanged to skip the hotels that haven't moved.
  • maxConcurrency (Parallel requests, default 16, 1 to 32) sets how many requests run at once. The default is the fastest level we measured clean, and a run that reports errors is the one reason to lower it.
  • delayMs (default 0, up to 15000) adds a pause in milliseconds before each call. We'd leave it at 0.
  • If the platform restarts a run part-way, it carries on where it stopped. Hotels already delivered aren't delivered or charged a second time.

⬆️ Output

You get one record per property and stay. Open the Output tab to see it as a table or as JSON.

{
"destination": "京都府 > 京都駅周辺",
"prefectureCode": "260000",
"areaCode": "260500",
"subAreaCode": null,
"checkIn": "2026-11-05",
"checkOut": "2026-11-06",
"nights": 1,
"adults": 2,
"rooms": 1,
"id": "343998",
"hotelId": 343998,
"name": "京都センチュリーホテル",
"url": "https://www.jalan.net/yad343998/",
"area": "京都府 > 京都駅前",
"prefecture": "京都府",
"catchPhrase": "京都駅中央口から徒歩約2分!駅の喧騒を忘れさせる開放的な空間。",
"description": "京都の交通の中心である京都駅から徒歩2分。各所にスムーズに足を運ぶ事ができます。\n著名な観光地はもちろん、ちょっと\"通\"な京都まで、ホテルスタッフへお気軽にお尋ねください。",
"access": "JR京都駅中央口<ニデック京都タワー側>を出て右手方向にお進みください。京都駅ビルに沿って徒歩2分。",
"address": "京都府京都市下京区東洞院通七条下ル東塩小路町680番地",
"postcode": "600-8216",
"city": "京都市下京区",
"lat": 34.986065,
"lng": 135.761775,
"checkInFrom": "15:00",
"checkOutUntil": "12:00",
"nameKana": "きょうとせんちゅりーほてる",
"creditCards": ["American Express", "DC", "Diners Club", "JCB", "Mastercard", "NICOS", "UC", "UFJ", "VISA"],
"totalPlans": 282,
"labels": [
"ハイクラス",
"フォトギャラリー"
],
"isHighClass": true,
"isSponsored": false,
"rating": 4.5,
"ratingScale": 5,
"reviewCount": 5912,
"highlyRated": [
"朝食",
"接客"
],
"images": [
"https://cdn.jalan.jp/jalan/images/pictL/Y8/Y343998/Y343998Ba6.jpg",
"https://cdn.jalan.jp/jalan/images/pictM/Y8/Y343998/Y343998Be7.jpg"
],
"priceTotal": 51000,
"pricePerPerson": 25500,
"priceText": "1泊 大人2名 合計(税込)",
"currency": "JPY",
"pricesIncludeTax": true,
"planCount": 3,
"plans": [
{
"title": "【スタンダードプラン】京都駅中央口から徒歩約2分でアクセス便利 -食事なし-",
"planId": "01202441",
"roomTypeId": "0335221",
"roomType": "ツイン",
"labels": [
"ふるさと納税対象",
"ポイント2%"
],
"pricePerPerson": 28000,
"priceTotal": 56000,
"currency": "JPY",
"pointsEarned": 1120,
"isPrepaid": true,
"isOnlineCardOnly": true,
"roomsLeft": 2,
"roomsLeftText": "あと2部屋",
"meal": "none",
"isBreakfastIncluded": false,
"isDinnerIncluded": false,
"url": "https://www.jalan.net/uw/uwp3200/uww3201init.do?adultNum=2&s…",
"pricesIncludeTax": true
}
],
"previousPriceTotal": null,
"priceChange": null,
"priceChangePct": null,
"previousScrapedAt": null,
"scrapedAt": "2026-10-02T13:17:42.052Z"
}

A few columns to know before you build on them:

  • Prices are Jalan's totals with tax for the party you asked for. pricesIncludeTax records the basis Jalan states for each price, on the row and on each plan. It's true where the price is labelled tax-included, which was the case on each page measured, false if Jalan ever labels one tax-excluded, and empty where a row has no price.
  • priceText is Jalan's own label for the price.
  • A local accommodation tax or hot spring tax collected at the property isn't in Jalan's prices and has no amount on the site.
  • meal on a plan is none, breakfast, dinner or breakfast+dinner, and the two include-flags follow it. Both are empty where Jalan says nothing about meals.
  • subAreaCode fills when you paste a Jalan search link that names a sub-area. A destination given by name is searched at area level.

How many hotels can you get, and how fast?

RunResultsTime
Kyoto Station area, 1 night, 2 adults, 8 hotels8 hotels, all priced5 s
Kyoto prefecture and Osaka / Umeda, 1 night, 2 adults, 60 each120 hotels, all priced9 s
12 areas across Japan (Shinjuku, Umeda, Namba, Sapporo, Naha, Hakone, Hakata and more), cheapest first, 60 each720 hotels, all priced6 s
16 areas across Japan, cheapest first, 100 each1,600 hotels, all priced12 to 26 s

Jalan returns 30 hotels per page and reports the area total, which was 241 for the Kyoto Station area on that date. Stays are limited to 9 nights, Jalan's own maximum.

On large runs you can expect 2,500 to 8,000 hotels a minute, depending on how busy Jalan is. That's well inside the default one-hour run limit. When Jalan answers that it's too busy, the page is asked for again and your area isn't cut short.

How much does it cost to scrape Jalan hotels?

EventFree planStarterScaleBusiness
actor-start, per run$0.002$0.002$0.002$0.002
destination-resolved, per destination name resolved to Jalan codes$0.002$0.002$0.002$0.002
property-listed, per hotel returned$0.0015$0.00135$0.0012$0.00105

Enterprise plans pay the Business price.

$1.50 per 1,000 hotels on the Free plan, $1.05 on Business, inline plans included. That's the whole price: proxy usage and platform usage are part of it. Hotels your filters drop are free, and so are unchanged hotels in an only-changes run.

  • One area, 100 hotels: 0.002 + 0.002 + 100 × 0.0015 = $0.154 ($0.109 on Business)
  • Five areas, 500 hotels: 0.002 + 5 × 0.002 + 500 × 0.0015 = $0.762 ($0.537 on Business)

Apify's Free plan comes with $5 of credits a month, which is about 32 searches of 100 hotels each. That's roughly 3,200 priced hotels before you pay anything.

Price watches, the API and AI agents

For a rolling price watch, put the actor on an Apify Schedule with "Check-in days ahead" and a price store name. Each run then compares against the last one, and a webhook or the Slack and Google Sheets integrations can pass on the hotels that moved. Zapier, Make, Airbyte and GitHub connect the same way.

From your own code, POST https://api.apify.com/v2/acts/boncross~jalan-search/run-sync-get-dataset-items with the input JSON returns the hotels in one call for small runs. Use the asynchronous run endpoint for larger ones. The apify-client packages on NPM and PyPI wrap both.

An agent in Claude, Cursor or ChatGPT can look up hotels in a Japanese area for given dates: add the Apify MCP server (mcp.apify.com) and the actor appears as a tool named boncross/jalan-search.

FAQ

Can I search in English?

You can type destinations in English or Japanese. The data itself is in Japanese, because Jalan publishes no English content: property names, plan titles and areas all arrive as the site writes them.

How do I write a destination?

As Prefecture, Prefecture / Area, a Jalan area code, or a Jalan search URL. A bare prefecture is expanded into its large areas. An area on its own, without its prefecture, isn't enough.

Do I need proxies or a Jalan account?

Neither. Proxy usage is included in the price and there's nothing to configure. No login is used.

Are the prices tax-inclusive?

Jalan quotes totals with tax for the party you request, and each priced row and plan says so in pricesIncludeTax. You also get the per-person figure. A local accommodation tax or hot spring tax collected at the property is not included.

Which facilities can I filter on?

All 39 of Jalan's own facility filters: non-smoking, onsen, open-air bath, a private bath for hire, suites and detached rooms, pets, parking, ski and snowboard rental and the rest. Jalan applies them, and a hotel must have all the ones you choose.

Can I search only ryokan, or only hotels?

Set "Property types" to any of hotel, ryokan, pension, publicLodging and villa, which is Jalan's own classification. Results then arrive type by type in the order you list them. Whether or not you filter, each result has its type in propertyType and Jalan's finer label (民宿 or ユースホステル within pensions, for example) in propertyTypeLabel.

How do I get only the hotels whose price changed?

Give "Price store name" a name, switch on "Only new or changed", and schedule the run. From the second run on you get, and pay for, only the properties whose price moved.

Can I get every plan for one hotel, or its reviews?

The plans in a search row are the up to three Jalan shows on the card. For the full list of plans and rooms for a hotel and date, use Jalan.net Room Rates Scraper. For クチコミ with six category scores, use Jalan.net Reviews Scraper.

What are the limits?

  • roomsLeft is a number only when Jalan gives one. Otherwise its wording is in roomsLeftText.
  • Sponsored cards are flagged, and removed only if you exclude them. A sponsored card's address is filled only when the same hotel is also listed on the page.
  • Stays are limited to 9 nights, the site's maximum.
  • The keyword filter looks at each hotel's own listing text. It isn't a site-wide search.
  • Price bounds are per adult per night and are enforced on the results. A hotel with no listed price is dropped when you set a bound.
  • A destination the actor can't resolve returns a row that says why.

Scraping publicly available data is generally legal. This actor reads only what Jalan serves to any logged-out visitor. You're responsible for complying with Jalan's terms and applicable law in how you use the data.

More from BonCross

Your feedback

Is there a Jalan filter we haven't exposed, or a hotel whose price doesn't match what you see on じゃらん? Open an issue on the actor's Issues tab in Apify Console and tell us the area and dates. We read each report and answer it there.