Agent skill

Yandex Metrica

by VKirill in VKirill/claude-lane-stack

[RU: яндекс метрика, метрика api, logs api, цели метрики] Yandex.Metrika API via api-metrika.yandex.net with OAuth 2.0.

MITAuto-check passedBackend & APIs

Install Yandex Metrica

skills CLI
$ npx skills add VKirill/claude-lane-stack --skill yandex-metrica -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install VKirill/claude-lane-stack yandex-metrica --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/VKirill/claude-lane-stack.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/lane-stack/skills/yandex/yandex-metrica .claude/skills/yandex-metrica && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
yandex-metrica
GitHub stars
122
Token cost
~5.7k tokens
SKILL.md length
2,290 words
Files
12 (incl. references)
Skills in repo
49
Repo updated
First seen
Licence
MIT

At a glance

[RU: яндекс метрика, метрика api, logs api, цели метрики] Yandex.Metrika API via api-metrika.yandex.net with OAuth 2.0.

  • Works in 11 steps: Sampling kicks in silently. Default… → 5000 requests/day per user_login —… → 200 requests / 5 minutes on… → …
  • : яндекс метрика
  • SKILL.md covers Version Requirements (May 2026), Usage, Use this skill when and Do not use this skill when, plus 11 more sections
  • Reaches api-metrika.yandex.net

What it does

Yandex Metrica is an agent skill from VKirill/claude-lane-stack. [RU: яндекс метрика, метрика api, logs api, цели метрики] Yandex.Metrika API via api-metrika.yandex.net with OAuth 2.0. Reporting API v1 (/stat/v1/data, /bytime, /drilldown, /comparison) with ym:s:/ym:pv:/ym:u: namespaces, filter DSL, attribution models; Logs API raw hits/visits lifecycle created→processed→cleaned, 10 GB/counter; Management API for counters/goals/filters CRUD. Quotas: 5000 req/day per userlogin, 30 req/s per IP (10 for Logs), 3 parallel, 200 req/5min. Use when: яндекс метрика, metrika api…

Its SKILL.md is about 5.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 12 other files, including reference files (for example `references/cookbook.md`, `references/dimensions-and-metrics.md` and `references/errors.md`).

It sits in Backend & APIs, covering OAuth and OpenID Connect. It works with Google Analytics. The repository describes itself as: Multi-agent AI coding factory for one person — Claude Code PM + Codex/Qwen/Grok/Kimi/AGY writers, durable conveyor, auto-merge to main. The licence is MIT.

When your agent uses it

  • : яндекс метрика
  • Raw hits export

Example prompts

  • “/yandex-metrica”

Requirements

  • Python 3
  • Node.js

Workflow steps

11 steps, taken from the first numbered list in SKILL.md.

  1. Sampling kicks in silently. Default accuracy=medium returns sampled: true, sample_share: 0.05 (5% of data) for heavy queries. Decisions…
  2. 5000 requests/day per user_login — resets at 00:00 GMT (03:00 MSK). A dashboard polling every minute exhausts the budget before lunch…
  3. 200 requests / 5 minutes on /stat/v1/data/ — a separate counter from the daily cap. Tripping it blocks the endpoint for 5 minutes.
  4. 3 parallel requests per user_login — more than that → 429. Do not run N workers without a semaphore.
  5. 30 req/s per IP (10 req/s for Logs API) — exceeding returns 429 with Retry-After.
  6. Logs API: 10 GB per counter total uncleaned prepared logs. Forget to clean → 400 quota_exceeded. Always POST .../clean after a successful…
  7. Logs API: 1-year max range in a single request, and fields ≤ 3000 characters. Split larger ranges client-side.
  8. Attribution shifts numbers dramatically. The same conversion under LAST vs FIRST attributes to different sources. The default is LASTSIGN…
  9. counter_id (ids=) is mandatory and easy to mix up. One token may have access to dozens of counters; passing the wrong one returns 403.
  10. OAuth scope: read vs write. metrika:read covers Reporting and Logs API but not goal/filter creation or imports. Use metrika:write only…
  11. Same-day data is unstable. Metrika finalizes ~99% of sessions within 3 days. Requests for today are meaningless for final figures.

What it can do on your machine

