Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 26 additions & 17 deletions .speakeasy/gen.lock
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
lockVersion: 2.0.0
id: c48cf606-fb42-4a45-9c23-8f0555307828
management:
docChecksum: 452e1055556eec501195014bd75a3c22
docChecksum: 95383b0ddad197d268ba1153f2f2e4ac
docVersion: 1.0.0
speakeasyVersion: 1.803.2
generationVersion: 2.950.13
releaseVersion: 1.3.116
configChecksum: 12d0806258f97aa170fa86a6cf41b413
releaseVersion: 1.3.117
configChecksum: 96082336ac2d9236df4af3f864ee5811
repoURL: https://github.com/OpenRouterTeam/python-sdk.git
installationURL: https://github.com/OpenRouterTeam/python-sdk.git
published: true
persistentEdits:
generation_id: 7ac9f659-1030-4ae5-ab75-15cc79b6e4be
pristine_commit_hash: 24349cc48be19d86d7793f2f6c5b72b7152238d9
pristine_tree_hash: 448cfc8643e40fcd5971acf58edb5ea8bbcefe2c
generation_id: dace6193-591e-4ce2-bd40-68df98115bc6
pristine_commit_hash: 22eea323a506c5839fad8f72ab27cc0acb0e5a9e
pristine_tree_hash: 02806f8bbb737175a05153a48a16ecdc60603bff
features:
python:
acceptHeaders: 3.0.0
Expand Down Expand Up @@ -3494,6 +3494,10 @@ trackedFiles:
id: e108f7192502
last_write_checksum: sha1:f829893f702262b25e8599c2f5d36387f9b9e564
pristine_git_object: 0f381107c5f4271335895826cb89b0791a0b80c1
docs/components/extractions.mdx:
id: da236ceb149f
last_write_checksum: sha1:2846e1227ba92e5057bf790c0991f97d87b88b8f
pristine_git_object: 23fc9184e94b5aa836b93bbc192dad8e0b9e11cb
docs/components/extractionsrequest.mdx:
id: 8e3359e7a4eb
last_write_checksum: sha1:8987945528de0f54ad1733f7017579bd36973ab3
Expand Down Expand Up @@ -6528,8 +6532,8 @@ trackedFiles:
pristine_git_object: fac1d15bc23e564fcd59b68b219d529aa7c73754
docs/components/perflast30mbyworkload.mdx:
id: bdcf1999b086
last_write_checksum: sha1:3cdfcfd44c741caecd8b019b69c722657f6d2357
pristine_git_object: fcb436a59cdf2141af66cd93d61523ca60f8aaa5
last_write_checksum: sha1:d1956f61e410baccf86d1c75d58f87924921b0f5
pristine_git_object: c982aa4d83a2a70e3be3b760ec020c872e6c84e8
docs/components/perrequestlimits.mdx:
id: a503880c4645
last_write_checksum: sha1:f038145f0a077c2365411be7f10e24ef5d01dbf3
Expand Down Expand Up @@ -10736,8 +10740,8 @@ trackedFiles:
pristine_git_object: 3e38f1a929f7d6b1d6de74604aa87e3d8f010544
pyproject.toml:
id: 5d07e7d72637
last_write_checksum: sha1:c51519f1a187953b954442b1da79c68bb6f1c608
pristine_git_object: c34d41ff23c1dc2226feb30589a4f74edef99be4
last_write_checksum: sha1:946021496d5727019dc93e7907e337238722e41f
pristine_git_object: 4b565ff4bb5387f97f90d3378968ac132e503362
scripts/prepare_readme.py:
id: e0c5957a6035
last_write_checksum: sha1:77f44b60b98bc126557ec27391f91dfba764bb54
Expand All @@ -10764,8 +10768,8 @@ trackedFiles:
pristine_git_object: 86713cfea633e09d33b3d4e65281071fe20e6137
src/openrouter/_version.py:
id: d8d15ad6c586
last_write_checksum: sha1:ac351c964be59b264a12e7359dd722c0f6cb2b99
pristine_git_object: 181da576a78c74b7b9f53e80ff5009d6d9fe9016
last_write_checksum: sha1:ab6e636715011ab95364bc38d10a0c7fbea83f4f
pristine_git_object: e7ab1c303f4e344fb9f4e9e75ccb0377fdff7aed
src/openrouter/alpha.py:
id: 306c4d93308d
last_write_checksum: sha1:80cc0f39649445431cc2247ed0e0765438467766
Expand Down Expand Up @@ -10812,8 +10816,8 @@ trackedFiles:
pristine_git_object: ad3d247954547814054c01989a2dff3d12b3e4e1
src/openrouter/components/__init__.py:
id: 81754e97b3f4
last_write_checksum: sha1:c407570957aec483d10f0ce582a20266ef185e84
pristine_git_object: 152d21f436d992456f943776b75fcfa1ace12b24
last_write_checksum: sha1:826a7a0748e402467b31cfa1ac634c41e46675b1
pristine_git_object: 921a7b3387d1f787124a1f2b373a1d82409ad6d3
src/openrouter/components/aabenchmarkentry.py:
id: e2e0f0b48c82
last_write_checksum: sha1:fab4d9a24d2cea937bb749d46c5f83941e99d65c
Expand Down Expand Up @@ -12222,6 +12226,10 @@ trackedFiles:
id: 1529d36e4196
last_write_checksum: sha1:0c2cde20943acaa47d3a6aef845cff1c1d6dfeb1
pristine_git_object: 1823b0109214ebfbe1fa1a29581594beb30c4280
src/openrouter/components/extractions.py:
id: bac1d32b9a35
last_write_checksum: sha1:9f64b52acfa4ee9d47f34c7a4d9a602b56176a33
pristine_git_object: fbca5fed6e794e9694c201eab04a5bd8887d620a
src/openrouter/components/extractionsrequest.py:
id: afe9f8e432cb
last_write_checksum: sha1:7ecc86ff4567e55b10a36d9e098147628f126d26
Expand Down Expand Up @@ -13348,8 +13356,8 @@ trackedFiles:
pristine_git_object: d4fad42e2a9de3a69093e54375086c2e23854ee0
src/openrouter/components/perflast30mbyworkload.py:
id: c577beb06381
last_write_checksum: sha1:b5d22f0aae68222d51270213f2726083be515ede
pristine_git_object: 98d5725c977ffb944f7f649e61ab86c3e96bbcf8
last_write_checksum: sha1:d5f71819308c82ca08c98ef34189b6e1584c761a
pristine_git_object: 2ec669dd657b2f79ed46e97d19c7ce631d2c1815
src/openrouter/components/perrequestlimits.py:
id: 5a170d7d1f2e
last_write_checksum: sha1:9b269bd87a1f704a0f0fa731da57cb35bc960674
Expand Down Expand Up @@ -19832,4 +19840,5 @@ examples:
examplesVersion: 1.0.2
releaseNotes: |
## Python SDK Changes:
* `open_router.generations.get_generation()`: `response.data.api_type.enum(tools_invoke)` **Added**
* `open_router.endpoints.list_zdr_endpoints()`: `response.data[].perf_last_30m_by_workload.extractions` **Added**
* `open_router.endpoints.list()`: `response.data.endpoints[].perf_last_30m_by_workload.extractions` **Added**
2 changes: 1 addition & 1 deletion .speakeasy/gen.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ generation:
documentation: mintlify
preApplyUnionDiscriminators: true
python:
version: 1.3.116
version: 1.3.117
additionalDependencies:
dev:
pytest: '>=8.3'
Expand Down
22 changes: 22 additions & 0 deletions .speakeasy/out.openapi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12565,6 +12565,26 @@ components:
required:
- 'type'
type: 'object'
Extractions:
properties:
latency:
allOf:
- $ref: '#/components/schemas/PercentileStats'
- description: 'Latency percentiles in milliseconds for this workload. Image and video generation report full end-to-end generation time, because their raw latency only measures request acknowledgement; every other workload reports time to first token or result.'
request_count:
description: 'Total requests admitted for this workload in the window.'
type:
- 'integer'
- 'null'
throughput:
allOf:
- $ref: '#/components/schemas/PercentileStats'
- description: 'Throughput percentiles in tokens per second; pN is the speed that N% of requests reached or exceeded, so p90 is lower than p50. Only meaningful for text generation; null for workloads without token throughput.'
required:
- 'latency'
- 'throughput'
- 'request_count'
type: 'object'
ExtractionsRequest:
additionalProperties: false
properties:
Expand Down Expand Up @@ -26458,6 +26478,8 @@ components:
$ref: '#/components/schemas/Decisions'
embeddings:
$ref: '#/components/schemas/Embeddings'
extractions:
$ref: '#/components/schemas/Extractions'
image_generation:
$ref: '#/components/schemas/ImageGeneration'
rerank:
Expand Down
10 changes: 5 additions & 5 deletions .speakeasy/workflow.lock
Original file line number Diff line number Diff line change
Expand Up @@ -2,19 +2,19 @@ speakeasyVersion: 1.803.2
sources:
OpenRouter API:
sourceNamespace: open-router-chat-completions-api
sourceRevisionDigest: sha256:0e16f10900f4e9cc6a15ff0e95d2fca5e9f196a756c287fc89ad67c60819fe0d
sourceBlobDigest: sha256:b041922228f44003c8df41e05c55f893a3b0906e27b140b67ed703c67469efc8
sourceRevisionDigest: sha256:0aaafeea58daa417ec936f5d70e15b85e4c403eb26936157963615c4c068e5cd
sourceBlobDigest: sha256:6e78f4335a4d0eb14a07db01a557dbaed1607d4c8064042d59cfbb69c946f473
tags:
- latest
- 1.0.0
targets:
open-router:
source: OpenRouter API
sourceNamespace: open-router-chat-completions-api
sourceRevisionDigest: sha256:0e16f10900f4e9cc6a15ff0e95d2fca5e9f196a756c287fc89ad67c60819fe0d
sourceBlobDigest: sha256:b041922228f44003c8df41e05c55f893a3b0906e27b140b67ed703c67469efc8
sourceRevisionDigest: sha256:0aaafeea58daa417ec936f5d70e15b85e4c403eb26936157963615c4c068e5cd
sourceBlobDigest: sha256:6e78f4335a4d0eb14a07db01a557dbaed1607d4c8064042d59cfbb69c946f473
codeSamplesNamespace: open-router-python-code-samples
codeSamplesRevisionDigest: sha256:99a7834dc58f7178de521ea682f89ed6afa32e2512c33246d1f881e1b122d419
codeSamplesRevisionDigest: sha256:f4815fcf5eeb79c459b750a886819c3be6e417740a06c690e948ba0ed9652415
workflow:
workflowVersion: 1.0.0
speakeasyVersion: 1.803.2
Expand Down
12 changes: 11 additions & 1 deletion RELEASES.md
Original file line number Diff line number Diff line change
Expand Up @@ -3929,4 +3929,14 @@ Based on:
### Generated
- [python v1.3.116] .
### Releases
- [PyPI v1.3.116] https://pypi.org/project/openrouter/1.3.116 - .
- [PyPI v1.3.116] https://pypi.org/project/openrouter/1.3.116 - .

