Choice Hotels Scraper — rates, ratings & amenities avatar

Choice Hotels Scraper — rates, ratings & amenities

Pricing

from $4.00 / 1,000 hotel results

Go to Apify Store
Choice Hotels Scraper — rates, ratings & amenities

Choice Hotels Scraper — rates, ratings & amenities

Scrape Choice Hotels (choicehotels.com) — hotel name, brand, address, coordinates, star rating, review count, amenities, images, and nightly rates including the member price and discount. One search URL returns every hotel in the area. Residential proxy handled. JSON or CSV output.

Pricing

from $4.00 / 1,000 hotel results

Rating

0.0

(0)

Developer

Muhamed Didovic

Muhamed Didovic

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

Categories

Share

Choice Hotels Scraper — hotels, rates & ratings from choicehotels.com

Scrape Choice Hotels (choicehotels.com) hotel data from any city or brand search page — name, brand, full address, coordinates, star rating and review count, amenities, images, and the current "from" nightly rate including the member price and discount. One search URL returns every hotel in the area in a single request. Clean JSON/CSV out.

About the rates: the price fields are Choice's current starting rate (the "from $X / night" figure shown on the search page for a default one-night stay). They are not quotes for specific check-in/check-out dates or guest counts — Choice only prices those through a separate, bot-protected API this actor doesn't use. Great for tracking how starting rates move over time; not a dated-availability quote engine. See the FAQ.

How Choice Hotels Scraper works

Why use this scraper?

  • Whole city in one request — a single search page returns all hotels within an auto-expanding radius (often 40+), each fully detailed. No page-by-page crawling.
  • Rates with member pricing — the current starting nightly rate, member rate, discount percentage, plus taxes and fees, all in the output (not date-specific — see the note above).
  • Every Choice brand — Comfort, Quality Inn, Sleep Inn, Clarion, Econo Lodge, Rodeway Inn, Ascend, Cambria, WoodSpring, and more. Filter to one brand or scrape them all.
  • Built-in filters — narrow results by brand, amenities (pool, free breakfast, EV charging…), pet-friendly, minimum rating/reviews, and max nightly price — all without extra requests.
  • Rich structured data — coordinates, star rating + review count, coded amenities as readable labels, and image galleries.
  • Bot-protection handled — browser-grade TLS via impit, residential proxy support, and automatic IP rotation when a challenge is detected.
  • Flexible input — paste search URLs or build them from { state, city } locations.

Overview

Give the actor Choice Hotels search-results URLs (or locations to build them). For each, it fetches the search page, reads the hotel data Choice inlines in the page, and returns one clean row per hotel — identity, location, rating, amenities, images, and pricing. Overlapping searches are de-duplicated by hotel.

Supported inputs

InputExampleResult
City search URLhttps://www.choicehotels.com/california/los-angeles/hotelsall hotels in/around the city
Brand-filtered URLhttps://www.choicehotels.com/california/los-angeles/comfort-inn-hotelsone brand in the city
Facet URL.../los-angeles/pet-friendly-hotelsfacet-filtered hotels
Location object{ "state": "texas", "city": "austin" }built into a city search URL
Location + brand{ "state": "texas", "city": "austin", "brand": "sleep-inn" }brand search URL
Single-hotel URL.../comfort-inn-hotels/ca785auto-collapsed to the city search

Use cases

  • Rate & competitive intelligence — track starting nightly rates and member discounts across a market or brand.
  • Travel aggregators & meta-search — feed a hotel inventory with pricing, ratings, and amenities.
  • Market research — brand footprint, average ratings, and amenity coverage by city or state.
  • Lead lists — build a directory of hotels (name, address, coordinates) for a region.
  • Price monitoring — schedule the actor and diff the starting rates over time to watch how they trend.

