Accor Hotel Search Scraper avatar

Accor Hotel Search Scraper

Pricing

from $0.56 / 1,000 hotel-listeds

Go to Apify Store
Accor Hotel Search Scraper

Accor Hotel Search Scraper

Scrape Accor hotel prices for any destination and dates. Just add a city and dates and get every Sofitel, Pullman, Novotel, Mercure and ibis with nightly and stay prices, member rate, breakfast flag, stars, guest rating, coordinates and distance. $0.80 per 1,000 hotels.

Pricing

from $0.56 / 1,000 hotel-listeds

Rating

0.0

(0)

Developer

BonCross API

BonCross API

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

11 days ago

Last modified

Categories

Security

Limited permissions

Share

What is Accor Hotel Search Scraper?

One search prices every Accor hotel in a city for your dates. Paris came back with 259 hotels, each one priced, in 19 seconds. Type a city and a country, pick your dates, and Accor Hotel Search Scraper gives you a row per hotel across Sofitel, Raffles, Fairmont, Pullman, MGallery, Novotel, Mercure, ibis and the rest of the group, with the nightly price, the stay total and the member rate beside the public one.

Why it's worth choosing:

  • Your filters mean what you typed. Accor's own price filter counts the whole stay and its rating filter only takes whole bands. Here a price limit is checked per night, and a rating bound such as 4.5 is applied exactly.
  • You see both sides of the member discount: the rate a visitor is shown, the public rate, the member rate and the saving, as numbers.
  • It works in 14 languages and any currency Accor supports, and each row says whether its price includes tax. A US market is quoted before tax, and the row gives you the amount on top.
  • You can price your own deal. Add a company client code, a preferential code or an ALL Accor loyalty card and the run returns the rates Accor quotes you.
  • $0.80 per 1,000 hotels on the Free plan, $0.56 on Business. Hotels your filters remove, sold-out hotels and unchanged prices cost nothing.

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

  • 51 of 51 live checks on its inputs and filters passed on 7 October 2026
  • 7 destinations run the same day in 7 countries: 88 hotels, none empty
  • Charges matched the rows

What else it does:

  • Search a city, a radius around a point, a list of hotel ids, or a pasted Accor search URL for a neighbourhood or landmark
  • Filter the way the site does: stars (including unclassified), brands by name, any amenity Accor offers (accessibility, eco-certified, pets, wellness and more), property type, guest rating, price range, promotions, breakfast, member rates and availability
  • Sort by price, distance, stars, guest rating or Accor's own recommendation
  • Read stars, guest rating, review count, brand, property type and coordinates for each hotel
  • Remember prices between runs and return only the hotels whose price moved
  • See the destination, urban or resort fee Accor itemises for a US market
  • Get a row that says why when a destination can't be searched

What Accor data do you get?

🏨 Hotel name and Accor id🔗 Hotel URL
Brand, property type and management type⭐ Star rating
Guest rating and review count💷 Price per night and stay total
Public rate and member-rate savingCurrency
🍳 Board type and breakfast flagRate id and rate code
📍 Street, postcode, city, country and coordinatesDistance from the search centre
Availability status and reason when sold out🕑 Check-in and check-out times
Loyalty earning and redemptionTop amenities, labels and certifications
🖼 Main image📈 Price change since the last run

How to scrape Accor hotel prices

There's nothing to install. You fill in a form and download a spreadsheet.

  1. Create a free Apify account and open Accor Hotel Search Scraper.
  2. Add one or more destinations as "City, Country". Coordinates and pasted Accor search URLs work too.
  3. Set your dates, guests and currency, then any filters and the sort order you want.
  4. Click Start. A single city finished in 2 to 19 seconds in the measured runs below.
  5. Download the hotels as Excel or CSV, or as JSON, XML or HTML.

How much does it cost to search Accor?

EventFree planStarterScaleBusiness
actor-start, per run$0.002$0.002$0.002$0.002
hotel-listed, per hotel returned$0.0008$0.00072$0.00064$0.00056

Enterprise plans pay the Business price.

