# Bing Web Search API Scraper (`rl1987/bing-search-api-scraper`) Actor

Search Bing Web using the mobile app's API (bingapis.com/api/v7). Returns web search results (title, URL, snippet), images, news, and related searches. Extracted from the Microsoft Bing Android app (com.microsoft.bing v32.6).

- **URL**: https://apify.com/rl1987/bing-search-api-scraper.md
- **Developed by:** [R.L.](https://apify.com/rl1987) (community)
- **Categories:** SEO tools, News, Lead generation
- **Stats:** 2 total users, 1 monthly users, 57.1% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.00 / 1,000 bing api calls

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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/docs.md):

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

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.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/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

Extract [Bing](https://www.bing.com) **web search results, images, news, and related searches** in a single fast API call — no browser, no CAPTCHAs, no HTML parsing. This Bing Search API scraper pulls data straight from the Bing mobile app's internal API for clean, structured results.

### What does Bing Web Search API Scraper do?

Bing Web Search API Scraper sends your search query directly to Bing's own backend API (the same one used by the Bing Android app) and returns the results as ready-to-use JSON: organic web results (title, URL, snippet, position), image results, news results, and related search suggestions — all in one run. Because it talks to the API instead of rendering and scraping HTML pages, it's fast, lightweight, and doesn't require browser automation.

Just enter a search query and run the Actor — no coding required. Every run is available through the [Apify API](https://docs.apify.com/api/v2), so you can schedule searches, monitor rankings over time, or plug results straight into your app, spreadsheet, or BI tool.

### Why use Bing Web Search API Scraper?

- **SEO & SERP tracking** — monitor your website's Bing search rankings for target keywords over time.
- **Competitor research** — see which pages competitors rank for and how their snippets appear.
- **Market & content research** — pull real search results and related searches for keyword and topic research.
- **News monitoring** — track fresh news coverage for a brand, topic, or person.
- **Image sourcing** — collect image search results (thumbnails, dimensions, formats) for a given query.
- **Data enrichment** — feed Bing search results into downstream pipelines, dashboards, or AI/LLM workflows.

Running on the Apify platform gives you scheduled runs, webhooks, dozens of ready-made integrations (Zapier, Make, Google Sheets, Slack, and more), proxy rotation, and full API/programmatic access — so you can go from a manual query to a production data pipeline in minutes.

### How to use Bing Web Search API Scraper

1. Click **Try for free** or open the Actor in [Apify Console](https://console.apify.com/actors).
2. Enter your **search query** (e.g. `best noise cancelling headphones 2026`) in the input form.
3. Optionally set the **market** (e.g. `en-US`, `de-DE`), **safe search** level, and how many **images**, **news**, or **related searches** to include.
4. Click **Start** and wait for the run to finish — usually just a few seconds.
5. Open the **Dataset** tab to preview, filter, and export your results.

You can also run the Actor programmatically via the [Apify API](https://docs.apify.com/api/v2) or [Apify SDK](https://docs.apify.com/sdk), and schedule it to run automatically (e.g. daily rank tracking).

### Input

Configure the scraper through the Input tab in Apify Console, or by passing a JSON object via the API. Main fields:

| Field | Type | Description |
|---|---|---|
| `q` | String | Search query / keyword to search for. |
| `maxItems` | Integer | Maximum number of results to return (`0` = all available). |
| `market` | String | Market/locale code, e.g. `en-US`, `fr-FR`, `zh-CN`. Defaults to `en-US`. |
| `safeSearch` | String | Content filtering: `Off`, `Moderate`, or `Strict`. |
| `includeImages` | Boolean | Include image search results in the output. |
| `includeNews` | Boolean | Include news search results in the output. |
| `includeRelatedSearches` | Boolean | Include related search suggestions in the output. |
| `resultsPerPage` | Integer | Number of results requested per API call (max ~50). |
| `proxyConfiguration` | Object | Proxy settings — Apify Proxy is used by default. |

Example input:

```json
{
  "q": "best noise cancelling headphones 2026",
  "maxItems": 50,
  "market": "en-US",
  "safeSearch": "Moderate",
  "includeImages": true,
  "includeNews": true,
  "includeRelatedSearches": true,
  "resultsPerPage": 10
}
````

### Output

Results are stored in a dataset, one item per search result (organic, image, news, or related search). You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.

Example output item (organic web result):

```json
{
  "position": 1,
  "name": "Best Noise Cancelling Headphones 2026 | Reviews",
  "url": "https://example.com/best-headphones-2026",
  "displayUrl": "example.com/best-headphones-2026",
  "snippet": "Our top picks for noise cancelling headphones in 2026, tested for sound quality, comfort, and battery life.",
  "dateLastCrawled": "2026-07-10T00:00:00Z",
  "language": "en",
  "isFamilyFriendly": true,
  "resultType": "organic",
  "query": "best noise cancelling headphones 2026"
}
```

#### Data table

| Field | Description |
|---|---|
| `position` | Rank position of the result. |
| `name` | Result title. |
| `url` | Result URL. |
| `displayUrl` | Human-readable display URL. |
| `snippet` | Result description/snippet text. |
| `dateLastCrawled` | Date Bing last crawled the page. |
| `language` | Detected language of the result. |
| `isFamilyFriendly` | Whether the result passed safe search filtering. |
| `isNavigational` | Whether the query looks navigational (e.g. brand/site name). |
| `deepLinks` | Sub-links Bing shows under the main result. |
| `imgThumb`, `imgContent`, `imgWidth`, `imgHeight`, `imgFormat` | Image result fields (when `includeImages` is on). |
| `newsPage`, `newsDesc`, `newsDatePublished`, `newsImgThumb`, `newsProviderName` | News result fields (when `includeNews` is on). |
| `relatedSearchText` | Related search suggestion text (when `includeRelatedSearches` is on). |
| `totalEstimatedMatches` | Bing's estimated total number of matches for the query. |
| `resultType` | Type of result: `organic`, `image`, `news`, or `relatedSearch`. |
| `query` | The search query that produced this result. |

### How much does it cost to scrape Bing search results?

This Actor uses **pay-per-event (PPE)** pricing: you're charged **$0.001 per Bing API call**, not per compute unit and not per output record. Each call is one page of pagination and returns all of that page's results (organic web results, plus images, news, and related searches on the first page) for a single charge, so a typical multi-page run costs a small, predictable fraction of a cent per page. There's no separate platform CU billing on top of this — the only cost is the per-call charge. Apify's [free plan](https://apify.com/pricing) includes monthly platform credits, which comfortably covers hundreds of pages per month for testing or light use. Note the underlying free API key is rate-limited to roughly 3 calls per minute — for high-volume use, provide your own key or a paid tier.

### Tips for best results

- Keep `maxItems` and `resultsPerPage` no larger than you need — smaller runs finish faster and cost less.
- Turn off `includeImages` / `includeNews` / `includeRelatedSearches` if you only need organic web results — this reduces run time and output size.
- Set `market` to match your target audience's locale for more relevant, localized results.
- Use Apify's [Scheduler](https://docs.apify.com/platform/schedules) to track ranking changes for the same query over time.
- Respect the ~3 calls/minute rate limit on the default free API key when running frequent or large batches of queries.

### FAQ

**Is it legal to scrape Bing search results?**
Scraping publicly available search result data is generally legal, but you're responsible for complying with Bing's Terms of Service and applicable laws in your jurisdiction, especially around rate limits and commercial use. This Actor is intended for research, monitoring, and legitimate business use cases.

**Does this need my own Bing API key?**
No — a default key is used out of the box, but it's rate-limited (~3 calls/minute). For higher-volume or production use, consider requesting your own key.

**Can I search other regions or languages?**
Yes — set the `market` input field (e.g. `de-DE`, `ja-JP`, `es-MX`) to get localized results.

**Something not working or missing a field you need?**
Open an issue on the Actor's **Issues** tab in Apify Console, or reach out for a custom scraping solution tailored to your use case.

# Actor input Schema

## `q` (type: `string`):

Keyword or phrase to search for (e.g. 'python programming', 'artificial intelligence')

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

Maximum number of results to return (0 = all available). Rate limited to ~3 calls/minute with free key.

## `market` (type: `string`):

Market code (e.g. en-US, zh-CN, fr-FR). Default: en-US.

## `safeSearch` (type: `string`):

Content filtering level

## `includeImages` (type: `boolean`):

Include image search results in output

## `includeNews` (type: `boolean`):

Include news search results in output

## `includeRelatedSearches` (type: `boolean`):

Include related search suggestions in output

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

Number of results per API call (max ~50)

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

Route requests through a proxy (Apify Proxy by default).

## Actor input object example

```json
{
  "q": "python",
  "maxItems": 50,
  "market": "en-US",
  "safeSearch": "Moderate",
  "includeImages": true,
  "includeNews": true,
  "includeRelatedSearches": true,
  "resultsPerPage": 10,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `results` (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 = {
    "q": "python",
    "market": "en-US",
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("rl1987/bing-search-api-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 = {
    "q": "python",
    "market": "en-US",
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("rl1987/bing-search-api-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 '{
  "q": "python",
  "market": "en-US",
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call rl1987/bing-search-api-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Bing Web Search API Scraper",
        "description": "Search Bing Web using the mobile app's API (bingapis.com/api/v7). Returns web search results (title, URL, snippet), images, news, and related searches. Extracted from the Microsoft Bing Android app (com.microsoft.bing v32.6).",
        "version": "0.0",
        "x-build-id": "0GI4Qg34MR2GLjIPz"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/rl1987~bing-search-api-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-rl1987-bing-search-api-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/rl1987~bing-search-api-scraper/runs": {
            "post": {
                "operationId": "runs-sync-rl1987-bing-search-api-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/rl1987~bing-search-api-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-rl1987-bing-search-api-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": {
                    "q": {
                        "title": "Search query",
                        "type": "string",
                        "description": "Keyword or phrase to search for (e.g. 'python programming', 'artificial intelligence')"
                    },
                    "maxItems": {
                        "title": "Max items",
                        "minimum": 1,
                        "maximum": 500,
                        "type": "integer",
                        "description": "Maximum number of results to return (0 = all available). Rate limited to ~3 calls/minute with free key.",
                        "default": 50
                    },
                    "market": {
                        "title": "Market",
                        "type": "string",
                        "description": "Market code (e.g. en-US, zh-CN, fr-FR). Default: en-US."
                    },
                    "safeSearch": {
                        "title": "Safe search",
                        "enum": [
                            "Off",
                            "Moderate",
                            "Strict"
                        ],
                        "type": "string",
                        "description": "Content filtering level",
                        "default": "Moderate"
                    },
                    "includeImages": {
                        "title": "Include images",
                        "type": "boolean",
                        "description": "Include image search results in output",
                        "default": true
                    },
                    "includeNews": {
                        "title": "Include news",
                        "type": "boolean",
                        "description": "Include news search results in output",
                        "default": true
                    },
                    "includeRelatedSearches": {
                        "title": "Include related searches",
                        "type": "boolean",
                        "description": "Include related search suggestions in output",
                        "default": true
                    },
                    "resultsPerPage": {
                        "title": "Results per page",
                        "minimum": 1,
                        "maximum": 50,
                        "type": "integer",
                        "description": "Number of results per API call (max ~50)",
                        "default": 10
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Route requests through a proxy (Apify Proxy by default).",
                        "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
