Yandex  | Scrape Yandex Search Results at Scale - Per Result avatar

Yandex | Scrape Yandex Search Results at Scale - Per Result

Pricing

$15.00 / 1,000 results

Go to Apify Store
Yandex  | Scrape Yandex Search Results at Scale - Per Result

Yandex | Scrape Yandex Search Results at Scale - Per Result

The ONLY Pay Per Result Apify Actor specifically designed for Yandex search scraping. Perfect for researchers, marketers, and developers who need reliable access to Yandex search results. Supports 15+ domains, 19 languages, and provides clean, structured data extraction with intelligent pagination.

Pricing

$15.00 / 1,000 results

Rating

5.0

(3)

Developer

John

John

Maintained by Community

Actor stats

8

Bookmarked

43

Total users

3

Monthly active users

7 days ago

Last modified

Share

Yandex Search Scraper – SERP API for Organic Results, Ads & Knowledge Graph

A pay-per-result Yandex SERP scraper. Get clean, structured organic results, paid ads, knowledge graph, inline images and videos across 15 Yandex domains and 19 languages.

This is the Pay-Per-Result Edition. If you prefer the Pay-Per-Event billing model instead, see ApifyYandex – Pay-Per-Event Edition.

Python quick-start example (Pay-Per-Result): github.com/johnisanerd/Apify-Yandex-Pay-Per-Result Python quick-start example (Pay-Per-Event): github.com/johnisanerd/Apify-Yandex-Search-Scraper


What this actor returns

Each dataset item represents one fetched page of Yandex results and contains:

  • Organic results — position, title, URL, displayed link, snippet, thumbnail, favicon, date, sitelinks, and rich snippet data
  • Paid ads — position, title, ad URL, displayed link, ad copy, thumbnail, and ad sitelinks
  • Knowledge graph cards — entity title, type, description, source, website, image, and attributes (companies, people, places)
  • Inline images — position, title, thumbnail, source URL, and link
  • Inline videos — position, title, thumbnail, source, duration, and link
  • Run metadata — search timestamp, total results found, pages processed, pagination state, and the full search parameters used

Six dataset preview views (Overview, Organic results, Ads, Knowledge graph, Inline images, Inline videos) are available in Apify Console and via API.


Pricing

This actor uses Apify's Pay-Per-Result billing model. You're charged per dataset item produced, where 1 fetched page of Yandex results = 1 dataset item.

Run configurationDataset itemsEstimated cost
max_pages: 11~$0.025
max_pages: 2 (default)2~$0.05
max_pages: 1010~$0.25

The current per-result price is shown on the Apify Store listing. New users get Apify's free-trial credit, which covers several test runs before committing.

Important: because billing is per dataset item, an unsuccessful page (e.g. an error or empty result) is still pushed as one item to ensure transparent billing. Set max_pages conservatively on first runs.


Use cases

  • Russian-market SEO rank tracking — monitor where your domain ranks on yandex.ru for target keywords across regions like Moscow (lr=213) and Saint Petersburg (lr=2).
  • Competitor SERP monitoring on Yandex — daily snapshots of organic + paid positions for branded and category queries.
  • Localized keyword research across CIS countries — run the same query across yandex.kz, yandex.by, yandex.uz, yandex.com.tr to compare local intent and competition.
  • Yandex ads landscape analysis — capture every advertiser, ad copy, and displayed link on a query to build a competitive ad library.
  • Knowledge graph entity extraction — pull structured entity cards (companies, people, places) returned by Yandex for branded or factual queries.

Quick start

The fastest possible run — just paste a query:

{ "text": "iphone 15 review", "yandex_domain": "yandex.ru" }

More examples

Default search (yandex.com / English / 2 pages):

{ "text": "python tutorial" }

Russian-market query with a 3-page cap:

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

Region-targeted English search (lr 84 = USA):

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

Input parameters

ParameterTypeRequiredDefaultDescription
textstring"python tutorial"Search query. Supports any operator yandex.com supports (site:, -, quotes).
yandex_domainstring"yandex.com"Regional Yandex domain (see table below).
langstring"en"Language code, or "null" for the domain's default. Comma-separate for multi-language (e.g. "ru,en").
lrstring(domain default)Yandex region ID. Examples: 225 Russia, 84 USA, 213 Moscow, 2 Saint Petersburg.
max_pagesinteger2Max SERP pages to fetch. Each page = 1 paid dataset item. 0 = no cap.
output_filestring(auto)Optional output filename; auto-generated from query and parameters if omitted.

