Compare commits

...
4 Commits
Author SHA1 Message Date
github-actions[bot]GitHubspeakeasybotspeakeasy-github[bot] <128539517+speakeasy-github[bot]@users.noreply.github.com>
e1b89f5aaf chore: 🐝 Update SDK - Generate (spec change merged) 0.10.4 (#372)
Co-authored-by: speakeasybot <bot@speakeasyapi.dev>
Co-authored-by: speakeasy-github[bot] <128539517+speakeasy-github[bot]@users.noreply.github.com>
2026-06-26 12:10:48 +00:00
32dd522d5a chore: update OpenAPI spec from monorepo (#371)
Co-authored-by: OpenRouter SDK Bot <sdk-bot@openrouter.ai>
2026-06-26 12:04:34 +00:00
github-actions[bot]GitHubspeakeasybotspeakeasy-github[bot] <128539517+speakeasy-github[bot]@users.noreply.github.com>
eeb0373033 chore: 🐝 Update SDK - Generate (spec change merged) 0.10.3 (#370)
Co-authored-by: speakeasybot <bot@speakeasyapi.dev>
Co-authored-by: speakeasy-github[bot] <128539517+speakeasy-github[bot]@users.noreply.github.com>
2026-06-26 00:20:39 +00:00
facade7d00 chore: update OpenAPI spec from monorepo (#369)
Co-authored-by: OpenRouter SDK Bot <sdk-bot@openrouter.ai>
2026-06-26 00:14:27 +00:00
15 changed files with 169 additions and 78 deletions
+29 -26
View File
@@ -1,19 +1,19 @@
lockVersion: 2.0.0 lockVersion: 2.0.0
id: c48cf606-fb42-4a45-9c23-8f0555307828 id: c48cf606-fb42-4a45-9c23-8f0555307828
management: management:
docChecksum: e1b90a6bfd6ac5ba387e90d8bde5c5da docChecksum: 4fd4fe0bf7a8196c9e7a6eee1fe4a414
docVersion: 1.0.0 docVersion: 1.0.0
speakeasyVersion: 1.680.0 speakeasyVersion: 1.680.0
generationVersion: 2.788.4 generationVersion: 2.788.4
releaseVersion: 0.10.2 releaseVersion: 0.10.4
configChecksum: 673c177f4ade5ed7081f80e54b377efb configChecksum: d9fd2d1bfcce20e4901d52e81a6f5ca7
repoURL: https://github.com/OpenRouterTeam/python-sdk.git repoURL: https://github.com/OpenRouterTeam/python-sdk.git
installationURL: https://github.com/OpenRouterTeam/python-sdk.git installationURL: https://github.com/OpenRouterTeam/python-sdk.git
published: true published: true
persistentEdits: persistentEdits:
generation_id: 0dfeefb4-3077-4ada-9493-b1c27db7302b generation_id: 1ddaf948-46a3-4ca5-ade1-ab900963fba9
pristine_commit_hash: eaff66d4cff11e0b7fad3b3a37a4b91124c2443e pristine_commit_hash: 3b78ff10c1872eac23efd487850624634d4f25b5
pristine_tree_hash: a917f83ab81dc35cd911b68dd0004e00797a509f pristine_tree_hash: 1f1b736777953b5a4861091f9b22733093fc9946
features: features:
python: python:
acceptHeaders: 3.0.0 acceptHeaders: 3.0.0
@@ -2046,8 +2046,8 @@ trackedFiles:
pristine_git_object: 841d9210013aa9eac24702237c16d0aca12a985f pristine_git_object: 841d9210013aa9eac24702237c16d0aca12a985f
docs/components/imagegencompletedevent.md: docs/components/imagegencompletedevent.md:
id: 43f5718fe2c2 id: 43f5718fe2c2
last_write_checksum: sha1:650b4752a08040461390f10b30ceda0b5df1f0bb last_write_checksum: sha1:c69ebcd923faf4b7831c70ca19a62992006804c4
pristine_git_object: 33b0307acdb1bf725cd89c5adb39eb3e110ff876 pristine_git_object: 683545f58a32d3174edc2548652516d446f31cfb
docs/components/imagegencompletedeventtype.md: docs/components/imagegencompletedeventtype.md:
id: 84e07b20590e id: 84e07b20590e
last_write_checksum: sha1:2c301f011ef720a3d8c561c8823bcfb982934d16 last_write_checksum: sha1:2c301f011ef720a3d8c561c8823bcfb982934d16
@@ -2090,8 +2090,8 @@ trackedFiles:
pristine_git_object: a921a4c4cd5f75c926ba03263469315a14537160 pristine_git_object: a921a4c4cd5f75c926ba03263469315a14537160
docs/components/imagegenerationresponsedata.md: docs/components/imagegenerationresponsedata.md:
id: 6a33b08924d8 id: 6a33b08924d8
last_write_checksum: sha1:ddb47b0ec0e5854effe56ca1989b8206e0d7b56a last_write_checksum: sha1:e6df003afd8f77d5e98b6720c825818c229d4cee
pristine_git_object: c80a572552036e143d3b8827a84011d5f62083e9 pristine_git_object: bd99f56bb2c6f10a7f26e49dc81bf00a6436fe99
docs/components/imagegenerationservertool.md: docs/components/imagegenerationservertool.md:
id: 0ddff7f46134 id: 0ddff7f46134
last_write_checksum: sha1:02ee9876107578bd27eb9ba811439416b9e76a63 last_write_checksum: sha1:02ee9876107578bd27eb9ba811439416b9e76a63
@@ -3750,8 +3750,8 @@ trackedFiles:
pristine_git_object: 685705c19f968d6408d3bfc3d398eddb2ef5e52a pristine_git_object: 685705c19f968d6408d3bfc3d398eddb2ef5e52a
docs/components/pricing.md: docs/components/pricing.md:
id: 15dca753d9eb id: 15dca753d9eb
last_write_checksum: sha1:92a5a42a7f29a05c1921015aa66655376e70bc2b last_write_checksum: sha1:80bb9085218cbe75ef0623b86bc9f52a354b0722
pristine_git_object: f17583ae89f52fb3d7dadad5c0bc45c7a3f9c024 pristine_git_object: 69ac72cf96ac924243230189563bbe6a6dcdfc6c
docs/components/promptinjectionscanscope.md: docs/components/promptinjectionscanscope.md:
id: 285ea7802dcd id: 285ea7802dcd
last_write_checksum: sha1:0fff83f064f6699f5a86c5068423c646a9fca69e last_write_checksum: sha1:0fff83f064f6699f5a86c5068423c646a9fca69e
@@ -3798,8 +3798,8 @@ trackedFiles:
pristine_git_object: 7d0edd22dafe693920f18e0c0c99b852c6b3bb57 pristine_git_object: 7d0edd22dafe693920f18e0c0c99b852c6b3bb57
docs/components/publicpricing.md: docs/components/publicpricing.md:
id: 9d43651da8ad id: 9d43651da8ad
last_write_checksum: sha1:13014946ed9c08e7c36a2681efb896bedf068982 last_write_checksum: sha1:a0307105d112c890670088159350ed59040629a8
pristine_git_object: 9a1cecc7d832d812bef93c49a9340c29cf4e816b pristine_git_object: 0746b9999a7aa39ce957aef7cf72235cba2f16a8
docs/components/quantization.md: docs/components/quantization.md:
id: 0d17b4a78828 id: 0d17b4a78828
last_write_checksum: sha1:992ee3fdd0f4e09c9f6e6426c413841fe34a86a5 last_write_checksum: sha1:992ee3fdd0f4e09c9f6e6426c413841fe34a86a5
@@ -6338,8 +6338,8 @@ trackedFiles:
pristine_git_object: 3e38f1a929f7d6b1d6de74604aa87e3d8f010544 pristine_git_object: 3e38f1a929f7d6b1d6de74604aa87e3d8f010544
pyproject.toml: pyproject.toml:
id: 5d07e7d72637 id: 5d07e7d72637
last_write_checksum: sha1:4733c52f40b0a81f99ce289daf116a14cf25a2d6 last_write_checksum: sha1:dbca7fc02146c1734921186c4d38c7b79d45ee20
pristine_git_object: 80031d573d26edca6e5993a5df7e5c451257f494 pristine_git_object: 3810cc8259ef5c9b898e032d02eab740e919cebc
scripts/prepare_readme.py: scripts/prepare_readme.py:
id: e0c5957a6035 id: e0c5957a6035
last_write_checksum: sha1:77f44b60b98bc126557ec27391f91dfba764bb54 last_write_checksum: sha1:77f44b60b98bc126557ec27391f91dfba764bb54
@@ -6366,8 +6366,8 @@ trackedFiles:
pristine_git_object: 07ace03229fd3267623c8f48665d2c3a67c3565d pristine_git_object: 07ace03229fd3267623c8f48665d2c3a67c3565d
src/openrouter/_version.py: src/openrouter/_version.py:
id: d8d15ad6c586 id: d8d15ad6c586
last_write_checksum: sha1:f4418a5cd8b01a66275a34ce883bde034a374b6f last_write_checksum: sha1:d0f7c11c8db041c0c822a9857f4f223ba128b10a
pristine_git_object: e430f99bd620087545d621221f2edb100d471289 pristine_git_object: 3e75c5a73c2aa5f3313e1e19e11dfcb685f958e3
src/openrouter/analytics.py: src/openrouter/analytics.py:
id: cb406b5aaabb id: cb406b5aaabb
last_write_checksum: sha1:6d47d1ab3da9cb4ac9f0a2bfe442f1a82a614f35 last_write_checksum: sha1:6d47d1ab3da9cb4ac9f0a2bfe442f1a82a614f35
@@ -7326,16 +7326,16 @@ trackedFiles:
pristine_git_object: 5f17d77c25a82ad2bf7b1211d05ee665b6fee35a pristine_git_object: 5f17d77c25a82ad2bf7b1211d05ee665b6fee35a
src/openrouter/components/imagegencompletedevent.py: src/openrouter/components/imagegencompletedevent.py:
id: 7a791a02cb5b id: 7a791a02cb5b
last_write_checksum: sha1:2e5822401bac22b5936ed4787b3d648eed60e725 last_write_checksum: sha1:df249afb22b4d56c3493cf8ec506e7ecf06402a6
pristine_git_object: e5907de80032821f54ab0829729f137497b6f289 pristine_git_object: e767efe399701e27924a1fa2e98d44d78e3715a1
src/openrouter/components/imagegenerationrequest.py: src/openrouter/components/imagegenerationrequest.py:
id: f8291a7be9a0 id: f8291a7be9a0
last_write_checksum: sha1:bd9bc81281c9d034120f86b0eee96ed00ff38cce last_write_checksum: sha1:bd9bc81281c9d034120f86b0eee96ed00ff38cce
pristine_git_object: cd035aaead03f8181da12b8635f23fa7688d727f pristine_git_object: cd035aaead03f8181da12b8635f23fa7688d727f
src/openrouter/components/imagegenerationresponse.py: src/openrouter/components/imagegenerationresponse.py:
id: 53354cd0cbfc id: 53354cd0cbfc
last_write_checksum: sha1:e1c531b4a761668151800f450b82dfab0da00f77 last_write_checksum: sha1:073a770f1574629ec4e8ae59f6a365fbca9ace3f
pristine_git_object: deb67493a8ace61abf039d5d6d46b33e37a7c66c pristine_git_object: 64b059a152dab4754cdece4fb2021249f76444a7
src/openrouter/components/imagegenerationservertool.py: src/openrouter/components/imagegenerationservertool.py:
id: 9c95bc975f2e id: 9c95bc975f2e
last_write_checksum: sha1:b7e0d9db78b0b7662cd34a31e593842cea5ef990 last_write_checksum: sha1:b7e0d9db78b0b7662cd34a31e593842cea5ef990
@@ -7994,12 +7994,12 @@ trackedFiles:
pristine_git_object: 4e1073b4e3c10943c7035376f9984cd6559653a2 pristine_git_object: 4e1073b4e3c10943c7035376f9984cd6559653a2
src/openrouter/components/publicendpoint.py: src/openrouter/components/publicendpoint.py:
id: 848aa2ef9129 id: 848aa2ef9129
last_write_checksum: sha1:f47947e66b99be6c16bc081af2070cd7d6c7c0f3 last_write_checksum: sha1:2e389b5e4301174b4c8aaa5e0c679d6872ddd67e
pristine_git_object: 7291ca05ec0df5d1d50be060b6c0298a1a2ec45e pristine_git_object: a7d3e523472feb11203aa79bd081fa87c0ed6503
src/openrouter/components/publicpricing.py: src/openrouter/components/publicpricing.py:
id: 96d115d83cc5 id: 96d115d83cc5
last_write_checksum: sha1:0b8d39c8f1fda9cbc932a390d89e93b87105f35e last_write_checksum: sha1:1980193d2339dc13b08d1caabb235b0b8bcb8ce3
pristine_git_object: 8ee0045ca6378f37b87715e3bf39148a7a8f0ed4 pristine_git_object: 09a1bdd6ec5d204533288516de6d01ae20be218f
src/openrouter/components/quantization.py: src/openrouter/components/quantization.py:
id: bde317b3d703 id: bde317b3d703
last_write_checksum: sha1:96b042899bfb818f20d282be76ad37fc948a599d last_write_checksum: sha1:96b042899bfb818f20d282be76ad37fc948a599d
@@ -10559,3 +10559,6 @@ examples:
"500": "500":
application/json: {"error": {"code": 500, "message": "Internal Server Error"}} application/json: {"error": {"code": 500, "message": "Internal Server Error"}}
examplesVersion: 1.0.2 examplesVersion: 1.0.2
releaseNotes: |
## Python SDK Changes:
* `open_router.images.generate()`: `response` **Changed**
+1 -1
View File
@@ -32,7 +32,7 @@ generation:
skipResponseBodyAssertions: false skipResponseBodyAssertions: false
preApplyUnionDiscriminators: true preApplyUnionDiscriminators: true
python: python:
version: 0.10.2 version: 0.10.4
additionalDependencies: additionalDependencies:
dev: {} dev: {}
main: {} main: {}
+28 -2
View File
@@ -9315,6 +9315,12 @@ components:
created: created:
description: Unix timestamp (seconds) when the image was generated description: Unix timestamp (seconds) when the image was generated
type: integer type: integer
media_type:
description: >-
Media type (MIME type) of the image. Omitted when the output is a standard raster format (PNG). Present for
non-raster outputs such as SVG (`image/svg+xml`).
example: image/svg+xml
type: string
type: type:
description: The event type description: The event type
enum: enum:
@@ -9474,6 +9480,12 @@ components:
b64_json: b64_json:
description: Base64-encoded image bytes description: Base64-encoded image bytes
type: string type: string
media_type:
description: >-
Media type (MIME type) of the image. Omitted when the output is a standard raster format (PNG).
Present for non-raster outputs such as SVG (`image/svg+xml`).
example: image/svg+xml
type: string
required: required:
- b64_json - b64_json
type: object type: object
@@ -18888,7 +18900,14 @@ components:
description: Price in USD per cached input token (read) description: Price in USD per cached input token (read)
type: string type: string
input_cache_write: input_cache_write:
description: Price in USD per cached input token (write) description: >-
Price per cache-write token, in USD per token. For providers with multiple cache TTLs (e.g. Anthropic),
this is the default (5-minute) cache-write rate.
type: string
input_cache_write_1h:
description: >-
Price per 1-hour cache-write token, in USD per token. Only present for providers that price an extended
(1-hour) cache TTL separately, such as Anthropic.
type: string type: string
internal_reasoning: internal_reasoning:
description: Price in USD per internal reasoning token description: Price in USD per internal reasoning token
@@ -19005,7 +19024,14 @@ components:
description: Price in USD per cached input token (read) description: Price in USD per cached input token (read)
type: string type: string
input_cache_write: input_cache_write:
description: Price in USD per cached input token (write) description: >-
Price per cache-write token, in USD per token. For providers with multiple cache TTLs (e.g. Anthropic), this
is the default (5-minute) cache-write rate.
type: string
input_cache_write_1h:
description: >-
Price per 1-hour cache-write token, in USD per token. Only present for providers that price an extended
(1-hour) cache TTL separately, such as Anthropic.
type: string type: string
internal_reasoning: internal_reasoning:
description: Price in USD per internal reasoning token description: Price in USD per internal reasoning token
+22 -2
View File
@@ -9262,6 +9262,11 @@ components:
created: created:
description: Unix timestamp (seconds) when the image was generated description: Unix timestamp (seconds) when the image was generated
type: integer type: integer
media_type:
description: >-
Media type (MIME type) of the image. Omitted when the output is a standard raster format (PNG). Present for non-raster outputs such as SVG (`image/svg+xml`).
example: image/svg+xml
type: string
type: type:
description: The event type description: The event type
enum: enum:
@@ -9420,6 +9425,11 @@ components:
b64_json: b64_json:
description: Base64-encoded image bytes description: Base64-encoded image bytes
type: string type: string
media_type:
description: >-
Media type (MIME type) of the image. Omitted when the output is a standard raster format (PNG). Present for non-raster outputs such as SVG (`image/svg+xml`).
example: image/svg+xml
type: string
required: required:
- b64_json - b64_json
type: object type: object
@@ -18790,7 +18800,12 @@ components:
description: Price in USD per cached input token (read) description: Price in USD per cached input token (read)
type: string type: string
input_cache_write: input_cache_write:
description: Price in USD per cached input token (write) description: >-
Price per cache-write token, in USD per token. For providers with multiple cache TTLs (e.g. Anthropic), this is the default (5-minute) cache-write rate.
type: string
input_cache_write_1h:
description: >-
Price per 1-hour cache-write token, in USD per token. Only present for providers that price an extended (1-hour) cache TTL separately, such as Anthropic.
type: string type: string
internal_reasoning: internal_reasoning:
description: Price in USD per internal reasoning token description: Price in USD per internal reasoning token
@@ -18902,7 +18917,12 @@ components:
description: Price in USD per cached input token (read) description: Price in USD per cached input token (read)
type: string type: string
input_cache_write: input_cache_write:
description: Price in USD per cached input token (write) description: >-
Price per cache-write token, in USD per token. For providers with multiple cache TTLs (e.g. Anthropic), this is the default (5-minute) cache-write rate.
type: string
input_cache_write_1h:
description: >-
Price per 1-hour cache-write token, in USD per token. Only present for providers that price an extended (1-hour) cache TTL separately, such as Anthropic.
type: string type: string
internal_reasoning: internal_reasoning:
description: Price in USD per internal reasoning token description: Price in USD per internal reasoning token
+6 -6
View File
@@ -2,20 +2,20 @@ speakeasyVersion: 1.680.0
sources: sources:
OpenRouter API: OpenRouter API:
sourceNamespace: open-router-chat-completions-api sourceNamespace: open-router-chat-completions-api
sourceRevisionDigest: sha256:200f4947503f8ac09ca9b8cfad127f20bd1f7afe489a3d08d562aaedea63b740 sourceRevisionDigest: sha256:04b1417598cd30a7ea0db043f95705d05abee22a86750cb49d1f872ff0aac1a0
sourceBlobDigest: sha256:6fd3f95fe103e9cbf7ed293aadaa0d7351e89bc1d6456536f09b0a645cbe3278 sourceBlobDigest: sha256:8af92c8bafad9bb39a0d61b02a3ac2a6002ba1f37a620db676a62529f844cf7c
tags: tags:
- latest - latest
- speakeasy-sdk-regen-1782426538 - speakeasy-sdk-regen-1782475583
- 1.0.0 - 1.0.0
targets: targets:
open-router: open-router:
source: OpenRouter API source: OpenRouter API
sourceNamespace: open-router-chat-completions-api sourceNamespace: open-router-chat-completions-api
sourceRevisionDigest: sha256:200f4947503f8ac09ca9b8cfad127f20bd1f7afe489a3d08d562aaedea63b740 sourceRevisionDigest: sha256:04b1417598cd30a7ea0db043f95705d05abee22a86750cb49d1f872ff0aac1a0
sourceBlobDigest: sha256:6fd3f95fe103e9cbf7ed293aadaa0d7351e89bc1d6456536f09b0a645cbe3278 sourceBlobDigest: sha256:8af92c8bafad9bb39a0d61b02a3ac2a6002ba1f37a620db676a62529f844cf7c
codeSamplesNamespace: open-router-python-code-samples codeSamplesNamespace: open-router-python-code-samples
codeSamplesRevisionDigest: sha256:b0d6c032910cacfbba687cc29e3a3d038cc68abb8de505bd25f44c5064263205 codeSamplesRevisionDigest: sha256:9eb822c39464f6b8ff4cbbe3e2f0bacc6abed49eea905c340948a45c826f7dc0
workflow: workflow:
workflowVersion: 1.0.0 workflowVersion: 1.0.0
speakeasyVersion: 1.680.0 speakeasyVersion: 1.680.0
+20
View File
@@ -49,3 +49,23 @@ Based on:
- [python v0.10.2] . - [python v0.10.2] .
### Releases ### Releases
- [PyPI v0.10.2] https://pypi.org/project/openrouter/0.10.2 - . - [PyPI v0.10.2] https://pypi.org/project/openrouter/0.10.2 - .
## 2026-06-26 00:15:50
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.680.0 (2.788.4) https://github.com/speakeasy-api/speakeasy
### Generated
- [python v0.10.3] .
### Releases
- [PyPI v0.10.3] https://pypi.org/project/openrouter/0.10.3 - .
## 2026-06-26 12:06:01
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.680.0 (2.788.4) https://github.com/speakeasy-api/speakeasy
### Generated
- [python v0.10.4] .
### Releases
- [PyPI v0.10.4] https://pypi.org/project/openrouter/0.10.4 - .
+17 -16
View File
@@ -3,19 +3,20 @@
## Fields ## Fields
| Field | Type | Required | Description | | Field | Type | Required | Description |
| ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | | --------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `audio` | *Optional[str]* | :heavy_minus_sign: | Price in USD per audio input token | | `audio` | *Optional[str]* | :heavy_minus_sign: | Price in USD per audio input token |
| `audio_output` | *Optional[str]* | :heavy_minus_sign: | Price in USD per audio output token | | `audio_output` | *Optional[str]* | :heavy_minus_sign: | Price in USD per audio output token |
| `completion` | *str* | :heavy_check_mark: | Price in USD per token for completion (output) generation | | `completion` | *str* | :heavy_check_mark: | Price in USD per token for completion (output) generation |
| `discount` | *Optional[float]* | :heavy_minus_sign: | Fractional discount applied to this endpoint's pricing; the price is multiplied by (1 - discount) (0 = no discount, 1 = free) | | `discount` | *Optional[float]* | :heavy_minus_sign: | Fractional discount applied to this endpoint's pricing; the price is multiplied by (1 - discount) (0 = no discount, 1 = free) |
| `image` | *Optional[str]* | :heavy_minus_sign: | Price in USD per input image | | `image` | *Optional[str]* | :heavy_minus_sign: | Price in USD per input image |
| `image_output` | *Optional[str]* | :heavy_minus_sign: | Price in USD per output image | | `image_output` | *Optional[str]* | :heavy_minus_sign: | Price in USD per output image |
| `image_token` | *Optional[str]* | :heavy_minus_sign: | Price in USD per image token | | `image_token` | *Optional[str]* | :heavy_minus_sign: | Price in USD per image token |
| `input_audio_cache` | *Optional[str]* | :heavy_minus_sign: | Price in USD per cached audio input token | | `input_audio_cache` | *Optional[str]* | :heavy_minus_sign: | Price in USD per cached audio input token |
| `input_cache_read` | *Optional[str]* | :heavy_minus_sign: | Price in USD per cached input token (read) | | `input_cache_read` | *Optional[str]* | :heavy_minus_sign: | Price in USD per cached input token (read) |
| `input_cache_write` | *Optional[str]* | :heavy_minus_sign: | Price in USD per cached input token (write) | | `input_cache_write` | *Optional[str]* | :heavy_minus_sign: | Price per cache-write token, in USD per token. For providers with multiple cache TTLs (e.g. Anthropic), this is the default (5-minute) cache-write rate. |
| `internal_reasoning` | *Optional[str]* | :heavy_minus_sign: | Price in USD per internal reasoning token | | `input_cache_write_1h` | *Optional[str]* | :heavy_minus_sign: | Price per 1-hour cache-write token, in USD per token. Only present for providers that price an extended (1-hour) cache TTL separately, such as Anthropic. |
| `prompt` | *str* | :heavy_check_mark: | Price in USD per token for prompt (input) processing | | `internal_reasoning` | *Optional[str]* | :heavy_minus_sign: | Price in USD per internal reasoning token |
| `request` | *Optional[str]* | :heavy_minus_sign: | Price in USD per request | | `prompt` | *str* | :heavy_check_mark: | Price in USD per token for prompt (input) processing |
| `web_search` | *Optional[str]* | :heavy_minus_sign: | Price in USD per web search | | `request` | *Optional[str]* | :heavy_minus_sign: | Price in USD per request |
| `web_search` | *Optional[str]* | :heavy_minus_sign: | Price in USD per web search |
+17 -16
View File
@@ -5,19 +5,20 @@ Pricing information for the model
## Fields ## Fields
| Field | Type | Required | Description | | Field | Type | Required | Description |
| ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | | --------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `audio` | *Optional[str]* | :heavy_minus_sign: | Price in USD per audio input token | | `audio` | *Optional[str]* | :heavy_minus_sign: | Price in USD per audio input token |
| `audio_output` | *Optional[str]* | :heavy_minus_sign: | Price in USD per audio output token | | `audio_output` | *Optional[str]* | :heavy_minus_sign: | Price in USD per audio output token |
| `completion` | *str* | :heavy_check_mark: | Price in USD per token for completion (output) generation | | `completion` | *str* | :heavy_check_mark: | Price in USD per token for completion (output) generation |
| `discount` | *Optional[float]* | :heavy_minus_sign: | Fractional discount applied to this endpoint's pricing; the price is multiplied by (1 - discount) (0 = no discount, 1 = free) | | `discount` | *Optional[float]* | :heavy_minus_sign: | Fractional discount applied to this endpoint's pricing; the price is multiplied by (1 - discount) (0 = no discount, 1 = free) |
| `image` | *Optional[str]* | :heavy_minus_sign: | Price in USD per input image | | `image` | *Optional[str]* | :heavy_minus_sign: | Price in USD per input image |
| `image_output` | *Optional[str]* | :heavy_minus_sign: | Price in USD per output image | | `image_output` | *Optional[str]* | :heavy_minus_sign: | Price in USD per output image |
| `image_token` | *Optional[str]* | :heavy_minus_sign: | Price in USD per image token | | `image_token` | *Optional[str]* | :heavy_minus_sign: | Price in USD per image token |
| `input_audio_cache` | *Optional[str]* | :heavy_minus_sign: | Price in USD per cached audio input token | | `input_audio_cache` | *Optional[str]* | :heavy_minus_sign: | Price in USD per cached audio input token |
| `input_cache_read` | *Optional[str]* | :heavy_minus_sign: | Price in USD per cached input token (read) | | `input_cache_read` | *Optional[str]* | :heavy_minus_sign: | Price in USD per cached input token (read) |
| `input_cache_write` | *Optional[str]* | :heavy_minus_sign: | Price in USD per cached input token (write) | | `input_cache_write` | *Optional[str]* | :heavy_minus_sign: | Price per cache-write token, in USD per token. For providers with multiple cache TTLs (e.g. Anthropic), this is the default (5-minute) cache-write rate. |
| `internal_reasoning` | *Optional[str]* | :heavy_minus_sign: | Price in USD per internal reasoning token | | `input_cache_write_1h` | *Optional[str]* | :heavy_minus_sign: | Price per 1-hour cache-write token, in USD per token. Only present for providers that price an extended (1-hour) cache TTL separately, such as Anthropic. |
| `prompt` | *str* | :heavy_check_mark: | Price in USD per token for prompt (input) processing | | `internal_reasoning` | *Optional[str]* | :heavy_minus_sign: | Price in USD per internal reasoning token |
| `request` | *Optional[str]* | :heavy_minus_sign: | Price in USD per request | | `prompt` | *str* | :heavy_check_mark: | Price in USD per token for prompt (input) processing |
| `web_search` | *Optional[str]* | :heavy_minus_sign: | Price in USD per web search | | `request` | *Optional[str]* | :heavy_minus_sign: | Price in USD per request |
| `web_search` | *Optional[str]* | :heavy_minus_sign: | Price in USD per web search |
+1 -1
View File
@@ -1,6 +1,6 @@
[project] [project]
name = "openrouter" name = "openrouter"
version = "0.10.2" version = "0.10.4"
description = "Official Python Client SDK for OpenRouter." description = "Official Python Client SDK for OpenRouter."
authors = [{ name = "OpenRouter" },] authors = [{ name = "OpenRouter" },]
readme = "README-PYPI.md" readme = "README-PYPI.md"
+2 -2
View File
@@ -3,10 +3,10 @@
import importlib.metadata import importlib.metadata
__title__: str = "openrouter" __title__: str = "openrouter"
__version__: str = "0.10.2" __version__: str = "0.10.4"
__openapi_doc_version__: str = "1.0.0" __openapi_doc_version__: str = "1.0.0"
__gen_version__: str = "2.788.4" __gen_version__: str = "2.788.4"
__user_agent__: str = "speakeasy-sdk/python 0.10.2 2.788.4 1.0.0 openrouter" __user_agent__: str = "speakeasy-sdk/python 0.10.4 2.788.4 1.0.0 openrouter"
try: try:
if __package__ is not None: if __package__ is not None:
@@ -20,6 +20,8 @@ class ImageGenCompletedEventTypedDict(TypedDict):
r"""Unix timestamp (seconds) when the image was generated""" r"""Unix timestamp (seconds) when the image was generated"""
type: ImageGenCompletedEventType type: ImageGenCompletedEventType
r"""The event type""" r"""The event type"""
media_type: NotRequired[str]
r"""Media type (MIME type) of the image. Omitted when the output is a standard raster format (PNG). Present for non-raster outputs such as SVG (`image/svg+xml`)."""
usage: NotRequired[ImageGenerationUsageTypedDict] usage: NotRequired[ImageGenerationUsageTypedDict]
r"""Token and cost usage for the image generation request, when available""" r"""Token and cost usage for the image generation request, when available"""
@@ -36,5 +38,8 @@ class ImageGenCompletedEvent(BaseModel):
type: ImageGenCompletedEventType type: ImageGenCompletedEventType
r"""The event type""" r"""The event type"""
media_type: Optional[str] = None
r"""Media type (MIME type) of the image. Omitted when the output is a standard raster format (PNG). Present for non-raster outputs such as SVG (`image/svg+xml`)."""
usage: Optional[ImageGenerationUsage] = None usage: Optional[ImageGenerationUsage] = None
r"""Token and cost usage for the image generation request, when available""" r"""Token and cost usage for the image generation request, when available"""
@@ -10,12 +10,17 @@ from typing_extensions import NotRequired, TypedDict
class ImageGenerationResponseDataTypedDict(TypedDict): class ImageGenerationResponseDataTypedDict(TypedDict):
b64_json: str b64_json: str
r"""Base64-encoded image bytes""" r"""Base64-encoded image bytes"""
media_type: NotRequired[str]
r"""Media type (MIME type) of the image. Omitted when the output is a standard raster format (PNG). Present for non-raster outputs such as SVG (`image/svg+xml`)."""
class ImageGenerationResponseData(BaseModel): class ImageGenerationResponseData(BaseModel):
b64_json: str b64_json: str
r"""Base64-encoded image bytes""" r"""Base64-encoded image bytes"""
media_type: Optional[str] = None
r"""Media type (MIME type) of the image. Omitted when the output is a standard raster format (PNG). Present for non-raster outputs such as SVG (`image/svg+xml`)."""
class ImageGenerationResponseTypedDict(TypedDict): class ImageGenerationResponseTypedDict(TypedDict):
r"""Image generation response""" r"""Image generation response"""
+7 -2
View File
@@ -35,7 +35,9 @@ class PricingTypedDict(TypedDict):
input_cache_read: NotRequired[str] input_cache_read: NotRequired[str]
r"""Price in USD per cached input token (read)""" r"""Price in USD per cached input token (read)"""
input_cache_write: NotRequired[str] input_cache_write: NotRequired[str]
r"""Price in USD per cached input token (write)""" r"""Price per cache-write token, in USD per token. For providers with multiple cache TTLs (e.g. Anthropic), this is the default (5-minute) cache-write rate."""
input_cache_write_1h: NotRequired[str]
r"""Price per 1-hour cache-write token, in USD per token. Only present for providers that price an extended (1-hour) cache TTL separately, such as Anthropic."""
internal_reasoning: NotRequired[str] internal_reasoning: NotRequired[str]
r"""Price in USD per internal reasoning token""" r"""Price in USD per internal reasoning token"""
request: NotRequired[str] request: NotRequired[str]
@@ -76,7 +78,10 @@ class Pricing(BaseModel):
r"""Price in USD per cached input token (read)""" r"""Price in USD per cached input token (read)"""
input_cache_write: Optional[str] = None input_cache_write: Optional[str] = None
r"""Price in USD per cached input token (write)""" r"""Price per cache-write token, in USD per token. For providers with multiple cache TTLs (e.g. Anthropic), this is the default (5-minute) cache-write rate."""
input_cache_write_1h: Optional[str] = None
r"""Price per 1-hour cache-write token, in USD per token. Only present for providers that price an extended (1-hour) cache TTL separately, such as Anthropic."""
internal_reasoning: Optional[str] = None internal_reasoning: Optional[str] = None
r"""Price in USD per internal reasoning token""" r"""Price in USD per internal reasoning token"""
+7 -2
View File
@@ -30,7 +30,9 @@ class PublicPricingTypedDict(TypedDict):
input_cache_read: NotRequired[str] input_cache_read: NotRequired[str]
r"""Price in USD per cached input token (read)""" r"""Price in USD per cached input token (read)"""
input_cache_write: NotRequired[str] input_cache_write: NotRequired[str]
r"""Price in USD per cached input token (write)""" r"""Price per cache-write token, in USD per token. For providers with multiple cache TTLs (e.g. Anthropic), this is the default (5-minute) cache-write rate."""
input_cache_write_1h: NotRequired[str]
r"""Price per 1-hour cache-write token, in USD per token. Only present for providers that price an extended (1-hour) cache TTL separately, such as Anthropic."""
internal_reasoning: NotRequired[str] internal_reasoning: NotRequired[str]
r"""Price in USD per internal reasoning token""" r"""Price in USD per internal reasoning token"""
request: NotRequired[str] request: NotRequired[str]
@@ -73,7 +75,10 @@ class PublicPricing(BaseModel):
r"""Price in USD per cached input token (read)""" r"""Price in USD per cached input token (read)"""
input_cache_write: Optional[str] = None input_cache_write: Optional[str] = None
r"""Price in USD per cached input token (write)""" r"""Price per cache-write token, in USD per token. For providers with multiple cache TTLs (e.g. Anthropic), this is the default (5-minute) cache-write rate."""
input_cache_write_1h: Optional[str] = None
r"""Price per 1-hour cache-write token, in USD per token. Only present for providers that price an extended (1-hour) cache TTL separately, such as Anthropic."""
internal_reasoning: Optional[str] = None internal_reasoning: Optional[str] = None
r"""Price in USD per internal reasoning token""" r"""Price in USD per internal reasoning token"""
Generated
+1 -1
View File
@@ -220,7 +220,7 @@ wheels = [
[[package]] [[package]]
name = "openrouter" name = "openrouter"
version = "0.10.2" version = "0.10.4"
source = { editable = "." } source = { editable = "." }
dependencies = [ dependencies = [
{ name = "httpcore" }, { name = "httpcore" },