Skip to content

Commit 3b2f5b2

Browse files
robert-j-yOpenRouter SDK Bot
andauthored
chore: update OpenAPI spec from monorepo (#301)
Co-authored-by: OpenRouter SDK Bot <sdk-bot@openrouter.ai>
1 parent 3883438 commit 3b2f5b2

1 file changed

Lines changed: 298 additions & 0 deletions

File tree

‎.speakeasy/in.openapi.yaml‎

Lines changed: 298 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2412,6 +2412,76 @@ components:
24122412
- path
24132413
- diff
24142414
type: object
2415+
AppRankingsItem:
2416+
example:
2417+
app_id: 12345
2418+
app_name: Cline
2419+
rank: 1
2420+
total_requests: 4321
2421+
total_tokens: '12345678'
2422+
properties:
2423+
app_id:
2424+
description: Stable numeric identifier of the app on OpenRouter.
2425+
example: 12345
2426+
type: integer
2427+
app_name:
2428+
description: Public display name of the app.
2429+
example: Cline
2430+
type: string
2431+
rank:
2432+
description: 1-based position of the app within this response, per the requested `sort`.
2433+
example: 1
2434+
type: integer
2435+
total_requests:
2436+
description: Number of requests attributed to the app inside the date window.
2437+
example: 4321
2438+
type: integer
2439+
total_tokens:
2440+
description: >-
2441+
Sum of `prompt_tokens + completion_tokens` attributed to the app inside the date window, returned as a
2442+
decimal string so 64-bit values are not truncated.
2443+
example: '12345678'
2444+
type: string
2445+
required:
2446+
- rank
2447+
- app_id
2448+
- app_name
2449+
- total_tokens
2450+
- total_requests
2451+
type: object
2452+
AppRankingsResponse:
2453+
example:
2454+
data:
2455+
- app_id: 12345
2456+
app_name: Cline
2457+
rank: 1
2458+
total_requests: 4321
2459+
total_tokens: '12345678'
2460+
- app_id: 67890
2461+
app_name: Roo Code
2462+
rank: 2
2463+
total_requests: 2109
2464+
total_tokens: '9876543'
2465+
meta:
2466+
as_of: '2026-05-12T02:00:00Z'
2467+
end_date: '2026-05-11'
2468+
start_date: '2026-04-12'
2469+
version: v1
2470+
properties:
2471+
data:
2472+
description: >-
2473+
Apps ranked per the requested `sort`, re-numbered 1..N after category filtering. `popular` sorts by
2474+
`total_tokens` descending; `trending` sorts by absolute excess token growth descending and may return fewer
2475+
than `limit` rows when few apps are growing.
2476+
items:
2477+
$ref: '#/components/schemas/AppRankingsItem'
2478+
type: array
2479+
meta:
2480+
$ref: '#/components/schemas/RankingsDailyMeta'
2481+
required:
2482+
- data
2483+
- meta
2484+
type: object
24152485
AutoRouterPlugin:
24162486
example:
24172487
allowed_models:
@@ -22915,6 +22985,234 @@ paths:
2291522985
x-fern-ignore: true
2291622986
x-speakeasy-ignore: true
2291722987
x-speakeasy-name-override: createCoinbaseCharge
22988+
/datasets/app-rankings:
22989+
get:
22990+
description: |-
22991+
Returns the top public apps on OpenRouter ranked by token usage inside the requested
22992+
date window, matching the public apps marketplace on openrouter.ai/apps. Token totals
22993+
are `prompt_tokens + completion_tokens`; hidden and private apps are excluded and
22994+
traffic from related app aliases is merged into the canonical visible app.
22995+
22996+
`sort=popular` (default) ranks by total token volume inside the window.
22997+
`sort=trending` ranks by absolute excess token growth: window volume minus the average
22998+
volume of the three equal-length periods immediately preceding the window. Apps with
22999+
no excess growth are omitted, so `trending` may return fewer than `limit` rows.
23000+
23001+
Filter with `category` (marketplace category group, e.g. `coding`) or `subcategory`
23002+
(e.g. `cli-agent`). Ranks are re-numbered 1..N after filtering. Page with `offset` —
23003+
`rank` stays absolute, so the first row of `offset=50` is `rank: 51`.
23004+
23005+
Authenticate with any valid OpenRouter API key (same key used for inference).
23006+
Rate-limited to 30 requests/minute per key and 500 requests/day per account.
23007+
23008+
When republishing or quoting this dataset, OpenRouter must be cited as:
23009+
"Source: OpenRouter (openrouter.ai/apps), as of {as_of}."
23010+
23011+
Token counts come from each upstream provider's own tokenizer, so a token attributed
23012+
to one app is not directly comparable to a token attributed to another app whose
23013+
traffic flows through a different provider.
23014+
operationId: getAppRankings
23015+
parameters:
23016+
- description: >-
23017+
Marketplace category group to filter by (e.g. `coding`). Only apps tagged with a subcategory inside this
23018+
group are returned. Mutually combinable with `subcategory` — when both are supplied the `subcategory` must
23019+
belong to the `category` group.
23020+
in: query
23021+
name: category
23022+
required: false
23023+
schema:
23024+
description: >-
23025+
Marketplace category group to filter by (e.g. `coding`). Only apps tagged with a subcategory inside this
23026+
group are returned. Mutually combinable with `subcategory` — when both are supplied the `subcategory` must
23027+
belong to the `category` group.
23028+
enum:
23029+
- coding
23030+
- creative
23031+
- productivity
23032+
- entertainment
23033+
example: coding
23034+
type: string
23035+
- description: >-
23036+
Marketplace subcategory to filter by (e.g. `cli-agent`). Takes precedence over `category` for the actual
23037+
filter; when `category` is also supplied the pair must be consistent.
23038+
in: query
23039+
name: subcategory
23040+
required: false
23041+
schema:
23042+
description: >-
23043+
Marketplace subcategory to filter by (e.g. `cli-agent`). Takes precedence over `category` for the actual
23044+
filter; when `category` is also supplied the pair must be consistent.
23045+
enum:
23046+
- cli-agent
23047+
- ide-extension
23048+
- cloud-agent
23049+
- programming-app
23050+
- native-app-builder
23051+
- creative-writing
23052+
- video-gen
23053+
- image-gen
23054+
- audio-gen
23055+
- roleplay
23056+
- game
23057+
- writing-assistant
23058+
- general-chat
23059+
- personal-agent
23060+
- legal
23061+
example: cli-agent
23062+
type: string
23063+
- description: >-
23064+
`popular` ranks apps by total token volume inside the date window. `trending` ranks apps by absolute excess
23065+
token growth: window volume minus the average volume of the three equal-length periods immediately preceding
23066+
the window. Apps with no excess growth are omitted from `trending` results.
23067+
in: query
23068+
name: sort
23069+
required: false
23070+
schema:
23071+
default: popular
23072+
description: >-
23073+
`popular` ranks apps by total token volume inside the date window. `trending` ranks apps by absolute
23074+
excess token growth: window volume minus the average volume of the three equal-length periods immediately
23075+
preceding the window. Apps with no excess growth are omitted from `trending` results.
23076+
enum:
23077+
- popular
23078+
- trending
23079+
example: popular
23080+
type: string
23081+
- description: >-
23082+
Start of the date window in YYYY-MM-DD (UTC), inclusive. Defaults to 30 days before `end_date`. The dataset
23083+
begins at 2025-01-01; earlier values are clamped forward to that floor and the resolved value is echoed in
23084+
`meta.start_date`.
23085+
in: query
23086+
name: start_date
23087+
required: false
23088+
schema:
23089+
description: >-
23090+
Start of the date window in YYYY-MM-DD (UTC), inclusive. Defaults to 30 days before `end_date`. The
23091+
dataset begins at 2025-01-01; earlier values are clamped forward to that floor and the resolved value is
23092+
echoed in `meta.start_date`.
23093+
example: '2026-04-12'
23094+
pattern: ^\d{4}-\d{2}-\d{2}$
23095+
type: string
23096+
- description: >-
23097+
End of the date window in YYYY-MM-DD (UTC), inclusive. Defaults to the most recent completed UTC day. Must
23098+
be on or after 2025-01-01; earlier values are rejected with a 400.
23099+
in: query
23100+
name: end_date
23101+
required: false
23102+
schema:
23103+
description: >-
23104+
End of the date window in YYYY-MM-DD (UTC), inclusive. Defaults to the most recent completed UTC day. Must
23105+
be on or after 2025-01-01; earlier values are rejected with a 400.
23106+
example: '2026-05-11'
23107+
pattern: ^\d{4}-\d{2}-\d{2}$
23108+
type: string
23109+
- description: Maximum number of apps to return (1-100). Defaults to 50.
23110+
in: query
23111+
name: limit
23112+
required: false
23113+
schema:
23114+
default: 50
23115+
description: Maximum number of apps to return (1-100). Defaults to 50.
23116+
example: 50
23117+
maximum: 100
23118+
minimum: 1
23119+
type: integer
23120+
- description: >-
23121+
Number of ranked apps to skip before the first returned row (0-100). Defaults to 0. `rank` stays absolute,
23122+
so the first row of `offset=50` is `rank: 51`.
23123+
in: query
23124+
name: offset
23125+
required: false
23126+
schema:
23127+
default: 0
23128+
description: >-
23129+
Number of ranked apps to skip before the first returned row (0-100). Defaults to 0. `rank` stays absolute,
23130+
so the first row of `offset=50` is `rank: 51`.
23131+
example: 0
23132+
maximum: 100
23133+
minimum: 0
23134+
nullable: true
23135+
type: integer
23136+
responses:
23137+
'200':
23138+
content:
23139+
application/json:
23140+
example:
23141+
data:
23142+
- app_id: 12345
23143+
app_name: Cline
23144+
rank: 1
23145+
total_requests: 4321
23146+
total_tokens: '12345678'
23147+
- app_id: 67890
23148+
app_name: Roo Code
23149+
rank: 2
23150+
total_requests: 2109
23151+
total_tokens: '9876543'
23152+
meta:
23153+
as_of: '2026-05-12T02:00:00Z'
23154+
end_date: '2026-05-11'
23155+
start_date: '2026-04-12'
23156+
version: v1
23157+
schema:
23158+
$ref: '#/components/schemas/AppRankingsResponse'
23159+
description: >-
23160+
Apps ranked per the requested `sort`, re-numbered 1..N. `popular` sorts by `total_tokens` descending;
23161+
`trending` sorts by absolute excess token growth descending and may return fewer than `limit` rows.
23162+
'400':
23163+
content:
23164+
application/json:
23165+
example:
23166+
error:
23167+
code: 400
23168+
message: Invalid request parameters
23169+
schema:
23170+
$ref: '#/components/schemas/BadRequestResponse'
23171+
description: Bad Request - Invalid request parameters or malformed input
23172+
'401':
23173+
content:
23174+
application/json:
23175+
example:
23176+
error:
23177+
code: 401
23178+
message: Missing Authentication header
23179+
schema:
23180+
$ref: '#/components/schemas/UnauthorizedResponse'
23181+
description: Unauthorized - Authentication required or invalid credentials
23182+
'429':
23183+
content:
23184+
application/json:
23185+
example:
23186+
error:
23187+
code: 429
23188+
message: Rate limit exceeded
23189+
schema:
23190+
$ref: '#/components/schemas/TooManyRequestsResponse'
23191+
description: Too Many Requests - Rate limit exceeded
23192+
'500':
23193+
content:
23194+
application/json:
23195+
example:
23196+
error:
23197+
code: 500
23198+
message: Internal Server Error
23199+
schema:
23200+
$ref: '#/components/schemas/InternalServerResponse'
23201+
description: Internal Server Error - Unexpected server error
23202+
summary: Top apps by token usage
23203+
tags:
23204+
- Datasets
23205+
x-speakeasy-pagination:
23206+
inputs:
23207+
- in: parameters
23208+
name: offset
23209+
type: offset
23210+
- in: parameters
23211+
name: limit
23212+
type: limit
23213+
outputs:
23214+
results: $.data
23215+
type: offsetLimit
2291823216
/datasets/rankings-daily:
2291923217
get:
2292023218
description: |-

0 commit comments

Comments
 (0)