Skip to content

New AI assistant answers: ChatGPT, Gemini, Copilot and AI Mode by API

SerpKite
Get API key

POST /v1/places · engine=yandex

Yandex Places API

A local business search over Yandex's organisation database: query plus city in, organisations with category, address, rating, phones, website and hours out.

Get a free API key Try in playground
1 credit per page of results 2,500 free credits, no card Failed calls are free

Overview

What the Yandex Places API does

Yandex runs its own web index and map database, the strongest for Russian-language queries and for Russia and much of the CIS. Use it for Russian and CIS markets, where Yandex's index and Yandex Maps cover more than Google.

/v1/places with engine: "yandex" searches Yandex's organisation database for a query in a location (for example "Moscow, Russia") or around ll. Results carry the same fields as Yandex Maps: title, type and types, address, coordinates, rating, rating_count, phones, website, weekly_hours, oid and yandex_maps_url, in Russian unless language asks for English, Turkish or Kazakh. It's the data behind lead lists, store locators and local market research for Russia and the CIS.

What you get

results[] array
The same organisation fields as Yandex Maps: title, type, address, coordinates, rating, rating_count, phones, website, structured weekly_hours, oid and yandex_maps_url.
meta object
request_id, credits_used, cached, latency_ms, parse_quality, engine (the provider that answered) and route (each provider attempt with outcome and ms).

Request

curl https://api.serpkite.com/v1/places \
  -H "Authorization: Bearer $SERPKITE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"q":"dentist","location":"Moscow, Russia","engine":"yandex"}'

Response (live response, trimmed)

200 OK · Yandex places · live response, trimmed
{
  "request": {
    "country": "ru",
    "endpoint": "places",
    "engine": "yandex",
    "language": "en",
    "location": "Moscow, Russia",
    "num": 10,
    "page": 1,
    "q": "dentist"
  },
  "results": [
    {
      "address": "Хорошёвское ш., 48, Москва",
      "country": "RU",
      "international_phone_number": "+74950855401",
      "latitude": 55.776316,
      "longitude": 37.535485,
      "oid": "1267023147",
      "opening_hours": {
        "Friday": "08:00–23:00",
        "Monday": "08:00–23:00",
        "Saturday": "08:00–23:00",
        "Sunday": "08:00–23:00",
        "Thursday": "08:00–23:00",
        "Tuesday": "08:00–23:00",
        "Wednesday": "08:00–23:00"
      },
      "phone_number": "+7 (495) 085-54-01",
      "position": 1,
      "rating": 5,
      "rating_count": 4471,
      "thumbnail_url": "https://avatars.mds.yandex.net/get-altay/15311720/2a000001971659dc13d877c76393c155764d/L",
      "timezone": "Europe/Moscow",
      "title": "Дантистофф",
      "type": "Стоматологическая клиника",
      "types": [
        "Стоматологическая клиника",
        "стоматологическая поликлиника",
        "зуботехническая лаборатория"
      ],
      "website": "https://dantistoff.ru/",
      "weekly_hours": {
        "friday": [
          {
            "close": "23:00",
            "open": "08:00"
          }
        ],
        "monday": [
          {
            "close": "23:00",
            "open": "08:00"
          }
        ]
      },
      "yandex_maps_url": "https://yandex.ru/maps/org/1267023147/"
    },
    {
      "address": "Новопесчаная ул., 16, корп. 2, Москва",
      "country": "RU",
      "international_phone_number": "+74993020402",
      "latitude": 55.795365,
      "longitude": 37.511085,
      "oid": "211551280131",
      "opening_hours": {
        "Friday": "09:00–21:00",
        "Monday": "09:00–21:00",
        "Saturday": "09:00–21:00",
        "Sunday": "09:00–21:00",
        "Thursday": "09:00–21:00",
        "Tuesday": "09:00–21:00",
        "Wednesday": "09:00–21:00"
      },
      "phone_number": "+7 (499) 302-04-02",
      "position": 2,
      "rating": 5,
      "rating_count": 856,
      "thumbnail_url": "https://avatars.mds.yandex.net/get-sprav-products/17763327/2a0000019bbbadb80943608f85d0d0dc8929/L",
      "timezone": "Europe/Moscow",
      "title": "Трилогия",
      "type": "Стоматологическая клиника",
      "types": [
        "Стоматологическая клиника",
        "стоматологическая поликлиника",
        "медцентр, клиника"
      ],
      "website": "https://trilogiaclinic.ru/",
      "weekly_hours": {
        "friday": [
          {
            "close": "21:00",
            "open": "09:00"
          }
        ],
        "monday": [
          {
            "close": "21:00",
            "open": "09:00"
          }
        ]
      },
      "yandex_maps_url": "https://yandex.ru/maps/org/211551280131/"
    }
  ],
  "meta": {
    "request_id": "req_01J8ZK4M6Q2V7",
    "credits_used": 1,
    "cached": false,
    "engine": "yandex",
    "route": [
      {
        "provider": "yandex",
        "outcome": "ok",
        "ms": 1500
      }
    ],
    "latency_ms": 1518,
    "parse_quality": "ok"
  }
}

