Accor Room Rates Scraper
Pricing
from $2.10 / 1,000 hotel-priceds
Accor Room Rates Scraper
Scrape every room and rate plan an Accor hotel sells for your dates. Add hotel ids and get per-night and stay prices, taxes and fees, cancellation and prepayment policy, board, room size, beds, occupancy, member-rate discount and a day-by-day price calendar. $3.50 per 1,000 priced hotel-stays.
Pricing
from $2.10 / 1,000 hotel-priceds
Rating
0.0
(0)
Developer
BonCross API
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
12 days ago
Last modified
Categories
Security
Limited permissionsShare
What is Accor Room Rates Scraper?
An Accor hotel doesn't have one price for a night. A five-star Sofitel sold 60 room and rate combinations for a single stay in testing, and a small ibis sold 24. Accor Room Rates Scraper returns all of them for the hotels and dates you name: each room type against each rate plan, with its price, its cancellation and payment terms, and the taxes inside or on top.
What a single lowest price can't tell you, and this can:
- The cheapest refundable rate and the cheapest rate with breakfast, already worked out on each stay, next to the lowest price overall.
- What each rate really costs. You get taxes and fees included and excluded as numbers, plus the destination or resort fee to the cent where Accor itemises one.
- How the price moves over time. Ask for a price calendar and you get the cheapest rate for each day, up to 365 days from check-in. Six hotels with 60 days each took 8 to 11 seconds.
- Room facts for each row: size in square metres and square feet, beds, occupancy, views and amenities.
- $3.50 per 1,000 priced hotel-stays on the Free plan, $2.60 on Business, however many rates a stay has. A sold-out stay costs $0.0005.
BonCross Verified means we tested this actor against the live site before release and kept the record:
- 41 of 41 live checks on its inputs and filters passed on 7 October 2026
- 5 hotels run the same day on 2 stays each: 10 stays, none empty
- Charges matched the rows
What do people use it for?
- Rate shopping: compare each room and rate plan against your own inventory
- Revenue management: watch a competitive set daily and get only the hotels whose lowest price moved
- Measure the loyalty member discount by hotel, room class and rate plan
- Build a room-level product catalogue with sizes, beds and occupancy
- Forecast demand from the day-by-day price calendar
- Feed a travel agency or corporate travel tool that needs the full offer list, priced with your company's own codes
What data can you extract?
| 🏨 Hotel id and URL | 📅 Check-in, check-out and nights |
| 🛏 Room name, code and class | Room size in m² and ft² |
| Bed types and counts | 👥 Maximum occupancy |
| 💷 Price per night and stay total | Public rate and member-rate saving |
| Taxes and fees, itemised | Currency |
| Free cancellation flag and policy text | 💳 Prepaid or pay at the hotel |
| 🍳 Board type and breakfast flag | Rate name, rate code and offer category |
| Room views and room amenities | ♿ Accessible room flag |
| Day-by-day price calendar | 📈 Price change since the last run |
| Price night by night (optional) | Full cancellation, guarantee and children policies, with each tax line (optional) |
How to scrape Accor room rates
- Sign up for Apify, which is free, and open Accor Room Rates Scraper.
- Add Accor hotel ids, or paste hotel URLs from all.accor.com. Don't have ids yet? Accor Hotel Search Scraper lists them for a destination.
- Set your dates, guests and currency. Switch on the price calendar if you want it.
- Press Start, then download the rates as Excel, CSV, JSON, XML or HTML when the run finishes.
⬇️ Input
You need hotels and dates. A hotel is a four-character Accor id ("0663", "C185") or an all.accor.com hotel URL. If your list is long, load it through "Start URLs" from a file, a Google Sheet or a remote list. The two inputs are combined.
For dates you have three choices. Fix them with "Check-in" and "Check-out". Let them roll with "Check-in days ahead" (default 30) and "Nights" (default 2, up to 30), which is what you want on a schedule. Or list several stays in "Several stays" and each hotel is priced for all of them.
Guests are "Adults" and "Children ages", one entry per child in years. Leave the ages empty for an adults-only stay.
Narrowing the rates. You can keep only some board types or only rates with breakfast, only some cancellation policies or only free cancellation, only accessible rooms, and only rates inside a price range per night.
Price calendar. "Price calendar days" adds the cheapest rate for each day, starting at check-in, for up to 365 days.
Full rate terms. "Include full rate terms" adds the price of each night of the stay and the cancellation, guarantee, modification and children policies as the hotel words them ("No cancellation charge applies up to 18:00 (local time) 1 day prior to arrival"), with each tax line and whether it's included. It costs nothing extra and makes each stay a little slower.
Your own rates. Add your company's client code (with its access code if you have one), a preferential code, or your ALL Accor loyalty or subscription card to see the prices Accor quotes you. All four are stored encrypted. "Public rates only" returns public rates in place of the discounted member rates, which matches what a signed-out visitor sees. "Day use" prices a daytime stay with no overnight.
Language, currency and market. "Currency" is the money prices are quoted in and "Country market" the traveller's country. "Language" (default en; also fr, de, es, it, pt, nl, pl, ja, ko, zh, ru, tr, ar) sets the language of room names, rate names and policy text.
Limits. "Maximum hotel-stays for the whole run" caps hotel-stays across all your hotels, and nothing past it is fetched or charged for. "Maximum rows for the whole run" caps rows. Both default to 0, which means no limit, and the run stops at whichever comes first.
All the rooms and rate plans for two hotels and one stay:
{"hotels": ["0663", "C185"],"checkIn": "2026-11-11","checkOut": "2026-11-13","adults": 2,"currency": "EUR","countryMarket": "FR","includeHotel": true}
One row per rate plan, refundable rates with breakfast only:
{"hotels": ["https://all.accor.com/hotel/0663/index.en.shtml"],"checkInDaysAhead": 30,"nights": 2,"adults": 2,"currency": "GBP","freeCancellationOnly": true,"breakfastOnly": true,"flattenRates": true}
Several stays per hotel, with a 28-day price calendar:
{"hotels": ["0663", "B6R8"],"stays": [{ "checkIn": "2026-11-11", "checkOut": "2026-11-13" },{ "checkIn": "2026-12-20", "checkOut": "2026-12-27" }],"adults": 2,"currency": "USD","calendarDays": 28}
A daily rate monitor that returns only hotels whose lowest price moved:
{"hotels": ["0663", "C185", "B6R8"],"checkInDaysAhead": 60,"nights": 2,"currency": "EUR","priceStoreName": "accor-rates","onlyNewOrChanged": true}
| Field | Notes |
|---|---|
hotels, startUrls | Hotel ids or hotel URLs, typed or loaded in bulk. |
checkIn, checkOut, checkInDaysAhead, nights, stays | Fixed dates, rolling dates, or a list of stays. |
adults, childrenAges, dayUse | Who is staying, and whether it's a daytime stay. |
mealPlans, breakfastOnly | Board types to keep. |
cancellationPolicies, freeCancellationOnly | Cancellation terms to keep. |
accessibleOnly, minPricePerNight, maxPricePerNight | Accessible rooms only, and price bounds per night. |
calendarDays | Days of price calendar, 0 to 365. |
flattenRates, includeHotel, includeRateTerms | What each row holds. |
hideMemberRate, clientCode, accessCode, preferentialCode, loyaltyCardNumber | Public rates only, or your own rates. |
currency, countryMarket, language | Money, traveller's country and language. |
priceStoreName, onlyNewOrChanged | Change tracking for scheduled runs. |
maxItems, maxRows | The hotel-stay cap and the row cap. |
includeRawOffers, delayMs, maxConcurrency | The raw offer and tuning. |
For developers
maxItemscounts hotel-stays andmaxRowscounts rows. One hotel-stay is one row, or one row per room and rate plan withflattenRates. WithflattenRates, the last hotel-stay is cut to fitmaxRows, keeping its cheapest rates, and is charged as one hotel-stay.includeRateTermsaddsnightlyPrices,cancellationPolicyDetail,guaranteePolicyDetail,modificationPolicyDetail,childrenPolicyDetail, each policy inratePolicies, andtaxLineswith each tax's code.priceStoreNamenames the store that remembers each hotel-stay's lowest price. WithonlyNewOrChanged, a hotel whose lowest rate hasn't moved is left out of the dataset.includeRawOffers(default off) adds Accor's untouched offer object to each rate, next to the mapped fields.maxConcurrency(default 8, up to 32) sets how many requests run at once. Turn it down if a run reports errors.delayMs(default 0) adds a pause before each request, in milliseconds. Values above 2000 are treated as 2000.- A hotel or a stay listed twice is priced and charged once. If Apify restarts a run, it picks up where it stopped without repeating or re-billing a stay.
⬆️ Output
By default one row is one hotel for one stay, and its rates array holds each room and rate plan. If you'd find a flat table easier, switch on "One row per rate plan".
{"id": "0663-2026-11-11-2026-11-13", "hotelId": "0663", "url": "https://all.accor.com/hotel/0663/index.en.shtml","hotelName": "Sofitel Le Scribe Paris Opéra", "brandName": "Sofitel", "stars": 5,"hotelRating": 4.8, "hotelRatingScale": 5, "hotelReviewCount": 2549,"city": "PARIS", "countryCode": "FR", "lat": 48.870426, "lng": 2.329937,"checkIn": "2026-11-11", "checkOut": "2026-11-13", "nights": 2, "adults": 2,"isAvailable": true, "availabilityStatus": "AVAILABLE","currency": "GBP", "offerCount": 60, "roomCount": 15,"lowestPerNight": 479.06, "lowestTotal": 958.12, "pricesIncludeTax": true,"lowestRoom": "SUPERIOR ROOM, 1 Queen Size Bed, Courtyard View", "lowestRate": "SAVER RATE","lowestRefundableTotal": 1121.45, "lowestBreakfastTotal": 1085.52,"memberRateDiscountPercent": 5,"rates": [{"roomCode": "QEB", "roomName": "SUPERIOR ROOM, 1 Queen Size Bed, Courtyard View","roomClass": "SUPERIOR", "roomType": "ROOM", "roomSizeSqm": 20, "roomSizeSqft": 215,"maxOccupancy": 2, "isAccessible": false,"beds": [{ "code": "QUEEN_SIZE_BED", "count": 1, "label": "Queen size bed(s)" }],"roomViews": ["Courtyard View"],"currency": "GBP", "pricePerNight": 479.06, "priceTotal": 958.12, "priceTotalText": "£958.12","priceListedPerNight": 503.22, "priceListedTotal": 1006.43,"memberPerNight": 479.06, "memberTotal": 958.12,"pricesIncludeTax": true, "taxText": "Taxes and fees included.","taxesIncludedText": "Taxes included : £123.67","taxesAndChargesIncluded": 123.67, "taxesAndChargesExcluded": 0,"discountPercent": 5, "discountType": "MEMBER_RATE", "isMemberRate": true,"isFreeCancellation": false, "isPrepaid": true, "isPayAtHotel": false,"cancellationPolicy": "NO_CANCELLATION", "cancellationPolicyText": "Non-refundable","guaranteePolicy": "PREPAID", "guaranteePolicyText": "Online payment","mealPlan": "EUROPEAN_PLAN", "isBreakfastIncluded": false,"rateCode": "1RA4-DR", "rateName": "SAVER RATE", "offerCategories": ["MEMBER_RATE"]}],"calendar": [{ "date": "2026-11-11", "isAvailable": true, "pricePerNight": 479.06, "priceText": "£959", "currency": "GBP", "pricesIncludeTax": true },{ "date": "2026-11-12", "isAvailable": true, "pricePerNight": 472.53, "priceText": "£946", "currency": "GBP", "pricesIncludeTax": true }],"scrapedAt": "2026-09-12T00:25:03.025Z"}
Also on every row
| Field | What it is |
|---|---|
pricesIncludeTax · taxesAndChargesIncluded · taxesAndChargesExcluded | Whether the price already includes every tax and fee, the taxes and fees inside it, and those charged on top. On each rate, on the stay row (for its cheapest rate) and on each calendar day. Accor quotes a US countryMarket before tax, so there pricesIncludeTax is false and taxesAndChargesExcluded holds the amount on top; most other markets are quoted with taxes included. Null where Accor says nothing. taxText, taxesIncludedText and taxesExcludedText are kept beside them, unchanged, for compatibility. |
feesIncluded · feesIncludedText · feesIncludedBreakdown | On each rate: the 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. Filled in every market tested (US and GB give the same figure); null on hotels that charge no such fee. Exact to the cent ("Fees included : $91.80" gives 91.8), where the Accor Hotel Search Scraper rounds the same fee to the whole unit ($92). Null where Accor says nothing, never 0. |
isDayUse | Whether this is a day-use stay rather than an overnight one. |
childrenAges | The ages you asked for, echoed back, so a row says who it was priced for. Empty when you asked for none. |
availabilityReasons | Why a stay is unavailable, when it is. Empty on an available one. |
previousLowestPerNight · previousScrapedAt · priceChange · priceChangePct | Filled only when you set Price memory store and re-run: the last price seen, when, and the move since. Null on a first run. |
specialRates | company, preferential or loyalty when your own codes or card priced the run, null otherwise. |
input | Exactly what you passed in, so a row can be traced back to its input. |
hotelName · brandName · stars · hotelRating · hotelRatingScale · hotelReviewCount · city · countryCode · lat · lng · checkInFrom · checkOutUntil | Added by Include hotel details. They come from one extra request per hotel, so on the rare run where that request fails they are missing from that hotel's rows while its rates are unaffected. |
Also on each rate
These sit on every entry of rates, and at the top level of the row when flattenRates is on.
| Field | What it is |
|---|---|
roomDescription · roomClassText · roomTypeText · bedsText | Accor's description of the room, the readable labels for roomClass and roomType, and the bed labels joined into one line. Null where Accor gives none. |
roomAmenities · roomFeatures | The room's headline amenities and key features as Accor labels them. Empty when it lists none. |
priceAggregation · priceAggregationText | Whether Accor quoted the price per night or for the whole stay (for example TOTAL_STAY), with its label. pricePerNight and priceTotal are filled either way. |
taxesIncludedBreakdown · taxesExcludedBreakdown | The itemised lines behind taxesIncludedText and taxesExcludedText, as Accor lists them. Null where Accor gives none. |
feesExcludedText · feesExcludedBreakdown | Fees charged on top of priceTotal, with Accor's label and itemised lines. Null when there are none. |
discountText | The saving as Accor formats it, beside discountPercent and discountType. Null on undiscounted rates. |
mealPlanText | The readable label for mealPlan. |
rateId · rateDescription | Accor's own id for the rate plan and its description. rateCode is the short code shown on the site. |
offerId · offerType · offerCategoryText | Accor's id and type for this room-and-rate offer, and its category tags joined into one line (offerCategories holds the codes). |
roomsLeftText | Always null at present; the count is in roomsLeft. |
loyaltyPoints | The ALL loyalty points figure Accor shows for this rate, or null when it shows none. |
supplements | Added by includeRateTerms: each extra charge Accor attaches to the rate, with its code, type, amount, amountText and label. Null without the option or when the terms did not come back. |
How many rates per hotel, and how long does a run take?
| Run | Result |
|---|---|
| Five hotels, one 2-night stay each, EUR, with hotel details | 118 rate plans across 5 hotel-stays in 11 seconds |
| Six hotels × three 2-night stays, GBP, with hotel details and a 14-day calendar | 18 hotel-stays, 404 rate plans and 252 calendar days in 5 to 8 seconds |
| The same 18 hotel-stays with a 60-day calendar each | 1,080 calendar days in 8 to 11 seconds |
| 40 hotels × 3 stays | 120 hotel-stays, 1,855 rate plans, in about 10 seconds |
The last three were measured on 1 and 2 October 2026. Hotels, stays and calendar days are read at the same time, and a long calendar adds little. A long run keeps a steady pace of about 400 hotel-stays a minute, which puts roughly 20,000 hotel-stays inside the default one-hour run limit. A long price calendar on each one lowers that.
The size of a grid is the hotel's doing. A large luxury hotel returned 60 rate plans across 15 room types, and a small ibis 24 across 6.
How much does it cost to scrape Accor room rates?
| Event | Free plan | Starter | Scale | Business |
|---|---|---|---|---|
actor-start, per run | $0.002 | $0.002 | $0.002 | $0.002 |
hotel-checked, per hotel and stay Accor answered, whatever the answer | $0.0005 | $0.0005 | $0.0005 | $0.0005 |
hotel-priced, per hotel-stay that comes back with at least one rate | $0.003 | $0.0027 | $0.0024 | $0.0021 |
calendar-day, per calendar day delivered | $0.0005 | $0.00045 | $0.0004 | $0.00035 |
Enterprise plans pay the Business price.
$3.50 per 1,000 priced hotel-stays on the Free plan, $2.60 on Business. You pay per stay, not per rate: 24 rates or 60, the stay costs the same $0.0035. Platform usage is included and there's no proxy charge on top.
What a stay costs when it has nothing to sell:
- Sold out, or no rate left after your filters. You still get a row for the stay, with an empty
rateslist, and you pay the $0.0005 check fee alone. - Unchanged, in a change-only run. The hotel is left out of the dataset and you pay the check fee alone.
- No answer from Accor. You get an error row that says why, and you pay nothing for it.
The calendar is charged only when you ask for it, and only for days delivered.
- Ten hotels for one stay: $0.002 + 10 × ($0.0005 + $0.003) = $0.037 a run ($0.028 on Business).
- A daily monitor of 20 hotels for a month: 30 × ($0.002 + 20 × $0.0035) = $2.16 for the month ($1.62 on Business).
- Ten hotels with a 30-day calendar each: $0.002 + 10 × $0.0035 + 300 × $0.0005 = $0.187 a run ($0.133 on Business).
On the Free plan, Apify's $5 of monthly credits pays for about 135 runs the size of the first example: around 1,350 hotel-stays with their full rate grids.
Limitations
- You name the hotels. To find hotel ids for a destination, run Accor Hotel Search Scraper first.
- Accor shows rooms left only on some rates, usually when few remain. Across 290 rates measured on 4 October 2026,
roomsLeftwas filled on 136 and null on the rest. - The price calendar gives the cheapest rate per date, not the full grid for each date.
- Packages and non-room products aren't returned. The grid is rooms and their rate plans.
- 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 doesn't check preferential codes. An unrecognised one returns the ordinary rates, and the run log warns you when no code-specific rate came back.
- Day-use stays are accepted, but most hotels offer none and the grid is often empty.
- A stay can be 30 nights at most, the longest a single booking covers.
FAQ
Where do I find a hotel id?
It's the four characters in the hotel's URL: 0663 in all.accor.com/hotel/0663/index.en.shtml. You can paste the whole URL too, or get ids in bulk from Accor Hotel Search Scraper.
How do I find the cheapest refundable rate without sorting 60 rows?
It's already on the stay row. lowestRefundableTotal is the cheapest rate with free cancellation and lowestBreakfastTotal the cheapest with breakfast, beside lowestTotal, lowestRoom and lowestRate. If you only ever want refundable rates, switch on "Free cancellation only" and the others are dropped.
Are taxes included in the prices?
That depends on the country market you choose. Accor quotes a US market before tax, and the other markets tested (GB, FR) with taxes and fees included, whatever the hotel's country or your language. pricesIncludeTax says which way each rate is quoted. taxesAndChargesIncluded and taxesAndChargesExcluded give the amounts as numbers, and taxText, taxesIncludedText and taxesExcludedText keep Accor's own wording.
What do I get for a sold-out hotel?
A row for that hotel and stay with isAvailable false and an empty rates list. Where Accor gives a reason, it's in availabilityReasons. The row costs the $0.0005 check fee. A rate monitor usually wants that row, because "sold out" is an answer.
Can I price my company rate or my loyalty rate?
Add your company client code and access code, a preferential code, or your ALL Accor loyalty or subscription card number, and each room and rate plan is priced as Accor quotes it for 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. It won't quietly show you public prices.
Which of the prices is the member rate?
pricePerNight is the rate a visitor is shown, which is usually the member rate. 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. "Public rates only" removes the member discount from the picture.
Do I need proxies or an Accor account?
No account, no login and nothing to configure. Proxy usage is never charged.
Is it legal to scrape Accor?
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.
Run it on a schedule, or from code
For rate monitoring we'd set up an Apify Schedule with rolling dates, a "Price memory store" and "Only new or changed prices". Each morning you then get only the hotels whose lowest rate moved, and a webhook or the Google Sheets and Slack integrations can carry them into your own tools.
To call it from code:
POST https://api.apify.com/v2/acts/boncross~accor-room-rates/run-sync-get-dataset-items?token=YOUR_TOKEN
That returns the rates in one call for short runs, and the apify-client packages for Node.js and Python handle longer ones. AI agents reach it through the Apify MCP server at mcp.apify.com, as boncross/accor-room-rates, which is enough to ask "what's the cheapest refundable room at this hotel next weekend?" and get a real answer.
More from BonCross
- Accor Hotel Details Scraper: Full Accor hotel records.
- Accor Hotel Search Scraper: Accor hotel prices for any destination and dates.
- Agoda Room Rates Scraper: Every room type and rate plan Agoda shows for a hotel and stay.
- Agoda Search Scraper: Agoda search results for any destination and dates.
- Booking.com Hotel Details Scraper: The full Booking.com record for a property.
- Booking.com Hotel Search Scraper: Every hotel Booking.com is selling for a destination and your dates.
Your feedback
If a rate on Accor's booking page isn't in your results, or a tax figure looks off, tell us on the Issues tab in Apify Console and include the hotel id and dates. BonCross replies to each report, and requests for new columns are welcome there too.