How it works

  1. Fetch — each search URL is requested with browser-grade impit TLS through a residential proxy.
  2. Extract — the hotel dataset Choice inlines in the search page is parsed directly (no per-hotel page fetch — the detail pages carry no extra data and are bot-walled).
  3. Map — each hotel becomes a clean, flat record: identity, address, geo, rating, amenities, images, and rates.
  4. Dedupe — hotels repeated across overlapping search radii are collapsed by hotel code.
  5. Push — one dataset row per hotel, JSON or CSV.

Input configuration

{
"startUrls": [
"https://www.choicehotels.com/california/los-angeles/hotels"
],
"locations": [
"Austin, Texas",
"Los Angeles, CA",
"Miami, Florida, Comfort Inn"
],
"maxItems": 1000,
"proxy": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }
}
FieldTypeDefaultDescription
startUrlsarrayChoice Hotels search-results URLs
locationsarray[]One City, State per line (state name or 2-letter code); add a brand as a third part to filter, e.g. Miami, Florida, Comfort Inn
brandsarray[]Keep only these Choice brands (multi-select)
amenitiesarray[]Keep hotels having ALL these amenity keywords, e.g. pool, free breakfast, ev charging
petFriendlybooleanfalseKeep only pet-friendly hotels
minRatinginteger0Minimum guest rating (0–5)
minReviewsinteger0Minimum number of reviews
maxPriceinteger0Maximum starting nightly rate (0 = no cap)
maxItemsinteger1000Hard cap on hotels scraped
maxConcurrencyinteger3Parallel search pages — keep low (bot protection)
proxyobjectRESIDENTIALResidential proxy strongly recommended

Filters

Choice Hotels applies its on-site filters (brand, amenities, rating, price) through a bot-protected API rather than the search page itself, so this actor replicates them against the scraped results — you still get exactly the hotels that match, they're just filtered after extraction:

  • brands — pick one or more Choice brands (Comfort Inn, Sleep Inn, Cambria, …).
  • amenities — list keywords; a hotel is kept only if it has all of them. Each keyword matches an amenity when every word appears in it, so free breakfast matches "Free Hot Breakfast" and ev charging matches "EV Charging Station".
  • petFriendly — only hotels that explicitly allow pets.
  • minRating / minReviews — drop low-rated or sparsely-reviewed hotels.
  • maxPrice — cap by the starting nightly rate (after taxes/fees).

Filters combine with AND, and are applied before the maxItems cap so the cap counts hotels you actually wanted. Every result still carries the full amenities, ratingValue, brandName, and rate fields, so you can also post-filter downstream.

Note: dates and guest counts still can't be filtered — those live only behind Choice's bot-walled pricing API (see the FAQ).

Locations format: each line is City, State (e.g. Austin, Texas or Los Angeles, CA), optionally City, State, Brand (e.g. Miami, Florida, Comfort Inn). Every line becomes a city search that returns all hotels in that area.

Output overview

{
"hotelCode": "CA785",
"name": "Comfort Inn Los Angeles near Hollywood",
"brandCode": "CI",
"brandName": "Comfort",
"productName": "Inn",
"address": {
"line1": "2717 West Sunset Blvd.",
"line2": null,
"city": "Los Angeles",
"subdivision": "CA",
"postalCode": "90026",
"country": "US"
},
"latitude": 34.080911,
"longitude": -118.270406,
"ratingValue": 3.9,
"ratingMax": 5,
"reviews": 1281,
"recommends": 992,
"status": "ACTIVE",
"currencyCode": "USD",
"lowestRateBeforeTax": 129,
"lowestRateAfterTax": 147.06,
"memberRateAfterTax": 132.35,
"discountPercentage": 10,
"amenities": ["Premium Free WiFi", "Free Deluxe Continental Breakfast", "..."],
"images": ["https://www.choicehotels.com/hoteldam/ca/ca785/images/480/CA785TWILIGHT1_1.jpg", "..."],
"phone": null,
"description": null,
"sourceUrl": "https://www.choicehotels.com/california/los-angeles/hotels",
"scrapedAt": "2026-07-16T04:00:00.000Z"
}