## 2026-11-04 16:38:32
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.803.2 (2.950.13) https://github.com/speakeasy-api/speakeasy
### Generated
- [python v1.3.117] .
### Releases
- [PyPI v1.3.117] https://pypi.org/project/openrouter/1.3.117 - .
11 changes: 11 additions & 0 deletions docs/components/extractions.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
title: "Extractions"
---

## Fields

| Field | Type | Required | Description | Example |
| ------------------------------------------------------------------------ | ------------------------------------------------------------------------ | ------------------------------------------------------------------------ | ------------------------------------------------------------------------ | ------------------------------------------------------------------------ |
| `latency` | [Nullable[components.PercentileStats]](../components/percentilestats.mdx) | βœ”οΈ | N/A | \{<br/>"p50": 25.5,<br/>"p75": 35.2,<br/>"p90": 48.7,<br/>"p99": 85.3<br/>} |
| `request_count` | *Nullable[int]* | βœ”οΈ | Total requests admitted for this workload in the window. | |
| `throughput` | [Nullable[components.PercentileStats]](../components/percentilestats.mdx) | βœ”οΈ | N/A | \{<br/>"p50": 25.5,<br/>"p75": 35.2,<br/>"p90": 48.7,<br/>"p99": 85.3<br/>} |
1 change: 1 addition & 0 deletions docs/components/perflast30mbyworkload.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ Endpoint performance over the last 30 minutes, keyed by the kind of request serv
| ------------------------------------------------------------------------ | ------------------------------------------------------------------------ | ------------------------------------------------------------------------ | ------------------------------------------------------------------------ |
| `decisions` | [Optional[components.Decisions]](../components/decisions.mdx) | βž– | N/A |
| `embeddings` | [Optional[components.Embeddings]](../components/embeddings.mdx) | βž– | N/A |
| `extractions` | [Optional[components.Extractions]](../components/extractions.mdx) | βž– | N/A |
| `image_generation` | [Optional[components.ImageGeneration]](../components/imagegeneration.mdx) | βž– | N/A |
| `rerank` | [Optional[components.Rerank]](../components/rerank.mdx) | βž– | N/A |
| `stt` | [Optional[components.STT]](../components/stt.mdx) | βž– | N/A |
Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "openrouter"
version = "1.3.116"
version = "1.3.117"
description = "Official Python Client SDK for OpenRouter."
authors = [{ name = "OpenRouter" },]
readme = "README-PYPI.md"
Expand Down
4 changes: 2 additions & 2 deletions src/openrouter/_version.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@
import importlib.metadata

