Топ приложений по использованию токенов

MD версия

Возвращает список ведущих публичных приложений API VEGA, ранжированных по использованию токенов в указанном диапазоне дат и соответствующих маркетплейсу публичных приложений на сайте api.vega.chat/apps. Общее количество токенов — это prompt_tokens + completion_tokens; скрытые и приватные приложения исключаются, а трафик связанных псевдонимов приложений объединяется с соответствующим каноническим видимым приложением.

sort=popular (по умолчанию) ранжирует приложения по общему объёму токенов внутри указанного диапазона. sort=trending ранжирует приложения по абсолютному избыточному росту использования токенов: объём за указанный период минус средний объём за три непосредственно предшествующих периода такой же продолжительности. Приложения без избыточного роста исключаются, поэтому trending может вернуть меньше строк, чем указано в limit.

Для фильтрации используйте category (группа категорий маркетплейса, например coding) или subcategory (например, cli-agent). После фильтрации позиции перенумеровываются от 1 до N. Для постраничной выдачи используйте offset — значение rank остаётся абсолютным, поэтому первая строка при offset=50 будет иметь значение rank: 51.

Для аутентификации используйте любой действительный ключ API VEGA (тот же ключ, который используется для инференса). Ограничение частоты составляет 30 запросов в минуту на ключ и 500 запросов в день на аккаунт.

При повторной публикации или цитировании этого набора данных необходимо указать API VEGA следующим образом:

«Источник: API VEGA (api.vega.chat/apps), по состоянию на {as_of}.»

Количество токенов рассчитывается с использованием собственного токенизатора каждого вышестоящего провайдера, поэтому токен, отнесённый к одному приложению, нельзя напрямую сравнивать с токеном, отнесённым к другому приложению, если трафик этих приложений проходит через разных провайдеров.

Лицензия CC BY 4.0: разрешается повторное использование и публикация с указанием API VEGA в качестве источника.

OpenAPI