Key output fields

FieldDescription
hotelCodeChoice Hotels property code (e.g. CA785)
name / brandName / productNameHotel name and brand
address / latitude / longitudeFull address and coordinates
ratingValue / ratingMax / reviews / recommendsGuest rating, scale, review count, recommend count
lowestRateBeforeTax / lowestRateAfterTaxCurrent public starting nightly rate (default 1-night stay; not date-specific)
memberRateAfterTax / discountPercentageMember starting price and its discount
currencyCodeRate currency
amenitiesReadable amenity labels
imagesHotel image URLs
statusProperty status (e.g. ACTIVE)
sourceUrlThe search page this hotel came from

FAQ

How many hotels do I get per search URL? All hotels within the search radius, which auto-expands to fill results — often 40+ from a single city page. Set maxItems to cap billing.

Why are phone and description null? Choice Hotels does not include those on its search pages (only on the bot-walled per-hotel detail API), so the actor surfaces the fields as null rather than fetching an unreliable extra page. Everything else — address, geo, rating, amenities, rates — is present.

Do I need a proxy? Yes, a residential proxy is strongly recommended and the default. Choice Hotels uses Akamai bot protection that flags datacenter IPs quickly; the actor rotates the residential IP automatically when it detects a challenge.

Can I set check-in / check-out dates or guest counts to get dated pricing? No. Choice Hotels' search page always renders the current starting rate for a default one-night stay — it does not re-price the page for dates, guests, or amenity filters passed in the URL. Those filters are applied by a separate, bot-protected pricing API that this actor intentionally does not use. So the rate fields are a live "from $X / night" figure, not a quote for a specific stay. If you need dated, per-guest availability quotes, that's a different (heavier) build — reach out via the Issues tab to discuss.

Do amenity / pet-friendly / "top-rated" filters work? Those are applied by the same bot-protected API, not by the search page itself, so the actor returns the full hotel set for the city regardless. You can filter the results yourself on the amenities, ratingValue, and brandName fields in the output, or narrow the input to a single brand.

Which brands are covered? All Choice Hotels brands appear on the all-brands city page; use a brand-filtered URL (e.g. /comfort-inn-hotels) or the brand location field to narrow to one.

Support

  • Issues tab — fastest way to report a problem or request a field; I usually respond within 24 hours.
  • The actor self-reports failed runs to me automatically, so breakages are often being fixed before you write in.

Additional services

Need scheduled rate monitoring, nationwide coverage from the Choice Hotels sitemap, a private variant, or a scraper for another hotel brand (Marriott, Hilton, IHG, Wyndham)? Reach out via the Issues tab or my Apify profile.

Explore more scrapers

Check my Apify profile for more scrapers — travel (Expedia, Booking), real estate (Zillow, Realtor, Rightmove, ImmoScout24, Idealista), jobs (LinkedIn, Indeed, Glassdoor), reviews (Trustpilot), social (Telegram, WhatsApp channels), and many more.

⚠️ Disclaimer

This actor collects only publicly available data from Choice Hotels' public search-results pages — the same information any visitor sees in a browser. It does not access private data, does not log in, and does not place bookings. You are responsible for how you use the data: comply with Choice Hotels' Terms of Service, applicable data-protection laws (GDPR, CCPA), and platform policies in your jurisdiction. This actor is not affiliated with or endorsed by Choice Hotels International.

SEO Keywords

choice hotels scraper, choicehotels.com scraper, scrape choice hotels, hotel rates scraper, comfort inn scraper, quality inn scraper, hotel price scraper, hotel data scraper, hotel amenities scraper, hotel rating scraper, choice hotels api, scrape hotel prices, hotel rate monitoring, hotel listing scraper, comfort suites scraper, sleep inn scraper, clarion scraper, econo lodge scraper, rodeway inn scraper, hotel competitive intelligence