How to Scrape Bing Search Results with a SERP API

Learn how to scrape Bing search results with a SERP API using Python. Extract titles, URLs, snippets, ranking positions, domains, and metadata for SEO, AI agents, RAG workflows, and competitor monitoring.

How to Scrape Bing Search Results with a SERP API
Marcus Bennett
Last updated on
6 min read

To scrape Bing search results with a SERP API, send a search query with parameters such as keyword, location, language, device, and result page. The API returns structured SERP JSON, which you can parse to extract titles, URLs, snippets, ranking positions, domains, and search metadata.

This is useful for SEO monitoring, competitor tracking, AI agents, RAG source discovery, brand visibility checks, and market research.

Instead of building your own scraper, browser automation, proxy rotation, CAPTCHA handling, and parser logic, a SERP API gives you a cleaner workflow:

Search query
→ SERP API request
→ Bing SERP JSON
→ Extract organic results
→ Store results in CSV, database, dashboard, or AI pipeline

Talordata’s documentation lists Bing Search as a supported SERP API query-parameter workflow, including localization and geographic targeting options. Its product page also positions SERP API as structured real-time search data across Google and major engines, with JSON / HTML output and geo-targeted SERP data.

What Data Can You Collect from Bing SERP?

A Bing SERP API response usually focuses on structured search result fields.

For organic results, the most useful fields are:

Field

Meaning

position

Ranking position in Bing search results

title

Search result title

link / url

Destination URL

domain

Website domain

snippet

Search result summary

displayed_link

Displayed URL or breadcrumb

date

Date signal, if available

search_parameters

Query, location, language, device, and page context

Depending on the provider and query type, Bing SERP data may also include related searches, news results, images, videos, ads, local results, or other visible search modules.

For SEO and AI workflows, the key is not only whether the API returns data. The key is whether the data is clean, stable, and easy to parse.

Basic Request Parameters

Most Bing SERP API workflows need a few core parameters.

Parameter

Why It Matters

query

The keyword or search phrase

engine

Defines Bing as the target search engine

location

Controls country, region, or city context

language

Controls localized search experience

device

Separates desktop and mobile-style results

page / start

Controls pagination

num

Controls result count, if supported

output

JSON or HTML response format

A provider-agnostic request body may look like this:

{
  "engine": "bing",
  "query": "best project management software",
  "location": "United States",
  "language": "en",
  "device": "desktop",
  "page": 1,
  "output": "json"
}

You can test this kind of workflow with tools like SerpApi, SearchAPI, Bright Data, or Talordata. The important part is whether the response gives you clean fields your SEO tool, AI agent, or data pipeline can use directly.

Example Bing SERP JSON

A simplified Bing SERP JSON response may look like this:

{
  "search_parameters": {
    "engine": "bing",
    "query": "best project management software",
    "location": "United States",
    "language": "en",
    "device": "desktop",
    "page": 1
  },
  "organic_results": [
    {
      "position": 1,
      "title": "Best Project Management Software of 2026",
      "link": "https://example.com/project-management-software",
      "snippet": "Compare project management tools for teams, pricing, integrations, and workflows."
    },
    {
      "position": 2,
      "title": "Top Project Management Tools for Small Businesses",
      "link": "https://example.com/small-business-tools",
      "snippet": "A practical guide to choosing project management software for small teams."
    }
  ],
  "related_searches": [
    "project management software for startups",
    "project management tools comparison",
    "free project management software"
  ]
}

In most workflows, organic_results is the first array you should parse.

Python Example: Send a SERP API Request

The exact endpoint and authentication method depend on your provider. The structure below keeps the example provider-neutral.

import os
import requests

SERP_API_KEY = os.getenv("SERP_API_KEY")
SERP_API_ENDPOINT = os.getenv("SERP_API_ENDPOINT")

params = {
    "engine": "bing",
    "query": "best project management software",
    "location": "United States",
    "language": "en",
    "device": "desktop",
    "page": 1,
    "output": "json"
}

headers = {
    "Authorization": f"Bearer {SERP_API_KEY}"
}

response = requests.get(
    SERP_API_ENDPOINT,
    params=params,
    headers=headers,
    timeout=30
)

response.raise_for_status()
serp_json = response.json()

print(serp_json)

In production, keep your API key in environment variables or a secret manager. Do not hard-code it into frontend code or public repositories.

Extract Titles, Links, and Snippets

After receiving Bing SERP JSON, parse the organic results.

from urllib.parse import urlparse


def get_domain(url: str | None) -> str:
    if not url:
        return ""

    parsed = urlparse(url)
    return parsed.netloc.replace("www.", "") if parsed.netloc else ""


def clean_text(value: str | None) -> str:
    if not value:
        return ""
    return " ".join(value.split())


