JavaScript API and Geocoder
Limitations of the commercial version
How to get started with the API
Overview
The JavaScript API is a software library for working with maps in browsers. You can use it to embed a map on your site that includes searching by place or business name, routing, panoramas and other Yandex.Maps features.
The Geocoder API is an HTTP API that allows you to get the coordinates of objects from their addresses (and vice versa).
Limitations of the commercial version
In the commercial version of the JavaScript API, only the «roadmap» layer is available. This is because the license restrictions of data providers do not allow the use of satellite layers in third-party commercial projects.
What the «roadmap» layer looks like
Licenses and pricing plans
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. There is no such restriction in the extended license.
The price of licenses depends on the number of requests the site sends to the API. What requests are charged
Warning
Note that you can purchase the product license for one year or month. You can't make a payment for a different term. Only prepayment is possible: you can only start using the API after you pay the minimum amount in full.
To get access to the extended license, write to us and tell about your project.
Standard license
The standard license doesn't allow saving or changing data obtained using the API. If you need this, you should purchase the extended license.
Available pricing plans are listed below:
Table 1. Pricing plans with daily billing and annual payment
Daily request limit |
Cost per year |
Cost of every thousand requests over the limit |
1000 requests |
150,000 rubles |
300 rubles |
10,000 requests |
450,000 rubles |
150 rubles |
25,000 requests |
850,000 rubles |
125 rubles |
50,000 requests |
1,400,000 rubles |
125 rubles |
100,000 requests |
1,680,000 rubles |
125 rubles |
200,000 requests |
2,380,000 rubles |
90 rubles |
300,000 requests |
3,330,000 rubles |
90 rubles |
500,000 requests |
4,850,000 rubles |
90 rubles |
1,000,000 requests |
8,500,000 rubles |
45 rubles |
Over 1,000,000 requests |
To get a cost estimate, write to paid-api-maps@yandex-team.ru and specify the expected number of requests. |
To get a cost estimate, write to paid-api-maps@yandex-team.ru and specify the expected number of requests. |
Table 2. Pricing plans with daily billing and monthly payment
Daily request limit |
Cost per month |
Cost of every thousand requests over the limit |
1000 |
16,000 rubles |
300 rubles |
10,000 |
45,000 rubles |
150 rubles |
Note
The number of requests over the limit is rounded up to the nearest hundred or thousand, depending on your tariff. For example, with a pricing plan with up to 1,000 daily requests, 400 requests over the limit will be rounded up to 1,000. If you exceed the limit multiple times in a month, the overuse charge is calculated for each day separately.
Extended license
The extended license allows you to save and change data received through the API.
The pricing plans and license fees are listed below:
Request limit per day |
Cost per year |
Cost of every thousand requests over the limit |
1000 requests |
174,000 rubles |
300 rubles |
10,000 requests |
522,000 rubles |
150 rubles |
25,000 requests |
986,000 rubles |
125 rubles |
50,000 requests |
1,700,000 rubles |
125 rubles |
100,000 requests |
2,040,000 rubles |
125 rubles |
200,000 requests |
2,890,000 rubles |
90 rubles |
300,000 requests |
4,020,000 rubles |
90 rubles |
500,000 requests |
5,860,000 rubles |
90 rubles |
1,000,000 requests |
10,370,000 rubles |
45 rubles |
Over 1,000,000 requests |
To get a cost estimate, write to paid-api-maps@yandex-team.ru and specify the expected number of requests. |
To get a cost estimate, write to paid-api-maps@yandex-team.ru and specify the expected number of requests. |
Note
The published terms and conditions don't constitute an offer.
How to buy an extended license
Limits in the API
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:
Geocoding
Charged operations:
— Accessing the Geocoder HTTP API;
— 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. Each address initiates a separate request to the geocoder.
— Map search though the control.SearchControl element (with any search provider).
The following operations are not charged:
— Geolocation with reverse geocoding disabled (the 'autoReverseGeocode' option is set to
false
).Routing
All operations that send a request to the Router are charged:
— Calling the route() function.
— Creating a multiRouter.MultiRoute class instance.
— Building a route through the control.RouteEditor element.
— Changing the router options in a way that causes re-routing. Examples are turning on the traffic jams routing option or changing the routing type.
— Editing a built route: adding, removing, and dragging points*.
* When dragging the route points, requests to the router are sent on average every 3 seconds if the server response speed is high enough. For the multirouter, you can increase this interval with the dragUpdateInterval option. If necessary, you can disable re-routing when editing the route with the preventDragUpdate option.
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 linked panoramas inside the open player, such as transitions using the arrows.
— Creating a player with your own panorama.
— Adding the panorama layer to the map.
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's Dashboard in the «Finance» section.
How requests are counted
The number of API requests is calculated using the following formula:
Geocoder requests + Router requests + 5 × Panorama requests
Alert
One request to the Panoramas service is counted as five requests. 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.
How to get started with the JavaScript API and Geocoder
To use the commercial version of the API:
-
Purchase a license. How to purchase a license
-
Review the documentation for the JavaScript API and Geocoder.
-
Connect the API using the link:
JavaScript API:Geocoder:https://enterprise.api-maps.yandex.ru/<version number>/?apikey=<API key>&lang=<language ID>&<additional parameters>
https://geocode-maps.yandex.ru/1.x/?apikey=<API key>&lang=<language ID>&<additional parameters>
When dragging the route points, requests to the router are sent on average every 3 seconds if the server response speed is high enough. For the multirouter, you can increase this interval with the dragUpdateInterval option. If necessary, you can disable re-routing when editing the route with the preventDragUpdate option.