Track Yandex rankings for the Russian-language market
Get Yandex results pages as JSON with position, title, link, snippet and ads for a query, to track rankings and competitors where Google is not the main engine.
If your customers are in Russian-speaking markets, Google rankings tell you little, because Yandex ranks differently and shows different competitors. Checking it by hand means a browser, a region setting and a lot of copy-pasting. Lovely Router returns the results page for you. Send a query, get one JSON object per results page, pay per page from a prepaid balance. Call it from a rank-tracking script, a reporting job or an AI agent with one API key.
Hand it to your AI agent
Copy this prompt into Claude Code, Cursor, Codex or any coding agent. It tells the agent where the docs are and how to use your API key.
Track Yandex rankings for the Russian-language market. Use the Lovely Router data tools: each returns JSON and is billed per result.
- Docs (read first): https://lovelyrouter.com/docs/tools/find.md and https://lovelyrouter.com/docs/tools/run.md
- Plan first: POST https://lovelyrouter.com/v1/tools/suggest with `{"task": "<my task in plain words>"}` (free). It returns the tools to run in order, each with an example `input`, the `input_required` fields, an estimated cost and a ready-made `run` request. Replace the example values with my task's; if a field is unclear, read the tool with GET https://lovelyrouter.com/v1/tools/<id>. To browse instead, POST https://lovelyrouter.com/v1/tools/discover searches the catalog.
- Show me the plan and its estimated cost (`total_est_cost_usd`) before running anything large.
- Run: POST https://lovelyrouter.com/v1/tools/<id>/run with `{"input": {...}, "max_results": N}`. A 200 has the finished run with `items`; a 202 means it is still running, so poll the `poll` path until `status` is `succeeded`, `failed`, `timed_out` or `stopped`.
- Only delivered results are billed. Keep max_results small on the first run, check the output, then scale up.
- If you support MCP, connect https://lovelyrouter.com/mcp instead (Streamable HTTP, same key; https://lovelyrouter.com/docs/tools/mcp.md) and use suggest_tools, get_tool and run_tool.
- Auth: read my API key from the LOVELY_API_KEY environment variable and send it as `Authorization: Bearer $LOVELY_API_KEY`. Never print or commit the key. If it is not set, ask me to create one at https://lovelyrouter.com/app/keys.
- Billing is prepaid: every call is charged to my balance, so test with a small request before running anything large.
- Every docs page is plain Markdown; the full index is https://lovelyrouter.com/llms.txt.
My task: <the inputs (links, keywords or accounts) and how many results you need>How it works
List your queries
Write the searches your customers type, in the language they type them: product terms, brand names, questions.
Run the tool with a cap
Send each query to
POST /v1/tools/yandex-search/runwithmax_results. The run holds its maximum cost from your balance and returns the results pages as JSON.Record positions
Find your domain in the organic results, save its position with the date, and note who sits above you and which ads appear.
Get a Yandex results page with one request
Search Yandex takes a query, maxPages for how many result pages to read (about 10 organic results each) and language for regional ranking, such as ru, en, uk, de, tr or kk:
curl https://lovelyrouter.com/v1/tools/yandex-search/run \
-H "Authorization: Bearer $LOVELY_API_KEY" \
-H "content-type: application/json" \
-d '{
"input": {
"query": "кофемолка для эспрессо",
"maxPages": 2,
"language": "ru"
},
"max_results": 2
}'Keep maxPages and max_results equal. A run still going after 60 seconds returns 202; Run a tool shows how to poll.
What each results page holds
| Field group | What you get |
|---|---|
| Organic results | Position, title, link and snippet |
| Ads | The ads shown for the query |
A run reads up to 10 pages, which is about 100 organic results for one query.
Recipes
For 50 target queries, read the first page, find your domain, and store the position by date. Chart movement per query.
Collect the top 10 links for your main queries and count which domains appear most often. Those are your real competitors on Yandex.
Run one query with ru, kk and uk to see how regional ranking changes who shows up.
Watch which advertisers appear for your buying-intent queries and how their text changes.
Read how your title and snippet display, then rewrite pages whose snippet is cut off or off-topic.
Prefer plain words? Connect the MCP server and tell Claude Code or Cursor: "Search Yandex in Russian for the queries in queries.txt, one page each, and tell me the position of mysite.com for each. Set max_results to the number of queries."
Pair it with other search data
Yandex is one engine. Compare it with the rest of your search picture:
Yandex search results pages for a query: organic results (position, title, link, snippet) and ads. Best for Russian-language markets.
Google results pages for a query: organic results (position, title, URL, snippet, date, sitelinks) and related searches. One result = one results page (~10 links).
Google Trends interest over time and by region for a keyword.
News articles from Google News for a search (operators work: "exact phrase", OR, -word, site:, intitle:), optionally within a time window: title, source, date and the article's link on the publisher's site.
google-searchshows the same query on Google.google-trendsshows interest over time for the term.google-newsshows news coverage around a topic.
For the wider workflow, see web data extraction.
What you pay
You pay per page: starting a run holds its maximum cost, the per-call fee plus the per-page fee times max_results, and the run settles to what it returned. The rest of the hold goes back to your balance. A run that fails or times out pays only for the pages it delivered, and a run refused at the start costs nothing.
Tracking 100 queries on page one is billed as 100 pages. There is no subscription and no monthly minimum: top up from $5, and one balance pays for tools and models. The card above shows today's price; pricing lists every tool.
Frequently asked questions
Which languages and regions can I rank for?+
The language input accepts en, ru, uk, de, fr, tr, be, kk, uz, az, lv, lt and et, and sets regional ranking.
How many results do I get per page?+
About 10 organic results per page, plus any ads shown.
How many pages can I read?+
Up to 10 per run. The default is 1.
Can I check the position of my site?+
Yes. The results hold position and link for each organic result, so match your domain in your own code.
Does it return results for a city?+
The data only documents regional ranking through the language setting, so I would not rely on city-level results.
Do I need a subscription?+
No. You add credit to a prepaid balance and each run draws it down. Failed runs pay only for the results they delivered, and nothing renews automatically.
Comparing engines? See web data extraction, research agents and the rest of the tool catalog.