def extract_bing_organic_results(serp_json: dict) -> list[dict]:
    organic_results = serp_json.get("organic_results", [])
    extracted = []

    for index, item in enumerate(organic_results, start=1):
        link = item.get("link") or item.get("url")

        result = {
            "position": item.get("position") or index,
            "title": clean_text(item.get("title")),
            "link": link or "",
            "domain": get_domain(link),
            "snippet": clean_text(item.get("snippet") or item.get("description"))
        }

        if result["title"] and result["link"]:
            extracted.append(result)

    return extracted

Usage:

results = extract_bing_organic_results(serp_json)

for result in results:
    print(result["position"], result["title"], result["link"])

This gives you a clean list of Bing organic results that can be stored, exported, or passed into another workflow.

Add Search Metadata

A ranking position without context is not very useful.

For SEO tracking, always store query, engine, location, language, device, page, and timestamp when available.

def add_search_metadata(results: list[dict], serp_json: dict) -> list[dict]:
    params = serp_json.get("search_parameters", {})

    for result in results:
        result["query"] = params.get("query") or params.get("q") or ""
        result["engine"] = params.get("engine") or "bing"
        result["location"] = params.get("location") or ""
        result["language"] = params.get("language") or ""
        result["device"] = params.get("device") or ""
        result["page"] = params.get("page") or ""

    return results

This makes the data easier to compare later.

For example, the same keyword may rank differently across countries, languages, or devices. Without metadata, you will not know which market the ranking came from.

Export Bing SERP Results to CSV

CSV is useful for SEO review, reporting, spreadsheet analysis, and simple data handoff.

import csv


def save_results_to_csv(results: list[dict], filename: str = "bing_serp_results.csv") -> None:
    fieldnames = [
        "query",
        "engine",
        "location",
        "language",
        "device",
        "page",
        "position",
        "title",
        "link",
        "domain",
        "snippet"
    ]

    with open(filename, mode="w", newline="", encoding="utf-8") as file:
        writer = csv.DictWriter(file, fieldnames=fieldnames)
        writer.writeheader()
        writer.writerows(results)


results = extract_bing_organic_results(serp_json)
results = add_search_metadata(results, serp_json)
save_results_to_csv(results)

The output CSV can be imported into Google Sheets, Excel, a BI dashboard, or your own SEO database.

Common Use Cases

SEO Rank Tracking

Bing may not have the same search volume as Google, but it still matters for many industries, especially when teams want broader search visibility across multiple engines.

Useful fields include:

Field

SEO Use

position

Track ranking movement

title

Check result presentation

link

Identify ranking URL

domain

Monitor competitors

snippet

Review search messaging

location

Compare markets

device

Separate device context

Competitor Monitoring

A Bing SERP API can help you check which competitors appear for important keywords.

You can track:

  • competing domains

  • ranking changes

  • snippet changes

  • new pages entering the SERP

  • brand visibility by market

AI Agents and RAG

AI agents can use Bing SERP JSON as a source discovery layer.

A typical workflow looks like this:

User question
→ Generate Bing query
→ Get SERP JSON
→ Extract titles, links, snippets, and domains
→ Filter sources
→ Fetch selected pages
→ Generate grounded answer

The agent should not fetch every URL. It should first filter results based on title, snippet, domain, and relevance.

FAQ

What is a Bing SERP API?

A Bing SERP API is an API that returns Bing search results in a structured format, usually JSON or HTML. It helps developers collect titles, URLs, snippets, ranking positions, domains, and search metadata without building their own scraper.

Can I scrape Bing search results with Python?

Yes. You can use Python to call a SERP API, receive Bing SERP JSON, parse organic_results, and export fields such as title, link, snippet, position, and domain.

What fields should I store from Bing SERP JSON?

For SEO and data workflows, store query, engine, location, language, device, page, timestamp, position, title, link, domain, and snippet.

Is Bing SERP data useful for AI agents?

Yes. Bing SERP data can help AI agents discover sources, compare domains, filter snippets, and choose pages to fetch before generating grounded answers.

Final Thoughts

Scraping Bing search results with a SERP API is mainly about turning search pages into clean, structured data.

Start with the basics: query, location, language, device, and page. Start free testing

Then extract the fields your workflow needs: position, title, link, domain, and snippet.

For SEO, this helps track rankings and competitors. For AI agents and RAG, it helps discover sources before fetching full pages. For market research, it helps compare search visibility across topics, brands, and regions.

The best workflow is simple: send a targeted Bing query, receive structured SERP JSON, normalize the fields, store metadata, and test the same query across locations or engines when comparison matters.

Scale Your Data
Operations Today.

Join the world's most robust proxy network.

Start Free Trial