Every response also carries X-Credits-Used, X-Credits-Remaining, X-Cache and X-Tokens-Estimate headers. Run this query in the playground

One key, many engines

Yandex through SerpKite

  • Same key, same envelope and the same SDK call as Google: only engine changes.
  • meta.engine names the provider that answered and meta.route lists every attempt. A result is never relabelled.
  • engine: "auto" keeps Google first and falls back to Yandex and the other engines only when Google fails. How fallback works
  • Failed, blocked and empty attempts are free; you pay only for the provider that answered.

Everything Yandex serves on SerpKite

See all engines on the multi-engine search page or in the providers reference.

engine=auto answered by Yandex (illustrative)

meta.route
{
  "request": {
    "endpoint": "places",
    "engine": "auto",
    "q": "dentist"
  },
  "meta": {
    "engine": "yandex",
    "route": [
      {
        "provider": "google",
        "outcome": "blocked",
        "ms": 2140
      },
      {
        "provider": "yandex",
        "outcome": "ok",
        "ms": 640
      }
    ]
  }
}

Reference

Parameters

The parameters /v1/places accepts, in the JSON body or the query string.

Yandex Places API parameters
Name Type Default Description
q required string – The search query. Required. Up to 2,048 characters.
engine string | string[] google "yandex" for this page. "auto" tries Google first and falls back to other engines; a list such as ["google", "yandex"] limits the route to those engines.
location string – Canonical location for local results, e.g. "Austin, Texas, United States". Ending in a country name also sets country.
ll string – Maps and places: search the map at a point and zoom, as "@lat,lng,zoomz", e.g. "@52.52,13.40,14z" (zoom defaults to 14z), wherever the request comes from. Overrides location.
language string en Interface language, as a language code with an optional region (en, de, pt-BR, zh-TW…).
page integer 1 Results page, 1–10. Each page is billed separately.
format string json Response format. markdown is LLM-ready prose; compact is JSON with only the fields agents need. Values: json, compact, markdown.
fields string – Comma-separated projection, e.g. results.title,results.link,knowledge_graph. Cuts tokens.
max_age integer – Accept a cached result up to this many seconds old. Cache hits cost 50% of the credits.

Full reference, error codes and headers are in the /v1/places reference. Queue up to 100 requests at half price with POST /v1/batches.

Use cases

What people build with the Yandex Places API

01

Russian and CIS SEO

Check where a site ranks on Yandex for Russian-language keywords, by region.

02

Local data for Russia

Yandex Maps lists organisations, phones, hours and ratings across Russia and the CIS.

03

Agents that read Russian

Give an agent Yandex results as JSON or Markdown for Russian-language research.

Pricing

Yandex Places API pricing

Cost per call

1 credit

per page of results

  • From $0.60 per 1,000 calls at volume.
  • Credits never expire. No subscription.
  • Failed, empty and blocked calls are refunded.
  • 2,500 free credits = 2,500 calls, then 1,000 credits a month.

For reference: Serper lists Google searches at $1.00 per 1k on its entry tier and $0.30 at its best tier, and its credits expire after 6 months. SerpKite credits cost $1.00 to $0.60 per 1k.

See all pricing
Yandex Places API cost per pack
Pack Price Per 1k credits Per 1k calls Calls per pack
Starter $10 $1.00 $1.00 10,000
Growth $50 $0.80 $0.80 62,500
Pro $300 $0.60 $0.60 500,000

FAQ

Yandex Places API: common questions

Start building

Start with the Yandex Places API

2,500 free credits, then 1,000 every month. No credit card.