Google Maps Business Hours Scraper avatar

Google Maps Business Hours Scraper

Pricing

from $3.00 / 1,000 results

Go to Apify Store
Google Maps Business Hours Scraper

Google Maps Business Hours Scraper

Extract structured opening hours for all 7 days plus live open/closed status from any Google Maps place page. Supports batch input of multiple place URLs.

Pricing

from $3.00 / 1,000 results

Rating

0.0

(0)

Developer

Crawler Bros

Crawler Bros

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

3 days ago

Last modified

Share

Extract structured opening hours for all 7 days and the live open/closed status from any Google Maps place page — in one click.

What It Does

Provide one or more Google Maps place URLs and this actor returns:

  • Structured hours for every day of the week (open time, close time, or "closed")
  • Live open/closed status (isOpenNow) at the moment of scraping
  • Inline status badge like "Open - Closes 11 PM" (hoursStatus)
  • Next open / next close computed in the business's local timezone — useful for "closes in 2 hours" UX
  • Human-readable countdown such as "Closes in 2 hours" or "Opens in 3 days"
  • Weekly summary: is24Hours, totalHoursPerWeek, and a weeklyPattern (e.g. "Mon-Fri 9 AM - 5 PM, Sat-Sun closed")
  • Holiday / special hours when Google flags a day as "Hours might differ"
  • Temporarily closed badge detection
  • Business location (lat/lng) and IANA timezone
  • Raw opening hours text as shown on the place page
  • Place ID for cross-referencing with the Google Maps API

Use Cases

  • Build a database of business hours across many locations
  • Monitor schedule changes for franchise locations
  • Power local-SEO dashboards with up-to-date hours
  • Feed hours data into CRMs, booking tools, or notification systems

Input

FieldTypeDescription
placeUrlStringGoogle Maps URL of a single place
placeUrlsArray of stringsScrape multiple places in one run
proxyConfigurationObjectApify proxy settings (recommended)

Example input:

{
"placeUrl": "https://www.google.com/maps/place/Starbucks/@40.7127281,-74.0060152,17z/"
}

Batch input:

{
"placeUrls": [
"https://www.google.com/maps/place/Starbucks/@40.7127281,-74.0060152,17z/",
"https://www.google.com/maps/place/McDonald%27s/@40.7580,−73.9855,17z/"
],
"proxyConfiguration": { "useApifyProxy": true }
}

Tip: Copy the URL directly from the address bar after opening a place on Google Maps.

Output

Each place produces one dataset record:

{
"businessName": "Starbucks",
"placeId": "0x89c259a15b1ac3ad:0x9a0c4ba6e15b7f3",
"placeUrl": "https://www.google.com/maps/place/Starbucks/@40.7127281,-74.0060152,17z/",
"location": { "lat": 40.7127281, "lng": -74.0060152 },
"isOpenNow": true,
"openingHoursText": "Open · Closes 9 PM",
"hoursStatus": "Open - Closes 9 PM",
"hours": {
"monday": { "open": "5:30 AM", "close": "9:00 PM" },
"tuesday": { "open": "5:30 AM", "close": "9:00 PM" },
"wednesday": { "open": "5:30 AM", "close": "9:00 PM" },
"thursday": { "open": "5:30 AM", "close": "9:00 PM" },
"friday": { "open": "5:30 AM", "close": "9:00 PM" },
"saturday": { "open": "6:00 AM", "close": "8:00 PM" },
"sunday": { "closed": true }
},
"weeklyPattern": "Mon-Fri 5:30 AM - 9:00 PM, Sat 6:00 AM - 8:00 PM, Sun closed",
"totalHoursPerWeek": 91.5,
"holidayHours": [
{ "day": "friday", "label": "Juneteenth", "note": "Hours might differ", "open": "5:30 AM", "close": "8:00 PM" }
],
"timezone": "America/New_York",
"currentLocalTime": "2026-06-17T14:23:11-04:00",
"nextOpenTime": "2026-06-18T05:30:00-04:00",
"nextCloseTime": "2026-06-17T21:00:00-04:00",
"timeUntilNextChange": "Closes in 6 hours",
"scrapedAt": "2026-06-17T18:23:11+00:00"
}

Hours object format

Each day in hours is one of:

FormatMeaning
{"open": "9:00 AM", "close": "5:00 PM"}Regular open hours
{"closed": true}The place is closed that day
{"open": "12:00 AM", "close": "11:59 PM", "is24Hours": true}Open 24 hours
{"raw": "..."}Unusual format — raw text preserved

Fields with no data are never included in the output (no null values).

FAQ

Which Google Maps URLs are supported? Any google.com/maps/place/... URL. Copy it from the browser address bar after opening a place card.

Can I scrape hundreds of places? Yes — use the placeUrls array. The actor processes them sequentially with a short delay between requests. For very large batches, split into separate runs.

Why might hours be missing? Google Maps occasionally renders hours behind an additional interaction or varies the page structure by location/IP. When hours cannot be extracted the hours field is omitted from the record; openingHoursText may still be present.

Is a proxy required? Not required, but strongly recommended for reliability. Enable "useApifyProxy": true in proxyConfiguration to reduce the chance of rate-limiting.

Does this scrape the Google Maps API? No. It uses a headless browser (Playwright + Chromium) to load the public-facing Google Maps web page, exactly as a human user would.

What is placeId? The internal Google Maps identifier extracted from the URL. It matches the place_id returned by the Google Maps Places API and can be used to query additional data from Google's API.

Data Source

Data is extracted from the public Google Maps website (google.com/maps). No Google API key or login is required.

🗺️ Complete Google Maps Scraper Suite

This actor is part of a comprehensive Google Maps data extraction toolkit by crawlerbros. All actors run on the free Apify plan, use no proxy by default, and return clean, structured data.

ActorWhat it does
🏢 Google Maps Business ScraperExtract business data — name, address, phone, website, rating, reviews, hours, amenities
Google Maps Reviews ScraperScrape reviews with reviewer Local Guide level, photos, mentioned items, owner replies
📸 Google Maps Photos ScraperExtract all photos from any place — max-resolution URLs, contributor info, categories
📊 Google Maps Popular Times ScraperBusy hours histogram for all 7 days + current busyness + typical visit time
📧 Google Maps Email ExtractorFind business emails + social media links by crawling websites
🗺️ Google Maps Area ScannerGeographic grid scanning — bypass the 120-place limit with bounding box / circle / polygon
💼 Google Maps Leads ScraperB2B lead generation with email + phone enrichment, US states + global countries
🤖 Google Maps MCP ServerUnified MCP server combining search + reviews for AI assistants
🧭 Google Maps Directions ScraperA→B routing — distance, duration, traffic, route alternatives for driving/walking/transit
📍 Google Maps Geocoding ScraperBidirectional geocoding — address ↔ coordinates, with address components
🔗 Google Maps Similar Places Scraper"People also search for" / related place discovery — competitor & alternative finder
🍽️ Google Maps Menu ScraperRestaurant menu items, prices, descriptions, photos
📌 Google Maps Nearby ScraperFind places near a coordinate point — lightweight POI search by category
📋 Google Maps Place List ScraperExtract Google's curated "Top X in Y" lists — best hotels/restaurants/things to do
🌍 Google Maps Timezone ScraperIANA timezone + current local time from coordinates