yaml
openapi: 3.1.0 info: contact: email: support@openrouter.ai name: OpenRouter Support url: https://openrouter.ai/docs description: OpenAI-compatible API with additional OpenRouter features license: name: MIT url: https://opensource.org/licenses/MIT title: OpenRouter API version: 1.0.0 servers: - description: Production server url: https://openrouter.ai/api/v1 x-speakeasy-server-id: production security: - apiKey: [] tags: - description: API key management endpoints name: API Keys - description: Analytics and usage endpoints name: Analytics - description: Anthropic Messages endpoints name: Anthropic Messages - description: BYOK endpoints name: BYOK - description: Benchmarks endpoints name: Benchmarks - description: Chat completion endpoints name: Chat - description: Task classification market-share endpoints name: Classifications - description: Credit management endpoints name: Credits - description: >- Public OpenRouter usage datasets. Data returned by these endpoints is licensed under CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/): reuse and republish it, including commercially, with attribution to OpenRouter. name: Datasets - description: Text embedding endpoints name: Embeddings - description: Endpoint information name: Endpoints - description: Files endpoints name: Files - description: Generation history endpoints name: Generations - description: Guardrails endpoints name: Guardrails - description: Images endpoints name: Images - description: Model information endpoints name: Models - description: OAuth authentication endpoints name: OAuth - description: Observability endpoints name: Observability - description: Organization endpoints name: Organization - description: Presets endpoints name: Presets - description: Provider information endpoints name: Providers - description: Rerank endpoints name: Rerank - description: OpenAI-compatible Responses API endpoints name: Responses - description: SCIM endpoints name: SCIM - description: Speech-to-text endpoints name: STT x-displayName: Transcriptions - description: Text-to-speech endpoints name: TTS x-displayName: Speech - description: Video Generation endpoints name: Video Generation - description: Workspaces endpoints name: Workspaces - description: beta.Analytics endpoints name: beta.Analytics externalDocs: description: OpenRouter Documentation url: https://openrouter.ai/docs paths: /datasets/app-rankings: get: tags: - Datasets summary: Top apps by token usage description: >- Returns the top public apps on OpenRouter ranked by token usage inside the requested date window, matching the public apps marketplace on openrouter.ai/apps. Token totals are `prompt_tokens + completion_tokens`; hidden and private apps are excluded and traffic from related app aliases is merged into the canonical visible app. `sort=popular` (default) ranks by total token volume inside the window. `sort=trending` ranks by absolute excess token growth: window volume minus the average volume of the three equal-length periods immediately preceding the window. Apps with no excess growth are omitted, so `trending` may return fewer than `limit` rows. Filter with `category` (marketplace category group, e.g. `coding`) or `subcategory` (e.g. `cli-agent`). Ranks are re-numbered 1..N after filtering. Page with `offset` — `rank` stays absolute, so the first row of `offset=50` is `rank: 51`. Authenticate with any valid OpenRouter API key (same key used for inference). Rate-limited to 30 requests/minute per key and 500 requests/day per account. When republishing or quoting this dataset, OpenRouter must be cited as: "Source: OpenRouter (openrouter.ai/apps), as of {as_of}." Token counts come from each upstream provider's own tokenizer, so a token attributed to one app is not directly comparable to a token attributed to another app whose traffic flows through a different provider. Licensed under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/): reuse and republish with attribution to OpenRouter. operationId: getAppRankings parameters: - description: >- Marketplace category group to filter by (e.g. `coding`). Only apps tagged with a subcategory inside this group are returned. Mutually combinable with `subcategory` — when both are supplied the `subcategory` must belong to the `category` group. in: query name: category required: false schema: description: >- Marketplace category group to filter by (e.g. `coding`). Only apps tagged with a subcategory inside this group are returned. Mutually combinable with `subcategory` — when both are supplied the `subcategory` must belong to the `category` group. enum: - coding - creative - productivity - entertainment example: coding type: string - description: >- Marketplace subcategory to filter by (e.g. `cli-agent`). Takes precedence over `category` for the actual filter; when `category` is also supplied the pair must be consistent. in: query name: subcategory required: false schema: description: >- Marketplace subcategory to filter by (e.g. `cli-agent`). Takes precedence over `category` for the actual filter; when `category` is also supplied the pair must be consistent. enum: - cli-agent - ide-extension - cloud-agent - programming-app - native-app-builder - creative-writing - video-gen - image-gen - audio-gen - roleplay - game - writing-assistant - general-chat - personal-agent - legal example: cli-agent type: string - description: >- `popular` ranks apps by total token volume inside the date window. `trending` ranks apps by absolute excess token growth: window volume minus the average volume of the three equal-length periods immediately preceding the window. Apps with no excess growth are omitted from `trending` results. in: query name: sort required: false schema: default: popular description: >- `popular` ranks apps by total token volume inside the date window. `trending` ranks apps by absolute excess token growth: window volume minus the average volume of the three equal-length periods immediately preceding the window. Apps with no excess growth are omitted from `trending` results. enum: - popular - trending example: popular type: string - description: >- Start of the date window in YYYY-MM-DD (UTC), inclusive. Defaults to 30 days before `end_date`. The dataset begins at 2025-01-01; earlier values are clamped forward to that floor and the resolved value is echoed in `meta.start_date`. in: query name: start_date required: false schema: description: >- Start of the date window in YYYY-MM-DD (UTC), inclusive. Defaults to 30 days before `end_date`. The dataset begins at 2025-01-01; earlier values are clamped forward to that floor and the resolved value is echoed in `meta.start_date`. example: '2026-04-12' pattern: ^\d{4}-\d{2}-\d{2}$ type: string - description: >- End of the date window in YYYY-MM-DD (UTC), inclusive. Defaults to the most recent completed UTC day. Must be on or after 2025-01-01; earlier values are rejected with a 400. in: query name: end_date required: false schema: description: >- End of the date window in YYYY-MM-DD (UTC), inclusive. Defaults to the most recent completed UTC day. Must be on or after 2025-01-01; earlier values are rejected with a 400. example: '2026-05-11' pattern: ^\d{4}-\d{2}-\d{2}$ type: string - description: Maximum number of apps to return (1-100). Defaults to 50. in: query name: limit required: false schema: default: 50 description: Maximum number of apps to return (1-100). Defaults to 50. example: 50 maximum: 100 minimum: 1 type: integer - description: >- Number of ranked apps to skip before the first returned row (0-100). Defaults to 0. `rank` stays absolute, so the first row of `offset=50` is `rank: 51`. in: query name: offset required: false schema: default: 0 description: >- Number of ranked apps to skip before the first returned row (0-100). Defaults to 0. `rank` stays absolute, so the first row of `offset=50` is `rank: 51`. example: 0 maximum: 100 minimum: 0 type: - integer - 'null' responses: '200': content: application/json: example: data: - app_id: 12345 app_name: Cline rank: 1 total_requests: 4321 total_tokens: '12345678' - app_id: 67890 app_name: Roo Code rank: 2 total_requests: 2109 total_tokens: '9876543' meta: as_of: '2026-05-12T02:00:00Z' end_date: '2026-05-11' start_date: '2026-04-12' version: v1 schema: $ref: '#/components/schemas/AppRankingsResponse' description: >- Apps ranked per the requested `sort`, re-numbered 1..N. `popular` sorts by `total_tokens` descending; `trending` sorts by absolute excess token growth descending and may return fewer than `limit` rows. '400': content: application/json: example: error: code: 400 message: Invalid request parameters schema: $ref: '#/components/schemas/BadRequestResponse' description: Bad Request - Invalid request parameters or malformed input '401': content: application/json: example: error: code: 401 message: Missing Authentication header schema: $ref: '#/components/schemas/UnauthorizedResponse' description: Unauthorized - Authentication required or invalid credentials '429': content: application/json: example: error: code: 429 message: Rate limit exceeded schema: $ref: '#/components/schemas/TooManyRequestsResponse' description: Too Many Requests - Rate limit exceeded '500': content: application/json: example: error: code: 500 message: Internal Server Error schema: $ref: '#/components/schemas/InternalServerResponse' description: Internal Server Error - Unexpected server error components: schemas: AppRankingsResponse: example: data: - app_id: 12345 app_name: Cline rank: 1 total_requests: 4321 total_tokens: '12345678' - app_id: 67890 app_name: Roo Code rank: 2 total_requests: 2109 total_tokens: '9876543' meta: as_of: '2026-05-12T02:00:00.000Z' end_date: '2026-05-11' start_date: '2026-04-12' version: v1 properties: data: description: >- Apps ranked per the requested `sort`, re-numbered 1..N after category filtering. `popular` sorts by `total_tokens` descending; `trending` sorts by absolute excess token growth descending and may return fewer than `limit` rows when few apps are growing. items: $ref: '#/components/schemas/AppRankingsItem' type: array meta: $ref: '#/components/schemas/RankingsDailyMeta' required: - data - meta type: object BadRequestResponse: description: Bad Request - Invalid request parameters or malformed input example: error: code: 400 message: Invalid request parameters properties: error: $ref: '#/components/schemas/BadRequestResponseErrorData' openrouter_metadata: additionalProperties: {} type: - object - 'null' user_id: type: - string - 'null' required: - error type: object UnauthorizedResponse: description: Unauthorized - Authentication required or invalid credentials example: error: code: 401 message: Missing Authentication header properties: error: $ref: '#/components/schemas/UnauthorizedResponseErrorData' openrouter_metadata: additionalProperties: {} type: - object - 'null' user_id: type: - string - 'null' required: - error type: object TooManyRequestsResponse: description: Too Many Requests - Rate limit exceeded example: error: code: 429 message: Rate limit exceeded properties: error: $ref: '#/components/schemas/TooManyRequestsResponseErrorData' openrouter_metadata: additionalProperties: {} type: - object - 'null' user_id: type: - string - 'null' required: - error type: object InternalServerResponse: description: Internal Server Error - Unexpected server error example: error: code: 500 message: Internal Server Error properties: error: $ref: '#/components/schemas/InternalServerResponseErrorData' openrouter_metadata: additionalProperties: {} type: - object - 'null' user_id: type: - string - 'null' required: - error type: object AppRankingsItem: example: app_id: 12345 app_name: Cline rank: 1 total_requests: 4321 total_tokens: '12345678' properties: app_id: description: Stable numeric identifier of the app on OpenRouter. example: 12345 type: integer app_name: description: Public display name of the app. example: Cline type: string rank: description: >- 1-based position of the app within this response, per the requested `sort`. example: 1 type: integer total_requests: description: Number of requests attributed to the app inside the date window. example: 4321 type: integer total_tokens: description: >- Sum of `prompt_tokens + completion_tokens` attributed to the app inside the date window, returned as a decimal string so 64-bit values are not truncated. example: '12345678' type: string required: - rank - app_id - app_name - total_tokens - total_requests type: object RankingsDailyMeta: example: as_of: '2026-05-12T02:00:00.000Z' end_date: '2026-05-11' start_date: '2026-04-12' version: v1 properties: as_of: description: >- ISO-8601 timestamp of when the response was generated. Reflects data-freshness because the underlying materialized view continuously ingests upstream events. example: '2026-05-12T02:00:00.000Z' type: string end_date: description: Resolved end of the date window (UTC, inclusive). example: '2026-05-11' type: string start_date: description: Resolved start of the date window (UTC, inclusive). example: '2026-04-12' type: string version: description: >- Dataset version. Field names and grain are stable for the life of `v1`. enum: - v1 type: string required: - as_of - version - start_date - end_date type: object BadRequestResponseErrorData: description: Error data for BadRequestResponse example: code: 400 message: Invalid request parameters properties: code: type: integer message: type: string metadata: additionalProperties: {} type: - object - 'null' required: - code - message type: object UnauthorizedResponseErrorData: description: Error data for UnauthorizedResponse example: code: 401 message: Missing Authentication header properties: code: type: integer message: type: string metadata: additionalProperties: {} type: - object - 'null' required: - code - message type: object TooManyRequestsResponseErrorData: description: Error data for TooManyRequestsResponse example: code: 429 message: Rate limit exceeded properties: code: type: integer message: type: string metadata: additionalProperties: {} type: - object - 'null' required: - code - message type: object InternalServerResponseErrorData: description: Error data for InternalServerResponse example: code: 500 message: Internal Server Error properties: code: type: integer message: type: string metadata: additionalProperties: {} type: - object - 'null' required: - code - message type: object securitySchemes: apiKey: description: API key as bearer token in Authorization header scheme: bearer type: http