> ## Documentation Index
> Fetch the complete documentation index at: https://docs.scrapeunblocker.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Bing plugin

> Bing web and image search as clean JSON - organic results, top and bottom ads, related searches and result counts, plus image results with the full-resolution image URL, source page and dimensions.

The **Bing** plugin turns Bing searches into structured JSON. It has two endpoints:

* **Web search** (`/search/bing`) - a keyword to the results page: organic results with position, title, URL, displayed URL, domain and description, top and bottom ads in their own lists, related searches and Bing's total result count. The response has the same shape as Google results from [`/serpApi`](/guides/serp-scraping), so one pipeline reads both engines.
* **Image search** (`/images/bing-search`) - a keyword to image results: the full-resolution image URL on the publisher's site (not a Bing thumbnail), the source domain and page, title, site name, thumbnail, pixel dimensions and a Bing viewer link. The response has the same shape as the [Google Images plugin](/plugins/google-images).

Pick the market with `proxy_country`: it sets both Bing's market and the country the search is sent from, so you get the results and ads a searcher there sees. No Bing or Azure account is involved.

<Note>
  Try it in the dashboard first: [app.scrapeunblocker.com/dashboard/plugins](https://app.scrapeunblocker.com/dashboard/plugins). You get a live results view plus a copy-paste snippet.
</Note>

## Web search

```
POST /search/bing
```

| Field | Required | Notes |
| - | - | - |
| `keyword` | yes | Search terms, e.g. `project management software`. |
| `pages_to_check` | no | How many result pages to collect, `1`-`10` (about 10 results each). Default `1`. |
| `proxy_country` | no | Country to search from (ISO-2), e.g. `GB`. Sets the result market and the location the search is sent from, which decides the ads. Default `US`. |
| `language` | no | Interface language (ISO-639-1), e.g. `en`, `de`. Default `en`. |

<CodeGroup>
  ```bash cURL theme={null}
  curl -X POST "https://api.scrapeunblocker.com/search/bing?keyword=project%20management%20software&proxy_country=GB&language=en" \
    -H "x-scrapeunblocker-key: YOUR_API_KEY"
  ```

  ```python Python theme={null}
  from scrapeunblocker import Client

  su = Client()  # reads SCRAPEUNBLOCKER_KEY

  result = su.bing_search("project management software", proxy_country="GB", language="en")
  ```

  ```ts Node.js theme={null}
  import { ScrapeUnblockerClient } from "scrapeunblocker";

  const su = new ScrapeUnblockerClient(); // reads SCRAPEUNBLOCKER_KEY

  const result = await su.bingSearch("project management software", { proxyCountry: "GB", language: "en" });
  ```

  ```php PHP theme={null}
  use ScrapeUnblocker\Client;

  $su = new Client(); // reads SCRAPEUNBLOCKER_KEY

  $result = $su->bingSearch('project management software', ['proxy_country' => 'GB', 'language' => 'en']);
  ```

  ```ruby Ruby theme={null}
  require "scrapeunblocker"

  su = ScrapeUnblocker::Client.new # reads SCRAPEUNBLOCKER_KEY

  result = su.bing_search("project management software", proxy_country: "GB", language: "en")
  ```
</CodeGroup>

<Note>
  Each results page fetched is billed as one request: `pages_to_check=3` that returns three pages counts as 3 requests, and `pagesChecked` shows the exact number.
</Note>

### Response

```json theme={null}
{
  "engine": "bing",
  "keyword": "project management software",
  "country": "GB",
  "language": "en",
  "totalResults": 22600,
  "resultsCollected": 10,
  "topAdsCount": 5,
  "bottomAdsCount": 3,
  "organicResultsCount": 2,
  "topAds": [
    {
      "position": 2,
      "title": "5 Best Project Software Ranked | Project Management Software",
      "url": "https://www.bing.com/aclk?ld=e8-fNgN8Dt38vusxXHTB2oWjVUCUyL6FOniFCu5FpDMadcGXixeVe...",
      "displayedUrl": "https://work-management.org › best_project › software",
      "domain": "work-management.org",
      "description": "Compare top-rated project tools to organize tasks and improve team performance in 2026..."
    }
  ],
  "bottomAds": [
    {
      "position": 3,
      "title": "10 Best Free Project Mgmt Apps | These 10 Tools Rock",
      "url": "https://www.bing.com/aclk?ld=e8lkAKOAsyIDo-j_yT0UgJyDVUCUyw-gFaazVS0W6CUP814h8YWm2...",
      "displayedUrl": "https://www.top10.com › Project-Mgmt › free",
      "domain": "top10.com",
      "description": "Try for Free Project Management Softwares & Pick The One that Best Manage Your Team Tasks..."
    }
  ],
  "organic": [
    {
      "position": 1,
      "title": "10 Best Project Management Software of 2026 - Forbes Advisor",
      "url": "https://www.forbes.com/advisor/business/software/best-project-management-software/",
      "displayedUrl": "https://www.forbes.com › advisor › business › software › best-project...",
      "domain": "forbes.com",
      "description": "Sep 25, 2026 · Compare 22 providers of project management software based on pricing, features, integrations..."
    }
  ],
  "relatedSearches": [
    "project management software for small business",
    "best project management software 2026",
    "project management software pricing uk"
  ],
  "pagesChecked": 1,
  "hasMore": true
}
```

| Field | Notes |
| - | - |
| `organic` | Organic results in page order: `position`, `title`, `url`, `displayedUrl` (as Bing prints it), `domain` and `description` (the snippet). |
| `topAds` / `bottomAds` | Ads above and below the results, with the same fields. `url` is Bing's ad click link; `domain` is the advertiser's domain. Bing does not show ads on every query, so an empty list is a normal answer. |
| `relatedSearches` | Bing's related searches. |
| `totalResults` | Bing's "about N results" count. |
| `resultsCollected` | Ads plus organic results returned. `topAdsCount`, `bottomAdsCount` and `organicResultsCount` count each list. |
| `pagesChecked` / `hasMore` | Pages fetched (the billed number) and whether Bing has more pages. |
| `country` / `language` | The market the search ran in. |

## Image search

```
POST /images/bing-search
```

| Field | Required | Notes |
| - | - | - |
| `q` | yes | Image search term, e.g. `golden gate bridge`. |
| `pages` | no | How many result pages to fetch, `1`-`10` (about 35 results each). Default `1`. |
| `max_results` | no | Cap on the number of results returned, `1`-`400`. Default: all results of the fetched pages. |
| `proxy_country` | no | Country to search from (ISO-2); sets the Bing market. Default `US`. |
| `language` | no | Interface language (ISO-639-1), e.g. `en`, `de`. Default `en`. |

<CodeGroup>
  ```bash cURL theme={null}
  curl -X POST "https://api.scrapeunblocker.com/images/bing-search?q=golden%20gate%20bridge&max_results=5&proxy_country=US" \
    -H "x-scrapeunblocker-key: YOUR_API_KEY"
  ```

  ```python Python theme={null}
  from scrapeunblocker import Client

  su = Client()  # reads SCRAPEUNBLOCKER_KEY

  result = su.bing_images("golden gate bridge", max_results=5, proxy_country="US")
  ```

  ```ts Node.js theme={null}
  import { ScrapeUnblockerClient } from "scrapeunblocker";

  const su = new ScrapeUnblockerClient(); // reads SCRAPEUNBLOCKER_KEY

  const result = await su.bingImages("golden gate bridge", { maxResults: 5, proxyCountry: "US" });
  ```

  ```php PHP theme={null}
  use ScrapeUnblocker\Client;

  $su = new Client(); // reads SCRAPEUNBLOCKER_KEY

  $result = $su->bingImages('golden gate bridge', ['max_results' => 5, 'proxy_country' => 'US']);
  ```

  ```ruby Ruby theme={null}
  require "scrapeunblocker"

  su = ScrapeUnblocker::Client.new # reads SCRAPEUNBLOCKER_KEY

  result = su.bing_images("golden gate bridge", max_results: 5, proxy_country: "US")
  ```
</CodeGroup>

<Note>
  Each results page fetched is billed as one request: `pages=3` counts as 3 requests, and `pagesFetched` shows the exact number. `max_results` only trims the list, it does not change the pages fetched.
</Note>

### Response

```json theme={null}
{
  "engine": "bing",
  "query": "golden gate bridge",
  "hl": "en",
  "gl": "us",
  "proxyCountry": "US",
  "resultsCollected": 5,
  "pagesFetched": 1,
  "hasMore": true,
  "results": [
    {
      "position": 1,
      "imageUrl": "https://cdn.britannica.com/13/77413-050-95217C0B/Golden-Gate-Bridge-San-Francisco.jpg",
      "sourceDomain": "britannica.com",
      "sourcePageUrl": "https://www.britannica.com/topic/Golden-Gate-Bridge",
      "title": "Golden Gate Bridge | History, Construction, & Facts | Britannica",
      "sourceName": "Britannica",
      "thumbnailUrl": "https://ts4.mm.bing.net/th?id=OIP.9XsqX3Ps1eIb0pi2tSYCowHaFa&pid=15.1",
      "width": 1600,
      "height": 1168,
      "fileSize": null,
      "bingImagesUrl": "https://www.bing.com/images/search?view=detailV2&ccid=9XsqX3Ps&id=4A8224F1BDACF5E1B90591284E308440F4CAD685&thid=OIP.9XsqX3Ps1eIb0pi2tSYCowHaFa..."
    }
  ]
}
```

| Field | Notes |
| - | - |
| `imageUrl` | The full-resolution original image on the publisher's site, not a Bing thumbnail. |
| `sourceDomain` / `sourcePageUrl` | The site and the page that show the image. |
| `title` / `sourceName` | The result title and the site name Bing shows for it. |
| `thumbnailUrl` | A Bing-hosted thumbnail, for fast previews. |
| `width` / `height` | Original image dimensions in pixels. |
| `fileSize` | Kept for the same shape as the Google Images plugin. Bing does not show a file size, so it is always `null`. |
| `bingImagesUrl` | Bing's image viewer link for the result. |
| `pagesFetched` / `hasMore` | Pages fetched (the billed number) and whether Bing has more results. |

## Errors

| Status | Meaning |
| - | - |
| `400` | Invalid parameters, e.g. a `proxy_country` that is not an ISO-2 code (or not available) or a `language` that is not an ISO-639-1 code. |
| `502` | Bing blocked the search, returned no results page, or the search did not finish in time. Retry. |

## What you can build

* **Rank tracking** - follow where your pages rank on Bing next to Google, with one parser for both.
* **Ad intelligence** - see which advertisers bid on your keywords in each country.
* **Keyword research** - collect related searches for content planning.
* **Image sourcing and monitoring** - find where an image or product photo appears, with the original file and the page that uses it.

## Next steps

<CardGroup cols={2}>
  <Card title="Open the plugins" icon="play" href="https://app.scrapeunblocker.com/dashboard/plugins">
    Run a Bing search and grab the JSON.
  </Card>

  <Card title="Get an API key" icon="key" href="https://scrapeunblocker.com/pricing">
    Free trial available on the pricing page.
  </Card>
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.