$0.80 per 1,000 hotels on the Free plan, $0.56 on Business, with all fields included. That's the whole price: platform usage is included and there's no proxy charge.

You pay for hotels returned and for nothing else. Hotels removed by a filter, sold-out hotels hidden by "Only available hotels" and hotels whose price hasn't moved in a change-only run are free. So is a destination that fails: you get an error row and no charge.

  • One city, 250 hotels: $0.002 + 250 × $0.0008 = $0.202 a run ($0.142 on Business).
  • A daily monitor of one city at 200 hotels for a month, where about 50 prices move each day: 30 × ($0.002 + 50 × $0.0008) = $1.26 for the month ($0.90 on Business).

The $5 of credits in Apify's Free plan each month covers about 24 city searches of 250 hotels, roughly 6,000 priced hotels, before you pay anything.

⬇️ Input

Start with a destination. You can write it four ways:

  • "City, Country", such as "Paris, France" or "Tokyo, Japan"
  • an Accor destination slug, such as "paris-france"
  • coordinates as "lat,lng,metres", such as "35.6812,139.7671,5000"
  • an Accor search URL pasted from your browser. This is how you search a neighbourhood or a landmark, and the URL's own dates and number of adults are used for that destination.

If you already know which hotels you want priced, put their four-character Accor ids (such as 0663 or C185) or their hotel URLs in "Hotel ids", with or without a destination.

Dates are either fixed ("Check-in" and "Check-out") or rolling ("Check-in days ahead", default 30, and "Nights", default 2). Rolling dates are the ones to use on a schedule. Everything else is optional.

Filters. All of Accor's search filters are here and Accor applies them: star ratings (including unclassified), brands (by name, such as "ibis Styles", or by code), amenities (including "Accessible room available", "Hearing impaired room" and "Wheelchair accessible hotel"), property types, minimum guest rating, minimum and maximum price per night, promotions only, ALL loyalty hotels only (hotels where points are earned and spent) and only available hotels, which is on by default. "Breakfast included only" and "Member rate only" narrow the offers further. If you pick several amenities you get the hotels that have all of them, as on the site.

Your own rates. Add your company's client code (with its access code if your company uses one), a preferential code, or your ALL Accor loyalty or subscription card, and prices are the ones Accor quotes you. All four are stored encrypted. "Public rates only" does the opposite: it returns the public rate in place of the discounted member rate, so your prices match what a signed-out visitor sees. "Day use" prices a daytime stay with no overnight.

Language, currency and market. "Currency" (default USD) is the money prices are quoted in. "Country market" (default GB) is the traveller's country, which can change the rates on offer and whether tax is included. "Language" (default en; also fr, de, es, it, pt, nl, pl, ja, ko, zh, ru, tr, ar) sets the language of names, descriptions and labels.

Two limits. "Max hotels per destination" (default 100, up to 1,000) applies to each destination separately: ten destinations at 50 each returns 500. "Maximum results for the whole run" caps the run as a whole. It defaults to 0, which means no cap, and nothing past it is charged for.

A city for a two-night stay, cheapest first:

{
"destinations": ["Paris, France"],
"checkIn": "2026-11-11",
"checkOut": "2026-11-13",
"adults": 2,
"currency": "EUR",
"countryMarket": "FR",
"sort": "price",
"maxResultsPerDestination": 100
}

Several cities, four and five star hotels with a good guest rating:

{
"destinations": ["London, United Kingdom", "Berlin, Germany", "Amsterdam, Netherlands"],
"checkIn": "2026-11-11",
"checkOut": "2026-11-13",
"adults": 2,
"currency": "GBP",
"stars": ["4", "5"],
"minRating": 4,
"sort": "rating",
"sortDirection": "DESC",
"maxResultsPerDestination": 50
}

Everything within five kilometres of a point, for a family:

{
"destinations": ["35.6812,139.7671,5000"],
"checkInDaysAhead": 45,
"nights": 3,
"adults": 2,
"childrenAges": [7, 4],
"currency": "JPY",
"countryMarket": "JP",
"sort": "distance",
"maxResultsPerDestination": 200
}