Output

Each fetched page is pushed to the dataset as one item. The Apify dataset preview offers six tabular views — Search overview, Organic results, Ads, Knowledge graph, Inline images, Inline videos — or you can export the raw JSON.

Preview (organic results view)

PositionTitleURLSnippetDate
1Machine Learning Tutorialexample.com/ml-tutorialLearn machine learning fundamentals…2024-01-15
2Intro to ML — Courseracoursera.org/intro-mlA free introductory course covering…

Full 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": []
}
}
}

Supported Yandex domains

DomainCountry / regionDefault region ID (lr)Default language
yandex.comUnited States84English
yandex.ruRussia225Russian
ya.ruRussia (alternative)225Russian
yandex.byBelarus149Belorussian
yandex.kzKazakhstan159Kazakh
yandex.uzUzbekistan236Uzbek
yandex.com.trTurkey983Turkish
yandex.azAzerbaijan50Azerbaijani
yandex.com.geGeorgia81(Georgian)
yandex.com.amArmenia51Armenian
yandex.co.ilIsrael117(Hebrew)
yandex.mdMoldova144Romanian
yandex.tmTurkmenistan218Turkmen
yandex.tjTajikistan217(Tajik)
yandex.euEurope1000English

Supported languages

CodeLanguage
nullAuto / domain default (recommended)
ruRussian
enEnglish
beBelorussian
frFrench
deGerman
idIndonesian
kkKazakh
ttTatar
trTurkish
ukUkrainian
uzUzbek
azAzerbaijani
hyArmenian
lvLatvian
ltLithuanian
etEstonian
roRomanian
tkTurkmen

You can pass multiple languages comma-separated, e.g. "ru,en".


Why this actor

Performance & reliability — built for high-throughput scraping with automatic pagination handling. Predictable cost — pay-per-result billing means your bill scales with max_pages, not with run time or memory. Full SERP coverage — organic, ads, knowledge graph, inline images and inline videos in one consistent JSON shape. Localization-first — 15 regional Yandex domains and 19 languages out of the box. Region targeting — override the lr parameter to scrape Yandex from any specific city or oblast. Production-ready output — clean, deterministic field names; no surprise nulls; safe for ETL pipelines.

"In Soviet Russia, Yandex website scrapes you!" 🇷🇺🇺🇸 — but here it's the other way around.


FAQ

How is billing calculated? One fetched Yandex page = one dataset item = one paid result. A run with max_pages: 3 produces up to 3 items. Even an error page is pushed as a single dataset item to keep billing transparent and predictable.

Why does my result count seem low (or high)? Yandex returns ~10 organic results per page. If max_pages: 3 returned only 24 results, Yandex's last page was partial — that's normal. If the count seems too high, the query may be matching ads, knowledge-graph entries, and inline images/videos, all of which sit alongside organic results in the output.

Can I scrape Yandex Images, Maps or News? No — this actor covers the main Yandex web SERP only (organic + ads + knowledge graph + inline images and videos that appear inside the SERP). Yandex Images, Maps, and News are separate verticals not supported here.

Can I search in multiple languages at once? Yes — pass lang as a comma-separated list, e.g. "ru,en". Yandex will return results from any of the listed languages.

Where do I find a lr (region) ID? The most common ones are in the Supported Yandex domains table above. For specific cities or oblasts inside Russia, common values: 213 Moscow, 2 Saint Petersburg, 54 Yekaterinburg, 47 Nizhny Novgorod, 65 Novosibirsk. Yandex's full region taxonomy is documented online.

What happens if max_pages is higher than the available results? Pagination stops at Yandex's last available page; you won't be billed for empty pages. The output's pagination_info.pagination_stopped_by_limit field tells you whether your max_pages cap or Yandex's natural last page ended the run.


Source code & examples


Changelog

  • 0.3 (current) — Added six dataset preview views (overview, organic, ads, knowledge graph, images, videos); grouped input fields into Search / Localization / Run limits sections; expanded README with use cases, FAQ, and full domain/language tables. Fully backwards compatible — no input or output schema changes.

Last Updated: 2026.05.06