__title__: str = "openrouter"
__version__: str = "1.3.116"
__version__: str = "1.3.117"
__openapi_doc_version__: str = "1.0.0"
__gen_version__: str = "2.950.13"
__user_agent__: str = "speakeasy-sdk/python 1.3.116 2.950.13 1.0.0 openrouter"
__user_agent__: str = "speakeasy-sdk/python 1.3.117 2.950.13 1.0.0 openrouter"

try:
if __package__ is not None:
Expand Down
5 changes: 5 additions & 0 deletions src/openrouter/components/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -1963,6 +1963,7 @@
ExtractionNumberFieldType,
ExtractionNumberFieldTypedDict,
)
from .extractions import Extractions, ExtractionsTypedDict
from .extractionsrequest import (
ExtractionsRequest,
ExtractionsRequestTypedDict,
Expand Down Expand Up @@ -6073,12 +6074,14 @@
"ExtractionTimeField",
"ExtractionTimeFieldType",
"ExtractionTimeFieldTypedDict",
"Extractions",
"ExtractionsRequest",
"ExtractionsRequestTypedDict",
"ExtractionsResponse",
"ExtractionsResponseAnswers",
"ExtractionsResponseAnswersTypedDict",
"ExtractionsResponseTypedDict",
"ExtractionsTypedDict",
"ExtractionsUsage",
"ExtractionsUsageTypedDict",
"FailableToolCallStatus",
Expand Down Expand Up @@ -9567,6 +9570,8 @@
"ExtractionNumberField": ".extractionnumberfield",
"ExtractionNumberFieldType": ".extractionnumberfield",
"ExtractionNumberFieldTypedDict": ".extractionnumberfield",
"Extractions": ".extractions",
"ExtractionsTypedDict": ".extractions",
"ExtractionsRequest": ".extractionsrequest",
"ExtractionsRequestTypedDict": ".extractionsrequest",
"Fields": ".extractionsrequest",
Expand Down
37 changes: 37 additions & 0 deletions src/openrouter/components/extractions.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""

from __future__ import annotations
from .percentilestats import PercentileStats, PercentileStatsTypedDict
from openrouter.types import BaseModel, Nullable, UNSET_SENTINEL
from pydantic import model_serializer
from typing_extensions import TypedDict


class ExtractionsTypedDict(TypedDict):
latency: Nullable[PercentileStatsTypedDict]
request_count: Nullable[int]
r"""Total requests admitted for this workload in the window."""
throughput: Nullable[PercentileStatsTypedDict]


class Extractions(BaseModel):
latency: Nullable[PercentileStats]

request_count: Nullable[int]
r"""Total requests admitted for this workload in the window."""

throughput: Nullable[PercentileStats]

@model_serializer(mode="wrap")
def serialize_model(self, handler):
serialized = handler(self)
m = {}

for n, f in type(self).model_fields.items():
k = f.alias or n
val = serialized.get(k, serialized.get(n))

if val != UNSET_SENTINEL:
m[k] = val

return m
5 changes: 5 additions & 0 deletions src/openrouter/components/perflast30mbyworkload.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
from __future__ import annotations
from .decisions import Decisions, DecisionsTypedDict
from .embeddings import Embeddings, EmbeddingsTypedDict
from .extractions import Extractions, ExtractionsTypedDict
from .imagegeneration import ImageGeneration, ImageGenerationTypedDict
from .rerank import Rerank, RerankTypedDict
from .stt import STT, STTTypedDict
Expand All @@ -21,6 +22,7 @@ class PerfLast30mByWorkloadTypedDict(TypedDict):

decisions: NotRequired[DecisionsTypedDict]
embeddings: NotRequired[EmbeddingsTypedDict]
extractions: NotRequired[ExtractionsTypedDict]
image_generation: NotRequired[ImageGenerationTypedDict]
rerank: NotRequired[RerankTypedDict]
stt: NotRequired[STTTypedDict]
Expand All @@ -37,6 +39,8 @@ class PerfLast30mByWorkload(BaseModel):

embeddings: Optional[Embeddings] = None

extractions: Optional[Extractions] = None

image_generation: Optional[ImageGeneration] = None

rerank: Optional[Rerank] = None
Expand All @@ -57,6 +61,7 @@ def serialize_model(self, handler):
[
"decisions",
"embeddings",
"extractions",
"image_generation",
"rerank",
"stt",
Expand Down
2 changes: 1 addition & 1 deletion uv.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading