Sweden Google Business Profile Scraper avatar

Sweden Google Business Profile Scraper

Under maintenance

Pricing

from $0.004 / actor start

Go to Apify Store
Sweden Google Business Profile Scraper

Sweden Google Business Profile Scraper

Under maintenance

Extract Google Business Profile data across Sweden using an adaptive spatial grid. Get business names, addresses, phone numbers, websites, categories, ratings, review counts, and Google CIDs. Covers 33 Swedish industry categories. No Google API key needed. Export to JSON, CSV, or Excel.

Pricing

from $0.004 / actor start

Rating

0.0

(0)

Developer

August Lönn

August Lönn

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

0

Monthly active users

6 days ago

Last modified

Share

Sweden GBP Discovery Scraper

Apify actor that systematically discovers all Google Business Profiles in Sweden using an adaptive spatial grid and Playwright browser automation.

How it works

  1. Input: An array of grid cells, each with coordinates (lat/lng) and a zoom level
  2. For each cell × search term: Opens Google Maps at the specified coordinates, searches with broad Swedish terms
  3. Scrolls through all results to load every listing in the viewport
  4. Extracts business data: name, address, phone, website, placeId, CID, category, rating, review count
  5. Deduplicates across all searches by Google Place ID
  6. Reports saturation: If any search returns ≥120 results (Google's cap), it flags the cell for subdivision

Input

FieldTypeDefaultDescription
cellsArrayrequiredGrid cells: { cellKey, lat, lng, zoom }
searchTermsArray8 Swedish termsBroad search terms for discovery
maxScrollsInteger8Max scrolls per search (each loads ~20 results)
visitDetailPagesBooleantrueClick into each listing for phone/website/CID
languageStringsvGoogle Maps language
maxConcurrencyInteger3Parallel browser pages

Example input

{
"cells": [
{ "cellKey": "stockholm_center", "lat": 59.3293, "lng": 18.0686, "zoom": 14 },
{ "cellKey": "malmo_center", "lat": 55.6049, "lng": 13.0038, "zoom": 14 }
],
"searchTerms": ["företag", "restaurang", "butik"],
"visitDetailPages": true
}

Output

Each discovered business is pushed to the default dataset:

{
"placeId": "ChIJx8uLN7h3X0YR...",
"googleCid": "1234567890",
"name": "Restaurang Example",
"address": "Storgatan 1, 111 23 Stockholm",
"phone": "+46812345678",
"website": "https://example.se",
"latitude": 59.3293,
"longitude": 18.0686,
"category": "Restaurang",
"categories": ["Restaurang"],
"rating": 4.5,
"reviewCount": 123,
"googleMapsUrl": "https://www.google.com/maps/place/...",
"cellKey": "stockholm_center",
"searchTerm": "restaurang",
"resultIndex": 0
}

Search metadata (per cell × term) is stored in the key-value store under SEARCH_META.

Adaptive grid approach

Sweden is divided into ~1,100 quadtree cells where each cell contains ≤80 known businesses. Dense urban areas (Stockholm, Göteborg, Malmö) get small cells at zoom 14; sparse rural areas get large cells at zoom 7-10.

If a search returns ≥120 results (Google Maps' maximum), the orchestrator subdivides that cell into 4 smaller cells and re-queues them.

Coverage: 1,103 cells × 8 terms = 8,824 searches → estimated 300K-500K unique GBPs discovered.

Tech stack

  • Apify SDK + Crawlee — actor lifecycle, dataset storage, request management
  • Playwright — headless Chrome for Google Maps rendering and interaction
  • TypeScript — type-safe extraction logic

Development

cd sweden-gbp-scraper
npm install
npm run dev # Run locally with Apify storage emulation

Deployment

apify login
apify push