# Bing News Scraper - Brand & Competitor Monitoring (`groupoject/bing-news-scraper`) Actor

Scrape Bing News by keyword for brand monitoring, competitor tracking, market research, headlines, sources, dates, and snippets. No API key required.

- **URL**: https://apify.com/groupoject/bing-news-scraper.md
- **Developed by:** [Group Oject](https://apify.com/groupoject) (community)
- **Categories:** News, Automation, AI
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.00 / 1,000 bing news results

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 News Scraper - Brand & Competitor Monitoring

**Scrape Bing News in bulk by search query and get clean, structured article data. Fast, reliable, no API key.**

Drop in your search terms and get back matching Bing News articles: title, source, publish date, snippet, and link. Built for brand monitoring, competitor tracking, market research, media alerts, and content pipelines.

> Works out of the box: reads Bing News public RSS feeds. No API key, login, browser, or proxy needed for normal volumes.

***

### What it does

For each search query, the Actor reads Bing News search RSS and extracts structured article data. Output is one row per article, deduplicated across all queries.

Use it as a Bing News API alternative for monitoring brands, competitors, industries, tickers, executives, and topics.

***

### Who it's for

- **PR & comms teams** - monitor brand, executives, crisis topics, and competitor coverage.
- **Market researchers & analysts** - track an industry, ticker, or theme over time.
- **Content & SEO teams** - find current news angles and publisher sources.
- **Journalists** - sweep a beat across many search queries.
- **Builders** - pipe a structured Bing News feed into dashboards, alerts, or AI workflows.

***

### Popular use cases

- **Brand monitoring** - track mentions of your company, products, founders, and executives.
- **Competitor news tracking** - monitor launches, funding, hiring, lawsuits, partnerships, and pricing changes.
- **Industry trend monitoring** - follow themes like AI regulation, climate tech, fintech, or healthcare policy.
- **Stock and market news feeds** - collect recent Bing News results for tickers, companies, and sectors.
- **PR and crisis alerts** - schedule searches around sensitive topics and export fresh coverage.
- **Cross-source monitoring** - pair with Google News Scraper to compare coverage across search engines.

***

### Ready-to-run task ideas

#### Brand News Monitoring

```json
{
  "queriesText": "your brand name\nyour ceo name\nyour main competitor\nyour product line",
  "geo": "US",
  "language": "en",
  "maxItemsPerQuery": 50,
  "dedupe": true,
  "maxConcurrency": 2
}
```

#### Competitor Launch Tracker

```json
{
  "queries": [
    "competitor funding",
    "competitor product launch",
    "competitor partnership",
    "competitor acquisition"
  ],
  "geo": "US",
  "language": "en",
  "maxItemsPerQuery": 50,
  "dedupe": true
}
```

#### AI Industry News Feed

```json
{
  "queries": [
    "artificial intelligence regulation",
    "generative AI startups",
    "AI search engines",
    "large language models"
  ],
  "geo": "US",
  "language": "en",
  "maxItemsPerQuery": 50,
  "dedupe": true
}
```

#### Stock Market News Monitor

```json
{
  "queries": [
    "Nvidia stock news",
    "Tesla stock news",
    "Microsoft earnings",
    "Federal Reserve interest rates"
  ],
  "geo": "US",
  "language": "en",
  "maxItemsPerQuery": 50,
  "dedupe": true
}
```

#### Crisis & PR Alert Feed

```json
{
  "queries": [
    "\"your brand\" lawsuit",
    "\"your brand\" outage",
    "\"your brand\" data breach",
    "\"your brand\" controversy"
  ],
  "geo": "US",
  "language": "en",
  "maxItemsPerQuery": 50,
  "dedupe": true,
  "maxConcurrency": 2
}
```

***

### Input

| Field | Type | Default | Description |
|---|---|---|---|
| `queries` | string\[] | - | Search terms |
| `queriesText` | string | - | Queries as text, one per line or comma-separated |
| `geo` | string | `"US"` | Country code used to build Bing market, e.g. `US`, `GB`, `CA`, `FR`, `DE` |
| `language` | string | `"en"` | Language code used to build Bing market, e.g. `en`, `fr`, `es`, `de` |
| `maxItemsPerQuery` | integer | `50` | Cap per query |
| `maxQueries` | integer | `100` | Max search queries |
| `dedupe` | boolean | `true` | Remove duplicate articles across queries |
| `requestDelayMs` | integer | `500` | Delay between feed requests |
| `maxConcurrency` | integer | `3` | Parallel feed requests |
| `proxyConfiguration` | object | - | Optional, for high volume |

At least one of `queries` or `queriesText` is required.

#### Example input

```json
{
  "queries": ["openai", "climate tech", "interest rates"],
  "geo": "US",
  "language": "en",
  "maxItemsPerQuery": 50
}
```

***

### Output

One dataset row per article:

```json
{
  "query": "openai",
  "queryType": "search",
  "title": "OpenAI ships new model and tools",
  "bingNewsUrl": "https://www.bing.com/news/apiclick.aspx?...",
  "articleUrl": "https://www.theverge.com/openai...",
  "source": "The Verge",
  "publishedAt": "2026-06-09T14:30:00.000Z",
  "snippet": "OpenAI ships new model The Verge",
  "guid": "ABC123",
  "position": 1,
  "geo": "US",
  "language": "en",
  "fetchedAt": "2026-06-18T12:00:00.000Z"
}
```

#### Key-value store outputs

- `HEADLINES_BY_SOURCE` - article titles grouped by publisher
- `SUMMARY` - totals, top sources, top queries by volume
- `ERRORS` - any failed feeds

***

### Notes & limitations

- `bingNewsUrl` is the Bing News result link returned by the RSS feed.
- `articleUrl` is decoded from Bing's result link when Bing includes the publisher URL.
- Bing News RSS favors recent coverage and is not a full historical archive.
- Results are localized by `geo` + `language`, combined into Bing market values such as `en-US`.
- For very high volume or repeated scheduled runs, enable Apify Proxy to reduce rate-limit risk.
- Public RSS data only: no login, paywalled content, or private content.

***

### Related tools

- [Google News Scraper](https://apify.com/groupoject/google-news-scraper) - monitor Google News by keyword.
- [Google AI Overview Tracker](https://apify.com/groupoject/google-ai-overview-tracker) - track brand visibility and citations in AI Overviews.
- [Google Autocomplete Keyword Scraper](https://apify.com/groupoject/google-autocomplete-scraper) - collect keyword suggestions.

***

### Changelog

See [CHANGELOG.md](CHANGELOG.md).

# Actor input Schema

## `queries` (type: `array`):

Search terms to pull Bing News articles for. You can also paste them as text below.

## `queriesText` (type: `string`):

Paste one query per line or comma-separated.

## `geo` (type: `string`):

Bing News market country code, e.g. US, GB, CA, FR, DE.

## `language` (type: `string`):

Language code, e.g. en, fr, es, de.

## `maxItemsPerQuery` (type: `integer`):

Cap on articles kept per query (Bing News RSS returns a limited recent feed).

## `maxQueries` (type: `integer`):

Maximum number of search queries to process.

## `dedupe` (type: `boolean`):

Remove duplicate articles (same link) across all queries.

## `requestDelayMs` (type: `integer`):

Delay between feed requests.

## `maxConcurrency` (type: `integer`):

Parallel feed requests. Keep modest; add a proxy for high volume.

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

Optional. Use Apify Proxy for large/repeated runs to avoid rate limits.

## `debugMode` (type: `boolean`):

Verbose logging.

## Actor input object example

```json
{
  "queries": [
    "openai",
    "climate tech",
    "interest rates"
  ],
  "geo": "US",
  "language": "en",
  "maxItemsPerQuery": 50,
  "maxQueries": 100,
  "dedupe": true,
  "requestDelayMs": 500,
  "maxConcurrency": 3,
  "proxyConfiguration": {
    "useApifyProxy": true
  },
  "debugMode": false
}
```

# Actor output Schema

## `articles` (type: `string`):

One row per article: title, source, publish date, snippet, Bing link, and decoded publisher URL when available.

## `headlinesBySource` (type: `string`):

Article titles grouped by publisher.

## `summary` (type: `string`):

Totals, top sources, top queries by volume.

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

Feeds that failed to fetch.

# 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 = {
    "queries": [
        "openai",
        "climate tech",
        "interest rates"
    ],
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("groupoject/bing-news-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 = {
    "queries": [
        "openai",
        "climate tech",
        "interest rates",
    ],
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("groupoject/bing-news-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 '{
  "queries": [
    "openai",
    "climate tech",
    "interest rates"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call groupoject/bing-news-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,groupoject/bing-news-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/ebSv0BQRt5TIe2nfs/builds/kDZ5EdtKdLvn9lS9S/openapi.json