A daily price monitor that returns only what moved:

{
"destinations": ["Dubai, United Arab Emirates"],
"checkInDaysAhead": 60,
"nights": 2,
"currency": "USD",
"maxResultsPerDestination": 200,
"priceStoreName": "dubai-prices",
"onlyNewOrChanged": true
}
FieldNotes
destinations, hotelIdsWhere to search, or which hotels to price.
checkIn, checkOut, checkInDaysAhead, nightsFixed or rolling dates.
adults, childrenAges, dayUseWho is staying, and whether it's a daytime stay.
stars, brands, amenities, lodgingTypes, minRatingAccor's own search filters.
minPricePerNight, maxPricePerNightPrice bounds per night, in your currency. Decimals are fine.
promotionsOnly, loyaltyHotelsOnly, onlyAvailable, breakfastOnly, memberRateOnlyNarrow the hotels or the offers.
sort, sortDirectionrecommended, price, distance, stars, rating or availability, ASC or DESC.
clientCode, accessCode, preferentialCode, loyaltyCardNumber, hideMemberRateYour own rates, or public rates only.
currency, countryMarket, languageMoney, traveller's country and language.
priceStoreName, onlyNewOrChanged, dedupStoreNameChange tracking for scheduled runs.
maxResultsPerDestination, maxItemsThe per-destination cap and the run-wide cap.
maxConcurrency, delayMs, includeRawOfferTuning and the raw offer.

For developers

  • maxResultsPerDestination is the per-destination limit and maxItems the run-wide one.
  • hotelIds takes ids or hotel URLs and can be combined with destinations.
  • priceStoreName names the store that remembers the last price for each hotel and stay. With onlyNewOrChanged on, a run returns only new or moved rows. dedupStoreName names a second store that remembers which hotels you've already been given, and later runs output only hotels that are new to you.
  • With either store set, destinations are searched one at a time, because each reads what the last one wrote. Without them, destinations are searched in parallel and written in input order.
  • maxConcurrency (default 8, from 1 to 32) is how many requests run at once. The default is the fastest setting Accor answered cleanly in testing.
  • delayMs (default 0) adds a pause before each request, in milliseconds. Values above 2000 are treated as 2000. We'd leave it at 0.
  • includeRawOffer (default off) adds Accor's untouched offer object to each record, next to the mapped fields.
  • A destination whose filters match almost nothing stops early: after 500 hotels read with fewer than 0.15 in 100 kept, the actor moves on.
  • If Apify restarts a run part-way through, it carries on where it stopped. No hotel is returned or charged twice.

⬆️ Output

One row is one hotel for one stay, priced at its cheapest offer. You can view the dataset as a table or as JSON in the Output tab.

{
"id": "0785", "hotelId": "0785", "hotelName": "Novotel Paris Les Halles",
"url": "https://all.accor.com/hotel/0785/index.en.shtml",
"brand": "NOV", "brandName": "Novotel", "lodgingType": "HTL", "lodgingTypeText": "Hotel",
"stars": 4, "rating": 4.5, "ratingScale": 5, "ratingSource": "TRUST_YOU", "totalReviews": 2478,
"lat": 48.86053, "lng": 2.346531,
"address": "8 Place Marguerite de Navarre", "postcode": "75001", "city": "PARIS",
"country": "France", "countryCode": "FR",
"checkInFrom": "3:00 PM", "checkOutUntil": "12:00 PM",
"destination": "Paris, France", "destinationSlug": "paris-france",
"checkIn": "2026-11-11", "checkOut": "2026-11-13", "nights": 2, "adults": 2, "childrenAges": [],
"isAvailable": true, "availabilityStatus": "AVAILABLE", "distanceMetres": 486,
"currency": "GBP", "pricePerNight": 270.14, "priceTotal": 540.27, "priceTotalText": "£541",
"priceListedPerNight": 283.59, "priceListedTotal": 567.17,
"memberPerNight": 270.14, "memberTotal": 540.27,
"discountPercent": 5, "discountText": "£27", "discountType": "MEMBER_RATE", "isMemberRate": true,
"mealPlan": "EUROPEAN_PLAN", "isBreakfastIncluded": false,
"rateId": "1RA3", "rateCode": "1RA3-DR", "offerCategories": ["MEMBER_RATE"],
"topAmenities": ["PARKING", "PET", "RESTAURANT"], "certifications": ["Ecocertified"],
"isLoyaltyEarning": true, "isLoyaltyRedeemable": true,
"image": "https://www.ahstatic.com/photos/0785_ho_00_p_1024x768.jpg", "totalPhotos": 58,
"previousPricePerNight": null, "priceChange": null,
"scrapedAt": "2026-09-12T00:30:20.318Z"
}

