# Bing Maps Business Listings Scraper (`crawlerbros/bing-maps-business-scraper`) Actor

Scrape business listings from Bing Maps. Search for restaurants, shops, hotels, and services by name and location. Returns name, address, phone, website, rating, review count, coordinates, and more

- **URL**: https://apify.com/crawlerbros/bing-maps-business-scraper.md
- **Developed by:** [Crawler Bros](https://apify.com/crawlerbros) (community)
- **Categories:** Automation, Developer tools, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 4 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $3.00 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## Bing Maps Business Listings Scraper

Extract business listings from **Bing Maps** using Playwright browser automation. Search for restaurants, coffee shops, hotels, dentists, or any local business by keyword and location.

> **Note on Bing Maps API:** The official Bing Maps Local Search REST API was retired by Microsoft on August 11, 2025. This actor scrapes the Bing Maps website directly, which continues to serve comprehensive business listing data.

### Features

- Search businesses by **keyword** (e.g. "coffee shops", "Italian restaurant", "dentist")
- Filter by **location** (city, area, or full address)
- Returns: name, category, address, phone, website, rating, review count, coordinates, opening hours
- Automatic pagination to collect more results
- JSON-LD structured data extraction for richer results
- Apify Proxy AUTO group support to avoid rate limits

### Input

| Field | Type | Description |
|---|---|---|
| `mode` | select | `search` (keyword + location) or `nearbySearch` |
| `searchQuery` | string | Business type to search (e.g. "coffee shops") |
| `location` | string | City or area (e.g. "London", "Paris, France") |
| `maxItems` | integer | Max results to return (1–200, default 20) |
| `proxyConfiguration` | proxy | Proxy settings (recommended: Apify AUTO) |

### Output

| Field | Description |
|---|---|
| `name` | Business name |
| `category` | Business category (e.g. "Coffee Shop") |
| `address` | Full address |
| `phone` | Phone number |
| `website` | Business website |
| `rating` | Rating (0–5) |
| `reviewCount` | Number of reviews |
| `lat` | Latitude |
| `lon` | Longitude |
| `openingHours` | Opening hours |
| `priceLevel` | Price level |
| `thumbnailUrl` | Business photo URL |
| `url` | Bing Maps listing URL |
| `scrapedAt` | ISO 8601 timestamp |

### Example Input

```json
{
  "mode": "search",
  "searchQuery": "coffee shops",
  "location": "London",
  "maxItems": 10,
  "proxyConfiguration": {"useApifyProxy": true}
}
````

### Example Output

```json
{
  "name": "The Coffee House",
  "category": "Coffee Shop",
  "address": "123 Oxford Street, London W1D 1BS",
  "phone": "+44 20 7946 0000",
  "website": "https://www.thecoffeehouse.co.uk",
  "rating": 4.5,
  "reviewCount": 1234,
  "lat": 51.5074,
  "lon": -0.1278,
  "openingHours": "Mo-Su 07:00-22:00",
  "url": "https://www.bing.com/maps?q=coffee+house+london",
  "recordType": "business",
  "scrapedAt": "2026-05-22T10:00:00+00:00"
}
```

### FAQ

**Why use this instead of the Bing Maps API?** Microsoft retired the Bing Maps Local Search API in August 2025. This actor scrapes the Bing Maps website which still provides full business listing data.

**Do I need a Bing account?** No. Bing Maps search results are publicly accessible.

**How many results can I get?** Up to 200 per run. Bing Maps typically shows 10–20 results per page.

**Will it get blocked?** We recommend enabling Apify Proxy (AUTO group) for best results.

**What data sources does Bing Maps use?** Bing Maps aggregates data from multiple sources including Yelp, TripAdvisor, and its own local business database.

# Actor input Schema

## `mode` (type: `string`):

Scraping mode. 'search' finds businesses matching a query. 'nearbySearch' finds businesses near a specific location.

## `searchQuery` (type: `string`):

What to search for. E.g. 'coffee shops', 'pizza restaurant', 'dentist'.

## `location` (type: `string`):

City, area, or address to search in. E.g. 'London', 'Manhattan, New York', 'Paris, France'.

## `maxItems` (type: `integer`):

Maximum number of business listings to return. Min 1, max 200.

## `latitude` (type: `number`):

Latitude for 'nearbySearch' mode. E.g. 47.6062 for Seattle.

## `longitude` (type: `number`):

Longitude for 'nearbySearch' mode. E.g. -122.3321 for Seattle.

## `radius` (type: `integer`):

Radius in metres for 'nearbySearch' mode. Min 100m, max 50000m.

## `proxyConfiguration` (type: `object`):

Proxy settings. Recommended: use Apify Proxy AUTO group to avoid blocks.

## Actor input object example

```json
{
  "mode": "search",
  "searchQuery": "coffee shops",
  "location": "London",
  "maxItems": 10,
  "radius": 1000,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `items` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "mode": "search",
    "searchQuery": "coffee shops",
    "location": "London",
    "maxItems": 10,
    "radius": 1000,
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("crawlerbros/bing-maps-business-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "mode": "search",
    "searchQuery": "coffee shops",
    "location": "London",
    "maxItems": 10,
    "radius": 1000,
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("crawlerbros/bing-maps-business-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "mode": "search",
  "searchQuery": "coffee shops",
  "location": "London",
  "maxItems": 10,
  "radius": 1000,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call crawlerbros/bing-maps-business-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=crawlerbros/bing-maps-business-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Bing Maps Business Listings Scraper",
        "description": "Scrape business listings from Bing Maps. Search for restaurants, shops, hotels, and services by name and location. Returns name, address, phone, website, rating, review count, coordinates, and more",
        "version": "1.0",
        "x-build-id": "KegO0JxrouPxFRRtD"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/crawlerbros~bing-maps-business-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-crawlerbros-bing-maps-business-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/crawlerbros~bing-maps-business-scraper/runs": {
            "post": {
                "operationId": "runs-sync-crawlerbros-bing-maps-business-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/crawlerbros~bing-maps-business-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-crawlerbros-bing-maps-business-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "mode": {
                        "title": "Mode",
                        "enum": [
                            "search",
                            "nearbySearch"
                        ],
                        "type": "string",
                        "description": "Scraping mode. 'search' finds businesses matching a query. 'nearbySearch' finds businesses near a specific location.",
                        "default": "search"
                    },
                    "searchQuery": {
                        "title": "Search Query",
                        "type": "string",
                        "description": "What to search for. E.g. 'coffee shops', 'pizza restaurant', 'dentist'.",
                        "default": "coffee shops"
                    },
                    "location": {
                        "title": "Location",
                        "type": "string",
                        "description": "City, area, or address to search in. E.g. 'London', 'Manhattan, New York', 'Paris, France'.",
                        "default": "London"
                    },
                    "maxItems": {
                        "title": "Max Items",
                        "minimum": 1,
                        "maximum": 200,
                        "type": "integer",
                        "description": "Maximum number of business listings to return. Min 1, max 200.",
                        "default": 20
                    },
                    "latitude": {
                        "title": "Latitude",
                        "type": "number",
                        "description": "Latitude for 'nearbySearch' mode. E.g. 47.6062 for Seattle."
                    },
                    "longitude": {
                        "title": "Longitude",
                        "type": "number",
                        "description": "Longitude for 'nearbySearch' mode. E.g. -122.3321 for Seattle."
                    },
                    "radius": {
                        "title": "Search Radius (metres)",
                        "minimum": 100,
                        "maximum": 50000,
                        "type": "integer",
                        "description": "Radius in metres for 'nearbySearch' mode. Min 100m, max 50000m.",
                        "default": 1000
                    },
                    "proxyConfiguration": {
                        "title": "Proxy Configuration",
                        "type": "object",
                        "description": "Proxy settings. Recommended: use Apify Proxy AUTO group to avoid blocks.",
                        "default": {
                            "useApifyProxy": true
                        }
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
