chore: update OpenAPI spec from monorepo (#301)

Co-authored-by: OpenRouter SDK Bot <sdk-bot@openrouter.ai>
This commit is contained in:
robert-j-y
2026-06-10 16:46:14 -07:00
committed by GitHub
co-authored by OpenRouter SDK Bot
parent 3883438f02
commit 3b2f5b2316
+298
View File
@@ -2412,6 +2412,76 @@ components:
- path
- diff
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
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:00Z'
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
AutoRouterPlugin:
example:
allowed_models:
@@ -22915,6 +22985,234 @@ paths:
x-fern-ignore: true
x-speakeasy-ignore: true
x-speakeasy-name-override: createCoinbaseCharge
/datasets/app-rankings:
get:
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.
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
nullable: true
type: integer
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
summary: Top apps by token usage
tags:
- Datasets
x-speakeasy-pagination:
inputs:
- in: parameters
name: offset
type: offset
- in: parameters
name: limit
type: limit
outputs:
results: $.data
type: offsetLimit
/datasets/rankings-daily:
get:
description: |-