Google Maps Global 🗺️ Places & Reviews — $3/1K
Pricing
from $3.00 / 1,000 place scrapeds
Google Maps Global 🗺️ Places & Reviews — $3/1K
Scrape Google Maps businesses in ANY country. Extract name, address, phone, rating, reviews, category, postal code (ZIP/CEP), country and city. Search by keyword + city + country with lower-cost default proxy, automatic residential fallback and multi-language interface support.
Pricing
from $3.00 / 1,000 place scrapeds
Rating
0.0
(0)
Developer
viralanalyzer
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 hours ago
Last modified
Categories
Share
🌍 Google Maps Scraper — Global Businesses + Reviews (Any Country)
🔗 View on Apify Store | 🇺🇸 English | 🇧🇷 Português
Scrape Google Maps businesses in ANY country with full details, reviews, ratings, and postal code extraction. Search by keyword + city + country, extract business information, and collect customer reviews with sentiment analysis.
✨ Features
- 🔍 Search by keyword + city + country — "restaurants Paris France", "dentistas Madrid España", "pizza Tokyo Japan"
- 🌐 Global coverage — works for any country with 11 interface languages (en, pt-BR, es, fr, de, it, ja, zh, ar, hi, ru)
- 📋 Full business data — Name, address, phone, rating, category, price level
- 📍 Country + city detection — ISO 3166-1 alpha-2 country code and city derived from payload, query, or address
- 📮 Postal code extraction — ZIP/CEP extracted from the Google Maps page payload with country-aware regex fallback (no external API needed)
- ⭐ Review extraction — Best-effort extraction of author, rating, text, date (see Limitations)
- 💬 Sentiment analysis — Score (-1.0 to 1.0) + label per review
- 🛡️ Validated output — Every output validated before delivery
- 🛰️ Automatic residential fallback — Retries with residential proxy automatically when Google returns stripped pages or zero results
- 💰 Pay per business — Only $3 per 1,000 businesses
🧭 Capabilities & Limits
| Discover by | Supported? | Notes |
|---|---|---|
Keyword + city + country (queries) | ✅ Yes | Primary input, e.g. restaurants Paris France |
| Place ID / Maps URL list | ❌ No | Search queries only |
| Reviews | ⚠️ Best-effort | Business fields are reliable; review text is often stripped by Google |
| External ZIP API | ❌ No | Postal code comes from the Maps payload or the address |
📥 Input
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
queries | string[] | ✅ | — | Search queries ("keyword + city + country") |
maxPlaces | integer | ❌ | 10 | Max businesses per query |
maxReviews | integer | ❌ | 5 | Max reviews per business (0 = none) |
language | string | ❌ | "en" | Interface language (en, pt-BR, es, fr, de, it, ja, zh, ar, hi, ru) |
region | string | ❌ | "" | Optional country hint used as fallback for country detection |
enrichZipCode | boolean | ❌ | true | Extract postal code from page payload + address |
proxyConfig | object | ❌ | Apify Proxy | Proxy settings. Lower-cost proxy is the default; residential is used automatically as fallback |
Input Example
{"queries": ["restaurants Paris France","dentists Madrid Spain","pizza Tokyo Japan","hotels Berlin Germany"],"maxPlaces": 10,"maxReviews": 5,"language": "en","enrichZipCode": true}
📤 Output
Every business includes these fields:
| Field | Type | Description |
|---|---|---|
business_name | string | Business name |
place_id | string | Google Maps Place ID |
address | string | Full address |
zip_code | string | Postal code (ZIP/CEP) |
postal_code | string | Postal code (alias of zip_code) |
country | string | Detected country (ISO 3166-1 alpha-2) |
city | string | Detected city |
phone | string | Phone number |
rating | number | Google rating (1.0-5.0) |
total_reviews | number | Total review count |
category | string | Business category |
price_level | string | Price level ($, $$, $$$) |
url | string | Google Maps URL |
website | string | Business website |
reviews | object[] | Extracted reviews (see below) |
Review Fields
| Field | Type | Description |
|---|---|---|
author | string | Reviewer name |
rating | number | Review rating (1-5) |
text | string | Review text |
date | string | Review date |
sentiment_score | number | Sentiment score (-1.0 to 1.0) |
sentiment_label | string | very_positive / positive / neutral / negative / very_negative |
language | string | Detected language (en, pt-BR, es, fr, de, it, ja, zh, ar, hi, ru) |
topics | string[] | Detected topics (food, service, price, etc.) |
Output Example
{"business_name": "Le Comptoir du Relais","place_id": "ChIJF7Y3Y7wC5kcR8LzW2GpM1qk","address": "9 Carrefour de l'Odéon, 75006 Paris, France","zip_code": "75006","postal_code": "75006","country": "FR","city": "Paris","phone": "+33 1 44 27 07 97","rating": 4.6,"total_reviews": 1853,"category": "French restaurant","price_level": "$$$","url": "https://www.google.com/maps/place/...","reviews": [{"author": "John Smith","rating": 5,"text": "Best bistro in Paris, amazing duck confit!","date": "1 month ago","sentiment_score": 1.0,"sentiment_label": "very_positive","language": "en","topics": ["food"]}]}
📋 Use Cases
- Market Research — Map competitors in any city/country by category
- Reputation Monitoring — Track reviews and ratings over time
- Lead Generation — Extract business contact info (phone, address)
- Expansion Analysis — Compare ratings across cities and countries
- Customer Insights — Analyze review topics and sentiment
⚠️ Limitations
- Review text extraction is best-effort. Google Maps actively blocks automated review extraction with aggressive anti-bot measures. Business data (name, address, phone, rating, total review count, category) is extracted reliably. Individual review text may not always be available.
- Total review count is always extracted from the business page (e.g., "1,853 reviews") even when individual review text cannot be retrieved.
- Geographic entities (cities, regions) that appear in search results are automatically filtered out.
- Postal code extraction uses the Google Maps page payload first; if the payload does not expose it, a country-aware regex falls back to the address. Some addresses legitimately have no postal code — in that case
zip_codeisnull(honest, never fabricated). - Country detection is derived from the payload, the query, or the address. If your query mixes languages, prefer including the country name explicitly (e.g., "restaurants Paris France").
❓ FAQ
Q: Does this need a Google API key? A: No! This actor works without any Google API credentials.
Q: What proxy does it need? A: The default is the lower-cost Apify proxy. The actor automatically retries with residential proxy when Google starts returning stripped pages or zero results.
Q: Can I search in any city in any country? A: Yes! Just use the format "keyword + city + country" in your queries.
Q: Which languages are supported? A: 11 interface languages: en, pt-BR, es, fr, de, it, ja, zh, ar, hi, ru.
Q: Why are reviews sometimes empty? A: Google Maps uses aggressive anti-bot measures that strip review content from automated browsers. Business data and total review counts are always extracted reliably.
Q: Does it extract the postal code for every business?
A: Best-effort, without any external API. When the payload or address exposes a postal code it is extracted; otherwise zip_code is null.
Q: What sentiment labels are available? A: Five levels from very_positive to very_negative, based on review context.
💰 Pricing
Pay Per Event + platform usage (you pay compute, traffic and Apify proxy):
| Event | Cost |
|---|---|
apify-actor-start | $0.00005 (platform default; 1× per GB) |
place-scraped | $0.003 per valid business ($3.00 / 1,000) |
Examples: 100 businesses = $0.30 in events · 1,000 = $3.00, plus the run's CU/proxy on your invoice. Diagnostic rows are not charged.
🔗 Related Actors
- CNPJ Enricher — Enrich with company data
- YouTube Fast Scraper — YouTube video metrics
- TikTok Viral Scanner — TikTok profile data
- Instagram Keyword Search — posts by keyword
- Instagram Transcript — native Reel captions
- Instagram Reels Scraper — Instagram metrics
📝 Changelog
v1.1 (Current)
- Incremental
place-scrapedcharge (timeout no longer drops PPE) - Default run 2048 MB / 600 s (was 1024 / 240 remotely)
- README: client-paid platform usage
v1.0
- ✅ Global coverage — search by keyword + city + country
- ✅ 11 interface languages
- ✅ Full business data extraction (name, address, phone, rating, total reviews, category)
- ✅ Best-effort review extraction with sentiment analysis
- ✅ Postal code extraction from page payload + country-aware regex (no external API)
- ✅ Country (ISO 3166-1 alpha-2) + city detection
- ✅ Geographic entity filtering (skips cities/regions)
- ✅ Stealth browsing with lower-cost default proxy + automatic residential fallback
- ✅ Diagnostic guide item when a run returns zero results after residential retry
🌍 Google Maps Scraper — Empresas Globais + Avaliações (Qualquer País)
🇺🇸 English | 🇧🇷 Português
Extraia dados de empresas do Google Maps em QUALQUER país com detalhes completos, avaliações, notas e extração de código postal. Busque por palavra-chave + cidade + país, extraia informações do negócio e colete avaliações de clientes com análise de sentimento.
✨ Funcionalidades
- 🔍 Busca por palavra-chave + cidade + país — "restaurants Paris France", "dentistas Madrid España", "pizza Tokyo Japan"
- 🌐 Cobertura global — funciona para qualquer país com 11 idiomas de interface (en, pt-BR, es, fr, de, it, ja, zh, ar, hi, ru)
- 📋 Dados completos — Nome, endereço, telefone, nota, categoria, faixa de preço
- 📍 Detecção de país + cidade — código ISO 3166-1 alpha-2 e cidade derivados do payload, da query ou do endereço
- 📮 Extração de código postal — ZIP/CEP extraído do payload da página do Google Maps com fallback de regex por país (sem API externa)
- ⭐ Extração de avaliações — Extração best-effort de autor, nota, texto, data (veja Limitações)
- 💬 Análise de sentimento — Score (-1.0 a 1.0) + label por avaliação
- 🛡️ Output validado — Todo output validado antes da entrega
- 🛰️ Fallback residencial automático — Tenta novamente com proxy residencial automaticamente quando o Google devolve página capada ou zero resultados
- 💰 Pague por empresa — Apenas $3 por 1.000 empresas
📥 Entrada
| Parâmetro | Tipo | Obrigatório | Padrão | Descrição |
|---|---|---|---|---|
queries | string[] | ✅ | — | Buscas ("palavra-chave + cidade + país") |
maxPlaces | inteiro | ❌ | 10 | Máx empresas por busca |
maxReviews | inteiro | ❌ | 5 | Máx avaliações por empresa (0 = nenhuma) |
language | string | ❌ | "en" | Idioma da interface (en, pt-BR, es, fr, de, it, ja, zh, ar, hi, ru) |
region | string | ❌ | "" | Dica opcional de país usada como fallback na detecção |
enrichZipCode | boolean | ❌ | true | Extrair código postal do payload + endereço |
proxyConfig | objeto | ❌ | Apify Proxy | Config de proxy. O modo padrão é mais barato; residencial é usado automaticamente como fallback |
Exemplo de Entrada
{"queries": ["restaurants Paris France","dentists Madrid Spain","pizza Tokyo Japan","hotels Berlin Germany"],"maxPlaces": 10,"maxReviews": 5,"language": "en","enrichZipCode": true}
📤 Saída
Cada empresa inclui estes campos:
| Campo | Tipo | Descrição |
|---|---|---|
business_name | string | Nome da empresa |
place_id | string | Google Maps Place ID |
address | string | Endereço completo |
zip_code | string | Código postal (ZIP/CEP) |
postal_code | string | Código postal (alias de zip_code) |
country | string | País detectado (ISO 3166-1 alpha-2) |
city | string | Cidade detectada |
phone | string | Telefone |
rating | número | Nota Google (1.0-5.0) |
total_reviews | número | Total de avaliações |
category | string | Categoria da empresa |
price_level | string | Faixa de preço ($, $$, $$$) |
url | string | URL do Google Maps |
website | string | Site da empresa |
reviews | objeto[] | Avaliações extraídas (ver abaixo) |
Campos da Avaliação
| Campo | Tipo | Descrição |
|---|---|---|
author | string | Nome do avaliador |
rating | número | Nota (1-5) |
text | string | Texto da avaliação |
date | string | Data |
sentiment_score | número | Score de sentimento (-1.0 a 1.0) |
sentiment_label | string | very_positive / positive / neutral / negative / very_negative |
language | string | Idioma detectado (en, pt-BR, es, fr, de, it, ja, zh, ar, hi, ru) |
topics | string[] | Tópicos detectados (food, service, price, etc.) |
📋 Casos de Uso
- Pesquisa de mercado — Mapeie concorrentes em qualquer cidade/país por categoria
- Monitoramento de reputação — Acompanhe avaliações e notas ao longo do tempo
- Geração de leads — Extraia contatos (telefone, endereço)
- Análise de expansão — Compare notas entre cidades e países
- Insights de clientes — Analise tópicos e sentimento das avaliações
⚠️ Limitações
- Extração de texto de avaliações é best-effort. O Google Maps bloqueia ativamente a extração automatizada de avaliações com medidas anti-bot agressivas. Dados de negócios (nome, endereço, telefone, nota, total de avaliações, categoria) são extraídos de forma confiável.
- Contagem total de avaliações é sempre extraída da página da empresa, mesmo quando o texto individual não está disponível.
- Entidades geográficas (cidades, regiões) que aparecem nos resultados são filtradas automaticamente.
- Extração de código postal usa primeiro o payload da página do Google Maps; se o payload não expor, um regex por país faz fallback no endereço. Alguns endereços legitimamente não têm código postal — nesse caso
zip_codeénull(honesto, nunca inventado). - Detecção de país é derivada do payload, da query ou do endereço. Se sua query misturar idiomas, prefira incluir o nome do país explicitamente (ex.: "restaurants Paris France").
❓ Perguntas Frequentes
P: Precisa de chave da API do Google? R: Não! Este actor funciona sem nenhuma credencial de API do Google.
P: Que tipo de proxy precisa? R: O padrão usa o proxy mais barato da Apify. O actor tenta automaticamente com proxy residencial quando o Google devolve página capada ou zero resultados.
P: Posso buscar em qualquer cidade de qualquer país? R: Sim! Use o formato "palavra-chave + cidade + país" nas queries.
P: Quais idiomas são suportados? R: 11 idiomas de interface: en, pt-BR, es, fr, de, it, ja, zh, ar, hi, ru.
P: Por que as avaliações às vezes estão vazias? R: O Google Maps usa medidas anti-bot agressivas que removem conteúdo de avaliações de navegadores automatizados. Dados do negócio e contagens totais são sempre extraídos.
P: O código postal é extraído para toda empresa?
R: Best-effort, sem nenhuma API externa. Quando o payload ou o endereço expõe um código postal ele é extraído; caso contrário zip_code é null.
P: Quais labels de sentimento estão disponíveis? R: Cinco níveis de very_positive a very_negative, baseados no contexto da avaliação.
💰 Preços
Pay Per Event + uso de plataforma (você paga compute, tráfego e proxy Apify):
| Evento | Custo |
|---|---|
apify-actor-start | $0.00005 (default; 1× por GB) |
place-scraped | $0.003 por empresa válida ($3,00 / 1.000) |
🔗 Actors Relacionados
- CNPJ Enricher — Enriquecimento com dados empresariais
- YouTube Fast Scraper — Métricas do YouTube
- TikTok Viral Scanner — Dados do TikTok
- Instagram Reels Scraper — Métricas do Instagram
📝 Changelog
v1.1 (Atual)
- Charge incremental; default 2048 MB / 600 s; usage pago pelo cliente
v1.0
- ✅ Cobertura global — busca por palavra-chave + cidade + país
- ✅ 11 idiomas de interface
- ✅ Extração completa de dados do negócio (nome, endereço, telefone, nota, total de avaliações, categoria)
- ✅ Extração best-effort de avaliações com análise de sentimento
- ✅ Extração de código postal do payload + regex por país (sem API externa)
- ✅ Detecção de país (ISO 3166-1 alpha-2) + cidade
- ✅ Filtro de entidades geográficas (ignora cidades/regiões)
- ✅ Navegação stealth com proxy padrão mais barato + fallback residencial automático
- ✅ Item de guia de diagnóstico quando um run retorna zero resultados após retry residencial