Yandex Search API
Organic results, ads, knowledge-graph cards, inline image strips and inline video carousels from Yandex search, plus the dedicated Images and Videos verticals — across 6 regional domains and 18 language codes, with pagination handled for you.
MEDIAN LAGon demand
PARAMETERS14
TOTAL USERS1,978
MONTHLY ACTIVE43
RUNS SUCCEEDED91.7%
RATING4.43 (5)
Input parameters
| PARAMETER | TYPE | REQ | DEFAULT | DESCRIPTION |
|---|---|---|---|---|
| text | string | yes | — | The search term, exactly as you would type it into Yandex |
| yandex_domain | enum | no | yandex.com | One of 6 regional domains: .com .ru .by .kz .uz .com.tr |
| lang | enum | no | domain default | 18 language codes; comma-separated values allowed for multi-language |
| lr | integer | no | domain default | Region ID limiting results to a geography (225=Russia, 84=US, 159=Kazakhstan …) |
| max_pages | integer | no | 2 | 0 = no limit — drives your bill |
| groups_on_page | integer | no | 10 | Result groups per page, 1–20 |
| include_organic_results | boolean | no | true | Organic rows, as item_type 'organic' |
| include_ads | boolean | no | false | Paid placements, as item_type 'ads' |
| include_knowledge_graph | boolean | no | false | Entity card for people, shows, places and brands |
| include_image_search | boolean | no | false | Runs the query through the dedicated Yandex Images vertical |
| include_video_search | boolean | no | false | Runs the query through the dedicated Yandex Videos vertical |
| period | enum | no | all | Recency window: all · day · last_two_weeks · month |
| sort_mode | enum | no | relevance | relevance or date |
| family_mode | integer | no | 1 | Safe search: 0 off · 1 moderate · 2 strict |
Worked examples
{ "text": "python tutorial" }
{
"text": "machine learning",
"yandex_domain": "yandex.ru",
"lang": "ru",
"max_pages": 3
}
{
"text": "crm система",
"yandex_domain": "yandex.ru",
"max_pages": 5,
"include_ads": true
}
{
"text": "moscow architecture",
"include_image_search": true,
"image_orientation": "horizontal",
"image_recent": true
}
{
"text": "нефть цена",
"yandex_domain": "yandex.ru",
"period": "day",
"sort_mode": "date"
}
POWER-USER TIP
Each result type is its own dataset item — Organic rows, ads, the knowledge graph and the media panels arrive as separate items tagged with item_type rather than nested inside one blob. Filter on item_type and you can route organic and paid results down different paths without post-processing.
Coverage
6
regional domains — .com .ru .by .kz .uz .com.tr
18
language codes — Russian, English, Turkish, Kazakh, Uzbek +13
7
result types — organic · ads · knowledge graph · inline images · inline videos · image search · video search
Tasks
Saved runs with the inputs already filled in — each one a standalone page and a working configuration example.
Code
curl
curl -X POST "https://api.apify.com/v2/acts/johnvc~Scrape-Yandex/run-sync-get-dataset-items" \
-H "Authorization: Bearer $APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"text":"machine learning","yandex_domain":"yandex.ru","lang":"ru","max_pages":3}'
Python
from apify_client import ApifyClient
client = ApifyClient("APIFY_TOKEN")
run = client.actor("johnvc/Scrape-Yandex").call(
run_input={"text": "crm software", "max_pages": 5, "include_ads": True}
)
for item in client.dataset(run.default_dataset_id).iterate_items():
print(item.get("item_type"), item.get("title"))
What people use it for
- Rank tracking across CIS domains
- Competitive visibility monitoring
- Brand mention tracking by region
- Content-gap analysis against Western engines
- Lead sourcing from organic listings
- Academic and market SERP datasets