Also on every row

FieldWhat it is
totalReviewsAccor's own review total for the property.
pricesIncludeTax · taxesAndChargesExcluded · taxTextWhether the quoted price already includes taxes and fees, the taxes charged on top where it does not, and Accor's own wording. Accor quotes a US countryMarket before tax ("Taxes not included : $120"), and the other markets tested with taxes included. Null where Accor says nothing.
feesIncluded · feesIncludedText · feesIncludedBreakdownThe destination, urban or resort fee Accor itemises for the stay, such as New York's Urban Experience Fee or a Las Vegas resort fee: the amount for the whole stay in currency, already part of priceTotal, with Accor's label and the named per-night lines. Accor itemises it for a US countryMarket; other markets quote the same hotels with the fee folded into the price, so the columns are null there. Rounded to the whole currency unit. Null where Accor says nothing, never 0.
priceAggregation · priceAggregationTextWhether the price is quoted per stay or per night: TOTAL_STAY, "per stay".
priceBandAccor's price bracket for the property: €€, €€€, €€€€.
hasMemberRate · offerCategoryText · offerCategoriesAvailableWhether a member rate exists, what it is called, and which rate categories are on offer.
loyaltyStatusPARTICIPATING_HOTEL where ALL points are earned and spent, NON_PARTICIPATING otherwise.
mealPlanTextThe meal terms where the offer states them, such as "Breakfast included".
offerTypeWhat is being priced: ROOM.
recommendedScoreAccor's own ranking score, which drives the default recommended sort.
isDayUseWhether this is a day-use stay rather than an overnight one.
availabilityReasonsWhy a hotel is unavailable, when it is. Empty unless you turn Only available off.
labels · kickersShort badges the property carries: "Renovated", "Family friendly", "Skip the Clean".
totalPhotosHow many photos and videos Accor shows for the hotel, the "1/111" on its card.
priceChange · priceChangePct · previousPricePerNight · previousScrapedAtFilled only when you set Price memory store and re-run. Null on a first run.
scale · managementType · managementTypeText · reservationSystemHow Accor classifies the property and whether it manages or franchises it.
stateFilled where the country has one: a US or Australian property, not a French one.
specialRatescompany, preferential or loyalty when your own codes or card priced the run, null otherwise.
inputExactly what you passed in, so a row can be traced back to its input.

The rate terms aren't in a search row. Accor's search results give the price but not the offer detail, which means no cancellation policy, no itemised tax breakdown and no rooms-left figure here. For those, pass the hotel ids to Accor Room Rates Scraper, which returns each room and rate plan of a hotel with its terms.

How many hotels, and how fast?

RunResult
Tokyo, 2 nights, JPY, 10 hotels10 hotels priced in about 2 seconds
Paris, 2 nights, EUR, cheapest first, everything the city has259 hotels, all priced, in 19 seconds
Paris, London, Berlin and Sydney, 2 nights, up to 200 hotels each366 hotels, all priced, in 5 to 8 seconds
24 destinations, 2 nights, up to 200 hotels each1,038 hotels in about 6 seconds

The two larger runs were measured on 2 October 2026. Destinations are searched at the same time, which is why adding cities adds little to the run. A few thousand destinations still finish well inside the default one-hour run limit.

