Introduction

The API for the Yandex.Metrica service allows you to:

  • Manage counters, their settings, and access rights, without using the web interface.
  • Get information about site traffic and other data.
  • Generate reports, including segmented and parameterized reports.

To access the Yandex.Metrica API, you must get authorization using an OAuth access token.

Structure of the API

The API has the following parts:

  • Management API — For managing counters, goals, filters, and other Yandex.Metrica objects (creating a counter, editing its parameters, creating a goal, granting access rights, and so on).
  • Reports API:

Versioning

All parts of the Yandex.Metrica API support versioning. Each version has a specific identifier (v1, v2, and so on). When a new version of the API is released, the previous version continues functioning to support backward compatibility.

If you are just getting started with the API, use the latest version. If you are already using previous versions of the API, we recommend gradually migrating to the latest version, since older versions are supported for a limited time.

When making API requests, always specify the version you want to work with.

https://api-metrica.yandex.net/stat/v1/data?id=...
https://api-metrica.yandex.net/stat/v2/data?id=...

Resources

The Yandex.Metrica API is built on REST principles.

Everything that can be managed via the API is represented by resources: statistics, the list of counters, the counter itself, counter goals and each specific goal, counter access, and so on.

So a resource is an integral part of the system that you can work with:
  • Read the contents and current status of the resource (GET).
  • Modify the contents and status and write it to the resource (PUT).
  • Delete the resource (DELETE).
  • Perform special actions, such as adding new elements to a list (POST).

Each resource has its own unique URL. All actions are executed by the corresponding HTTP methods at the resource URLs.

For example, to get information about a counter, you send a GET request to the counter URL. And to create a new counter, you send a POST request with the counter body to the URL of the “counter list” resource.