Yandex | Scrape Yandex Search Results at Scale - Per Result
Pricing
$15.00 / 1,000 results
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
Maintained by CommunityActor stats
8
Bookmarked
43
Total users
3
Monthly active users
7 days ago
Last modified
Categories
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 configuration | Dataset items | Estimated cost |
|---|---|---|
max_pages: 1 | 1 | ~$0.025 |
max_pages: 2 (default) | 2 | ~$0.05 |
max_pages: 10 | 10 | ~$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_pagesconservatively on first runs.
Use cases
- Russian-market SEO rank tracking — monitor where your domain ranks on
yandex.rufor 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.trto 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
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
text | string | ✅ | "python tutorial" | Search query. Supports any operator yandex.com supports (site:, -, quotes). |
yandex_domain | string | ❌ | "yandex.com" | Regional Yandex domain (see table below). |
lang | string | ❌ | "en" | Language code, or "null" for the domain's default. Comma-separate for multi-language (e.g. "ru,en"). |
lr | string | ❌ | (domain default) | Yandex region ID. Examples: 225 Russia, 84 USA, 213 Moscow, 2 Saint Petersburg. |
max_pages | integer | ❌ | 2 | Max SERP pages to fetch. Each page = 1 paid dataset item. 0 = no cap. |
output_file | string | ❌ | (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)
| Position | Title | URL | Snippet | Date |
|---|---|---|---|---|
| 1 | Machine Learning Tutorial | example.com/ml-tutorial | Learn machine learning fundamentals… | 2024-01-15 |
| 2 | Intro to ML — Coursera | coursera.org/intro-ml | A 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
| Domain | Country / region | Default region ID (lr) | Default language |
|---|---|---|---|
yandex.com | United States | 84 | English |
yandex.ru | Russia | 225 | Russian |
ya.ru | Russia (alternative) | 225 | Russian |
yandex.by | Belarus | 149 | Belorussian |
yandex.kz | Kazakhstan | 159 | Kazakh |
yandex.uz | Uzbekistan | 236 | Uzbek |
yandex.com.tr | Turkey | 983 | Turkish |
yandex.az | Azerbaijan | 50 | Azerbaijani |
yandex.com.ge | Georgia | 81 | (Georgian) |
yandex.com.am | Armenia | 51 | Armenian |
yandex.co.il | Israel | 117 | (Hebrew) |
yandex.md | Moldova | 144 | Romanian |
yandex.tm | Turkmenistan | 218 | Turkmen |
yandex.tj | Tajikistan | 217 | (Tajik) |
yandex.eu | Europe | 1000 | English |
Supported languages
| Code | Language |
|---|---|
null | Auto / domain default (recommended) |
ru | Russian |
en | English |
be | Belorussian |
fr | French |
de | German |
id | Indonesian |
kk | Kazakh |
tt | Tatar |
tr | Turkish |
uk | Ukrainian |
uz | Uzbek |
az | Azerbaijani |
hy | Armenian |
lv | Latvian |
lt | Lithuanian |
et | Estonian |
ro | Romanian |
tk | Turkmen |
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
- Apify Store listing: apify.com/johnvc/yandex-scrape-yandex-search-results-at-scale---per-result
- Pay-Per-Result Python example: github.com/johnisanerd/Apify-Yandex-Pay-Per-Result
- Pay-Per-Event Python example: github.com/johnisanerd/Apify-Yandex-Search-Scraper
- Use via MCP (AI agent integration): docs.apify.com/platform/integrations/mcp
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