Read from SKILL.md and the folder at commit 45fa19e. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • api-metrika.yandex.net

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Yandex Metrica loads about 5.7k tokens when it runs, and up to ~31k if it reads all its reference files. Until then it costs about 191 tokens; SKILL.md has 2,290 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~191
When it runs · the whole SKILL.md, loaded when a task matches
~5.7k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~31k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from VKirill/claude-lane-stack at commit 45fa19e, republished under its MIT licence (© VKirill). 2,290 words, ~5,666 tokens.

Download SKILL.mdSave it as .claude/skills/yandex-metrica/SKILL.md (or your agent's skills folder). This skill also uses 11 other files; get the full folder from GitHub.
name
yandex-metrica
description
[RU: яндекс метрика, метрика api, logs api, цели метрики] Yandex.Metrika API via api-metrika.yandex.net with OAuth 2.0. Reporting API v1 (/stat/v1/data, /bytime, /drilldown, /comparison) with ym:s:/ym:pv:/ym:u: namespaces, filter DSL, attribution models; Logs API raw hits/visits lifecycle created→processed→cleaned, 10 GB/counter; Management API for counters/goals/filters CRUD. Quotas: 5000 req/day per user_login, 30 req/s per IP (10 for Logs), 3 parallel, 200 req/5min. Use when: яндекс метрика, metrika api, /stat/v1/data, logs api, raw hits export, ym:s:visits, counter_id, attribution, цели метрики. SKIP: Webmaster (→yandex-webmaster); Direct ads (→yandex-direct); GA4 (→google-analytics); AppMetrica (→appmetrica); CRM (→amocrm/bitrix24).
stacks
yandex-metrica, ru-analytics, python, nodejs
tags
analytics, ru, yandex, metrika, attribution, logs-api, oauth
source
vechkasov-global-skills
risk
high-stakes
<!-- versions:start -->

Version Requirements (May 2026)

Primary pins:

  • Yandex Metrika API: Reporting v1 (/stat/v1/data), Management v1 (/management/v1), Logs (/management/v1/counter/{id}/logrequests*) — stable, no deprecation notice
  • Base URL: https://api-metrika.yandex.net
  • Python: 3.14.x
  • Node.js: 24.x (Active LTS)

Source of truth: STACK_VERSIONS.md — verified 2026-08-24

<!-- versions:end -->

Usage

Loaded automatically when its description matches the active task. Read only the section you need, then follow the link to the relevant reference file for full detail.

Use this skill when

  • Pulling traffic/source/goal/conversion reports via Reporting API (/stat/v1/data)
  • Time-series via /stat/v1/data/bytime (charts grouped by day/week/month)
  • Hierarchical drill-down (e.g. city → page → device) via /stat/v1/data/drilldown
  • A/B segment or period comparisons via /stat/v1/data/comparison
  • Raw hit/visit export via Logs API for ClickHouse / BigQuery / DuckDB
  • Multi-touch attribution — first/last/last-significant/Yandex Direct/cross-device via attribution=
  • CRUD on counters, goals, filters, representatives, operations via Management API
  • Importing expenses, CRM data, offline conversions, user params via Data Import API
  • Storing OAuth tokens with the right minimum scope (metrika:read / metrika:write / metrika:offline_data)
  • Building a Python (httpx) or Node.js client with Logs API polling, 429/503 retry, request_id deduplication
  • Detecting sampling (sampled=true, sample_share) and re-running with accuracy=full when needed

Do not use this skill when

  • Search Console-style queries / index / sitemap — that is not Metrika. Use yandex-webmaster (cascade marker)
  • Yandex.Direct ad campaign stats (impressions, clicks, CPC, CTR) — separate API. Use yandex-direct (cascade marker)
  • Google Analytics 4 — different platform and API. Use google-analytics (cascade marker)
  • AppMetrica (mobile app analytics on appmetrica.yandex.com) — separate API. Use appmetrica (cascade marker)
  • Placing the JS tag on a page or configuring goals via JS — that is tag-manager / frontend work, not API
  • Downstream processing of collected data (ETL, ClickHouse, dashboards) — that belongs to clickhouse / polars / pandas / postgresql
  • Session-recording (Webvisor) data — Webvisor API exists separately and is not covered here

Purpose

Yandex.Metrika is the largest Russian web-analytics platform (the GA4 equivalent for the RU market). The API exposes three surfaces: Reporting API (/stat/v1/data*) — aggregated reports with dimensions, metrics, filter-segments and attribution models; Logs API (/management/v1/counter/{id}/logrequests*) — raw hit/visit export in TSV with created→processed→cleaned lifecycle; Management API (/management/v1) — CRUD on counters, goals, filters, operations. All endpoints are OAuth-authenticated against api-metrika.yandex.net.

This skill is high-stakes because:

  1. Sampling kicks in silently. Default accuracy=medium returns sampled: true, sample_share: 0.05 (5% of data) for heavy queries. Decisions made on an unrepresentative sample are decisions made on noise. Mitigation: accuracy=full for finance-critical reports; always inspect sampled and sample_share in the response.
  2. 5000 requests/day per user_login — resets at 00:00 GMT (03:00 MSK). A dashboard polling every minute exhausts the budget before lunch. Cache responses, aggregate queries.
  3. 200 requests / 5 minutes on /stat/v1/data/ — a separate counter from the daily cap. Tripping it blocks the endpoint for 5 minutes.
  4. 3 parallel requests per user_login — more than that → 429. Do not run N workers without a semaphore.
  5. 30 req/s per IP (10 req/s for Logs API) — exceeding returns 429 with Retry-After.
  6. Logs API: 10 GB per counter total uncleaned prepared logs. Forget to clean → 400 quota_exceeded. Always POST .../clean after a successful download.
  7. Logs API: 1-year max range in a single request, and fields ≤ 3000 characters. Split larger ranges client-side.
  8. Attribution shifts numbers dramatically. The same conversion under LAST vs FIRST attributes to different sources. The default is LASTSIGN (last significant). If API numbers disagree with the web UI, check the attribution model.
  9. counter_id (ids=) is mandatory and easy to mix up. One token may have access to dozens of counters; passing the wrong one returns 403.
  10. OAuth scope: read vs write. metrika:read covers Reporting and Logs API but not goal/filter creation or imports. Use metrika:write only when CRUD is required.
  11. Same-day data is unstable. Metrika finalizes ~99% of sessions within 3 days. Requests for today are meaningless for final figures.

This skill owns the provider-domain knowledge: endpoints, dimension/metric namespaces, filter DSL, Logs API lifecycle, quotas, attribution models, OAuth scopes. HTTP transport belongs to httpx / nodejs.

Capabilities

OAuth 2.0 and scopes

All requests require Authorization: OAuth <token> (the official scheme; Bearer <token> also works). Tokens are issued via oauth.yandex.ru — application type "For API access / debugging", client_id, Implicit-flow callback. Scopes: metrika:read (reports, Logs API, settings read), metrika:write (counters/goals/filters/operations CRUD), metrika:expenses / metrika:user_params / metrika:offline_data (imports; covered by metrika:write). For organization accounts add passport:business. Tokens have no default TTL but can be revoked by the user.

Full reference: references/setup.md

End-to-end API workflow

Bootstrap → list counters → standard reports → time-series / drilldown / comparison → Logs API submit→poll→download→clean → goals/filters CRUD → quotas & defensive backoff → daily ETL into Postgres.

Full reference: references/workflow.md

Reporting API — request structure

GET https://api-metrika.yandex.net/stat/v1/data?ids=<counter_id>&dimensions=<ym:...>&metrics=<ym:...>&date1=YYYY-MM-DD&date2=YYYY-MM-DD&filters=<expr>&sort=<field>&limit=<n>&offset=<n>&accuracy=full&attribution=LASTSIGN&group=day&direct_client_logins=.... Limits: up to 10 dimensions per request; default limit=100, max 100000 (paginate via offset); date1/date2 accept today, yesterday, NdaysAgo. Endpoints: /stat/v1/data (table), /stat/v1/data/bytime (series), /stat/v1/data/drilldown (hierarchy), /stat/v1/data/comparison (segment comparison).

Full reference: references/reporting-api.md

Dimensions and metrics — namespaces

Namespaces: ym:s: (sessions/visits — the workhorse), ym:pv: (page views), ym:u: (users), ym:up: (user params), ym:ad: (Yandex.Direct), ym:sp: (search phrases), ym:el: (external links), ym:dl: (downloads), ym:ev: (events). Dimensions and metrics in one request must share a namespace or be joined via EXISTS() in the filter. Key fields: ym:s:visits, ym:s:users, ym:s:pageviews, ym:s:bounceRate, ym:s:avgVisitDurationSeconds, ym:s:goal{ID}reaches, ym:s:goal{ID}conversionRate.

Full reference: references/dimensions-and-metrics.md

Filter DSL and segments

Operators: ==, !=, =@ (substring), !@ (no substring), =~ (regex), =* (glob with *), =n (null), =N (not null), >, <, >=, <=, IN(...), NOT IN(...). Logic: AND, OR, NOT. Cross-namespace: EXISTS(ym:pv:URL=='https://...'). Limits: up to 10 unique dimensions/metrics in a filter, 20 conditions, 10 000 chars, 100 values per IN(). filters is a one-shot segment; persistent segments are created via Management API.

Full reference: references/segments-and-filters.md

Logs API — raw-hit lifecycle

Workflow: (1) GET /management/v1/counter/{id}/logrequests/evaluate?date1=&date2=&fields=&source= — verify feasibility (free); (2) POST /management/v1/counter/{id}/logrequests?date1=&date2=&fields=&source=visits|hits — create the job, get request_id, status created; (3) poll GET /management/v1/counter/{id}/logrequest/{request_id} until status becomes processed (or processing_failed / awaiting_retry); (4) download chunks: GET /management/v1/counter/{id}/logrequest/{request_id}/part/{n}/download (count from parts[]); (5) POST /management/v1/counter/{id}/logrequest/{request_id}/clean — release storage. Sources: visits or hits. Limits: fields ≤ 3000 chars, range ≤ 1 year, total ≤ 10 GB per counter. Polling cadence: 30–60 s is reasonable.

Full reference: references/logs-api.md

Management API — CRUD

GET /management/v1/counters — accessible counters (fields id, name, site, permission, pro); GET /management/v1/counter/{id} — details; POST /management/v1/counters — create; PUT /management/v1/counter/{id} — update. Goals: GET/POST /management/v1/counter/{id}/goals, types url, number, step, composite, action. Filters: /counter/{id}/filters (bot/IP/domain exclusion). Operations: /counter/{id}/operations (URL cleanup — strip query params). Representatives: /counter/{id}/representatives.

Full reference: references/management-api.md

Errors, quota exhaustion, retry

HTTP 401 = invalid/expired token (reissue); 403 = no access to counter_id (check token owner); 429 = rate limit (honor Retry-After); 400 + quota_exceeded = 10 GB Logs cap; 400 + LimitedExceededException = daily request budget exhausted. Retry policy: exponential backoff 1→2→4→8 with jitter, cap 60 s; never retry 401/403/400.

Full reference: references/errors.md

Rate limits and concurrency strategy

Global: 30 req/s per IP (Reporting + Management), 10 req/s per IP for Logs API, 3 parallel per user_login, 5000 req/day per user_login (reset 00:00 GMT = 03:00 MSK), 200 req / 5 min on /stat/v1/data/. Logs API: 10 GB of prepared logs per counter. Recipe: asyncio.Semaphore(3), token-bucket at 30 req/s, response cache for 5–15 min on dashboards, daily counter in Redis.

Full reference: references/rate-limits.md

Production clients (Python + Node.js)

Ready-made templates: httpx.AsyncClient with OAuth, token-bucket for 30 req/s, asyncio.Semaphore(3), retry on 429/503 honoring Retry-After, daily counter in Redis, request_id persistence in Postgres, Logs API worker (submit → poll → download chunks → clean), TSV parsing for multi-touch attribution (first/last/linear), Node.js mirror on undici. PostgreSQL schema for daily aggregates + raw hits.

Full reference: references/integration.md

Quick reference

APIBase pathAuthRate
Reportinghttps://api-metrika.yandex.net/stat/v1/data{,bytime,drilldown,comparison}OAuth200 req/5 min, 5000/day
Logshttps://api-metrika.yandex.net/management/v1/counter/{id}/logrequest*OAuth metrika:read10 req/s, 10 GB/counter
Managementhttps://api-metrika.yandex.net/management/v1/{counters,counter/{id}/{goals,filters,operations,representatives}}OAuth (read or write per op)30 req/s
Data Importhttps://api-metrika.yandex.net/management/v1/counter/{id}/{expenses,offline_conversions,calls,user_params}/uploadOAuth metrika:write+scope30 req/s
/stat/v1/data paramTypeNotes
idsint / CSVcounter_id (required); multiple comma-separated
dimensionsCSVup to 10; e.g. ym:s:date,ym:s:lastTrafficSource
metricsCSVe.g. ym:s:visits,ym:s:users,ym:s:bounceRate
date1, date2strYYYY-MM-DD, today, yesterday, NdaysAgo
filtersstrDSL: ym:s:lastTrafficSource=='organic'
sortCSV-ym:s:visits (minus = DESC)
limitintdefault 100, max 100000
offsetint1-based
accuracystrlow / medium / high / full or number 0.01–1
proposed_accuracybooltrue → server suggests accuracy for speed
attributionstrFIRST / LAST / LASTSIGN (default) / LAST_YANDEX_DIRECT_CLICK / CROSS_DEVICE_* / AUTOMATIC
groupstrall / day / week / month (for /bytime)
direct_client_loginsCSVfor Yandex.Direct reports
include_undefinedboolinclude rows with null dimensions
langstrru / en (label language)
NamespaceHoldsSample dimensionSample metric
ym:s:Visits / sessionsym:s:date, ym:s:lastTrafficSource, ym:s:browser, ym:s:regionCity, ym:s:deviceCategory, ym:s:UTMSourceym:s:visits, ym:s:users, ym:s:bounceRate, ym:s:pageDepth, ym:s:avgVisitDurationSeconds, ym:s:percentNewVisitors, ym:s:goal{ID}reaches, ym:s:goal{ID}conversionRate
ym:pv:Page viewsym:pv:URL, ym:pv:title, ym:pv:refererym:pv:pageviews, ym:pv:users
ym:u:Users (cohorts)ym:u:userID, ym:u:firstVisitDate, ym:u:gender, ym:u:ageIntervalym:u:users, ym:u:visitsPerUser
ym:up:User parametersym:up:paramsLevel1..5ym:up:params
ym:ad:Yandex.Directym:ad:directCampaignName, ym:ad:directOrderym:ad:clicks, ym:ad:RUBAdCost
Logs lifecycle statusMeaning
createdQueued, waiting to be processed
processedReady — download via /part/{n}/download
awaiting_retryTransient error, will be retried
processing_failedTerminal failure — recreate
cleaned_by_userRemoved via POST /clean
cleaned_automatically_as_too_oldAuto-removed after 7 days
canceledCancelled
HTTP / codeMeaningRetry?
401invalid/expired tokenno — reissue token
403no access to counter_idno — check scope/owner
400 + quota_exceeded10 GB Logs / daily 5000no — clean logs / wait for GMT 00:00
429rate limityes — Retry-After, exponential backoff
500/502/503server erroryes — backoff
Show full SKILL.md (852 more words)Show less

Common mistakes

  • Skipping accuracy=full on critical reports → silent sampling, sampled:true, sample_share:0.05 ignored → decisions made on 5% of data. Fix: always inspect sampled in the response; use accuracy=full for finance-grade reports.
  • Namespace mismatch — mixing ym:s: and ym:pv: in the same request → 400. Fix: one namespace per request, cross via EXISTS() in filters.
  • Asking for today for final numbers — data is unstable for up to 3 days. Fix: use yesterday minimum, ideally 7daysAgo for finalized aggregates.
  • Daily 5000 budget burnt by a minute-cadence dashboard. Fix: 5–15 min cache, aggregate queries (one request with 10 dimensions ≠ 10 requests).
  • Not persisting Logs request_id — after a worker restart the job is lost, a new one is created, quota is consumed twice. Fix: store request_id in Postgres/Redis with status, parts[].
  • Skipping /clean after a successful download → 10 GB exhausted in days → 400 quota_exceeded. Fix: always POST /clean once all parts[] are downloaded.
  • Using attribution=LAST with Yandex.Direct and being surprised that traffic "disappeared" — LAST_YANDEX_DIRECT_CLICK is the dedicated model; without it, much Direct traffic gets attributed to direct/none. Fix: use LAST_YANDEX_DIRECT_CLICK or LASTSIGN for Direct reports.
  • Polling Logs API once per second → 429. Fix: 30–60 s cadence, exponential growth capped at ~5 min.
  • Storing the token in repo / logs — a Metrika token is as sensitive as a Yandex ID password for that app. Fix: env only, audit log on use, rotate every N months.
  • Ignoring counter time zone — Metrika data is in the counter's TZ. date1=2026-05-15 is not the UTC calendar day. Fix: explicitly reconcile counter TZ before comparing with UTC data from other systems.
  • Requesting > 1 year in Logs API → 400. Fix: split into yearly chunks, stitch locally.
  • fields > 3000 chars in Logs API → 400. Fix: pick only the columns you need.
  • limit=100 default without pagination → silent row loss. Fix: explicit limit=100000 plus an offset loop until data.length < limit.

Red flags — STOP and verify

  • API numbers disagree with the Metrika web UI — almost always one of (a) sampled:true without accuracy=full, (b) different attribution model, (c) different timezone, (d) request for today. Check those four before forming hypotheses.
  • 429 in bursts → concurrency > 3 or > 30 req/s. Lower the semaphore and token bucket.
  • 400 quota_exceeded on Logs API → cleanup is missing. Run GET /logrequests and batch POST /clean for every processed job that has been downloaded.
  • Logs request_id lost after worker restart → no persistence layer. Add DB persistence from day one.
  • 403 on /stat/v1/data — token belongs to a different user, or counter_id belongs to someone else. Run GET /management/v1/counters to see what is actually visible under this token.
  • Sudden spike in daily 5000 usage → someone added a per-minute poll. Add caching and an "only 500 requests left" alert.

Behavioral Traits

  • Always preflight Logs API via /evaluate before POST /logrequests, especially for wide date ranges — it is free and saves the 10 GB quota.
  • Persist before fire-and-forget: for Logs API always save request_id to the DB before the Yandex response reaches the caller.
  • Sampling = always check sampled, sample_share in the response; do not trust default accuracy.
  • One namespace per query; for cross-namespace data use EXISTS() in filters, never mix ym:s: and ym:pv: in dimensions/metrics.
  • Default to yesterday, not today — a data-quality vs. latency trade-off.
  • Minimum scope: issue metrika:read for analytics, metrika:write only when CRUD is actually needed.

Important Constraints

  • OAuth Bearer/OAuth header is required on every request; missing → 401.
  • 10 dimensions max per Reporting request; 3000 chars max in Logs fields.
  • 1 year max range in Logs API; 10 GB max prepared-log storage per counter.
  • 5000 req/day, 200 req/5min on /stat/v1/data/, 3 parallel, 30 req/s per IP — hard quotas.
  • Logs auto-clean after 7 days — old processed jobs flip to cleaned_automatically_as_too_old.
  • Same-day data is not final (sessions finalize over up to 3 days).
  • yandex-webmaster — search queries / indexation (cascade marker)
  • yandex-direct — Yandex.Direct ad-campaign stats (cascade marker)
  • google-analytics — Google Analytics 4 (cascade marker)
  • appmetrica — mobile-app analytics (cascade marker)
  • httpx, nodejs — HTTP transport for your own client
  • postgresql, redis — request_id persistence, daily counter, response cache
  • polars, pandas, clickhouse — downstream processing for raw hits

API Reference

Quick-start recipes: references/cookbook.md — 20+ yandex_metrika_api call examples (mcp-yandex-seo v0.5+)

EndpointMethodPurpose
/stat/v1/dataGETTabular report (rows × dimensions × metrics)
/stat/v1/data/bytimeGETTime series (for charts)
/stat/v1/data/drilldownGETHierarchical drill-down
/stat/v1/data/comparisonGETComparison of two segments / periods
/stat/v1/data/comparison/drilldownGETComparison + drill-down
/management/v1/countersGET / POSTList / create counters
/management/v1/counter/{id}GET / PUT / DELETESingle-counter CRUD
/management/v1/counter/{id}/goalsGET / POSTGoals
/management/v1/counter/{id}/goal/{goalId}GET / PUT / DELETEGoal
/management/v1/counter/{id}/filtersGET / POSTFilters (bots / IP / domains)
/management/v1/counter/{id}/operationsGET / POSTOperations (URL cleanup)
/management/v1/counter/{id}/representativesGET / POSTRepresentatives (delegated access)
/management/v1/counter/{id}/logrequests/evaluateGETPre-flight feasibility check
/management/v1/counter/{id}/logrequestsGET / POSTList / create Logs API jobs
/management/v1/counter/{id}/logrequest/{requestId}GETJob status
/management/v1/counter/{id}/logrequest/{requestId}/part/{n}/downloadGETDownload a log part
/management/v1/counter/{id}/logrequest/{requestId}/cleanPOSTClean a ready log
/management/v1/counter/{id}/logrequest/{requestId}/cancelPOSTCancel a job
/management/v1/counter/{id}/expenses/uploadPOSTExpenses import
/management/v1/counter/{id}/offline_conversions/uploadPOSTOffline-conversion import
/management/v1/counter/{id}/user_params/uploadPOSTUser-params import

Cookbook (quick-start recipes)

references/cookbook.md — 20+ ready-to-use yandex_metrika_api call examples for the mcp-yandex-seo v0.5 generic gateway. Covers counter discovery, reporting, search phrases, traffic sources, time-series, drilldown, comparison, goals, filters, segments, Logs API lifecycle, and migration from v0.4 narrow tools.

See also

  • yandex-webmaster, yandex-direct, google-analytics, appmetrica — adjacent RU/EN analytics platforms
  • clickhouse — recommended sink for Logs API raw hits
  • httpx, nodejs — HTTP client
  • postgresql, redis — persistence

© VKirill, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 11 other files (references) in plugins/lane-stack/skills/yandex/yandex-metrica of VKirill/claude-lane-stack.

  • SKILL.md
  • references/cookbook.md
  • references/dimensions-and-metrics.md
  • references/errors.md
  • references/integration.md
  • references/logs-api.md
  • references/management-api.md
  • references/rate-limits.md
  • references/reporting-api.md
  • references/segments-and-filters.md
  • references/setup.md
  • references/workflow.md

Open the folder on GitHubat commit 45fa19e

Compare with similar skills

Yandex Metrica next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Yandex Metrica compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Yandex Metrica this skillVKirill/claude-lane-stack122—~5.7kAutomated safety check: PassMIT
Ga4 Auth Setupjeremylongshore/tons-of-skills-marketplace2.8k—~1.6kAutomated safety check: PassMIT
Blog GoogleAgriciDaniel/claude-blog2.3k1 repos~3.3kAutomated safety check: NotesMIT
Sf IntegrationJaganpro/sf-skills424—~1.5kAutomated safety check: PassMIT
Integration Connectivity Generateforcedotcom/sf-skills1.1k—~2.2kAutomated safety check: PassApache-2.0
Implementing Zero Trust For SaaS Applicationsmukul975/Anthropic-Cybersecurity-Skills34k—~2.9kAutomated safety check: PassApache-2.0

Similar skills

  • Ga4 Auth Setup

    jeremylongshore/tons-of-skills-marketplace

    Configure auth for the GA4 Data API — OAuth user credentials for interactive use, or a service account for automation / CI.

    2.8k GitHub stars~1.6k tokensUpdated yesterday
    Backend & APIsAuto-check passed
  • Blog Google

    AgriciDaniel/claude-blog

    Google API integration for blog performance: PageSpeed Insights, CrUX Core Web Vitals with 25-week history, Search Console performance, URL Inspection, Indexing API, GA4 organic traffic, NLP entity…

    2.3k GitHub starsUsed in 1 repo~3.3k tokens
    Marketing & SEOAuto-check: notes
  • Sf Integration

    Jaganpro/sf-skills

    Salesforce integration architecture with 120-point scoring. An agent skill from Jaganpro/sf-skills.

    424 GitHub stars~1.5k tokensUpdated 5 mo ago
    Backend & APIsAuto-check passed
  • Salesforce integration architecture and runtime plumbing with 120-point scoring.

    1.1k GitHub stars~2.2k tokensUpdated yesterday
    Backend & APIsAuto-check passed
  • Implementing Zero Trust For SaaS Applications

    mukul975/Anthropic-Cybersecurity-Skills

    Secures SaaS apps (Microsoft 365, Google Workspace, Salesforce, Slack) via CASB/SSPM deployment, conditional access policies, OAuth app governance, and session-level DLP controls enforcing identity…

    34k GitHub stars~2.9k tokensUpdated 1 mo ago
    Backend & APIsAuto-check passed
  • Official

    Connect a real Slack workspace to local PostHog Conversations (the SupportHog Slack app) so Slack messages become support tickets and replies post back.

    40k GitHub stars~2.3k tokensUpdated yesterday
    Backend & APIsAuto-check: notes

More from VKirill/claude-lane-stack

All 49 skills in this repo
  • UI UX Pro Max

    VKirill/claude-lane-stack

    Lane-stack design + brand intelligence (vendored ui-ux-pro-max).

    122 GitHub stars~4.7k tokensUpdated yesterday
    Auto-check passed
  • App Architect

    VKirill/claude-lane-stack

    Owner-facing architect for a new app or service. An agent skill from VKirill/claude-lane-stack.

    122 GitHub stars~1.2k tokensUpdated yesterday
    Auto-check passed
  • Browser QA

    VKirill/claude-lane-stack

    Live browser QA + Playwright-compatible replay. An agent skill from VKirill/claude-lane-stack.

    122 GitHub stars~2.1k tokensUpdated yesterday
    Auto-check passed
  • Copy Project Life

    VKirill/claude-lane-stack

    Карта файлов копирайта в .agents/copy/: шаблоны, статусы, цепочка audience→headlines→ux.

    122 GitHub stars~534 tokensUpdated yesterday
    Auto-check passed
  • Copy Research

    VKirill/claude-lane-stack

    Dispatch copy-lead helpers: Tavily, Codex luna/terra, grok/X, OpenCode DeepSeek, Cursor Grok 4.6 medium-fast.

    122 GitHub stars~827 tokensUpdated yesterday
    Auto-check passed
  • Docs Maintain

    VKirill/claude-lane-stack

    Keep living docs/ honest after code changes. An agent skill from VKirill/claude-lane-stack.

    122 GitHub stars~459 tokensUpdated yesterday
    Auto-check passed

Questions about Yandex Metrica

What does Yandex Metrica do?

[RU: яндекс метрика, метрика api, logs api, цели метрики] Yandex.Metrika API via api-metrika.yandex.net with OAuth 2.0. Yandex Metrica is an agent skill from VKirill/claude-lane-stack.0.

When should I use Yandex Metrica?

Yandex Metrica fits situations like: : яндекс метрика; raw hits export.

How do I install Yandex Metrica in Claude Code?

Run `npx skills add VKirill/claude-lane-stack --skill yandex-metrica -a claude-code`. Or copy the skill folder (plugins/lane-stack/skills/yandex/yandex-metrica in VKirill/claude-lane-stack) into .claude/skills/yandex-metrica in your project. Claude Code loads it when a task matches its description.

How do I install Yandex Metrica in Codex?

Run `npx skills add VKirill/claude-lane-stack --skill yandex-metrica -a codex`. Or copy the skill folder (plugins/lane-stack/skills/yandex/yandex-metrica in VKirill/claude-lane-stack) into .agents/skills/yandex-metrica in your project. Codex loads it when a task matches its description.

Can I use Yandex Metrica in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add VKirill/claude-lane-stack --skill yandex-metrica -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/yandex-metrica, .gemini/skills/yandex-metrica, .github/skills/yandex-metrica and .opencode/skills/yandex-metrica in your project.

What does Yandex Metrica need to run?

SKILL.md names no scripts, command-line tools or credentials: Yandex Metrica is instructions for the agent only. Our summary lists: Python 3; Node.js.

Does Yandex Metrica access the network?

SKILL.md names 1 domain. In commands or code: api-metrika.yandex.net; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.

Is Yandex Metrica safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Yandex Metrica use?

Yandex Metrica is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Yandex Metrica use?

About 5.7k tokens (SKILL.md is roughly 23k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 25k tokens, read only when the agent opens those files.

What are the alternatives to Yandex Metrica?

Skills that share tags, products or a category with Yandex Metrica: Ga4 Auth Setup (jeremylongshore/tons-of-skills-marketplace, 2.8k stars), Blog Google (AgriciDaniel/claude-blog, 2.3k stars), Sf Integration (Jaganpro/sf-skills, 424 stars) and Integration Connectivity Generate (forcedotcom/sf-skills, 1.1k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Yandex Metrica?

VKirill (a GitHub user) maintains it in VKirill/claude-lane-stack, which has 122 GitHub stars. The repository holds 49 skills in this directory. The repository was last updated on October 9, 2026.

Source: VKirill/claude-lane-stack on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.