# Google Maps Listing Scraper (Germany)

Scrape shop name, ratings, address, etc from Google Maps by keywords.

- Template page: [https://www.octoparse.com/template/google-maps-geschaefte-listing-scraper](https://www.octoparse.com/template/google-maps-geschaefte-listing-scraper)
- Categories: Maps
- Status: `PUBLISHED`
- Run mode: `CLOUD`

## Pricing

Current price: **$0.2/1,000 lines**. Billing is based on output rows; an Octoparse subscription may be required.

## What is an Octoparse template?

An Octoparse template is a ready-to-use scraping workflow with predefined inputs and structured outputs. Use the exact parameter keys below; do not invent parameters.

## Overview

This ready-to-use template collects structured data from listing pages.

## Output

The current workflow extracts 7 fields, including `Adresse`, `Anzahl_der_Bewertungen`, `Keyword`, `Kundenbewertung`, `Main_image`, `Name_des_Ladens`, `Übersicht`.

## Use Cases

- Use structured results for research, comparison, and monitoring.
- Collect rows without building the extraction workflow from scratch.
- Combine results with other templates for downstream enrichment.
- Review a representative result before starting a large batch.

## Why Octoparse

- **No coding required:** complete Keywords (up to 10,000), Number of Pages (up to 20) and start the template in cloud mode.
- **Flexible export:** review and export results as CSV, Excel, or JSON.

## Input

### Keywords (up to 10,000)

Required. Keyword Constraints: minItems=1; maxItems=10000; items.minLength=1; items.maxLength=10000.

### Number of Pages (up to 20)

Required. 1 = 20 results, 2 = 40 results, 3 =80 results... up to 20 = 400 results per keyword. Constraints: minimum=1, maximum=20.

## How to Use

# Google Maps Listing Scraper (Germany)

Collects shop name, ratings, address, and other listing fields from Google Maps by keywords. Data source: [Google](https://www.google.de/maps/).

## Pricing

$0.2 / 1,000 lines. Billing is based on the number of output lines produced by the task.

## Input

- **Keywords (up to 10,000)** (required): Enter one or more values, one per line.
- **Number of Pages (up to 20)** (required): Enter a number from 1 to 20.

## How to Use

1. Open the template and select **Try it** or **Start**.
2. Complete the input fields listed above.
3. Run the task in the cloud.
4. Review the output rows and export or process the structured data.

## Output Fields

Returns these per-record fields: `Keyword`, `Name_des_Ladens`, `Kundenbewertung`, `Anzahl_der_Bewertungen`, `Adresse`, `Übersicht`, `Main_image`.

## Limitations

- Collects only the fields listed above from listing pages; it does not add data that Google does not display.
- `Adresse`, `Übersicht`, and `Main_image` can be empty when the source record does not provide them.

## Tips

- Start with one or a few inputs and review the returned rows before scaling the task.
- Use the most specific valid Keywords (up to 10,000) to reduce unrelated or duplicate records.
- Use a stable URL or identifier from the output fields as the deduplication key when available.

## Scheduling, Export, and API

- Run the template in the cloud without keeping a local computer online.
- Export rows to CSV, Excel, JSON, databases, or cloud storage, or send them to reporting and AI workflows through Octoparse APIs.
- Schedule recurring runs and reuse data through Octoparse OpenAPI or the [AgentTools API](https://www.octoparse.com/docs/en/api-reference/agenttools-api/search-templates).
- Scheduling and API access may require a paid Octoparse plan.

## Limitations

Results depend on what the source site exposes at run time. Fields may be empty when a source page does not provide a value. The template enforces the input limits shown above.

## Tips

Use specific, valid inputs and review a representative result before starting a large batch. Remove duplicate inputs when repeated records are not needed.

## FAQ

### What do I need to enter?

Use the exact inputs and limits listed above.

### What data does this template return?

See Output Schema below; availability can vary by source record.

### How is usage billed?

See the Pricing section above for current pricing and billing details.

## Related Templates

- [Google Maps Store Listing Scraper (Japan)](https://www.octoparse.com/template/google-maps-store-listing-scraper)
- [Google Maps Listing Scraper (Spanish)](https://www.octoparse.com/template/google-maps-scraper-tiendas-detalles-palabrasclave)
- [Google Maps Listing and Details Page Scraper (Cloud)](https://www.octoparse.com/template/google-maps-listing-and-details-page-scraper)
- [eBay Product Listing Scraper (for Germany)](https://www.octoparse.com/template/ebay-produkt-listing-scraper)
- [Google Maps Listings Scraper (by Keywords)](https://www.octoparse.com/template/google-maps-scraper-listing-page-by-keyword)

## Input Schema

```json
{
  "title": "Google Maps Listing Scraper (Germany) input",
  "description": "Input parameters configured for the current published template version.",
  "type": "object",
  "schemaVersion": 1,
  "additionalProperties": false,
  "properties": {
    "keywords": {
      "title": "Keywords (up to 10,000)",
      "description": "Keyword",
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 10000
      },
      "minItems": 1,
      "maxItems": 10000,
      "x-octoparse": {
        "apiEnabled": true
      }
    },
    "number_of_Pages": {
      "title": "Number of Pages (up to 20)",
      "description": "1 = 20 results, 2 = 40 results, 3 =80 results... up to 20 = 400 results per keyword.",
      "type": "integer",
      "minimum": 1,
      "maximum": 20,
      "x-octoparse": {
        "apiEnabled": true
      }
    }
  },
  "required": [
    "keywords",
    "number_of_Pages"
  ]
}
```

## Input JSON Example

Example 1

```json
{
  "keywords": [
    "supermarket",
    "shop"
  ],
  "number_of_Pages": 2
}
```

Example 2

```json
{
  "keywords": [
    "Sanitärinstallateur in 74821 Mosbach, Baden-Württemberg",
    "Heizung Sanitär in 74821 Mosbach, Baden-Württemberg",
    "Elektriker in 74821 Mosbach, Baden-Württemberg",
    "Schreinerei in 74821 Mosbach, Baden-Württemberg",
    "Malerbetrieb in 74821 Mosbach, Baden-Württemberg"
  ],
  "number_of_Pages": 2
}
```

Example 3

```json
{
  "keywords": [
    "supermarket"
  ],
  "number_of_Pages": 1
}
```

Example 4

```json
{
  "keywords": [
    "supermarket"
  ],
  "number_of_Pages": 1
}
```

Example 5

```json
{
  "keywords": [
    "restaurant"
  ],
  "number_of_Pages": 1
}
```


## Output Schema

```json
{
  "schemaVersion": 1,
  "type": "object",
  "properties": {
    "Adresse": {
      "type": "string",
      "description": ""
    },
    "Anzahl_der_Bewertungen": {
      "type": "string",
      "description": ""
    },
    "Keyword": {
      "type": "string",
      "description": ""
    },
    "Kundenbewertung": {
      "type": "string",
      "description": ""
    },
    "Main_image": {
      "type": "string",
      "description": ""
    },
    "Name_des_Ladens": {
      "type": "string",
      "description": ""
    },
    "Übersicht": {
      "type": "string",
      "description": ""
    }
  },
  "title": "Google Maps Listing Scraper (Germany) output",
  "description": "Initial output fields derived from the current published implementation. Field descriptions are maintained by Data Center; production field names and types should be refreshed from recent successful runs.",
  "additionalProperties": false
}
```

## Output Example

Example 1

```json
{
  "Adresse": "Supermarkt·Eisenacher Landstraße 7",
  "Anzahl_der_Bewertungen": "608",
  "Keyword": "supermarket",
  "Kundenbewertung": "4.4",
  "Main_image": "https://lh3.googleusercontent.com/grass-cs/AABkmLe2o2mcnnCPZ-T4Zn_lxjPo4RBBmG5CFaj_pp7pYWQmWgWtLKfhT-q7aM7gMidOmb7yKlC_jVz_doHO8Qkywgbnqw1yxf151AvOdeAXxseK-Ds3eS9R_Myo6s4V327EJtMq9OfraQ=w408-h306-k-no",
  "Name_des_Ladens": "EDEKA Andreas Motz",
  "Übersicht": "null"
}
```

Example 2

```json
{
  "Adresse": "Kunstgalerie·Hauptstraße 40A",
  "Anzahl_der_Bewertungen": "2",
  "Keyword": "Artisans in obrigheim",
  "Kundenbewertung": "5",
  "Main_image": "https://lh3.googleusercontent.com/gps-cs-s/AHRPTWkHmMuIusGIgbnK2dbG_uFpJ-rH9U5ZypaFv8b7tTe0jGZej3znNPLJ68OIM_KJVgau5t7yRxX2aJmhGBNJ1I-hq2PaFTMoCOz-jifgHuIjlViTj1lc7zQa_wzKD4Uz44mcCJAdyg=w620-h240-k-no",
  "Name_des_Ladens": "Kunstbackstube Mosbach Obrigheim",
  "Übersicht": "None"
}
```

Example 3

```json
{
  "Adresse": "Supermarkt·Rugenparkstrasse 1",
  "Anzahl_der_Bewertungen": "2413",
  "Keyword": "supermarket",
  "Kundenbewertung": "4.4",
  "Main_image": "https://lh3.googleusercontent.com/gps-cs-s/AHRPTWl2tjLjovTb5GoqIy71nZIS5sY1f07M7fedKdUjMKE2OyBGkRLrbbM4QYT8E-cDvT42s51P1d3aTYOQMd3-FKqjKXBpdBpFnsgCf6RkF965mzzmxl0JeWolHSN7eOlrfp6VMEFbL_bBVel1=w426-h240-k-no",
  "Name_des_Ladens": "Migros-Supermarkt - Interlaken",
  "Übersicht": "None"
}
```

Example 4

```json
{
  "Adresse": "Supermarkt·Rugenparkstrasse 1",
  "Anzahl_der_Bewertungen": "2411",
  "Keyword": "supermarket",
  "Kundenbewertung": "4.4",
  "Main_image": "https://lh3.googleusercontent.com/gps-cs-s/AHRPTWko3Wwfqli4M4vEReS0wmUqdE3ntuToOvf4ugpncQ8pps0aixTi7hPX7oSZprmbudjl9ffyQDf2Y1hJ_IxsVN52-ZdbZ1SuoL0NFZZYYX-af2ggefXellU4Ankf8bx-0xuHFihlRyltPpQC=w426-h240-k-no",
  "Name_des_Ladens": "Migros-Supermarkt - Interlaken",
  "Übersicht": "None"
}
```

Example 5

```json
{
  "Adresse": "Restaurant·Michelfeld 8c",
  "Anzahl_der_Bewertungen": "725",
  "Keyword": "restaurant",
  "Kundenbewertung": "4.7",
  "Main_image": "https://lh3.googleusercontent.com/gps-cs-s/AHRPTWlsjZR3k6vlekJx3ODqEp53xDptyBaA9Doqohq2yPwgEerFxYkppSZPl_4drgvmkWWR6s4w-LVjdNlHJs5YnVG4TiIh6tXboGvm84Y7dYU5DmVOBuZFE1h8NyiDdk1Rvwwokts5=w426-h240-k-no",
  "Name_des_Ladens": "Restaurant Blockhaus",
  "Übersicht": "Hunde erlaubt"
}
```

## API

`POST https://openapi.octoparse.com/api/agentTools/executeTask`

This is the OpenAPI Agent Tools `executeTask` endpoint. Authenticate with a Bearer token.

Request body:

`templateName` is the template slug; `parameters` is a JSON object string whose keys match Input Schema; `taskName`, `idempotencyKey`, and `maxCollectedRows` are optional.

Obtain a token:

```http
POST https://openapi.octoparse.com/token
Content-Type: application/json

{
  "username": "YOUR_USERNAME",
  "password": "YOUR_PASSWORD",
  "grant_type": "password"
}
```

Use `data.access_token` as `Authorization: Bearer <token>`. After starting, poll `getTaskStatus` and export with `exportData`.

```json
{
  "templateName": "google-maps-geschaefte-listing-scraper",
  "taskName": "Google Maps Listing Scraper (Germany)",
  "parameters": "{\"keywords\":[\"supermarket\",\"shop\"],\"number_of_Pages\":2}"
}
```

## Python Example

```python
import json
import requests

OPENAPI_BASE = "https://openapi.octoparse.com"
ACCESS_TOKEN = "YOUR_ACCESS_TOKEN"

parameters = json.loads("{\"keywords\":[\"supermarket\",\"shop\"],\"number_of_Pages\":2}")

response = requests.post(
    f"{OPENAPI_BASE}/api/agentTools/executeTask",
    headers={
        "Authorization": f"Bearer {ACCESS_TOKEN}",
        "Content-Type": "application/json",
    },
    json={
        "templateName": "google-maps-geschaefte-listing-scraper",
        "taskName": "Google Maps Listing Scraper (Germany)",
        "parameters": json.dumps(parameters, ensure_ascii=False),
    },
    timeout=60,
)
print(response.status_code)
print(response.json())
```

## HTTP/cURL Example

```bash
curl -X POST "https://openapi.octoparse.com/api/agentTools/executeTask" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  --data-binary @- <<'JSON'
{
  "templateName": "google-maps-geschaefte-listing-scraper",
  "taskName": "Google Maps Listing Scraper (Germany)",
  "parameters": "{\"keywords\":[\"supermarket\",\"shop\"],\"number_of_Pages\":2}"
}
JSON
```

## MCP Setup

Connect an MCP-compatible AI client to `https://mcp.octoparse.com` using browser OAuth or an Octoparse API key. Find `google-maps-geschaefte-listing-scraper`, inspect its inputs, create a cloud task with the exact Input Schema keys, and export JSON results.

## Machine-readable Resources

- [Template contract](https://www.octoparse.com/templates/google-maps-geschaefte-listing-scraper.json)
- [Manifest](https://www.octoparse.com/templates/google-maps-geschaefte-listing-scraper-manifest.json)
