# Bing SERP (`s-r/bing-serp`) Actor

A hosted bing search api alternative that returns live organic Bing results as structured JSON, no Microsoft Azure subscription, no per-month minimum, no rate-limit surprises. Run it from the Apify Store with one click, or call it from your own service via the Apify API.

- **URL**: https://apify.com/s-r/bing-serp.md
- **Developed by:** [SR](https://apify.com/s-r) (community)
- **Categories:** SEO tools
- **Stats:** 2 total users, 0 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per event

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## Bing SERP Scraper: Organic Bing Results API

A hosted **bing search api** alternative that returns live organic Bing results as structured JSON, no Microsoft Azure subscription, no per-month minimum, no rate-limit surprises. Run it from the Apify Store with one click, or call it from your own service via the Apify API. Pay per organic result, not per call quota you'll never use.

If you've been searching for a **bing search api free tier** that doesn't exist (Microsoft retired the official free tier in August 2025), or you're hitting **bing search api cost** numbers that don't justify the volume, this Actor gives you the same data with usage-based pricing.

### What you get

- **Live Bing organic results**, title, URL, displayed URL, snippet, and rank for every organic listing on the page.
- **Decoded destination URLs**, Bing wraps every result in a `bing.com/ck/a` redirect; this Actor decodes them back to the real target URL so you don't have to.
- **Market targeting**, query Bing from any of its 100+ supported markets (`en-US`, `nl-NL`, `de-DE`, `ja-JP`, etc.).
- **Pagination support**, offset parameter for fetching results 11–50 of any query.
- **Pay only for what you scrape**, pricing scales with the number of organic results returned. No subscription, no per-call minimums.

### Why use this bing search api alternative

Microsoft shut down the official Bing Search API free tier on August 11, 2025. The remaining paid tiers start at $4 per 1,000 transactions and require an Azure subscription, billing setup, and contract minimums. For most use cases, SEO monitoring, AI-grounding research, competitive intelligence, that's overkill.

This Apify Actor sits in between the dead free tier and the heavyweight Azure contract: hosted infrastructure that handles Bing's anti-bot protection and decodes the redirect-wrapped URLs, but priced per organic result with no monthly commitment. It's also **the bing search api chatgpt** developers reach for when they need a non-Google grounding source for AI assistants, Bing powers ChatGPT browsing, so visibility in Bing matters for AI-recommendation tracking.

### Input

| Field | Type | Default | Description |
|---|---|---|---|
| `q` | string | **required** | Search query. |
| `mkt` | string | `en-US` | Bing market code (e.g. `en-US`, `nl-NL`, `de-DE`, `ja-JP`). |
| `limit` | integer | `10` | Number of organic results (1–50). |
| `offset` | integer | `0` | First-result offset for pagination (0, 10, 20, …). |

### Output

Every run pushes results to the Apify dataset as JSON records, one per organic result:

```json
{
  "rank": 1,
  "title": "Apify: Full-stack web scraping and data extraction platform",
  "url": "https://apify.com/",
  "displayed_url": "https://apify.com/",
  "snippet": "Cloud platform for web scraping, browser automation, AI agents, and data for AI...",
  "q": "apify",
  "mkt": "en-US",
  "offset": 0,
  "fetched_in_seconds": 0.42
}
```

You can:

- **Download** the dataset as JSON, JSONL, CSV, or Excel from the Apify console
- **Stream** results via the Apify API for use in your own application
- **Pipe** results to webhooks, S3, BigQuery, or any of Apify's 30+ integrations
- **Diff** today's run against yesterday's to detect ranking changes, new entries, and dropped pages

### Use cases

#### AI-grounding visibility tracking (ChatGPT, Copilot)

ChatGPT browsing and Microsoft Copilot both ground responses on Bing organic results. If your brand or category isn't visible in the Bing top 10, AI assistants won't recommend you. Run the Actor daily on your brand and category keywords to monitor AI-recommendation health.

#### Bing SEO rank tracking

Schedule daily runs across your tracked keyword set. Pipe results to your warehouse and surface in your existing SEO dashboards, same data your enterprise SEO platform charges $1,000+/month for, billed per result instead.

#### Competitive monitoring across geos

Bing has very different market share by country (3% globally, 7% in the US, 5% in Germany). Running the same query across `en-US`, `de-DE`, and `en-GB` reveals which competitors are investing in Bing-specific SEO vs Google-only.

#### Migrating off the dead Bing Search API free tier

If you built a pipeline against Microsoft's Bing Search API before they killed the free tier, this Actor is a drop-in replacement at a fraction of the Azure pricing, same data shape, same query parameters, hosted infrastructure.

### How it compares

Third-party Bing SERP providers that rank for this query include Oxylabs, SerpApi, and DataForSEO. All three return structured Bing results without an Azure account, same as this Actor. The difference is access and billing:

- **No separate provider signup.** You run this from an Apify account you likely already have, not a new Oxylabs, SerpApi, or DataForSEO contract.
- **Pay per organic result.** Billing scales with the results returned, versus the monthly search plans (SerpApi) or prepaid credit balances (Oxylabs, DataForSEO) those providers use.
- **No quota commitment.** No minimum monthly volume to hit, no unused allowance to forfeit.
- **Hosted, JSON, one click.** Same as the alternatives on infrastructure (nothing to run), plus the Actor decodes Bing's `bing.com/ck/a` redirect wrappers back to real destination URLs for you.

### FAQ

#### Is there still a bing search api free tier in 2026?

No. Microsoft retired the Bing Search API free tier on August 11, 2025. The remaining paid tiers (Bing Web Search S1–S9) require an Azure subscription with billing enabled. This Apify Actor exists specifically to fill the gap left by that shutdown, usage-based pricing, no Azure account required.

#### How to get a bing search api key without an Azure subscription?

You can't, Microsoft requires Azure for the official API. This Actor uses Bing's public web interface instead, so you don't need any Microsoft account, key, or subscription. Just an Apify account.

#### What's the bing search api cost compared to this Actor?

Microsoft's S1 tier is $4 per 1,000 transactions with a $1,000/month commitment in some regions. This Actor charges per individual organic result returned, with no monthly minimum.

#### Can I use this as a bing search api alternative for ChatGPT plugin grounding?

Yes, the response shape (rank, title, URL, snippet) matches the format AI tools typically consume. You can pipe Actor output into your LLM context for grounded answers without needing the official API.

#### What happens with Bing's anti-bot protection?

The Actor handles it. Bing returns results wrapped in a `bing.com/ck/a` redirect tracker; the Actor decodes that back to the real URL so your downstream pipeline sees clean destination links. If Bing serves a captcha or blocks the request, the Actor surfaces a structured error in the dataset's `errors` field rather than failing silently.

#### Can I run this on a schedule?

Yes, Apify has built-in scheduling. Set the Actor to run hourly, daily, or weekly per tracked keyword. Most teams schedule daily runs across their keyword set and incrementally diff against the previous run to surface ranking changes.

### Pricing

This bing search api alternative uses Apify's pay-per-event pricing, every successful organic result costs a small fixed amount, plus a tiny per-run start fee. Your bill scales linearly with usage. There's no monthly subscription, no Azure account required, no per-call quota commitments. See the Apify Store page for the current per-result price.

# Actor input Schema

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

Search query.

## `mkt` (type: `string`):

Bing market code (e.g. 'en-US', 'nl-NL', 'de-DE').

## `limit` (type: `integer`):

Number of organic results (1–50).

## `offset` (type: `integer`):

First-result offset for pagination (0, 10, 20…).

## Actor input object example

```json
{
  "q": "apify",
  "mkt": "en-US",
  "limit": 10,
  "offset": 0
}
```

# Actor output Schema

## `results` (type: `string`):

One row per organic Bing result for the given query and market.

## `output` (type: `string`):

OUTPUT record with the run's counts and status flags.

## `errors` (type: `string`):

Failures with a code and a redacted message. Absent when the run had none.

# 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": "apify",
    "mkt": "en-US",
    "limit": 10,
    "offset": 0
};

// Run the Actor and wait for it to finish
const run = await client.actor("s-r/bing-serp").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": "apify",
    "mkt": "en-US",
    "limit": 10,
    "offset": 0,
}

# Run the Actor and wait for it to finish
run = client.actor("s-r/bing-serp").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": "apify",
  "mkt": "en-US",
  "limit": 10,
  "offset": 0
}' |
apify call s-r/bing-serp --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,s-r/bing-serp"
        }
    }
}

```

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/28NfJeX3VhjzqNpqg/builds/3XU4F58RQqXFgoo4w/openapi.json
