# 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:** 1 total users, 0 monthly users, 93.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/actors/running/actors-in-store.md#pay-per-event

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

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.

### Did you find this useful?

⭐ Rate this actor on Apify! Your feedback helps other users find it and helps us keep improving it.

# Actor input Schema

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

Keyword, phrase, or Bing dork to search for. Supports Bing search operators for advanced queries, e.g.: site:example.com (limit to domain), filetype:pdf apify (find PDFs), intitle:"apify actors" (title match), inurl:login (URL match), "exact phrase" (exact match), site:linkedin.com/in intitle:"software engineer" (people search), -exclude (exclude term).

## `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, Residential group, by default). Datacenter IPs get 429-blocked by Bing fast — residential is needed for reliable runs.

## Actor input object example

```json
{
  "q": "site:apify.com filetype:pdf",
  "maxItems": 50,
  "market": "en-US",
  "safeSearch": "Moderate",
  "includeImages": true,
  "includeNews": true,
  "includeRelatedSearches": true,
  "resultsPerPage": 10,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# 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": "site:apify.com filetype:pdf",
    "market": "en-US",
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// 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": "site:apify.com filetype:pdf",
    "market": "en-US",
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# 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(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 '{
  "q": "site:apify.com filetype:pdf",
  "market": "en-US",
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call rl1987/bing-search-api-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,rl1987/bing-search-api-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/csjsMpL3MY3DmiHfq/builds/p5OI8zZoWKjblYYZD/openapi.json
