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

Scrapes Yahoo Search for any query. Extracts the full canonical search-vertical schema: title, URL, snippet, sitelinks, related links, dates, thumbnail, language, ad/sponsored flags, and more.

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

## Pricing

from $1.99 / 1,000 search results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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

## Yahoo Search Scraper

Version 3 supports both single-query and batch search, with fair per-query quotas, bounded pagination and concurrency, and a stable 39-field dataset contract. Direct access is the tested default; an authorized country-aligned Residential proxy can be enabled if Yahoo blocks the run.

Required output fields are `id`, `type`, `resultType`, `position`, `page`, `title`, `url`, `link`, `domain`, `query`, `searchQuery`, `searchUrl`, and `scrapedAt`. Optional unavailable values are omitted instead of stored as `null`, empty strings, fabricated URLs, or fake boolean flags.

### What is this tool?

Yahoo Search Scraper helps you collect search data from Yahoo. Just type in your search term, and the tool will gather all the websites, articles, and information that Yahoo returns.

### What can you use it for?

- Research on any topic with web search results
- SEO research and content strategy
- Monitor how brands and topics appear in search
- Build datasets and knowledge bases

### What data do you get?

Each result includes up to **30 fields**, organized into the following categories:

**Identity** (4 fields): Position, Rich Result Type, Page, Result Type

**URLs** (7 fields): URL, Displayed URL, Domain, Favicon, Sitelinks, Cache Link, Search URL

**Text** (4 fields): Title, Snippet, Snippet (HTML), Highlighted Terms

**Media** (1 fields): Thumbnail

**Pricing** (3 fields): Price (raw), Price (numeric), Currency

**Ratings** (2 fields): Rating, Rating Count

**Location** (1 fields): Country

**Dates & Duration** (2 fields): Date (raw), Published At

**Search Context** (3 fields): Search Metadata, Query, Language

**Other** (3 fields): Breadcrumbs, Additional Info, Scraped At

### How to use it

#### Step 1: Enter your search

Type in your search term, like "artificial intelligence".

#### Step 2: Set your preferences

Adjust the options below to customize your search.

#### Step 3: Run the tool

Click the run button and wait for your results. The tool will gather all the data and save it in a clean, organized format.

### Input options

| Option | What it means | Required | Default |
|--------|---------------|----------|---------|
| **Search Query** | The search query to look up on Yahoo Search. | Yes | artificial intelligence |
| **Max Items** | Max search results to scrape. | No | 50 |
| **Country** | Yahoo country code for localized results (e.g. 'us', 'gb', 'in', 'de'). Sets the vl parameter. | No | lang\_en |
| **Language** | Yahoo search language code. Used in the hl parameter (e.g. 'en', 'de', 'fr'). | No | en |
| **Safe Search** | Safe search level for filtering adult content. Options: strict (Strict), moderate (Moderate), off (Off). | No | moderate |
| **Time Range** | Filter results by time period. Options:  (Any Time), d (Past Day), w (Past Week), m (Past Month). | No | — |

### Output

Your results come in a clean, organized table with **two views**:

#### Overview view

Shows the most important fields at a glance:

- **Position**
- **Title**
- **URL**
- **Displayed URL**
- **Domain**
- **Snippet**
- **Published At**
- **Rating**
- **Rating Count**
- **Price (raw)**
- **Price (numeric)**
- **Currency**
- **Rich Result Type**
- **Page**
- **Query**
- **Country**
- **Language**
- **Scraped At**

#### Full details view

Shows all 30 fields in detail. See "What data do you get?" above for the complete list.

### Tips for best results

✅ **Be specific** with your search terms for more relevant results

✅ **Try different variations** of your search term to discover more results

✅ **Browse multiple pages** of results to get a wider variety

### Frequently asked questions

**Why use Yahoo?**
Yahoo is one of the oldest search engines on the web and often returns different results than Google or Bing. It can give you a wider variety of websites and perspectives.

**How do I get the results?**
Your results are saved in your Apify dashboard. You can download them in various formats (JSON, CSV, Excel) or access them via the API.

**Can I run it on a schedule?**
Yes! Apify supports scheduled runs. You can set up the tool to run automatically at any interval (hourly, daily, weekly, etc.) from your dashboard.

**What if I get fewer results than I asked for?**
This can happen if the search engine doesn't have enough matching results for your search, or if some results are blocked. Try different keywords or relax your filters.

**Need more help?**
If you have questions or run into issues, our support team is ready to help. Just reach out through the Apify platform and we'll get back to you quickly.

# Actor input Schema

## `mode` (type: `string`):

Use single for one query or batch to combine query with Search Queries.

## `query` (type: `string`):

The search query to look up on Yahoo Search.

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

Additional queries processed in batch mode.

## `maxItems` (type: `integer`):

Maximum number of search results to scrape.

## `maxPages` (type: `integer`):

Maximum Yahoo result pages processed per query.

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

Maximum query pages processed in parallel.

## `maxRequestRetries` (type: `integer`):

Bounded retries for temporary browser, proxy, or network failures.

## `navigationTimeoutSecs` (type: `integer`):

Maximum seconds allowed for initial page navigation.

## `requestHandlerTimeoutSecs` (type: `integer`):

Maximum seconds allowed to extract and enqueue one page.

## `resultsWaitSecs` (type: `integer`):

Maximum seconds to wait for the Yahoo result shell.

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

Yahoo country code for localized results (e.g. 'us', 'gb', 'in', 'de'). Sets the vl parameter.

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

Yahoo search language code. Used in the hl parameter (e.g. 'en', 'de', 'fr').

## `safeSearch` (type: `string`):

Safe search level for filtering adult content.

## `timeRange` (type: `string`):

Filter results by time period.

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

Proxy settings for the scraper. Residential proxies recommended for reliable results.

## `debug` (type: `boolean`):

Log safe structural counts without response bodies or credentials.

## Actor input object example

```json
{
  "mode": "single",
  "query": "artificial intelligence",
  "queries": [],
  "maxItems": 50,
  "maxPages": 5,
  "maxConcurrency": 2,
  "maxRequestRetries": 1,
  "navigationTimeoutSecs": 45,
  "requestHandlerTimeoutSecs": 90,
  "resultsWaitSecs": 15,
  "country": "us",
  "language": "en",
  "safeSearch": "moderate",
  "timeRange": "",
  "proxyConfiguration": {
    "useApifyProxy": false
  },
  "debug": false
}
```

# 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 = {
    "query": "artificial intelligence",
    "queries": [],
    "maxItems": 50,
    "country": "us",
    "language": "en",
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("searchapi/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 = {
    "query": "artificial intelligence",
    "queries": [],
    "maxItems": 50,
    "country": "us",
    "language": "en",
    "proxyConfiguration": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("searchapi/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 '{
  "query": "artificial intelligence",
  "queries": [],
  "maxItems": 50,
  "country": "us",
  "language": "en",
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call searchapi/yahoo-search-scraper --silent --output-dataset

```

## MCP server setup

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