# Bing Search Result Scraper (`curious_coder/bing-search-scraper`) Actor

Bing Search Result Scraper extracts organic and paid results, ads, Related, People Also Ask, News, Videos and Images Answers. Supports all available markets and languages. Download data as HTML table, JSON, CSV, Excel, XML or RSS.

- **URL**: https://apify.com/curious\_coder/bing-search-scraper.md
- **Developed by:** [Curious Coder](https://apify.com/curious_coder) (community)
- **Categories:** SEO tools, AI
- **Stats:** 988 total users, 3 monthly users, 100.0% runs succeeded, 12 bookmarks
- **User rating**: No ratings yet

## Pricing

$15.00/month + usage

To use this Actor, you pay a monthly rental fee to the developer. The rent is subtracted from your prepaid usage every month after the free trial period. You also pay for the Apify platform usage, which gets cheaper the higher Apify subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#rental-actors

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — 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 Search Result Scraper

### What does Bing Search Result Scraper do?

Bing Search Result Scraper extracts the following data from Bing search results:

- Organic results
- Related queries
- See results for
- Recommended searches
- People Also Ask
- Wiki results
- News, Image, Video results

### Why use Bing Search Result Scraper?

Extracting data from Bing search results can help you to:

- Consistently monitor how your website ranks on Bing SERPs for specific keywords.
- Monitor competition automatically: both organic results and Ads section.
- Analyze advertisement campaigns to sharpen the keyword targeting of your Bing Ads.
- Improve the performance of your website content by applying the SEO insights needed to top the Bing SERP rankings.
- Make data-backed decisions in your SEO strategy.
- Follow demand and predict new trends by scraping \*recommended searches, \*Related queries, *See results for* and *People Also Ask*

You can see our [industry pages](https://apify.com/industries) for more tangible ideas, use cases, or inspiration on how to use scraped Bing data in your business.

### Is scraping Bing legal?

Since scraping Bing and other search engines does not require a login, it is legal to scrape Bing search results as the data is publicly available. However, you may still be bound by the Bing terms of use. If you are unsure of the legal implications of your scraping, you can learn more in [Is web scraping legal?](https://blog.apify.com/is-web-scraping-legal/)

### How do you scrape Bing search results?

To understand how to set up and run Bing Search Result Scraper, check out our step-by-step guide on [how to scrape Bing](https://blog.apify.com/how-to-scrape-bing-search-results/#how-to-scrape-bing-search-results) with screenshots and examples.

### Integrations and Bing Search Result Scraper

Bing Search Result Scraper can be connected with almost any cloud service or web app thanks to [integrations on the Apify platform](https://apify.com/integrations). Integrate with Make, Zapier, Slack, Airbyte, GitHub, Google Sheets, Google Drive, and more. Or you can use webhooks to carry out an action whenever an event occurs, e.g. get a notification whenever Bing Search Result Scraper successfully finishes a run.

### Using Bing Search Result Scraper with the Apify API

The Apify API gives you programmatic access to the Apify platform. The API is organized around RESTful HTTP endpoints that enable you to manage, schedule, and run Apify actors. The API also lets you access any datasets, monitor actor performance, fetch results, create and update versions, and more.To access the API using Node.js, use the apify-client NPM package. To access the API using Python, use the apify-client PyPI package. Check out the [Apify API reference docs](https://docs.apify.com/api/v2) for full details or click on the [API tab](https://apify.com/spidoosho/bing-search-scraper/api#features) for code examples.

### Input parameters

The input for Bing Search Result Scraper should be JSON containing the search terms you want to scrape. Click on the [input tab](https://apify.com/spidoosho/bing-search-scraper/input-schema) for an input example.

### Results

Actor stores its result in the default dataset associated with the run, which you can export to various formats.

The results can be downloaded from the [Get dataset items](https://docs.apify.com/api/v2#/reference/datasets/item-collection/get-items) API endpoint:

```
https://api.apify.com/v2/datasets/[DATASET_ID]/items?format=[FORMAT]
```

where `[DATASET_ID]` is the ID of the dataset and `[FORMAT]` can be `csv`, `html`, `xlsx`, `xml`, `rss` or `json`.

For each Bing search results page, the dataset will contain a single record, which in JSON format looks as follows. Bear in mind that some fields have example values:

```json
{
  "url": "https://www.bing.com/search?q=restaurants+in+NYC&setmkt=en-US&setLang=en&count=20",
  "keyword": "restaurants in NYC",
  "pageNumber": "1",
  "topBorders": [
    {
      "type": "topborder",
      "title": "3 Restaurant Stocks to Buy as Portillo’s IPO Puts Food in Focus | M…",
      "description": "McDonald’s ( NYSE:MCD)Chipotle Mexican Grill ( NYSE:CMG)Shake Shack ( NYSE:SHAK)",
      "url": "https://markets.businessinsider.com/news/stocks/3-restaurant-stocks-to-buy-as-portillos-ipo-puts-food-in-focus-1030942104#:~:text=1%20McDonald%E2%80%99s%20%28%20NYSE%3AMCD%29%202%20Chipotle%20Mexican,Grill%20%28%20NYSE%3ACMG%29%203%20Shake%20Shack%20%28%20NYSE%3ASHAK%29"
    }
  ],
  "news": [],
  "images": [
    {
      "url": "https://www.bing.com/images/search?q=restaurants+in+nyc&id=2A4278536950043E64049BF31FF7EF10AE59890E&FORM=IQFRBA&tsc=ImageHoverTitle",
      "description": "The 8 Most Romantic Restaurants In New York City ..."
    },
    {
      "url": "https://www.bing.com/images/search?q=restaurants+in+nyc&id=CB6E30A74EE489542CAC44CC2AF03EADD002B5AD&FORM=IQFRBA&tsc=ImageHoverTitle",
      "description": "NYC’s Best Restaurants For Celebrity Sightings – CBS New York"
    }
  ],
  "videos": [
    {
      "url": "https://www.bing.com/videos/search?q=restaurants+in+NYC&docid=608027044097975381&mid=847D6D6E00C15262FE03847D6D6E00C15262FE03&view=detail&FORM=VIRE",
      "channel": "Sarah Funk",
      "date": "6 months ago",
      "title": "The Best Restaurants in NYC (the NEW 2021 dining guide)",
      "views": "79K views",
      "provider": "YouTube"
    },
    {
      "url": "https://www.bing.com/videos/search?q=restaurants+in+NYC&docid=608028478616464812&mid=9764CA38921564D86ABA9764CA38921564D86ABA&view=detail&FORM=VIRE",
      "channel": "Sarah Funk",
      "date": "Jun 21, 2018",
      "title": "Best Restaurants in NYC | A Culinary Tour with a local New Yorker",
      "views": "270K views",
      "provider": "YouTube"
    }
  ],
  "pages": [
    {
      "title": "THE 10 BEST Restaurants in New York City - Updated ...",
      "link": "https://www.tripadvisor.com/Restaurants-g60763-New_York_City_New_York.html",
      "desc": "Restaurants in New York City 1. Club A Steakhouse. 2. Mei Jin Ramen. 3. Boucherie Union Square. 4. Boucherie West Village. 5. Bua Thai Ramen & Robata Grill. 6. Olio e Piu. 7. Piccola Cucina. 8. Bleecker Street Pizza. 9. La Grande Boucherie. 10. …"
    },
    {
      "title": "THE BEST 10 Restaurants in New York, NY - Last Updated ...",
      "link": "https://www.yelp.com/search?cflt=restaurants&find_loc=new+york%2C+NY",
      "list": [
        "Thursday Kitchen. 1473. $$East Village. “I've been wanting to come to Thursday Kitchen for …",
        "The Cabin NYC. 349. $$East Village. Locally owned & operated. Outdoor seating. Waitlist …",
        "Raku. 552. $$South Village. Proof of vaccination required. “Raku is my favorite Udon in NYC! …",
        "Amélie. 2758. $$$Greenwich Village. “I love quirks; that's the secret to living with myself, and …",
        "Joe’s Shanghai. 6482. $$Chinatown. “The service was excellent, I got the shrimp lo mein-a …",
        "Raku. 1220. $$East Village. Proof of vaccination required. Waitlist opens at 12:00 pm. “FYI: …",
        "Wayla. 418. $$Lower East Side. “Service was above and beyond, shout out to our man / host …",
        "Jane. 3232. $$Greenwich Village. “Great Sunday brunch! Had a reservation for 5 people, we …",
        "Olio e Piú. 2867 $$ Proof of vaccination required. “This is my first time here at this restaurant …",
        "Da Andrea. 1004. $$Greenwich Village. “It was so nice to have a dinner in this wonderful …"
      ],
      "desc": ""
    },
    {
      "title": "New York Restaurants and Dining Guide | NYC.com ...",
      "link": "https://www.nyc.com/restaurants/",
      "desc": "Eleven Madison Park expresses the spirit of grand New York dining with a contemporary accent. Designed by architects Bentel & Bentel, with soaring 30-foot ceilings and windows overlooking beautiful Madison Square Park, the Art-Deco restaurant embodies an urbane sophistication that is at once relaxed and bustling."
    }
  ],
  "explore": [
    {
      "title": "New York City Restaurants",
      "imgUrl": "https://www.bing.com/images/search?q=New+York+City+Restaurants&FORM=IARSLK"
    },
    {
      "title": "Restaurant Modern NYC",
      "imgUrl": "https://www.bing.com/images/search?q=Restaurant+Modern+NYC&FORM=IARSLK"
    }
  ],
  "related": [
    {
      "text": "best trendy restaurants in nyc",
      "url": "https://www.bing.com/search?q=best+trendy+restaurants+in+nyc&FORM=QSRE1"
    },
    {
      "text": "best restaurants nyc 2021",
      "url": "https://www.bing.com/search?q=best+restaurants+nyc+2021&FORM=QSRE2"
    }
  ]
}
```

# Actor input Schema

## `queries` (type: `array`):

Bing Search queries (e.g. food in NYC) and/or full URLs (e.g. https://www.bing.com/search?q=food+NYC). Enter one item per field.

## `resultsPerPage` (type: `integer`):

Number of search results per page. By default, Bing Search returns 10 results. The allowed values are between 1 and 100.

## `maxPagesPerQuery` (type: `integer`):

The maximum number of search result pages crawled for each search query or URL. Note that a value greater than one might significantly slow down the actor.

## `marketCode` (type: `string`):

Bing Search returns content for set market.

## `languageCode` (type: `string`):

Language for the search results.

## `csvFriendliness` (type: `boolean`):

Remove results that are not CSV friendly.

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

Automatic proxy and the country of your choice is usually the best option, but you can also select specific proxies, or use your own custom proxies.

## `maxConcurrency` (type: `integer`):

The maximum number of search results pages the crawler will load in parallel. A higher number means you will get your results faster, but also it will burn through your available proxies quicker.

## Actor input object example

```json
{
  "queries": [
    "Hotels in NYC",
    "Restaurants in NYC",
    "https://www.bing.com/search?q=restaurants+in+NYC"
  ],
  "resultsPerPage": 10,
  "maxPagesPerQuery": 1,
  "marketCode": "en-US",
  "languageCode": "en",
  "csvFriendliness": false,
  "proxyConfiguration": {
    "useApifyProxy": true
  },
  "maxConcurrency": 10
}
```

# 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 = {
    "queries": [
        "Hotels in NYC",
        "Restaurants in NYC",
        "https://www.bing.com/search?q=restaurants+in+NYC"
    ],
    "resultsPerPage": 10,
    "maxPagesPerQuery": 1,
    "marketCode": "en-US",
    "languageCode": "en",
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("curious_coder/bing-search-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 = {
    "queries": [
        "Hotels in NYC",
        "Restaurants in NYC",
        "https://www.bing.com/search?q=restaurants+in+NYC",
    ],
    "resultsPerPage": 10,
    "maxPagesPerQuery": 1,
    "marketCode": "en-US",
    "languageCode": "en",
    "proxyConfiguration": { "useApifyProxy": True },
}

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

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

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

```

## CLI example

```bash
echo '{
  "queries": [
    "Hotels in NYC",
    "Restaurants in NYC",
    "https://www.bing.com/search?q=restaurants+in+NYC"
  ],
  "resultsPerPage": 10,
  "maxPagesPerQuery": 1,
  "marketCode": "en-US",
  "languageCode": "en",
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call curious_coder/bing-search-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,curious_coder/bing-search-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/YahzVjUHQsxjW5b4I/builds/pdNLDqIfd7b8sgP1h/openapi.json
