Bing Maps Places Scraper
Pricing
from $0.02 / 1,000 place results
Bing Maps Places Scraper
Scrape public Bing Maps places by query and location with business contacts, ratings, coordinates, rank, and source provenance.
Pricing
from $0.02 / 1,000 place results
Rating
0.0
(0)
Developer
Fetch Cat
Maintained by CommunityActor stats
0
Bookmarked
11
Total users
6
Monthly active users
9 days ago
Last modified
Categories
Share
Use this Bing Maps scraper to export public business listings for local SEO, lead generation, competitor research, and market analysis. This Bing Maps places scraper searches multiple categories and locations in one run and returns deduplicated Bing Maps business data with contact details, ratings, coordinates, listing links, and rank provenance.
Quick start
- Enter a business category and location, or paste a Bing Maps search URL.
- Start with a small limit, run the Actor, and review the available business fields.
- Export the dataset as CSV, JSON, or Excel, or retrieve it through the API.
{"searchQueries": ["restaurants", "dentists"],"locations": ["Lisbon, Portugal"],"maxPlacesPerQuery": 20,"market": "en-US","includeWebsite": true,"dedupeBy": "placeId"}
Bing decides which listings and optional details are available. Results are not an exhaustive business directory.
Prefer a video guide? This short Apify walkthrough shows you how to set up and run an Actor. It uses a different Actor, but the setup steps are the same.
Ready-to-run examples
Choose a public example to see its settings before starting a run:
What you get
One row per unique saved Bing Maps place, with its identity, public map link, usable coordinates and available business or contact fields. Search context and the first saved match's position accompany each row. Optional fields can be null, and structured city or country fields are currently unpopulated.
Who is it for?
This Actor is designed for local SEO specialists, lead-generation teams, agencies, sales researchers, and analysts who need repeatable place exports from Bing rather than manual map searches.
How you can use the data
- Prepare a Lisbon restaurant prospect sheet. Search restaurants in Lisbon and collect a small sample. Export
name,address,website,phoneandbingMapsUrlfor manual qualification, leaving missing contact values unknown. - Reduce overlap between related searches. Search Boston dentists and dental clinics with the existing website-deduplication option. Review the merged rows and retain
placeId,dedupeKeyand the first saved match's source context for later checks. - Compare your own search snapshots. Keep
searchQuery,location,sourceUrl,rankandscrapedAtin each export. Rank is a position among coordinate-bearing candidates, can have gaps after deduplication, and is not an exhaustive local-search visibility score. - Keep geographic context clear. Use returned coordinates and source address text for review. The reserved structured locality, region, postal-code and country fields are null, and a URL search does not populate the separate location field.
Input settings
| Field | Description |
|---|---|
Search queries — searchQueries | Categories or free-form searches. Provide these or startUrls. |
Locations — locations | Optional areas combined with each query. Omit when the query already includes its location. |
Search URLs — startUrls | Additional Bing Maps searches using the URL's q value. Other URL filters are not applied. |
Maximum places — maxPlacesPerQuery | Upper limit per search before removing duplicates, from 1 to 100. Default 20. |
Market — market | Language-region code such as en-US (default) or pt-PT. |
Include websites — includeWebsite | Include websites supplied by Bing. Default true. |
Deduplicate by — dedupeBy | Use placeId (default), website, or nameAddress. See field help for matching details. |
At least one nonempty query or search URL is needed. Form examples do not supply missing API inputs. Queries and URL searches are combined when both are provided.
Example inputs
Single market scan
{"searchQueries":["coffee shops"],"locations":["Austin, TX"],"maxPlacesPerQuery":50}
Overlapping lead searches with website deduplication
{"searchQueries":["dentists","dental clinics"],"locations":["Boston, MA"],"maxPlacesPerQuery":20,"dedupeBy":"website"}
Search URL instead of a query list
{"startUrls":[{"url":"https://www.bing.com/maps?q=dentists%20Austin"}],"maxPlacesPerQuery":20}
Output data
Illustrative shape only, not an observed business record. Optional values vary with Bing's coverage.
{"placeId": "ypid:YN93943E0541A05534","name": "Example Restaurant","categories": ["Restaurant"],"address": "24 Example Street, Lisbon 1100-125","locality": null,"region": null,"postalCode": null,"country": null,"phone": "+351 21 000 0000","website": "https://example.com/","rating": 4.3,"reviewCount": 1095,"latitude": 38.71146,"longitude": -9.13494,"bingMapsUrl": "https://www.bing.com/maps?osid=ypid%3AYN93943E0541A05534","imageUrl": "https://www.bing.com/th?id=example","isOpen": true,"searchQuery": "restaurants","location": "Lisbon, Portugal","rank": 1,"sourceUrl": "https://www.bing.com/maps?q=restaurants%20Lisbon%2C%20Portugal","scrapedAt": "2026-08-06T14:00:00.000Z","dedupeKey": "ypid:YN93943E0541A05534","warnings": []}
More output fields
Every row contains these stable keys: placeId, name, categories, address, locality, region, postalCode, country, phone, website, rating, reviewCount, latitude, longitude, bingMapsUrl, imageUrl, isOpen, searchQuery, location, rank, sourceUrl, scrapedAt, dedupeKey, and warnings.
| Fields | Meaning |
|---|---|
placeId, name, categories | Listing identity, business name, and available category labels. |
address, phone, website | Public contact details when available. includeWebsite: false leaves website null. |
locality, region, postalCode, country | Reserved structured-address fields. Currently returned as null. |
rating, reviewCount, isOpen | Available rating, review count, and open-status indication, not individual reviews or opening hours. |
latitude, longitude, bingMapsUrl, imageUrl | Map coordinates, listing link, and an available image URL. |
searchQuery, location, rank, sourceUrl, scrapedAt | Search context, position among coordinate-bearing candidates, source, and extraction time. URL searches have a null location. |
dedupeKey, warnings | Deduplication identity and important missing optional values. |
Optional contact values may be null. The Actor never fabricates them. Listings without usable coordinates are skipped.
Download your results
Open your run's dataset, choose Export and select JSON, CSV or Excel. JSON keeps nested fields together. CSV and Excel are useful when you want to review the records in a spreadsheet.
See Apify's download and export guide for the available formats and field options.
Pricing
The Actor uses pay-per-event pricing: start is charged once per run after input validation, and result is charged for each unique place saved. A valid search can incur the start charge even when it finds no places.
Bound work with maxPlacesPerQuery and the number of query/location pairs. See the live Bing Maps Places Scraper Pricing tab for current account-tier rates.
Tips for best results
- Use a precise location with each category. Keep the market and query context consistent for exports you intend to compare.
- Start with a small per-query cap. Duplicate removal can leave fewer saved places than the requested maximum.
- Keep the first-match source context. Retain place identifiers, source URL and collection time when reviewing overlaps.
- Inspect
RUN_SUMMARYwith the dataset. Review completed, empty and failed searches before assuming a batch finished fully. - Leave missing contacts unknown. Row warnings cover missing address or website, rather than every possible data-quality issue.
Limits and caveats
Business coverage and optional fields depend on Bing Maps. Listings without usable coordinates are skipped. Structured locality, region, postal-code and country fields are currently null. Ratings, review counts and open-status indications are not individual reviews or opening-hour exports.
Overlapping results are removed while preserving the position and provenance of the first saved match. Positions can have gaps. The per-query limit applies before duplicate removal, and there is no rating or distance sorting option.
Large query batches or isolated failed searches can leave partial results while already saved rows remain available. Check RUN_SUMMARY for completed, empty and failed searches. Row warnings describe missing address or website, not every data-quality concern.
Search URLs contribute their q value. Other URL filters are not applied. URL searches have a null separate location field.
Automation and integrations
Save your settings for next time
Once you have an input that works for you, save it as an Apify task. This keeps your settings together so you can use them again without filling in the form from scratch.
Run on a schedule
Need fresh results regularly? You can schedule the Actor or a saved task to run at a time that suits you.
Each scheduled run collects the data again. If you want to compare results or highlight changes, add that step in your own workflow.
Send results to your other tools
Use n8n, Make or Zapier to connect this scraper to the rest of your workflow. For example, you could pass its results to an AI assistant or add records to a spreadsheet. Follow the Apify integration guides for your chosen tool.
For a custom connection, an Apify webhook can notify your app when a run finishes or fails. Your app can then fetch the results or handle the failure.
API usage
Want to collect this data from your own app or automation? The examples below send input to the scraper and show how to collect its results.
The Node.js and Python examples wait for the run to finish before reading its results. The cURL example starts the run and returns its details. Wait for that run to finish, then use its defaultDatasetId to fetch the results.
For setup instructions, see Apify's JavaScript client guide, Python client guide and Actor runs API reference.
cURL
curl -X POST 'https://api.apify.com/v2/acts/fetch_cat~bing-maps-places-scraper/runs' \-H "Authorization: Bearer $APIFY_TOKEN" \-H 'Content-Type: application/json' \--data @- <<'JSON'{"searchQueries": ["restaurants","dentists"],"locations": ["Lisbon, Portugal"],"maxPlacesPerQuery": 20,"market": "en-US","includeWebsite": true,"dedupeBy": "placeId"}JSON
Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('fetch_cat/bing-maps-places-scraper').call({"searchQueries": ["restaurants","dentists"],"locations": ["Lisbon, Portugal"],"maxPlacesPerQuery": 20,"market": "en-US","includeWebsite": true,"dedupeBy": "placeId"});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python
import osfrom apify_client import ApifyClientclient = ApifyClient(os.environ['APIFY_TOKEN'])run = client.actor('fetch_cat/bing-maps-places-scraper').call(run_input={'searchQueries': ['restaurants', 'dentists'], 'locations': ['Lisbon, Portugal'], 'maxPlacesPerQuery': 20, 'market': 'en-US', 'includeWebsite': True, 'dedupeBy': 'placeId'})print(client.dataset(run['defaultDatasetId']).list_items().items)
MCP and AI agents
You can ask your AI assistant to collect data with Bing Maps Places Scraper and help you work with the results. The scraper returns the data, and your assistant can then summarize it, compare records or prepare notes.
Connect your assistant through the Apify MCP server. MCP gives your assistant a way to find this scraper, run it and read the results. Follow the official setup and sign-in guide for your app.
Easier setup with an Apify plugin
If you use a supported coding assistant, the official Apify plugin can set up the connection for you. It connects your assistant to Apify and includes instructions for common tasks. Follow the guide for your particular app.
Use Apify AI in Console
Prefer to keep everything in Apify? Open Apify AI in Console and ask it to find Fetch Cat's Bing Maps Places Scraper. You can describe the data you want and ask questions about the results.
Apify AI is currently in beta. It asks for confirmation before starting an Actor, and normal run charges apply.
Choose your assistant
- Claude and Claude Code (Anthropic): Apify setup guide.
- ChatGPT and Codex (OpenAI): Apify setup guides.
- Grok Bot (xAI): Apify plugin guide.
- Gemini CLI (Google): MCP server setup guide. Use the server URL below with the HTTP configuration supported by Gemini CLI.
Connect just this scraper
To keep your setup focused on this scraper, add this server configuration to a compatible MCP client:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=fetch_cat/bing-maps-places-scraper"}}}
Sign in to Apify when your client asks. If your client uses a Bearer token instead, follow its setup guide and keep the token in its secure configuration. Configuration formats vary by app, so use the linked guide if your client needs a different format.
Use Apify's general server
Already connected to the general Apify MCP server at https://mcp.apify.com? You can use it to find this scraper without adding another server. Ask your assistant to use Bing Maps Places Scraper by Fetch Cat, or give it the identifier fetch_cat/bing-maps-places-scraper.
Your assistant can check the available settings and retrieve the results from the returned run. If the run is still working, it should follow that run rather than start it again. Both connection options use Apify's hosted service.
Example requests
- “Use Fetch Cat’s Bing Maps Places Scraper to collect up to 5 restaurant places in Lisbon, Portugal. Show names, public websites, phones and map links, clearly marking missing contacts.”
- “Collect at most 5 places per search for dentists and dental clinics in Boston, MA, using website deduplication. Keep place identifiers and first-match source context so I can review overlaps.”
- “Retrieve up to 5 places from the public Bing Maps search URL I provide. Show coordinates, original address text and collection time, and explain any incomplete searches without inventing structured city fields.”
Normal Apify charges apply. Check the live Pricing tab before asking your assistant to run a larger batch.
Pay with x402
If your AI agent has a funded wallet, it can pay for Apify usage through x402. This experimental option lets an agent use Apify without a conventional account.
Apify AGI provides a prepaid API token with a spending cap after payment. Your agent can use that token to run this scraper through the Apify API or an authenticated MCP connection.
Some MCP setups also support paying for each request directly. That is a different payment option, so check the official guide for its availability.
Follow the official guide for wallet setup, supported payment options and current terms. Apify handles the payments. Keep wallet keys and payment tokens in your agent's secure configuration.
Other ways for agents to pay
Apify also supports MPP for prepaid access through AGI and Skyfire for eligible Actors. If your agent already uses one of these, see the agentic payment guide to choose the right setup.
FAQ
What data can I export with Bing Maps scraper?
Each place can include its name, category, address, phone, website, rating, review count, coordinates, Bing Maps URL, image, rank, and query provenance.
Can I run Bing Maps Places Scraper through an API, schedule, or MCP client?
Yes. Use the Apify API or MCP examples above, and create an Apify schedule for recurring exports.
How much does it cost to use Bing Maps Places Scraper?
A run charges one start event and one result event per unique saved place. Current account-tier prices are always shown on the Pricing tab.
Does it require a Bing Maps API key?
No. This Bing places scraper processes public Bing Maps search listings.
Why are some fields null?
Bing does not expose every optional field for every listing or market.
Can I use Bing Maps URLs?
Yes. Add public search URLs with a q parameter to startUrls.
Does it scrape reviews?
It returns aggregate rating and review count when supplied, not individual review text.
Related Actors
More Bing scrapers
- Bing SERP & Search Results Scraper — Collect ranked Bing organic search results with titles, URLs and snippets when you need web-page research alongside local place listings.
- Google Maps Places Scraper — Collect public Google Maps places and available business details from searches or supported Maps URLs for local business research.
- Apple Maps Places Scraper — Retrieve public Apple Maps places with available addresses, coordinates and contact details when researching listings on another maps source.
- Google Maps Reviews Scraper — Collect public reviews from Google Maps place URLs, including review text and ratings, when you need feedback beyond a listing’s aggregate rating.
- Yelp Business Scraper — Search public Yelp businesses or look up known business URLs and aliases, returning available profile details for local business comparisons.
Support and feedback
For custom additions or integrations, email hello@fetchcat.dev.
Found an error or have a feature request? Open an issue with the run URL, a non-sensitive input example and what you expected.
Need help sharing it? See Apify’s guide to sharing a run when reporting an issue. Sharing a run can give the developer access to its input, logs and results, so use a run that contains no sensitive data. Please leave out API tokens, passwords, cookies, private documents and personal data. Use a public sample URL or a redacted example instead.
Tried this scraper? We'd love to hear how it worked for you. Leave a review to help others choose the right tool and help us improve it. Your feedback means a lot to us.
Made with care for curious people, AI agents and the possibilities in data. ♥