# Yahoo Search Results Scraper (`datascraperes/yahoo-search-scraper`) Actor

Scrape Yahoo Search results for one or thousands of keywords. Get ranked organic results with titles, URLs, snippets, positions, country localization and pagination. Export clean data for SEO research, competitor analysis and search visibility monitoring.

- **URL**: https://apify.com/datascraperes/yahoo-search-scraper.md
- **Developed by:** [DataScraperES](https://apify.com/datascraperes) (community)
- **Categories:** SEO tools, Developer tools, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$0.60 / 1,000 yahoo search 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

## Yahoo Search Results Scraper

Scrape Yahoo Search results for one or thousands of keywords. Get ranked organic results with titles, URLs, snippets, positions, country localization and pagination. Export clean data for SEO research, competitor analysis and search visibility monitoring.

### Why use this Actor?

Yahoo Search Results Scraper turns Yahoo Search pages into a structured Dataset that is easy to review, filter and export.

It is useful for:

- SEO keyword research.
- Competitor and market analysis.
- Search visibility monitoring.
- Content planning and topic research.
- Discovering websites that rank for specific searches.
- Comparing search results between countries.
- Building datasets for reports and analysis.

The Actor returns organic web results. It does not collect Yahoo Images, News, Shopping, Maps or other separate Yahoo search verticals.

### How to use it

1. Enter one or more search queries.
2. Select the country where you want the results localized.
3. Choose how many organic results you want for each query.
4. Click **Start**.
5. Open the **Dataset** tab when the run finishes.

No coding is required. Apify automatically provides the standard ways to download and use the Dataset.

### Input

#### Search queries

Add between 1 and 10,000 queries. In the Apify form, enter one query per line.

Each query can contain up to 200 characters. Empty lines are ignored, and duplicate queries are processed only once.

Examples of queries:

- `best project management software`
- `plumber in Madrid`
- `electric cars 2026`
- `how to improve website speed`

#### Country

Select the country for which you want localized Yahoo Search results. The country is included in every Dataset item so that results from different runs can be compared easily.

The available countries are:

| Code | Country | Code | Country | Code | Country | Code | Country |
| --- | --- | --- | --- | --- | --- | --- | --- |
| US | United States | ES | Spain | GB | United Kingdom | DE | Germany |
| FR | France | IT | Italy | BR | Brazil | CA | Canada |
| AU | Australia | IN | India | JP | Japan | NL | Netherlands |
| NO | Norway | SE | Sweden | FI | Finland | PL | Poland |
| RO | Romania | RU | Russia | TR | Turkey | ZA | South Africa |
| SG | Singapore | TW | Taiwan | HK | Hong Kong | PH | Philippines |
| ID | Indonesia | MY | Malaysia | VN | Vietnam | GR | Greece |
| UA | Ukraine | CH | Switzerland | AT | Austria | BE | Belgium |
| AR | Argentina | CL | Chile | CO | Colombia | MX | Mexico |
| PE | Peru | VE | Venezuela |  |  |  |  |

#### Results per query

Choose between 1 and 1,000 organic results for each query. The default is 10.

The Actor automatically continues through Yahoo Search result pages until it reaches the requested amount, Yahoo has no more matching results, or the query becomes temporarily unavailable.

Yahoo commonly displays about seven organic results per page, so requesting more than seven results may require more than one page.

### Example input

The Apify form is the easiest way to configure a run. The equivalent JSON input is:

```json
{
  "country": "ES",
  "queries": [
    "mejores herramientas SEO",
    "investigación de palabras clave",
    "análisis de competidores"
  ],
  "resultsPerQuery": 10
}
```

A smaller example for one query:

```json
{
  "country": "US",
  "queries": ["best project management software"],
  "resultsPerQuery": 20
}
```

### Dataset output

Each organic result is saved as a separate Dataset item. A result can contain the following fields:

| Field | Description |
| --- | --- |
| `query` | The search query that produced the result. |
| `country` | The selected country code. |
| `page` | Yahoo Search page number, starting at 1. |
| `position` | Global organic position for the query, starting at 1. |
| `title` | Title displayed for the result. |
| `url` | Destination URL of the result, when available. |
| `sourceUrl` | Original Yahoo result URL. |
| `displayUrl` | URL or domain shown in the search result. |
| `description` | Search-result snippet, when available. |
| `resultType` | Result classification, normally `organic` or `rich`. |
| `capturedAt` | UTC date and time when the result was collected. |

The `position` field is global across pagination. For example, results on the second page continue after the positions from the first page.

Some Yahoo result cards do not display every optional field. In those cases, the corresponding value can be `null`.

### Example result

```json
{
  "country": "ES",
  "query": "mejores herramientas SEO",
  "page": 1,
  "position": 1,
  "title": "Las mejores herramientas SEO para analizar tu web",
  "url": "https://example.com/mejores-herramientas-seo",
  "sourceUrl": "https://r.search.yahoo.com/example-result",
  "displayUrl": "example.com/mejores-herramientas-seo",
  "description": "Comparativa de herramientas para investigar palabras clave, analizar competidores y mejorar la visibilidad de un sitio web.",
  "resultType": "organic",
  "capturedAt": "2026-08-19T10:00:00Z"
}
```

### Run summary

At the end of the run, Apify also provides a summary with high-level information such as the number of queries processed, requested results, delivered results, processed pages and any partial-result warnings.

Example summary:

```json
{
  "status": "succeeded",
  "country": "ES",
  "queriesRequested": 3,
  "queriesCompleted": 3,
  "resultsRequested": 30,
  "resultCount": 30,
  "pagesCompleted": 6,
  "warnings": []
}
```

If Yahoo returns fewer results for a query, the available results are preserved. The summary reports the shortfall so you can identify incomplete queries without losing the data that was collected successfully.

### Pricing

The Actor costs **$0.60 per 1,000 valid organic results** saved to the Dataset.

You pay for results delivered to the Dataset. Starting the Actor is not charged separately, and unavailable results are not counted as delivered results.

### Understanding result differences

Search results can vary between runs because Yahoo may change rankings, result layouts, available content and localized results over time.

For more comparable research:

- Use the same country for every run you want to compare.
- Keep the query wording consistent.
- Use the same number of results per query.
- Record the capture date from `capturedAt`.
- Compare results from similar time periods.

The Actor may return fewer results than requested when Yahoo has fewer matching pages or when a query is temporarily unavailable. In that situation, the valid results are still saved and the run summary identifies the partial result.

### Frequently asked questions

#### Can I search in different countries?

Yes. Select a country before starting the run. Results are localized to the selected country and the country code is included in every output item.

#### Can I run many queries at once?

Yes. You can submit up to 10,000 unique queries in one run.

#### Can I collect more than one page?

Yes. Request more results per query and the Actor automatically continues through additional Yahoo Search pages.

#### What is the maximum number of results?

The Actor accepts up to 1,000 requested results per query. Yahoo may provide fewer results for some queries.

#### Does the Actor collect advertisements?

No. The Dataset is focused on organic Yahoo Search results and does not include paid advertisements as organic results.

#### Why is a field empty or `null`?

Yahoo does not display every field for every result. Optional values such as snippets or displayed URLs can be empty when Yahoo does not provide them.

#### What happens when a query returns fewer results?

The Actor keeps all valid results found for that query and reports the difference in the run summary. The complete run does not need to be discarded.

#### What can I do with the Dataset?

You can review results in Apify, filter them by query or position, download them in common formats, and use them for keyword research, competitor analysis, content planning and search visibility studies.

Use collected data responsibly and in accordance with applicable laws and the terms that govern your use of Yahoo Search.

# Actor input Schema

## `country` (type: `string`):

Select the country where you want Yahoo Search results to be localized.

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

Add one or more search queries. Supports 1 to 10,000 unique queries. Empty lines and duplicate queries are ignored.

## `resultsPerQuery` (type: `integer`):

Number of organic Yahoo Search results to collect for each query. The Actor automatically goes through additional pages when needed. Yahoo may return fewer results for some queries.

## Actor input object example

```json
{
  "country": "ES",
  "queries": [
    "OpenAI"
  ],
  "resultsPerQuery": 10
}
```

# Actor output Schema

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

No description

## `summary` (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 = {
    "country": "ES",
    "queries": [
        "OpenAI"
    ],
    "resultsPerQuery": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("datascraperes/yahoo-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 = {
    "country": "ES",
    "queries": ["OpenAI"],
    "resultsPerQuery": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("datascraperes/yahoo-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 '{
  "country": "ES",
  "queries": [
    "OpenAI"
  ],
  "resultsPerQuery": 10
}' |
apify call datascraperes/yahoo-search-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,datascraperes/yahoo-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/IA8iDoHpCKOGvbbph/builds/SCVfOoEqo6kULdNyB/openapi.json
