The SaaS edition is an optional self-hosted Google Maps scraping platform for teams and automation workflows. It adds REST API access, API keys, admin UI, job queue, workers, and cloud deployment on top of the scraper.
Use the SaaS edition when you need:
- Multiple users or API clients
- API keys for controlled access
- Admin screens for jobs, workers, and settings
- Queue-based scraping with workers
- A deployable scraping API on your own infrastructure
For a single local scrape to CSV or JSON, start with the main README quick start or recipes.
Requirements: Docker installed and running.
The provisioning wizard supports VPS, DigitalOcean, and Hetzner deployments. If you plan to deploy on a new cloud account, using these links helps fund project maintenance:
| Provider | Link |
|---|---|
| DigitalOcean | Create account / deploy |
| Hetzner | Create account / deploy |
curl -fsSL https://raw.githubusercontent.com/gosom/google-maps-scraper/main/PROVISION | shWalkthroughs:
The interactive wizard will guide you through:
- Docker image setup (build your own or use the public image)
- Cloud provider selection (VPS, DigitalOcean, or Hetzner)
- Database creation
- Deployment and admin user creation
State is saved to ~/.gmapssaas/ so you can resume if interrupted.
After the initial deployment, push updates with:
curl -fsSL https://raw.githubusercontent.com/gosom/google-maps-scraper/main/PROVISION | sh -s updateAll endpoints require an API key (X-API-Key header). Create keys from the admin UI.
# Submit a scrape job
curl -X POST https://your-server/api/v1/scrape \
-H "X-API-Key: your-api-key" \
-H "Content-Type: application/json" \
-d '{"keyword": "restaurants in New York", "lang": "en", "max_depth": 10}'
# List jobs
curl https://your-server/api/v1/jobs?state=completed \
-H "X-API-Key: your-api-key"
# Get job results
curl https://your-server/api/v1/jobs/{job_id} \
-H "X-API-Key: your-api-key"Full Swagger docs available at /swagger/ on your deployed instance.
Available at /admin after login. Manage API keys, provision workers, monitor jobs, and configure 2FA.
make saas-dev # Start local dev environment (Postgres + hot reload)
# Visit http://localhost:8080/admin (admin / 1234#abcd)
make saas-dev-stop # Stop
make saas-dev-reset # Reset all data