# Yandex (Яндекс) | Парсер Поиска Яндекса (`johnvc/scrape-yandex`) Actor

Яндекс Apify Actor specifically designed for Yandex search scraping. Supports 6+ domains, 19 languages, and provides clean, structured data extraction with intelligent pagination. Парсер поиска Яндекса: органика, реклама, граф знаний, изображения и видео. Для SEO, аналитики и исследований рынка.

- **URL**: https://apify.com/johnvc/scrape-yandex.md
- **Developed by:** [John](https://apify.com/johnvc) (community)
- **Categories:** SEO tools, Developer tools, Other
- **Features:** Limited permissions
- **Stats:** 2,224 total users, 45 monthly users, 100.0% runs succeeded, 18 bookmarks
- **User rating**: 3.52 out of 5 stars

## Pricing

from $24.00 / 1,000 page processeds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## 🚀 Yandex Search Scraper 🇷🇺🇺🇸 | Парсер Поиска Яндекса

Scrape Yandex Search Engine Results Pages (SERPs) at scale. Extract organic results, ads, knowledge graph entries, inline images, and inline videos, across 6 Yandex domains, 19 languages, and 123,000+ geographic locations.

Парсер поиска Яндекса для работы в больших объёмах. Извлекайте органическую выдачу, рекламу, карточки графа знаний, блоки изображений и видео по 6 доменам Яндекса, 19 языкам и более чем 123 000 регионам.

We also publish a second Yandex Search listing with the same engine and the same per-page prices; it was formerly billed per result and keeps that in its URL: [Yandex Search, formerly per-result](https://apify.com/johnvc/yandex-scrape-yandex-search-results-at-scale---per-result?fpr=9n7kx3\&fp_sid=roastmya)

У нас есть второй актор для поиска Яндекса с тем же движком и теми же ценами за страницу; раньше он тарифицировался за результат, и это осталось в его URL: [Yandex Search, ранее с оплатой за результат](https://apify.com/johnvc/yandex-scrape-yandex-search-results-at-scale---per-result?fpr=9n7kx3\&fp_sid=roastmya)

See our [quick and easy getting started guide to scraping Yandex Search on GitHub here](https://github.com/johnisanerd/Apify-Yandex-Search-Scraper)

Смотрите наше [простое руководство по началу работы с парсингом поиска Яндекса на GitHub](https://github.com/johnisanerd/Apify-Yandex-Search-Scraper)

### 📦 What Data Does This Actor Return? | Какие данные возвращает этот актор?

This actor extracts seven Yandex result types. Pick exactly the ones you want with the à la carte toggles (see below) - organic results are on by default, the rest are opt-in.

- **Organic results** - the standard ranked links, present on every search. Each carries position, title, URL, displayed link, snippet, date, thumbnail, favicon, rich snippet, and sitelinks.
- **Ads** - paid placements that appear on commercial queries (above or below the organic block). Each carries position, title, URL, displayed link, snippet, and sitelinks.
- **Knowledge graph** - the entity card Yandex shows for people, TV shows, places, companies, and other known entities. Carries title, description, type, image, source, and entity attributes (cast, genre, country, founding info, see-also links).
- **Inline images** - the image strip that can appear between organic results. Each image carries title, image URL, and thumbnail.
- **Inline videos** - the video carousel that can appear between organic results. Each carries title, link, source, duration, thumbnail, views, and date.
- **Yandex Images (dedicated vertical)** - full image search results straight from the Yandex Images engine, up to 30 per page: original full-size image URL, hosting page, thumbnail, and source, with filters for image type, color, orientation, file format, exact size, source site, and recency.
- **Yandex Videos (dedicated vertical)** - full video search results straight from the Yandex Videos engine, up to 30 per page: title, link, description, thumbnail, duration (text and seconds), views, publish date (`date` as shown plus `published_at` in ISO 8601), source platform, and channel (name, link, verified), with duration and HD filters. Time period and date sort apply to videos by publish date.
- **Search metadata** - on every item: domain, language, location, page number, sort mode, time period, and pagination info.

#### 🎚️ Choose your result types (à la carte) | Выбор типов результатов

Toggle each result type independently: **Organic results** (on by default), **Ads**, **Knowledge graph**, **Inline images**, **Inline videos**. Each selected type that appears on a page is delivered as its own dataset item, tagged with an `item_type` field so you can tell them apart. If none of your selected types appear (for example you enabled only Ads and the query has no ads), the actor returns a single summary item noting that no results were found for your selection, so the run is never silently empty. The page limit applies to every selected type together. Two optional SERP-wide filters are available: **Time period** (`all`, `day`, `last_two_weeks`, `month`), which Yandex applies to web results using its own freshness data (a few pages dated just outside the window can appear), and **Sort mode** (`relevance` or `date`). Date ordering is reliably applied to Yandex Videos results; for web results Yandex currently returns the same order as relevance (verified October 2026), so use the time period when you need fresh web pages.

Каждый тип результатов включается отдельно: **органическая выдача** (включена по умолчанию), **реклама**, **граф знаний**, **встроенные изображения**, **встроенные видео**, а также вертикали **Яндекс Картинки** и **Яндекс Видео**. Каждый выбранный тип, присутствующий на странице, сохраняется как отдельный элемент набора данных с полем `item_type`. Лимит страниц применяется ко всем выбранным типам вместе. Доступны два необязательных фильтра: **сортировка** (`relevance` или `date`) и **период** (`all`, `day`, `last_two_weeks`, `month`).

#### 🖼️ Dedicated Yandex Images and Yandex Videos search | Поиск по Яндекс Картинкам и Яндекс Видео

Beyond the web SERP, this actor can query the dedicated **Yandex Images** and **Yandex Videos** verticals - the same engines behind yandex.com/images and yandex.com/video - and return full vertical results, up to 30 per page.

- **Yandex Images** (`include_image_search`): each result carries the original full-size image URL, the hosting page, a thumbnail, and the source. Filter by image type (photo, clipart, line drawing, demotivator, face), color, orientation, file format (JPG, PNG, animated GIF), exact width and height, source site, and recency (last 7 days). Delivered as items with `item_type` `image_search`.
- **Yandex Videos** (`include_video_search`): each result carries title, link, description, thumbnail, duration (`duration` text and `duration_seconds`), view count, publish date (`date` as Yandex shows it and `published_at` in ISO 8601 UTC), source platform, and channel details (name, link, verified). Filter by duration (short, medium, long) and HD quality. The run-wide **Time period** and **Sort mode** settings apply to videos too, by publish date: videos older than the window are dropped (videos with no known date are kept), and `date` sorting orders each page newest first. Because the filter runs after a page is fetched, a filtered page can carry fewer than 30 videos (even zero, reported with `result_count: 0` and `results_fetched`) and still counts as a processed page. Delivered as items with `item_type` `video_search`.

A run that enables only a vertical never queries the web SERP, so you pay only for the pages you asked for. Example - image search only, red square photos:

```json
{
  "text": "matryoshka dolls",
  "include_organic_results": false,
  "include_image_search": true,
  "image_type": "photo",
  "image_color": "red",
  "image_orientation": "square",
  "max_pages": 1
}
```

Example - video search only, short HD videos:

```json
{
  "text": "borscht recipe",
  "include_organic_results": false,
  "include_video_search": true,
  "video_duration": "short",
  "video_hd": true,
  "max_pages": 1
}
```

Помимо веб-выдачи, актор умеет запрашивать отдельные вертикали **Яндекс Картинки** и **Яндекс Видео** - те же движки, что стоят за yandex.com/images и yandex.com/video - и возвращать до 30 результатов на страницу. Для картинок доступны фильтры по типу изображения, цвету, ориентации, формату файла, точному размеру, сайту-источнику и свежести; для видео - по длительности и HD-качеству. Каждое видео содержит название, ссылку, описание, миниатюру, длительность (текст и секунды), просмотры, дату публикации (`date` и `published_at` в ISO 8601), платформу-источник и канал (имя, ссылка, верификация). Настройки **период** и **сортировка** применяются и к видео - по дате публикации; отфильтрованная страница может содержать меньше 30 видео и всё равно считается обработанной. Запуск, в котором включена только вертикаль, вообще не обращается к веб-выдаче.

### 🎯 Use Cases | Сценарии использования

- **SEO research for Russian-speaking markets** - track keyword rankings across Yandex.ru, Yandex.by, Yandex.kz, and other CIS domains

- **Competitive intelligence** - monitor competitor visibility in Yandex search across different regions and languages

- **Brand monitoring** - track brand mentions and reputation across Yandex domains in Eastern Europe and Central Asia

- **Academic and market research** - gather structured SERP data for analysis without manual searching

- **Lead generation** - surface businesses, directories, and contact pages from Yandex organic results

- **Content gap analysis** - identify what content ranks in Yandex that doesn't rank on Western search engines

- **SEO-исследования для русскоязычных рынков** - отслеживайте позиции по ключевым словам в Yandex.ru, Yandex.by, Yandex.kz и других доменах СНГ

- **Конкурентная разведка** - отслеживайте видимость конкурентов в поиске Яндекса по разным регионам и языкам

- **Мониторинг бренда** - отслеживайте упоминания бренда и репутацию по доменам Яндекса в Восточной Европе и Центральной Азии

- **Академические и рыночные исследования** - собирайте структурированные данные выдачи для анализа без ручного поиска

- **Генерация лидов** - находите компании, каталоги и контактные страницы в органической выдаче Яндекса

- **Анализ пробелов в контенте** - выявляйте контент, который ранжируется в Яндексе, но не ранжируется в западных поисковиках

### 🌟 Why Choose This Scraper? | Почему стоит выбрать этот скрапер?

#### "In Soviet Russia, Yandex website scrape you!" 🇷🇺🇺🇸

The Yandex Search data scraper delivers enterprise-grade performance with these advanced capabilities:

**Performance & Reliability**: Built optimized for high-throughput scraping with intelligent rate limiting and pagination handling.

**Cost-Effective**: Provides consistent, reliable results with intelligent pagination management to optimize API usage.

**Lightning-Fast Search & Retrieval**: Search any keyword across Yandex with fast performance. Retrieve comprehensive results in seconds, not minutes, with intelligent caching and optimization.

**Precision Targeting & Advanced Filtering**: Pinpoint exact search parameters with domain-specific localization, language support, and location targeting. Get precisely the search data you need, when you need it.

**Rich, Structured Data Extraction**: Extract complete search information, including organic results, ads, knowledge graph, inline images, and inline videos. Our advanced parsing ensures you get clean, structured data ready for immediate use.

**Enterprise-Grade Configuration & Flexibility**: Built for developers and businesses who demand reliability. Highly configurable with intuitive controls, comprehensive error handling, and robust logging.

**No Hidden Costs or Rental Fees**: We do not charge monthly rentals. Our scraper operates on a pay-per-use model. Scale up or down based on your actual needs without being locked into expensive subscriptions.

Скрапер данных поиска Яндекса обеспечивает производительность корпоративного уровня и следующие продвинутые возможности:

**Производительность и надёжность**: оптимизирован для высокопроизводительного парсинга с разумным ограничением частоты запросов и обработкой постраничной навигации.

**Экономичность**: даёт стабильные и надёжные результаты с разумным управлением пагинацией для оптимизации использования API.

**Молниеносный поиск и получение данных**: ищите любое ключевое слово в Яндексе с высокой скоростью. Получайте полные результаты за секунды, а не минуты, благодаря кэшированию и оптимизации.

**Точный таргетинг и продвинутая фильтрация**: задавайте точные параметры поиска с локализацией по доменам, поддержкой языков и таргетингом по локациям. Получайте именно те данные, которые вам нужны.

**Извлечение богатых структурированных данных**: извлекайте полную информацию из выдачи, включая органические результаты, рекламу, граф знаний, встроенные изображения и видео. Продвинутый разбор гарантирует чистые структурированные данные, готовые к использованию.

**Гибкая настройка корпоративного уровня**: создан для разработчиков и компаний, которым нужна надёжность. Широкие возможности настройки с понятным управлением, обработкой ошибок и подробным логированием.

**Без скрытых платежей и абонентской платы**: мы не берём ежемесячную аренду. Скрапер работает по модели оплаты за использование. Масштабируйтесь вверх или вниз по реальным потребностям без дорогих подписок.

### 🚀 Features | Возможности

#### Core Capabilities

- **Advanced Search**: Support for complex queries with domain-specific localization and language targeting
- **Intelligent Pagination**: Automatic handling of Yandex search pagination with configurable limits
- **Global Localization**: Support for 15+ Yandex domains across different regions
- **Language Support**: 19 officially supported languages including Russian, English, Turkish, and more
- **Location Targeting**: Custom location/region ID support for precise geographic targeting

#### Data Quality

- **Clean Output**: Automatic structured data metadata for clean, production-ready data
- **Structured Results**: Consistent JSON structure across all search results
- **Comprehensive Fields**: Organic results, ads, knowledge graph, news, inline images, inline videos, and related searches
- **Metadata Tracking**: Page-level analytics and search performance metrics
- **Per-Page Billing**: Results are pushed as separate dataset items for accurate billing

#### Основные возможности

- **Продвинутый поиск**: поддержка сложных запросов с локализацией по доменам и таргетингом по языку
- **Умная пагинация**: автоматическая обработка постраничной навигации Яндекса с настраиваемыми лимитами
- **Глобальная локализация**: поддержка более 15 доменов Яндекса в разных регионах
- **Поддержка языков**: 19 официально поддерживаемых языков, включая русский, английский, турецкий и другие
- **Таргетинг по локации**: поддержка произвольного идентификатора региона для точного географического таргетинга

#### Качество данных

- **Чистый вывод**: автоматические структурированные метаданные для готовых к работе данных
- **Структурированные результаты**: единообразная структура JSON для всех результатов
- **Полный набор полей**: органика, реклама, граф знаний, новости, встроенные изображения и видео, связанные запросы
- **Метаданные**: аналитика на уровне страницы и метрики эффективности поиска
- **Оплата за страницу**: результаты сохраняются как отдельные элементы набора данных для точного учёта

### 📖 Usage Examples | Примеры использования

#### Basic Search Example | Базовый пример

Search for "python tutorial" with default settings. | Поиск "python tutorial" с настройками по умолчанию.

```json
{
  "text": "python tutorial"
}
```

#### Advanced Search Example 1 | Расширенный пример 1

Search for "machine learning" with Russian domain, Russian language, and pagination limits. | Поиск "machine learning" с российским доменом, русским языком и лимитом страниц.

```json
{
  "text": "machine learning",
  "yandex_domain": "yandex.ru",
  "lang": "ru",
  "max_pages": 3
}
```

#### Advanced Search Example 2 | Расширенный пример 2

Search for "машинное обучение" on the Russian domain, in Russian, localized to Moscow. | Поиск "машинное обучение" на российском домене, на русском языке, с локализацией по Москве.

```json
{
  "text": "машинное обучение",
  "yandex_domain": "yandex.ru",
  "lang": "ru",
  "lr": 213,
  "max_pages": 1
}
```

#### Advanced Search Example 3 | Расширенный пример 3

Search for "yandex scrapers" with English domain, English language, and location targeting. | Поиск "yandex scrapers" с английским доменом, английским языком и таргетингом по локации.

```json
{
  "text": "yandex scrapers",
  "yandex_domain": "yandex.com",
  "lang": "en",
  "lr": 84,
  "max_pages": 2
}
```

#### 💡 Tip: Filter Results by Date | Совет: фильтрация по дате

Yandex supports a native date range operator directly in the search query. Append `date:YYYYMMDD..YYYYMMDD` to your search text to limit results to a specific time window.

Яндекс поддерживает встроенный оператор диапазона дат прямо в поисковом запросе. Добавьте `date:YYYYMMDD..YYYYMMDD` к тексту запроса, чтобы ограничить результаты определённым периодом.

**Filter results from the last 30 days | Результаты за последние 30 дней:**

```json
{
  "text": "climate news date:20260317..20260417",
  "yandex_domain": "yandex.com",
  "lang": "en",
  "max_pages": 1
}
```

**Filter results from a specific year | Результаты за конкретный год:**

```json
{
  "text": "machine learning date:20250101..20251231",
  "yandex_domain": "yandex.ru",
  "lang": "ru",
  "max_pages": 2
}
```

| Syntax / Синтаксис | Example / Пример | Description / Описание |
|--------|---------|-------------|
| `date:YYYYMMDD..YYYYMMDD` | `date:20260101..20260417` | Results published between two dates / Результаты между двумя датами |
| `date:YYYYMMDD..` | `date:20260101..` | Results published after a date / Результаты после даты |
| `date:..YYYYMMDD` | `date:..20260101` | Results published before a date / Результаты до даты |

The date filter is part of the `text` field, no additional parameters needed. | Фильтр по дате является частью поля `text` и не требует дополнительных параметров.

***

### 🔍 Input References | Входные параметры

##### Input Parameters | Входные параметры

| Parameter | Type | Required | Default | Description / Описание |
|-----------|------|----------|---------|-------------|
| `text` | `str` | ✅ | `"python tutorial"` | Search query / Поисковый запрос |
| `include_organic_results` | `bool` | ❌ | `true` | Return organic results (item_type `organic`) / Возвращать органическую выдачу |
| `include_ads` | `bool` | ❌ | `false` | Return paid ads when present (item_type `ads`) / Возвращать рекламу |
| `include_knowledge_graph` | `bool` | ❌ | `false` | Return the knowledge graph card when present (item_type `knowledge_graph`) / Возвращать граф знаний |
| `include_inline_images` | `bool` | ❌ | `false` | Return the inline image strip (item_type `inline_images`) / Возвращать блок изображений |
| `include_inline_videos` | `bool` | ❌ | `false` | Return the inline video carousel (item_type `inline_videos`) / Возвращать блок видео |
| `include_image_search` | `bool` | ❌ | `false` | Query the dedicated Yandex Images vertical (item_type `image_search`) / Искать в Яндекс Картинках |
| `include_video_search` | `bool` | ❌ | `false` | Query the dedicated Yandex Videos vertical (item_type `video_search`) / Искать в Яндекс Видео |
| `image_type` | `str` | ❌ | `"any"` | Image filter: `photo`, `clipart`, `lineart`, `demotivator`, `face` / Тип изображения |
| `image_color` | `str` | ❌ | `"any"` | Image filter: `color`, `gray`, or a specific color like `red`, `blue` / Цвет изображения |
| `image_orientation` | `str` | ❌ | `"any"` | Image filter: `horizontal`, `vertical`, `square` / Ориентация изображения |
| `image_file_type` | `str` | ❌ | `"any"` | Image filter: `jpg`, `png`, `gifan` (animated GIF) / Формат файла |
| `image_width` | `int` | ❌ | `None` | Exact pixel width; set together with `image_height` / Точная ширина в пикселях |
| `image_height` | `int` | ❌ | `None` | Exact pixel height; set together with `image_width` / Точная высота в пикселях |
| `image_site` | `str` | ❌ | `None` | Only images hosted on this site, e.g. `commons.wikimedia.org` / Только с указанного сайта |
| `image_recent` | `bool` | ❌ | `false` | Only images from the last 7 days / Только свежие изображения |
| `video_duration` | `str` | ❌ | `"any"` | Video filter: `short`, `medium`, `long` / Длительность видео |
| `video_hd` | `bool` | ❌ | `false` | Only high-definition videos / Только HD-видео |
| `yandex_domain` | `str` | ❌ | `"yandex.com"` | Yandex domain (e.g., `"yandex.ru"` for Russia, `"yandex.com.tr"` for Turkey) / Домен Яндекса |
| `lang` | `str` | ❌ | `"en"` | Language code (e.g., `"ru"`, `"tr"`, `"null"` for unspecified) / Код языка |
| `lr` | `int` | ❌ | `None` | Location/region ID to limit results to a country, region, or city. Defaults to the domain default (e.g., `84` for `yandex.com`, `225` for `yandex.ru`). See the Location IDs table below. / Идентификатор региона для ограничения выдачи по стране, региону или городу. Смотрите таблицу регионов ниже. |
| `max_pages` | `int` | ❌ | `2` | Maximum pages to fetch (0 = no limit, capped at 50 per run). Applies to every selected result type. / Максимум страниц (0 = без лимита, не более 50 за запуск) |
| `start_page` | `int` | ❌ | `1` | First result page to fetch. Pass the `next_start_page` value from a previous run to resume deeper results across runs. / Первая страница выдачи; значение `next_start_page` из прошлого запуска продолжает выдачу |
| `fail_on_empty_results` | `bool` | ❌ | `false` | When `true`, a run with zero results caused by a search backend outage finishes as a failed run instead of a successful run with a summary item. / Если `true`, запуск без результатов из-за сбоя источника завершается ошибкой |
| `groups_on_page` | `int` | ❌ | `10` | Number of result groups per page (1-20) / Число групп результатов на странице (1-20) |
| `family_mode` | `int` | ❌ | `1` | Safe search: `0` = off, `1` = moderate, `2` = strict / Безопасный поиск |
| `fix_typo` | `bool` | ❌ | `true` | Auto-correct spelling errors in the query / Автоисправление опечаток в запросе |
| `sort_mode` | `str` | ❌ | `"relevance"` | Result ordering: `"relevance"` or `"date"` / Сортировка результатов |
| `period` | `str` | ❌ | `"all"` | Recency window: `"all"`, `"day"`, `"last_two_weeks"`, `"month"` / Период по времени |
| `output_file` | `str` | ❌ | `None` | Custom output filename / Имя файла для вывода |

***

### 📍 Yandex Location IDs (`lr`) | Идентификаторы регионов Яндекса (`lr`)

The `lr` parameter controls which geographic region Yandex uses to localize search results. Each Yandex domain has a default `lr` value, but you can override it with any value from the table below.

Параметр `lr` определяет, какой географический регион Яндекс использует для локализации результатов. У каждого домена есть значение `lr` по умолчанию, но его можно переопределить любым значением из таблицы ниже.

**Default `lr` by domain | Значение `lr` по умолчанию для каждого домена:**

| Domain | Default lr | Region / Регион |
|--------|-----------|--------|
| `yandex.com` | `84` | United States / США |
| `yandex.ru` | `225` | Russia / Россия |
| `yandex.by` | `149` | Belarus / Беларусь |
| `yandex.kz` | `159` | Kazakhstan / Казахстан |
| `yandex.uz` | `171` | Uzbekistan / Узбекистан |
| `yandex.com.tr` | - | Turkey / Турция |

**Retired Yandex domains | Закрытые домены Яндекса**

Yandex consolidated its regional portals: the domains below no longer serve search results, and the actor rejects them. To target those countries, use a supported domain with the `lr` and `lang` parameters instead. | Яндекс закрыл свои региональные порталы: домены ниже больше не возвращают результаты поиска. Для таргетинга на эти страны используйте поддерживаемый домен с параметрами `lr` и `lang`.

| Retired domain / Закрытый домен | Use instead / Используйте вместо |
|----------------|----------------------------------|
| `ya.ru` | `yandex.ru` |
| `yandex.az` | `yandex.com` + `lr=167` + `lang=az` |
| `yandex.com.ge` | `yandex.com` + `lr=169` |
| `yandex.com.am` | `yandex.com` + `lr=168` + `lang=hy` |
| `yandex.co.il` | `yandex.com` + `lr=181` |
| `yandex.md` | `yandex.com` + `lr=208` + `lang=ro` |
| `yandex.tm` | `yandex.com` + `lr=170` + `lang=tk` |
| `yandex.tj` | `yandex.com` + `lr=209` |
| `yandex.eu` | `yandex.com` + `lr=111` |

**Common location IDs** (full list of 123,000+ locations is available in `yandex-ru-geo-codes.json`). | **Часто используемые идентификаторы** (полный список из более чем 123 000 локаций доступен в `yandex-ru-geo-codes.json`).

#### Global / Continental | Мир и континенты

| lr | English Name | Russian Name |
|----|-------------|-------------|
| 10000 | Earth | Земля |
| 10001 | Eurasia | Евразия |
| 10002 | North America | Северная Америка |
| 111 | Europe | Европа |
| 183 | Asia | Азия |
| 138 | Australia and Oceania | Австралия и Океания |
| 241 | Africa | Африка |
| 166 | CIS | СНГ |

#### Russia | Россия

| lr | English Name | Russian Name |
|----|-------------|-------------|
| 225 | Russia | Россия |
| 1 | Moscow and Moscow Oblast | Москва и Московская область |
| 213 | Moscow | Москва |
| 2 | Saint Petersburg | Санкт-Петербург |
| 3 | Central Federal District | Центральный федеральный округ |
| 17 | Northwestern Federal District | Северо-Западный федеральный округ |
| 26 | Southern Federal District | Южный федеральный округ |
| 40 | Volga Federal District | Приволжский федеральный округ |
| 52 | Ural Federal District | Уральский федеральный округ |
| 59 | Siberian Federal District | Сибирский федеральный округ |
| 73 | Far Eastern Federal District | Дальневосточный федеральный округ |
| 4 | Belgorod | Белгород |
| 35 | Krasnodar | Краснодар |
| 39 | Rostov-na-Donu | Ростов-на-Дону |
| 43 | Kazan | Казань |
| 47 | Nizhny Novgorod | Нижний Новгород |
| 50 | Perm | Пермь |
| 51 | Samara | Самара |
| 54 | Yekaterinburg | Екатеринбург |
| 62 | Krasnoyarsk | Красноярск |
| 63 | Irkutsk | Иркутск |
| 65 | Novosibirsk | Новосибирск |
| 66 | Omsk | Омск |
| 172 | Ufa | Уфа |
| 239 | Sochi | Сочи |
| 240 | Togliatti | Тольятти |
| 235 | Magnitogorsk | Магнитогорск |
| 237 | Novokuznetsk | Новокузнецк |

#### Former Soviet States / CIS | Постсоветские государства и СНГ

| lr | English Name | Russian Name |
|----|-------------|-------------|
| 149 | Belarus | Беларусь |
| 157 | Minsk | Минск |
| 153 | Brest | Брест |
| 155 | Gomel | Гомель |
| 159 | Kazakhstan | Казахстан |
| 162 | Almaty | Алматы |
| 163 | Astana | Астана |
| 164 | Karaganda | Караганда |
| 190 | Pavlodar | Павлодар |
| 221 | Chimkent | Шымкент |
| 167 | Azerbaijan | Азербайджан |
| 168 | Armenia | Армения |
| 169 | Georgia | Грузия |
| 170 | Turkmenistan | Туркменистан |
| 171 | Uzbekistan | Узбекистан |
| 207 | Kyrgyzstan | Кыргызстан |
| 208 | Moldova | Молдова |
| 209 | Tajikistan | Таджикистан |
| 187 | Ukraine | Украина |
| 143 | Kyiv | Киев |
| 141 | Dnipro | Днепр |
| 144 | Lviv | Львов |
| 145 | Odesa | Одесса |
| 147 | Kharkiv | Харьков |

#### Middle East & Asia | Ближний Восток и Азия

| lr | English Name | Russian Name |
|----|-------------|-------------|
| 181 | Israel | Израиль |
| 129 | Beer-Sheva | Беэр-Шева |
| 130 | Jerusalem | Иерусалим |
| 131 | Tel Aviv | Тель-Авив |
| 132 | Haifa | Хайфа |
| 210 | United Arab Emirates | Объединённые Арабские Эмираты |
| 134 | China | Китай |
| 135 | South Korea | Южная Корея |
| 137 | Japan | Япония |

#### Europe | Европа

| lr | English Name | Russian Name |
|----|-------------|-------------|
| 96 | Germany | Германия |
| 177 | Berlin | Берлин |
| 178 | Hamburg | Гамбург |
| 100 | Frankfurt am Main | Франкфурт-на-Майне |
| 99 | Munich | Мюнхен |
| 102 | United Kingdom | Великобритания |
| 124 | France | Франция |
| 204 | Spain | Испания |
| 205 | Italy | Италия |
| 246 | Greece | Греция |
| 113 | Austria | Австрия |
| 114 | Belgium | Бельгия |
| 115 | Bulgaria | Болгария |
| 116 | Hungary | Венгрия |
| 117 | Lithuania | Литва |
| 118 | Netherlands | Нидерланды |
| 119 | Norway | Норвегия |
| 120 | Poland | Польша |
| 123 | Finland | Финляндия |
| 125 | Czech Republic | Чехия |
| 126 | Switzerland | Швейцария |
| 127 | Sweden | Швеция |
| 203 | Denmark | Дания |
| 206 | Latvia | Латвия |
| 179 | Estonia | Эстония |
| 180 | Serbia | Сербия |

#### Americas | Америка

| lr | English Name | Russian Name |
|----|-------------|-------------|
| 84 | United States | США |
| 87 | Washington | Вашингтон |
| 200 | Los Angeles | Лос-Анджелес |
| 202 | New York | Нью-Йорк |
| 223 | Boston | Бостон |
| 86 | Atlanta | Атланта |
| 90 | San Francisco | Сан-Франциско |
| 91 | Seattle | Сиэтл |
| 89 | Detroit | Детройт |
| 95 | Canada | Канада |
| 93 | Argentina | Аргентина |
| 94 | Brazil | Бразилия |

#### Oceania | Океания

| lr | English Name | Russian Name |
|----|-------------|-------------|
| 211 | Australia | Австралия |
| 139 | New Zealand | Новая Зеландия |

### 📊 Output Format | Формат вывода

#### Search Result Structure | Структура результата

```json
{
  "text": "machine learning",
  "yandex_domain": "yandex.ru",
  "lang": "ru",
  "lr": "225",
  "max_pages": 3,
  "total_results_found": 150,
  "pages_processed": 3,
  "search_metadata": {
    "yandex_domain": "yandex.ru",
    "domain_description": "Russia",
    "language": "ru",
    "language_description": "Russian",
    "location": "225",
    "max_pages": 3,
    "pagination_limit_reached": false
  },
  "pagination_info": {
    "total_pages": 3,
    "max_pages_set": 3,
    "pagination_stopped_by_limit": false,
    "results_per_page": 10
  },
  "organic_results": [
    {
      "title": "Machine Learning Tutorial",
      "link": "https://example.com/ml-tutorial",
      "snippet": "Learn machine learning fundamentals...",
      "position": 1,
      "displayed_link": "example.com",
      "thumbnail": "https://thumbnail.url",
      "favicon": "https://favicon.url",
      "date": "2024-01-15",
      "rich_snippet": "Rich snippet content...",
      "sitelinks": [...]
    }
  ],
  "ads_results": [...],
  "knowledge_graph": [...],
  "inline_images": [...],
  "inline_videos": [...],
  "results_by_page": {
    "1": {
      "organic_results": [...],
      "ads_results": [...],
      "knowledge_graph": [...],
      "inline_images": [...],
      "inline_videos": [...]
    }
  }
}
```

**Made with ❤️ | Сделано с ❤️**

*Transform your search automation with the most reliable and efficient Yandex search scraper on the market.*

*Выведите автоматизацию поиска на новый уровень с самым надёжным и эффективным парсером поиска Яндекса.*

***

### n8n integration

Available as an n8n community node, **[n8n-nodes-yandex-search-api](https://www.npmjs.com/package/n8n-nodes-yandex-search-api)**. In n8n: Settings, Community Nodes, install `n8n-nodes-yandex-search-api`, then use it in any workflow (it also works as an AI Agent tool).

***

### Featured Tasks

Ready-to-run examples that show this API solving a specific problem. Each opens its own setup so you can
run it on your account in one click.

- [Check Yandex keyword rankings in Moscow](https://apify.com/johnvc/Scrape-Yandex/examples/check-yandex-keyword-rankings-in-moscow?fpr=9n7kx3) - track who ranks on Yandex for your keywords in Moscow with positions and snippets.
- [Get Yandex search results without an API key](https://apify.com/johnvc/Scrape-Yandex/examples/get-yandex-search-results-without-an-api-key?fpr=9n7kx3) - organic Yandex results as clean JSON with no key or quota setup.
- [Use Yandex search in Claude via MCP](https://apify.com/johnvc/Scrape-Yandex/examples/use-yandex-search-in-claude-via-mcp?fpr=9n7kx3) - let Claude search the Russian web live inside the conversation (free trial available).

***

- [Check SERP results in Russian on Yandex](https://apify.com/johnvc/Scrape-Yandex/examples/check-serp-results-in-russian-on-yandex?fpr=9n7kx3) - run a Russian query on yandex.ru and get the SERP as JSON: organic results with titles, links, and snippets, language and region set for Russian search..
- [Check SERP results in English on Yandex](https://apify.com/johnvc/Scrape-Yandex/examples/check-serp-results-in-english-on-yandex?fpr=9n7kx3) - run an English query on yandex.com and get the SERP as JSON: organic results with titles, links, and snippets, language and region set for English search..
- [Check SERP results in Belarusian on Yandex](https://apify.com/johnvc/Scrape-Yandex/examples/check-serp-results-in-belarusian-on-yandex?fpr=9n7kx3) - run a Belarusian query on yandex.by and get the SERP as JSON: organic results with titles, links, and snippets, language and region set for Belarusian search..
- [Check SERP results in Ukrainian on Yandex](https://apify.com/johnvc/Scrape-Yandex/examples/check-serp-results-in-ukrainian-on-yandex?fpr=9n7kx3) - run a Ukrainian query on yandex.com and get the SERP as JSON: organic results with titles, links, and snippets, language and region set for Ukrainian search..
- [Check SERP results in Kazakh on Yandex](https://apify.com/johnvc/Scrape-Yandex/examples/check-serp-results-in-kazakh-on-yandex?fpr=9n7kx3) - run a Kazakh query on yandex.kz and get the SERP as JSON: organic results with titles, links, and snippets, language and region set for Kazakh search..
- [Check SERP results in Tatar on Yandex](https://apify.com/johnvc/Scrape-Yandex/examples/check-serp-results-in-tatar-on-yandex?fpr=9n7kx3) - run a Tatar query on yandex.ru and get the SERP as JSON: organic results with titles, links, and snippets, language and region set for Tatar search..
- [Check SERP results in Turkish on Yandex](https://apify.com/johnvc/Scrape-Yandex/examples/check-serp-results-in-turkish-on-yandex?fpr=9n7kx3) - run a Turkish query on yandex.com.tr and get the SERP as JSON: organic results with titles, links, and snippets, language and region set for Turkish search..
- [Check SERP results in Uzbek on Yandex](https://apify.com/johnvc/Scrape-Yandex/examples/check-serp-results-in-uzbek-on-yandex?fpr=9n7kx3) - run an Uzbek query on yandex.uz and get the SERP as JSON: organic results with titles, links, and snippets, language and region set for Uzbek search..
- [Check SERP results in French on Yandex](https://apify.com/johnvc/Scrape-Yandex/examples/check-serp-results-in-french-on-yandex?fpr=9n7kx3) - run a French query on yandex.com and get the SERP as JSON: organic results with titles, links, and snippets, language and region set for French search..
- [Check SERP results in Indonesian on Yandex](https://apify.com/johnvc/Scrape-Yandex/examples/check-serp-results-in-indonesian-on-yandex?fpr=9n7kx3) - run an Indonesian query on yandex.com and get the SERP as JSON: organic results with titles, links, and snippets, language and region set for Indonesian search..
- [Check SERP results in German on Yandex](https://apify.com/johnvc/Scrape-Yandex/examples/check-serp-results-in-german-on-yandex?fpr=9n7kx3) - run a German query on yandex.com and get the SERP as JSON: organic results with titles, links, and snippets, language preset to German..
- [Check SERP results in Azerbaijani on Yandex](https://apify.com/johnvc/Scrape-Yandex/examples/check-serp-results-in-azerbaijani-on-yandex?fpr=9n7kx3) - run an Azerbaijani query on yandex.com and get the SERP as JSON: organic results with titles, links, and snippets, language preset to Azerbaijani..
- [Check SERP results in Armenian on Yandex](https://apify.com/johnvc/Scrape-Yandex/examples/check-serp-results-in-armenian-on-yandex?fpr=9n7kx3) - run an Armenian query on yandex.com and get the SERP as JSON: organic results with titles, links, and snippets, language preset to Armenian..
- [Check SERP results in Romanian on Yandex](https://apify.com/johnvc/Scrape-Yandex/examples/check-serp-results-in-romanian-on-yandex?fpr=9n7kx3) - run a Romanian query on yandex.com and get the SERP as JSON: organic results with titles, links, and snippets, language preset to Romanian..
- [Check SERP results in Turkmen on Yandex](https://apify.com/johnvc/Scrape-Yandex/examples/check-serp-results-in-turkmen-on-yandex?fpr=9n7kx3) - run a Turkmen query on yandex.com and get the SERP as JSON: organic results with titles, links, and snippets, language preset to Turkmen..
- [Check SERP results in Latvian on Yandex](https://apify.com/johnvc/Scrape-Yandex/examples/check-serp-results-in-latvian-on-yandex?fpr=9n7kx3) - run a Latvian query on yandex.com and get the SERP as JSON: organic results with titles, links, and snippets, language preset to Latvian..
- [Check SERP results in Lithuanian on Yandex](https://apify.com/johnvc/Scrape-Yandex/examples/check-serp-results-in-lithuanian-on-yandex?fpr=9n7kx3) - run a Lithuanian query on yandex.com and get the SERP as JSON: organic results with titles, links, and snippets, language preset to Lithuanian..
- [Check SERP results in Estonian on Yandex](https://apify.com/johnvc/Scrape-Yandex/examples/check-serp-results-in-estonian-on-yandex?fpr=9n7kx3) - run an Estonian query on yandex.com and get the SERP as JSON: organic results with titles, links, and snippets, language preset to Estonian..

***

- [Track Yandex Search Ads for a Keyword](https://apify.com/johnvc/Scrape-Yandex/examples/track-yandex-search-ads-for-a-keyword?fpr=9n7kx3) - research paid ads on a Yandex results page: each ad's position, title, link, displayed URL, and snippet as JSON.
- [Extract Yandex Knowledge Graph Entities](https://apify.com/johnvc/Scrape-Yandex/examples/extract-yandex-knowledge-graph-entities?fpr=9n7kx3) - pull the entity card for a brand, person, or topic: title, description, type, source, image, and attributes.
- [Collect Yandex Video Results for a Query](https://apify.com/johnvc/Scrape-Yandex/examples/collect-yandex-video-results-for-a-query?fpr=9n7kx3) - get the inline video carousel for any query: each video's title, link, source, duration, thumbnail, and view count.
- [Collect Yandex Inline Images for a Query](https://apify.com/johnvc/Scrape-Yandex/examples/collect-yandex-inline-images-for-a-query?fpr=9n7kx3) - get the inline image strip for any query: each image's title, thumbnail, and link.
- [Search Yandex Images and get full-size image URLs](https://apify.com/johnvc/Scrape-Yandex/examples/search-yandex-images-and-get-full-size-image-urls?fpr=9n7kx3) - query the dedicated Yandex Images vertical: each result's full-size image URL, hosting page, thumbnail, and source as JSON.
- [Search Yandex Videos with channel and view data](https://apify.com/johnvc/Scrape-Yandex/examples/search-yandex-videos-with-channel-and-view-data?fpr=9n7kx3) - query the dedicated Yandex Videos vertical: each video's title, link, duration, views, publish date, source, and channel.
- [Get Recent Yandex Results from the Last Month](https://apify.com/johnvc/Scrape-Yandex/examples/get-recent-yandex-results-from-the-last-month?fpr=9n7kx3) - pull fresh organic results filtered to the last month for freshness-sensitive monitoring.
- [Sort Yandex Search Results by Date](https://apify.com/johnvc/Scrape-Yandex/examples/sort-yandex-search-results-by-date?fpr=9n7kx3) - get organic results ordered by date instead of relevance for news and time-series tracking.

#### Также на русском (Russian)

- [Позиции сайтов в Яндексе по Москве: API](https://apify.com/johnvc/Scrape-Yandex/examples/check-yandex-keyword-rankings-in-moscow-ru?fpr=9n7kx3)
- [API поиска Яндекса без ключа и настройки квот](https://apify.com/johnvc/Scrape-Yandex/examples/get-yandex-search-results-without-an-api-key-ru?fpr=9n7kx3)
- [Поиск Яндекса в Claude через MCP](https://apify.com/johnvc/Scrape-Yandex/examples/use-yandex-search-in-claude-via-mcp-ru?fpr=9n7kx3)
- [Выдача Яндекса на русском: SERP в JSON через API](https://apify.com/johnvc/Scrape-Yandex/examples/check-serp-results-in-russian-on-yandex-ru?fpr=9n7kx3)
- [API выдачи Яндекса на белорусском (yandex.by)](https://apify.com/johnvc/Scrape-Yandex/examples/check-serp-results-in-belarusian-on-yandex-ru?fpr=9n7kx3)
- [Яндекс SERP на украинском: выдача через API](https://apify.com/johnvc/Scrape-Yandex/examples/check-serp-results-in-ukrainian-on-yandex-ru?fpr=9n7kx3)
- [Выдача Яндекса на казахском: SERP API](https://apify.com/johnvc/Scrape-Yandex/examples/check-serp-results-in-kazakh-on-yandex-ru?fpr=9n7kx3)
- [Выдача Яндекса на татарском: SERP через API](https://apify.com/johnvc/Scrape-Yandex/examples/check-serp-results-in-tatar-on-yandex-ru?fpr=9n7kx3)
- [API выдачи Яндекса на узбекском: SERP в JSON](https://apify.com/johnvc/Scrape-Yandex/examples/check-serp-results-in-uzbek-on-yandex-ru?fpr=9n7kx3)
- [Yandex SERP на азербайджанском: API выдачи](https://apify.com/johnvc/Scrape-Yandex/examples/check-serp-results-in-azerbaijani-on-yandex-ru?fpr=9n7kx3)
- [API выдачи Яндекса на армянском языке](https://apify.com/johnvc/Scrape-Yandex/examples/check-serp-results-in-armenian-on-yandex-ru?fpr=9n7kx3)
- [API выдачи Yandex на туркменском в JSON](https://apify.com/johnvc/Scrape-Yandex/examples/check-serp-results-in-turkmen-on-yandex-ru?fpr=9n7kx3)
- [Реклама в Яндексе по ключевому слову: API](https://apify.com/johnvc/Scrape-Yandex/examples/track-yandex-search-ads-for-a-keyword-ru?fpr=9n7kx3)
- [Яндекс Граф знаний API: карточки сущностей](https://apify.com/johnvc/Scrape-Yandex/examples/extract-yandex-knowledge-graph-entities-ru?fpr=9n7kx3)
- [Яндекс Видео: результаты по запросу через API](https://apify.com/johnvc/Scrape-Yandex/examples/collect-yandex-video-results-for-a-query-ru?fpr=9n7kx3)
- [API картинок Яндекса: строка изображений по запросу](https://apify.com/johnvc/Scrape-Yandex/examples/collect-yandex-inline-images-for-a-query-ru?fpr=9n7kx3)
- [Свежие результаты Яндекса за месяц: API](https://apify.com/johnvc/Scrape-Yandex/examples/get-recent-yandex-results-from-the-last-month-ru?fpr=9n7kx3)
- [Яндекс: результаты поиска по дате через API](https://apify.com/johnvc/Scrape-Yandex/examples/sort-yandex-search-results-by-date-ru?fpr=9n7kx3)

***

### 🔌 Integrations: run the yandex search api on a schedule

A single query is useful once. The value shows up when the same Yandex SERP pull runs on its own and lands in the tools you already use. This Actor is a plain HTTP job on the Apify platform, so every integration below works without writing a backend.

**Tasks and Schedules.** Save an input as a Task, then attach a cron Schedule to it. Apify runs it and appends to the dataset for you:

| Cron | What it does |
|------|--------------|
| `0 6 * * *` | Every morning at 06:00 UTC, pull organic positions for your keyword list on `yandex.ru` with `lr: 213` (Moscow). |
| `0 7 * * 1` | Every Monday, refresh the Yandex Images vertical for a product line (`include_image_search: true`). |
| `0 */6 * * *` | Every six hours, capture paid placements on a commercial query (`include_ads: true`). |
| `30 5 1 * *` | On the first of each month, snapshot the knowledge graph card for a brand (`include_knowledge_graph: true`). |

**n8n.** Install the community node **[n8n-nodes-yandex-search-api](https://www.npmjs.com/package/n8n-nodes-yandex-search-api)** (Settings, Community Nodes) and drop Yandex search into any workflow. It also works as an AI Agent tool, so an agent can run a Yandex query mid-conversation. If you prefer the generic route, the official Apify node for n8n runs this Actor by id too.

**Make and Zapier.** Use the Apify app in either platform: "Run an Actor" with `johnvc/Scrape-Yandex`, then "Get dataset items" to feed the rows into Sheets, Airtable, Slack, or a warehouse.

**MCP.** Point any MCP client at `https://mcp.apify.com/?actors=johnvc/Scrape-Yandex` and your agent can search Yandex on demand. Works in Claude Code and Claude Cowork ([free trial](https://claude.ai/referral/uIlpa7nPLg)), Cursor, and any other MCP-aware client.

**Webhooks.** In the Actor's Integrations tab, add a webhook on `ACTOR.RUN.SUCCEEDED`. The payload carries `resource.defaultDatasetId`, which is all your endpoint needs to fetch the fresh rows and push them onward.

**Python.** The same pipeline in a few lines, with the real field names this Actor returns:

```python
from apify_client import ApifyClient

client = ApifyClient("<YOUR_APIFY_TOKEN>")

run = client.actor("johnvc/Scrape-Yandex").call(run_input={
    "text": "матрёшка купить",
    "yandex_domain": "yandex.ru",
    "lang": "ru",
    "lr": 213,
    "include_organic_results": True,
    "include_image_search": True,
    "image_type": "photo",
    "max_pages": 1,
})

for item in client.dataset(run.default_dataset_id).iterate_items():
    if item["item_type"] == "organic":
        for r in item["organic_results"]:
            print(r["position"], r["title"], r["link"])
    elif item["item_type"] == "image_search":
        for img in item["image_results"]:
            print(img["original"], img["link"], img["source"])
```

Each dataset item is tagged with `item_type`, so one scheduled run can fill an organic table, an ads table, and an image table at the same time.

Тот же запуск можно поставить на расписание: сохраните вход как Task, добавьте cron, и парсер Яндекса будет сам пополнять набор данных.

***

### 🔌 Use this API from Claude (MCP)

Add this Actor as a tool in [Claude Code](https://claude.ai/referral/uIlpa7nPLg) (free trial), [Claude Cowork](https://claude.ai/referral/uIlpa7nPLg) (free trial), Cursor, or any other MCP client, via the hosted Apify MCP server. Use this Actor-specific URL:

https://mcp.apify.com/?tools=actors,docs,johnvc/Scrape-Yandex

Setup walkthrough (Apify Console auto-embeds a YouTube URL placed on its own line):

https://www.youtube.com/watch?v=jREWahDGhJM

Apify MCP integration docs: https://docs.apify.com/platform/integrations/mcp

With the server connected, your agent can pull live Yandex SERPs for any keyword, pin a run to one regional portal and `lr` region, and follow up with Yandex Images or Videos results in the same conversation.

Подключите этот актор как инструмент MCP, и агент сам заберёт свежую выдачу Яндекса по нужному региону.

### 💸 Pay per run with crypto (x402)

The Yandex Search API supports agentic payments via the [x402 protocol](https://docs.apify.com/platform/integrations/x402).
AI agents and MCP clients can pay for runs in USDC (on Base) with no Apify account or API token needed:
point your agent at the [Apify MCP server](https://mcp.apify.com/?tools=actors,docs,johnvc/Scrape-Yandex) and it can
discover, pay for, and run this Actor autonomously. Read the
[Apify x402 announcement](https://apify.com/change-log/pay-for-apify-actors-with-x402?fpr=9n7kx3) for details.

***

### 🔗 Related Tools

Pair this Actor with the rest of the search portfolio when one engine is not the whole picture:

- [Search Yandex by image URL and find every page it appears on](https://apify.com/johnvc/yandex-reverse-image-search?fpr=9n7kx3) - the companion image-lookup Actor: matching pages, visually similar images, alternate sizes, and shopping matches. Start from an image instead of a keyword.
- [Scrape Baidu search results for the Chinese market](https://apify.com/johnvc/Baidu-Search-Scraper?fpr=9n7kx3) - the same SERP job for the other large non-Google engine, useful when your research spans Eurasia.
- [Pull Naver web, news, image, and shopping results in Korea](https://apify.com/johnvc/naver-search-api?fpr=9n7kx3) - Korea's dominant portal, with the same per-vertical structure this Actor uses.
- [Get Google Images results with full-size URLs](https://apify.com/johnvc/google-images-api?fpr=9n7kx3) - run the same image query on Google and diff the two image sets side by side.
- [Read Google's AI Overview answers for a query](https://apify.com/johnvc/Google-AI-Overview-API?fpr=9n7kx3) - see which sources an AI answer cites, then compare against who actually ranks on Yandex.
- [YouTube Download API](https://apify.com/johnvc/youtube-download-api?fpr=9n7kx3): inline video results include YouTube links; fetch the media as files for offline analysis.

***

### 🤖 Ask an AI assistant about this API

Open a ready-to-send prompt about the Yandex Search API in the AI of your choice:

- 💬 [ChatGPT](https://chatgpt.com/?q=Using%20the%20Yandex%20Search%20API%20on%20Apify%20%28https://apify.com/johnvc/Scrape-Yandex?fpr=9n7kx3%29%2C%20walk%20me%20through%20this%20use%20case:%20%22Get%20Yandex%20search%20results%20without%20an%20API%20key%22.%20Show%20me%20the%20input%20JSON%2C%20the%20output%20fields%2C%20and%20how%20to%20automate%20it%20with%20the%20API%20or%20MCP.)
- 🧠 [Claude](https://claude.ai/new?q=Using%20the%20Yandex%20Search%20API%20on%20Apify%20%28https://apify.com/johnvc/Scrape-Yandex?fpr=9n7kx3%29%2C%20walk%20me%20through%20this%20use%20case:%20%22Get%20Yandex%20search%20results%20without%20an%20API%20key%22.%20Show%20me%20the%20input%20JSON%2C%20the%20output%20fields%2C%20and%20how%20to%20automate%20it%20with%20the%20API%20or%20MCP.)
- 🔍 [Perplexity](https://www.perplexity.ai/search?q=Using%20the%20Yandex%20Search%20API%20on%20Apify%20%28https://apify.com/johnvc/Scrape-Yandex?fpr=9n7kx3%29%2C%20walk%20me%20through%20this%20use%20case:%20%22Get%20Yandex%20search%20results%20without%20an%20API%20key%22.%20Show%20me%20the%20input%20JSON%2C%20the%20output%20fields%2C%20and%20how%20to%20automate%20it%20with%20the%20API%20or%20MCP.)
- 🅒 [Copilot](https://copilot.microsoft.com/?q=Using%20the%20Yandex%20Search%20API%20on%20Apify%20%28https://apify.com/johnvc/Scrape-Yandex?fpr=9n7kx3%29%2C%20walk%20me%20through%20this%20use%20case:%20%22Get%20Yandex%20search%20results%20without%20an%20API%20key%22.%20Show%20me%20the%20input%20JSON%2C%20the%20output%20fields%2C%20and%20how%20to%20automate%20it%20with%20the%20API%20or%20MCP.)

### ❓ FAQ

#### How do I get Yandex search results without an official API key?

You do not need one. Yandex's own search API requires an account, a key, and quota setup; this Actor takes a query and returns the parsed SERP as JSON, billed per use. Set `text`, optionally `yandex_domain`, `lang`, and `lr`, and run it. There is a ready-made [get Yandex search results without an API key](https://apify.com/johnvc/Scrape-Yandex/examples/get-yandex-search-results-without-an-api-key?fpr=9n7kx3) example you can run on your own account in one click.

#### Where is my Yandex search API key stored in this Actor?

There is no Yandex key anywhere in the input. The only credential involved is your Apify token, which authenticates you to the platform, not to Yandex. If you are migrating from a keyed setup, delete the key handling and pass your query straight to `text`.

#### What does the Yandex SERP API return in a single call?

Up to seven result types, each opt-in and each delivered as its own dataset item tagged with `item_type`: `organic` (position, title, link, displayed link, snippet, date, thumbnail, favicon, rich snippet, sitelinks), `ads`, `knowledge_graph`, `inline_images`, `inline_videos`, plus the two dedicated verticals `image_search` and `video_search`. A [search engine results page](https://en.wikipedia.org/wiki/Search_engine_results_page) is more than ten blue links, and the toggles let you pay only for the blocks you actually want.

#### How do I use the Yandex Images API to get full-size image URLs?

Set `include_image_search: true` (and `include_organic_results: false` if you want the images alone, which skips the web SERP entirely). Each `image_search` item carries `image_results` with `original` (the full-size file), `link` (the hosting page), `thumbnail`, `source`, and `position`. Narrow the set with `image_type`, `image_color`, `image_orientation`, `image_file_type`, exact `image_width` and `image_height`, `image_site`, and `image_recent`. The [search Yandex Images and get full-size image URLs](https://apify.com/johnvc/Scrape-Yandex/examples/search-yandex-images-and-get-full-size-image-urls?fpr=9n7kx3) example shows the shape of the output.

#### Can this Yandex scraper search video too?

Yes. `include_video_search: true` queries the dedicated Yandex Videos vertical and returns `video_results` with title, link, description, thumbnail, duration, views, publish date (`published_at`), source platform, and channel details, filterable by `video_duration` and `video_hd`, and narrowed by the run's `period` and `sort_mode` using each video's publish date. If you only want the carousel that sits inside the web SERP, use `include_inline_videos` instead. Both are separate from the video results you would get from a Western engine, which is the point of running [Yandex](https://en.wikipedia.org/wiki/Yandex) at all.

#### How do I use Yandex search inside Claude via MCP?

Add `https://mcp.apify.com/?actors=johnvc/Scrape-Yandex` as an MCP server in Claude Code or Claude Cowork ([free trial](https://claude.ai/referral/uIlpa7nPLg)), or in any client that speaks the [Model Context Protocol](https://modelcontextprotocol.io). Claude can then run Yandex queries live and read the parsed results, which is handy when the Russian-language web has coverage the English web does not. The [use Yandex search in Claude via MCP](https://apify.com/johnvc/Scrape-Yandex/examples/use-yandex-search-in-claude-via-mcp?fpr=9n7kx3) example walks through the setup.

#### Does this work as one of my Yandex SEO tools?

That is the common use. Point it at a keyword list, set `lr` to the city or region you sell into (123,000+ location IDs, see the table above), and read `organic_results.position` per query. Add `include_ads` when you want to see who is buying the same terms. For date-sensitive work, `period` narrows the SERP to fresh pages (`sort_mode: "date"` reorders Yandex Videos results, but Yandex currently ignores it for web results).

#### Как использовать парсер Яндекса на русском?

Задайте `yandex_domain: "yandex.ru"`, `lang: "ru"` и нужный `lr` (например, `213` для Москвы), а в `text` передайте запрос на русском. Актор вернёт органическую выдачу, рекламу, граф знаний, картинки и видео в JSON. Русскоязычные примеры запусков перечислены выше в разделе «Также на русском».

#### Which Yandex domains and regions are supported?

Six live domains (`yandex.com`, `yandex.ru`, `yandex.by`, `yandex.kz`, `yandex.uz`, `yandex.com.tr`), 19 languages, and the `lr` region ID system covering 123,000+ locations from continents down to individual cities. The retired-domain table above shows what to use instead of `ya.ru`, `yandex.az`, and the other consolidated portals.

#### Where does this data come from?

Straight off a live public search on [Yandex](https://yandex.com), parsed into JSON. Nothing is replayed from an old crawl and nothing is stitched in from a third-party database, so the `position` you read in `organic_results` is the position Yandex served for that query, on that domain, at that `lr` region, at the moment the run fired. This is an independent tool. It is not built by, endorsed by, or affiliated with Yandex, and it is not Yandex's own search API.

#### How is this different from searching Yandex by hand?

By hand you get one page, in one region, in whatever language your browser happened to negotiate, and you copy the results out yourself. Here you set `yandex_domain`, `lang`, and `lr` on purpose, page through with `max_pages`, and get titles, links, snippets, positions, and sitelinks back as rows you can diff week over week. Images work the same way. Rather than clicking through [Yandex Images](https://yandex.com/images/) and right-clicking each picture to find the real file, `include_image_search: true` hands you `image_results` with `original` (the full-size file), `link` (the hosting page), `thumbnail`, `source`, and `position`, already narrowed by type, color, orientation, file format, exact size, source site, and recency.

***

### 🧭 What this API reads

Web SERP mode fetches the results page at [yandex.com](https://yandex.com), or at whichever regional portal you put in `yandex_domain`: [yandex.ru](https://yandex.ru) for Russia, [yandex.by](https://yandex.by) for Belarus, [yandex.kz](https://yandex.kz) for Kazakhstan, [yandex.uz](https://yandex.uz) for Uzbekistan, or [yandex.com.tr](https://yandex.com.tr) for Turkey. Each portal keeps its own index, so the same keyword can land in a different order on [yandex.ru](https://yandex.ru) than it does on [yandex.com](https://yandex.com), which is the whole reason to pin a run to one of them. The Actor then parses the blocks you asked for. The two vertical modes go somewhere else entirely: the dedicated Yandex Images and Yandex Videos engines. That is why an `image_search` item carries a full-size `original` URL while the inline image strip on the web page does not. Turn on a vertical by itself and the web SERP request never happens, so you are not billed for a page you did not want. Again, this Actor is not affiliated with Yandex; it reads the same public pages you can open in a browser.

The reason to automate any of it is that a Yandex ranking is region-bound. The same keyword on `lr: 213` (Moscow) and `lr: 84` (United States) comes back in a different order, and reproducing that by hand means clearing state and re-searching once per region. Set `lr` per run instead and the two results land in your dataset as comparable rows.

***

### 🌐 About Alpha OSINT

This Actor is part of [Alpha OSINT](https://www.alphaosint.com), toolset of financial and operations data sources and APIs.
See the [Yandex Search API source page](https://www.alphaosint.com/sources/yandex-search-api/) for related tools and use cases.
For support or requests for this actor, please start a ticket [directly on our support page](https://apify.com/johnvc/Scrape-Yandex/issues/open?fpr=9n7kx3).

Last Updated: 2026.10.27

# Actor input Schema

## `text` (type: `string`):

The search term to search for on Yandex. You can use anything that you would use in a regular Yandex search.

## `include_organic_results` (type: `boolean`):

Return organic (non-paid) search results. Each page of organic results is delivered as its own dataset item (item_type 'organic'). Enabled by default.

## `include_ads` (type: `boolean`):

Return paid advertisement results when the query triggers them (typically commercial queries). Delivered as items with item_type 'ads'. Off by default.

## `include_knowledge_graph` (type: `boolean`):

Return the knowledge graph entity card when present (people, shows, places, brands, etc.). Delivered as items with item_type 'knowledge_graph'. Off by default.

## `include_inline_images` (type: `boolean`):

Return the inline image strip that can appear between organic results. Delivered as items with item_type 'inline_images'. Off by default.

## `include_inline_videos` (type: `boolean`):

Return the inline video carousel that can appear between organic results. Delivered as items with item_type 'inline_videos'. Off by default.

## `include_image_search` (type: `boolean`):

Run the same query through the dedicated Yandex Images vertical and return full image search results: original image URL, hosting page, thumbnail, and source. Each page of image results is delivered as its own dataset item (item_type 'image_search'). Supports the image filters below. Off by default.

## `include_video_search` (type: `boolean`):

Run the same query through the dedicated Yandex Videos vertical and return full video search results: title, link, duration, views, publish date, source platform, and channel. Each page of video results is delivered as its own dataset item (item_type 'video_search'). Supports the video filters below. Off by default.

## `image_type` (type: `string`):

Only return images of this kind: photographs, clipart, line drawings, demotivator posters, or images with faces. 'any' (default) applies no filter.

## `image_color` (type: `string`):

Only return images dominated by this color, or by color vs. black-and-white. 'any' (default) applies no filter.

## `image_orientation` (type: `string`):

Only return images with this aspect: horizontal (landscape), vertical (portrait), or square. 'any' (default) applies no filter.

## `image_file_type` (type: `string`):

Only return images in this file format. 'any' (default) applies no filter.

## `image_width` (type: `integer`):

Only return images with exactly this pixel width. Must be set together with 'Image height'.

## `image_height` (type: `integer`):

Only return images with exactly this pixel height. Must be set together with 'Image width'.

## `image_site` (type: `string`):

Only return images hosted on this site or domain, e.g. 'commons.wikimedia.org'. Leave blank for all sites.

## `image_recent` (type: `boolean`):

Only return images that appeared online within the last 7 days. Off by default.

## `video_duration` (type: `string`):

Only return videos of this length: short, medium, or long. 'any' (default) applies no filter.

## `video_hd` (type: `boolean`):

Only return high-definition videos. Off by default.

## `yandex_domain` (type: `string`):

The Yandex domain to use for search results. Defaults to 'yandex.com'. Each domain has default language and location settings. Yandex retired its other regional portals (ya.ru search, yandex.az, yandex.com.am, yandex.com.ge, yandex.co.il, yandex.md, yandex.tm, yandex.tj, yandex.eu) - to target those countries, combine a supported domain with the 'lang' and 'lr' parameters.

## `lang` (type: `string`):

Language code for search results. Set to null for 'Unspecified'. Can use comma-separated values for multi-language (e.g., 'ru,en'). Defaults to domain language if not specified.

## `lr` (type: `integer`):

Country or region ID to limit search results to a specific geographic location. If not set, the default location for the selected yandex_domain is used (e.g., 84 for yandex.com, 225 for yandex.ru). Common values: 225=Russia, 84=United States, 149=Belarus, 159=Kazakhstan, 171=Uzbekistan, 167=Azerbaijan, 168=Armenia, 169=Georgia, 181=Israel, 208=Moldova, 170=Turkmenistan, 209=Tajikistan, 111=Europe. See the actor README for a full location reference table.

## `max_pages` (type: `integer`):

Maximum number of pages to fetch (0 = no limit, default: 2 to avoid too many requests). Values above 50 are capped at 50 per run; use start_page to resume deeper results in a follow-up run (the next_start_page output field says where to resume).

## `start_page` (type: `integer`):

First (1-based) result page to fetch. Use with the next_start_page value from a previous run to resume deep results across runs. Default: 1.

## `fail_on_empty_results` (type: `boolean`):

When enabled, a run that returns zero results because the search backend did not respond finishes as a failed run instead of succeeding with an explanatory summary item. Enable this if your monitoring keys off the run status. Default: off.

## `groups_on_page` (type: `integer`):

Maximum number of search result groups (listings) returned per page. Accepts values between 1 and 20. Default is 10.

## `family_mode` (type: `integer`):

Controls safe search filtering. 0 = off (no filtering), 1 = moderate (default), 2 = strict (filter explicit content).

## `fix_typo` (type: `boolean`):

Automatically correct spelling errors in the search query. Default is true.

## `sort_mode` (type: `string`):

How results are ordered. 'relevance' (default) ranks by relevance; 'date' ranks newest first. Reliably applied to Yandex Videos results (ordered by each video's publish date). For web results the request is passed to Yandex, but Yandex currently returns the same order as 'relevance' (verified October 2026), so use 'period' to get fresh web pages. Not applied to Yandex Images.

## `period` (type: `string`):

Restrict results to a recency window. 'all' (default) = no time limit; 'day' = last 24 hours; 'last_two_weeks' = last 14 days; 'month' = last 30 days. Applies to web results (Yandex applies the window using its own freshness data, so a few pages dated just outside the window can appear) and to Yandex Videos results (by each video's publish date; videos with no known date are kept). Not applied to Yandex Images (use 'image_recent'). Video pages are filtered after they are fetched, so a page can carry fewer than 30 videos and still count as a processed page.

## `output_file` (type: `string`):

Optional filename to save results. If not provided, will auto-generate based on search text and parameters.

## Actor input object example

```json
{
  "text": "python tutorial",
  "include_organic_results": true,
  "include_ads": false,
  "include_knowledge_graph": false,
  "include_inline_images": false,
  "include_inline_videos": false,
  "include_image_search": false,
  "include_video_search": false,
  "image_type": "any",
  "image_color": "any",
  "image_orientation": "any",
  "image_file_type": "any",
  "image_recent": false,
  "video_duration": "any",
  "video_hd": false,
  "yandex_domain": "yandex.com",
  "lang": "en",
  "max_pages": 2,
  "start_page": 1,
  "fail_on_empty_results": false,
  "groups_on_page": 10,
  "family_mode": 1,
  "fix_typo": true,
  "sort_mode": "relevance",
  "period": "all"
}
```

# Actor output Schema

## `allResults` (type: `string`):

Complete dataset with all search results including organic results, ads, knowledge graph, and media

## `organicResults` (type: `string`):

Organic search results from Yandex

## `knowledgeGraph` (type: `string`):

Knowledge graph information about the search query

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

Summary information including search metadata and pagination info

## `imageSearchResults` (type: `string`):

Dedicated Yandex Images vertical results, one row per image

## `videoSearchResults` (type: `string`):

Dedicated Yandex Videos vertical results, one row per video

# 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 = {
    "text": "python tutorial",
    "lang": "en"
};

// Run the Actor and wait for it to finish
const run = await client.actor("johnvc/scrape-yandex").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 = {
    "text": "python tutorial",
    "lang": "en",
}

# Run the Actor and wait for it to finish
run = client.actor("johnvc/scrape-yandex").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 '{
  "text": "python tutorial",
  "lang": "en"
}' |
apify call johnvc/scrape-yandex --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,johnvc/scrape-yandex"
        }
    }
}
```

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/y7gc70pJD81ubH2I9/builds/pjMxuuTzjeb8ho7bP/openapi.json
