
TikTok Shop Scraper
scrape.ly/store/shelfbright/tiktok-shop-scraperE-commerceSocial media
1 monthly user

Collect public Yandex web search results with titles, links, snippets, and sitelinks across regional domains.
Scrape public Yandex search results in seconds: organic links with titles, snippets and sitelinks, plus ads, the knowledge graph card, inline images, and the Yandex Images and Yandex Videos verticals. Pick any of six regional Yandex sites (yandex.com, .ru, .kz, .by, .uz, .com.tr). No login, no API key, no captcha solving on your side.
| Field | What it does |
|---|---|
text | The search query. |
maxResults | How many results to save for each selected result type (default 10). |
yandex_domain | yandex.kz (default, the site Yandex refuses least often), yandex.com, yandex.ru, yandex.by, yandex.uz or yandex.com.tr. |
lang, lr | Result language and Yandex region id. |
period, sort_mode | Last day / two weeks / month, and relevance or date order. |
family_mode, fix_typo | Safe search level and Yandex's spelling correction. |
include_* | Organic results, ads, knowledge graph, inline images, inline videos, Yandex Images, Yandex Videos. |
image_* | Image type, color, orientation, file type, exact size and source site (Yandex Images only). |
max_pages, start_page | How many pages to open and where to start. |
{
"text": "python tutorial",
"maxResults": 10,
"yandex_domain": "yandex.kz",
"lang": "en",
"include_organic_results": true,
"include_knowledge_graph": true
}
Each dataset item is one page of one result type (item_type is organic, ads, knowledge_graph, inline_images, inline_videos, image_search or video_search). The Output table opens the results one row at a time.
| Field | Description |
|---|---|
organic_results[] | position, title, link, snippet, displayed_link, sitelinks (title and link) |
ads_results[] | Same fields as organic results, for paid results |
knowledge_graph[] | title, type, description, image, source, website, facts |
image_results[] | title, link (page), thumbnail, original, source |
video_results[] | title, link, thumbnail, duration, views, date, source, channel_name, channel_verified, description |
| page fields | text, yandex_domain, lang, page_number, pages_processed, result_count, next_start_page, search_timestamp ... |
Example item from a test run (trimmed to two results):
{
"text": "python tutorial",
"yandex_domain": "yandex.com",
"lang": "en",
"page_number": 1,
"item_type": "organic",
"result_count": 10,
"search_domain_description": "United States",
"search_language_description": "English",
"next_start_page": 2,
"organic_results": [
{
"position": 1,
"title": "Python Tutorial",
"link": "https://www.w3schools.com/python/",
"snippet": "Learn Python with our tutorial. ... Python Database Handling. In our database section you will learn how to access and work with MySQL and MongoDB databases: Python MySQL Tutorial.",
"displayed_link": "w3schools.com › python",
"sitelinks": [
{"title": "Python Lists", "link": "https://www.w3schools.com/python/python_lists.asp"},
{"title": "Python Getting Started", "link": "https://www.w3schools.com/python/python_getstarted.asp"}
]
},
{
"position": 2,
"title": "The Python Tutorial — Python 3.15.0 documentation",
"link": "https://docs.python.org/3/tutorial/index.html",
"snippet": "This tutorial introduces the reader informally to the basic concepts and features of the Python language and system.",
"displayed_link": "docs.python.org › tutorial"
}
],
"ads_results": [],
"knowledge_graph": [],
"image_results": [],
"video_results": []
}
You pay $3 per 1,000 results ($0.003 per saved result: one organic link, ad, knowledge graph card, image or video). A one-page search with 10 organic results costs $0.03 in result fees, plus a fraction of a cent of platform usage (compute and residential proxy traffic). Web pages after the first (the first two on yandex.kz) are opened in the hosted Scrapely browser, which adds browser credits for that run: usually a few cents per deep search, whatever the number of pages. Captcha retries are never charged as results.
Is it legal to scrape Yandex? The actor only reads public search result pages that anyone can open without an account. Check the rules that apply to your use of the data, especially for personal data.
Do I need a login, an API key or my own proxies? No. The actor picks residential exits in countries Yandex lets through on its own. You can still pass your own proxy URLs.
How many results can I get per search? Yandex shows about 10 organic results per page, and you can open as many pages as Yandex serves for the search. Page 1 is fetched directly; later web pages are opened in the hosted browser once it passes the Yandex check, so a deep search takes about 30–90 seconds. Yandex Images returns about 20 results per page for up to 2 pages (about 40 images). Yandex Videos returns about 16–20 per page and can go several pages deep.
Why is a field empty? Yandex only shows ads, knowledge graph cards and image strips for some queries. When the page has none, that item type is skipped and not charged.
What if Yandex shows a captcha? Each page is retried on several fresh exits in parallel, and later web pages fall back to the hosted browser. If every attempt is blocked, the run keeps the pages it already has, says which page was blocked, and charges nothing for the missing pages.
Can I schedule it or call it from code? Yes. Use schedules, webhooks and the API like with any other Actor.
start_page with next_start_page to continue.lr) with the region of the exit IP on web results.Every field below can be set in the run form, passed through the API, or saved as a task. Unset fields fall back to the defaults shown.
textstringOptionaldefault "python tutorial"Search query
Words to search for, the same way you would type them into Yandex.
maxResultsintegerOptionaldefault 10Maximum results
How many results to save for each selected result type (organic, ads, images, ...). Web search returns about 10 organic results per page.
Domain, language, location, and how the results are ordered.
yandex_domainenumOptionaldefault "yandex.kz"Yandex domain
Regional Yandex site. The domain sets the default language and location unless you override them.
langenumOptionaldefault "en"Language
Restrict results to one language. Applied to the first web page and to Images and Videos. Pick nothing to get every language.
lrintegerOptionalLocation id
Yandex region id. Yandex may replace it with the region of the exit IP for web results.
periodenumOptionaldefault "all"Time period
Limit results to a recent window.
sort_modeenumOptionaldefault "relevance"Sort
Order results by relevance or by date.
family_modeenumOptionaldefault 1Safe search
0 is off, 1 is moderate, 2 is strict.
fix_typobooleanOptionaldefault trueAuto-correct spelling
Let Yandex correct the spelling of the query. Turn this off to search the text exactly.
Organic web results are on by default. The other types are optional and use the same page limit.
include_organic_resultsbooleanOptionaldefault trueOrganic results
Save organic web results. Each page is one dataset item.
include_adsbooleanOptionaldefault falseAds
Save paid results when the page includes them.
include_knowledge_graphbooleanOptionaldefault falseKnowledge graph
Save the knowledge graph card when the page includes one.
include_inline_imagesbooleanOptionaldefault falseInline images
Save the image strip shown inside web results.
include_inline_videosbooleanOptionaldefault falseInline videos
Save the video strip shown inside web results.
include_image_searchbooleanOptionaldefault falseYandex Images
Also search the Yandex Images vertical.
include_video_searchbooleanOptionaldefault falseYandex Videos
Also search the Yandex Videos vertical.
Used only when Yandex Images is enabled.
image_typeenumOptionaldefault "any"Image type
Limit the images vertical to one kind of image.
image_colorenumOptionaldefault "any"Image color
Limit images by color.
image_orientationenumOptionaldefault "any"Image orientation
Limit images by shape.
image_file_typeenumOptionaldefault "any"Image file type
Limit images by file type.
image_widthintegerOptionalImage width
Exact width in pixels. Set this together with image height.
image_heightintegerOptionalImage height
Exact height in pixels. Set this together with image width.
image_sitestringOptionalImage source site
Only images hosted on this site, for example commons.wikimedia.org.
Page size, where to start, and what to do when Yandex returns nothing.
max_pagesintegerOptionaldefault 2Maximum pages
How many result pages to open per result type. 0 opens pages until Maximum results is reached or Yandex has no more. Later web pages open in the hosted browser; Images stop at 2 pages, Videos can go deeper. The run also stops at Maximum results.
start_pageintegerOptionaldefault 1Start page
First results page to open. Use the next_start_page value from an earlier run to continue.
fail_on_empty_resultsbooleanOptionaldefault falseFail when Yandex returns no page
Fail the run when Yandex returns nothing or keeps showing a captcha. Off by default: the run finishes with no rows and a status message.
output_filestringOptionalOutput file name
Optional key-value store name for a copy of the dataset items. Leave empty to skip it.
Residential exits are chosen per Yandex domain automatically.
proxyConfigurationobjectOptionaldefault {"useScrapelyProxy":true,"scrapelyProxyGroups":["RESIDENTIA…Proxy configuration
Yandex blocks datacenter IPs, so the actor rotates residential exits in the countries Yandex lets through. Keep the default unless you bring your own proxies.
Every run writes its results to a dataset. Preview it in the dashboard, then export it or read it through the API.
| Field | Type | Description |
|---|---|---|
| item_type | string | Which result type this item carries. |
| result_count | integer | How many results this item carries. |
| text | string | The query that was searched. |
| yandex_domain | string | Domain used for the search. |
| page_number | integer | 1-based results page. |
| organic_results | array | Organic results for this page: position, title, link, snippet, displayed link, and sitelinks. |
| ads_results | array | Paid results for this page. |
| knowledge_graph | array | Knowledge graph card, when one was found. |
| inline_images | array | Inline image strip from the web results page. |
| inline_videos | array | Inline video strip from the web results page. |
| image_results | array | Results from the Yandex Images vertical. |
| video_results | array | Results from the Yandex Videos vertical. |
| search_language_description | string | Language used for the search. |
| search_location | string | Yandex location id used for the search. |
| total_results_found | integer | Organic results collected for this search. |
| next_start_page | integer | Pass this as Start page to continue. 0 means the results ended. |
You pay for the events the actor reports, such as each result or page it produces. Platform usage is included in the event prices.
| Event | Charged when | Price |
|---|---|---|
| Result | One saved search result: an organic link, ad, knowledge graph card, image or video. | $0.003 |
Run this actor from your own code. Swap in your API token and the examples work as-is.
import { ScrapelyClient } from 'scrapely-client'
const client = new ScrapelyClient({ token: process.env.SCRAPELY_TOKEN })
// Start the actor and wait for the run to finish.
const run = await client.actor('querystone/yandex-scraper').call({
"text": "python tutorial",
"maxResults": 10,
"yandex_domain": "yandex.kz",
"lang": "en",
"period": "all",
"sort_mode": "relevance",
"family_mode": 1,
"fix_typo": true,
"include_organic_results": true,
"max_pages": 2,
"start_page": 1,
"proxyConfiguration": {
"useScrapelyProxy": true,
"scrapelyProxyGroups": [
"RESIDENTIAL"
]
}
})
// Read the dataset the run produced.
const { items } = await client.dataset(run.defaultDatasetId).listItems()
console.log(items)Tokens live in your account settings. Keep them server-side: a token carries the full permissions of your account.
Connect the Scrape.ly MCP server once and your agent can run this actor as a tool. Pick your tool:
Fetch scrape.ly/agents.md and run querystone/yandex-scraperPaste into Claude Code, Codex, Cursor or any AI agent. It signs you in once in the browser.
{
"mcpServers": {
"scrapely": {
"url": "https://api.scrape.ly/mcp?tools=actors,runs,storage,docs&actors=querystone/yandex-scraper"
}
}
}No key in the file: your client opens the browser to sign you in the first time it connects.
Inputs the developer prepared for common jobs. Open one to see its input, then copy it to your account to run it as-is or adjust it.
Organic results from Yandex.com.
Organic results from the Russian Yandex site.
Organic results across 3 result pages.
Image search results from Yandex.
Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.