---
metadata:
  - name: generator
    content: Diplodoc Platform v5.39.6
alternate:
  - https://yandex.ru/dev/commercial/doc/en/concepts/jsapi-geocoder.md
---
> **Documentation Index:** Fetch the complete configuration index at https://yandex.ru/dev/commercial/doc/en/llms.txt

# JavaScript API and Geocoder

[Overview](#section_mzl_pmx_mcb)

[Limitations of the commercial version](#section_j2q_w3t_ncb)

[Licenses and pricing plans](#tariffs)

[Limits in the API](#limits)

[How to get started with the API](#how-to-use)

## Overview {#section_mzl_pmx_mcb}

[JavaScript API](https://yandex.ru/dev/maps/jsapi/doc/2.1/quick-start/index.html) is a software library for working with maps in browsers. It helps you embed on your site a map with toponyms and organizations search, routing, panoramas and other Yandex Maps features.

[Geocoder API](https://yandex.ru/dev/maps/geocoder/doc/desc/concepts/about.html) is an HTTP API that allows to determine the coordinates of objects by their address (and vice versa).

## Paid version limitations {#section_j2q_w3t_ncb}

In the commercial version of JavaScript API, only the “schema” layer is available. This is because the license restrictions of data providers do not allow using satellite layers in the third-party commercial projects.

{% cut "What does the "scheme" layer look like" %}

![](../_images/schema.png)

{% endcut %}

<!--<table frame="all" rowsep="1" colsep="1" id="table_wtr_2jz_rcb"><tgroup cols="2"><colspec colname="newCol2" colnum="1" colwidth="1*"/><colspec colname="c3" colnum="2" colwidth="1*"/><thead><row><entry>Бесплатная версия</entry><entry>Платная версия</entry></row></thead><tbody><row><entry>Доступны три подложки карт: <dl display-style="cut"><dlentry><dt>Схема</dt><dd><image id="image_tt3_5ts_ncb" href="../images/schema.png"/></dd></dlentry><dlentry><dt>Спутник</dt><dd><image href="../images/schema.png" id="image_qxj_db2_scb"/></dd></dlentry><dlentry><dt>Гибрид</dt><dd><image href="../images/schema.png" id="image_p2n_db2_scb"/></dd></dlentry></dl></entry><entry><p>Доступна только подложка <q>схема</q>.</p>Это связано с тем, что лицензионные ограничения провайдеров данных не позволяют использовать спутниковые подложки в сторонних коммерческих проектах.</entry></row><row><entry>Лимит запросов к сервисам геокодирования, маршрутизации и панорам составляет <b>25 000</b> запросов в сутки. </entry><entry><p>Лимит запросов к сервисам геокодирования, маршрутизации и панорам устанавливается <xref href="https://tech.yandex.ru/maps/doc/tariffs/jsapi/index-docpage/" format="html" scope="external">тарифом</xref>.</p></entry></row></tbody></tgroup></table>-->

## Licenses and pricing plans {#tariffs}

For the “JavaScript API and Geocoder” product, two types of licenses are available: standard and extended. The difference is the following: under the standard license, you aren't allowed to save or edit the data you receive through the API. The advanced license doesn't have this restriction.

The price of licenses depends on the number of requests the site sends to the API. [What requests are charged](#counting-requests)

{% note alert %}

Please note that the product license is purchased for a year or a month. You can't make a payment for a different period. Moreover, only prepayment is possible: you can only start using the API after you pay the minimum amount in full.

{% endnote %}

To get access to the extended license, [write to us](mailto:paid-api-maps@yandex-team.ru?subject=Запрос%20на%20расширенную%20лицензию%20JavaScript%20API%20и%20Геокодер) and tell about your project.

## Commercial version {#tariffs}

The standard license doesn't allow saving or changing data obtained using the API. If you need this functionality, purchase the advanced license.

Available pricing plans are listed below:

Table 1. Plans with yearly payment and daily overages

#|
||**Maximum number of requests per day** |**Base cost/Advanced license (data is preserved)**| **Base cost/Basic license** |**Price per 1000 requests over the request limit for the base cost**||
||1000 | 226,200 rubles | 195,000 rubles | 390 rubles||
||10,000 | 678,600 rubles | 585,000 rubles | 195 rubles||
||25,000 | 1,281,800 rubles | 1,105,000 rubles | 163 rubles||
||50,000 | 2,210,000 rubles | 1,820,000 rubles | 163 rubles||
||100,000 | 2,652,000 rubles | 2,184,000 rubles | 163 rubles||
||200,000 | 3,757,000 rubles | 3,094,000 rubles | 117 rubles||
||300,000 | 5,226,000 rubles | 4,329,000 rubles | 117 rubles||
||500,000 | 7,618,000 rubles | 6,305,000 rubles | 117 rubles||
||1,000,000 | 13,481,000 rubles | 11,050,000 rubles | 59 rubles||
||Over 1,000,000 |To calculate costs, send a request to [paid-api-maps@yandex-team.ru](mailto:paid-api-maps@yandex-team.ru?subject=%D0%97%D0%B0%D0%BF%D1%80%D0%BE%D1%81%20%D0%BD%D0%B0%20%D1%80%D0%B0%D1%81%D1%87%D1%91%D1%82%20%D1%81%D1%82%D0%BE%D0%B8%D0%BC%D0%BE%D1%81%D1%82%D0%B8%20API) and tell us how many requests per day you expect.|To calculate costs, send a request to [paid-api-maps@yandex-team.ru](mailto:paid-api-maps@yandex-team.ru?subject=%D0%97%D0%B0%D0%BF%D1%80%D0%BE%D1%81%20%D0%BD%D0%B0%20%D1%80%D0%B0%D1%81%D1%87%D1%91%D1%82%20%D1%81%D1%82%D0%BE%D0%B8%D0%BC%D0%BE%D1%81%D1%82%D0%B8%20API) and tell us how many requests per day you expect.|To calculate costs, send a request to [paid-api-maps@yandex-team.ru](mailto:paid-api-maps@yandex-team.ru?subject=%D0%97%D0%B0%D0%BF%D1%80%D0%BE%D1%81%20%D0%BD%D0%B0%20%D1%80%D0%B0%D1%81%D1%87%D1%91%D1%82%20%D1%81%D1%82%D0%BE%D0%B8%D0%BC%D0%BE%D1%81%D1%82%D0%B8%20API) and tell us how many requests per day you expect.||
|#


Table 2. Plans with monthly payment and daily overages

#|
||**Maximum number of requests per day** | **Base cost/Basic license** | **Price per 1000 requests over the request limit for the base cost**||
||1000 | 20,800 rubles | 390 rubles||
||10,000 | 58,500 rubles | 195 rubles||
|#


{% note info %}

The number of requests over the limit is rounded upwards to the nearest thousand, depending on the selected pricing plan. For example, under the pricing plan with up to 1000 requests per day, 400 requests above the limit are rounded up to 1000. If you exceed the limit multiple times in a month, the overuse charge is calculated for each day separately.

{% endnote %}


[How to purchase a license](https://yandex.ru/dev/commercial/doc/en/concepts/how-to-buy.md)


## Limits in API {#limits}

The following limits are set for the “JavaScript API and Geocoder”:

- Requests per second (RPS): Up to 50. It's calculated as the sum of requests from the client and from the server.

- Total number of requests per day. The limit is set on using the following services:

    {% cut "Geocoding" %}

    Charged operations:
    — Accessing the [Geocoder HTTP API](https://yandex.ru/dev/maps/geocoder/doc/desc/concepts/about.html).
    — Calling the geocode() function.
    — Getting the user's location via the geolocation.get() function, provided that reverse geocoding is enabled (the 'autoReverseGeocode' option is set to `true`).
    — Building a route, provided that the points are specified as addresses, as in the [example](https://tech.yandex.com/maps/jsbox/2.1/multiroute_driving). Each address initiates a separate request to the geocoder.
    — Map search though the control.SearchControl element (with any search service provider).

    The following operations **aren't charged**:
    — Geolocation with reverse geocoding disabled (the 'autoReverseGeocode' option is set to `false`).

    ![](../_images/hr.png)

    {% endcut %}

    {% cut "Routing" %}

    **All** operations that send a request to the Router are charged for:

    — Calling the route() function.

    — Creating a multiRouter.MultiRoute class instance.

    — Building a route through the control.RouteEditor element.

    — Changing the router options that causes re-routing. For example, turning on the traffic jams consideration or changing the routing type.

    — Editing a built route: adding, removing and dragging its points [*](*star).

    \* When dragging the route points, requests to the router are sent on the average every 3 seconds if the server response speed is high enough. For the router, you can increase this interval with the [dragUpdateInterval](https://yandex.ru/dev/maps/jsapi/doc/2.1/ref/reference/multiRouter.MultiRoute.html#param-options.dragUpdateInterval) option. If necessary, you can disable re-routing when editing the route with the [preventDragUpdate](https://yandex.ru/dev/maps/jsapi/doc/2.1/ref/reference/multiRouter.MultiRoute.html#param-options.preventDragUpdate) option.

    ![](../_images/hr.png)

    {% endcut %}

    {% cut "Panorama search" %}

    Charged operations:

    — Calling the panorama.locate() function to search for panoramas in the vicinity of a given point.

    — Calling the panorama.createPlayer() function to create a player on the page.

    — Calling the panorama.Manager.openPlayer() method to display a player with a Yandex panorama.

    The following operations **aren't charged**:

    — Transitions between the linked panoramas inside the open player, for example transitions by the arrows.

    — Creating a player with your own panorama.

    — Adding panorama layer to the map.

    ![](../_images/hr.png)

    {% endcut %}

    The maximum request limit depends on the chosen pricing plan. For example, in the "up to 1000 requests" pricing plan, you can send up to one thousand requests to the geocoding, routing, and panorama search services. For all requests over the limit, a separate invoice is issued according to the pricing plan. You can view this invoice in the [Developer Dashboard](https://developer.tech.yandex.ru/) in the "Finance" section.
    ![](../_images/hr.png)

**How requests are counted**

The number of API requests is calculated using the following formula:

**Geocoder requests** + **Router requests** + ** 5** × **Panorama requests**

{% note alert %}

One request to the Panoramas service equals to five requests in the counter. For example, if you are signed up for the "up to 1000 requests" pricing plan and you sent 200 requests to Panoramas, a separate invoice is created for all subsequent requests.

{% endnote %}

## How to get started with the JavaScript API and Geocoder {#how-to-use}

To use the commercial version of the API:

1. Purchase a license. [How to purchase a license](https://yandex.ru/dev/commercial/doc/en/concepts/how-to-buy.md)
2. Review the documentation for [JavaScript API](https://yandex.ru/dev/maps/jsapi/doc/2.1/quick-start/index.html) and [Geocoder](https://yandex.ru/dev/maps/geocoder/doc/desc/concepts/about.html).
3. Connect the API using the link:

    {% list tabs %}

    - JavaScript API:

        ```
        https://enterprise.api-maps.yandex.ru/<version number>/?apikey=<API key>&lang=<language ID>&<additional parameters>
        ```

    - Geocoder:

        ```
        https://geocode-maps.yandex.ru/1.x/?apikey=<API key>&lang=<language ID>&<additional parameters>
        ```

    {% endlist %}


[*star]: When dragging the route points, requests to the router are sent on the average every 3 seconds if the server response speed is high enough. For the router, you can increase this interval with the [dragUpdateInterval](https://yandex.ru/dev/maps/jsapi/doc/2.1/ref/reference/multiRouter.MultiRoute.html#param-options.dragUpdateInterval) option. If necessary, you can disable re-routing when editing the route with the [preventDragUpdate](https://yandex.ru/dev/maps/jsapi/doc/2.1/ref/reference/multiRouter.MultiRoute.html#param-options.preventDragUpdate) option.

