# BBC News Search & Article (`ryyos/bbc-news-search-scraper`) Actor

\[$2/1000] Instantly pull BBC News search results for any keyword plus the full article text of every item - no manual browsing, no copy-pasting

- **URL**: https://apify.com/ryyos/bbc-news-search-scraper.md
- **Developed by:** [Rio Dwi Saputra](https://apify.com/ryyos) (community)
- **Categories:** News, Automation, Developer tools
- **Stats:** 1 total users, 0 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 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/platform/actors/running/actors-in-store#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

## BBC News Search & Article Scraper

### What does BBC News Search & Article Scraper do?

**BBC News Search & Article Scraper** turns any keyword into a ready-to-use dataset of [BBC News](https://www.bbc.com/search) search results - complete with the full article text of every single item, not just the headline and snippet. Point it at a keyword such as `ukraina`, and within seconds you get titles, URLs, descriptions, topics, publish dates, and the entire article body, byline, section, and word count for every matching article, video, and live page, all in one run. Try it instantly on the [Actor's Try page](https://console.apify.com) - no coding required.

Running it on the Apify platform gives you full API access, scheduling for recurring keyword monitoring, one-click integrations (Make, Zapier, Google Sheets, and more), automatic retries, and run monitoring - so you can plug fresh BBC coverage straight into your own pipeline without maintaining any scraping infrastructure yourself.

### Why use BBC News Search & Article Scraper?

- **Media monitoring** - track how a topic, brand, country, or public figure is covered on one of the world's most-cited news outlets.
- **Research & analysis** - build a keyword-tagged corpus of full-text BBC articles for NLP, sentiment analysis, or academic research.
- **Content aggregation** - feed a newsletter, dashboard, or internal knowledge base with structured BBC coverage on the topics that matter to you.
- **Competitive/PR tracking** - get notified the moment BBC publishes something new about a company, event, or keyword by scheduling recurring runs.

### How to use BBC News Search & Article Scraper

1. Click **Try for free** (or **Start**) on the Actor page.
2. Enter your **Search keyword** (e.g. `ukraina`).
3. Set **Maximum results** to how many items you want.
4. Click **Start**. The Actor searches bbc.com for your keyword, then automatically opens every result to pull its full article text - all in one run.
5. Export the dataset in JSON, CSV, Excel, or your preferred format, or connect it to an integration.

### Input

The Actor takes a single JSON input, configured through the **Input** tab or via the API.

| Field | Type | Required | Description |
|---|---|---|---|
| `searchQuery` | string | yes | Keyword to search on bbc.com/search. |
| `maxResults` | integer | no (default `30`) | Maximum number of search result items to return, each enriched with full article text (BBC exposes roughly the first 250-300 per keyword). |

Example input:

```json
{
  "searchQuery": "ukraina",
  "maxResults": 30
}
```

### Output

Each dataset item is one search result, already enriched with its full article detail. You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.

```json
{
  "title": "Ireland announces €125m support package for Ukraine",
  "url": "https://www.bbc.com/news/articles/cvg0m1dylevo",
  "description": "Micheál Martin is in Kyiv for a meeting with Ukrainian President Volodymyr Zelenskyy.",
  "contentType": "article",
  "topics": ["Europe"],
  "byline": "",
  "section": "Europe",
  "wordCount": 221,
  "fullText": "Ireland is to provide a further €125m (£106m) in support to Ukraine next year...",
  "imageUrl": "https://c.files.bbci.co.uk/49eb/live/462a5650-8688-11f1-b60e-a7e0943a9c78.jpg",
  "firstPublished": "2026-07-23T12:20:34+00:00",
  "lastUpdated": "2026-07-23T12:20:38+00:00"
}
```

#### Data table

| Field | Description |
|---|---|
| `title` | Headline of the article/video/live page. |
| `url` | Full bbc.com URL of the item. |
| `description` | Short standfirst/summary. |
| `contentType` / `subtype` | BBC content type (`article`, `video`, `live`) and subtype. |
| `topics` | Topic tags. |
| `byline` | Author/contributor, when credited. |
| `section` | BBC section the article belongs to. |
| `wordCount` | Article body word count. |
| `fullText` | Full article body text. |
| `imageUrl` | Main image URL. |
| `firstPublished` / `lastPublished` / `lastUpdated` | ISO 8601 timestamps. |

### Pricing / Cost estimation

This Actor uses Apify's **Pay per result** pricing: **$2 per 1,000 results** (see the Actor's Monetization tab for the exact current rate). Each search result item, already enriched with full article text, counts as one result. The Apify free tier's monthly platform credit is enough to try the Actor and run small keyword searches at no extra cost.

### Tips or advanced options

- BBC's search backend caps how deep it paginates for a given keyword (typically around 250-300 results); setting `maxResults` higher than that will simply return everything available.
- Lower `maxResults` for a quick preview run before committing to a large keyword pull.

### FAQ, disclaimers, and support

**Is it legal to scrape BBC News?** BBC's [Terms of Use](https://www.bbc.co.uk/terms) and `robots.txt` explicitly restrict automated scraping, systematic content extraction, and dataset creation from bbc.com, including for AI/LLM use. This Actor is provided as a technical tool; you are solely responsible for ensuring your use complies with BBC's Terms of Use and any applicable law in your jurisdiction before running it.

**Known limitations:** video/live pages return limited or no `fullText` since they are not primarily text articles. BBC's search backend only exposes a limited number of results per keyword regardless of `maxResults`.

No environment variables need to be configured to run or redeploy this Actor - it only performs public, unauthenticated HTTP requests.

Found a bug or have a feature request? Use the Actor's **Issues** tab on Apify Console. For custom scraping solutions, reach out via the Apify Console contact options.

# Actor input Schema

## `searchQuery` (type: `string`):

Keyword to search for on bbc.com/search, e.g. 'ukraina'.

## `maxResults` (type: `integer`):

Maximum number of search result items to return, each enriched with full article text. BBC's search backend only exposes roughly the first 250-300 results per keyword, regardless of how high this is set.

## Actor input object example

```json
{
  "maxResults": 30
}
```

# Actor output Schema

## `dataset` (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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("ryyos/bbc-news-search-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 = {}

# Run the Actor and wait for it to finish
run = client.actor("ryyos/bbc-news-search-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 '{}' |
apify call ryyos/bbc-news-search-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,ryyos/bbc-news-search-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/CY5ae7lmiQZ9f0OYh/builds/GcLpYYmCz78urU0BM/openapi.json
