# Bing Search Results Scraper

Use this Bing SERP scraper to collect search results across 20 country and language settings, including titles, URLs, snippets, domains, result types, page positions, and organic rankings.

- Template page: [https://www.octoparse.com/template/bing-search-results-scraper](https://www.octoparse.com/template/bing-search-results-scraper)
- Categories: Search Engine
- Status: `PUBLISHED`
- Run mode: `CLOUD`

## Pricing

Free.

## 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 search-results pages.

## Output

The current workflow extracts 16 fields, including `country_code`, `description`, `displayed_url`, `domain`, `estimated_total_results`, `keyword`, `language`, `link`, `organic_rank`, `page_number`, `position_on_page`, `rank`, `result_type`, `search_url`, `source`, `title`.

## 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 Country/ Area, Keywords (up to 10,000 per run), Pages to scrape and start the template in cloud mode.
- **Flexible export:** review and export results as CSV, Excel, or JSON.

## Input

### Country/ Area

Required. Select a Bing country/area and language. Constraints: minLength=1. Callable values are the `const` keys in JSON `oneOf`, not the option titles.

### Keywords (up to 10,000 per run)

Required. Enter a list of keywords for searching. Constraints: minItems=1; maxItems=10000; items.minLength=1; items.maxLength=5000.

### Pages to scrape

Optional. Enter the total number of Bing result pages to scrape, from 1 to 200. Constraints: minimum=1, maximum=200.

## How to Use

# Bing Search Results Scraper

Collect structured Bing search results for keyword research, SEO analysis, competitor monitoring, and content discovery. Supports up to 10,000 keywords per run and one of 20 country/language settings.

## Pricing

Free template; no per-row template charge. Cloud task availability and resource usage depend on your Octoparse plan.

## Input

### Country/Area

Required. Select one setting per run:

- United Kingdom - English
- United States - English
- Australia - English
- Canada - English
- New Zealand - English
- Ireland - English
- United States - Spanish
- Spain - Spanish
- Mexico - Spanish
- Japan - Japanese
- France - French
- Germany - German
- Italy - Italian
- South Korea - Korean
- Mainland China - Chinese (Simplified)
- Singapore - Chinese
- Malaysia - Chinese
- Hong Kong - Chinese (Traditional)
- Macao - Chinese (Traditional)
- Taiwan - Chinese (Traditional)

### Keywords (up to 10,000 per run)

Required. Enter one Bing keyword or phrase per line. Use plain keywords or phrases.

Advanced Bing operators such as `site:`, `filetype:`, and `ext:` are not supported as a reliable input mode.

### Pages to scrape

Optional. Enter 1–200 Bing result pages per keyword. If blank, the template uses 3 pages.

## How to Use

1. Sign in to Octoparse and open Bing Search Results Scraper.
2. Select the required **Country/Area** option.
3. Enter one or more values under **Keywords (up to 10,000 per run)**, one per line.
4. Set **Pages to scrape** from 1 to 200, or leave it blank to use 3 pages.
5. Run the template in the Cloud.
6. Review the completed dataset and export it in the required format.

Each row includes the submitted `keyword`, result URL and snippet, source, rank fields, result type, page location, locale details, and `estimated_total_results`.

## Limitations

- **Pages to scrape** is a maximum request, not a guarantee of non-empty pages. A run can finish earlier when Bing has no more results.
- Bing results can vary by country, language, time, and Bing ranking systems. Repeated runs may not return identical rows or positions. Specialized areas such as Images, News, or Maps are outside this template’s output scope.
- `estimated_total_results` preserves Bing’s complete displayed text. It is an estimate, can change between pages, and is not an exact count.
- Advanced Bing operators such as `site:`, `filetype:`, and `ext:` are not supported as a reliable collection mode. Bing may ignore these constraints in an anonymous Cloud session. If the template detects that an operator was not applied, it returns no rows for that keyword instead of exporting unrelated results.

## Tips

- Start with plain keywords or phrases and 1–3 pages to confirm the selected market and output before scaling up. Do not use `site:`, `filetype:`, or `ext:` as a required filtering method.
- For recurring rank tracking, use `keyword`, `country_code`, `language`, and `rank` together when comparing SEO visibility across markets.
- Use `organic_rank` for organic-only analysis and `rank` for complete result order including ads.
- Keep `page_number`, `position_on_page`, and `rank` when reviewing repeated URLs across pages.
- Large keyword/page combinations can produce substantial datasets. Increase run size gradually and export completed results regularly.

## 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

- [Bic Camera Search Results Scraper](https://www.octoparse.com/template/bic-camera-search-results-scraper)
- [Ecosia Search Results Scraper](https://www.octoparse.com/template/ecosia-search-results-scraper)
- [Xiaohongshu Search Results Scraper (by URL)](https://www.octoparse.com/template/xiaohongshu-search-results-scraper)
- [Hello Work Japan Easy Search Results Scraper](https://www.octoparse.com/template/hello-work-job-listings-scraper)
- [Monotaro Product Search Results Scraper](https://www.octoparse.com/template/mnt-search-results)

## Input Schema

```json
{
  "title": "Bing Search Results Scraper input",
  "description": "Input parameters configured for the current published template version.",
  "type": "object",
  "schemaVersion": 1,
  "additionalProperties": false,
  "properties": {
    "country/_Area": {
      "title": "Country/ Area",
      "description": "Select a Bing country/area and language.",
      "type": "string",
      "minLength": 1,
      "oneOf": [
        {
          "title": "en-gb",
          "const": "United Kingdom - English"
        },
        {
          "title": "en-us",
          "const": "United States - English"
        },
        {
          "title": "en-au",
          "const": "Australia - English"
        },
        {
          "title": "en-ca",
          "const": "Canada - English"
        },
        {
          "title": "en-nz",
          "const": "New Zealand - English"
        },
        {
          "title": "en-ie",
          "const": "Ireland - English"
        },
        {
          "title": "es-us",
          "const": "United States - Spanish"
        },
        {
          "title": "es-es",
          "const": "Spain - Spanish"
        },
        {
          "title": "es-mx",
          "const": "Mexico - Spanish"
        },
        {
          "title": "ja-jp",
          "const": "Japan - Japanese"
        },
        {
          "title": "fr-fr",
          "const": "France - French"
        },
        {
          "title": "de-de",
          "const": "Germany - German"
        },
        {
          "title": "it-it",
          "const": "Italy - Italian"
        },
        {
          "title": "ko-kr",
          "const": "South Korea - Korean"
        },
        {
          "title": "zh-cn",
          "const": "Mainland China - Chinese (Simplified)"
        },
        {
          "title": "zh-sg",
          "const": "Singapore - Chinese"
        },
        {
          "title": "zh-my",
          "const": "Malaysia - Chinese"
        },
        {
          "title": "zh-hk",
          "const": "Hong Kong - Chinese (Traditional)"
        },
        {
          "title": "zh-mo",
          "const": "Macao - Chinese (Traditional)"
        },
        {
          "title": "zh-tw",
          "const": "Taiwan - Chinese (Traditional)"
        }
      ],
      "x-octoparse": {
        "apiEnabled": true
      }
    },
    "keywords": {
      "title": "Keywords (up to 10,000 per run)",
      "description": "Enter a list of keywords for searching.",
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 5000
      },
      "minItems": 1,
      "maxItems": 10000,
      "x-octoparse": {
        "apiEnabled": true
      }
    },
    "pages_to_scrape": {
      "title": "Pages to scrape",
      "description": "Enter the total number of Bing result pages to scrape, from 1 to 200.",
      "type": "integer",
      "minimum": 1,
      "maximum": 200,
      "x-octoparse": {
        "apiEnabled": true
      }
    }
  },
  "required": [
    "country/_Area",
    "keywords"
  ]
}
```

## Input JSON Example

Example 1

```json
{
  "country/_Area": "United States - English",
  "keywords": [
    "Pompano Beach Concrete Solutions 231 NW 16th St",
    "Good Choice Pavers 3429 Deer Creek Palladian Cir",
    "Shine Stone Pavers 6800 NW 39th Ave LOT 163"
  ],
  "pages_to_scrape": 1
}
```

Example 2

```json
{
  "country/_Area": "France - French",
  "keywords": [
    "agent vocal IA site:.fr",
    "assistant vocal IA site:.fr",
    "IA conversationnelle vocale site:.fr",
    "voicebot IA site:.fr",
    "standard téléphonique IA site:.fr"
  ],
  "pages_to_scrape": 5
}
```

Example 3

```json
{
  "country/_Area": "Canada - English",
  "keywords": [
    "AI voice agent site:.ca",
    "agent vocal IA site:.ca",
    "AI voice assistant site:.ca",
    "assistant vocal IA site:.ca",
    "conversational AI voice site:.ca"
  ],
  "pages_to_scrape": 5
}
```

Example 4

```json
{
  "country/_Area": "Germany - German",
  "keywords": [
    "Zuständige Kammer: impressum",
    "NeXt ambulante Pflege GmbH impressum",
    "GesA Gesellschaft für soziale Aufgaben-mbH impressum",
    "helfende Hand impressum",
    "VIVA Pflege Berlin GmbH & Co. KG impressum"
  ],
  "pages_to_scrape": 1
}
```

Example 5

```json
{
  "country/_Area": "Germany - German",
  "keywords": [
    "Anita Leschke impressum",
    "Andreas Lutz impressum",
    "Pflegedienst Schwarz / Schwarz GbR impressum",
    "Physiotherapie Marie Claire Menozzi impressum",
    "Praxis für Physiotherapie und Krankengymnastik Daniela Kaepler impressum"
  ],
  "pages_to_scrape": 1
}
```


## Output Schema

```json
{
  "schemaVersion": 1,
  "type": "object",
  "properties": {
    "country_code": {
      "type": "string",
      "description": "Bing cc locale parameter selected by the user."
    },
    "description": {
      "type": "string",
      "description": "Displayed result snippet."
    },
    "displayed_url": {
      "type": "string",
      "description": "URL or breadcrumb text displayed by Bing."
    },
    "domain": {
      "type": "string",
      "description": "Normalized hostname from the final result URL."
    },
    "estimated_total_results": {
      "type": "string",
      "description": "Complete page-varying Bing .sb_count progress text, for example 1,984-1,996 of 2,970 results."
    },
    "keyword": {
      "type": "string",
      "description": "Submitted Bing search keyword."
    },
    "language": {
      "type": "string",
      "description": "Bing setlang locale parameter selected by the user."
    },
    "link": {
      "type": "string",
      "description": "Decoded final result URL, with the observed Bing URL retained if decoding fails."
    },
    "organic_rank": {
      "type": "string",
      "description": "Continuous organic-only rank per keyword; blank for ads."
    },
    "page_number": {
      "type": "string",
      "description": "One-based page number within the keyword run."
    },
    "position_on_page": {
      "type": "string",
      "description": "One-based emitted-result position on the page, including ads."
    },
    "rank": {
      "type": "string",
      "description": "Continuous rank per keyword across organic and advertising results."
    },
    "result_type": {
      "type": "string",
      "description": "Result classification: organic or ad."
    },
    "search_url": {
      "type": "string",
      "description": "Actual Bing result-page URL used for this row."
    },
    "source": {
      "type": "string",
      "description": "Source label shown by Bing."
    },
    "title": {
      "type": "string",
      "description": "Displayed result title."
    }
  },
  "title": "Bing Search Results Scraper 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
{
  "country_code": "us",
  "description": "Search the world's information, including webpages, images, videos and more. Google has many special features to help you find …",
  "displayed_url": "https://ipv4.google.com",
  "domain": "ipv4.google.com",
  "estimated_total_results": "445,000 results",
  "keyword": "Good Choice Pavers 3429 Deer Creek Palladian Cir",
  "language": "en",
  "link": "https://ipv4.google.com/",
  "organic_rank": "1",
  "page_number": "1",
  "position_on_page": "1",
  "rank": "1",
  "result_type": "organic",
  "search_url": "https://www.bing.com/search?q=Good+Choice+Pavers+3429+Deer+Creek+Palladian+Cir&cc=us&setlang=en&first=1&FORM=QBLH&cvid=B8E51B84CFA44086B7B2A80C33F1568C",
  "source": "google.com",
  "title": "Google"
}
```

Example 2

```json
{
  "country_code": "fr",
  "description": "L’AS Monaco, réduite à dix avant la pause, a concédé ce samedi sa 2e défaite de la saison en Ligue 1 face à Lorient (1-3), porté par un …",
  "displayed_url": "https://www.maxifoot.fr › match",
  "domain": "maxifoot.fr",
  "estimated_total_results": "22-28 résultats sur 141 000",
  "keyword": "voicebot IA site:.fr",
  "language": "fr",
  "link": "https://www.maxifoot.fr/match/lorient-monaco-20250927.htm",
  "organic_rank": "1",
  "page_number": "1",
  "position_on_page": "1",
  "rank": "1",
  "result_type": "organic",
  "search_url": "https://www.bing.com/search?q=voicebot+IA+site%3A.fr&cc=fr&setlang=fr&first=1&FORM=QBLH&cvid=BA07B4796EBA41F68B8E56961CDC241B",
  "source": "maxifoot.fr",
  "title": "Ligue 1, Lorient - Monaco : 3 à 1 - FRANCE saison 2025-2026 ..."
}
```

Example 3

```json
{
  "country_code": "ca",
  "description": "TLS Architectural Lighting is located at 300 Mnt de Liesse in Saint-Laurent, Quebec H4T 1N9. TLS Architectural Lighting can be …",
  "displayed_url": "https://canada.chamberofcommerce.com › business-directory › quebec › sai…",
  "domain": "canada.chamberofcommerce.com",
  "estimated_total_results": "25,500 results",
  "keyword": "appels sortants IA site:.ca",
  "language": "en",
  "link": "https://canada.chamberofcommerce.com/business-directory/quebec/saint-laurent/manufacturer/1172934-tls-architectural-lighting",
  "organic_rank": "1",
  "page_number": "1",
  "position_on_page": "1",
  "rank": "1",
  "result_type": "organic",
  "search_url": "https://www.bing.com/search?q=appels+sortants+IA+site%3A.ca&cc=ca&setlang=en&first=1&FORM=QBLH&cvid=DAC24380F3994B128519850C0A861509",
  "source": "chamberofcommerce.com",
  "title": "TLS Architectural Lighting in Saint-Laurent, QC H4T 1N9 - 877-999..."
}
```

Example 4

```json
{
  "country_code": "de",
  "description": "Roblox is the world's largest social platform for play. We help power the imaginations of people around the world.",
  "displayed_url": "https://www.roblox.com",
  "domain": "roblox.com",
  "estimated_total_results": "50 Ergebnisse",
  "keyword": "Zuständige Kammer: impressum",
  "language": "de",
  "link": "https://www.roblox.com/",
  "organic_rank": "1",
  "page_number": "1",
  "position_on_page": "1",
  "rank": "1",
  "result_type": "organic",
  "search_url": "https://www.bing.com/search?q=Zust%C3%A4ndige+Kammer%3A+impressum&cc=de&setlang=de&first=1&FORM=QBLH&cvid=C5A1949A09C8441580D2B60C6A52B978",
  "source": "roblox.com",
  "title": "Roblox"
}
```

Example 5

```json
{
  "country_code": "de",
  "description": "Plan your Berlin trip with us and book your entry tickets for the most popular sights online. From museums to walking and city tours – …",
  "displayed_url": "https://www.visitberlin.de › en › tickets-events-attractions-berlin",
  "domain": "visitberlin.de",
  "estimated_total_results": "50 Ergebnisse",
  "keyword": "Anita Leschke impressum",
  "language": "de",
  "link": "https://www.visitberlin.de/en/tickets-events-attractions-berlin",
  "organic_rank": "1",
  "page_number": "1",
  "position_on_page": "1",
  "rank": "1",
  "result_type": "organic",
  "search_url": "https://www.bing.com/search?q=Anita+Leschke+impressum&cc=de&setlang=de&first=1&FORM=QBLH&cvid=BB619C2CB82E45548E95616DF9238BEC",
  "source": "visitberlin.de",
  "title": "Tickets for events, sights and attractions | visitBerlin.de"
}
```

## 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": "bing-search-results-scraper",
  "taskName": "Bing Search Results Scraper",
  "parameters": "{\"country/_Area\":\"United States - English\",\"keywords\":[\"Pompano Beach Concrete Solutions 231 NW 16th St\",\"Good Choice Pavers 3429 Deer Creek Palladian Cir\",\"Shine Stone Pavers 6800 NW 39th Ave LOT 163\"],\"pages_to_scrape\":1}"
}
```

## Python Example

```python
import json
import requests

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

parameters = json.loads("{\"country/_Area\":\"United States - English\",\"keywords\":[\"Pompano Beach Concrete Solutions 231 NW 16th St\",\"Good Choice Pavers 3429 Deer Creek Palladian Cir\",\"Shine Stone Pavers 6800 NW 39th Ave LOT 163\"],\"pages_to_scrape\":1}")

response = requests.post(
    f"{OPENAPI_BASE}/api/agentTools/executeTask",
    headers={
        "Authorization": f"Bearer {ACCESS_TOKEN}",
        "Content-Type": "application/json",
    },
    json={
        "templateName": "bing-search-results-scraper",
        "taskName": "Bing Search Results Scraper",
        "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": "bing-search-results-scraper",
  "taskName": "Bing Search Results Scraper",
  "parameters": "{\"country/_Area\":\"United States - English\",\"keywords\":[\"Pompano Beach Concrete Solutions 231 NW 16th St\",\"Good Choice Pavers 3429 Deer Creek Palladian Cir\",\"Shine Stone Pavers 6800 NW 39th Ave LOT 163\"],\"pages_to_scrape\":1}"
}
JSON
```

## MCP Setup

Connect an MCP-compatible AI client to `https://mcp.octoparse.com` using browser OAuth or an Octoparse API key. Find `bing-search-results-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/bing-search-results-scraper.json)
- [Manifest](https://www.octoparse.com/templates/bing-search-results-scraper-manifest.json)
