Bing Maps Lead Scraper (Local Business Data)
Pricing
$10.00/month + usage
Bing Maps Lead Scraper (Local Business Data)
Get clean business data from Bing Maps with proxy support, retries, and zero messy HTML parsing. Extract structured business listings with high accuracy using Bing’s internal data sources. Run multiple queries and collect deduplicated business leads from Bing Maps at scale.
Pricing
$10.00/month + usage
Rating
0.0
(0)
Developer
Jamshaid Arif
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Bing Maps Business Scraper
Scrapes business listings from Bing Maps and outputs clean, structured data — no HTML in the output.
How it works
The core scraping logic is based on the original Bing Maps Scraper script, which discovered that Bing's /maps/overlaybfpr overlay endpoint returns listing anchors (a.listings-item) with rich data-entity JSON blobs embedded as attributes. This actor parses those blobs into flat, structured records.
What this Apify actor adds on top of the original script:
- Apify proxy integration — residential, datacenter, or custom proxy support to avoid IP blocking at scale.
- Multi-query batching — run many searches in a single actor run.
- Automatic deduplication — removes duplicate name + address pairs across queries.
- Retry with backoff — failed requests are retried up to N times with increasing delays.
- Structured dataset output — results pushed to Apify dataset, exportable as JSON, CSV, or Excel.
Output fields
| Field | Type | Description |
|---|---|---|
name | string | Business name |
address | string | Full street address |
phone | string | Phone number |
website | string | Website URL |
category | string | Primary business category |
rating | number | Average rating (1–5) |
reviewCount | number | Number of reviews |
priceRange | string | Price range indicator (e.g. $$) |
hours | object | Operating hours by day |
latitude | number | GPS latitude |
longitude | number | GPS longitude |
bingEntityId | string | Bing's internal entity ID |
query | string | The search query that produced this result |
rawEntity | object | Full raw Bing entity blob (only if includeRawJson is enabled) |
Input example
{"queries": ["restaurants San Francisco","coffee shops Portland OR"],"maxResultsPerQuery": 100,"market": "en-US","includeRawJson": false,"deduplicateByName": true,"delayBetweenRequests": 2000,"maxRetries": 3,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
Input reference
| Parameter | Type | Default | Description |
|---|---|---|---|
queries | string[] | (required) | Search queries to scrape (e.g. "dentists New York"). |
maxResultsPerQuery | integer | 50 | Max listings per query. Bing typically returns up to ~200. |
market | string | en-US | Bing locale code (en-US, en-GB, de-DE, etc.). |
includeRawJson | boolean | false | Attach the full raw Bing entity blob to each result. |
deduplicateByName | boolean | true | Drop duplicate name + address pairs across queries. |
delayBetweenRequests | integer | 2000 | Polite delay in ms between queries. |
maxRetries | integer | 3 | Retry attempts per query before skipping. |
proxyConfiguration | object | Apify residential | Proxy settings (see below). |
Proxy configuration
Using a proxy is strongly recommended. Without one, Bing may block or throttle requests after a handful of queries.
Apify Proxy (recommended)
Select a proxy group in the Apify console, or pass it in the input:
{"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
Available groups:
| Group | Best for |
|---|---|
RESIDENTIAL | Most reliable — real residential IPs, lowest block rate. |
DATACENTER | Cheaper and faster, but higher chance of being blocked. |
SHADER | Rotating datacenter IPs, middle ground. |
Apify Proxy with country targeting
To get results localized to a specific country:
{"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"],"apifyProxyCountry": "US"}}
Custom / external proxy
If you have your own proxy provider:
{"proxyConfiguration": {"useApifyProxy": false,"proxyUrls": ["http://user:pass@proxy-host:8080"]}}
No proxy (not recommended)
Omit the proxyConfiguration field entirely. The actor will connect directly. Suitable only for small, one-off runs.
Running locally
# Install the Apify CLInpm install -g apify-cli# Run with a local input fileapify run --input-file input.json
Output
Results are pushed to the default Apify dataset. You can export them from the Apify console as JSON, CSV, or Excel. All fields are flat except hours (day → time object) and the optional rawEntity.