How many hotels you get depends on how you write the destination. A city name covers the city itself: Paris has about 260 Accor hotels. A radius search around the same point reaches the wider metropolitan area, and stops at 300 hotels however wide you draw it.

FAQ

Do I need proxies or an Accor account?

Neither. There's nothing to configure, no login is involved, and proxy usage isn't charged.

Which Accor brands does it cover?

The whole group, because the brands share one booking platform: Raffles, Orient Express, Fairmont, Sofitel, MGallery, Pullman, Swissôtel, Movenpick, Novotel, Mercure, Adagio, ibis, ibis Styles, ibis budget, greet and more. Use "Brands" if you only want some of them.

Why is my US price lower than the same hotel priced for the UK?

Accor quotes a US country market before tax, and the other markets tested with taxes and fees included. pricesIncludeTax tells you which way each price went, and for a pre-tax price taxesAndChargesExcluded is the tax on top. If you compare markets, compare on the same basis.

How do I see my company's, my code's or my loyalty card's rates?

Add your company client code and access code, a preferential code, or your ALL Accor loyalty or subscription card number. The prices in that run are then the ones Accor quotes you. The codes are stored encrypted and never appear in the results or the log. If Accor rejects a company code or a card, the run stops with Accor's own message, so you're never shown public prices in their place. Preferential codes are different: Accor doesn't check them and quotes its ordinary rates for one it doesn't recognise. The run log tells you when no offer came back with a rate specific to your code.

Which price is the member rate?

Accor shows a discounted loyalty rate next to the public one. pricePerNight is the rate a visitor is shown. memberPerNight and memberTotal are the member rate, whether or not it was the one shown. priceListedPerNight is the crossed-out public rate, filled only when it's dearer than the shown rate, and discountPercent is the saving. Switch on "Public rates only" if you want public rates alone.

How do I get only the prices that changed since yesterday?

Give "Price memory store" any name, switch on "Only new or changed prices", and schedule the run with rolling dates. The actor remembers the last price for each hotel and stay and returns only new or moved rows. Hotels that haven't moved aren't charged.

Can I search a neighbourhood or a landmark?

Search for it on Accor's site and paste the search URL as the destination. For a circle around a point, write "lat,lng,metres", for example "35.6812,139.7671,5000". Free text such as a street name isn't looked up.

What can't it do?

  • You get each hotel's cheapest offer only. Every room and rate plan comes from Accor Room Rates Scraper.
  • Cancellation and prepayment policy, the itemised tax breakdown and rooms left aren't part of Accor's search results. A search row does say whether the price includes tax and, where it doesn't, the tax on top.
  • A typed destination must be a city with a country, a slug, or coordinates.
  • A radius search returns at most 300 hotels.
  • Without codes, prices are what a signed-out visitor sees, including the standard member rate. Company and preferential rates need your own codes, and loyalty status rates need your card number.
  • Accor sorts by price on its own basis, and two hotels within about 0.5% of each other can appear out of order in the currency you asked for.

The actor reads only what Accor serves to any logged-out visitor, and hotel prices are public commercial data, not personal data. You're responsible for complying with Accor's terms and applicable law in how you use the data.

Scheduling, API and AI agents

A rate shopper usually wants this on a schedule: an Apify Schedule with rolling dates and "Only new or changed prices" gives you a daily feed of price moves for a market, and a webhook or the Slack and Google Sheets integrations can pass them on. People also use the data for price parity checks, for measuring how deep the member discount runs by city and brand, and for building a hotel database with coordinates and ratings.

From code, one call runs the actor and returns the hotels:

POST https://api.apify.com/v2/acts/boncross~accor-search/run-sync-get-dataset-items?token=YOUR_TOKEN

There are apify-client packages for Node.js and Python. For an AI agent, add the Apify MCP server (mcp.apify.com) to your client and reference the actor as boncross/accor-search. You could ask it for the cheapest four-star Accor hotels in a city on given dates.

More from BonCross

Your feedback

Seen a price that doesn't match Accor's site, or a hotel missing from a city? Report it on the Issues tab in Apify Console with the destination and dates you used. We read every issue and answer there.